--- layout: post title: Why machine learning tagline: " is unavoidable?" permalink: /machine-learning/neural-network/why.html categories: [machine learning, neural networks] tags: [definition, introduction] ---
Why do we need machine learning?
Figure 1: ML distinction
It is very hard to write programs that solve problems like recognizing a three-dimensional object from a novel viewpoint in new lighting conditions in a cluttered scene.
It is hard to write a program to compute the probability that a credit card transaction is fraudulent.
Instead of writing a program by hand for each specific task, we collect lots of examples that specify the correct output for a given input. A machine learning algorithm then takes these examples and produces a program that does the job.
Massive amounts of computation are now cheaper than paying someone to write a task-specific program.
A lot of genetics is done on fruit flies.
The MNIST database of hand-written digits is the the machine learning equivalent of fruit flies.
We will use MNIST as our standard task.
1000 different object classes in 1.3 million high-resolution training images from the web.
Jitendra Malik (an eminent neural net sceptic) said that this competition is a good test of whether deep neural networks work well for object recognition.
A speech recognition system has several stages:
Deep neural networks pioneered by George Dahl and Abdel-rahman Mohamed are now replacing the previous machine learning method for the acoustic model.
(Mohamed, Dahl, & Hinton, 2012) 183 HMM-state labels not pre-trained 2000 logistic hidden units 5 more layers of pre-trained weights 2000 logistic hidden units 2000 logistic hidden units 15 frames of 40 filterbank outputs
(Hinton et. al. IEEE Signal Processing Magazine, Nov 2012)
The task Hours of training data Deep neural network Gaussian Mixture Model GMM with more data Switchboard (Microsoft Research) 309 18.5% 27.4% 18.6% (2000 hrs) English broadcast news (IBM) 50 17.5% 18.8% Google voice search (android 4.1) 5,870 12.3% (and falling) 16.0% (>>5,870 hrs)
Hello. Welcome to the Coursera course on Neural Networks for Machine Learning.
Before we get into the details of neural network learning algorithms, I want to talk a little bit about machine learning, why we need machine learning, the kinds of things we use it for, and show you some examples of what it can do. So the reason we need machine learning is that the sum problem, where it's very hard to write the programs, recognizing a three dimensional object for example. When it's from a novel viewpoint and new lighting additions in a cluttered scene is very hard to do. We don't know what program to write because we don't know how it's done in our brain. And even if we did know what program to write, it might be that it was a horrendously complicated program. Another example is, detecting a fraudulent credit card transaction, where there may not be any nice, simple rules that will tell you it's fraudulent.
You really need to combine, a very large number of, not very reliable rules. And also, those rules change every time because people change the tricks they use for fraud. So, we need a complicated program that combines unreliable rules, and that we can change easily. The machine learning approach, is to say, instead of writing each program by hand for each specific task, for particular task, we collect a lot of examples, and specify the correct output for given input. A machine learning algorithm then takes these examples and produces a program that does the job. The program produced by the linear algorithm may look very different from the typical handwritten program. For example, it might contain millions of numbers about how you weight different kinds of evidence. If we do it right, the program should work for new cases just as well as the ones it's trained on. And if the data changes, we should be able to change the program runs very easily by retraining it on the new data. And now massive amounts for computation are cheaper that paying someone to write a program for a specific task, so we can afford big complicated machine learning programs to produce these stark task specific systems for us.
Some examples of the things that are best done by using a learning algorithm are recognizing patterns, so for example objects in real scenes, or the identities or expressions of people's faces, or spoken words. There's also recognizing anomalies. So, an unusual sequence of credit card transactions would be an anomaly. Another example of an anomaly would be an unusual pattern of sensor readings in a nuclear power plant. And you wouldn't really want to have to deal with those by doing supervised learning. Where you look at the ones that blow up, and see what, what caused them to blow up. You'd really like to recognize that something funny is happening without having any supervision signal. It's just not behaving in its normal way. And then this prediction. So, typically, predicting future stock prices or currency exchange rates or predicting which movies a person will like from knowing which other movies they like. And which movies a lot of other people liked.
So in this course I'm mean as a standard example for explaining a lot of the machine learning algorithms. This is done in a lot of science. In genetics for example, a lot of genetics is done on fruitflies. And the reason is they're convenient. They breed fast and a lot is already known about the genetics of fruit flies. The MNIST database of handwritten digits is the machine equivalent of fruitflies. It's publicly available. We can get machine learning algorithms to learn how to recognize these handwritten digits quite quickly, so it's easy to try lots of variations. And we know huge amounts about how well different machine learning methods do on MNIST. And in particular, the different machine learning methods were implemented by people who believed in them, so we can rely on those results. So for all those reasons, we're gonna use MNIST as our standard task.
Here's an example of some of the digits in MNIST. These are ones that were correctly recognized by neural net the first time it saw them. But the ones within the neural net wasn't very confident. And you could see why. I've arranged these digits in standard scan line order. So zeros, then ones, then twos and so on. If you look at a bunch of tubes like the ounces in the green rectangle. You can see that if you knew they were 100 in digit you'd probably guess they were twos. But it's very hard to say what it is that makes them twos. There is nothing simple that they all have in common. In particular if you try and overlay one on another you'll see it doesn't fit. And even if you skew it a bit, it's very hard to make them overlay on each other.
So a template isn't going to do the job. An in particular template is going to be very hard to find that will fit those twos in the green box and would also fit the things in the red boxes. So that's one thing that makes recognizing handwritten digits a good task for machine learning.
Now, I don't want you to think that's the only thing we can do. It's a relatively simple for our machine learning system to do now. And to motivate the rest of the course, I want to show you some examples of much more difficult things. So we now have neural nets with approaching a hundred million parameters in them, that can recognize a thousand different object classes in 1.3 million high resolution training images got from the web. So, there was a competition in 2010, and the best system got 47 percent error rate if you look at its first choice, and 25 percent error rate if you say it got it right if it was in its top five choices, which isn't bad for 1,000 different objects.
Jitendra Malik who's an eminent neural net skeptic, and a leading computer vision researcher, has said that this competition is a good test of whether deep neural networks can work well for object recognition. And a very deep neural network can now do considerably better than the thing that won the competition. It can get less than 40 percent error, for its first choice, and less than twenty percent error for its top five choices. I'll describe that in much more detail in lecture five.
Here's some examples of the kinds of images you have to recognize. These images from the test set that he's never seen before. And below the examples, I'm showing you what the neural net thought the right answer was. Where the length of the horizontal bar is how confident it was, and the correct answer is in red. So if you look in the middle, it correctly identified that as a snow plow. But you can see that its other choices are fairly sensible. It does look a little bit like a drilling platform. And if you look at its third choice, a lifeboat, it actually looks very like a lifeboat. You can see the flag on the front of the boat and the bridge of the boat and the flag at the back, and the high surf in the background. So its, its errors tell you a lot about how it's doing it and they're very plausible errors. If you look on the left, it gets it wrong possibly because the beak of the bird is missing and cuz the feathers of the bird look very like the wet fur of an otter. But it gets it in its top five, and it does better than me. I wouldn't know if that was a quail or a ruffed grouse or a partridge. If you look on the right, it gets it completely wrong. It a guillotine, you can why it says that. You can possibly see why it says orangutan, because of the sort of jungle looking background and something orange in the middle. But it fails to get the right answer.
It can, however, deal with a wide range of different objects. If you look on the left, I would have said microwave as my first answer. The labels aren't very systematic. So actually, the correct answer there is electric range. And it does get it in its top five. In the middle, it's getting a turnstile, which is a distributed object. It does, can't, it can do more than just recognize compact things. And it can also deal with pictures, as well as real scenes, like the bulletproof vest. And it makes some very cool errors. If you look at the image on the left, that's an earphone. It doesn't get anything, like an earphone. But if you look at this fourth batch, it thinks it's an ant. And for you to think that's crazy. But then if you look at it carefully, you can see it's a view of an ant from underneath. The eyes are looking down at you, and you can see the antennae behind it. It's not the kind of view of an ant you'd like to have if you were a green fly. If you look at the one on the right, it doesn't get the right answer. But all of its answers are, cylindrical objects.
Another task that neural nets are now very good at, is speech recognition. Or at least part of a speech recognition system. So speech recognition systems have several stages. First they pre-process the sound wave, to get a vector of acoustic coefficients, for each ten milliseconds of sound wave. And so they get 100 of those actors per second. They then take a few adjacent vectors of acoustic coefficients, and they need to place bets on which part of which phoneme is being spoken. So they look at this little window and they say, in the middle of this window, what do I think the phoneme is, and which part of the phoneme is it? And a good speech recognition system will have many alternative models for a phoneme. And each model, it might have three different parts. So it might have many thousands of alternative fragments that it thinks this might be. And you have to place bets on all those thousands of alternatives. And then once you place those bets you have a decoding stage that does the best job it can of using plausible bets, but piecing them together into a sequence of bets that corresponds to the kinds of things that people say.
Currently, deep neural networks pioneered by George Dahl and Abdel-Rahman Mohammed of the University of Toronto are doing better than previous machine learning methods for the acoustic model, and they're now beginning to be used in practical systems. So, Dahl and Mohammed, developed a system, that uses many layers of, binary neurons, to, take some acoustic frames, and make bets about the labels. They were doing it on a fairly small database and then used 183 alternative labels. And to get their system to work well, they did some pre-training, which will be described in the second half of the course. After standard post processing, they got 20.7 percent error rate on a very standard benchmark, which is kind of like the NMIST for speech. The best previous result on that benchmark for speak independent recognition was 24.4%. And a very experienced speech researcher at Microsoft research realized that, that was a big enough improvement, that probably this would change the way speech recognition systems were done.
And indeed, it has. So, if you look at recent results from several different leading speech groups, Microsoft showed that this kind of deep neural network, when used as the acoustic model in the speech system. Reduced the error rate from 27.4 percent to 18.5%, or alternatively, you could view it as reducing the amount of training data you needed from 2,000 hours down to 309 hours to get comparable performance. IBM which has the best system for one of the standard speech recognition tasks for large recovery speech recognition, showed that even it's very highly tuned system that was getting 18.8 percent can be beaten by one of these deep neural networks. And Google, fairly recently, trained a deep neural network on a large amount of speech, 5,800 hours. That was still much less than they trained their mixture model on. But even with much less data, it did a lot better than the technology they had before. So it reduced the error rate from sixteen percent to 12.3 percent and the error rate is still falling.
And in the latest Android, if you do voice search, it's using one of these deep neurall networks in order to do very good speech recognition.
To understand how the brain actually works.
To understand a style of parallel computation inspired by neurons and their adaptive connections.
To solve practical problems by using novel learning algorithms inspired by the brain (this course)
brain actually works.
Gross physical structure:
Axons typically contact dendritic trees at synapses
Spike generation:
axon body axon hillock dendritic tree
When a spike of activity travels along an axon and arrives at a synapse it causes vesicles of transmitter chemical to be released.
The transmitter molecules diffuse across the synaptic cleft and bind to receptor molecules in the membrane of the post-synaptic neuron thus changing their shape.
The effectiveness of the synapse can be changed:
Synapses are slow, but they have advantages over RAM
Each neuron receives inputs from other neurons
The effect of each input line on the neuron is controlled by a synaptic weight
The synaptic weights adapt so that the whole network learns to perform useful computations
controlling the body.
You have about 10^11 neurons each with about 10^4 weights.
Different bits of the cortex do different things.
But cortex looks pretty much the same all over.
Cortex is made of general purpose stuff that has the ability to turn into special purpose hardware in response to experience.
In this video, I'm gonna tell you a little bit about real neurons on the real brain which provide the inspiration for the artificial neural network that we're gonna learn about in this course. In most of the course, we won't talk much about real neurons but I wanted to give you a quick overview of the beginning.
There's several different reasons to study how networks of neurons can compute things. The first is to understand how the brain actually works. You might think we could do that just by experiments on the brain. But it's very big and complicated, and it dies when you poke it around. And so we need to use computer simulations to help us understand what we're discovering in empirical studies. The second is to understand the style of parallel computation, this inspired by the fact that the brain can compute with a big parallel network, a world of relatively slow neurons. If you can understand that style of parallel computation we might be able to make better parallel computers. It's very different from the way computation is done on a conventional serial processor. It should be very good for things that brains are good at like vision, and it should also be bad for things that brains are bad at by multiplying two numbers together. A third reason, which is the relevant one for this course, is to solve practical problems by using novel learning algorithms that were inspired by the brain. These algorithms can be very useful even if they're not actually how the brain works. So in most of this course we won't talk much about how the brain actually works. It's just used as a source of inspiration to tell us the big, parallel networks of neurons can compute very complicated things. I'm gonna talk more in this video though about how the brain actually works. A typical cortical neuron has a gross physical structure that consists of a cell body, and an axon where it sends messages to other neurons, and a denditric tree where it receives messages from other neurons. Where an axon from one neuron contacts a dendritic tree of another neuron, there's a structure called a synapse. And a spike of activity traveling along the axon, causes charge to be injected into the post synaptic neuron at a synapse. A neuron generates spikes when it's received enough charge in its dendritic tree to depolarize a part of the cell body called the axon hillock. And when that gets depolarized, the neuron sends a spike out along its axon. And the spike's just a wave of depolarization that travels along the axon. Synapses themselves have interesting structure. They contain little vesicles of transmitter chemical and when a spike arrives in the axon it causes these vesicles to migrate to the surface and be released into the synaptic cleft. There's several different kinds of transmitter chemical. There's one that implement positive weights and ones that implement negative weights. The transmitter molecules diffuse across the synaptic clef and bind to receptor molecules in the membrane of the post-synaptic neuron, and by binding to these big molecules in the membrane they change their shape, and that creates holes in the membrane. These holes are like specific ions to flow in or out of the post-synaptic neuron and that changes their state of depolarization. Synapses adapt, and that's what most of learning is, changing the effectiveness of a synapse. They can adapt by varying the number of vesicles that get released when a spike arrives. Or by varying the number of receptor molecules that are sensitive to the released transmitter molecules. Synapses are very slow compared with computer memory. But they have a lot of advantages over the random access memory on a computer, they're very small and very low power. And they can adapt. That's the most important property. They use locally available signals to change their strengths, and that's how we learn to perform complicated computations. The issue of course is how do they decide how to change their strength? What is the, what are the rules for how they should adapt. So, all on one slide this is how the brain works. Each neuron receives inputs from other neurons. A few of the neurons receive inputs from the receptors. It's a large number of neurons, but only a small fraction of them. And, the neurons communicate with each other within in the cortex by sending these spikes of activity. The effective in input line on a neuron is controlled by synaptic weight, which can be positive or negative. And these synaptic weights adapt. And by adapting these weights the whole network learns to perform different kinds of computation. For example recognizing objects, understanding language, making plans, controlling the movements of your body. You have about ten to the eleven neurons, each of which has about ten to the four weights. So you probably ten to the fifteen or maybe only about ten to the fourteen synaptic weights. And a huge number of these weights, quite a large fraction of them, can affect the ongoing computation in a very small fraction of a second, in a few milliseconds. That's much better bandwidth to stored knowledge than even a modern workstation has. One final point about the brain is that the cortex is modular, at least it learns to be modular. Different bits of the cotex end up doing different things. Genetically, the inputs from the senses go to different bits of the cortex. And that determines a lot about what they end up doing.  Damage to one place might cause you to lose your ability to understand language. Damage to another place might cause you to lose your ability to recognize objects.  That allows you to see which bits of the brain you're using for particular tasks. But the remarkable thing about cortex is it looks pretty much the same all over, and that strongly suggests that it's got a fairly flexible universal learning algorithm in it. That's also suggested by the fact that if you damage the brain early on, functions will relocate to other parts of the brain. So it's not genetically predetermined, at least not directly, which part of the brain will perform which function. There's convincing experiments on baby ferrets that show that if you cut off the input to the auditory cortex that comes from the ears, and instead, reroute the visual input to auditory cortex, then the auditory cortex that was destined to deal with sounds will actually learn to deal with visual input, and create neurons that look very like the neurons in the visual system. This suggest the cortex is made of general purpose stuff that has the ability to turn into special purpose hardware for particular tasks in response to experience. And that gives you a nice combination of, rapid parallel computation once you have learnt, plus flexibility, so you can put, you can learn new functions, so you are learning, to do the parallel computation. Its quiet like a FPGA, where you build standard parallel hardware, then after its built, you put in information that tells it what particular parallel computation to do. Conventional computers get their flexibility by having a stored sequential program. But this required very fast central processors to access the lines in the sequential program and perform long sequential computations.
• • To model things we have to idealize them (e.g. atoms)
for understanding the main principles.
other, familiar systems.
complexity to make the model more faithful. It is often worth understanding models that are known to be wrong (but we must not forget that they are wrong!)
spikes of activity.Linear neurons These are simple but computationally limited
complicated neurons. i th input bias y = b + ∑ x i w i output i index over input connections weight on i th inputLinear neurons These are simple but computationally limited
complicated neurons. y = b + ∑ x i w i i y 0 0 b + ∑ x i w i iBinary threshold neurons 1 McCulloch-Pitts (1943): influenced Von Neumann.
the weighted sum exceeds a threshold.
is like the truth value of a proposition and each neuron combines truth values to compute the truth value of another proposition! 0 threshold weighted inputBinary threshold neurons There are two equivalent ways to write the equations for a binary threshold neuron: z = b + ∑ x i w i z = ∑ x i w i i y = 1 if z ≥ θ 0 otherwise i θ = −b y = 1 if z ≥0 0 otherwiseRectified Linear Neurons (sometimes called linear threshold neurons) They compute a linear weighted sum of their inputs. The output is a non-linear function of the total input. z = b + ∑ x i w i i z if z >0 y = 0 otherwise y 0 zSigmoid neurons These give a real-valued output that is a smooth and bounded function of their total input.
logistic function
derivatives which make learning easy (see lecture 3). z = b + ∑ x i w i y = i 1 −z 1 + e 1 y 0.5 0 0 zStochastic binary neurons These use the same equations as logistic units.
the logistic as the probability of producing a spike in a short time window. We can do a similar trick for rectified linear units:
Poisson rate for spikes. z = b + ∑ x i w i p(s = 1) = 1 + e i 1 p 0.5 0 1 0 z −zNeural Networks for Machine Learning Lecture 1d A simple example of learning Geoffrey Hinton with Nitish Srivastava Kevin SwerskyA very simple way to recognize handwritten shapes Consider a neural network with two layers of neurons. 0 1 2 3 4 5 6 7 8 9
known shapes.
represent pixel intensities. A pixel gets to vote if it has ink on it.
different shapes. The shape that gets the most votes wins.How to display the weights 1 2 3 4 5 6 7 8 9 0 The input image Give each output unit its own “map” of the input image and display the weight coming from each pixel in the location of that pixel in the map. Use a black or white blob with the area representing the magnitude of the weight and the color representing the sign.How to learn the weights 1 2 3 4 5 6 7 8 9 0 The image Show the network an image and increment the weights from active pixels to the correct class. Then decrement the weights from active pixels to whatever class the network guesses.1 2 3 4 5 6 The image 7 8 9 01 2 3 4 5 6 The image 7 8 9 01 2 3 4 5 6 The image 7 8 9 01 2 3 4 5 6 The image 7 8 9 01 2 3 4 5 6 The image 7 8 9 0The learned weights 1 2 3 4 5 6 7 8 9 0 The image The details of the learning algorithm will be explained in future lectures.Why the simple learning algorithm is insufficient A two layer network with a single winner in the top layer is equivalent to having a rigid template for each shape.
with the ink. The ways in which hand-written digits vary are much too complicated to be captured by simple template matches of whole shapes.
to learn the features that it is composed of.Examples of handwritten digits that can be recognized correctly the first time they are seenNeural Networks for Machine Learning Lecture 1e Three types of learning Geoffrey Hinton with Nitish Srivastava Kevin SwerskyTypes of learning task Supervised learning
Reinforcement learning
Unsupervised learning
Each training case consists of an input vector x and a target output t. Regression: The target output is a real number or a whole vector of real numbers.
Classification: The target output is a class label.
We start by choosing a model-class: y = f (x;W)
parameters, W, to map each input vector, x, into a predicted output y. Learning usually means adjusting the parameters to reduce the discrepancy between the target output, t, on each training case and the actual output, y, produced by the model. 1 2
discrepancy.
more sensible (they also work better).Reinforcement learning In reinforcement learning, the output is an action or sequence of actions and the only supervisory signal is an occasional scalar reward.
of the future rewards.
don’t have to look too far into the future. Reinforcement learning is difficult:
went wrong (or right).
This course cannot cover everything and reinforcement learning is one of the important topics we will not cover.Unsupervised learning For about 40 years, unsupervised learning was largely ignored by the machine learning community
unsupervised learning. It is hard to say what the aim of unsupervised learning is.
is useful for subsequent supervised or reinforcement learning.
between two images. But you don’t want to learn to compute disparities by stubbing your toe thousands of times.Other goals for unsupervised learning It provides a compact, low-dimensional representation of the input.
dimensional manifold (or several such manifolds).
for finding a low-dimensional representation. It provides an economical high-dimensional representation of the input in terms of learned features.
It finds sensible clusters in the input.
the features is non-zero.


Hello There, Good Morning, Good Afternoon and Good Evening to you depending on whatever time zone you are currently following. I would like to thank you for visiting my portfolio, I hope you finding my profile in alignment with your requirements for desired candidates. My attempts behind developing this portfolio is introduce you with Who I am, What I did, What Interests me most, and Why you should hire me.
In my attempts to help you get to know me in the best possible way, I made sure that your experience is not hindered by device sizes by making this portfolio responsive so feel free to leverage the benefit of responsive UI by viewing website on any device of your choice as per your comfort level.
Another of my several attempts to ensure comfort level of user while portraying myself in the best possible way is to connect my connecting my email and other social accounts such as facebook, linkedin, twitter and github to help user understand my social outreach which might not seem much of importance to most people but is actually of severe importance because when the larger social outreach an employee has it is that many number of people a company's product can reach or atleast has potential to reach alongside connecting my github thus proving my familiarity and workability knowledge in regards to highly demanded and utilized version control system.
I won't be discussing much of all of my attempts to portray myself, because that is what you visited this website for and further it would reduce value of all my time and efforts to nothing. So I will conclude my discussion by encouraging you to explore different parts of the website inorder to get to know me better.
Thanking you
Harshit Singh
B.E.(CS) Rajiv Gandhi Technical University, INDIA
M.S.(CS) Stevens Institute of Technology, USA


#include <assert.h>
#include "config.h"
#include "liblogging.h"
#include "stringbuf.h"
#include "srUtils.h"
Functions | |
| sbStrBObj * | sbStrBConstruct (void) |
| Construct a sbStrB object. | |
| void | sbStrBDestruct (sbStrBObj *pThis) |
| Destruct the string buffer object. | |
| srRetVal | sbStrBAppendStr (sbStrBObj *pThis, char *psz) |
| Append a string to the buffer. | |
| srRetVal | sbStrBAppendInt (sbStrBObj *pThis, int i) |
| Append an integer to the string. | |
| srRetVal | sbStrBAppendChar (sbStrBObj *pThis, char c) |
| Append a character to an existing string. | |
| char * | sbStrBFinish (sbStrBObj *pThis) |
| Finish the string buffer. | |
| void | sbStrBSetAllocIncrement (sbStrBObj *pThis, int iNewIncrement) |
| Set a new allocation incremet. |
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* Neither the name of Adiscon GmbH or Rainer Gerhards nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
 IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
Append a character to an existing string. If necessary, the method expands the string buffer.
|
|
|
Append an integer to the string. No special formatting is done. |
|
|
Append a string to the buffer.
|
|
|
Finish the string buffer. That means, the string is returned to the caller and then the string buffer is destroyed. The caller is reponsible for freeing the returned string pointer. After calling this method, the string buffer object is destroyed and thus the provided handle (pThis) can no longer be used.
|
|
|
Set a new allocation incremet. This will influence the allocation the next time the string will be expanded. It can be set and changed at any time. If done immediately after custructing the StrB object, this will also be the inital allocation.
|


- Khan
-
Friends
- Groups
-
Watch
- Events
See More
- ∩ Ad center
- ♂ Ads Manager
- ∯ Blood Donations
- ⤼ Campus
- ĉ Crisis
- ф Facebook Pay
- Favorites
- Friend List
- Fundraisers
- Games
- Gaming videos
- Jobs
- Live Video
- Memories
- Messenger
- Messenger Kids
- Most Recents
- Offers
- Pages
- Recent Ad Activity
- Saved
- Weather
|


Seer Skahi:
The spidersilk of Duda-Mara told me you would come.
We will meet again, but you must do something first.
"What is it?"


Welcome to nefties.com
nefties.com is about NFTs. Whereas cryptocurrencies are over a decade old now, NFTs are infants on the verge of booming. If you're viewing this site, you've likely heard of them on Ethereum as CryptoKitties. But, they are growing onto so many other blockchains: NEO, WAX, EOS, FLOW, NEAR, and I'm sure there are many others. It is early and it is happening.
If you're asking, "What's an NFT, read this. If you know about NFTs, then you know. Either way...
I'm happy you're here. :)
Check the links in the nav bar at left.
The nefties.com domain is for sale.
Learn about why this domain has value on the "About nefties.com" page.


. THERE'S SOMETHING ABOUT MARY A film review by Christopher Null Copyright 1998 Christopher Null
Sure it's ridiculous. Sure it's in generally poor taste. So what? That's what makes THERE'S SOMETHING ABOUT MARY so good.
 Thirteen years later, we find that he's not the only one fixated on Mary... as no fewer than five suitors appear to win her heart.
Done one way, this could've been a Disney movie. Done the Farrelly brothers (DUMB AND DUMBER) way, it's anything but.
 Most of the funny bits have unfortunately be spoiled by the trailer, but it's no matter; MARY's still got plenty of juice in her.
(Note to potential filmgoers: The overly sensitive need not apply.)

The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Logout
Select a Student
Assigned to you
[{index-stud-name}]
[{index-submission-status}]
[{index-stud-dip}]
Metric Number: [{index-stud-adminno}]


Dear coders, Thank you for your to coding-lab website, If you have the demand to provide valuable advice to us, you are welcome to contact us, thank you.
Email<EMAIL_ADDRESS>Address: 燕師大 (高雄市燕巢區深中路62號)


Reset
New Puppy
x
Awesome Stuff
Puppy placeholder from
Placedog
-webkit-filter
and
-webkit-transform
for Instagram effect
CSS and modal dialog from
Bootstrap
"Gorditas" Webfont from
Google Webfonts
FontAwesome
font-icons
Wood tile background by
SubtlePatterns


Question: How many bit strings are there of length
that contain either 5 consecutive 0's or 5 consecutive 1's?
Answer:
Good cases:


What Is A Spec?
In TLA+, the term specification (or spec) is used to mean one of two
things:
- The collection of modules consisting of the root module and and all modules that are imported by the
root module, either directly or indirectly, with
EXTENDS
or INSTANCE
statements.
In the context of the Toolbox, we exclude from this collection the standard TLA+ modules such as the
Naturals
module. All the specification's module files must be in the same directory
as the root module file.
- The TLA formula that specifies the set of allowed behaviors of the system or algorithm being specified.
We take the word specification by itself to have the first meaning. We use the term
behavior specification when we mean the second.
↑ Managing Your Specifications


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.cyberneko.html.HTMLElements
public class HTMLElements
Collection of HTML element information.
| Nested Class Summary | |
|---|---|
static class |
HTMLElements.Element
Element information. |
static class |
HTMLElements.ElementList
Unsynchronized list of elements. |
| Field Summary | |
|---|---|
static short |
A
|
static short |
ABBR
|
static short |
ACRONYM
|
static short |
ADDRESS
|
static short |
APPLET
|
static short |
AREA
|
static short |
B
|
static short |
BASE
|
static short |
BASEFONT
|
static short |
BDO
|
static short |
BGSOUND
|
static short |
BIG
|
static short |
BLINK
|
static short |
BLOCKQUOTE
|
static short |
BODY
|
static short |
BR
|
static short |
BUTTON
|
static short |
CAPTION
|
static short |
CENTER
|
static short |
CITE
|
static short |
CODE
|
static short |
COL
|
static short |
COLGROUP
|
static short |
COMMENT
|
static short |
DD
|
static short |
DEL
|
static short |
DFN
|
static short |
DIR
|
static short |
DIV
|
static short |
DL
|
static short |
DT
|
protected static HTMLElements.ElementList |
ELEMENTS
Element information as a contiguous list. |
protected static HTMLElements.Element[][] |
ELEMENTS_ARRAY
Element information organized by first letter. |
static short |
EM
|
static short |
EMBED
|
static short |
FIELDSET
|
static short |
FONT
|
static short |
FORM
|
static short |
FRAME
|
static short |
FRAMESET
|
static short |
H1
|
static short |
H2
|
static short |
H3
|
static short |
H4
|
static short |
H5
|
static short |
H6
|
static short |
HEAD
|
static short |
HR
|
static short |
HTML
|
static short |
I
|
static short |
IFRAME
|
static short |
ILAYER
|
static short |
IMG
|
static short |
INPUT
|
static short |
INS
|
static short |
ISINDEX
|
static short |
KBD
|
static short |
KEYGEN
|
static short |
LABEL
|
static short |
LAYER
|
static short |
LEGEND
|
static short |
LI
|
static short |
LINK
|
static short |
LISTING
|
static short |
MAP
|
static short |
MARQUEE
|
static short |
MENU
|
static short |
META
|
static short |
MULTICOL
|
static short |
NEXTID
|
static HTMLElements.Element |
NO_SUCH_ELEMENT
No such element. |
static short |
NOBR
|
static short |
NOEMBED
|
static short |
NOFRAMES
|
static short |
NOLAYER
|
static short |
NOSCRIPT
|
static short |
OBJECT
|
static short |
OL
|
static short |
OPTGROUP
|
static short |
OPTION
|
static short |
P
|
static short |
PARAM
|
static short |
PLAINTEXT
|
static short |
PRE
|
static short |
Q
|
static short |
RB
|
static short |
RBC
|
static short |
RP
|
static short |
RT
|
static short |
RTC
|
static short |
RUBY
|
static short |
S
|
static short |
SAMP
|
static short |
SCRIPT
|
static short |
SELECT
|
static short |
SMALL
|
static short |
SOUND
|
static short |
SPACER
|
static short |
SPAN
|
static short |
STRIKE
|
static short |
STRONG
|
static short |
STYLE
|
static short |
SUB
|
static short |
SUP
|
static short |
TABLE
|
static short |
TBODY
|
static short |
TD
|
static short |
TEXTAREA
|
static short |
TFOOT
|
static short |
TH
|
static short |
THEAD
|
static short |
TITLE
|
static short |
TR
|
static short |
TT
|
static short |
U
|
static short |
UL
|
static short |
UNKNOWN
|
static short |
VAR
|
static short |
WBR
|
static short |
XML
|
static short |
XMP
|
| Constructor Summary | |
|---|---|
HTMLElements()
|
| Method Summary | |
|---|---|
static HTMLElements.Element |
getElement(short code)
Returns the element information for the specified element code. |
static HTMLElements.Element |
getElement(java.lang.String ename)
Returns the element information for the specified element name. |
static HTMLElements.Element |
getElement(java.lang.String ename,
HTMLElements.Element element)
Returns the element information for the specified element name. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final short A
public static final short ABBR
public static final short ACRONYM
public static final short ADDRESS
public static final short APPLET
public static final short AREA
public static final short B
public static final short BASE
public static final short BASEFONT
public static final short BDO
public static final short BGSOUND
public static final short BIG
public static final short BLINK
public static final short BLOCKQUOTE
public static final short BODY
public static final short BR
public static final short BUTTON
public static final short CAPTION
public static final short CENTER
public static final short CITE
public static final short CODE
public static final short COL
public static final short COLGROUP
public static final short COMMENT
public static final short DEL
public static final short DFN
public static final short DIR
public static final short DIV
public static final short DD
public static final short DL
public static final short DT
public static final short EM
public static final short EMBED
public static final short FIELDSET
public static final short FONT
public static final short FORM
public static final short FRAME
public static final short FRAMESET
public static final short H1
public static final short H2
public static final short H3
public static final short H4
public static final short H5
public static final short H6
public static final short HEAD
public static final short HR
public static final short HTML
public static final short I
public static final short IFRAME
public static final short ILAYER
public static final short IMG
public static final short INPUT
public static final short INS
public static final short ISINDEX
public static final short KBD
public static final short KEYGEN
public static final short LABEL
public static final short LAYER
public static final short LEGEND
public static final short LI
public static final short LINK
public static final short LISTING
public static final short MAP
public static final short MARQUEE
public static final short MENU
public static final short META
public static final short MULTICOL
public static final short NEXTID
public static final short NOBR
public static final short NOEMBED
public static final short NOFRAMES
public static final short NOLAYER
public static final short NOSCRIPT
public static final short OBJECT
public static final short OL
public static final short OPTION
public static final short OPTGROUP
public static final short P
public static final short PARAM
public static final short PLAINTEXT
public static final short PRE
public static final short Q
public static final short RB
public static final short RBC
public static final short RP
public static final short RT
public static final short RTC
public static final short RUBY
public static final short S
public static final short SAMP
public static final short SCRIPT
public static final short SELECT
public static final short SMALL
public static final short SOUND
public static final short SPACER
public static final short SPAN
public static final short STRIKE
public static final short STRONG
public static final short STYLE
public static final short SUB
public static final short SUP
public static final short TABLE
public static final short TBODY
public static final short TD
public static final short TEXTAREA
public static final short TFOOT
public static final short TH
public static final short THEAD
public static final short TITLE
public static final short TR
public static final short TT
public static final short U
public static final short UL
public static final short VAR
public static final short WBR
public static final short XML
public static final short XMP
public static final short UNKNOWN
protected static final HTMLElements.Element[][] ELEMENTS_ARRAY
protected static final HTMLElements.ElementList ELEMENTS
public static final HTMLElements.Element NO_SUCH_ELEMENT
| Constructor Detail |
|---|
public HTMLElements()
| Method Detail |
|---|
public static final HTMLElements.Element getElement(short code)
code
- The element code.public static final HTMLElements.Element getElement(java.lang.String ename)
ename
- The element name.public static final HTMLElements.Element getElement(java.lang.String ename, HTMLElements.Element element)
ename
- The element name.element
- The default element to return if not found.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


The Humanoid Lab is a part of the CNRS-AIST JRL, located at AIST, Tsukuba about 5km from the main campus of the University of Tsukuba. It is associated to the university through the Cooperative Graduate School System, which means that graduate students at the university can work at JRL as Trainees and RAs under the supervision of Prof. Kanehiro (Faculty of Cooperative Graduate School, IMIS).
The lab provides a unique opportunity for graduate students to work with Japanese and foreign research scientists on a wide variety of robot platforms and research topics. Our main research subjects include: task and motion planning and control, multimodal interaction with human and surrounding environment through perception, and cognitive robotics.


Sorry for this being a bare bones credit page, I have to go to school soon :P
- Ksanislo for making the original TitleDB, and wrote the API TitleDB 2.0 uses.
- Shameless-inc for making the beautiful front end, that TitleDB 2.0 uses.
- Steviece10 for making FBI which has/had TitleDB support built in, and other projects to the 3DS
- Anyone else that I forgot, make an issue and I'll add you to this list.


mongodb
Businessmodel of MongoDB
Customer Segments
MongoDB has a mass market business model, with no significant differentiation between customers. The company targets organizations across industries that wish to more effectively store and scale their data. Key industry users include Retail, Technology, Financial Services, and Government.
Value Proposition
MongoDB offers two primary value propositions: performance and brand/status.
The company’s solution has demonstrated powerful performance. A study by United Software Associates (using Yahoo’s Cloud Serving Benchmark as a basis) found that it performed better than other systems such as Cassandra and Couchbase Server, in some cases 25 times more strongly.
The company has developed a strong brand as a result of its performance. The DB-Engines Ranking website often identifies it as the fourth most popular database management system, as well as the most liked one for document stores. MongoDB has 15 million downloads, over 1,000 partners, and thousands of customers. Prominent clients include Adobe, Craigslist, eBay, LinkedIn, McAfee, MetLife, and SAP. In 2012 it was included on The Wall Street Journal’s list, “The Next Big Thing 2012.“
Channels
MongoDB’s main channels are its direct sales team and its website, through which it acquires most customers. The company promotes its offering through its social media pages, event attendance, and its hosting of MongoDB World, an annual developer conference. In addition, it offers free public courses about its system through MongoDB University, a training program. Over 300,000 students have taken the classes, which are offered online, on-site, and in public spaces around the world.
Customer Relationships
MongoDB’s customer relationship is primarily of a personal assistance nature. The company offers a wide range of services in order to assist customers with use of its product:
Private Training – The company offers a training program for a client’s employees that is customized to a given division’s goals. Students receive on-site, interactive, hands-on instruction from a MongoDB engineer. Typical student types include developers and administrators.
Certification – The company offers an exam that individuals can take in order to become MongoDB Certified Professionals. This status indicates that these employees have the expertise necessary to develop and maintain MongoDB applications. The cost is $150 per exam.
Consulting – The company offers consulting services to provide in-depth support for companies at various critical stages of a project’s lifecycle. These stages include development, production, and deployment. Consultants also provide access to the firm’s 1,000+ partners.
Despite this personal orientation, there is also a self-service component. MongoDB’s website includes a Resource Center that features numerous self-help resources, including white papers, datasheets, presentations, webinars, documentation, and answers to frequently asked questions.
Key Activities
MongoDB’s business model entails maintaining a robust platform for its customers.
Key Partners
MongoDB operates the MongoDB Partner Network, which includes over 1,000 organizations. They fall into the following categories:
Technology – Partners that have a cloud service, software application, or hardware platform that they want to integrate with the MongoDB database.
System Integrator – Partners that provide MongoDB-based solutions and services to customers who want to leverage the company‘s technology.
Reseller – Partners that purchase and resell MongoDB’s offerings to their customers.
OEMs – Original equipment manufacturers that want to embed MongoDB’s solution into their hardware, appliances, or applications.
Partners receive sales benefits such as premium discounts and invitations to sales meetings; marketing benefits such as newsletters, invitations to promotional events, and access to certified logos; and technical benefits such as access to the partner portal and engineering co-development. Specific current partners include Amazon Web Services, Bosch, C24 Technologies, and FastConnect.
Key Resources
MongoDB’s main resource is its proprietary software platform, which serves thousands of customers. It also depends on human resources in the form of its engineering employees to maintain the platform and its training/consulting staff to provide instruction. Lastly, as a start-up it has relied heavily on funding from outside parties, raising $311.1 million from 13 investors as of January 2015.
Cost Structure
MongoDB has a value-driven structure, aiming to provide a premium proposition through extensive personal service. Its biggest cost driver is likely employee related expenses. Other major drivers are in the areas of sales/marketing and customer support/operations, also fixed expenses.
Revenue Streams
MongoDB has two revenue streams:
Subscription Fees – Revenues generated from the fees the company charges for monthly access to its platform; sales staff must be contacted for specific pricing.
Service Fees – Revenues generated from fees the company charges for usage of its training, certification, and consulting service offerings; sales staff must be contacted for pricing.


Shakib's absence like losing 2 players - Bangladesh captain
Indore - Bangladesh captain Mominul Haque said on Wednesday the absence of banned all-rounder Shakib Al Hasan will be like missing two players, as the team prepared for their two-Test series in India.
Bangladesh arrived in India in shock after Shakib was handed a two-year ban, with one-year suspended, for failing to declare illegal approaches by a bookmaker in 2018.
The International Cricket Council (ICC) ban ruled Shakib out of the tour and next year's World T20 in Australia.
The touring side is also missing prolific opener Tamim Iqbal, who took a break due to family reasons.
"We are missing three players in two players. Shakib bhai (brother) is two players in one, and then you have Tamim bhai," Mominul told reporters on the eve of the first Test in Indore starting Thursday.
"It is challenging, but I also see it as a chance to do well for the rest of the players."
Mominul, much to his surprise, was named Test captain in place of Shakib and the batsman feels the responsibility will only make him a better player.
"I will probably be playing like I have always played as a batsman," said the left-hander.
"The positive side of captaincy is that your cricket gyan (knowledge) becomes better."
The 28-year-old added: "It is a huge opportunity for me as one of the junior players. Not everyone becomes Test captain, so I want to take this opportunity to do something more for the country."
The series is Bangladesh's first in the newly introduced world Test championship led by India with two series sweeps under their belt.
Mominul said it was a "great opportunity" for Bangladesh's players to make an impression.
"Playing a full series against India is a great opportunity for everyone in the team," said Mominul.
"Everyone wants to start well here, and on top of it we are playing the Test championship. Makes it a bigger opportunity for the players."
The second match of the series will be a day-night affair with the pink ball making its India debut at Kolkata's Eden Gardens.
Mominul said "neither side has played pink-ball cricket", and that would spur them on to do well in the series.


Specify the repository to track. This can be a URL or a local file path.
Note that for super-projects (repositories with submodules), only a local file
path or a complete URL is valid. The following are examples of valid git URLs.
-<EMAIL_ADDRESS>- git@github.com:github/git.git (short notation for ssh protocol)
-<EMAIL_ADDRESS>(to access the repos/R.git
repository in the user's home directory)
- https://github.com/github/git.git
If the repository is a super-project, the
location from which to clone submodules is dependent on whether the repository
is bare or non-bare (i.e. has a working directory).
- If the super-project is bare, the location of the submodules will be
taken from .gitmodules.
- If the super-project is not bare, it is assumed that the
repository has each of its submodules cloned and checked out appropriately.
Thus, the submodules will be taken directly from a path like
${SUPER_PROJECT_URL}/${SUBMODULE}
, rather than relying on
information from .gitmodules.
For a local URL/path to a super-project,
git rev-parse --is-bare-repository
is used to detect whether the super-project is bare or not.
For a remote URL to a super-project, the ending of the URL determines whether
a bare or non-bare repository is assumed:
- If the remote URL ends with .git, a non-bare repository is
assumed.
- If the remote URL does NOT end with .git, a bare
repository is assumed.


Trouble Logging in ?
Enter your email, we'll send you a link to get back into your account.
Email address
Send Reset Link
Don't have an account?
Signup
Remembered your Password?
Login


|
BCM686xx Management API
3.6.7
|
Object key: bcmolt_onu_key
| Subgroup | Description |
|---|---|
| cfg | Object configuration |
| Indication: ber_interval_configuration_completed | BER Interval Configuration Completed |
| Indication: cpu_packet | Indicates CPU packet was received on the US from this ONU id |
| Indication: dfi | Receive Dying-Gasp of ONUi |
| Indication: dgi | Receive Dying-Gasp of ONUi |
| Indication: dowi | Drift of Window of ONUi |
| Indication: err | ERR |
| Indication: gpon_alarm | GPON ONU Alarm |
| Indication: invalid_dbru_report | Invalid DBRu Report |
| Indication: key_exchange_completed | Key Exchange Completed |
| Indication: key_exchange_cycle_skipped | Key Exchange Cycle Skipped |
| Indication: key_exchange_decrypt_required | Key Exchange Decrypt Required |
| Indication: key_exchange_key_mismatch | Key Exchange Key Mismatch |
| Indication: key_exchange_key_request_timeout | Key Exchange Key Request Timeout |
| Indication: key_exchange_unconsecutive_index | Key Exchange Unconsecutive Index |
| Indication: loai | LOAi |
| Indication: loki | LOki |
| Indication: looci | LOOCi |
| Indication: memi | MEMi |
| Indication: omci_packet | Indicates OMCI packet was received on the US from this ONU id |
| Indication: omci_port_id_configuration_completed | OMCI PORT ID Configuration Completed |
| Indication: onu_activation_completed | ONU Activation Completed |
| Indication: onu_activation_standby_completed | onu activation standby completed |
| Indication: onu_deactivation_completed | ONU Deactivation Completed |
| Indication: onu_disable_completed | ONU Disable Completed |
| Indication: onu_enable_completed | ONU Enable Completed |
| Indication: onu_ready_for_data_grant | The ONU should be ready to get its first data grants (for the default alloc ID) to use it for acknowledgement. This is relevant for external and partial-external DBA types only |
| Indication: onu_tuning_in_completed | ONU Tuning in completed |
| Indication: onu_tuning_out_completed | ONU Tuning out completed |
| Indication: optical_reflection | An optical reflection condition was detected. |
| Indication: password_authentication_completed | Password Authentication Completed |
| Indication: pee | PEE |
| Indication: possible_drift | An ONU in a low power state may be experiencing drift beyond the configured threshold. The estimate may be inaccurate depending on ONU behavior. Actual drift may be less than estimated. |
| Indication: power_consumption_report | Power consumption report |
| Indication: power_level_report | Power level report |
| Indication: power_management_state_change | Notification that an ONUs power management state has changed. |
| Indication: pqsi | ploam queue status |
| Indication: pst | PST |
| Indication: range_value_changed | Range Value Changed |
| Indication: ranging_completed | Ranging Completed |
| Indication: registration_id | Registration ID |
| Indication: rei | REI |
| Indication: rssi_measurement_completed | RSSI Measurement Completed |
| Indication: sdi | Signal Degraded of ONUi |
| Indication: secure_mutual_authentication_failure | Failure of secure mutual authentication due to MIC error |
| Indication: sfi | Signal Fail of ONUi |
| Indication: state_change | State Change |
| Indication: sufi | SUFi |
| Indication: tiwi | Transmission Interference Warning |
| Indication: tuning_response | Tuning response |
| Indication: xgpon_alarm | XGPON ONU Alarm |
| Operation: adjust_tx_wavelength | Instruct the ONU to adjust its upstream transmitter wavelength |
| Operation: change_power_levelling | Change power levelling |
| Operation: cpu_packets | XGPON CPU packets |
| Operation: force_deactivation | Force deactivation |
| Operation: get_power_consumption | ONU should report its power consumption information via the Power Consumption Report Ploam message |
| Operation: get_power_level | ONU should report its launch optical power level as part of the Acknowledgment Ploam message |
| Operation: ploam_packet | PLOAM Packet |
| Operation: request_registration | Request the ONU to send its Registration ID |
| Operation: rssi_measurement | RSSI Measurement |
| Operation: secure_mutual_authentication | OMCI base secure mutual authentication |
| Operation: set_onu_state | Set ONU State |
| Operation: tuning_in | ONU Tuning in |
| Operation: tuning_out | ONU Tuning out |


Please wait while we check if the server is online!
Oops! It looks like we are having some trouble connecting to the server.. Please try again later!


The sixth OMNeT++ Community Summit will be held at the Hamburg University of Technology from Wednesday to Friday, September 04-06, 2019.
OMNeT++ is a public-source, component-based, modular and open-architecture simulation environment with strong GUI support and an embeddable simulation kernel. It is designed to simulate discrete event systems, with the simulation of communication networks as one of its primary application areas.
In continuation of the history of the International Workshop on OMNeT++ and four very successful editions of its reincarnation, the OMNeT++ Community Summit, we continue to hold a yearly open meeting for all OMNeT++ community members with less costs and more interaction possibilities. The Community Summit provides a forum for tutorials, discussion sessions and presentations on recent developments and novel ideas in the area of simulation and modeling, with a focus on the OMNeT++ simulation environment.
The first five Summits in Hamburg, Zurich, Brno, Bremen, and Pisa were huge successes with lively discussions, keynotes, tutorials, panels, presentations, and demonstrations of ongoing and finalized research covering many aspects of OMNeT++-related research. The 2019 event continues to expand the idea of a yearly community summit by explicitly addressing the interaction through tutorials, panels and coding sessions. Additionally, there will be the possibility to submit scientific contributions which will be reviewed and (depending on their acceptance) be published.
The OMNeT++ summit unites users, developers, and researchers to discuss applications, developments, and ideas on the topics of integrating simulation models, coupling different simulation tools and providing more accurate and more efficient modeling approaches and simulation models.
We invite researchers and users alike to submit one or more of the following contribution types:
All submissions should be of interest to the OMNeT++ community. We welcome case studies that employ OMNeT++ in the evaluation of systems as well as contributions addressing general questions of OMNeT++-based simulations. For model-centric submissions, we ask the author(s) to publicize source code at the time of submission.
All submissions will be checked by the organizers and scientific submissions will be reviewed by the technical program committee. Proposals for individual contributions will be invited depending on the submission type and based on the expected interest for the OMNeT++ community. We provide poster slots for all interested participants.
Topics of interest include, but are not limited to:
After the great success of the first Hackathon in Pisa last year, a similiar Hackathon is again going to be organized together with this year's OMNeT++ Community Summit.
The hackathon gives developers of simulation models and simulation frameworks the chance to consult and team-up with the OMNeT++ core developer team and fellow framework developers, in order to improve the quality and interoperability of simulation models and frameworks and to work on topics proposed by the developers themselves. Participants and topics will be selected based on prior written project proposals.
Exemplary topics for hackathon projects:
Authors are encouraged to submit their tutorial / demo / hackathon/ discussion proposals as well as their scientific contributions describing original, previously unpublished work, not currently under review by another conference or venue, addressing state-of-the-art research and topics as listed. If a submission extends work described in a previous publication of their own, we strongly encourage authors to include a citation to that publication.
Abstracts and scientific submissions must be submitted electronically via EasyChair, all other proposals can be submitted via e-mail to the summit organizers.
Full papers and short abstracts should be prepared with the Easychair EPiC series template, available online. Please prepare your submission with the letter page format and the [EPiC] mode enabled. You can indicate your submission type during the submission process in Easychair (e.g., scientific contribution, tutorial, demonstration).
Scientific contributions accepted by the TPC and presented at the summit will be published in the indexed open access journal "EPiC Series in Computing" (pending agreement). Copyrights for all contributions (including the EPiC submitted articles) will remain solely with the authors. This allows for a publication of revised versions at other venues.
The 6th OMNeT++ Community Summit will take place at the Hamburg University of Technology in Germany.
On-Site Location:
Hamburg University of Technology - Building D, Room D2.022
Am Schwarzenberg-Campus 4, 21073 Hamburg
All of the following hotels are within walking distance of the summit venue and have a good rating:
B&B Hotel Hamburg-Harburg Theodor-Yorck-Straße 1 21079 Hamburg
Altstadthotel Harburg Neue Straße 61 21073 Hamburg
Apartment Hotel am Sand Sand 21 / Hölertwiete 14 21073 Hamburg
Hotel Panorama Hamburg-Harburg ★★★★ Harburger Ring 8-10 21073 Hamburg
For additional hotels, please check for instance www.booking.com and search for Hamburg-Harburg.
With more than 1.8 million people, the Free and Hanseatic City of Hamburg is the second largest city in Germany. The port of Hamburg is the third largest port in Europe. Hamburg's many streams, rivers and canals are crossed by over 2300 bridges, more than London, Amsterdam and Venice put together. The city is a major tourist destination for both domestic and overseas visitors; it was ranked 10th in the world for liveability in 2017. The average temperature in September is around 18°C.
If you would like to spend some additional days in Hamburg, you could visit the following sights:
In case you want to contact the organizers, feel free to write an e-mail to: omnetsummit2019 [at] easychair [dot] org.
The OMNeT++ Community Summit 2019 is sponsored together by the Institute of Communication Networks and the Institute of Telematics at Hamburg University of Technology. No registration fees will apply.


timelinefx:timelinefx.tlEmitter.AngleType
Property AngleType:Int
Set the angle type.
Angle type tells the particle how it show orientate itself when spawning. Either tlANGLEALIGN, tlANGLERANDOM or tlANGLE_SPECIFY.
- tlANGLE_ALIGN: Force the particle to align itself with the direction that it's travelling in.
- tlANGLE_RANDOM: Choose a random angle.
- tlANGLE_SPECIFY: Specify the angle that the particle spawns with.
Use AngleOffset to control the either both the specific angle, random range of angles and an offset if aligning.


The (clock radio) icecast streaming app.
An open source project (MIT License)
http://github.com/rejhgadellaa/icerrr/
See what's new:
https://github.com/(..)/wiki/Changelog
Copyright (c) 2014 REJH Gadellaa
Icerrr would not be possible without the following projects:
Default/placeholder album art photo:
Jeff Holt, CC license


CREATE YOUR OWN
Note taking space
No specific steps here
Quick Notes:
Add notes here!
ADD
Clear Notes
ABOUT
INSPO
RUTINA SQUARED


{% extends "hqwebapp/base_mobile.html" %} {% load hq_shared_tags %} {% load crispy_forms_tags %} {% load i18n %} {% block title %}{% trans "Registration" %}{% endblock %} {% block header %}
{% blocktrans %} Thank you for registering. Please click here to go to the Google Play store, and then download and install CommCare. {% endblocktrans %}
{% blocktrans %} Your registration invitation has expired. Please contact your administrator. {% endblocktrans %}
{% blocktrans %} ERROR: Cannot register another user because this project has exceeded its user limit. Please contact your administrator. {% endblocktrans %}


SimpleKeyboard
Root class for simple-keyboard This class:
- Parses the options
- Renders the rows and buttons
- Handles button functionality
Constructor Summary
| Public Constructor | ||
| public |
constructor(params: Array) Creates an instance of SimpleKeyboard |
Member Summary
| Public Members | ||
| public |
|
|
| public |
Only first instance should insall the caret handling events |
|
| public |
Get module prop |
|
| public |
getModulesList |
|
| public |
|
|
| public |
|
|
| public |
Ensures that onInit is only called once per instantiation |
|
| public |
simple-keyboard uses a non-persistent internal input to keep track of the entered string (the variable |
|
| public |
|
|
| public |
keyboardDOM: * Processing options |
|
| public |
|
|
| public |
|
|
| public |
modules: {} Modules |
|
| public |
|
|
| public |
Physical Keyboard support |
|
| public |
Register module |
|
| public |
setOptions(option: object): * Set new option or modify existing ones after initialization. |
|
| public |
utilities: * Initializing Utilities |
Method Summary
| Public Methods | ||
| public |
addButtonTheme(buttons: string, className: string): boolean Adds/Modifies an entry to the |
|
| public |
caretEventHandler(event: *) Called by handleCaret when an event that warrants a cursor position update is triggered |
|
| public |
clear() Remove all keyboard rows and reset keyboard values. |
|
| public |
clearInput(inputName: string) Clear the keyboard’s input. |
|
| public |
Send a command to all simple-keyboard instances at once (if you have multiple instances). |
|
| public |
getButtonElement(button: string): * Get the DOM Element of a button. |
|
| public |
Get the keyboard’s input (You can also get it from the onChange prop). |
|
| public |
handleButtonClicked(button: string): boolean Handles clicks made to keyboard buttons |
|
| public |
handleButtonHold(button: *) Handles button hold |
|
| public |
handleButtonMouseDown(button: *, e: *) Handles button mousedown |
|
| public |
Handles button mouseup |
|
| public |
Retrieves the current cursor position within a input or textarea (if any) |
|
| public |
Load modules |
|
| public |
onInit() Executes the callback function once simple-keyboard is rendered for the first time (on initialization). |
|
| public |
Executes the callback function once all modules have been loaded |
|
| public |
onRender() Executes the callback function every time simple-keyboard is rendered (e.g: when you change layouts). |
|
| public |
removeButtonTheme(buttons: string, className: string): boolean Removes/Amends an entry to the |
|
| public |
render() Renders rows and buttons as per options |
|
| public |
replaceInput(inputObj: object) Replace the input object ( |
|
| public |
Set the keyboard’s input. |
|
| public |
Send a command to all simple-keyboard instances (if you have several instances). |
Public Constructors
public constructor(params: Array) source
Creates an instance of SimpleKeyboard
Params:
| Name | Type | Attribute | Description |
| params | Array | If first parameter is a string, it is considered the container class. The second parameter is then considered the options object. If first parameter is an object, it is considered the options object. |
Public Members
public input: object source
simple-keyboard uses a non-persistent internal input to keep track of the entered string (the variable keyboard.input
).
This removes any dependency to input DOM elements. You can type and directly display the value in a div element, for example.
Example:
// To get entered input
let input = keyboard.getInput();
// To clear entered input.
keyboard.clearInput();
public options: object source
Properties:
| Name | Type | Attribute | Description |
| layout | object | Modify the keyboard layout. |
|
| layoutName | string | Specifies which layout should be used. |
|
| display | object | Replaces variable buttons (such as {bksp}) with a human-friendly name (e.g.: “backspace”). |
|
| mergeDisplay | boolean | By default, when you set the display property, you replace the default one. This setting merges them instead. |
|
| theme | string | A prop to add your own css classes to the keyboard wrapper. You can add multiple classes separated by a space. |
|
| buttonTheme | Array | A prop to add your own css classes to one or several buttons. |
|
| debug | boolean | Runs a console.log every time a key is pressed. Displays the buttons pressed and the current input. |
|
| newLineOnEnter | boolean | Specifies whether clicking the “ENTER” button will input a newline (\n) or not. |
|
| tabCharOnTab | boolean | Specifies whether clicking the “TAB” button will input a tab character (\t) or not. |
|
| inputName | string | Allows you to use a single simple-keyboard instance for several inputs. |
|
| maxLength | number | Restrains all of simple-keyboard inputs to a certain length. This should be used in addition to the input element’s maxlengthattribute. |
|
| maxLength | object | Restrains simple-keyboard’s individual inputs to a certain length. This should be used in addition to the input element’s maxlengthattribute. |
|
| syncInstanceInputs | boolean | When set to true, this option synchronizes the internal input of every simple-keyboard instance. |
|
| physicalKeyboardHighlight | boolean | Enable highlighting of keys pressed on physical keyboard. |
|
| preventMouseDownDefault | boolean | Calling preventDefault for the mousedown events keeps the focus on the input. |
|
| physicalKeyboardHighlightTextColor | string | Define the text color that the physical keyboard highlighted key should have. |
|
| physicalKeyboardHighlightBgColor | string | Define the background color that the physical keyboard highlighted key should have. |
|
| onKeyPress | function(button: string): string | Executes the callback function on key press. Returns button layout name (i.e.: “{shift}”). |
|
| onChange | function(input: string): string | Executes the callback function on input change. Returns the current input’s string. |
|
| onRender | function | Executes the callback function every time simple-keyboard is rendered (e.g: when you change layouts). |
|
| onInit | function | Executes the callback function once simple-keyboard is rendered for the first time (on initialization). |
|
| onChangeAll | function(inputs: object): object | Executes the callback function on input change. Returns the input object with all defined inputs. |
Public Methods
public addButtonTheme(buttons: string, className: string): boolean source
Adds/Modifies an entry to the buttonTheme
. Basically a way to add a class to a button.
public caretEventHandler(event: *) source
Called by handleCaret when an event that warrants a cursor position update is triggered
Params:
| Name | Type | Attribute | Description |
| event | * |
public clear() source
Remove all keyboard rows and reset keyboard values. Used interally between re-renders.
public clearInput(inputName: string) source
Clear the keyboard’s input.
Params:
| Name | Type | Attribute | Description |
| inputName | string |
|
optional - the internal input to select |
public dispatch(callback: function(instance: object, key: string)): * source
Send a command to all simple-keyboard instances at once (if you have multiple instances).
Return:
| * |
public getButtonElement(button: string): * source
Get the DOM Element of a button. If there are several buttons with the same name, an array of the DOM Elements is returned.
Params:
| Name | Type | Attribute | Description |
| button | string | The button layout name to select |
Return:
| * |
public getInput(inputName: string): * source
Get the keyboard’s input (You can also get it from the onChange prop).
Params:
| Name | Type | Attribute | Description |
| inputName | string |
|
optional - the internal input to select |
Return:
| * |
public handleButtonClicked(button: string): boolean source
Handles clicks made to keyboard buttons
Params:
| Name | Type | Attribute | Description |
| button | string | The button's layout name. |
public handleButtonHold(button: *) source
Handles button hold
Params:
| Name | Type | Attribute | Description |
| button | * |
public handleButtonMouseDown(button: *, e: *) source
Handles button mousedown
Params:
| Name | Type | Attribute | Description |
| button | * | ||
| e | * |
public handleCaret() source
Retrieves the current cursor position within a input or textarea (if any)
public onInit() source
Executes the callback function once simple-keyboard is rendered for the first time (on initialization).
public onRender() source
Executes the callback function every time simple-keyboard is rendered (e.g: when you change layouts).
public removeButtonTheme(buttons: string, className: string): boolean source
Removes/Amends an entry to the buttonTheme
. Basically a way to remove a class previously added to a button through buttonTheme or addButtonTheme.
public replaceInput(inputObj: object) source
Replace the input object (keyboard.input
)
Params:
| Name | Type | Attribute | Description |
| inputObj | object | The input object |
public syncInstanceInputs() source
Send a command to all simple-keyboard instances (if you have several instances).


The Anniversary (1968) 91m.
Even if you're not a Bette Davis fan you'll find her impossible to resist in this nasty, often hilarious comedy by director Roy Ward Baker. Davis is the matriarch of a family business who treats her three children more like board members than sons. The boys (two of them with female partners) gather at the family home for their mother's ruby wedding anniversary (their father has since passed on, and Davis wears a bright red dress for the occasion). They pledge that this year will be different. Fat chance.
Film version of Bill MacIlwraith's play looks pretty much how it would in a theater - there are only two outdoor scenes and neither of them are essential. Also, Baker elects not to use a background score. Quite rightly, the rhythm comes from the sharp, snappy dialogue. And Davis snaps with the best of them. She gives a delicious performance as 'Mum' (almost every line she delivers is a put-down) and succeeds in making us admire a character who by rights we should view as monstrous. What helps us from being put off the Davis character altogether is that we're not sure who to root for otherwise. We want her sons (and their partners) to break free of their mother's control, but none of them seem deserving of our support. They're either wishy-washy or petulant. It's noteworthy that the only one we come to admire (Sheila Hancock) is just as sharp-tongued and strong-willed as Davis - her worthy foil. As the film goes on, fiancee Elaine Taylor is ready to follow her example. You have to question Davis' real opinions of her children: does she even love them at all? I think it's more a case of maternal instinct in overdrive. Consider, for example, if Davis had three daughters instead of sons. I don't believe she'd be as possessive if she was in the position of welcoming another gender (sons-in-law) to the family home. As it is, the men in this film are tokens to be claimed and fought for - the only one exempt from this treatment is the most soft-spoken of the trio, who has a fetish that is decidedly effeminate. In the end, it doesn't even concern us what real opinion Davis has of any of the others at her party - she so enjoys her Machiavellian power plays that it's easy enough for us to believe that she's simply acting that way for the sheer hell of it.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Before you begin you should go through the requirements and make sure that Google App Engine SDK for Python and Node.js are installed.
We are also going to assume that you will follow all the suggested names for the directories and files, because in some steps we might refer to what was suggested without further explanations.
In this tutorial we're not going to explain how Google App Engine works, so if you have never played with it before you should at least finish the Getting Started: Python 2.7 before continuing with this one.


class Timer – control internal timers¶
Timers can be used for a great variety of tasks. At the moment, only the simplest case is implemented: that of calling a function periodically.
Each timer consists of a counter that counts up at a certain rate. The rate at which it counts is the peripheral clock frequency (in Hz) divided by the timer prescaler. When the counter reaches the timer period it triggers an event, and the counter resets back to zero. By using the callback method, the timer event can call a Python function.
Example usage to toggle an LED at a fixed frequency:
tim = pyb.Timer(4) # create a timer object using timer 4
tim.init(freq=2) # trigger at 2Hz
tim.callback(lambda t:pyb.LED(1).toggle())
Example using named function for the callback:
def tick(timer): # we will receive the timer object when being called
print(timer.counter()) # show current timer's counter value
tim = pyb.Timer(4, freq=1) # create a timer object using timer 4 - trigger at 1Hz
tim.callback(tick) # set the callback to our tick function
Further examples:
tim = pyb.Timer(4, freq=100) # freq in Hz
tim = pyb.Timer(4, prescaler=0, period=99)
tim.counter() # get counter (can also set)
tim.prescaler(2) # set prescaler (can also get)
tim.period(199) # set period (can also get)
tim.callback(lambda t: ...) # set callback for update interrupt (t=tim instance)
tim.callback(None) # clear callback
Note: Timer(2) and Timer(3) are used for PWM to set the intensity of LED(3) and LED(4) respectively. But these timers are only configured for PWM if the intensity of the relevant LED is set to a value between 1 and 254. If the intensity feature of the LEDs is not used then these timers are free for general purpose use. Similarly, Timer(5) controls the servo driver, and Timer(6) is used for timed ADC/DAC reading/writing. It is recommended to use the other timers in your programs.
Note: Memory can’t be allocated during a callback (an interrupt) and so
exceptions raised within a callback don’t give much information. See
micropython.alloc_emergency_exception_buf()
for how to get around this
limitation.
Constructors¶
-
class
pyb.
Timer
(id, ...)¶ Construct a new timer object of the given id. If additional arguments are given, then the timer is initialised by
init(...)
.id
can be 1 to 14.
Methods¶
-
Timer.
init
(*, freq, prescaler, period)¶ Initialise the timer. Initialisation must be either by frequency (in Hz) or by prescaler and period:
tim.init(freq=100) # set the timer to trigger at 100Hz tim.init(prescaler=83, period=999) # set the prescaler and period directly
Keyword arguments:
freq
— specifies the periodic frequency of the timer. You might also view this as the frequency with which the timer goes through one complete cycle.prescaler
[0-0xffff] - specifies the value to be loaded into the timer’s Prescaler Register (PSC). The timer clock source is divided by (prescaler + 1
) to arrive at the timer clock. Timers 2-7 and 12-14 have a clock source of 84 MHz (pyb.freq()[2] * 2), and Timers 1, and 8-11 have a clock source of 168 MHz (pyb.freq()[3] * 2).period
[0-0xffff] for timers 1, 3, 4, and 6-15. [0-0x3fffffff] for timers 2 & 5. Specifies the value to be loaded into the timer’s AutoReload Register (ARR). This determines the period of the timer (i.e. when the counter cycles). The timer counter will roll-over afterperiod + 1
timer clock cycles.mode
can be one of:Timer.UP
- configures the timer to count from 0 to ARR (default)Timer.DOWN
- configures the timer to count from ARR down to 0.Timer.CENTER
- configures the timer to count from 0 to ARR and then back down to 0.
div
can be one of 1, 2, or 4. Divides the timer clock to determine the sampling clock used by the digital filters.callback
- as per Timer.callback()deadtime
- specifies the amount of “dead” or inactive time between transitions on complimentary channels (both channels will be inactive) for this time).deadtime
may be an integer between 0 and 1008, with the following restrictions: 0-128 in steps of 1. 128-256 in steps of 2, 256-512 in steps of 8, and 512-1008 in steps of 16.deadtime
measures ticks ofsource_freq
divided bydiv
clock ticks.deadtime
is only available on timers 1 and 8.
You must either specify freq or both of period and prescaler.
-
Timer.
deinit
()¶ Deinitialises the timer.
Disables the callback (and the associated irq).
Disables any channel callbacks (and the associated irq). Stops the timer, and disables the timer peripheral.
-
Timer.
callback
(fun)¶ Set the function to be called when the timer triggers.
fun
is passed 1 argument, the timer object. Iffun
isNone
then the callback will be disabled.
-
Timer.
channel
(channel, mode, ...)¶ If only a channel number is passed, then a previously initialized channel object is returned (or
None
if there is no previous channel).Otherwise, a TimerChannel object is initialized and returned.
Each channel can be configured to perform pwm, output compare, or input capture. All channels share the same underlying timer, which means that they share the same timer clock.
Keyword arguments:
mode
can be one of:Timer.PWM
— configure the timer in PWM mode (active high).Timer.PWM_INVERTED
— configure the timer in PWM mode (active low).Timer.OC_TIMING
— indicates that no pin is driven.Timer.OC_ACTIVE
— the pin will be made active when a compare match occurs (active is determined by polarity)Timer.OC_INACTIVE
— the pin will be made inactive when a compare match occurs.Timer.OC_TOGGLE
— the pin will be toggled when an compare match occurs.Timer.OC_FORCED_ACTIVE
— the pin is forced active (compare match is ignored).Timer.OC_FORCED_INACTIVE
— the pin is forced inactive (compare match is ignored).Timer.IC
— configure the timer in Input Capture mode.Timer.ENC_A
— configure the timer in Encoder mode. The counter only changes when CH1 changes.Timer.ENC_B
— configure the timer in Encoder mode. The counter only changes when CH2 changes.Timer.ENC_AB
— configure the timer in Encoder mode. The counter changes when CH1 or CH2 changes.
callback
- as per TimerChannel.callback()pin
None (the default) or a Pin object. If specified (and not None) this will cause the alternate function of the the indicated pin to be configured for this timer channel. An error will be raised if the pin doesn’t support any alternate functions for this timer channel.
Keyword arguments for Timer.PWM modes:
pulse_width
- determines the initial pulse width value to use.pulse_width_percent
- determines the initial pulse width percentage to use.
Keyword arguments for Timer.OC modes:
compare
- determines the initial value of the compare register.polarity
can be one of:Timer.HIGH
- output is active highTimer.LOW
- output is active low
Optional keyword arguments for Timer.IC modes:
polarity
can be one of:Timer.RISING
- captures on rising edge.Timer.FALLING
- captures on falling edge.Timer.BOTH
- captures on both edges.
Note that capture only works on the primary channel, and not on the complimentary channels.
Notes for Timer.ENC modes:
Requires 2 pins, so one or both pins will need to be configured to use the appropriate timer AF using the Pin API.
Read the encoder value using the timer.counter() method.
Only works on CH1 and CH2 (and not on CH1N or CH2N)
The channel number is ignored when setting the encoder mode.
PWM Example:
timer = pyb.Timer(2, freq=1000) ch2 = timer.channel(2, pyb.Timer.PWM, pin=pyb.Pin.board.X2, pulse_width=8000) ch3 = timer.channel(3, pyb.Timer.PWM, pin=pyb.Pin.board.X3, pulse_width=16000)
-
Timer.
counter
([value])¶ Get or set the timer counter.
-
Timer.
freq
([value])¶ Get or set the frequency for the timer (changes prescaler and period if set).
-
Timer.
period
([value])¶ Get or set the period of the timer.
-
Timer.
prescaler
([value])¶ Get or set the prescaler for the timer.
-
Timer.
source_freq
()¶ Get the frequency of the source of the timer.
class TimerChannel — setup a channel for a timer¶
Timer channels are used to generate/capture a signal using a timer.
TimerChannel objects are created using the Timer.channel() method.
Methods¶
-
timerchannel.
callback
(fun)¶ Set the function to be called when the timer channel triggers.
fun
is passed 1 argument, the timer object. Iffun
isNone
then the callback will be disabled.
-
timerchannel.
capture
([value])¶ Get or set the capture value associated with a channel. capture, compare, and pulse_width are all aliases for the same function. capture is the logical name to use when the channel is in input capture mode.
-
timerchannel.
compare
([value])¶ Get or set the compare value associated with a channel. capture, compare, and pulse_width are all aliases for the same function. compare is the logical name to use when the channel is in output compare mode.
-
timerchannel.
pulse_width
([value])¶ Get or set the pulse width value associated with a channel. capture, compare, and pulse_width are all aliases for the same function. pulse_width is the logical name to use when the channel is in PWM mode.
In edge aligned mode, a pulse_width of
period + 1
corresponds to a duty cycle of 100% In center aligned mode, a pulse width ofperiod
corresponds to a duty cycle of 100%
-
timerchannel.
pulse_width_percent
([value])¶ Get or set the pulse width percentage associated with a channel. The value is a number between 0 and 100 and sets the percentage of the timer period for which the pulse is active. The value can be an integer or floating-point number for more accuracy. For example, a value of 25 gives a duty cycle of 25%.