Configuration Files for Training¶
This page gives a tutorial on how to generate your custom training configuration files.
This configuration files can be used to select datasets, training configuration, and active learning settings. These files are in json format.
{
"model": {
"architecture": "resnet18",
"target_classes": 10
},
"train_parameters": {
"lr": 0.001,
"batch_size": 1000,
"n_epoch": 50,
"max_accuracy": 0.95,
"isreset": true,
"islogs": true,
"logs_location": "./logs.txt"
},
"active_learning":{
"strategy": "badge",
"budget": 1000,
"rounds": 15,
"initial_points":1000,
"strategy_args":{
"batch_size" : 1000,
"lr":0.001
}
},
"dataset":{
"name":"cifar10"
}
}
The configuration files consists of following sections:
Model
Training Parameters
Active Learning Configuration
Dataset
Symbol (%) represents mandatory arguments
model
- architecture %
- Model architecture to be used, Presently it supports the below mentioned architectures.
resnet18
two_layer_net
- target_classes %
Number of output classes for prediction.
- input_dim
Input dimension of the dataset. To be mentioned while using two layer net.
- hidden_units_1
Number of hidden units to be used in the first layer. To be mentioned while using two layer net.
train_parameters
- lr %
Learning rate to be used for training.
- batch_size %
Batch size to be used for training.
- n_epoch %
Maximum number of epochs for the model to train.
- max_accuracy
Maximum training accuracy after which training should be stopped.
- isreset
- Reset weight whenever the model training starts.
True
False
- islogs
- Log training output.
True
False
- logs_location %
Location where logs should be saved.
active_learning
- strategy %
- Active learning strategy to be used.
badge
glister
entropy_sampling
margin_sampling
least_confidence
core_set
random_sampling
fass
bald_dropout
adversarial_bim
kmeans_sampling
baseline_sampling
adversarial_deepfool
- budget %
Number of points to be selected by the active learning strategy.
- rounds %
Total number of rounds to run active learning for.
- initial_points
Initial number of points to start training with.
- strategy_args
Arguments to pass to the strategy. It varies from strategy to strategy. Please refer to the documentation of the strategy that is being used.
dataset
- name
- Name of the dataset to be used. It presently supports following datasets.
cifar10
mnist
fmnist
svhn
cifar100
satimage
ijcnn1
You can refer to various configuration examples in the configs/ folders of the DISTIL repository.


Hello, I'm Keenan!
A software engineer with a passion for problem solving and growth.
Marine Corps veteran and former air traffic controller.
Marine Corps veteran and former air traffic controller.
Dev | HTML | CSS | JAVASCRIPT
Here are my FAVORITE projects so far!
-
More coming soon :)


Video: Georgia Fan’s Reaction To Last-Second Heave Is Going Viral
by Andrew HolleranGeorgia’s men’s basketball team beat Georgia Tech this evening, 82-78, to move to 4-0 on the season. That’s not the reason for this post, though.
The spread of the game is…
Georgia entered tonight’s contest as a 4.5-point favorite. The Bulldogs were leading by 7 points with time expiring.
The Yellow Jackets then put a halfcourt heave at the buzzer and it went in. Georgia won by four points. Georgia Tech covered the spread.
That is what folks in the sports gambling community call a “bad beat,” a.k.a. a game that shouldn’t been a winner, but lost in crushing fashion.
This guy seems to know what we’re talking about…
You only react to an otherwise meaningless buzzer-beater like that if you have money on the game. At least his Bulldogs came away a winner tonight.


Surfing is the most blissful experience you can have
on this planet, a taste of heaven.
1/5
Surfing is the most blissful experience you can have
on this planet, a taste of heaven.
By better understanding the various aspects of surfing, you will improve faster and have more fun in the water.
Read MoreSurf Camps
By better understanding the various aspects of surfing, By better understanding the various aspects of surfing, you will improve faster and have more fun in the water.
Read MoreSurf Camps
By better understanding the various aspects of By better understanding the various aspects of surfing, By better understanding the various aspects of surfing, you will improve faster and have more fun in the water.
Read MoreBy better understanding the various aspects of surfing, you will improve faster and have more fun in the water.


Jiahui Chen joined ZJU Interactive Data Group at State Key Lab of CAD&CG, Zhejiang University as a master student in Sep 2018. She works on visual analytics of urban problems, such as planning road lanes and tracking air pollution propagation, leveraging the power of big urban data and visual interactions which support the engagement of human expertise.
MSc Computer Science, 2021
Zhejiang University
BEng in Food Science and Engineering, 2016
Zhejiang University


Please fill out the following fields to login:
After logging in, you will be redirected to {{ vm.loginUrl }}
{{ vm.errors.email[0] }}
{{ vm.errors.password[0] }}


Details Slides Video
Details Slides
Details Slides ZBMed
Details Slides Video Course page
Details Slides Tutorial
Details Slides Conference
Details Slides Video Conference
Details PDF Slides
Details
Details Video


bits packed as bytes, the last byte is padded with 0s
offset at which the last bit is in the last byte
offset at which the first bit is in the first byte
read the last bit from a bitstream
read the last bit from a bitstream
a (stream, bit) pair where stream is an updated bitstream and bit is the last bit
read the last byte from a bitstream
read the last byte from a bitstream
a (stream, byte) pair where stream is an updated bitstream and byte is the last byte
read the first bit from a bitstream
read the first byte from a bitstream
append a bit to a bistream
append a bit to a bistream
bit to append
an update bitstream
append bits to a bistream
append bits to a bistream
bits to append
an update bitstream
append a byte to a bitstream
append a byte to a bitstream
byte to append
an updated bitstream
append bytes to a bitstream
append bytes to a bitstream
bytes to append
an udpdate bitstream
Bit stream that can be written to and read at both ends (i.e. you can read from the end or the beginning of the stream)
bits packed as bytes, the last byte is padded with 0s
offset at which the first bit is in the first byte
offset at which the last bit is in the last byte


On /co/, paste this in the subject field and remove the first line:
[TITLE]
with a title of your choice and [POST]
with last OP's ID.
{% extends "layout.html" %} {% block header_includes %} {% endblock %} {% block body %}
[TITLE]
with a title of your choice and [POST]
with last OP's ID.


It is an introduction of Hadoop installation under pseudo-distributed model. The difference among single node, pseudo-distributed and distributed is introduced here: link.
Install Homebrew and Cask
Homebrew is a free and open-source software package management system that simplifies the installation of software on Apple’s macOS operating system. Originally written by Max Howell, the package manager has gained popularity in the Ruby on Rails community and earned praise for its extensibility. Homebrew has been recommended for its ease of use as well as its integration into the command line.
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ brew install caskroom/cask/brew-cask
Install Java
Use Homebrew:
$ brew update
$ brew cask install java
Or, download Java from offical website and install it manually: link.
Configure SSH
In order to keep the safety of Hadoop remote administration as well as user sharing among Hadoop nodes, Hadoop requires SSH protocol. First, go to System Preferences -> Sharing
, change Allow access for
: All Users. Then open Terminal, input ssh localhost
, if terminal returns Last login: Sun Jul 2 16:57:36 2017
, which means that you have configured SSH Keys successfully before.
If you suffer the problem of ssh: connect to host localhost port 22: Connection refused
, it happens since the remote login is closed.
$ sudo systemsetup -getremotelogin
Remote Login: off
You need to open port 22 in Mac OS X:
$ sudo systemsetup -setremotelogin on
$ ssh localhost
Last login: ...
And if you did not get the information of Last login: ...
, then you need to create a new configuration:
$ ssh-keygen -t rsa
Executing the command above will generate a id_rsa
file in .ssh
directory under the current user directory, after that, input the following command:
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
which is used to authorize your public key to the local to prevent the passphrase request when you login, then, input ssh localhost
again, if it will return Last login: ...
.
Install Hadoop
First, install Hadoop via Homebrew: brew install hadoop
, it will install the hadoop under /usr/local/Cellar/hadoop
.
Then, you need to modify the configuration files.
Go to usr/local/Cellar/hadoop/2.8.0/libexec/etc/hadoop
, then open hadoop-env.sh
export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true"
change to
export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true -Djava.security.krb5.realm= -Djava.security.krb5.kdc="
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home"
Then configure HDFS address and port number, open core-site.xml
, input following content in <configuration></configuration>
tag
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/Cellar/hadoop/hdfs/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:8020</value>
</property>
</configuration>
Configure jobtracker
address and port number in map-reduce, first sudo cp mapred-site.xml.template mapred-site.xml
to make a copy of mapred-site.xml
, and open mapred-site.xml
, add
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:8021</value>
</property>
</configuration>
Set HDFS default backup, the default value is 3, we should change to 1, open hdfs-site.xml
, add
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
Before running background program, we should format the installed HDFS first, executing command hdfs namenode -format
, when terminal returns a long inforamtion like:
17/07/02 16:11:05 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
......
17/07/02 16:11:07 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at haodemacbook-pro.local/<IP_ADDRESS>
************************************************************/
It means that we finish HDFS configuration, and Hadoop is ready to launch. Besides, maybe you will get a warning
$ ... WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
It happens since you are running on 64-bit system but Hadoop native library is based on 32-bit. This is not a big issue. If it appears, you can fixed by refering this link: here.
Launch Hadoop
Go to /usr/local/Cellar/hadoop/2.8.0/sbin
, execute:
$ ./start-dfs.sh # start HDFS service
$ ./stop-dfs.sh # stop HDFS service
Ternimal will return the following information:
Starting namenodes on [localhost]
localhost: starting namenode, logging to /usr/local/Cellar/hadoop/2.8.0/libexec/logs/hadoop-zhanghao-namenode-HaodeMacBook-Pro.local.out
localhost: starting datanode, logging to /usr/local/Cellar/hadoop/2.8.0/libexec/logs/hadoop-zhanghao-datanode-HaodeMacBook-Pro.local.out
Starting secondary namenodes [<IP_ADDRESS>]
It means the local service launched successfully, then open Resource Manager in browser through the link http://localhost:50070
, you can see the following page
Samely, under current diretory, you can start the JobTracker through the commands:
$ ./start-yarn.sh # start yarn, MapReduce framework
$ ./stop-yarn.sh # stop yarn
Then open browser and go to the page http://localhost:8088
, Specific Node Information http://localhost:8042
, you will see
Simply, you can execute ./start-all.sh
and ./stop-all.sh
to start or close all the hadoop service.
Finally, open /etc/profile
and add the configuration information of Hadoop environment variables.
export HADOOP_HOME=/usr/local/Cellar/hadoop/2.8.0
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
Then you can start and close Hadoop under the user directory rather than go to /usr/local/Cellar/hadoop/2.8.0/sbin
every time.


<dlentry>
The <dlentry>
element groups a single entry in a definition list
(

). The <dlentry>
element includes a term
(

) and one or more definitions or descriptions
(

) of that term.
Category: Body elements


Package org.springframework.http.server.reactive
|
100%
successful |
Ignored tests
Classes
| Class | Tests | Failures | Ignored | Duration | Success rate |
|---|---|---|---|---|---|
| AsyncIntegrationTests | 4 | 0 | 0 | 2.226s | 100% |
| ChannelSendOperatorTests | 9 | 0 | 0 | 0.246s | 100% |
| ContextPathCompositeHandlerTests | 6 | 0 | 0 | 0.021s | 100% |
| CookieIntegrationTests | 4 | 0 | 0 | 0.157s | 100% |
| EchoHandlerIntegrationTests | 4 | 0 | 0 | 0.266s | 100% |
| ErrorHandlerIntegrationTests | 12 | 0 | 0 | 0.512s | 100% |
| HeadersAdaptersTests | 40 | 0 | 0 | 0.037s | 100% |
| HttpHeadResponseDecoratorTests | 3 | 0 | 0 | 0.007s | 100% |
| ListenerReadPublisherTests | 3 | 0 | 0 | 0.002s | 100% |
| ListenerWriteProcessorTests | 3 | 0 | 0 | 0.074s | 100% |
| MultipartIntegrationTests | 4 | 0 | 0 | 0.313s | 100% |
| RandomHandlerIntegrationTests | 4 | 0 | 0 | 0.133s | 100% |
| ServerHttpRequestIntegrationTests | 4 | 0 | 0 | 0.124s | 100% |
| ServerHttpRequestTests | 13 | 0 | 0 | 0.021s | 100% |
| ServerHttpResponseTests | 9 | 0 | 0 | 0.031s | 100% |
| ServerHttpsRequestIntegrationTests | 1 | 0 | 0 | 2.960s | 100% |
| WriteOnlyHandlerIntegrationTests | 4 | 0 | 0 | 0.207s | 100% |
| ZeroCopyIntegrationTests | 4 | 0 | 2 | 0.068s | 100% |


Makes a basic cross-classified design with random intercepts for subjects and items
sim_mixed_cc(sub_n = 100, item_n = 20, grand_i = 0, sub_sd = 1, item_sd = 1, error_sd = 1, empirical = FALSE, seed = NULL)
| sub_n | the number of subjects |
|---|---|
| item_n | the number of items |
| grand_i | the grand intercept (overall mean) |
| sub_sd | the SD of subject random intercepts (or a sub_n-length named vector of random intercepts for each subject) |
| item_sd | the SD of item random intercepts (or an item_n-length named vector of random intercepts for each item) |
| error_sd | the SD of the error term |
| empirical | Should the returned data have these exact parameters? (versus be sampled from a population with these parameters) |
| seed | a single value, interpreted as an integer, or NULL (see set.seed) |
a tbl
sim_mixed_cc(10, 10)#> # A tibble: 100 x 7 #> sub_id item_id y grand_i sub_i item_i err #> <fct> <fct> <dbl> <dbl> <dbl> <dbl> <dbl> #> 1 S01 I01 1.97 0 0.0422 1.60 0.327 #> 2 S01 I02 0.854 0 0.0422 0.391 0.421 #> 3 S01 I03 -0.622 0 0.0422 -0.349 -0.316 #> 4 S01 I04 2.65 0 0.0422 1.06 1.55 #> 5 S01 I05 -1.70 0 0.0422 0.225 -1.97 #> 6 S01 I06 -0.0325 0 0.0422 -1.21 1.14 #> 7 S01 I07 -0.781 0 0.0422 -0.681 -0.142 #> 8 S01 I08 0.245 0 0.0422 -0.814 1.02 #> 9 S01 I09 0.835 0 0.0422 1.13 -0.334 #> 10 S01 I10 -0.383 0 0.0422 -1.39 0.962 #> # … with 90 more rows


This course is an introduction to software engineering, and it covers the systematic development of software products. It outlines the scope of software engineering, including life-cycle models, software process, teams, tools, testing, planning, and estimating. It concentrates on requirements, analysis, design, implementation, and maintenance of software products. The laboratory covers CASE tools, configuration control tools, UML diagrams, integrated development environments, and project specific components.
Homework 5 - Files Available
Homework Submission Guidelines


Course Registration
First Name
Last Name
Course
Credit Hours
Email Address
Phone
accepts the terms and conditions
Submit


[Due to an upload problem, I didn't receive several of Ben Hoffman's reviews until today, which is why some may seem a bit late. -Moderator]
APOLLO 13 A film review by Ben Hoffman Copyright 1995 Ben Hoffman
This is the most enthralling film so far in 1995. with Tom Hanks again giving an Oscar-nominating performance as one of three astronauts trapped in space when one of the oxygen tanks blows up.
The film is based on the true story of the almost fatal accident in 1969 when the U.S. attempted to land the first humans on the moon since Armstrong. Much of the information in the film is revealed for the first time as NASA does not always tell us everything. Still more, even the film does not reveal the whole story.
Ken Mattingly (Gary Sinise) who was to have been one of the astronauts has been exposed to measles and is scrubbed from the mission. Jim Lovell (Tom Hanks), (is the author together with Jeffrey Kluger who wrote the book LOST MOON on which the book is based) is the chief astronaut. The two other astronauts were Fred Haise (Bill Paxton) and Jack Swigert (Kevin Bacon.) The Mission Control commander is Gene Kranz (Ed Harris).
Suddenly, from outer space, the ground crew hears "Houston we have a problem." That is the last thing the hundreds of scientists and mathematicians at their computers want to hear. On board Apollo 13, an explosion has occurred. There was the great dangers of running out of oxygen, freezing to death if the power ran out and/or dying because of the carbon dioxide each of the three was expelling.
This film is a thriller in every sense of the word. You will be sitting on the edge of your seat as Mattingly, (who would have been on board if he had not been dropped because of measles exposure) most familiar with every part of Apollo 13, was called in to see what he could do to keep the oxygen use to a minimum, to see if he could come up with an idea to reduce the power usage. It looked like history was about to be made; three dead astronauts in space forever.
What NASA did not tell the American civilians and anyone else watching the Apollo 13, was that it was minutes away from disaster. Even worse, as THE NATION magazine recently exposed, the Apollo 13 was carrying a nuclear device with 8.3 pounds of plutonium. This was to be left on the moon for further experiments in the future.  This was in the ship as it tried to get back to Earth. If the launching rocket had blown up before Apollo 13 reached orbit, or if the spaceship crashed on landing there could have been a nuclear holocaust.
Keep that in mind when you watch the film and think of the consequences ... and realize that we, the civilians, were never told about how close our planet came to its end. The plutonium in Apollo 13's capsule will be hotly radioactive for 2,000 years. It fell into the Pacific Ocean about 2000 miles from Sydney, Australia. where it will remain radioactive for 2,000 years. NASA implies that it is safe but they forget that the ocean cannot absorb our garbage forever.
Don't miss this thriller.
Directed by Ron Howard.
4 bytes 4 Bytes = Superb 3 Bytes = Too good to be missed. 2 Bytes = So so 1 Byte = Save your money.
-- Ben Hoffman
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


TextDocument
Extends:
A plain text document that can be mutated (or modified).
To mutate a document, you must first add parsers which will identify elements in the text, using TextDocument#addParser or TextDocument#buildParser.
Parsers must be generator functions which parse the document and yield the text elements they identify. These elements must be subclasses of TextElement and must be yielded in the order they are found in the document. If the element needs to be mutated, its subclass must know how to modify its own text or the document to obtain the desired end result. See ParserBuilder for an example of how to create a parser.
When you have added all the parsers you need, call TextDocument#mutate. This will trigger the parsing, then mutate each element one by one until the end of the document has been reached.
Events
A text document is an events~EventEmitter that emits the following events:
element
- Emitted after calling TextDocument#mutate while the parsing is in progress, for each new element identified by a parser. The parsed TextElement is provided to listeners.parsed
- Emitted after calling TextDocument#mutate when parsing the document is complete.mutate
- Emitted after calling TextDocument#mutate while the document is being mutated, once for each element that triggered a mutation. The TextMutation object describing the change is provided to listeners.
Constructor Summary
| Public Constructor | ||
| public |
constructor(text: string) Creates a text document. |
Member Summary
| Public Members | ||
| public |
The TextElement objects identified in the document by the parsers. |
|
| public |
The document's parsers. |
|
| public |
The document's text. |
Method Summary
| Public Methods | ||
| public |
addElement(element: TextElement): TextDocument Adds a text element to this document. |
|
| public |
addParser(parser: function): TextDocument Adds a parser for this document. |
|
| public |
append(element: TextElement, text: string): TextDocument Performs a text element mutation that appends text at the end of this document. |
|
| public |
appendTo(element: TextElement | TextDocumentStart | TextDocumentEnd, text: String): TextDocument Performs a text element mutation that appends text after the specified element in this document. |
|
| public |
buildParser(args: ...*): ParserBuilder Returns a parser builder for this document. |
|
| public |
find(predicate: function(element: TextElement): boolean): TextElement | undefined Finds the first text element in this document that matches the specified conditions. |
|
| public |
findLast(predicate: function(element: TextElement): boolean): TextElement | undefined Finds the last text element in this document that matches the specified conditions. |
|
| public |
findNext(element: TextElement, predicate: function(element: TextElement): boolean): TextElement | undefined Finds the first text element after the specified element in this document that matches the specified conditions. |
|
| public |
findPrevious(element: TextElement, predicate: function(element: TextElement): boolean): TextElement | undefined Finds the last text element before the specified element in this document that matches the specified conditions. |
|
| public |
insert(element: TextElement, index: integer, text: string): TextDocument Performs a text element mutation that inserts additional text into the document. |
|
| public |
Mutates this document. |
|
| public |
prepend(element: TextElement, text: string): TextDocument Performs a text element mutation that prepends text to the beginning of this document. |
|
| public |
prependTo(element: TextElement | TextDocumentStart | TextDocumentEnd, text: String): TextDocument Performs a text element mutation that prepends text to the specified element in this document. |
|
| public |
Returns a text query for this document. |
|
| public |
remove(element: TextElement, start: integer, end: integer): TextDocument Performs a text element mutation that removes the element from the document. |
|
| public |
removeElement(element: TextElement): TextDocument Removes the specified element from this document. |
|
| public |
replace(element: TextElement, start: integer, end: integer, text: string): TextDocument Performs a text element mutation that replaces part of the text in this document by another text. |
Public Constructors
Public Members
public elements: Array<TextElement> source
The TextElement objects identified in the document by the parsers.
Public Methods
public addElement(element: TextElement): TextDocument source
Adds a text element to this document.
The element must not overlap any other element already present in the document.
Params:
| Name | Type | Attribute | Description |
| element | TextElement | The text element to add. |
public addParser(parser: function): TextDocument source
Adds a parser for this document.
Parsers will be invoked when calling TextDocument#mutate.
Params:
| Name | Type | Attribute | Description |
| parser | function | A generator function that yields TextElement objects in order, or a function that returns an ordered array of parsed TextElement objects. |
public append(element: TextElement, text: string): TextDocument source
Performs a text element mutation that appends text at the end of this document.
Params:
| Name | Type | Attribute | Description |
| element | TextElement | The element that triggered the mutation. |
|
| text | string | The text to append. |
public appendTo(element: TextElement | TextDocumentStart | TextDocumentEnd, text: String): TextDocument source
Performs a text element mutation that appends text after the specified element in this document.
If the element is TextDocumentStart, the text is prepended to the beginning of the document. If the element is TextDocumentEnd, the text is appended to the end of the document.
Params:
| Name | Type | Attribute | Description |
| element | TextElement | TextDocumentStart | TextDocumentEnd | The element to append the text to. |
|
| text | String | The text to append. |
Example:
// Append text to an element
document.appendTo(element, 'foo');
// Append text to an element, or to the end of the document if the element is null
document.appendTo(elementThatMayBeNull || TextDocumentEnd, ']');
public buildParser(args: ...*): ParserBuilder source
Returns a parser builder for this document. Any argument is passed to the builder's constructor as additional arguments after this document.
The returned builder will add a parser to this document when calling ParserBuilder#add.
Params:
| Name | Type | Attribute | Description |
| args | ...* |
public find(predicate: function(element: TextElement): boolean): TextElement | undefined source
Finds the first text element in this document that matches the specified conditions.
Params:
| Name | Type | Attribute | Description |
| predicate | function(element: TextElement): boolean | A function that will be passed each element and should return true if the element matches the desired conditions. |
public findLast(predicate: function(element: TextElement): boolean): TextElement | undefined source
Finds the last text element in this document that matches the specified conditions.
Params:
| Name | Type | Attribute | Description |
| predicate | function(element: TextElement): boolean | A function that will be passed each element and should return true if the element matches the desired conditions. |
public findNext(element: TextElement, predicate: function(element: TextElement): boolean): TextElement | undefined source
Finds the first text element after the specified element in this document that matches the specified conditions.
Params:
| Name | Type | Attribute | Description |
| element | TextElement | The element after which to search. |
|
| predicate | function(element: TextElement): boolean | A function that will be passed each element and should return true if the element matches the desired conditions. |
public findPrevious(element: TextElement, predicate: function(element: TextElement): boolean): TextElement | undefined source
Finds the last text element before the specified element in this document that matches the specified conditions.
Params:
| Name | Type | Attribute | Description |
| element | TextElement | The element before which to search. |
|
| predicate | function(element: TextElement): boolean | A function that will be passed each element and should return true if the element matches the desired conditions. |
public insert(element: TextElement, index: integer, text: string): TextDocument source
Performs a text element mutation that inserts additional text into the document.
Params:
| Name | Type | Attribute | Description |
| element | TextElement | The element that triggered the mutation. |
|
| index | integer | The index at which to insert the text. |
|
| text | string | The text to insert. |
public mutate(): Promise<TextDocument> source
Mutates this document.
This is done in two steps:
- All parsers will be invoked and used to parse the entire document.
- All identified text elements will be mutated one by one in order.
public prepend(element: TextElement, text: string): TextDocument source
Performs a text element mutation that prepends text to the beginning of this document.
Params:
| Name | Type | Attribute | Description |
| element | TextElement | The element that triggered the mutation. |
|
| text | string | The text to prepend. |
public prependTo(element: TextElement | TextDocumentStart | TextDocumentEnd, text: String): TextDocument source
Performs a text element mutation that prepends text to the specified element in this document.
If the element is TextDocumentStart, the text is inserted at the beginning of the document. If the element is TextDocumentEnd, the text is appended to the end of the document.
Params:
| Name | Type | Attribute | Description |
| element | TextElement | TextDocumentStart | TextDocumentEnd | The element to prepend the text to. |
|
| text | String | The text to prepend. |
Example:
// Prepend text to an element
document.prependTo(element, 'foo');
// Prepend text to an element, or append it to the end of the document if the element is null
document.prependTo(elementThatMayBeNull || TextDocumentEnd, ']');
public remove(element: TextElement, start: integer, end: integer): TextDocument source
Performs a text element mutation that removes the element from the document.
Params:
| Name | Type | Attribute | Description |
| element | TextElement | The element that triggered the mutation. |
|
| start | integer | The start index (inclusive) of the text range to remove. |
|
| end | integer | The end index (exclusive) of the text range to remove. |
public removeElement(element: TextElement): TextDocument source
Removes the specified element from this document.
Params:
| Name | Type | Attribute | Description |
| element | TextElement | The element to remove. |
public replace(element: TextElement, start: integer, end: integer, text: string): TextDocument source
Performs a text element mutation that replaces part of the text in this document by another text.
Params:
| Name | Type | Attribute | Description |
| element | TextElement | The element that triggered the mutation. |
|
| start | integer | The start index (inclusive) of the text range to replace. |
|
| end | integer | The end index (exclusive) of the text range to replace. |
|
| text | string | The text to replace the selected range with. |


Freecell Solver version 2.30.0 has been released. It is available in the form of a source tarball from the download page.
This release adds the run-time presets "gooey-unknown-thing", "sand-stone" and "slick-rock" that aim to minimise the average lengths of the resultant solutions. (as opposed to minimising the time it takes to solve). It also adds support for using any of the tree imlpementation supplied by libavl version 2 for both the positions storage and the stacks storage.
There's a bug fix in the fc-pro range solver for a bug that caused the Freecell Pro compatible moves to be mis-calculated. Moreover, the code has experienced a substantial re-organisation and the Makefiles for the different compiler were merged into one (which was later fixed).
There are also new compile-time options to exclude various functionality that may not be needed.
Download it while its hot!


Examples¶
Prebuilt VirtualBox¶
A good starting point to build an APK are prebuilt VirtualBox images, where the Android NDK, the Android SDK, and the Kivy Python-For-Android sources are prebuilt in an VirtualBox image. Please search the Download Section for such an image. You will also need to create a device filter for the Android USB device using the VirtualBox OS settings.
Hello world¶
If you don’t know how to start with Python for Android, here is a simple tutorial for creating an UI using Kivy, and make an APK with this project.
注釈
Don’t forget that Python for Android is not Kivy only, and you might want to use other toolkit libraries. When other toolkits will be available, this documentation will be enhanced.
Let’s create a simple Hello world application, with one Label and one Button.
Ensure you’ve correctly installed and configured the project as said in the Prerequisites
Create a directory named
helloworld
:mkdir helloworld cd helloworld
Create a file named
main.py
, with this content:import kivy kivy.require('1.0.9') from kivy.lang import Builder from kivy.uix.gridlayout import GridLayout from kivy.properties import NumericProperty from kivy.app import App Builder.load_string(''' <HelloWorldScreen>: cols: 1 Label: text: 'Welcome to the Hello world' Button: text: 'Click me! %d' % root.counter on_release: root.my_callback() ''') class HelloWorldScreen(GridLayout): counter = NumericProperty(0) def my_callback(self): print 'The button has been pushed' self.counter += 1 class HelloWorldApp(App): def build(self): return HelloWorldScreen() if __name__ == '__main__': HelloWorldApp().run()
Go to the
python-for-android
directoryCreate a distribution with kivy:
./distribute.sh -m kivy
Go to the newly created
default
distribution:cd dist/default
Plug your android device, and ensure you can install development application
Build your hello world application in debug mode:
./build.py --package org.hello.world --name "Hello world" \ --version 1.0 --dir /PATH/TO/helloworld debug installd
Take your device, and start the application!
If something goes wrong, open the logcat by doing:
adb logcat
The final debug APK will be located in bin/hello-world-1.0-debug.apk
.
If you want to release your application instead of just making a debug APK, you must:
Generate a non-signed APK:
./build.py --package org.hello.world --name "Hello world" \ --version 1.0 --dir /PATH/TO/helloworld release
Continue by reading http://developer.android.com/guide/publishing/app-signing.html
参考
- Kivy demos
- You can use them for creating APK too.
Compass¶
The following example is an extract from the Compass app as provided in the Kivy examples/android/compass folder:
# ... imports
Hardware = autoclass('org.renpy.android.Hardware')
class CompassApp(App):
needle_angle = NumericProperty(0)
def build(self):
self._anim = None
Hardware.magneticFieldSensorEnable(True)
Clock.schedule_interval(self.update_compass, 1 / 10.)
def update_compass(self, *args):
# read the magnetic sensor from the Hardware class
(x, y, z) = Hardware.magneticFieldSensorReading()
# calculate the angle
needle_angle = Vector(x , y).angle((0, 1)) + 90.
# animate the needle
if self._anim:
self._anim.stop(self)
self._anim = Animation(needle_angle=needle_angle, d=.2, t='out_quad')
self._anim.start(self)
def on_pause(self):
# when you are going on pause, don't forget to stop the sensor
Hardware.magneticFieldSensorEnable(False)
return True
def on_resume(self):
# reactivate the sensor when you are back to the app
Hardware.magneticFieldSensorEnable(True)
if __name__ == '__main__':
CompassApp().run()
If you compile this app, you will get an APK which outputs the following screen:


Type: All Grain
Batch Size: 5.00 gal
Boil Size: 5.95 gal
Boil Time: 60 min
End of Boil Vol: 5.20 gal
Final Bottling Vol: 5.53 gal
Fermentation: Ale, Single Stage
Date: 14 Dec 2013
Brewer: Dustin J. Mitchell
Asst Brewer:
Equipment: Outdoor Brewing
Efficiency: 72.00 %
Est Mash Efficiency: 72.0 %
Taste Rating: 30.0
Taste Notes:
Ingredients
|
Amt |
Name |
Type |
# |
%/IBU |
|
10 lbs |
Pilsner (2 Row) Ger (2.0 SRM) |
Grain |
1 |
75.4 % |
|
1 lbs |
Munich I (15.0 SRM) |
Grain |
2 |
7.5 % |
|
8.0 oz |
Red Wheat Malt (5.0 SRM) |
Grain |
3 |
3.8 % |
|
4.0 oz |
Aromatic Malt (26.0 SRM) |
Grain |
4 |
1.9 % |
|
4.0 oz |
Special B Malt (180.0 SRM) |
Grain |
5 |
1.9 % |
|
0.90 oz |
Legacy - 2013-08 [6.93 %] - First Wort 60.0 min |
Hop |
6 |
23.9 IBUs |
|
1 lbs |
Candi Syrup - 180 (180.0 SRM) |
Sugar |
7 |
7.5 % |
|
1.0 pkg |
Trappist Ale (White Labs #WLP500) [35.49 ml] |
Yeast |
8 |
- |
|
4.2 oz |
Dark Raisins (3.0 SRM) |
Adjunct |
9 |
2.0 % |
Gravity, Alcohol Content and Color
Est Original Gravity: 1.072 SG
Est Final Gravity: 1.014 SG
Estimated Alcohol by Vol: 7.7 %
Bitterness: 23.9 IBUs
Est Color: 23.0 SRM
Measured Original Gravity: 1.046 SG
Measured Final Gravity: 1.010 SG
Actual Alcohol by Vol: 4.4 %
Calories: 144.8 kcal/12oz
Mash Profile
Mash Name: Simple Single Infusion
Sparge Water: 3.40 gal
Sparge Temperature: 168.0 F
Adjust Temp for Equipment: TRUE
Total Grain Weight: 13 lbs 4.2 oz
Grain Temperature: 65.0 F
Tun Temperature: 10.0 F
Mash PH: 5.20
Mash Steps
|
Name |
Description |
Step Temperature |
Step Time |
|
Mash |
Add 16.96 qt of water at 167.6 F |
158.0 F |
60 min |
Sparge: Batch sparge with 1 steps (3.40gal) of 168.0 F water
Mash Notes:
Carbonation and Storage
Carbonation Type: Keg
Pressure/Weight: 20.72 PSI
Keg/Bottling Temperature: 45.0 F
Fermentation: Ale, Single Stage
Volumes of CO2: 3.0
Carbonation Used: Keg with 20.72 PSI
Age for: 30.00 days
Storage Temperature: 65.0 F
Notes
The raisins are soaked in rum and added in secondary.
Created with BeerSmith
This recipe was brewed January 4, 2014, and the figures below reflect the recipe as-brewed.
The OG (1.046) is terribly low - equivalent to about 45% efficiency. The first runnings were 1.065, which is lower than the expected pre-boil OG.
At any rate, this is a drinking beer, not a competition beer, so I'm not terribly concerned.


PreferencesSystem(bpy_struct)¶
base class — bpy_struct
-
class
bpy.types.
PreferencesSystem
(bpy_struct)¶ Graphics driver and operating system settings
-
anisotropic_filter
¶ Quality of the anisotropic filtering (values greater than 1.0 enable anisotropic filtering)
Type: enum in [‘FILTER_0’, ‘FILTER_2’, ‘FILTER_4’, ‘FILTER_8’, ‘FILTER_16’], default ‘FILTER_0’
-
audio_channels
¶ Audio channel count
MONO
Mono, Set audio channels to mono.STEREO
Stereo, Set audio channels to stereo.SURROUND4
4 Channels, Set audio channels to 4 channels.SURROUND51
5.1 Surround, Set audio channels to 5.1 surround sound.SURROUND71
7.1 Surround, Set audio channels to 7.1 surround sound.
Type: enum in [‘MONO’, ‘STEREO’, ‘SURROUND4’, ‘SURROUND51’, ‘SURROUND71’], default ‘STEREO’
-
audio_device
¶ Audio output device
Null
None, Null device - there will be no audio output.
Type: enum in [‘Null’], default ‘Null’
-
audio_mixing_buffer
¶ Number of samples used by the audio mixing buffer
SAMPLES_256
256, Set audio mixing buffer size to 256 samples.SAMPLES_512
512, Set audio mixing buffer size to 512 samples.SAMPLES_1024
1024, Set audio mixing buffer size to 1024 samples.SAMPLES_2048
2048, Set audio mixing buffer size to 2048 samples.SAMPLES_4096
4096, Set audio mixing buffer size to 4096 samples.SAMPLES_8192
8192, Set audio mixing buffer size to 8192 samples.SAMPLES_16384
16384, Set audio mixing buffer size to 16384 samples.SAMPLES_32768
32768, Set audio mixing buffer size to 32768 samples.
Type: enum in [‘SAMPLES_256’, ‘SAMPLES_512’, ‘SAMPLES_1024’, ‘SAMPLES_2048’, ‘SAMPLES_4096’, ‘SAMPLES_8192’, ‘SAMPLES_16384’, ‘SAMPLES_32768’], default ‘SAMPLES_2048’
-
audio_sample_format
¶ Audio sample format
U8
8-bit Unsigned, Set audio sample format to 8 bit unsigned integer.S16
16-bit Signed, Set audio sample format to 16 bit signed integer.S24
24-bit Signed, Set audio sample format to 24 bit signed integer.S32
32-bit Signed, Set audio sample format to 32 bit signed integer.FLOAT
32-bit Float, Set audio sample format to 32 bit float.DOUBLE
64-bit Float, Set audio sample format to 64 bit float.
Type: enum in [‘U8’, ‘S16’, ‘S24’, ‘S32’, ‘FLOAT’, ‘DOUBLE’], default ‘FLOAT’
-
audio_sample_rate
¶ Audio sample rate
RATE_44100
44.1 kHz, Set audio sampling rate to 44100 samples per second.RATE_48000
48 kHz, Set audio sampling rate to 48000 samples per second.RATE_96000
96 kHz, Set audio sampling rate to 96000 samples per second.RATE_192000
192 kHz, Set audio sampling rate to 192000 samples per second.
Type: enum in [‘RATE_44100’, ‘RATE_48000’, ‘RATE_96000’, ‘RATE_192000’], default ‘RATE_48000’
-
dpi
¶ Type: int in [-inf, inf], default 0, (readonly)
-
gl_clip_alpha
¶ Clip alpha below this threshold in the 3D textured view
Type: float in [0, 1], default 0.004
-
gl_texture_limit
¶ Limit the texture size to save graphics memory
Type: enum in [‘CLAMP_OFF’, ‘CLAMP_8192’, ‘CLAMP_4096’, ‘CLAMP_2048’, ‘CLAMP_1024’, ‘CLAMP_512’, ‘CLAMP_256’, ‘CLAMP_128’], default ‘CLAMP_OFF’
-
gpencil_multi_sample
¶ Enable Grease Pencil OpenGL multi-sampling, only for systems that support it
NONE
No MultiSample, Do not use OpenGL MultiSample.2
MultiSample: 2, Use 2x OpenGL MultiSample.4
MultiSample: 4, Use 4x OpenGL MultiSample.8
MultiSample: 8, Use 8x OpenGL MultiSample.16
MultiSample: 16, Use 16x OpenGL MultiSample.
Type: enum in [‘NONE’, ‘2’, ‘4’, ‘8’, ‘16’], default ‘NONE’
-
image_draw_method
¶ Method used for displaying images on the screen
AUTO
Automatic, Automatically choose method based on GPU and image.2DTEXTURE
2D Texture, Use CPU for display transform and draw image with 2D texture.GLSL
GLSL, Use GLSL shaders for display transform and draw image with 2D texture.
Type: enum in [‘AUTO’, ‘2DTEXTURE’, ‘GLSL’], default ‘AUTO’
-
legacy_compute_device_type
¶ For backwards compatibility only
Type: int in [-inf, inf], default 0, (readonly)
-
light_ambient
¶ Color of the ambient light that uniformly lit the scene
Type: float array of 3 items in [0, inf], default (0.0, 0.0, 0.0)
-
memory_cache_limit
¶ Memory cache limit (in megabytes)
Type: int in [0, inf], default 4096
-
opensubdiv_compute_type
¶ Type of computer back-end used with OpenSubdiv
Type: enum in [‘NONE’, ‘CPU’, ‘OPENMP’], default ‘NONE’
-
pixel_size
¶ Type: float in [-inf, inf], default 1.0, (readonly)
-
prefetch_frames
¶ Number of frames to render ahead during playback (sequencer only)
Type: int in [0, inf], default 0
-
scrollback
¶ Maximum number of lines to store for the console buffer
Type: int in [32, 32768], default 256
-
solid_lights
¶ Lights user to display objects in solid draw mode
Type: bpy_prop_collection
ofUserSolidLight
, (readonly)
-
texture_collection_rate
¶ Number of seconds between each run of the GL texture garbage collector
Type: int in [1, 3600], default 60
-
texture_time_out
¶ Time since last access of a GL texture in seconds after which it is freed (set to 0 to keep textures allocated)
Type: int in [0, 3600], default 120
-
ui_line_width
¶ Suggested line thickness and point size in pixels, for add-ons drawing custom user interface elements, based on operating system settings and Blender UI scale
Type: float in [-inf, inf], default 1.0, (readonly)
-
ui_scale
¶ Size multiplier to use when drawing custom user interface elements, so that they are scaled correctly on screens with different DPI. This value is based on operating system DPI settings and Blender display scale
Type: float in [-inf, inf], default 0.0, (readonly)
-
use_edit_mode_smooth_wire
¶ Enable Edit-Mode edge smoothing, reducing aliasing, requires restart
Type: boolean, default False
-
use_overlay_smooth_wire
¶ Enable overlay smooth wires, reducing aliasing
Type: boolean, default True
-
use_region_overlap
¶ Draw tool/property regions over the main region
Type: boolean, default True
-
use_select_pick_depth
¶ Use the depth buffer for picking 3D View selection (without this the front most object may not be selected first)
Type: boolean, default False
-
use_studio_light_edit
¶ View the result of the studio light editor in the viewport
Type: boolean, default False
-
vbo_collection_rate
¶ Number of seconds between each run of the GL Vertex buffer object garbage collector
Type: int in [1, 3600], default 60
-
vbo_time_out
¶ Time since last access of a GL Vertex buffer object in seconds after which it is freed (set to 0 to keep vbo allocated)
Type: int in [0, 3600], default 120
-
viewport_aa
¶ Method of anti-aliasing in 3d viewport
OFF
No Anti-Aliasing, Scene will be rendering without any anti-aliasing.FXAA
Single Pass Anti-Aliasing, Scene will be rendered using a single pass anti-aliasing method (FXAA).5
5 Samples, Scene will be rendered using 5 anti-aliasing samples.8
8 Samples, Scene will be rendered using 8 anti-aliasing samples.11
11 Samples, Scene will be rendered using 11 anti-aliasing samples.16
16 Samples, Scene will be rendered using 16 anti-aliasing samples.32
32 Samples, Scene will be rendered using 32 anti-aliasing samples.
Type: enum in [‘OFF’, ‘FXAA’, ‘5’, ‘8’, ‘11’, ‘16’, ‘32’], default ‘8’
-
classmethod
bl_rna_get_subclass
(id, default=None)¶ Parameters: id (string) – The RNA type identifier. Returns: The RNA type or default when not found. Return type: bpy.types.Struct
subclass
-
classmethod
bl_rna_get_subclass_py
(id, default=None)¶ Parameters: id (string) – The RNA type identifier. Returns: The class or default when not found. Return type: type
-
Inherited Properties
Inherited Functions
References


1. Procedural Thinking
It means creating perfectly clear and unambiguous instructions
for a computer to follow.
2. Abstract Thinking
Find similarity between apparently different things.
3. Systematic Debugging
Is a systematic process to identify and track down
potential causes of a computer program that doesn't work
until to find the problem and fix it.
4. Technological Empathy
It means start to think in the way the computer would
(e.g. when you see < b >Hello !< /b > the first thing you
should think about is that Hello! is bold !)
5. Systems Thinking
Take a big problem and break the solution into a set of steps.
Programmers do this when they create
a plan (often on paper) for how a program will work.
The Basics of the Web are:
- The Web
- HTML (main document type of the web)
- URLs (how you refer to document on the web)
- HTTP (protocol that unites the web)
- Web Applications
The Web was invented in 1990 and it has 30 billion pages.
It is a collection of HTML documents.
But how does it works ?
If we consider just the major pieces, a computer + a browser,
the internet and servers, the web works like this:
the browser makes a request via the internet to servers.
These requests use a protocol called HTTP, and the servers respond
with files that the browser displays on the computer.
If this is not clear enough, there's a
video.
HTML is the acronym of HyperText Markup Language and it is made up of:
- Text content --> what you see
- Markup --> what it looks like
- References to other documents --> e.g. images and videos
- Links to other pages
The text content is literally the text as it is written.
The Markup is made up of tags, the opening and
the closing tag that together the text content
they form an element.
e.g. < b > contents < /b > is a tag to make a text bold,
< em > content < /em > is to make a text italic.
Attributes are used to display an image or link to a video or a website.
The anchor tag is used to link a website or a video to a text
< a href="link"> derp< /a > and it works like this -->
Udacity.
The img tag is used to display images < img src="url" alt="text" >
and it works like this -->
This is a void tag, a tag that has no content and it doesn't need a closing tag.
It is the space between multiple lines created by:
- < br >, break tag (void tag).
- < p > contents < /p >, paragraph tag
To understand why we have two ways of making lines, we need to talk about:
- Inline
- Block
Inline tags, like < br >, < a >, < img > and < span >, simply create a lines.
Block tags like < p > and < div > instead create a box, that surrounds the text,
which has a height and width.


Sorry to say, but all of our 2019-2020 season show gaots are spoken for. Please think of us for your future show seaons.


Pyongyang Racer
GitHub project page
Instructions for getting started
This page
Copyright (c) aidswidjaja 2021. Licensed under the Apache-2.0 license.


Patterns Web-Scraping
logansweet/wikianalysis.py
Great job. Make sure you test your code - see below comment! Thanks for adding comments! Generally it's better to put comments on their own lines above the code they are referencing. It helps with the 80 character standard. Don't forget your docstrings! Please see my comments below.
""" MiniProject 3: Text Mining and Analysis
For each run, type the name of a wikipedia article
that contains a list of authors. After a very long runtime,
an ordered pair will be produced. The first element
is the sentiment value, and the second element is the
subjectivity value.
"""
from pattern.web import Wikipedia
from pattern.en import * # allows it to run sentiment for english
def authors(ArtName): # returns list of authors mentioned in that article
authorlist = []
article = Wikipedia().search(ArtName) # Searches for the provided article name
for section in article.links:
authorlist.append(section) # adds each author name to the list
return authorlist
def listtest(list):
sent = 0
subj = 0
for element in list:
sent += element[0] # 0th elemt: sentiment
subj += element[1] # 1st element: subjectivity
sentiment = sent / len(list)
subjectivity = subj / len(list) #gives an average value for each
return sentiment, subjectivity
Whoa! Are you sure this works?? You are returning after the first element. You'll exit the function before iterating through the whole list. Be carefule with indentation!
def evaluate(ArtName):
sentimentlist = []
authorlist = authors(ArtName)
w = Wikipedia()
for author in authorlist:
article = w.search(author) #finds article for each author
sentimentlist.append(sentiment(article.string)) # records the sentiment vanlues
return listtest(sentimentlist)
if __name__ == '__main__':
#print evaluate('List of Christian fiction authors')
print evaluate('List of science fiction authors')


Carbs (g)
Protein (g)
Comments
24
4.0
Super tasty
37
4.3
I like ice cream more
24
6.0
New filing flavor


--- layout: page title: About header-img: "img/about-bg.png" ---
I am from Michigan and work full time in Detroit. A few years ago, I decided learning a new skill would be a good idea. After a lot of research, I ended up at Flatiron.


{% extends "base.html" %} {% block app_content %}
Want to understand better what chirp is all about? Watch this video!


Quality trustees from a trusted source
178 Sales and Marketing professionals
312 people from the Financial Services Industry and City
397 from the Home Counties
181 from the North of England
206 people from Central and Local Government
94 from the South West
122 HR professionals
539 people from the Civil Society sector
214 from the Midlands and East Anglia
84 Fundraisers
471 from London
|
|
Non-Executives Unlimited offers different levels of service depending on your requirements and your size. We source potential candidates from multiple channels including from our own database of over 2,000 senior people who come from the private, public and civil society sectors.
We also search through other channels including through our strategic partners such as Centrica, the Financial Times Non Executive Club, Accenture, KPMG, British Telecom, the National Union of Students, Black on Board, Getting on Board, Women Like Us, the Institute of Fundraising and Russam GMS's database of 12,000 senior executives. Click here to view a breakdown of our database. We also post the vacancy on various websites including NCVO’s Trustee Bank, Charity Job and Timewise and use social media, and in particular LinkedIn and Twitter, to promote the roles.
Non-Executives Unlimited offers a simple and adaptable process and for smaller organisations (organisations with a turnover less than £1m) a Basic Service. For larger organisations we offer a Standard Service or a full Search & Selection. Of course, you may just wish to Advertise on the site.
Taking the brief is the most important element of any recruitment process and we will want to make sure we really understand the requirements of the role(s). For the Standard Service this will involve at least one face to face meeting with the Chair/Chief Executive or senior trustee in charge of the selection process and a conversation with all the members of the nominations committee. We are happy to help create a recruitment pack to go with the campaign which will include a person specification and role description and we commit to keeping you informed of progress throughout the process.
Candidates are asked to address how they meet the requirements of the person specification in their application. For the Standard and Search & Selection process Non-Executives Unlimited will conduct an initial sift of the applicants and we will interview long listed candidates. Sometimes organisations wish to review all applications and instruct us who to interview and other times organisations leave the initial long listing to our judgement.
Reports are written on the interviewed candidates and you will be presented with a report against which we can help you can short list. We aim to deliver a recommended shortlist within 6 weeks of taking the brief although we can be flexible on the timeline. We will take references for short listed candidates and are happy to help along all steps in the process.
The Basic Service is for organisations with a turnover of less than £1m. Following a one hour briefing conversation (usually on the phone) between the selection committee or nominated person of the recruiting organisation and Non-Executives Unlimited, a search will be conducted of the Non-Executives Unlimited database and other channels. Candidates who express an interest in the role will have their unvetted details forwarded on to the recruiting organisation.
The Standard Service consists of the recruitment process as outlined above. The appointed Non-Executive(s) will have a free place at a half-day induction workshop run jointly by BWB/NCVO which occurs twice a year and a free place as a delegate at the next NCVO/BWB Governance Conference.
The Search & Selection service is akin to a traditional head hunt although it has the advantage of building on all the various routes to market we have already established. It means that no stone is left unturned in your pursuit of the right candidate. For a senior Chair role or for a specific skill set that is hard to find, this could be the way to go.
NCVO members – any NCVO member organisation using the basic or standard service will also have their vacancies posted in the NCVO members e-bulletin.
Non-Executives Unlimited has been set up in such a way so that a wide variety of organisations can use its services cost-effectively. We are aware of the financial commitment required to undertake a recruitment process of this nature and so we have tried to remove the financial risk by ensuring that, apart from a small initial engagement fee, the balance is only payable on successful appointment. For details of our Terms of Business click here.
|


Go Back to the game
Game Rules:
Start the game by pressing key or doing double click on the screen.
Now AI will make the first move and will click on any color.
Repeat that color by pressing on it
AI will make the second move
Now you will have to press the color you pressed first and then the color which AI choosed
AI will press third color
You have to reapeat sequence of colors till now starting from the first color
Go as high as possible and send me the screenshot of your level......
Best of luck


Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's stan dard dummy text ever since the 1500s, when an unknown printer took a galle y of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining e ssentially unchanged. It was popularised in the 1960s with the release of Letraset s heets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been t he industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum p assages, and more recently with desktop publishing software like Aldus PageMaker including v ersions of Lorem Ipsum.


{include file="public/header" /}
轮播图预览：单击图片可删除 {foreach $galleryArray as $vo} {/foreach}
轮播图预览：单击图片可删除 {foreach $descriptionArray as $vo} {/foreach}


In this project, you'll use generative adversarial networks to generate new images of faces.
You'll be using two datasets in this project:
Since the celebA dataset is complex and you're doing GANs in a project for the first time, we want you to test your neural network on MNIST before CelebA. Running the GANs on MNIST will allow you to see how well your model trains sooner.
If you're using FloydHub, set data_dir
to "/input" and use the FloydHub data ID "R5KrjnANiKVhLWAkpXhNBe".
data_dir = './data'
# FloydHub - Use with data ID "R5KrjnANiKVhLWAkpXhNBe"
#data_dir = '/input'
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
import helper
helper.download_extract('mnist', data_dir)
helper.download_extract('celeba', data_dir)
show_n_images = 25
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
%matplotlib inline
import os
from glob import glob
from matplotlib import pyplot
mnist_images = helper.get_batch(glob(os.path.join(data_dir, 'mnist/*.jpg'))[:show_n_images], 28, 28, 'L')
pyplot.imshow(helper.images_square_grid(mnist_images, 'L'), cmap='gray')
The CelebFaces Attributes Dataset (CelebA) dataset contains over 200,000 celebrity images with annotations. Since you're going to be generating faces, you won't need the annotations. You can view the first number of examples by changing show_n_images
.
show_n_images = 36
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
mnist_images = helper.get_batch(glob(os.path.join(data_dir, 'img_align_celeba/*.jpg'))[:show_n_images], 28, 28, 'RGB')
pyplot.imshow(helper.images_square_grid(mnist_images, 'RGB'))
Since the project's main focus is on building the GANs, we'll preprocess the data for you. The values of the MNIST and CelebA dataset will be in the range of -0.5 to 0.5 of 28x28 dimensional images. The CelebA images will be cropped to remove parts of the image that don't include a face, then resized down to 28x28.

You'll build the components necessary to build a GANs by implementing the following functions below:
model_inputs
discriminator
generator
model_loss
model_opt
train
This will check to make sure you have the correct version of TensorFlow and access to a GPU
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
from distutils.version import LooseVersion
import warnings
import tensorflow as tf
# Check TensorFlow Version
assert LooseVersion(tf.__version__) >= LooseVersion('1.0'), 'Please use TensorFlow version 1.0 or newer. You are using {}'.format(tf.__version__)
print('TensorFlow Version: {}'.format(tf.__version__))
# Check for a GPU
if not tf.test.gpu_device_name():
warnings.warn('No GPU found. Please use a GPU to train your neural network.')
else:
print('Default GPU Device: {}'.format(tf.test.gpu_device_name()))
Implement the model_inputs
function to create TF Placeholders for the Neural Network. It should create the following placeholders:
image_width
, image_height
, and image_channels
.z_dim
.Return the placeholders in the following the tuple (tensor of real input images, tensor of z data)
import problem_unittests as tests
def model_inputs(image_width, image_height, image_channels, z_dim):
"""
Create the model inputs
:param image_width: The input image width
:param image_height: The input image height
:param image_channels: The number of image channels
:param z_dim: The dimension of Z
:return: Tuple of (tensor of real input images, tensor of z data, learning rate)
"""
# TODO: Implement Function
inputs_real = tf.placeholder(tf.float32, (None, image_width, image_height, image_channels))
inputs_z = tf.placeholder(tf.float32, (None, z_dim))
learning = tf.placeholder(tf.float32)
return inputs_real, inputs_z, learning
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_model_inputs(model_inputs)
Implement discriminator
to create a discriminator neural network that discriminates on images
. This function should be able to reuse the variables in the neural network. Use tf.variable_scope
with a scope name of "discriminator" to allow the variables to be reused. The function should return a tuple of (tensor output of the discriminator, tensor logits of the discriminator).
def discriminator(images, reuse=False):
"""
Create the discriminator network
:param images: Tensor of input image(s)
:param reuse: Boolean if the weights should be reused
:return: Tuple of (tensor output of the discriminator, tensor logits of the discriminator)
"""
# TODO: Implement Function
# based DCGAN_Exercises
alpha=0.2
with tf.variable_scope('discriminator', reuse=reuse):
x1 = tf.layers.conv2d(images, 64, 5, strides=2, padding='same')
relu1 = tf.maximum(alpha * x1, x1)
x2 = tf.layers.conv2d(relu1, 128, 5, strides=2, padding='same')
bn2 = tf.layers.batch_normalization(x2, training=True)
relu2 = tf.maximum(alpha * bn2, bn2)
x3 = tf.layers.conv2d(relu2, 256, 5, strides=2, padding='same')
bn3 = tf.layers.batch_normalization(x3, training=True)
relu3 = tf.maximum(alpha * bn3, bn3)
flat = tf.reshape(relu3, (-1, 4*4*256))
logits = tf.layers.dense(flat, 1)
out = tf.sigmoid(logits)
return out, logits
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_discriminator(discriminator, tf)
Implement generator
to generate an image using z
. This function should be able to reuse the variables in the neural network. Use tf.variable_scope
with a scope name of "generator" to allow the variables to be reused. The function should return the generated 28 x 28 x out_channel_dim
images.
def generator(z, out_channel_dim, is_train=True):
"""
Create the generator network
:param z: Input z
:param out_channel_dim: The number of channels in the output image
:param is_train: Boolean if generator is being used for training
:return: The tensor output of the generator
"""
# TODO: Implement Function
# based DCGAN_Exercises
alpha = 0.2
with tf.variable_scope('generator', reuse=not is_train):
x1 = tf.layers.dense(z, 4*4*512)
x1 = tf.reshape(x1, (-1, 4, 4, 512))
x1 = tf.layers.batch_normalization(x1, training=is_train)
x1 = tf.maximum(alpha * x1, x1)
x2 = tf.layers.conv2d_transpose(x1, 256, 4, strides=1, padding='valid')
x2 = tf.layers.batch_normalization(x2, training=is_train)
x2 = tf.maximum(alpha * x2, x2)
x3 = tf.layers.conv2d_transpose(x2, 128, 4, strides=2, padding='same')
x3 = tf.layers.batch_normalization(x3, training=is_train)
x3 = tf.maximum(alpha * x3, x3)
dropout = tf.nn.dropout(x3, keep_prob=.5)
logits = tf.layers.conv2d_transpose(dropout, out_channel_dim, 5, strides=2, padding="same")
out = tf.tanh(logits)
return out
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_generator(generator, tf)
Implement model_loss
to build the GANs for training and calculate the loss. The function should return a tuple of (discriminator loss, generator loss). Use the following functions you implemented:
discriminator(images, reuse=False)
generator(z, out_channel_dim, is_train=True)
def model_loss(input_real, input_z, out_channel_dim):
"""
Get the loss for the discriminator and generator
:param input_real: Images from the real dataset
:param input_z: Z input
:param out_channel_dim: The number of channels in the output image
:return: A tuple of (discriminator loss, generator loss)
"""
# TODO: Implement Function
g_model = generator(input_z, out_channel_dim, is_train=True)
d_model_real, d_logits_real = discriminator(input_real, reuse=False)
d_model_fake, d_logits_fake = discriminator(g_model, reuse=True)
d_loss_real = tf.reduce_mean(
tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_real, labels=tf.ones_like(d_model_real)))
d_loss_fake = tf.reduce_mean(
tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_fake, labels=tf.zeros_like(d_model_fake)))
g_loss = tf.reduce_mean(
tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_fake, labels=tf.ones_like(d_model_fake)))
d_loss = d_loss_real + d_loss_fake
return d_loss, g_loss
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_model_loss(model_loss)
Implement model_opt
to create the optimization operations for the GANs. Use tf.trainable_variables
to get all the trainable variables. Filter the variables with names that are in the discriminator and generator scope names. The function should return a tuple of (discriminator training operation, generator training operation).
def model_opt(d_loss, g_loss, learning_rate, beta1):
"""
Get optimization operations
:param d_loss: Discriminator loss Tensor
:param g_loss: Generator loss Tensor
:param learning_rate: Learning Rate Placeholder
:param beta1: The exponential decay rate for the 1st moment in the optimizer
:return: A tuple of (discriminator training operation, generator training operation)
"""
# TODO: Implement Function
t_vars = tf.trainable_variables()
d_vars = [var for var in t_vars if var.name.startswith('discriminator')]
g_vars = [var for var in t_vars if var.name.startswith('generator')]
# Optimize
with tf.control_dependencies(tf.get_collection(tf.GraphKeys.UPDATE_OPS)):
d_train_opt = tf.train.AdamOptimizer(learning_rate, beta1=beta1).minimize(d_loss, var_list=d_vars)
g_train_opt = tf.train.AdamOptimizer(learning_rate, beta1=beta1).minimize(g_loss, var_list=g_vars)
return d_train_opt, g_train_opt
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_model_opt(model_opt, tf)
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
import numpy as np
def show_generator_output(sess, n_images, input_z, out_channel_dim, image_mode):
"""
Show example output for the generator
:param sess: TensorFlow session
:param n_images: Number of Images to display
:param input_z: Input Z Tensor
:param out_channel_dim: The number of channels in the output image
:param image_mode: The mode to use for images ("RGB" or "L")
"""
cmap = None if image_mode == 'RGB' else 'gray'
z_dim = input_z.get_shape().as_list()[-1]
example_z = np.random.uniform(-1, 1, size=[n_images, z_dim])
samples = sess.run(
generator(input_z, out_channel_dim, False),
feed_dict={input_z: example_z})
images_grid = helper.images_square_grid(samples, image_mode)
pyplot.imshow(images_grid, cmap=cmap)
pyplot.show()
Implement train
to build and train the GANs. Use the following functions you implemented:
model_inputs(image_width, image_height, image_channels, z_dim)
model_loss(input_real, input_z, out_channel_dim)
model_opt(d_loss, g_loss, learning_rate, beta1)
Use the show_generator_output
to show generator
output while you train. Running show_generator_output
for every batch will drastically increase training time and increase the size of the notebook. It's recommended to print the generator
output every 100 batches.
def train(epoch_count, batch_size, z_dim, learning_rate, beta1, get_batches, data_shape, data_image_mode):
"""
Train the GAN
:param epoch_count: Number of epochs
:param batch_size: Batch Size
:param z_dim: Z dimension
:param learning_rate: Learning Rate
:param beta1: The exponential decay rate for the 1st moment in the optimizer
:param get_batches: Function to get batches
:param data_shape: Shape of the data
:param data_image_mode: The image mode to use for images ("RGB" or "L")
"""
# TODO: Implement Function
# based DCGAN_Exercises
print('Data_Shape: {0}'.format(data_shape))
steps = 0
inputs_real, inputs_z, learning = model_inputs(data_shape[1], data_shape[2], data_shape[3], z_dim)
disc_loss, ger_loss = model_loss(inputs_real, inputs_z, data_shape[3])
d_train_opt, g_train_opt = model_opt(disc_loss, ger_loss, learning, beta1)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
for epoch_i in range(epoch_count):
for batch_images in get_batches(batch_size):
steps += 1
batch_images *=2
batch_z = np.random.uniform(-1, 1, size=(batch_size, z_dim))
_ = sess.run(d_train_opt, feed_dict={inputs_real: batch_images,
inputs_z: batch_z,
learning: learning_rate})
_ = sess.run(g_train_opt, feed_dict={inputs_real: batch_images,
inputs_z: batch_z,
learning: learning_rate})
if steps % 20 == 0:
train_loss_d = disc_loss.eval({inputs_z: batch_z, inputs_real: batch_images})
train_loss_g = ger_loss.eval({inputs_z: batch_z, inputs_real: batch_images})
print("Epoch {}/{}...".format(epoch_i+1, epochs),
"Discriminator Loss: {:.4f}...".format(train_loss_d),
"Generator Loss: {:.4f}".format(train_loss_g))
if steps % 32 == 0:
show_generator_output(sess, 25, inputs_z, data_shape[3], data_image_mode)
show_generator_output(sess, 25, inputs_z, data_shape[3], data_image_mode)
Test your GANs architecture on MNIST. After 2 epochs, the GANs should be able to generate images that look like handwritten digits. Make sure the loss of the generator is lower than the loss of the discriminator or close to 0.
batch_size = 128
z_dim = 100
learning_rate = 0.0001
beta1 = 0.2
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
epochs = 2
mnist_dataset = helper.Dataset('mnist', glob(os.path.join(data_dir, 'mnist/*.jpg')))
with tf.Graph().as_default():
train(epochs, batch_size, z_dim, learning_rate, beta1, mnist_dataset.get_batches,
mnist_dataset.shape, mnist_dataset.image_mode)
Run your GANs on CelebA. It will take around 20 minutes on the average GPU to run one epoch. You can run the whole epoch or stop when it starts to generate realistic faces.
batch_size = 128
z_dim = 100
learning_rate = 0.00025
beta1 = 0.5
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
epochs = 1
celeba_dataset = helper.Dataset('celeba', glob(os.path.join(data_dir, 'img_align_celeba/*.jpg')))
with tf.Graph().as_default():
train(epochs, batch_size, z_dim, learning_rate, beta1, celeba_dataset.get_batches,
celeba_dataset.shape, celeba_dataset.image_mode)
When submitting this project, make sure to run all the cells before saving the notebook. Save the notebook file as "dlnd_face_generation.ipynb" and save it as a HTML file under "File" -> "Download as". Include the "helper.py" and "problem_unittests.py" files in your submission.


{% extends "base.html" %} {% block title %}Search{% endblock %} {% block content %}
The FF To Go search syntax is the same as the FriendFeed syntax. If you are logged in it will search your FriendFeed feed. You can search everyone by passing who:everyone into the form below.
{% endblock %}


Fastdev Reference for Android
Intro
The Fastdev server enables Titanium developers writing Android apps to rapidly test and see the changes they make in code. Instead of re-deploying the app after changes are made, the app requests whatever it needs under Resources from the Fastdev server. In other words, when Fastdev is running and your app requests app.js (or just about anything under Resources), the latest version of app.js on your dev machine gets served up to the app – there is no need for the full build-and-release process.
Currently Fastdev is only supported for the Android Emulator, but it will also be supported for devices in an upcoming release.
Pre-requisites
-
MobileSDK 1.7.0 or above
-
Follow the instructions in the Titanium Command-line tool guide so you can call the titanium script directly.
Getting started with Fastdev
Demo Video / Blog
See the introductory blog and demo video here:
Titanium Mobile Intro Series: Fastdev for Android
Starting the Fastdev server
To put your app in Fastdev mode, you'll first need to run the Fastdev server, and re-deploy your app:
-
Start the Fastdev server for your app:
$ cd ~/myApp $ titanium fastdev start [INFO] [2011-05-06 09:43:02,755] Serving up files for org.appcelerator.myApp at <IP_ADDRESS>:62835 from /Users/marshall/myApp
-
Run your app on the currently running emulator. This may require a full rebuild, since we build ALL modules into a Fastdev app to avoid missing functionality:
$ titanium run --platform=android --android=/path/to/android-sdk
For convenience, you can avoid using the --android argument by setting the ANDROID_SDK environment variable
-
In Titanium Studio, you can use the project's Run menu
At this point, you should be able to make changes to nearly anything under the Resources directory, and they will be immediately available to your app. Keep in mind that changes aren't actually uploaded to the app, but rather the app will request the changes the next time they're needed. This means that in some cases, i.e. changes in app.js, you will need to restart the application to see the change. A restart here simply means restarting the app itself, not a full rebuild (like in previous versions of the MobileSDK).
You can control whether Fastdev starts by default when you launch your app by adding the following code to the project's tiapp.xml file:
<property name="ti.android.fastdev" type="bool">true</property>
Restarting a Fastdev app
Any one of these methods will cause the app to restart:
-
"Fast" restart
$ titanium fastdev restart-app
-
Re-run the application: You can just the same command as above:
$ titanium run --platform=android --android=/path/to/android-sdk
-
Manually restart by pressing the emulator's Back button, and clicking on it's icon in the App chooser.
However, keep in mind that you don't always need to restart your app for changes to take effect. For example, if you're using Ti.UI.createWindow with the url attribute set, then any time that window is opened it will reload the JavaScript code in url using Fastdev. Similarly, any time Ti.include is called, Titanium will make a request using Fastdev. Generally, only changes in app.js, and any scripts it might include with Ti.include will require an application restart.
Other Resources
Fastdev is primarily concerned with the files under the app's Resources directory, which means that any changes to the project outside of Resources will require you to manually re-run the application as decribed above. Generally, this means these kinds of changes will require a full rebuild / redeploy:
-
Changes to tiapp.xml
-
Changes to JSS stylesheets
-
Adding, Removing, or Updating a Titanium Module
-
Adding, Removing, or Updating native Android Resources under platform/android
Fastdev also supports the platform-specific Resources/android directory, which maps directly to Resources, however any special android native images that are changed in Resources/android/images/$CONFIG will require a full rebuild (where $CONFIG is one of low, medium, high, or an Android resource identifier such as res-long-mdpi).
Common Issues or Problems
Running the Fastdev server in the background
When starting Fastdev at the command-line, you may want to put it in the background so you can continue using that command-line instance.
Fastdev can be started in the background a number of ways:
# Run in the background and continue printing in this terminal
$ titanium fastdev start &
# Run in the background with log going to nohup.out
$ nohup titanium fastdev start
# In Windows, Run with the "start" command
C:\Users\marshall\Code\myApp>start /B titanium fastdev start
Changing the Fastdev server's Idle Timeout
The Fastdev server shuts down automatically after being idle (i.e. no new requests by the app) for 30 minutes. You can increase this by passing a custom timeout when starting the Fastdev server:
$ titanium fastdev start -t 7200
Android emulator refuses to connect to Fastdev, even though it's running
The Android emulator will sometimes lose it's network configuration (essentially NAT), and fail to connect directly to the host machine. You may notice this when the Fastdev server is running, but the app constantly gives warnings that the connection has been refused or timed out. In this case, the best solution is to completely restart the emulator.
Fastdev Commands
In all cases, the project is taken from the current working directory.
|
Command |
Description |
|
start |
Starts the Fastdev server for a project. If the server is already running for this project, this has no effect. |
|
status |
Prints the status of the Fastdev server. Warns if the server is not running. |
|
stop |
Stops the Fastdev server for a project. If the server is not running, a warning will be issued. |
|
restart-app |
Restarts the app currently connected to the Fastdev server. If no app is currently connected, this has no effect. |
|
kill-app |
Kills the app currently connected to the Fastdev server. If no app is currently connected, this has no effect. |
Full Usage
$ titanium fastdev --help
Usage: fastdev.py [command] [options] [app-dir]
Supported Commands:
start start the fastdev server
status get the status of the fastdev server
stop stop the fastdev server
restart-app restart the app connected to this fastdev server
kill-app kill the app connected to this fastdev server
Options:
-h, --help show this help message and exit
-p PORT, --port=PORT port to bind the server to [default: first available
port]
-t TIMEOUT, --timeout=TIMEOUT
Timeout in seconds before the Fastdev server shuts
itself down when it hasn't received a request
[default: 1800]
-l LOCK_FILE, --lock-file=LOCK_FILE
Path to the server lock file [default: app-
dir/.fastdev.lock]


This is a demo note application for the jQuery Model-View-Controller Tutorial (Phase 2) by Adam Wulf.
With this application, you can add, edit, and delete simple text notes. There is no login, so anyone can see anything you post (and you can see what they post)
The server is set up to fail AJAX requests 10% of the time to demonstrate how the UI can recover from such errors.
Try it out and have fun!


Hope you enjoyed checking out my work, as much as I had fun making them.
I worked to design a desktop and mobile version for Enve Apartment in Eastlake. The client wanted a similar flow to the Ballard57 web site, and specifically wanted the layout to be a single page with scrolling and anchor navigation. The idea is to make the site easy to navigate and organized to make apartment hunting a little easier.
Adobe XD
Photoshop
Paper and Pen
1 week
Taking the time to find users to test the website and mobile version more to see if they drop off using the single page scrolling through analytics.
If I had more time to work on this project, I would have wanted to interview people ages 21-30 years old to understand more about how they look for apartments.
Hope you enjoyed checking out my work, as much as I had fun making them.


{% extends "base.html" %} {% block content %}
We are dedicated to publishing novice and experienced writers from all over the world. Everything you contribute helps them pursue their career, and it helps us keep the magazine online. Thank you again, for reading and for contributing.
Return to the article {% endblock %}


| Concept Framework 2.2 documentation | Contents | Index |
| Name | Version | Deprecated |
| XMLNode | version 1.0 | no |
| The node of a XMLDocument. Provides access to the node of a XML tree; is based on the libxml2 library (you may want to check the libxml2 help). |
| Child | Gets the first child of the xml node |
| Content | Gets or sets the text contained inside the node |
| Handle | Gets the internal handle of the node used by the standard |
| Last | Gets the last node on the same level with the xml node |
| Name | Gets the name of the xml node |
| Next | Gets the next node on the same level with the xml node |
| Parent | Gets the parent of the xml node |
| Path | TODO: Document this |
| Prev | Gets the previous node on the same level with the xml node |
| AddChild | Adds a child to the current xml node |
| AddNext | Adds a sibling node after the current xml node |
| AddPrev | Adds a sibling node before the current xml node |
| Copy | TODO: Document this |
| CreateNew | This function creates a new node |
| GetChild | TODO: Document this |
| GetContent | TODO: Document this |
| GetHandle | TODO: Document this |
| GetLast | TODO: Document this |
| GetName | TODO: Document this |
| GetNext | TODO: Document this |
| GetParent | TODO: Document this |
| GetPath | TODO: Document this |
| GetPrev | TODO: Document this |
| GetProperty | TODO: Document this |
| SetContent | TODO: Document this |
| SetProperty | TODO: Document this |
| __Create | This function creates a new node |
| Documented by Eduard Suica, generation time: Sun Jan 27 18:15:12 2013 GMT | (c)2013 Devronium Applications |


Engineer with a passion for games, nature, coding, problem-solving, and creativity.
About
Hi, I'm an engineer/web developer based in Los Angeles. You can find me at home researching new tech stacks or in a plane or on the road discovering new places and experiences.


Test form errors
Name is required
Email is required (responds with not normalized field path)
Phone must be digit-only
SMTP must be enabled only for status "Manager" (displays error on SMTP host field)


Welcome!
I created this place because my endless
digital circles need a way to come together.
I'm creating an internet hub where all the things that I've
done, am doing, and want to do can
live.
I don't just want this place to be about me, that would suck.
I'm putting it out there on the
interwebs, rather than in my own personal Hanshi Chen trapper
keeper, because I want to work with
you.
You see, folks, I'm all about the
connections.


{{< layout}} {{$main-content}}
If you've changed your name since your last passport, you need to update your information.
If your face has changed significantly, not including the normal signs of ageing, you need to apply in a different way.
Continue


What you will learn
In our Hackathon teams have full freedom to hack whatever they want! If it’s a global issue, we want you to solve it! We want our High Schoolers to have complete freedom to explore their interests.
- Mobile Apps
- Web Apps
- Hardware
Just the right amount of time to produce awesome things, while keeping everyone mentally sane.
The most inspiring line-up of speakers brought from around the world.
Forming teams that will compete for awesome prizes.
This event is bringing the best people, to the best place for hackers
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
Lorem Ipsum is simply dummy text of the printing and typesetting industry.


Overview | Reports | Quarter | Contract
| Vendor Name: | BEAVER LANDSCAPE LTD |
| Reference number: |<PHONE_NUMBER> |
| Contract Date: | 2016-03-01 |
| Description of work: | 0819 Non-professional Personal Service Contracts |
| Contract period: | 2016-03-01 to 2016-10-31 |
| Delivery Date: | |
| Contract Value: | $12,355.05 |
| Comments: | Original Amount $0.00 Lawn and grounds maintenance at Pacific Wildlife Resource Centre |


Hey guys, I use the BBlog now for a while. But I want more. I want help to make the BBlog better. I can offer myself for translations in german, bringing in new ideas and community contact. Are you need there any help?
ORFK
Global Moderator
hi...
well translators for german are really not needed, a big part of the team are from austria, switzerland or germany, so this part is done. if you want help you could start to build own themes and/or plugins for Better Battlelog. if you build good and often used plugins/themes you have the possibility to become a teammember.
thats what i cn tell you =) hope this answer is ok.


|
SX126x-Arduino
2.0.1
|
Implementation according to LoRaWAN Specification v1.0.2. More...
Functions | |
| PhyParam_t | RegionKR920GetPhyParam (GetPhyParams_t *getPhy) |
| The function gets a value of a specific phy attribute. More... | |
| void | RegionKR920SetBandTxDone (SetBandTxDoneParams_t *txDone) |
| Updates the last TX done parameters of the current channel. More... | |
| void | RegionKR920InitDefaults (InitType_t type) |
| Initializes the channels masks and the channels. More... | |
| bool | RegionKR920Verify (VerifyParams_t *verify, PhyAttribute_t phyAttribute) |
| Verifies a parameter. More... | |
| void | RegionKR920ApplyCFList (ApplyCFListParams_t *applyCFList) |
| The function parses the input buffer and sets up the channels of the CF list. More... | |
| bool | RegionKR920ChanMaskSet (ChanMaskSetParams_t *chanMaskSet) |
| Sets a channels mask. More... | |
| bool | RegionKR920AdrNext (AdrNextParams_t *adrNext, int8_t *drOut, int8_t *txPowOut, uint32_t *adrAckCounter) |
| Calculates the next datarate to set, when ADR is on or off. More... | |
| void | RegionKR920ComputeRxWindowParameters (int8_t datarate, uint8_t minRxSymbols, uint32_t rxError, RxConfigParams_t *rxConfigParams) |
| bool | RegionKR920RxConfig (RxConfigParams_t *rxConfig, int8_t *datarate) |
| Configuration of the RX windows. More... | |
| bool | RegionKR920TxConfig (TxConfigParams_t *txConfig, int8_t *txPower, TimerTime_t *txTimeOnAir) |
| TX configuration. More... | |
| uint8_t | RegionKR920LinkAdrReq (LinkAdrReqParams_t *linkAdrReq, int8_t *drOut, int8_t *txPowOut, uint8_t *nbRepOut, uint8_t *nbBytesParsed) |
| The function processes a Link ADR Request. More... | |
| uint8_t | RegionKR920RxParamSetupReq (RxParamSetupReqParams_t *rxParamSetupReq) |
| The function processes a RX Parameter Setup Request. More... | |
| uint8_t | RegionKR920NewChannelReq (NewChannelReqParams_t *newChannelReq) |
| The function processes a Channel Request. More... | |
| int8_t | RegionKR920TxParamSetupReq (TxParamSetupReqParams_t *txParamSetupReq) |
| The function processes a TX ParamSetup Request. More... | |
| uint8_t | RegionKR920DlChannelReq (DlChannelReqParams_t *dlChannelReq) |
| The function processes a DlChannel Request. More... | |
| int8_t | RegionKR920AlternateDr (AlternateDrParams_t *alternateDr) |
| Alternates the datarate of the channel for the join request. More... | |
| void | RegionKR920CalcBackOff (CalcBackOffParams_t *calcBackOff) |
| Calculates the back-off time. More... | |
| bool | RegionKR920NextChannel (NextChanParams_t *nextChanParams, uint8_t *channel, TimerTime_t *time, TimerTime_t *aggregatedTimeOff) |
| Searches and set the next random available channel. More... | |
| LoRaMacStatus_t | RegionKR920ChannelAdd (ChannelAddParams_t *channelAdd) |
| Adds a channel. More... | |
| bool | RegionKR920ChannelsRemove (ChannelRemoveParams_t *channelRemove) |
| Removes a channel. More... | |
| void | RegionKR920SetContinuousWave (ContinuousWaveParams_t *continuousWave) |
| Sets the radio into continuous wave mode. More... | |
| uint8_t | RegionKR920ApplyDrOffset (uint8_t downlinkDwellTime, int8_t dr, int8_t drOffset) |
| Computes new datarate according to the given offset. More... | |
Variables | |
| static const uint8_t | DataratesKR920 [] = {12, 11, 10, 9, 8, 7} |
| static const uint32_t | BandwidthsKR920 [] = {125000, 125000, 125000, 125000, 125000, 125000} |
| static const uint8_t | MaxPayloadOfDatarateKR920 [] = {51, 51, 51, 115, 242, 242} |
| static const uint8_t | MaxPayloadOfDatarateRepeaterKR920 [] = {51, 51, 51, 115, 222, 222} |
Implementation according to LoRaWAN Specification v1.0.2.
| #define KR920_MAX_NB_CHANNELS 16 |
LoRaMac maximum number of channels
| #define KR920_NUMB_DEFAULT_CHANNELS 7 |
Number of default channels
| #define KR920_NUMB_CHANNELS_CF_LIST 5 |
Number of channels to apply for the CF list
| #define KR920_TX_MIN_DATARATE DR_0 |
Minimal datarate that can be used by the node
| #define KR920_TX_MAX_DATARATE DR_5 |
Maximal datarate that can be used by the node
| #define KR920_RX_MIN_DATARATE DR_0 |
Minimal datarate that can be used by the node
| #define KR920_RX_MAX_DATARATE DR_5 |
Maximal datarate that can be used by the node
| #define KR920_DEFAULT_DATARATE DR_0 |
Default datarate used by the node
| #define KR920_MIN_RX1_DR_OFFSET 0 |
Minimal Rx1 receive datarate offset
| #define KR920_MAX_RX1_DR_OFFSET 5 |
Maximal Rx1 receive datarate offset
| #define KR920_DEFAULT_RX1_DR_OFFSET 0 |
Default Rx1 receive datarate offset
| #define KR920_MIN_TX_POWER TX_POWER_7 |
Minimal Tx output power that can be used by the node
| #define KR920_MAX_TX_POWER TX_POWER_0 |
Maximal Tx output power that can be used by the node
| #define KR920_DEFAULT_TX_POWER TX_POWER_0 |
Default Tx output power used by the node
| #define KR920_DEFAULT_MAX_EIRP_LOW 10.0f |
Default Max EIRP for frequency 920.9 MHz - 921.9 MHz
| #define KR920_DEFAULT_MAX_EIRP_HIGH 14.0f |
Default Max EIRP for frequency 922.1 MHz - 923.3 MHz
| #define KR920_DEFAULT_ANTENNA_GAIN 2.15f |
Default antenna gain
| #define KR920_ADR_ACK_LIMIT 64 |
ADR Ack limit
| #define KR920_ADR_ACK_DELAY 32 |
ADR Ack delay
| #define KR920_DUTY_CYCLE_ENABLED 0 |
Enabled or disabled the duty cycle
| #define KR920_MAX_RX_WINDOW 4000 |
Maximum RX window duration
| #define KR920_RECEIVE_DELAY1 1000 |
Receive delay 1
| #define KR920_RECEIVE_DELAY2 2000 |
Receive delay 2
| #define KR920_JOIN_ACCEPT_DELAY1 5000 |
Join accept delay 1
| #define KR920_JOIN_ACCEPT_DELAY2 6000 |
Join accept delay 2
| #define KR920_MAX_FCNT_GAP 16384 |
Maximum frame counter gap
| #define KR920_ACKTIMEOUT 2000 |
Ack timeout
| #define KR920_ACK_TIMEOUT_RND 1000 |
Random ack timeout limits
| #define KR920_RX_WND_2_FREQ 921900000 |
Second reception window channel frequency definition.
| #define KR920_RX_WND_2_DR DR_0 |
Second reception window channel datarate definition.
| #define KR920_MAX_NB_BANDS 1 |
Maximum number of bands
| #define KR920_BAND0 |
Band 0 definition { DutyCycle, TxMaxPower, LastTxDoneTime, TimeOff }
| #define KR920_LC1 |
| #define KR920_LC2 |
| #define KR920_LC3 |
LoRaMac channels which are allowed for the join procedure
| #define KR920_RSSI_FREE_TH -65 |
RSSI threshold for a free channel [dBm]
| #define KR920_CARRIER_SENSE_TIME 6 |
Specifies the time the node performs a carrier sense
| PhyParam_t RegionKR920GetPhyParam | ( | GetPhyParams_t * | getPhy | ) |
The function gets a value of a specific phy attribute.
| getPhy | Pointer to the function parameters. |
| Returns | a structure containing the PHY parameter. |
| void RegionKR920SetBandTxDone | ( | SetBandTxDoneParams_t * | txDone | ) |
Updates the last TX done parameters of the current channel.
| txDone | Pointer to the function parameters. |
| void RegionKR920InitDefaults | ( | InitType_t | type | ) |
Initializes the channels masks and the channels.
| type | Sets the initialization type. |
| bool RegionKR920Verify | ( | VerifyParams_t * | verify, |
| PhyAttribute_t | phyAttribute | ||
| ) |
Verifies a parameter.
| verify | Pointer to the function parameters. |
| phyAttribute | Sets the initialization type. |
| Returns | true, if the parameter is valid. |
| void RegionKR920ApplyCFList | ( | ApplyCFListParams_t * | applyCFList | ) |
The function parses the input buffer and sets up the channels of the CF list.
| applyCFList | Pointer to the function parameters. |
| bool RegionKR920ChanMaskSet | ( | ChanMaskSetParams_t * | chanMaskSet | ) |
Sets a channels mask.
| chanMaskSet | Pointer to the function parameters. |
| Returns | true, if the channels mask could be set. |
| bool RegionKR920AdrNext | ( | AdrNextParams_t * | adrNext, |
| int8_t * | drOut, | ||
| int8_t * | txPowOut, | ||
| uint32_t * | adrAckCounter | ||
| ) |
Calculates the next datarate to set, when ADR is on or off.
| adrNext | Pointer to the function parameters. |
| drOut | The calculated datarate for the next TX. |
| txPowOut | The TX power for the next TX. |
| adrAckCounter | The calculated ADR acknowledgement counter. |
| Returns | true, if an ADR request should be performed. |
| void RegionKR920ComputeRxWindowParameters | ( | int8_t | datarate, |
| uint8_t | minRxSymbols, | ||
| uint32_t | rxError, | ||
| RxConfigParams_t * | rxConfigParams | ||
| ) |
Computes the Rx window timeout and offset.
| datarate | Rx window datarate index to be used |
| minRxSymbols | Minimum required number of symbols to detect an Rx frame. |
| rxError | System maximum timing error of the receiver. In milliseconds The receiver will turn on in a [-rxError : +rxError] ms interval around RxOffset |
| rxConfigParams | Returns updated WindowTimeout and WindowOffset fields. |
| bool RegionKR920RxConfig | ( | RxConfigParams_t * | rxConfig, |
| int8_t * | datarate | ||
| ) |
Configuration of the RX windows.
| rxConfig | Pointer to the function parameters. |
| datarate | The datarate index which was set. |
| Returns | true, if the configuration was applied successfully. |
| bool RegionKR920TxConfig | ( | TxConfigParams_t * | txConfig, |
| int8_t * | txPower, | ||
| TimerTime_t * | txTimeOnAir | ||
| ) |
TX configuration.
| txConfig | Pointer to the function parameters. |
| txPower | The tx power index which was set. |
| txTimeOnAir | The time-on-air of the frame. |
| Returns | true, if the configuration was applied successfully. |
| uint8_t RegionKR920LinkAdrReq | ( | LinkAdrReqParams_t * | linkAdrReq, |
| int8_t * | drOut, | ||
| int8_t * | txPowOut, | ||
| uint8_t * | nbRepOut, | ||
| uint8_t * | nbBytesParsed | ||
| ) |
The function processes a Link ADR Request.
| linkAdrReq | Pointer to the function parameters. |
| drOut | Data rate. |
| txPowOut | TX power. |
| nbRepOut | Number of repeats. |
| nbBytesParsed | Number of parsed bytes. |
| Returns | the status of the operation, according to the LoRaMAC specification. |
| uint8_t RegionKR920RxParamSetupReq | ( | RxParamSetupReqParams_t * | rxParamSetupReq | ) |
The function processes a RX Parameter Setup Request.
| rxParamSetupReq | Pointer to the function parameters. |
| Returns | the status of the operation, according to the LoRaMAC specification. |
| uint8_t RegionKR920NewChannelReq | ( | NewChannelReqParams_t * | newChannelReq | ) |
The function processes a Channel Request.
| newChannelReq | Pointer to the function parameters. |
| Returns | the status of the operation, according to the LoRaMAC specification. |
| int8_t RegionKR920TxParamSetupReq | ( | TxParamSetupReqParams_t * | txParamSetupReq | ) |
The function processes a TX ParamSetup Request.
| txParamSetupReq | Pointer to the function parameters. |
| Returns | the status of the operation, according to the LoRaMAC specification. Returns -1, if the functionality is not implemented. In this case, the end node shall not process the command. |
| uint8_t RegionKR920DlChannelReq | ( | DlChannelReqParams_t * | dlChannelReq | ) |
The function processes a DlChannel Request.
| dlChannelReq | Pointer to the function parameters. |
| Returns | the status of the operation, according to the LoRaMAC specification. |
| int8_t RegionKR920AlternateDr | ( | AlternateDrParams_t * | alternateDr | ) |
Alternates the datarate of the channel for the join request.
| alternateDr | Pointer to the function parameters. |
| Datarate | to apply. |
| void RegionKR920CalcBackOff | ( | CalcBackOffParams_t * | calcBackOff | ) |
Calculates the back-off time.
| calcBackOff | Pointer to the function parameters. |
| bool RegionKR920NextChannel | ( | NextChanParams_t * | nextChanParams, |
| uint8_t * | channel, | ||
| TimerTime_t * | time, | ||
| TimerTime_t * | aggregatedTimeOff | ||
| ) |
Searches and set the next random available channel.
| nextChanParams | Parameters of next channel to use for TX. |
| channel | Next channel to use for TX. |
| time | Time to wait for the next transmission according to the duty cycle. |
| aggregatedTimeOff | Updates the aggregated time off. |
| Function | status [1: OK, 0: Unable to find a channel on the current datarate] |
| LoRaMacStatus_t RegionKR920ChannelAdd | ( | ChannelAddParams_t * | channelAdd | ) |
Adds a channel.
| channelAdd | Pointer to the function parameters. |
| Status | of the operation. |
| bool RegionKR920ChannelsRemove | ( | ChannelRemoveParams_t * | channelRemove | ) |
Removes a channel.
| channelRemove | Pointer to the function parameters. |
| Returns | true, if the channel was removed successfully. |
| void RegionKR920SetContinuousWave | ( | ContinuousWaveParams_t * | continuousWave | ) |
Sets the radio into continuous wave mode.
| continuousWave | Pointer to the function parameters. |
| uint8_t RegionKR920ApplyDrOffset | ( | uint8_t | downlinkDwellTime, |
| int8_t | dr, | ||
| int8_t | drOffset | ||
| ) |
Computes new datarate according to the given offset.
| downlinkDwellTime | Downlink dwell time configuration. 0: No limit, 1: 400ms |
| dr | Current datarate |
| drOffset | Offset to be applied |
| newDr | Computed datarate. |
|
static |
Data rates table definition
|
static |
Bandwidths table definition in Hz
|
static |
Maximum payload with respect to the datarate index. Can operate with and without a repeater.
|
static |
Maximum payload with respect to the datarate index. Can operate with repeater.