A respected London trader by day, a fearsome beast by night, he was once unstoppable in his drive to boost small companies into big ones and create a solid financial foundation for new businesses to market and build.
During a FULL MOON he was known to create market events that led to huge tokens. He shilled with such efficiency that all coins bowed to his influence and mooned like never before. MoonMaster is a legend. MoonMaster is a HERO.
During the last Great Token Hero War, MoonMaster was forever changed, awaiting his chance to avenge his nemesis ZeroKiller.
An Ex-Special Forces operative who primarily worked in the military hardware and crypto spheres, his efficiency with prototype High Energy Laser weapons meant he became an important contributor to the global development of military laser solutions. After a distinguished military career, ZeroKiller created a consultancy and development firm specializing in the latest-tech military hardware with an emphasis on Solid State Laser rifles.
As part of his ambition to be the prime developer of laser weapons, ZeroKiller commissioned an armored bodysuit with integrated laser eye weapons which he personally wears and operates. In 2021, ZeroKiller was contracted by Token Heroes to assist them in the high-energy destruction of zeros on the Market Caps of suitable crypto coins. When the time is right, ZeroKiller uses his epic laser-eye weapons to target unwanted zeros.
In combination with an ability to mobilize whole communities to carry out shilling programs designed by the legendary MoonMaster, ZeroKiller, is a highly effective zero-killing machine. Unfortunately, his alliance with MoonMaster was destroyed during the Great Token Hero War. If you are a zero, be afraid, be VERY afraid.
Distribution
Transaction
Tax
| Token Symbol | TKH |
| Token Sale Start | 12 November 2021 |
| Token Sale End | 14 November 2021 |
| Total Token Supply | 1,000,000,000 |
| Tokens for sale | 400,000,000 |
| Pre-Sale Rate | 800,000 tokens per BNB |
| Pancake Swap Rate | 700,000 tokens per BNB |
| Hard Cap | 500 BNB |
| Maximum Contribution | 5 BNB |
The roadmap to success
What are our major goals?
- Concept
- Strategic Plan
- Team Assembled
- Character Development (v1)
- Contract Development
- Whitepaper
- Website
- Audit
- Dx Sale Presale & Launch
- Marketing Campaign
- Coin Market Cap
- Coin Gecko
- Character Development (v2)
- Token Partnerships
- Character Copyrighting
- Game & NFT Development
- Token Swap Capability
- NFT Deployment
- Game Testing
- Merchandise
- Game Deployment (v1)
- Community Competitions
- Game Maintenance
- Comic Book Development
- Community Competitions
- Game Maintenance
- Comic Book Deployment
- Metaverse Platform Development
- Community Competitions
- Game Deployment (v2.0)
- Game Maintenance
- Heroes Convention
- Convention Hosted Metaverse Platform Testing
- Game Maintenance
- Comic Book Development (v2)
- Metaverse Platform Deployment
Neel S
CEO & CTO- 10+ years software development experience
- Software Engineer
Steve B
CSO- 10+ years graphics design experience
- Graphics Designer
Jon C
CMO- 10+ years marketing experience
- IT Engineer
Contact Us
Any questions? Reach out to us and we’ll get back to you shortly.
-
<EMAIL_ADDRESS>-
Join us on Telegram


It seems like @code just keeps getting better and better. and better. and better
Version 1.21 is now available! Read about the new features and fixes from February.
Code editing. Redefined.
Free. Open source. Runs everywhere.
By using VS Code, you agree to its license and privacy statement.
Meet IntelliSense.
Go beyond syntax highlighting and autocomplete with IntelliSense, which provides smart completions based on variable types, function definitions, and imported modules.
Print statement debugging is a thing of the past.
Debug code right from the editor. Launch or attach to your running apps and debug with break points, call stacks, and an interactive console.
Print statement debugging is a thing of the past.
Debug code right from the editor. Launch or attach to your running apps and debug with break points, call stacks, and an interactive console.
Print statement debugging is a thing of the past.
Debug code right from the editor. Launch or attach to your running apps and debug with break points, call stacks, and an interactive console.


Logged in as<EMAIL_ADDRESS>Account
Logout
Store
Administration
Loading...
Overview
Orders
Products
Reports
Configuration
Users
Promotions
Enter Token
or
Learn More


If you have opened your data, we welcome you to join the OpenActive community.
Find out moreAs with any booking systems, {{ page.title | escape }} depends on customer demand to inform their roadmap.
{{ page.title | escape }} is aware of the OpenActive initiative, but they need to see sufficient customer demand for them to prioritise doing the work required.
Absolutely, just send them to this website, and see if they want to add their vote to this page!
They need to have their developers build an API which conforms with the OpenActive standards.


WITNESS LIST Subcommittee on Higher Education Committee April 12, 1999-2:00P SB 1088 ON: Sanders, Mike (Texas Tech Univ./ Texas Tech Health Sciences Center), Lubbock SB 1493 ON: Campbell, Grover (University of Houston System), Austin Smith, Arthur K. (University of Houston System), Houston SB 1535 FOR: Wenrich, J. William (Dallas County Community College District), unavailable ON: Flack, Teri (Tx. Higher Education Coordinating Board), Austin Registering, but not testifying: For: Aguero, Dr. Robert (Dallas County Community College District), Dallas Garcia, Dr. Rey (Tx. Assn. of Community Colleges), Austin SB 1651 FOR: Elliott, DC, Shelby M. (Texas Chiropractic College), Pasadena Registering, but not testifying: For: Ingersoll, Deborah (Texas Chiropractic College), Austin Mooney, Sandy (Texas Chiropractic College), Friendswood Ward, J.P. (Texas Chiropractic Assn.), unavailable SB 1655 ON: Moore, Richard S. (The University of Texas Medical Branch at Galveston), Galveston Pedreson, E. J. (The University of Texas Medical Branch), unavailable Revill, Lawrence (University of Texas Medical Branch), League City SB 1747 ON: Kemp, Mike (Texas A & M at Galveston), unavailable Medeiras, Liberio E. de (Seaborne Conservation Corps), unavailable Pettit, Jr., William G. (Tx. Natl. Guard), Austin Registering, but not testifying: On: James III, MG Daniel (The Adjutant Generals Dept.), Austin


1 March 2006
A WHO collaborating laboratory in the United Kingdom has verified H5N1 avian influenza as the cause of death in a 39-year-old Iraqi man, previously announced by the Ministry of Health.
This brings the number of laboratory-confirmed cases in Iraq, listed in the WHO cumulative table, to 2. Both cases were fatal.
Virus has been isolated from the samples and genetic sequencing is presently under way.
The UK laboratory is also conducting tests on samples taken from additional cases under investigation from the northern province of Sulaimaniyah and the southern provinces of Basra and Missan.
Diagnostic testing was initially delayed by problems encountered in the shipment of samples from Iraq. Most of these problems have now been solved.
To date, poultry outbreaks of H5 avian influenza have been confirmed in Sulaimaniyah and Missan provinces. Both outbreaks are thought to have begun in mid-January.


The Ash Man
Senior Member
Registered: Oct 2001
Location:
Posts: 1372 |
quote: Originally posted by Indiana
And Ash yu forgot to mentione that hte original stargate effect looked like the plastic wrap function on photoshop
Although we have photoshop at college for DTP work, I haven't really used it all that much, so I can't comment on that :P
quote: Originally posted by Indiana
The trailer is amazing. i had it on .mov but it oh so much more special on the dvd. The promo reel if you noticed had a lot of shots that were not in the movie as well.
yeah, there was that shot where they were turfing out the technicians from the gate room, i wanted to see where abouts in the film that took place, and why they were being turfed out, but it never showed or told us.
quote: Originally posted by puddykat
are they selling it on vhs or only dvd....
At the moment it's only out on DVD, and i think it's gonna stay like that. But it may come out on VHS someday when we're all old and decrepid
quote: Originally posted by Indiana
And why am I sitting on the floor writing this?
No comment
Anywhoo, i'm off to watch the commentary now, so i'll let y'all know how that goes down too
ash
Report this post to a moderator | ? + *
|


Camera: Move Forward and Back
Camera: Move Left and Right (Looks at the object)
Camera: Look Pivot Left and Pivot Right
Stop tracking the object
Click and move to rotate the object
Toggle lights on and off
Move the purple kite
Stop the bird
The trees seem like the go back and forth but that is an optical illusion. Look at them from the top to see them rotate normally


A Full Width Image Slider Template
This is a great starting point for yet another modern and stylish
website. Here are some things to consider when working with this
template:
- Unique Fonts
- Attractive Colors
- Content Spacing for Legibility and Design
-
Decent Pictures that Still Load Quickly (less than 400KB for
example)
- Make the Pictures INFORMATIVE
- Custom Styling for the Captions


Want to help out at HackCU? Sign up to be a mentor! You will receive a mentor/volunteer guide with more info before the event.
Applications for volunteering and mentoring are now closed. Keep an eye out for us Spring 2018!


Marketplace
Sell an article
Description
:
Price (ETH)
:
Sold by
:
Bought by
:
×
Sell your article
Article name
Price in ETH
Description


Address: 127.127.37.u
Reference ID: GPS
Driver ID: GPS
Parallel Port: /dev/fgclocku
This driver supports the Forum Graphic GPS Dating station sold by EMR company.
Unfortunately sometime FG GPS start continues reporting of the same date. The only way to fix this problem is GPS power cycling and ntpd restart after GPS power-up.
After Jan,10 2000 my FG GPS unit start send a wrong answer after 10:00am till 11:00am. It repeat hour value in result string twice. I wroite a small code to avoid such problem. Unfortunately I have no second FG GPS unit to evaluate this problem. Please let me know if your GPS has no problems after Y2K.
Each timecode is written to the clockstats file in the format YYYY YD HH MI SS.


The JNLP Docker image override to use on AWS CodeBuild. The image should provide a jenkins-agent JNLP binary and Docker access. Default value is lsegal/jnlp-docker-agent:alpine.
jenkins-agent
lsegal/jnlp-docker-agent:alpine


-
0:00
Papercut.mp3
Billie Jean.mp3
One Step Closer.mp3
With You.mp3
Points Of Authority.mp3
Crawling.mp3
Runaway.mp3
By Myself.mp3
In The End.mp3
A Place For My Head.mp3
Forgotten.mp3
Cure For The Itch.mp3
Pushing Me Away.mp3


Training Management System
Logged in as
Application Administrator
Employees
Training
E-Learning
Employee Training Status
Training Indents
Schedule Training
Training Analytics
Training
»
Training Indents
Employee Training Indents
Select District :
Bidar
Bidar
Select Department :
All
SDC
FDC
Subject
SDC
FDC
ADCA
DDCA
District Total
Subject 1
5
2
1
1
9
Subject 2
3
1
1
1
6
Total
15
Subject : Subject 2
Employee
Department
Cadre
Current Location
Amod S G
Agriculture
FDC
Bhalki
Manjunath Prasanna
Agriculture
FDC
Bhalki
Manish Puranik
Agriculture
FDC
Bhalki
Jaishree PK
Agriculture
SDC
Basavklyan
Dilip Kumar Reddy
Home
FDC
Bhalki
Amod S G
Agriculture
FDC
Bidar
Anand A
Home
SDC
Bidar


A JavaScript library for zooming images like Medium
🔬 Playground ・
🔎 Demo ・
📚 Storybook
The module is available on the npm registry.
npm install medium-zoom
# or
yarn add medium-zoom
Import the library as a module:
import mediumZoom from 'medium-zoom'
Or import the library with a script tag:

That’s it! You don’t need to import any CSS styles.
Assuming you add the data-zoomable
attribute to your images:
mediumZoom('[data-zoomable]')
mediumZoom(selector?: string | HTMLElement | HTMLElement[] | NodeList, options?: object): Zoom
The selector allows attaching images to the zoom. It can be of the following types:
// CSS selector
mediumZoom('[data-zoomable]')
// HTMLElement
mediumZoom(document.querySelector('#cover'))
// NodeList
mediumZoom(document.querySelectorAll('[data-zoomable]'))
// Array
const images = [
document.querySelector('#cover'),
...document.querySelectorAll('[data-zoomable]'),
]
mediumZoom(images)
The options enable the customization of the zoom. They are defined as an object with the following properties:
| Property | Type | Default | Description |
|---|---|---|---|
margin |
number |
0 |
The space outside the zoomed image |
background |
string |
"#fff" |
The background of the overlay |
scrollOffset |
number |
40 |
The number of pixels to scroll to close the zoom |
container |
string | HTMLElement | object |
null |
The viewport to render the zoom in Read more → |
template |
string | HTMLTemplateElement |
null |
The template element to display on zoom Read more → |
mediumZoom('[data-zoomable]', {
margin: 24,
background: '#BADA55',
scrollOffset: 0,
container: '#zoom-container',
template: '#zoom-template',
})
open({ target?: HTMLElement }): Promise<Zoom>
Opens the zoom and returns a promise resolving with the zoom.
const zoom = mediumZoom('[data-zoomable]')
zoom.open()
Emits an event open
on animation start and opened
when completed.
close(): Promise<Zoom>
Closes the zoom and returns a promise resolving with the zoom.
const zoom = mediumZoom('[data-zoomable]')
zoom.close()
Emits an event close
on animation start and closed
when completed.
toggle({ target?: HTMLElement }): Promise<Zoom>
Opens the zoom when closed / dismisses the zoom when opened, and returns a promise resolving with the zoom.
const zoom = mediumZoom('[data-zoomable]')
zoom.toggle()
attach(...selectors: string[] | HTMLElement[] | NodeList[] | Array[]): Zoom
Attaches the images to the zoom and returns the zoom.
const zoom = mediumZoom()
zoom.attach('#image-1', '#image-2')
zoom.attach(
document.querySelector('#image-3'),
document.querySelectorAll('[data-zoomable]')
)
detach(...selectors: string[] | HTMLElement[] | NodeList[] | Array[]): Zoom
Releases the images from the zoom and returns the zoom.
const zoom = mediumZoom('[data-zoomable]')
zoom.detach('#image-1', document.querySelector('#image-2')) // detach two images
zoom.detach() // detach all images
Emits an event detach
on the image.
update(options: object): Zoom
Updates the options and returns the zoom.
const zoom = mediumZoom('[data-zoomable]')
zoom.update({ background: '#BADA55' })
Emits an event update
on each image of the zoom.
clone(options?: object): Zoom
Clones the zoom with provided options merged with the current ones and returns the zoom.
const zoom = mediumZoom('[data-zoomable]', { background: '#BADA55' })
const clonedZoom = zoom.clone({ margin: 48 })
clonedZoom.getOptions() // => { background: '#BADA55', margin: 48, ... }
on(type: string, listener: () => void, options?: boolean | AddEventListenerOptions): Zoom
Registers the listener on each target of the zoom.
The same options
as addEventListener
are used.
const zoom = mediumZoom('[data-zoomable]')
zoom.on('closed', event => {
// the image has been closed
})
zoom.on(
'open',
event => {
// the image has been opened (tracked only once)
},
{ once: true }
)
The zoom object is accessible in event.detail.zoom
.
off(type: string, listener: () => void, options?: boolean | AddEventListenerOptions): Zoom
Removes the previously registered listener on each target of the zoom.
The same options
as removeEventListener
are used.
const zoom = mediumZoom('[data-zoomable]')
function listener(event) {
// ...
}
zoom.on('open', listener)
// ...
zoom.off('open', listener)
The zoom object is accessible in event.detail.zoom
.
getOptions(): object
Returns the zoom options as an object.
const zoom = mediumZoom({ background: '#BADA55' })
zoom.getOptions() // => { background: '#BADA55', ... }
getImages(): HTMLElement[]
Returns the images attached to the zoom as an array of HTMLElement
s.
const zoom = mediumZoom('[data-zoomable]')
zoom.getImages() // => [HTMLElement, HTMLElement]
getZoomedImage(): HTMLElement
Returns the current zoomed image as an HTMLElement
or null
if none.
const zoom = mediumZoom('[data-zoomable]')
zoom.getZoomedImage() // => null
zoom.open().then(() => {
zoom.getZoomedImage() // => HTMLElement
})
data-zoom-src
Specifies the high definition image to open on zoom. This image loads when the user clicks on the source image.

| Event | Description |
|---|---|
| open | Fired immediately when the open method is called |
| opened | Fired when the zoom has finished being animated |
| close | Fired immediately when the close method is called |
| closed | Fired when the zoom out has finished being animated |
| detach | Fired when the detach method is called |
| update | Fired when the update method is called |
const zoom = mediumZoom('[data-zoomable]')
zoom.on('open', event => {
// track when the image is zoomed
})
The zoom object is accessible in event.detail.zoom
.
const button = document.querySelector('[data-action="zoom"]')
const zoom = mediumZoom('#image')
button.addEventListener('click', () => zoom.open())
You can use the open
event to keep track of how many times a user interacts with your image. This can be useful if you want to gather some analytics on user engagement.
let counter = 0
const zoom = mediumZoom('#image-tracked')
zoom.on('open', event => {
console.log(`"${event.target.alt}" has been zoomed ${++counter} times`)
})
const zoom = mediumZoom('[data-zoomable]')
zoom.on('closed', () => zoom.detach(), { once: true })
jQuery elements are compatible with medium-zoom
once converted to an array.
mediumZoom($('[data-zoomable]').toArray())
Using React hooks
import React from 'react'
import mediumZoom from 'medium-zoom'
function ImageZoom({ zoom, src, alt, background }) {
const zoomRef = React.useRef(zoom.clone({ background }))
function attachZoom(image) {
zoomRef.current.attach(image)
}
return
}
function App() {
const zoom = React.useRef(mediumZoom({ background: '#000', margin: 48 }))
render() {
return (
<ImageZoom src="image.jpg" alt="Image" zoom={zoom.current} color="#BADA55" />
)
}
}
Using React classes
import React, { Component } from 'react'
import mediumZoom from 'medium-zoom'
class ImageZoom extends Component {
zoom = this.props.zoom.clone({
background: this.props.color,
})
attachZoom = image => {
this.zoom.attach(image)
}
render() {
return (

)
}
}
class App extends Component {
zoom = mediumZoom({ background: '#000', margin: 48 })
render() {
return (
<ImageZoom src="image.jpg" alt="Image" zoom={this.zoom} color="#BADA55" />
)
}
}
You can see more examples including React and Vue, or check out the storybook.
The library doesn’t provide a z-index
value on the zoomed image to avoid conflicts with other frameworks. Some frameworks might specify a z-index
for their elements, which makes the zoomed image not visible.
If that’s the case, you can provide a z-index
value in your CSS:
.medium-zoom-overlay,
.medium-zoom-image--opened {
z-index: 999;
}
| IE | Edge | Chrome | Firefox | Safari |
|---|---|---|---|---|
| 10* | 12* | 36 | 34 | 9 |
* These browsers require a template
polyfill when using custom templates.
Cross-browser testing is sponsored by
yarn
to install Node dev dependenciesyarn start
to build the library in watch modeyarn run storybook
to see your changes at http://localhost:9001Please read the contributing guidelines for more detailed explanations.
You can also use npm.
MIT © François Chalifour


SVM is a supervised machine learning algorithm which can be used for classification or regression problems. It uses a technique called the kernel trick to transform your data and then based on these transformations it finds an optimal boundary between the possible outputs. Simply put, it does some extremely complex data transformations, then figures out how to seperate your data based on the labels or outputs you've defined.
If the dataset has more than two classes (dependent variables(y)) and also if data points are linearly separable. Here, we can use Kernel SVM.


CotterAPIService
public class CotterAPIService
Undocumented
-
Undocumented
Declaration
Swift
public static var shared: CotterAPIService
-
Undocumented
Declaration
Swift
public func auth( userID:String, issuer:String, event:String, code:String, method:String, pubKey:String? = nil, timestamp:String = String(format:"%.0f",NSDate().timeIntervalSince1970.rounded()), cb: @escaping ResultCallback<CotterEvent> )
-
Undocumented
Declaration
Swift
public func registerUser( userID: String, cb: @escaping ResultCallback<CotterUser> )
-
Undocumented
Declaration
Swift
public func enrollUserPin( code: String, cb: @escaping ResultCallback<CotterUser> )
-
Undocumented
Declaration
Swift
public func updateUserPin( oldCode: String, newCode: String, cb: @escaping ResultCallback<CotterUser> )
-
Undocumented
Declaration
Swift
public func getBiometricStatus( cb: @escaping ResultCallback<EnrolledMethods> )
-
Undocumented
Declaration
Swift
public func updateBiometricStatus( enrollBiometric: Bool, cb: @escaping ResultCallback<CotterUser> )
-
Undocumented
Declaration
Swift
public func requestToken( codeVerifier: String, challengeID: Int, authorizationCode: String, redirectURL: String, cb: @escaping ResultCallback<CotterIdentity> )
-
Undocumented
Declaration
Swift
public func getUser( userID: String, cb: @escaping ResultCallback<CotterUser> )
-
Undocumented
Declaration
Swift
public func registerBiometric( userID:String, pubKey:String, // base64 pubKey NOT URL SAFE! cb: @escaping ResultCallback<CotterUser> )
-
Undocumented
Declaration
Swift
public func requestPINReset( name: String, sendingMethod: String, sendingDestination: String, cb: @escaping ResultCallback<CotterResponseWithChallenge> )
-
Undocumented
Declaration
Swift
public func verifyPINResetCode( resetCode: String, challengeID: Int, challenge: String, cb: @escaping ResultCallback<CotterBasicResponse> )
-
Undocumented
Declaration
Swift
public func resetPIN( resetCode: String, newCode: String, challengeID: Int, challenge: String, cb: @escaping ResultCallback<CotterBasicResponse> )
-
Undocumented
Declaration
Swift
public func enrollTrustedDevice( userID: String, cb: @escaping ResultCallback<CotterUser> )
-
Undocumented
Declaration
Swift
public func getNewEvent( userID: String, cb: @escaping ResultCallback<CotterEvent?> )
-
Undocumented
Declaration
Swift
public func getTrustedDeviceStatus( userID: String, cb: @escaping ResultCallback<EnrolledMethods> )
-
Undocumented
Declaration
Swift
public func getTrustedDeviceEnrolledAny( userID: String, cb: @escaping ResultCallback<EnrolledMethods> )
-
Undocumented
Declaration
Swift
public func reqAuth( userID:String, event:String, cb: @escaping ResultCallback<CotterEvent> )
-
Undocumented
Declaration
Swift
public func getEvent( eventID:String, cb: @escaping ResultCallback<CotterEvent> )
-
Undocumented
Declaration
Swift
public func approveEvent( event: CotterEvent, cb: @escaping ResultCallback<CotterEvent> )
-
Undocumented
Declaration
Swift
public func registerOtherDevice( qrData:String, userID:String, cb: @escaping ResultCallback<CotterEvent> )
-
Undocumented
Declaration
Swift
public func removeTrustedDeviceStatus( userID: String, cb: @escaping ResultCallback<CotterUser> )
-
Undocumented
Declaration
Swift
public func getNotificationAppID( cb: @escaping ResultCallback<CotterNotificationCredential> )


I am a software engineer. Officially, my job is to build web applications tailored to specific business requirements from my employer.
I write and test code for bugs which is a fancy way of saying I identify and remove errors from computer sofware.
Great minds think alike... lets build apps, discuss tech trends and gear it towards solving third world problems!.
Object Oriented Programming with C# and the .Net framework is a one stop shop for all your programming constructs!
Keep it stylish and professional with some markup skillz...
Massage data and build complex database schemas within the framework!


{{Template:UiOslo_Norway/Head}} {{Template:UiOslo_Norway/Header}} {{Template:UiOslo_Norway/TopBar}}
Alexander Refsnes-Petkovic is considering the present as the age of the biological century. He finds great inspiration in collecting and learning to interpret data for his master thesis in a multidisciplinary area of research that seeks to create new biological parts and systems for use in aquaculture, for the purpose to redesign systems that are already a part of nature. His mission is to challenge the existing by seeking new methods within synthetic biology in formulation of fish feed composition and bathing treatments when combating fish diseases. When not at his desk or in the lab he likes doing outdoor sport activities. Alexander did his bachelor thesis on amoebic gill disease during his bachelor degree in aquaculture management before doing his master studies in Biosciences.
Fun fact: Alexander enjoys travelling and speaks 5 languages.
Martin is doing his master thesis in Biotechnology with a focus in computational and systems biology at the Norwegian University of Science and Technology (NTNU) and is the only team member that isn't studying at the University of Oslo. His research interests lie in protein folding and metabolic modeling. When he isn't studying he likes to work out with his basketball team or playing computer games.
Fun fact: DPS Moira best Moira
Jonas is 23 years old and is doing his master in cybernetics and autonomous systems at UiO. In our iGEM team he is mostly invested in the construction of a diagnostics system based on behavioural changes in fish. Out side of iGEM he works with swarm intelligence and how it can be applied to control a group of micro underwater gliders.


To continue with this post I have changed the Transmitting and Receiving firmware
The aim is still to setup a water monitoring system using 2 x JeeNodes and Raspberry Pi
Can anyone recommend the best way to get a minimum working system in emoncms with Jeenodes.
For instance I have the RPI running ok with the standard image and can login and run emoncms.
I need a remote reader Jeenode at the water meter sending to a Jeenode connected to the RPI.
I have tried the following:
Water-meter Jeenode
using g_transmittingData.ino . group 210, node 10
RPI with Jeenode
using a_FixedPackets.ino group 210, node 15,
emoncms seems to be seeing some input it shows "ok" when I test inputs, but feeds don't show on graphs.
If I can get this to work hopefully I can then look at more advanced implementations.
Basicall how can I get the readings from the Jeenodes to show on a emoncms graph.?
Thanks
Re: Using Jeenode and RPI- How to setup minimum base-station and simple RF-remote such as send variable voltage
Have changed firmware but still no success.
Re: Using Jeenode and RPI- How to setup minimum base-station and simple RF-remote such as send variable voltage
What is the format of the data that you are sending? The Input API help in emoncms gives the formats that are acceptable. If you do not include your API read&write key, emoncms will not accept the data.
Re: Using Jeenode and RPI- How to setup minimum base-station and simple RF-remote such as send variable voltage
Thanks for replying Robert.
I don't understand enough to properly answer your question, but if I give you more info maybe you will be able to direct me.
Because I already have 2x JeeNodes , which have an on-board RFM12B I would like to use them rather than make a emonTx or LCD board, and I have a RPI with the emoncms image downloaded and running.
One JN is connected to the water-meter reading the reed-switch the other JN is connected to the RPI as ttyUSB0.
The data only needs to be one byte which are the counts of the reed-switch closings for 1 minute and sent via RF to the RPI.
Questions:
What Sketches do I need to put into the water-meter JN and the RPI JN.?
For instance maybe for a trial I could use the test2.ino sketch from JeLabs in the water-meter which captures one bye of reading from the digital.input port and sends a packet via RF.
The RPI Sketch maybe I could be the RF12Demo.ino from Jeelabs which reads the RF packet and prints to the terminal.
Would this be enough for to do a basic set up so that my localhost/emoncms could show some readings.
Do I need to add the API key to every byte of data sent from the water-meter.?
Any suggestions welcomed.
Len
Re: Using Jeenode and RPI- How to setup minimum base-station and simple RF-remote such as send variable voltage
I can't identify for certain the Jeelabs sketch you are referring to. As far as I can tell, you have a sketch that is detecting the switch operating and is generating a message - a single byte in your case - and outputting that via the RFM12B. You need to send a longer message than that which emonCMS can validate and interpret.
The easiest way to interface to emoncms is to send it a message in the format it understands. That is what I was referring to. Log in to emoncms and go to http://emoncms.org/input/api. and right at the top of the page are examples that you can type in your web browser.
If you look at one of the NanodeRF or OKG Base sketches, you can see how that string is built up. For example:
str.reset();
str.print(basedir); str.print("/input/post.json?");
str.print("apikey="); str.print(apikey);
str.print("&node="); str.print(node_id);
str.print("&csv=");
for (byte i=0; i<n; i+=2)
{
int num = ((unsigned char)rf12_data[i+1] << 8 | (unsigned char)rf12_data[i]);
if (i) str.print(",");
str.print(num);
}
str.print("\0"); // End of json string
:You need to do something like that, using your own APIKEY of course.
Your RPi is of course already running emonCMS, so it should all work instantly once you send it the data it is expecting.
Re: Using Jeenode and RPI- How to setup minimum base-station and simple RF-remote such as send variable voltage
Hi Len,
you are almost there ... communication between a node (be it an emontx/jeenode/arduino/external program) to emoncms happens through either an API (Application Programming Interface) or using a php script that retrieves the data and uses the emoncms framewrok to store it.
This means that in order to have some data stored in emoncms you have to:
If you feel like experimenting with a direct script you should have a look at the rfm12php script about including the emoncms framework and reading from the serial (not easy if you are not into software development)
If you feel like you just need to read the data, store it in emoncms and forget about the bad experience in programming :) then a good starting point could be this post http://openenergymonitor.org/emon/node/1418
where another user added the functionality to store data from a serial device.
#!/usr/bin/perl -w
# Reads data from a Current Cost device via serial port.
use strict;
use Device::SerialPort qw( :PARAM :STAT 0.07 );
use LWP::UserAgent;
my $key = "your_emoncms api key_here";
my $PORT = "/dev/ttyUSB0";
my $meas = 0;
my $sumW = 0;
my $sumT = 0;
my $watts;
my $temp;
my $wget;
my $ob = Device::SerialPort->new($PORT) || die "Can't open $PORT: $!\n";
$ob->baudrate(57600);
$ob->write_settings;
open(SERIAL, "+>$PORT");
while (my $line = <SERIAL>) {
if ($line =~ m!<tmpr> *([\-\d.]+)</tmpr>.*<ch1><watts>0*(\d+)</watts></ch1>!) {
my $watts = $2;
my $temp = $1;
#print "SUCCESS $meas: ... $watts, $temp\n";
$meas++;
$sumW += $watts;
$sumT += $temp;
}
if ($meas == 10) { #time to send
$watts = $sumW/10;
$temp = $sumT/10;
#print "AVERAGE: ... $watts, $temp\n";
my $emon_ua = LWP::UserAgent->new;
my $emon_url = "http://localhost/emoncms3/api/post?apikey=$key\&json={power:$watts,temp:$temp}";
my $emon_response = $emon_ua->get($emon_url);
if ($emon_response->is_error) {
die $emon_response->status_line;
}
}
}
You will have to change the script to suit you serial parameters, the link to your emoncms instance and the decoding of the serial communication
If you fell like this is still too much for your programming skills try and post the output from the serial port and I'll see if we can hack something together ...
Re: Using Jeenode and RPI- How to setup minimum base-station and simple RF-remote such as send variable voltage
Is the API stuff required if I only want to run the emoncms server on my RPi only. ?
I don't particularly need to send it to emoncms.org , yet.
For a test run just a connection between the watermeter and the localhost RPi is fine.
I have tried the following setup water-meter -> RPi , but can't get any active inputs going on the localhost-emoncms
A Sketch for the RPi base-station from the NanodeRf b_MultiNode.
#include <JeeLib.h> //https://github.com/jcw/jeelib
void setup ()
{
Serial.begin(9600);
Serial.println("RPi Server");
rf12_initialize(15, RF12_868MHZ, 100);
}
void loop ()
{
if (rf12_recvDone() && rf12_crc == 0 && (rf12_hdr & RF12_HDR_CTL) == 0)
{
int node_id = (rf12_hdr & 0x1F);
// Get the packet length (number of integers sent is n/2)
byte n = rf12_len;
Serial.print("Node: ");
Serial.print(node_id);
Serial.print(" data: ");
// Go throught the packet 2 bytes at a time
for (byte i=0; i<n; i+=2)
{
// Create an integer from each block of two bytes (using bitwise math)
int num = ((unsigned char)rf12_data[i+1] << 8 | (unsigned char)rf12_data[i]);
// Print the output as CSV
if (i) Serial.print(",");
Serial.print(num);
}
Serial.println();
}
}
A Sketch for the water-meter adapted from JCW's Housemon test2
#include <JeeLib.h>
#include <Ports.h> // needed to aviod Linker error
typedef struct { int counts,battery;} PayloadTX;
PayloadTX watermeter;
void setup () {
Serial.begin(9600);
Serial.println("Water-meter");
rf12_initialize(10, RF12_868MHZ, 100);
}
void loop () {
watermeter.counts = analogRead(0); // simulate watermeter count
watermeter.battery =map(analogRead(6),0,1023,0,660);// not active yet
int i = 0; while (!rf12_canSend() && i<10) {rf12_recvDone(); i++;}
rf12_sendStart (0, &watermeter, sizeof watermeter);
}
Re: Using Jeenode and RPI- How to setup minimum base-station and simple RF-remote such as send variable voltage
Hi, thanks for your reply.I have also sent a reply to Robert Wall, in this string. Some of it may apply to your suggestions.
If it is applicable,I don't know how to send Perl commands, do I need to download a Perl interpreter.
Please notice I don't particularly need to send to emoncms.org , the localhost RPi will do for a test.
Len
Re: Using Jeenode and RPI- How to setup minimum base-station and simple RF-remote such as send variable voltage
Hi Len, don't take it the wrong way please, but I think you would be better off just ordering a rfm12pi module and using the standard raspberry module...the feel is that you want to accomplish something that is way over your actual experience with linux and programming.
It is not simply a matter of uploading a sketch and running a shell command, you need to understand the process you need to apply on order to move data from a node to the cms, and as I stated the api 'stuff' is actually the easiest of the two ways you can use to send data to emoncms (be it your local instance or the main emoncms server).
The sketch you are using on the receiver writes data to the serial port, emoncms listens for data on a network socket, hence you need another layer that retrieves the data from the serial port and forwards it to emoncms. It cannot get simpler than that, other than using the rfm12pi hardware for which this intermediate layer has already been written/tested.
Regards
Re: Using Jeenode and RPI- How to setup minimum base-station and simple RF-remote such as send variable voltage
Len, I don't understand. Didn't you say you were already running a local RPi with emoncms on it? and running OK?
In that case all you need to do is expand the string your JeeNode sends to something like
"/emoncms/input/post.json?apikey=yourbiglongapikeyhexnumber&node=10&csv=123"
Then your intermediate JeeNode just has to forward that byte-for-byte. (Unless of course you want to send just the value from JeeNode1 to JeeNode2, in which case JeeNode2 must assemble the message and send it.)
Re: Using Jeenode and RPI- How to setup minimum base-station and simple RF-remote such as send variable voltage
Robert,
I think the problem is that the receiving jeenode communicates through serial with the pi, and won't be able to directly post the data to emoncms but only to the serial (actually the receiving sketch Len posted is already doing that and forwarding to the serial the data in csv format). He needs a script that reads fromthe serial and posts to emoncms like the one I posted that needs to be adapted to the csv format. If I have time later today I'll try and modify it together with instructions about how to run it.
Re: Using Jeenode and RPI- How to setup minimum base-station and simple RF-remote such as send variable voltage
Ah, I'd missed the bit where Len is using the second Jeenode as the RF receiver for the Pi. :-(
Re: Using Jeenode and RPI- How to setup minimum base-station and simple RF-remote such as send variable voltage
Well, it compensates for understanding a google translation from portuguese in another thread and correctly debugging the code at the first try :)


Login
Register
Email:
Password:
Log In
Email:
Password:
Name:
Gender
Male
Female
Description
Register
Log Out
PROFILE
MATCHES
UNDECIDED


See: Description
| Class | Description |
|---|---|
| Auto6253 |
Autonomous modes:
test()
set()
park(boolean blue)
climb(boolean blue)
Autonomous support methods:
raiseArm() < --- NOT TESTED
lowerArm() < --- NOT TESTED
scoreClimbers(boolean left) < --- NOT TESTED
moveForwardOnHeading(int distance)
moveForward(double power, int distance)
pivot(double power, int deg)
turnWithLeftSide(double power, int deg)
turnWithRightSide(double power, int deg)
heading(int deg) < --- DOES NOT ALWAYS PIVOT THE RIGHT WAY
Low level support methods:
getCorrectedHeading(int offset, int drift, double startTime)
setArmHeight(double power, int deg) < --- NOT TESTED
extendSlides()
retractSlides()
releaseClimbers(boolean left)
setAllDrivePower(double power)
pivot(double power)
setLeftDrivePower(double power)
setRightDrivePower(double power)
|
| AutoMakerInches |
CONTROLS - ONLY USES DRIVER (GAMEPAD1) CONTROLLER
Right Trigger - Move Forwards
Left Trigger - Move Backwards
Right Bumper - Turn Right
Left Bumper - Turn Right
Y - Reset Encoders to Current Position (Wipes Distances)
X - Degrees Traveled (WILL NOT BE ACCURATE IF YOU MOVE FORWARDS AFTER RESETTING THE ENCODERS) - sends data to phone
B - Distance Traveled in Inches - sends data to phone
dpad_down - get correctedHeading
MAKE SURE YOU WIPE THE DISTANCE (HIT Y) AFTER YOU GET DATA FROM EACH STEP OR READINGS WILL NOT BE ACCURATE
|
| AutoRed |
Autonomous modes:
test()
set()
park(boolean blue)
climb(boolean blue)
Autonomous support methods:
raiseArm() < --- NOT TESTED
lowerArm() < --- NOT TESTED
scoreClimbers(boolean left) < --- NOT TESTED
moveForwardOnHeading(int distance)
moveForward(double power, int distance)
pivot(double power, int deg)
turnWithLeftSide(double power, int deg)
turnWithRightSide(double power, int deg)
heading(int deg) < --- DOES NOT ALWAYS PIVOT THE RIGHT WAY
Low level support methods:
getCorrectedHeading(int offset, int drift, double startTime)
setArmHeight(double power, int deg) < --- NOT TESTED
extendSlides()
retractSlides()
releaseClimbers(boolean left)
setAllDrivePower(double power)
pivot(double power)
setLeftDrivePower(double power)
setRightDrivePower(double power)
|
| BlockSort |
DO
NOT
RUN
THIS
CODE
UNTIL
VALUES
HAVE
BEEN
ASSIGNED
AND
POSITIONS
ARE
FIGURED
OUT
OR
BAD
THINGS
WILL
HAPPEN
|
| BuildConfig | |
| ContServoTest | |
| ModifiedBoolean |
Created by Austin on 1/16/2016.
|
| MyFirstOpMode |
A skeletal example of a do-nothing first OpMode.
|
| MyRobotControllerAdministration |
MyRobotControllerAdministration is a container for 'administrative' methods that interact
with the Swerve Library.
|
| PIDControl |
Created by Zach on 1/24/16.
|
| R | |
| R.array | |
| R.attr | |
| R.color | |
| R.dimen | |
| R.drawable | |
| R.id | |
| R.layout | |
| R.menu | |
| R.raw | |
| R.string | |
| R.style | |
| R.xml | |
| RunForTime |
This class is for running a motor or servo at a specified speed for a specified amount of time.
|
| TeleOp6253 |
DO
NOT
RUN
THIS
CODE
UNTIL
VALUES
HAVE
BEEN
ASSIGNED
AND
POSITIONS
ARE
FIGURED
OUT
OR
BAD
THINGS
WILL
HAPPEN
|
| ValueFinder |
| Enum | Description |
|---|---|
| ArmPosition |
Created by austinzhang on 2/4/16.
|
| Height |
Created by austinzhang on 1/21/16.
|
| SlidePosition |
Created by Austin on 1/23/2016.
|
Following common source-code-management best practices, your code best lives in a module and package that is entirely outside the modules and packages of the libraries on which your code depends (here, FtcRobotController and SwerveRoboticsLibrary). This helps support the easier integration of updates to those libraries into your code as time goes on.
You can either edit your code here, in the YourCodeHere module, or set up a sibling module for your code, though the former might be easier to get going.


Services - Bluetooth SIG
-
BLE Alert Notification Service
Alert Notification service exposes:
- The different types of alerts with the short text messages.
- The information how many count of new alert messages.
- The information how many count of unread alerts.
Declaration
Swift
@available(swift 4.0) @available(iOS 10.0, tvOS 10.0, watchOS 3.0, macOS 10.12, *) open class ServiceAlertNotification : Service
-
BLE Automation IO Service
The Automation IO service is used to expose the analog inputs/outputs and digital input/outputs of a generic IO module (IOM).
See moreDeclaration
Swift
@available(swift 4.0) @available(iOS 10.0, tvOS 10.0, watchOS 3.0, macOS 10.12, *) open class ServiceAutomationInputOutput : Service
-
BLE Body Composition Service
This service exposes data related to body composition from a body composition analyzer intended for consumer healthcare and sports/fitness applications.
See moreDeclaration
Swift
@available(swift 4.0) @available(iOS 10.0, tvOS 10.0, watchOS 3.0, macOS 10.12, *) open class ServiceBodyComposition : Service
-
BLE Bond Management Service
This Specification proposes that this service will enable users to manage their bonds on devices with a limited user interface.
See moreDeclaration
Swift
@available(swift 4.0) @available(iOS 10.0, tvOS 10.0, watchOS 3.0, macOS 10.12, *) open class ServiceBondManagement : Service
-
BLE Continuous Glucose Monitoring Service
This service exposes glucose and other data from a personal Continuous Glucose Monitoring (CGM) sensor for use in consumer healthcare applications.
See moreDeclaration
Swift
@available(swift 4.0) @available(iOS 10.0, tvOS 10.0, watchOS 3.0, macOS 10.12, *) open class ServiceContinuousGlucoseMonitoring : Service
-
BLE Cycling Power Service
This service exposes power- and force-related data and optionally speed and cadence-related data from a Cycling Power sensor intended for sports and fitness applications.
See moreDeclaration
Swift
@available(swift 4.0) @available(iOS 10.0, tvOS 10.0, watchOS 3.0, macOS 10.12, *) open class ServiceCyclingPower : Service
-
BLE Cycling Speed and Cadence Service
This service exposes speed-related and cadence-related data from a Cycling Speed and Cadence sensor intended for fitness applications.
See moreDeclaration
Swift
@available(swift 4.0) @available(iOS 10.0, tvOS 10.0, watchOS 3.0, macOS 10.12, *) open class ServiceCyclingSpeedAndCadence : Service
-
BLE Environmental Sensing Service
This service exposes measurement data from an environmental sensor intended for sports and fitness applications. A wide range of environmental parameters is supported.
See moreDeclaration
Swift
@available(swift 4.0) @available(iOS 10.0, tvOS 10.0, watchOS 3.0, macOS 10.12, *) open class ServiceEnvironmentalSensing : Service
-
BLE Fitness Machine Service
This service exposes training-related data in the sports and fitness environment, which allows a Server (e.g., a fitness machine) to send training-related data to a Client.
See moreDeclaration
Swift
@available(swift 4.0) @available(iOS 10.0, tvOS 10.0, watchOS 3.0, macOS 10.12, *) open class ServiceFitnessMachine : Service
-
BLE Health Thermometer Service
The Health Thermometer service exposes temperature and other data from a thermometer intended for healthcare and fitness applications.
See moreDeclaration
Swift
@available(swift 4.0) @available(iOS 10.0, tvOS 10.0, watchOS 3.0, macOS 10.12, *) open class ServiceHealthThermometer : Service
-
BLE HTTP Proxy Service
This service allows a Client device, typically a sensor, to communicate with a Web Server through a gateway device. The gateway device implements the HTTP Proxy Service and therefore provides the services available through the Internet to the Client sensor device.
See moreDeclaration
Swift
@available(swift 4.0) @available(iOS 10.0, tvOS 10.0, watchOS 3.0, macOS 10.12, *) open class ServiceHttpProxy : Service
-
BLE Indoor Positioning Service
The Indoor Positioning Service exposes location information to support e.g. mobile handsets to position themselves in an environment where GPS signal is not available, like indoor premises.
See moreDeclaration
Swift
@available(swift 4.0) @available(iOS 10.0, tvOS 10.0, watchOS 3.0, macOS 10.12, *) open class ServiceIndoorPositioning : Service
-
BLE Insulin Delivery Service
This service exposes the control capability, the status of an Insulin Delivery Device (IDD) running an insulin infusion therapy, and historical therapy data to be used in the personal and professional healthcare industry.
See moreDeclaration
Swift
@available(swift 4.0) @available(iOS 10.0, tvOS 10.0, watchOS 3.0, macOS 10.12, *) open class ServiceInsulinDelivery : Service
-
BLE Internet Protocol Support Service
When in a GAP Discoverable Mode for an initial connection to a Router, the Node will include the IP Support Service UUID 0x1820 in the Service UUIDs AD type field of the advertising data. This enhances the user experience as a Node may be identified by the Router before initiating a connection and other data from a personal Continuous Glucose Monitoring (CGM) sensor for use in consumer healthcare applications.
See moreDeclaration
Swift
@available(swift 4.0) @available(iOS 10.0, tvOS 10.0, watchOS 3.0, macOS 10.12, *) open class ServiceInternetProtocolSupport : Service
-
BLE Location and Navigation Service
This service exposes location and navigation-related data from a Location and Navigation sensor intended for outdoor activity applications.
See moreDeclaration
Swift
@available(swift 4.0) @available(iOS 10.0, tvOS 10.0, watchOS 3.0, macOS 10.12, *) open class ServiceLocationAndNavigation : Service
-
BLE Mesh Provisioning Service
The Mesh Provisioning Service allows a Provisioning Client to provision a Provisioning Server to allow it to participate in the mesh network.
See moreDeclaration
Swift
@available(swift 4.0) @available(iOS 10.0, tvOS 10.0, watchOS 3.0, macOS 10.12, *) open class ServiceMeshProvisioning : Service
-
BLE Next Daylight Savings Time (DST) Change Service
This service defines how the information about an upcoming DST change can be exposed using the Generic Attribute Profile (GATT).
See moreDeclaration
Swift
@available(swift 4.0) @available(iOS 10.0, tvOS 10.0, watchOS 3.0, macOS 10.12, *) open class ServiceNextDSTChange : Service
-
BLE Object Transfer Service
This service provides management and control features supporting bulk data transfers which occur via a separate L2CAP connection oriented channel. The Client is enabled to create and delete objects and to execute an action using the currently selected object. The selected object can be written, updated or read via an Object Transfer Channel opened by the Client. The generation of a checksum covering a part or the whole of the object contents is included as an optional feature. This service provides a general method for a Client to select and initiate the transfer of any type of object.
See moreDeclaration
Swift
@available(swift 4.0) @available(iOS 10.0, tvOS 10.0, watchOS 3.0, macOS 10.12, *) open class ServiceObjectTransfer : Service
-
BLE Pulse Oximeter Service
This Service specification proposes a pulse oximetry server for use in consumer and professional healthcare applications.
See moreDeclaration
Swift
@available(swift 4.0) @available(iOS 10.0, tvOS 10.0, watchOS 3.0, macOS 10.12, *) open class ServicePulseOximeter : Service
-
BLE Reconnection Configuration Service
This service enables the control of certain communication parameters of a Bluetooth Low Energy peripheral device.
See moreDeclaration
Swift
@available(swift 4.0) @available(iOS 10.0, tvOS 10.0, watchOS 3.0, macOS 10.12, *) open class ServiceReconnectionConfiguration : Service
-
BLE Reference Time Update Service
This service defines how a client can request an update from a reference time source from a time server using the Generic Attribute Profile (GATT).
See moreDeclaration
Swift
@available(swift 4.0) @available(iOS 10.0, tvOS 10.0, watchOS 3.0, macOS 10.12, *) open class ServiceReferenceTimeUpdate : Service
-
BLE Running Speed and Cadence Service
This service exposes speed, cadence and other data from a Running Speed and Cadence Sensor intended for fitness applications.
See moreDeclaration
Swift
@available(swift 4.0) @available(iOS 10.0, tvOS 10.0, watchOS 3.0, macOS 10.12, *) open class ServiceRunningSpeedAndCadence : Service
-
BLE Scan Parameters Service
This service enables a GATT Client to store the LE scan parameters it is using on a GATT Server device so that the GATT Server can utilize the information to adjust behavior to optimize power consumption and/or reconnection latency.
See moreDeclaration
Swift
@available(swift 4.0) @available(iOS 10.0, tvOS 10.0, watchOS 3.0, macOS 10.12, *) open class ServiceScanParameters : Service
-
BLE Transport Discovery Service
This service enables a device using Bluetooth low energy wireless technology to expose services that are available on a transport other than Bluetooth low energy. When used together with a higher level specification (e.g., a specification which references and makes use of TDS), the information provided by this service can be used to facilitate discovery and utilization of BR/EDR or transports not defined by the Bluetooth SIG such as those defined by the Wi-Fi Alliance® or other organizations.
See moreDeclaration
Swift
@available(swift 4.0) @available(iOS 10.0, tvOS 10.0, watchOS 3.0, macOS 10.12, *) open class ServiceTransportDiscovery : Service
-
BLE User Data Service
This service exposes user-related data in the sports and fitness environment. This allows remote access and update of user data by a Client as well as the synchronization of user data between a Server and a Client.
See moreDeclaration
Swift
@available(swift 4.0) @available(iOS 10.0, tvOS 10.0, watchOS 3.0, macOS 10.12, *) open class ServiceUserData : Service
-
BLE Weight Scale Service
This service exposes weight and related data from a weight scale intended for consumer healthcare and sports/fitness applications.
See moreDeclaration
Swift
@available(swift 4.0) @available(iOS 10.0, tvOS 10.0, watchOS 3.0, macOS 10.12, *) open class ServiceWeightScale : Service


After going through this chapter we have learnt
1. The purpose of an Operating System
2. The Graphical User Interface of Windows comprising of Task Bar, Icons, Start Menu, etc.
3. Creation of Files and Folders in Windows
4. Using File Explorer for file management
5. Using various Control Panel options for configuring
- Display properties like Appearance,Wallpaper,Screensaver etc.
- Installing/Uninstalling software on Windows
- Adding/Removing printers


A website to track the status of the OpenSource Projects that our groups will be working on, with links to the github profiles of the contributors.
A travel guide to suggest activities you can do once you arrive to a certain destination. Or you can just browse destinations and check out the different available activities.
An app to find litter using community submitted geotagged images. The submitted areas are then tracked as to whether they have been cleaned up or not. There should be a leaderboard of submissions and the overall number of submitted images displayed.
Registers the amount and type of items that you have and helps you reach your goal of reaching a certain number of items of your choice.
A game style app that tracks the amount of waste that you have recycled and where, then calculates the amount of landfill that you prevented overall. Giving you bragging rights on your favorite social media platform.
Here is a list of best resources for the developers (mostly web). Feel free to add your resources as well because sharing is caring.
Tracks the amount of books that you've read, the ones you want to read and the progress on the ones you're reading.
This projects counts the time needed on each project we do as freelancers or hobbyists, so we better know in the future how to estimate time for projects.
This will be a game to learn CSS Grid in a Game Mode Style, to make learning more fun!


PDFlib PHP Examples
Please see PDFlib 8 Tutorial, chapter 2.9 for further details about using PDFlib with PHP.
businesscard:
Block processing example
chartab:
Character table
hello
Hello example
image:
Image example
invoice:
Invoice generation demo
pdfclock:
A little PDFlib application to draw an analog clock.
quickreference:
Mini imposition demo
starter_3d:
Load a 3D model and create a 3D annotation from it.
starter_basic:
Create some simple text, vector graphics and image output.
starter_block:
Import a PDF page containing blocks and fill text and image blocks with some data.
starter_color:
Demonstrate the basic use of supported color spaces
starter_fallback:
Starter sample for fallback fonts
starter_geospatial:
Starter for georeferenced PDF
starter_graphics:
Create some basic examples of vector graphics
starter_image:
Load and place an image using various options for scaling and positioning
starter_layer:
Define several layers, output images and text to them and define particular layers to be visible when opening the document
starter_opentype:
Demonstrate various typographic OpenType features after checking whether a particular feature is supported in a font
starter_path:
Create some basic examples of pathobject construction and use
starter_pcos:
Dump information from an existing PDF document
starter_pdfa1b:
Create PDF/A-1b conforming output
starter_pdfmerge:
Merge pages from multiple PDF documents
starter_pdfx3:
Create PDF/X-3 conforming output
starter_pdfx4:
Create PDF/X-4 conforming output with layer variants and transparency
starter_pdfx5g:
Create PDF/X-5g conforming output with a reference to an external page
starter_portfolio:
Package multiple PDF and other documents into a PDF portfolio
starter_pvf:
Create a PVF file which holds an image or PDF, and import the data from the PVF file
starter_shaping:
Starter sample for text shaping features
starter_table:
Create table which may span multiple pages
starter_tagged:
Create document with structure information for reflow and accessibility
starter_textflow:
Create multi-column text output which may span multiple pages
starter_textline:
Demonstrate various options for placing a text line
starter_type3font:
Create a simple Type 3 font from vector data
starter_webform:
Create a linearized PDF (for fast delivery over the Web, also known as "fast Web view")


This website template has been designed by Free Wdbsite Temlates for you, for free. You can replace all this text with your own text.


Featured Section Heading
Lorem ipsum dolor amet kombucha ennui woke tilde hashtag ugh viral four dollar toast brooklyn godard. Kickstarter pinterest raw denim 3 wolf moon, leggings coloring book forage health goth man braid tumeric keffiyeh portland. Blog quinoa single-origin coffee normcore lo-fi PBR&B bespoke snackwave tbh cloud bread kinfolk ennui. Celiac single-origin coffee green juice scenester af everyday carry succulents vaporware cred humblebrag chia.Plaid pickled 8-bit, tilde thundercats banjo pitchfork man braid skateboard wolf try-hard echo park cloud bread. Skateboard hashtag aesthetic cred. 90's cliche freegan, raw denim banh mi waistcoat cronut ramps palo santo brunch schlitz. XOXO crucifix asymmetrical, truffaut cornhole bespoke small batch portland everyday carry. Normcore dreamcatcher intelligentsia cold-pressed umami man braid leggings snackwave woke copper mug godard.