Ohmu is a new programming language being developed at Google. Right now, it is just a hobby project that a few engineers are working on in their spare time. Its purpose is to serve as a sandbox for experimenting with various compiler technologies, such as type systems, partial evaluation, run-time code generation, and GPU programming.
Disclaimer: There are no plans to use ohmu internally or to release it as a real product. Anything and everything is subject to change without notice. May be known to the State of California to cause cancer in lab animals, including engineers in computer labs. Do not eat.
We believe that a good programming language is one where the tool chain provides as much assistance as possible. Optimizing compilers improve performance, type systems and warnings help find bugs, while IDEs and refactoring tools help organize and maintain code. These tools are effective only if the language itself has a well-defined semantics, so that the compiler or IDE can analyze and understand the code.
Unfortunately, most practical programming languages have a semantics that is informal, ad-hoc, overly complex, or unsound in various ways, which tends to confound any attempt at analysis. A great deal of academic research has been done in the area of formal programming language semantics, but academic languages go too far in the other direction; they are either too formal (e.g. Agda) or impractical for most real-world tasks (e.g. Haskell).
Our goal is to collect the best ideas from academic research, combine those ideas together, and apply them to the design of a modern, elegant, and above all, a practical language.
Although this may look like a long wish-list, all of these features depend primarily on just two key technologies:
Type system. Type systems are routinely used to handle structural types, such as int and String. However, they can do much more than that. Type systems a general purpose tool for declaring and enforcing any program invariant, including aliasing constraints, ownership, or freedom from race conditions. The ohmu type system is responsible for the safety features above, and it is a key part of modularity, since mixin modules have very complex types. Moreover, the type system enforces program invariants that are then used by the optimizer to achieve high performance.
Partial evaluation. Partial evaluation optimizes code by shifting computations from run-time to compile-time. Most compilers can perform constant propogation. However, the ohmu compiler can perform arbitrary computations at compile-time. Moreover, the partial evaluator is linked to the static type system, which enables it to perform type-based transformations, like method de-virtualization. The extensibility features use partial evaluation to eliminate the run-time overhead that is generally associated with reflection and DSLs.
There has traditionally been a tradeoff in language design between performance and safety. A safe language must perform additional run-time checks, such as array bounds checks, to prevent unsafe operations from occuring. Ohmu leverages the type system to achieve both performance and safety at the same time. E.g. if the type system can prove that the array bounds check always succeeds, then run-time check can be omitted.
Similarly, there has traditionally been a tradeoff between performance and high-level abstractions. Abstractions introduce an additional level of indirection, which usually has a run-time cost. For example, object-oriented inheritance and virtual methods are a useful abstraction, but most compilers cannot inline virtual methods, so they have a high cost. Ohmu leverages partial evaluation to eliminate the overhead of most abstractions. For example, the partial evaluator can specialize a polymorphic function to a concrete type, thus allowing the virtual calls to be eliminated.


All teens experience some amount of anxiety at times. Anxiety is actually a normal reaction to stress, and sometimes it helps teens deal with tense or overwhelming situations. For many teens, things like public speaking, final exams, important athletic competitions, or even going out on a date can cause feelings of apprehension and uneasiness. They may also experience an increase in heartbeat or excessive sweating.
That’s how the brain responds to anxious feelings.
For some teens, however, anxiety can go beyond these typical symptoms to negatively affect friendships and family relationships, participation in extracurricular activities, and even their schoolwork. When feelings of anxiety interfere with normal daily living, the presence of an anxiety disorder should be considered. According to the National Institute of Mental Health, approximately 25% of 13- to 18-year-olds have an anxiety disorder, and just under 6% have a severe anxiety disorder.
Article continues below
Given that teens experience a wide variety of physical and emotional changes as they grow, an anxiety disorder can be difficult to spot. Many red flags may seem like usual teens struggles or be chalked up to hormones. Watch for these hidden signs of anxiety in your teens:
Anxiety can negatively affect friendships. If your once social teen suddenly avoids his favorite activities or stops making plans with friends, think twice. You might notice your child:
Many of the physical complaints that can occur with an anxiety disorder mimic average teen complaints, which tend to increase as they get older. Watch for these common psychosomatic complaints:
School avoidance, missed days due to anxiety-related illness, and persistent worry can make it difficult for anxious teens to keep up with their workload.


| S | stats toolbox needed | I | interactive (user input required) |
| B | bioinformatics toolbox needed | M | matlab needed (will not work in octave) |
| O | optimization toolbox needed | W | windows needed (will not work in linux) |
| X | currently broken | * | slow (two stars indicates very slow) |
| FILE | DESCRIPTION | TAGS |
|---|---|---|
| sub\svmlibFit | PMTK interface to libsvm | |
| sub\svmlibLinearFit | PMTK interface to svm liblinear | |
| sub\svmlibLinearPredict | PMTK interface to svm liblinear | |
| sub\svmlibPredict | PMTK interface to libsvm | |
| sub\svmlightFit | Call svmLight to fit a binary SVM classifier using the specified kernel, | |
| sub\svmlightFitCV | Fit an svm using svmlight setting C and/or the kernelParam via cv. | |
| sub\svmlightPredict | PMTK interface to svmlight | |
| sub\svmlightWriteData | Write data in svm_light format | |
| sub\svmQPclassifFit | Support vector machine binary classification | O |
| sub\svmQPclassifFitCV | Fit a model using svmlight selecting sigma via cross validation. | O |
| sub\svmQPclassifPredict | Return SVM classification predictions | |
| sub\svmQPregFit | Support vector regression | O |
| sub\svmQPregPredict | Return SVM regression predictions | |
| svmCreate | Construct an svm model | |
| svmFit | Fit a support vector machine. | |
| svmPredict | Return svm predictions. |


Host security settings have been grouped in ways to give you an overall level of security while browsing sites. Below is a mapping of the settings in each level. They may alter performance in different ways.
(Not recommended)
Everything should work.
Warning: This could leak your information and potentially be dangerous. This level allows web pages to use some functions (WebRTC, Audio/Video, etc) that might connect over your original connection instead of tunneling through Tor.
(Recommended)
Some things won't work.
JavaScript is allowed, but some of it’s features like WebSockets, geolocation, XHR, etc., are still explicitly disabled.
(Recommended)
Many things won't work.
Disables JavaScript, WebSockets, geolocation, XHR, etc.


Lost and found
November 29, 2018
I was reminded the other day that I needed to get a 404 page done. So far, I have just been letting Github Pages do its job and present a Page not found page whenever a visitor types in a faulty URL, hits a broken link, or in any other way ends up on a page that doesn't exist on this site.
From Grunt to Gulp
November 23, 2018
As a long time user of the Grunt task runner, I was finally pushed to make the switch to Gulp. It happened at my new employer Fiwe where they favor Gulp and Webpack over Grunt.
Github now supports HTTPS for custom domains
June 18, 2018
A while ago I wrote about adding HTTPS to Github Pages using Cloudflare. And it was a long overdue task of mine that’s been on my todo list for quite some time.
Migrating to HTTPS
May 15, 2018
In February, Google announced that beginning in July with the release of Chrome 68, their web browser will mark all HTTP sites as "not secure".
Running Jekyll on MacOS High Sierra
April 16, 2018
So it was time to show my blog a little affection – you know, a little housekeeping involving updating development dependencies and other stuff like checking that build commands still run as expected.
Tags with Jekyll and GitHub Pages
March 15, 2016
Coming from the Wordpress world, I'm used to easily work with tags and categories for blog posts. However, tags aren't supported out of the box in Jekyll. Here is a nice Ruby plugin that will do the trick. But since my blog is published using GitHub Pages, and GitHub Pages doesn't allow Ruby plugins, I can't use this.
Syntax highlighting for Jekyll
March 13, 2016
Reading code isn't always that easy, which is why syntax highlighting is a good idea.
As stated on GitHub Pages, you can use Rouge out of the box with Jekyll. In Jekyll 3 and above, Rouge is the default syntax highlighter and works for 60+ languages.
Development and production settings for Jekyll
March 13, 2016
As I installed Google Analytics, I wanted to keep it from tracking pages on my local development web server. I found this neat solution by David Elbe, which lets med keep development stuff apart from production stuff. On GitHub Pages, jekyll.environment
is always set to production
.
Birth of a Blog
February 21, 2016
Four years ago, around this time of the year, I acquired this domain after keeping watch for a few years to see if it would be available. I installed a Wordpress site, as I had managed a few Wordpress sites before.


apps made based on three.js
_(:з」∠)_
...
hello three.js
(๑ŐдŐ)b
When I saw the voxel paint example on introduction website of three.js, I realised that three.js could be used to make an app similar to Minecraft creation mode.
voxel paint


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 4
For the pan-fried grey mullet fillet, season the flesh side of the grey mullet with salt and freshly ground pepper.
Heat a frying pan until hot, add the olive oil and place the fish in the pan, skin-side down. When the skin of the mullet is golden-brown and crisp, turn the fish over to finish cooking and then add a squeeze of lime.
Meanwhile, for the vegetables, heat the sesame oil in a pan, add the beansprouts, shiitake mushrooms and mangetout, along with a pinch of salt. Stir fry for a few minutes.
Once the vegetables have softened, add the toasted sesame seeds and mix well.
For the lemongrass and white wine sauce, heat a frying pan until hot and add half of the butter, the shallots, lemongrass and a pinch of salt.
Gently fry until the shallots are soft, but not browned.
Add the fish stock and cook until the liquid is reduced by half.
Place the wine in a separate pan and simmer until it is reduced by a third. Add the wine to the reduced stock.
Add the cream, bring to the boil and then immediately turn down the heat to a simmer. Cook until thickened slightly; then pass through a sieve into a clean pan.
Whisk in the remaining butter and season with salt and freshly ground pepper, to taste.
Pile the vegetables onto each plate. Place the fish onto the vegetables and spoon the sauce over and around. Serve.


Polynomials on the Sierpinski Gasket
The space \(\mathcal{H}_j\)
-
Let \(f: SG \mapsto \mathbb{R}\). Then \(f\) is a \(j\)-degree polynomial iff
\(\Delta^{j+1}f = 0\) and \(\Delta^{j}f\neq 0\), i.e \(f\) is \(j\)-harmonic but not \((j-1)\)-harmonic. -
The space of polynomials with degree \(\le j\) is denoted \(\mathcal{H}_{j}\)
-
Let \(f \in \mathcal{H}_j\). Then \(f\) is determined uniquely by the values \((f(q_0), f(q_1), f(q_2), \Delta f(q_0), \Delta f(q_1), \ldots, \Delta^jf(q_2))\)
-
dim(\(\mathcal{H}_j\)) = \(3j + 3\)
-
A natural basis for \(\mathcal{H}_{j}\) is the family of functions \(\{f_{nk}\}\) where \[\Delta^{m}f_{nk}(q_i) = \delta_{mn}\delta_{ki}\]
-
For example, the three harmonic functions \(h_i\) where \(h_i(q_j) = \delta_{ij}\) form a basis for \(\mathcal{H}_0\)
The Monomial Basis
-
We want to mimic the case on \(I = [0,1]\) where we can expand a function as a Taylor series in terms of basis functions where we use derivative information at one point.
-
For example, for harmonic functions, we have the following basis \(\{P_{0k}\}\) where the tuple of values \((u(q_0), \partial_nu(q_0), \partial_Tu(q_0)) = e_k\): \[P_{01} = h_0 + h_1 + h_2 \hspace{0.35in} P_{02} = -\frac{1}{2}(h_1 + h_2) \hspace{0.35in} P_{03} = \frac{1}{2}(h_1 - h_2)\] If \(f \in \mathcal{H}_0\) then \(f = f(q_0)P_{01} + \partial_nf(q_0)P_{02} + \partial_Tf(q_0)P_{03}\)
-
We introduce the following basis \(\{P_{jk}\}\) where \[\begin{aligned} \Delta^nP_{jk}(q_0) &= \delta_{nj}\delta_{k1}\\ \Delta^n\partial_nP_{jk}(q_0) &= \delta_{nj}\delta_{k2}\\ \Delta^n\partial_TP_{jk}(q_0) &= \delta_{nj}\delta_{k3}\\ \end{aligned}\] This is known as the monomial basis.
Examples of Monomials
Orthogonal Polynomials
-
The space of polynomials on \(\mathbb{R}\), denoted \(P(\mathbb{R})\) can be endowed with the following inner product: \[\langle f,g \rangle = \int_{\mathbb{R}}f(x)g(x)w(x)\,dx\] where \(w(x) \in L^1(\mathbb{R})\)
-
Given an inner product space, we can generate an orthogonal basis using the Gram-Schmidt process. The resulting polynomials are called \(\textbf{orthogonal polynomials}\)
-
Common examples for \(w(x)\) include \(\chi_{[-1,1]}(1-x)^\alpha(1+x)^\beta\), \(e^{-x^2}\), and \(\chi_{[0,\infty)}e^{-x}\)
| \(w(x)\) | Name |
|---|---|
| \(\chi_{[-1,1]}(1-x)^\alpha(1+x)^\beta\) | Jacobi |
| \(e^{-x^2}\) | Hermite |
| \(\chi_{[0,\infty)}e^{-x}\) | Laguerre |
There are two special cases of Jacobi polynomials:
-
When \(\alpha = \beta = 0\), they are known as the Legendre polynomials. In this case the inner product is the standard \(L^2\) product on \([-1,1]\): \(\langle f, g \rangle_{L^2} = \int_{-1}^{1}fg\,dx\).
-
When \(\alpha = \beta = 1/2\), they are known as the Chebyshev polynomials. Here the weight function is \(\sqrt{1-x^2}\).
Classical orthogonal polynomials, denoted \(P_n\) satisfy the following properties:
-
\(Q(x)P''_n(x) + L(x)P'_n(x) + \lambda_nP_n(x) = 0\) where \(Q,L\) are polynomials and \(\lambda_n \in \mathbb{R}\)
-
\(P_n(x) = \frac{1}{e_nw(x)}\dfrac{d^n}{dx^n}(w(x)[Q(x)]^n)\). This is known as the Rodrigues’ formula.
-
Two term recurrence: \(a_nxP_{n}(x) = b_nP_{n+1}(x) + c_nP_{n-1}(x)\)
Okoudjou et. al (2012) found the Legendre polynomials on SG (the orthogonal polynomials with respect to the \(L^2\) inner product). We will study orthogonal polynomials with respect to other inner products, usually involving the Laplacian. These will be known as the \(\textbf{Sobolev}\) inner products.


Please select "show more..." to retrieve all information properly.
Scrolling Helps! If nothing works, scroll through the webpage and it might work.
The information retrieved is editable. Make changes wherever you feel like but ensure you do not destroy the "object" formatting


The page you were looking for appears to have been moved, deleted or does not exist. Wanna go back to our home page?


This calls pay() from a third-party script hosted at https://honored-capable-catsup.glitch.me/pay.js. That script will inject the origin trial token to activate the PaymentHandlerMinimalHeaderUX origin trial feature.
Pay


#
→full documentation
Create a comment that extends to the end of the line.
Anything written in comments is ignored.
1 + 2 # + 3 + 4 3 "Hello world!" # this is ignored! "Hello world!"


When you work with us, you are part of a team of commited collaborators. All aspects of our software development process are intergrated , interactive and agile.
Our approach unifies design, development and product managent to create exceptional products.
We start each project by understanding your business goals, the users needs and the product requirements.
Then we help translate them into active and elegant solutions.
Before we sign a contract or write a line of code, our team will spend the neccessary time needed to understand your product vission.
The outcome of the scoping session a proposal or high-level statement of work.
based on your requirements, we can provide a complete offering or just the piece you need.
Our design practice offers a full range of services including brand strategy, interaction and visual design and user experience testing.
Throughout your project, our designers create and implement visual design and workflows, solicit user feedback and work with you to make sure what gets built is what is needed.
DESIGN
All engineers are fluent in the latest enterprise, mobile and web development technologies.
They collaborate with your team to write, and improve code on a daily basis, using proven practices such as test-driven development and pair programming.
DEVELOPMENT
Planning and development is interactive. Because we afe constalntly coding and testing, the products we buid are always ready to go live.
This interactive process allows for changes as business requirments evolve
PRODUCT MANAGEMENT
BLACK SHEET
ONTORIO
YELLOW STUDIO
MIXER
HAVE A NICE DAY
CACULATOR
BURNED
BAILEY WONGER


The groupfunction block has various functions. You can count colums. Also you get the average, sum, variance, maximum, minimum and the standard deviation of a column. It is used in the 'SELECT'-section. This block chnages the colour to simbolise the types.
To use this block you just plug in the green table and colum block and choose your table and paramter. This is shown in the picture on the left.
In some functions you have to set an alias. To set the alias, just click in the text field, marked with 'AS' and write it down. The alias is the name under which the result of the function will be shown. You can use it to order or group your results.To use the alias you need the alias variable
The average function, calculates the average value of a column. Usually it is used with columns, who hold quantities or money(e.g. a Price).
The summarize function, calculates the summed value of a column. Usually it is used with columns, who hold quantities or money(e.g. a Price).
The minimum function, returns the minimum value of a column. Usually it is used with columns, who hold quantities or money(e.g. a Price).
The maximum function, returns the maximum value of a column. Usually it is used with columns, who hold quantities or money(e.g. a Price).
The count function counts the rows of a column and return this as number.
The variance function returns the population standard variance of a column. It considers rows as the whole population, not as a sample, so it has the number of rows as the denominator.
The standart derivation function returns the population standard deviation of a column.
This colour ,apple green, symbolises list, like all selected columns.
This colour,violet, symbolises the numeric values of the database
This colour, brown, symbolises the textual values of the database
This colour,tapestry, symbolises the date values of the database
This colour ,cyan, symbolises the boolean values of the database


|
R.E.M.
|
|
|
Reveal
|
1.
The Lifting
2. I've Been High 3. Reno 4. She Just Wants 5. Disappear 6. Saturn Return 7. All I Want 8. Imitation Of Life 9. Summer Turns To High 10. Chorus & The Ring 11. I'll Take The Rain 12. Beachball |


GDG Vizag 2019!
Vizag's biggest Developer conference just got bigger and better.
Register me for Vizag DevFest 2019Expert Talks
Indulge in sessions where experts from all around the country share tips, techniques and learnings on the latest technologies, coolest frameworks and smartest apps.
Live Sessions
Unleash the developer within you with sessions that enable to quickly build an app, design a website or deploy some code. Embrace a world of possibilities.
Inspirational Stories
Get amazed and motivated by the success stories of tech entrepreneurs and professionals who have stood their ground and succeeded in their moonshots.
Networking Fun
Experience having fun while learning. Network and share with co-attendees who have had a different path than yours, all while having fun together.
"Girl, you are the the boss" interactive brainstorming session facilitated by WTM ambassador Usha Ramani [Parallel Session 2]


Program It
Try It
Run Program
Stop Program
Redeal Cards
5 cards
8 cards
10 cards
12 cards
15 cards
20 cards
Run Speed:
Steps:
The Human Machine Language
Command Toolbox:
SHIFT
Hand
Right Hand
Left Hand
TO THE
Direction
Right
Left
MOVE
Hand
Right Hand
Left Hand
TO POSITION
Position
JUMP TO LINE
Line #
1
JUMP TO LINE
Line #
1
IF
Value
Right Hand Card
Left Hand Card
Right Hand Position
Left Hand Position
compare
>
<
=
≠
≤
≥
Value
SWAP
STOP
Line #
Instruction
Copy code to clipboard


{% extends "cradmin_legacy/base.django.html" %} {% load devilry_theme3_tags %} {% block title %} WCAG debug {% endblock title %} {% block content %}
Testing here
Status: waiting for deliveries
Deadline: Thursday March 15, 2040, 23:59
0 comments from student. 1 files from student. 2 comments from examiner.
Deadline: Tuesday January 31, 2040, 12:30
0 comment from student. 1 files from student. 2 comment from examiner.
Feb 8 2016, 20:00 : Deadline expired
Oct 15 2018, 11:54 : This delivery was corrected, and given: passed (1/1) by Exa Miner<EMAIL_ADDRESS>Oct 15 2018, 11:54 : This delivery was corrected, and given: failed (0/1) by Exa Miner (examiner@example.com)


ravestate.argparser
handle_args
handle_args(*args) -> Tuple[List[str], List[Tuple[str, str, Any]], List[str]]
Runs an argument parser for the given args. Returns modules-to-load, config value-overrides and config file-pathes. Note: If the arguments are ill-formatted, or the -h argument is passed, help will be printed to the console and the program will abort.
args
: Argument list which will be fed into argparse.parse_args.
Returns: A Tuple with three items: 1.) A list of module names which should be imported. 2.) A list of tuples, where each tuple is a module name, a config key name, and a value. 3.) A list of yaml file paths.
ravestate.config
Configuration
Configuration(self, paths: List[str])
The Configuration class maintains a dictionary of key-value stores, which represent configuration entries for specific named modules. The key-value stores may be successively updated with consecutive yaml files, where each yaml document has the following content:
module: module-name config: key-a: value-a key-b: value-b # etc
add_conf
Configuration.add_conf(self, mod: ravestate.module.Module)
Register a set of allowed config entries for a specific module. Correctly typed values for allowed keys, that were previously parsed during construction from the yaml files, will be applied immediately.
mod
: A module object with a name and a conf dict.
get_conf
Configuration.get_conf(self, module_name: str)
Retrieve updated config values for a module that was previously registered with add_conf.
module_name
: The module name for which configuration should be retrieved.
Returns: A dictionary which contains exactly the keys that were contained in the module configuration dictionary during add_conf, or an empty dictionary if the module name is unknown.
get
Configuration.get(self, module_name: str, key: str) -> Any
Get the current value of a config entry.
-
module_name
: The module that provides the config entry. -
key
: A config key for the module that was previously added through add_conf.
Returns: The current value, or None, if the entry does not exist.
set
Configuration.set(self, module_name: str, key: str, value: Any)
Set the current value of a config entry.
-
module_name
: The module of the config entry. -
key
: A config key for the module that was previously added through add_conf. -
value
: The new value for the config entry. An error will be raised, if the type of the new value does not match the type of the old value.
write
Configuration.write(self, path: str)
Write all current config entries to a yaml file.
path
: The file path to write. Will be overwritten!
read
Configuration.read(self, path: str)
Loads all documents from a yaml file and tries to interpret them as configuration objects as described above.
path
: The yaml file path from which to load config documents.


| Kelp
Forest Canopy Here in the kelp forest canopy, just below the surface, the plants get lots of sunlight, and photosynthesis makes their fronds grow fast and thick. For these first four feet (one meter) or so the forest is nearly impenetrable to larger animals, but between the plants squeeze tiny snails, kelp crabs, and small fish. When seasonal storms punish the ocean surface, the canopy can be ripped to shreds and thinned out to virtually nothing. But since giant kelp can grow up to 18 inches (46 centimeters) a day, it doesnt take long for the forest to grow back to normal. |


{% extends "ct/portal.html" %} {% load crispy_forms_tags %} {% comment %} homepage for a user {% endcomment %} {% block title %} {{ person.get_full_name }} {% endblock %} {% block content %} During the private alpha, no instructor information is displayed. {% if logoutForm %}


This setup guide will help you get the go-cart web application up and running on Max OS X. This guide assumes that you already have Homebrew installed.
First, you need to install some third-party software dependencies. Open a new terminal window, and run the following command:
$ brew install python3 postgresql
Now you'll need to install virtualenv, a tool that makes it easy to manage dependencies for Python projects:
$ pip3 install virtualenv
Now you'll need to configure the PostgreSQL database server. PostgreSQL is a robust SQL database server go-cart uses to store users' generated cartograms so they can be shared on social media. In order for go-cart to use PostgreSQL, you'll need to first initialize it, then create an account and database:
$ brew services start postgresql
$ initdb /usr/local/var/postgres
If you receive the error
initdb: directory "/usr/local/var/postgres" exists but is not empty
If you want to create a new database system, either remove or empty
the directory "/usr/local/var/postgres" or run initdb
with an argument other than "/usr/local/var/postgres".
then run the following commands:
$ rm -r /usr/local/var/postgres
$ initdb /usr/local/var/postgres
Now you can create a PostgreSQL account and database for the web application:
$ createuser --interactive --pwprompt gocart
Enter your chosen password when prompted, and answer no to all of the questions asked by typing n
and pressing return each time:
Enter password for new role:
Enter it again:
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
Now, you can create the database:
$ createdb -O gocart gocart
Now, you need to download and compile the cartogram generator. You must use the cartogram generator from the repository below, not the one from Flow-Based-Cartograms/go_cart
.
$ git clone https://github.com/mgastner/cartogram.git
...
$ cd cartogram
There is a slight bug in the current version of the cartogram generator that prevents it from working properly in the web application. However, it's easy to fix. You'll need to make a small change in main.c
:
$ open -a textedit main.c
Find line 264. It should read:
printf("correction_factor = %f\n", correction_factor);
Replace the contents of this line with:
fprintf(stderr, "correction_factor = %f\n", correction_factor);
Save the file and quit TextEdit. Now you're ready to compile:
$ chmod +x autobuild.sh
$ ./autobuild.sh
...
Remember the path to the root of this repository, as you'll need it when configuring the web application later.
First, clone the web application code from GitHub
$ git clone https://github.com/jansky/cartogram-web
Now, you need to change some settings:
$ cd cartogram-web/internal
$ cp envsettings.sh.dist envsettings.sh
$ open -a textedit envsettings.sh
In the third line, replace /home/jansky/cartogram/cartogram_generator/cartogram
in CARTOGRAM_EXE
with the path to the folder containing the cartogram generator, followed by /cartogram_generator/cartogram
. For example, if the root of the cartogram generator repository is
/home/jansky/cartogram
Then CARTOGRAM_EXE
should be set to
/home/jansky/cartogram/cartogram_generator/cartogram
In the fourth line, replace /home/jansky/cartogram
in CARTOGRAM_DATA_DIR
with the path to the folder containing the cartogram generator. Do not include a trailing slash.
In the tenth line, in CARTOGRAM_DATABASE_URI
, replace username
with gocart
, password
with the database password you created, and database
with gocart
. Save the file and quit TextEdit.
Finally, you need to initialize the database:
$ source ./setupenv.sh
(venv) $ python3
Python 3...
...
Type "help", "copyright", "credits" or "license" for more information.
>>> import web
>>> web.db.create_all()
>>> exit()
(venv) $
When you want to run the web application, open a new terminal window and navigate to the root of the cartogram-web
repository using cd
. Then, run
$ cd internal
$ source ./setupenv.sh
(venv) $ python web.py
...
Now, you can navigate to http://localhost:5000 in your web browser to access the go-cart web application.
When you are finished, you can go back to the terminal window and press Control-C to kill the web application process.


Age
1Month 20Days
Soil Moisture
40%
Feeling
Thirsty & Angry
| Date | Wartering | Soil Moisture |
|---|---|---|
| 7.05 | 95% | |
| 7.10 | 50% | |
| 7.15 | 97% | |
| 7.20 | 70% |


Doge Social Network
Home
Profile
Friends
Welcome to the Doge Social Network
Here you can find friends or stalk straingers.


TABLE OF CONTENTS
This is a series of
experiments
about simple machines: levers, wheels and inclined planes.
This unit was designed for use in the third grade.
THE EXPERIMENTS
Go To The Hands-On Technology Program Home Page
Last Update: March 31, 2000
Copyright 1996,1997, 1998, 1999, 2000 D.M.Candelora. All rights reserved.
Reproduction for educational use is encouraged
as long as this copyright notice is included.


What is Eden?
Eden is a community of individuals cooperating to maximize the independence of its members and thereby securing life, liberty, property, and justice for all.
One of the principles of Eden is that two people working together are stronger than two uncoordinated individuals. By working together both people increase their individual power and independence in the world. Anytime two or more people come together a process is needed for consensus building and delegation of authority.
One of the principles of Eden is that two people working together are stronger than two uncoordinated individuals. By working together both people increase their individual power and independence in the world. Anytime two or more people come together a process is needed for consensus building and delegation of authority.
What is EdenOS?
Eden OS is a unique governance process that leverages the wisdom of the crowds to identify the best community representatives in a manner that has as its goal the avoidance of devolving into party politics, popularity contests, or incumbent advantage.
One of the most important ways any community can achieve independence is to adopt its own currency. Currency is one half of most transactions and represents the economic power of the individuals and the community as a whole. The Eden community has chosen EOS to be its currency of choice and will work to maximize the utilization and adoption of EOS as a currency both within the community and outside.
Eden OS is the “operating system” of this community and it governs how community members are added and removed as well as how community funds are allocated to representative members.
One of the most important ways any community can achieve independence is to adopt its own currency. Currency is one half of most transactions and represents the economic power of the individuals and the community as a whole. The Eden community has chosen EOS to be its currency of choice and will work to maximize the utilization and adoption of EOS as a currency both within the community and outside.
Eden OS is the “operating system” of this community and it governs how community members are added and removed as well as how community funds are allocated to representative members.
So then, what is Eden on EOS?
Eden on EOS is the collective term for the brand and messaging around launching the Eden effort on the EOS Main net. The overall process of define, launch, and enable Fractal Democracy, and the release of the software (EdenOS) Clarion is releasing for the broader Eden community.
How do I become a member of Eden?
All are welcome to apply to join our Community. If you would like to do so, please start HERE.
What is the purpose of the trial election?
With any new governance process and technology, it is important to test and debug the methodology before scaling it to a much larger membership. A small scale voting test will allow us to learn from any mistakes and further refine the process.
If you win the trial election, does that help in the general election?
Winning the trial election does not guarantee you will do equally well when the main election is held ... but it certainly can't hurt :)
Is there an official forum for Eden?
Yes, please join the conversations HERE.
Do I have to speak / write only in English in the Eden on EOS Community?
The Eden Genesis group has formed as an english speaking group. However we have plans in development to translate much of the EdenOS processes and procedures, tools, info etc. This will support groups to form with their open native languages like: Chinese, Korean, Spanish and German at this time.
If you are interested in forming a group in a language that’s not currently listed, we simply need someone from that language group to start the process of translating our open source materials.
If you are interested in forming a group in a language that’s not currently listed, we simply need someone from that language group to start the process of translating our open source materials.
Can anyone from any Country join Eden on EOS?
Yes, as long as English is the language used for all of your correspondence, you can join the Eden community, and live anywhere in the World.


UseMD5Fingerprint()
Syntax
UseMD5Fingerprint()Description
Register the MD5 fingerprint plugin for future use.
Parameters
None.
Return value
None.
Remarks
Here is a quick explanation taken from the RFC 1321 on MD5:
'The algorithm takes as input a message of arbitrary length and produces as output a 128-bit "fingerprint" or "message digest" of the input. It is conjectured that it is computationally infeasible to produce two messages having the same message digest, or to produce any message having a given pre-specified target message digest. The MD5 algorithm is intended for digital signature applications.'
MD5 hashs are often used for password encryption, but it should be avoided as it has been found to be vulnerable to severals attacks. More information about MD5 can be found in the RFC 1321: http://www.ietf.org/rfc/rfc1321.txt.
Example
UseMD5Fingerprint() Debug StringFingerprint("yourpassword", #PB_Cipher_MD5)
See Also
UseSHA1Fingerprint()(), UseSHA2Fingerprint()(), UseSHA3Fingerprint()(), UseCRC32Fingerprint()()
Supported OS
All


ADD A NEW COOKIE STAND
Please fill the following information:
Location:
Minimuim No. of Customers:
Maximuim No. of Customers:
Average No. of Cookies/Hour:


Hi All, I started thinking about this project about 4 years ago when v3power did a turbine build course at Trystan's place in North Wales. Trystan and I talked about a simple DC monitoring circuit for wind turbines. Then my university degree happened, and now I'm back and onto this original project. Full circle.
I want to post here to explore what applications people think would be best for a DC monitoring project. Thoughts so far include making an integrated Arduino, RF, DC Sense module, rated at 100A. The rating implies applications in Solar, Wind and Hydro. The rating is primarily for the physical robustness of the module and is not restricting it's application in higher resolution measurements at lower currents. The shunt and amplifier gain could be adjustable, making a wide variety of applications possible.
I'll be documenting a variety of approaches as the tests and designs develop:
- Breadboard / Copper ProtoBoard
- PCB Kit
- SMT Board and case.
So far I've tested several shunt monitoring ICs, each with their own characteristics. I've got a couple more to do (one because it was a first attempt at SMC soldering which went terribly, and the other because it requires programming).
Results of tests so far and a few notes here.
Re: DC Sensing project
Hi
Have you looked at these:-
http://www.pololu.com/category/118/current-sensors
I am using one to monitor the load consumption on my battery PV system. I found this useful as well:-
http://www.hacktronics.com/Tutorials/arduino-current-sensor.html
Regards
Ian
Re: DC Sensing project
Hi Ian,
They look handy and cheap. Hall effect are not as accurate as shunt monitors, and they have greater gain error over temperature I believe. Shunt monitor ICs are about half the price. Not sure about hall effect if I'm designing something from scratch.
I'm thinking of using PCB tracing as the resistor element, so any heat generated is spread through the board and absorbed by the connecting cables also. Doing away with the shunt resistor itself also. I'm going to have to get the advice of the PCB manufacturer.
Cheers,
Dan
Re: DC Sensing project
I'm trying to work out if it's worth developing an integrated arduino/RF/dc sensor module. Thoughts anyone?
Thinking that high res unidirectional dc monitoring's a good start. maybe if the dc monitoring component (shunt+IC) is self contained, like the pololu sensors above, then two could be used for bidirectional data, using two analog inputs. I wonder if the Tx could lend itself to DC monitoring..
D
Re: DC Sensing project
DC monitoring is a topic that pops up fairly regularly, but there's a huge range to cover, from battery charging (vehicles or otherwise) to PV output monitoring, implying a fairly wide range of both current and voltage.
It's apparently so simple, yet it can be fraught. If you're looking at the PV output, it may well be sitting at a very nasty voltage, so isolation would likely be essential in very many applications.
Re: DC Sensing project
Isolated current measurement is simple, there are some Allegro ICs (ACSxxx) for up to +/-200A.
After I did some searching, I found something for isolated voltage measurement: avagotech.com: http://www.avagotech.com/pages/en/optocouplers_plastic/plastic_miniature...
Anybody tried one of these ICs?
Re: DC Sensing project
The range of DC monitoring requirements is by far the most headache inducing part of this project! The INA219 looks promising because of the programmable gain. Goes as low as 40mV for full range sensing with a 10uV resolution. So even with a 10mV drop across shunt that's 1000 steps of resolution. The shunt could be swappable, switchable or solderable in some way depending on the current range required.. haven't decided how to do that.
I need to test the INA219.. got it working using the adafruit sketch, just need to check its accuracy. Even so, the common mode voltages it accepts aren't great.. which leads me to the INA169.. and this is where i go round in circles because the 169 is unidirectional and has errors at low sense values.. So would need 2 for bidirectional use and a calibration routine.
Zener diodes for isolation?
The allegros are awesome but immediately restrict use to certain current ranges. I want to make a versatile little thing if possible
Re: DC Sensing project
Zener diodes for isolation?
How? I think you're a bit mixed up there.
But I don't think the INA219 actually provides any isolation at all. It can accept common-mode inputs over a limited range as you say, but that's not the same thing.
To get a truly isolated signal transfer, you need to go to optical or magnetic (transformer), and that implies the signal conditioning and conversion to digital takes place in the isolated, not-ground-referenced part. And then the actual signal isolation is only part of the problem - you'll most likely need two power supplies, one to feed the ground-referenced end and the second, isolated, power supply to feed the part of the circuit that's not earth-referenced. RobP attended to all these issues, but in a slightly different context, in GivMon.

Does it make sense that if the DC sensing module wirelessly passed on the information, magnetic or optical isolation would be unnecessary? The module itself could be fused in the event of a short circuit through it.
However if the DC sensing component was wired into the an arduino or pi powered from a system with a different reference voltage then isolation would be required? For example if there was a PV/Battery system on one side and grid tie inverter interfacing with the mains.. Then isolation would be required?
On a different subject.. galvanic corrosion.. I witnessed the results of this in old PV systems (self-colouring of the copper wire). It is a strong enough reason to avoid screw terminal connections in DC systems and instead, have everything soldered?
Re: DC Sensing project
Sending the data wirelessly does of course achieve isolation, but you cannot work on it. You would need to have a suitably rated plug and socket connection, or a suitable isolator switch, to completely disconnect it in order to do any adjustments to the software and to reprogram it, and you could not make any connection for monitoring the serial output in use. Irrespective of the need for isolation, you must always provide circuit protection against faults.
I cannot say for certainty, without seeing circuit diagrams or measuring voltages, whether isolation is required in any particular case. It is highly probable that it would be required in most cases, because if you think about it, one side of the mains is more or less at earth potential, no inverter manufacturer wants the cost, size and weight penalty nor the losses of a 3 or 4 kVA mains transformer, so unless you do the power conversion in two stages and have a smaller high frequency transformer (think of the size and weight of a 5 V USB adapter compared with the ac-ac adapter) giving you isolation, neither side of the d.c. supply from the panels will be at earth potential.
Can you not only have galvanic corrosion if you have two dissimilar metals and some form of an electrolyte present - usually dampness? We could not possibly solder the connections on the 3 MW dc mine winder motors - those had crimps on the cable ends that were bolted onto the busbars. Those were of course indoors and dry.
Re: DC Sensing project
It makes alot of sense to isolate.. Didn't realise it was such a problem. Plug and socket connection, like automotive relays, could work well. Would an isolation switch best disconnect the sensing module from the common line or the positive lines or both?
The galvanic corrosion issue (I was told that's the right term.. could be wrong) I witnessed in Australia. Any system older than 15 years had negative lines gone black, pain to work with. The humid environment there means everything gets damp at some point through the wet season, indoors or out. Does this type of corrosion have a different name? I can't find anything conclusive searching the web.
Re: DC Sensing project
High direct voltages can be very nasty, what voltage are we talking about, because automotive connectors will be good to only 12 / 24 V. Whatever the voltage, you must completely isolate the kit you are working on - as well as the risk of shock to you, there's the danger from a ground or common loop through any test gear or computer you connect.
I'll pass on the corrosion issue - we don't have that problem much in the UK. But would some kind of conformal coating help?
Re: DC Sensing project
Might as well design a DC sensing module to work with 48V solar pv systems. Meaning open circuit voltages of about 60V, which happens to be compatible with a couple of shunt monitors I've found. Protection from higher voltages like in generator applications would be useful.. Zener diodes come into play here?
https://docs.google.com/drawings/d/1vuDr3Bs2pl0OuCuJ9A5ob8zSsV-_p-Cet8cT...
Re: DC Sensing project
You need to protect the monitor IC inputs from overvoltage - whatever the manufacturer's data sheet says. If the other leg of your dc supply is grounded, you won't need isolation. If it isn't or you don't know, then you do and everything must be insulated to the highest system voltage, as must be your power supply.
What sort of power (on the dc side) are we talking about? Presumably you'll want to measure the voltage also?
Re: DC Sensing project
Pages 14 and 15 http://www.ti.com/lit/ds/symlink/ina213.pdf for transient overvoltage protection, which it think is suitable for overvoltage in general depending on the components.
So if for example the pv negative and battery negative were both earthed then no isolation's required?
Designing for 100A 60V DC. Yes, voltage also with a divider I was thinking..
Re: DC Sensing project
I don't think you've yet grasped what Isolation is for. Stop thinking details and look at what happens when something goes wrong.
Reason 1. If your measuring kit is connected to battery negative and your computer to mains earth, then if you plug one in to the other, if there's the slightest voltage difference, a current will flow. What that current could be depends on a myriad of factors, but I wouldn't bet that it won't blow tracks off PCBs or melt cables or connectors.
Reason 2. Personal safety. No fuse will protect you, and while 60 V dc across a finger will sting, if your skin is damp and hence (comparatively) highly conductive and the conducting path is through a critical part of your body, then the effect is a lot more serious. So to combat that you need to be able to isolate the part that you intend to work on, or if your only connection to the high voltages is instrumentation inputs, you need a totally foolproof way to limit the possible fault current to a safe value. So looking at your shunt, the connections to the amplifier must be via at least two series resistors each (so you stand a fighting chance if one fails short circuit) and those and the shunt itself must be fully shrouded against inadvertent contact. The current must be limited to a few milliamps even with one resistor shorted, no matter to where your short-circuit happens to be.
Re: DC Sensing project
It might be worth me looking at an example module. Can you recommend something? Or would looking at something like an AC-DC adaptor be worthwhile?
Re: DC Sensing project
I'm struggling because I don't know the details of your system - or the system that you are proposing - so everything I'm saying has to be in the most general terms. What do you mean by an example module? What is it for, what are you trying to achieve? How is an AC-DC adapter an alternative to it? What do you need your AC-DC adapter for?
Looking back through this thread, are you in fact trying to design a general purpose module that anyone can use? If that's the case, then you simply must assume that isolation to the full system voltage is required. You have two choices: either you put everything in an earthed metal case or you double insulate; and isolate (probably but not necessarily optically - as energy meters do, radio is also available) the input and output to your programming and reading device. Alternatively (still suitably protecting the potentially high voltage connections) isolate the input signals - again optically is one possibility, and earth the rest of the circuit and the output (usually this earth will be via the computer you're programming with.
In other words, you follow exactly the practice adopted by the emonTx: both voltage and current inputs are isolated - in this case by transformers - to at least the system voltage (350 V dc), and there is no path for current to flow when you connect it to a computer to program or read the serial output connection between the rest of the circuit.
Re: DC Sensing project
How's this looking Rob?
I finally got my head round isolation I think. So this is opto-isolated.
I'll check here again in a couple of weeks.
Cheers,
Dan
Re: DC Sensing project
I haven't studied your design in any great detail, but the first comment is you need to take great care when setting the system up and commissioning it, because everything upstream of the opto-isolators is live to 60 V d.c., and that's not to be messed with. (I'm looking at the USB socket here - why is it there? Similarly the ISP1 header.) And remember the capacitors on the antenna need to be rated for at least 60 V.
Is the 60 V to 9 V regulator happy with a 9 V supply on its output, because you'll probably need to do that while testing? If not, put a jumper in to allow you to feed 9 V from a bench PSU.


|
SquareMatrix::Decomposite
|
|
bool SquareMatrix::Decomposite(SquareMatrix<MatrixType>& B, SquareMatrix<MatrixType>& C)
Remarks
Decomposite square matrix into two triangle matrixes. This function is used for matrix inversion and resolution of equation system.


Start
Menu
Home
About
Sample Post
PERFECT-ONE
an epoch-making physical game product
PROMOTIONAL VIDEO
walk into perfect-one's world
BUBBLE COMPANY, September , 2139
ALL YOU NEED TO KNOW
more care，more companionship
BUBBLE COMPANY, September , 2139
A WITNESS'S NARRATIVE
the deepest secret about the perfect-one
BUBBLE COMPANY, September , 2139
DERIVATIVE ART
online art gallery
BUBBLE COMPANY, September , 2139
ABOUT US
bubble company
BUBBLE COMPANY, September , 2139
Older Posts →


Existing multigraphs now only show the PHPFIWA feeds on them, not the timestore ones (not even in the legend).
Similarly, if I'm on the feed page and click to visualise a feed, timestore results in a blank graph, but PHPFIWA works as expected.
Did we break something?
Re: Can't visualise v7 feeds in v8.0.3
On my system, I've got PHPFIWA, PHPFINA, PHPTIMESTORE and MYSQL they all appear to be working fine. Just tried creating a new TIMESTORE feed that also works fine with data displaying in the realtime graph as I post datapoints. Could it be settings file related?
Re: Can't visualise v7 feeds in v8.0.3
I'll take a look. The MYSQL feed I'm using for my daily gas pulses was rendering fine. I wonder if it could be the timestore key or something - but when I refreshed the feed sizes, the timestore feeds were definitely getting bigger.
A puzzler!
[edit: unless the settings.php file has the timestore key knocked out of it but I haven't restarted rfm12piphp recently. That would account for it continuing to log to feed, but be undisplayable?]
Re: Can't visualise v7 feeds in v8.0.3
OK, I have a diagnosis but I'm a little stuck with it.
After I got my dev pi set up last night, I cleaned a lot of dev stuff out of my "live" pi and this included a timestore directory in the homedir (I can see this from history - no idea what was in it).
Surely timestore doesn't run out of one particular user's homedir... right? If so, what was there and how do I reinstate it?
It looks like the timestore feeds haven't updated since I booted that pi last night to pick up some hostname changes. Not a disaster, but a bit disappointing that there's no indication it was merrily logging 7 nodes to nothing (I take this on the chin and will look at how this might be advised on the feed page in some way).
Re: Can't visualise v7 feeds in v8.0.3
Sigh... more trouble in paradise!
I decided to limit the damage I'd create PHPFIWA feeds and worry about transferring the old data later. However, these don't seem to work either - they get created with root/root ownership and rw-r-r permissions only... chmodding them has not resulted in any data suddenly being logged (at the same time, no problem at all with my previous PHPFIWA feeds).
Re: Can't visualise v7 feeds in v8.0.3
Hmm, what's the permissions on the PHPFIWA folder itself? that needs to be set with:
sudo chown -R www-data:root /var/lib/phpfiwa
Re: Can't visualise v7 feeds in v8.0.3
OK, so just to update, the mechanism I have to follow to get PHPFIWA feeds working is:
- create the feed
- chmod the permissions since they are created pretty strict:
-rw-r--r-- 1 root root 40 Mar 27 18:58 87_0.dat
-rw-r--r-- 1 root root 8 Mar 27 18:58 87_1.dat
-rw-r--r-- 1 root root 4 Mar 27 18:58 87_2.dat
-rw-r--r-- 1 www-data www-data 36 Mar 27 18:58 87.meta
-rw-r--r-- 1 root root 4 Mar 27 18:58 88_0.dat
-rw-r--r-- 1 root root 4 Mar 27 18:58 88_1.dat
-rw-r--r-- 1 root root 4 Mar 27 18:58 88_2.dat
-rw-rw-r-- 1 www-data www-data 36 Mar 27 18:58 88.meta
- restart rfm12piphp
Only then do I get recorded data.
Crikey!
Re: Can't visualise v7 feeds in v8.0.3
@Trystan - you mean chown, right? Here's the current permission:
I tried altering the apache user's umask, but that's only helped with the meta files, not the dat ones.
What is it that creates the dat files? Clearly not apache. Is it something that I should be running as a different account, but is actually running as root?
Re: Can't visualise v7 feeds in v8.0.3
just to confirm, chowning the dat files allows them to record (without restarting rfm12piphp... bizarrely)
Re: Can't visualise v7 feeds in v8.0.3
aha! I've missed something here havent I! because Im running my home system through a modification to the raspberrypi_run.php script that then does a http request to the new node interface. Which means that the feeds are being created by the www-data user..
Re: Can't visualise v7 feeds in v8.0.3
One solution would be to switch to Jerome's oem_gateway which does this as standard, the other is probably to get the feed engine to set the file ownership on creation to www-data
Re: Can't visualise v7 feeds in v8.0.3
We could use this just after fopen i guess, http://www.php.net/manual/en/function.chown.php
Re: Can't visualise v7 feeds in v8.0.3
Actually maybe it should work, Im testing it here running not the raspberrypi_run.php script but the input_queue_processor as root and that works ok, the data is being inserted and I can view it, the permissions are:
-rw-r--r-- 1 root root 12 Mar 27 19:18 7_0.dat
-rw-r--r-- 1 root root 8 Mar 27 19:18 7_1.dat
-rw-r--r-- 1 root root 4 Mar 27 19:18 7_2.dat
-rw-r--r-- 1 root root 4 Mar 27 19:18 7_3.dat
-rw-r--r-- 1 www-data www-data 44 Mar 27 19:18 7.meta
Re: Can't visualise v7 feeds in v8.0.3
But then if I then try and add a value via the http interface of course, it fails. So chown is probably needed.
Re: Can't visualise v7 feeds in v8.0.3
I'm chowning them (in PHP) to www-data but that still wasn't sufficient - I had to chmod g+w on the command line before they would update. Which is odd, because it seems to be heading back to where we started...
Re: Can't visualise v7 feeds in v8.0.3
If I add the following lines to PHPFiwa.php at line 74 (inside the create method)
$fh = fopen($this->dir.$meta->id."_0.dat", 'c+');
fclose($fh);
chown($this->dir.$meta->id."_0.dat","www-data");
$fh = fopen($this->dir.$meta->id."_1.dat", 'c+');
fclose($fh);
chown($this->dir.$meta->id."_1.dat","www-data");
$fh = fopen($this->dir.$meta->id."_2.dat", 'c+');
fclose($fh);
chown($this->dir.$meta->id."_2.dat","www-data");
$fh = fopen($this->dir.$meta->id."_3.dat", 'c+');
fclose($fh);
chown($this->dir.$meta->id."_3.dat","www-data");
It then creates the data files with the correct ownership. We could bring the user out as a setting to the settings.php file.
The result of which is:
-rw-r--r-- 1 www-data www-data 4 Mar 27 19:30 8_0.dat
-rw-r--r-- 1 www-data www-data 4 Mar 27 19:30 8_1.dat
-rw-r--r-- 1 www-data www-data 4 Mar 27 19:30 8_2.dat
-rw-r--r-- 1 www-data www-data 4 Mar 27 19:30 8_3.dat
-rw-r--r-- 1 www-data www-data 44 Mar 27 19:30 8.meta
Re: Can't visualise v7 feeds in v8.0.3
[cross post]
OK - that makes sense.
Re: Can't visualise v7 feeds in v8.0.3
Ah I dont even need the chown bit in there as the initial creation is done via the web interface.. :) good thing because im pretty sure chown would create an error on windows
Re: Can't visualise v7 feeds in v8.0.3
I've updated the master branch with the fix for this:
https://github.com/emoncms/emoncms/commit/55d2419b44f0a74459bb4f3dd03632...
Re: Can't visualise v7 feeds in v8.0.3
Phew - thanks. I've pushed 8.0.7 up to the apt repo so people can pick that up (yikes)
I now need a way of reading the values from my original timestore feeds and injecting them into my new PHPFIWA feeds. Do you have anything like that yet, or any pointers if not?
cheers for the quick fix... I should probably not delete things from the homedir again without due caution!


--- layout: post title: Hyves now also OpenId provider date: 2009-04-17 09:09:08.000000000 +02:00 type: post published: true status: publish categories: - Various tags: - openid meta: _edit_last: '2' _jetpack_related_posts_cache: a:0:{} author: login: admin email<EMAIL_ADDRESS>display_name: gerbrand first_name: Gerbrand last_name: van Dieijen ---
OpenID is gaining popularity! Hyves is now also OpenId-provider, as published on the (Dutch) site Webwereld. This means you can use your hyve account to login to any site that provides OpenId. Saves remembering passwords. Unfortunatelly, you can't login to Hyves using another OpenId - Hyves is not a OpenId consumer. If Hyves would be an OpenId consumer you could login using for example your Hotmail account or Gmail account.


Fastest Stack
Individuals will be competing in a timed cup stacking event. All individuals are competing in one bracket. Athletes will be given 144 standard-issues plastic cups of varied colors to use. The top 3 athletes to construct and de-construct the structure using all plastic cups without issue will be awarded medals.


Released September 7, 2010. Compare to: 2.0.3 2.0.0 1.6.0. Additional downloads and latest source code available on GitHub.


Implementing a voice enabled chatbot which converses with a user via their voice in natural language.
The chatbot can be configured through domain-specific.
Connect fast and response to user query as soon as possible.
Find the chat intent before answering the query.
Play vital role in building chat with inactive people and dive them into active customers.
Client can configure the domains and corresponding data to give personalized response to customers.
Clients have chatbot code available so they can tune the code according to requirements.
We will put multiple configurable methods for chatbot to setup service for our clients.
We are a group of oriented and self-driven technologists who is passionate about solving challenging problems. We are trying to put open source solutions for scalable problems in machine learning. This will help our clients and supporters to use the code and our service to use our code which will help them to focus on their core problem.
If we have topics like the weather, location information, inventory information etc the application should be able to converse in that particular topic.
So, mainly the chatbot should formulate appropriate responses to incoming questions and carry on the conversation. Keeping in mind, the conversation would be in natural language and the user is returned sufficient information.
We need PyAudio, a cross-platform audio I/O library. Install other requirements given in below link.
Requirements


A class and an id is used to style an element in html. Both can be defined from html or in css file. In declaring a class, you can choose a name preceded by a full stop ".". ID on the other hand is defined with a name preceded by "#".
Image above on the left is from html file and on the right is from CSS
Given classes and IDs are very similar, you may be wondering which one to use. This depends on the situation.
You should use classes when your style needs to be applied multiple times on the same page. For example, you might have many <h1> elements that need the same style applied.
You should use IDs if only one element on the page should have the style applied, and/or you need a unique identifier for that element. For example, you might assign an ID to a <nav> tag which contains your left menu. The styles for this ID could contain the position, background-color, float properties, size etc. You probably wouldn't want any other element on the page to use this particular style.
Another useful thing about IDs is that you can use the Document Object Model (DOM) to refer to them. This enables you to use JavaScript/DHTML techniques to build a much more interactive web site.
However, there's a school of thought within the developer community that frowns upon ID selectors. In fact, some developers state that you should "never, ever use ID selectors".
This is a decision that you will need to make. It is quite possible (and common) to develop a website without using ID selectors.
Unless IDs are needed for something other than styling (like serving as internal link targets), try to avoid them as well as classes as this is “cognitively easiest” and the least of a maintenance burden. (Don’t confuse structural—which can always happen and against which you cannot really protect yourself—with visual changes.)
Deriving names from functionality (for example nav, warning) is usually the second best option, as this is tied to the structure and helps conceptual understanding and collaboration. It is less of a maintenance problem as the page element in question might not change its meaning, and when it does, it requires more substantial changes.
If you cannot derive a good name from an element’s function, or if you happen to introduce something solely for styling (e.g. for that still popular alternate styling of table rows), use generic, “neutral” names (for example auxcode> or alt, alternative). This is not necessarily ideal for understanding and collaboration but it is less likely to impose maintenance problems.


|
You
Owe Me Nothing In Return
(Alanis Morissette) |
|
I'll
give you countless amounts of outright acceptance if you want it
I will give you encouragement to choose the path that you want if you need it You can speak of anger and doubts your fears and freak outs and I'll hold it You can share your so-called shame filled accounts of times in your life and I won't judge it (and there are no strings attached to it) You owe me nothing for giving the love that I give You owe me nothing for caring the way that I have I give you thanks for receiving it's my privilege And you owe me nothing in return You can ask for space for yourself and only yourself and I'll grant it You can ask for freedom as well or time to travel and you'll have it You can ask to live by yourself or love someone else and I'll support it You can ask for anything you want anything at all and I'll understand it (and there are no strings attached to it) You owe me nothing for giving the love that I give You owe me nothing for caring the way that I have I give you thanks for receiving it's my privilege And you owe me nothing in return I bet you're wondering when the next payback shoe will eventually drop I bet you're wondering when my conditional police will force you to cough up I bet wonder how far you have now danced you way back into debt This is the only kind of love as I understand it that there really is You can express your deepest of truths even if it means I'll lose you and I'll hear it You can fall into the abyss on your way to your bliss I'll empathize with You can say that you have to skip town to chase your passion I'll hear it You can even hit rock bottom have a mid-life crisis and I'll hold it (and there are no strings attached) You owe me nothing for giving the love that I give You owe me nothing for caring the way that I have I give you thanks for receiving it's my privilege And you owe me nothing in return |


Package solver¶
This package contains all the modules required to perform a parallel Monte-Carlo Tree Search with Upper Confidence bounds for Tree on multiple weather scenarios.
master¶
Module implementing a master tree that incorporates the results of a parallel MCTS-UCT search. However this object is not directly used during the search and is created afterwards, once the search in completed.
-
class
master.
MasterTree
(sims, destination, nodes={}, proba=[])¶ Bases:
object
Tree that stores the final result of a MCTS parallel search on multiple scenarios. Is not the direct output of the search but already incorporates some post-processing.
Variables: - nodes (dict) – dictionary containing
master_node.MasterNode
, the keys are their corresponding hash - probability (numpy.array) – array containing the probability of each scenario
- Simulators (list) – List of the :class:`simulatorTLKT.Simulator`objects used during the search
- numScenarios (int) – Number of scenarios
- destination (list) – Destination state [lat, long]
- best_policy (dict) – Dictionary of list of actions. Key of the dictionary is the scenario id. Key -1 is for the average policy. The list is the sequel of action.
- best_global_nodes_policy (dict) – Dictionary of list of
master_node.MasterNode
encountered during the best policy of one scenario. The Key of the dictionary is the scenario id. Key -1 is for the average policy.
-
get_best_child
(node, idscenario=-1, verbose=False)¶ Compares the children of a node based on their rewards and return the best one.
Parameters: - node (MasterNode) – the parent
master_node.MasterNode
- idscenario (int) – id of the considered scenario. If default (-1), the method returns the best child for the global tree
- verbose (bool) – If True, prints the best reward and the best action.
Returns: A tuple: (the best child, the action taken to go from the node to its best child)
- node (MasterNode) – the parent
-
get_best_policy
()¶ Computes the best policy for each scenario and the global best policy. And add it to the object.
-
get_points
(node, points, probability, coordinate=(0, 0), idscenario=-1, objective='depth')¶ Recursive function used in
plot_tree()
andplot_tree_colored()
to compute the coordinates of a node in the plot and other node properties depending on the objective parameterParameters: - node – a
master_node.MasterNode
object - points (list) – the previous list of points
- probability (np.array) – probability of each scenario
- coordinate (tuple) – coordinates of the previous point
- idscenario (int) – id of the corresponding worker tree to be plot. If -1 (default), the global tree is plotted.
- objective (string) – “uct” to compute exploration, explotation and utility. “depth” to compute the depth of each node.
Returns: the expanded list of points, a point being a tuple
- node – a
-
get_utility
(node, idscenario)¶ Computes the utility of an node as the sum of the exploration and exploitation term. It done either for a given scenario or as the weighted mean over all the scenario (global utility) if idscenario = -1
Parameters: - node – The
master_node.MasterNode
whose utility we want to compute - idscenario – scenario’s id
Returns: exploitation term, exploration term
Return type: float, float
- node – The
-
guess_reward
(node, idscenario)¶ Estimates the reward of an unexplored node (for a given scenario) as the lower reward such that its father node would be expanded next.
Parameters: - node – The
master_node.MasterNode
whose reward we want to estimate - idscenario (int) – scenario’s id
Returns: The estimated reward
Return type: float
- node – The
-
classmethod
load_tree
(name)¶ Load a master tree (object) from the data Folder.
Parameters: name – Name of the file.
-
plot_best_policy
(idscenario=-1, number_subplots=1)¶ Plot a representation of a tree and its best policy.
Parameters: - grey (boolean) – if True, each node/branch are plot with a color (grey scale) depending of the depth of the node
- idscenario (int) – id of the corresponding worker tree to be plot. If -1 (default), the global tree is plotted.
Returns: A tuple (fig, ax) of the current plot
-
plot_hist_best_policy
(idscenario=-1, interactive=False)¶ Plot the best policy as in
plot_best_policy()
, with the histogram of the best action at each node (Animation)Parameters: - idscenario (int) – id of the corresponding worker tree to be plot. If -1 (default), the global tree is plotted.
- interactive (bool) – if True the plot is not an animation but can be browsed step by step
Returns: the figure of the current plot
-
plot_tree
(idscenario=-1, number_subplots=1, gray=True)¶ Plot a 2D representation of a tree.
Parameters: - gray (boolean) – if True, each node/branch are plot with a color (grey scale) depending of the depth of the node
- idscenario (int) – id of the corresponding worker tree to be plot. If -1 (default), the global tree is plotted.
Returns: A tuple (fig, ax) of the current plot
-
plot_tree_uct
(idscenario=-1)¶ Plot the tree 3 times: for the first one the colormap represents the sum of exploitation and exploration for each node , the second one represents the exploitation and the third one the exploration.
Parameters: idscenario (int) – id of the corresponding worker tree to be plot. If -1 (default), the global tree is plotted. Returns: A tuple (fig, ax) of the current plot
-
save_tree
(name)¶ Save the master tree (object) in the data Folder.
Parameters: name – Name of the file.
- nodes (dict) – dictionary containing
worker¶
Module implementing a worker in the parallel MCTS-UCT search. It is basically a search on a fixed weather scenario.
Created on Wed May 31 10:06:46 2017
@author: paul
-
class
worker.
Node
(state=None, parent=None, origins=[], children=[], depth=0)¶ Bases:
object
Node of a
worker.Tree
.Variables: - state (tuple) – Only for the root Node: initial state (time, lat, lon), None for other node.
- parent (worker.Node) – Reference to the parent of this node.
- origins (list) – sequel of actions taken from to root node to this node.
- children (list) – Child nodes of this node.
- actions (list) – Remaining actions available (not expanded) from this node in random order.
- Values (numpy.array) – Array of
utils.Hist
to save the rewards. Its size is the number of possible actions. - depth (int) – Depth of the node in the Tree.
-
back_up
(reward)¶ Propagates the reward through the Tree, starting from this
worker.Node
, up to the root.Parameters: reward (float) – The reward corresponding to the expansion of this worker.Node
.
-
get_uct
(num_parent)¶ Computes the uct values of this
worker.Node
(combination of exploration and exploitation)Parameters: num_parent (int) – Number of times the parent of the worker.Node
has been explored.Return float: The uct value.
-
is_fully_expanded
()¶ Returns True if this
worker.Node
is fully expanded (if there is not remaining actions)Return boolean: True if fully expanded, False otherwise.
-
class
worker.
Tree
(workerid, nscenario, probability=[], ite=0, budget=1000, simulator=None, destination=[], TimeMin=0, buffer=[])¶ Bases:
object
A tree which represents a MCTS on one weather scenario.
Variables: - id (int) – Id of the tree, corresponding to the id scenario.
- ite (int) – Current number of iterations done.
- budget (int) – Max. number of iterations
- simulator (Simulator) – The simulator used to do the boat simulations (step, etc.).
- destination (list) – Position [lat, lon] of the wanted destination.
- TimeMax (float) – Time horizon of the search.
- TimeMin (float) – Minimum time to arrive to the destination, computed on several boats which go straight from the initial point to the destination (default policy).
- depth (int) – Maximum depth of the tree.
- Nodes (list) – List of
worker.Node
, representing the tree. - buffer (list) – The buffer is a list of updates to be included in the master Tree. One update is a list : [scenarioId, newNodeHash, parentHash, action, reward].
- numScenarios (int) – Number total of scenarios used during the MCT parallel search.
- probability (numpy.array) – array containing the probability of each scenario. Scenario id as a probability probability[id] to occur.
-
best_child
(node, Master_nodes)¶ Select the best child of a node, by comparing their uct values. The comparison is based on the value of the child in this tree, but also in the master tree, if it exists there.
Parameters: - node (worker.Node) – The parent node.
- Master_nodes (dict) – Manager.dict() (Dictionary of
master_node.MasterNode
) which saves the nodes of every scenario.
Returns: The best child (
worker.Node
) of the parent node given in parameter.
-
default_policy
(node)¶ Policy used to compute the reward of a node. First, the state of the node is estimated with
get_sim_to_estimate_state()
, then the default policy is applied (going straight to the destination).Parameters: node (worker.Node) – The node one wants to evaluate. Return float: The rewards of the node.
-
expand
(node)¶ Creates a new
worker.Node
from a node (its parent). The new node is expanded randomly using an available actions.Parameters: node (worker.Node) – The parent node. Returns: The new worker.Node
.
-
get_master_uct
(node_hash, Master_nodes)¶ Compute the uct value seen by the master tree.
Parameters: - node_hash (int) – the corresponding hash node.
- Master_nodes (dict) –
Manager.dict() (Dictionary of
master_node.MasterNode
objects) which saves the nodes of every scenario.
Return float: The uct value of the node passed in parameter.
-
get_sim_to_estimate_state
(node)¶ Brings the simulator to an estimate state (time, lat, lon) of a node. Since the dynamic is not deterministic, the state is an estimation.
Parameters: node (worker.Node) – The nodes one wants to estimate.
-
integrate_buffer
(Master_nodes)¶ Integrates the buffer of update from this scenario (the buffer is an attribute of the
Tree
) . The buffer is a list of updates coming from the worker. One update is a list : [scenarioId, newNodeHash, parentHash, action, reward]Parameters: Master_nodes (dict) – Manager.dict() (Dictionary of
master_node.MasterNode
objects) which saves the nodes of every scenario.
-
is_node_terminal
(node)¶ Checks if the corresponding time of a node is equal to the time horizon of the simulation.
Parameters: node (worker.Node) – The node that is checked Returns: True if the node is terminal, False otherwise.
-
static
is_state_at_dest
(destination, stateA, stateB)¶ Determines if the boat has gone beyond the destination. In this case, computes how much the boat has overshot.
Parameters: - destination – Destination state (goal).
- stateA – Previous state of the simulator.
- stateB – Current state of the simulator.
Returns: [True, frac] if the boat has reached the destination (frac is the last iteration proportion corresponding to the part stateA–destination). Returns [False, None] otherwise.
-
static
is_state_terminal
(simulator, state)¶ Determines if a state is considered as terminal (time is equal or larger than the time horizon, or if the boat is out of the zone of interest).
Parameters: - simulator (Simulator) – Simulator of the scenario.
- state (list) – State one wants to test [time, lat, lon]
Returns: True if the state is considered as terminal, False otherwise.
-
tree_policy
(node, master_nodes)¶ Method implementing the tree policy phase in the MCTS-UCT search. Starts from the root nodes and iteratively selects the best child of the nodes. A node must be fully expanded before we continue down to its best child.
Parameters: - node – starting node of the tree policy, usually the root node.
- Master_nodes (dict) –
Manager.dict() (Dictionary of
master_node.MasterNode
) which saves the nodes of every scenario.
Returns: the newly expanded node
Return type:
-
uct_search
(rootState, frequency, Master_nodes)¶ Launches the MCTS for the scenario.
Parameters: - rootState (list) – State [t_index, lat, lon] of the root node.
- frequency (int) – Length of the buffer: number of iterations between each buffer integrations.
- Master_nodes (dict) –
Manager.dict() (Dictionary of
master_node.MasterNode
) which saves the nodes of every scenario.
forest¶
Module managing multiple workers to carry out a parallel MCTS-UCT search and incorporating the results into a master.
-
class
forest.
Forest
(listsimulators=[], destination=[], timemin=0, budget=100)¶ Bases:
object
Object coordinating a MasterTree and its WorkerTrees during a parallel MCTS search.
Variables: - listsimulators (list) – a list of
simulatorTLKT.Simulator
objects, each simulator should correspond to a different weather scenario - destination (list(float,float)) – [lat,lon], destination to reach
- timemin (float) – reference time to define the reward model, comes from the
initialize_simulators()
function - budget (int) – number of nodes in each worker at the end of the search
-
launch_search
(root_state, frequency)¶ Launches a parallel MCTS search. It uses multiprocessing class. Each worker is a multiprocessing.Process object. The master is a multiprocessing.Manager hosting a dict() (called Master_nodes) that can be read and written into by each worker.
Parameters: - root_state (list(int,float,float)) – [time index, lat, lon], state of the root node of the sea
- frequency (int) – number of node that are expanded in a worker before this one updates the corresponding nodes in the master.
Returns: dictionnary of
master_node.MasterNode
the keys are the nodes’ hashes. These results must be deep copied withmaster_node.deepcopy_dict()
if you want to do anything with them.Return type: multiprocessing.Manager.dict
- listsimulators (list) – a list of
-
forest.
create_simulators
(weathers, numberofsim, simtimestep=6, stateinit=(0, 47.5, 356.5), ndaysim=8, deltalatlon=0.5)¶ Creates and returns a list of
simulatorTLKT.Simulator
.Parameters: - weathers (list()) – List of
weatherTLKT.Weather
objects, each one is the wind scenario of thesimulatorTLKT.Simulator
object to be created - numberofsim (int) – number of simulator we want to create. Must be lower or equal to len(weathers). The simulators are created by chronologically browsing the weathers list
- simtimestep (float) – time step in hours of the simulator
- stateinit (list(int,float,float)) – [t_index, lat, lon], initial state of the simulators
- ndaysim (int) – time horizon of the search. Must be smaller or equal to the weather object time horizon.
- deltalatlon (float) – latitude and longitude discretization of the simulators. Just for plotting purposes
Returns: List of
simulatorTLKT.Simulator
Return type: list()
- weathers (list()) – List of
-
forest.
download_scenarios
(mydate, latBound=[43, 50], lonBound=[350, 360], website='http://nomads.ncep.noaa.gov:9090/dods/', scenario_ids=range(1, 21))¶ To download the weathers scenarios for a MCTS ** /!: needs to be launched in the terminal**. Scenarios are saved as ‘../data/’ + mydate + ‘_gep_’ + s_id + ‘00z.obj’ where s_id is the scenario id. They are stored as
weatherTLKT.Weather
objects.Parameters: - mydate (string) – ‘yyyymmdd’ date of the day starting the weather forecast in US format
- latBound (list(float,float)) – [latmin, latmax], latitude boundaries of the domain on which the forecast is desired
- lonBound (list(float,float)) – [lonmin, lonmax], longitude boundaries of the domain on which the forecast is desired
- website (string) – url of the server hosting the forecasts
- scenario_ids (range) – range covering the forecasts scenarios we want to download
-
forest.
initialize_simulators
(sims, ntra, stateinit, missionheading, plot=False)¶ Find the destination point and the reference time for a list of simulators. These quantities are mandatory in order to carry out a MCTS parallel search.
Parameters: - sims (list()) – List of
simulatorTLKT.Simulator
- ntra (int) – Number of trajectories used to estimate the initialization
- stateinit (list(int,float,float)) – t_index, lat, lon], starting point of the MCTS search
- missionheading (float) – angle in deg wrt true North of the desired destination from stateinit
- plot (bool) – if True displays the initialization trajectories
Returns: [destination, timemin], destination are the coordinates of the destination point and timemin is in days
Return type: list(list(float,float), float)
- sims (list()) – List of
-
forest.
load_scenarios
(mydate, scenario_ids=range(1, 21), latBound=[-90, 90], lonBound=[0, 360], timeSteps=[0, 64])¶ Loads previously downloaded scenarios and returns the corresponding list of
weatherTLKT.Weather
objects.Parameters: - mydate (string) – ‘yyyymmdd’ date of the day starting the weather forecast in US format
- scenario_ids – range covering the forecasts scenarios we want to download
- latBound (list(float,float)) – [latmin, latmax], latitude boundaries of the domain on which the forecast is desired. If smaller than domain of stored object, returns a cropped object. Returns stored object otherwise
- lonBound (list(float,float)) – [lonmin, lonmax], longitude boundaries of the domain on which the forecast is desired. If smaller than domain of stored object, returns a cropped object. Returns stored object otherwise
- timeSteps (list(int,int)) – [min_t_index, max_t_index], time span of the desired forecast. If smaller than domain of stored object, returns a cropped object. Returns stored object otherwise
Returns: List of of
weatherTLKT.Weather
Return type: list()
-
forest.
play_multiple_scenarios
(sims)¶ Display an interactive representation of the wind conditions of a list of
simulatorTLKT.Simulator
objects.Parameters: sims (list()) – List of the simulatorTLKT.Simulator
objects
Basic use example of the forest class:
import forest as ft
from master_node import deepcopy_dict
from master import MasterTree
# Scenario parameters
date = '20180223' # January 30, 2018
latBounds = [40, 50]
lonBounds = [360 - 15, 360]
## Download and saves the 5 scenarios
## run this in a terminal if you actually want to download anything
# ft.download_scenarios(date, latBound=latBounds, lonBound=lonBounds, scenario_ids=range(1, 5))
# Load the weathers scnearios
Weathers = ft.load_scenarios(date, latBound=latBounds, lonBound=lonBounds, scenario_ids=range(1, 5))
# Simulators parameters
NUMBER_OF_SIM = 4 # <=20
SIM_TIME_STEP = 6 # in hours
STATE_INIT = [0, 42.5, 360 - 11.5] # first state
N_DAYS_SIM = 4 # time horizon in days
missionheading = 0
n_trajectories = 50
# Create the simulators
sims = ft.create_simulators(Weathers, numberofsim=NUMBER_OF_SIM, simtimestep=SIM_TIME_STEP,
stateinit=STATE_INIT, ndaysim=N_DAYS_SIM)
# Initialize the simulators to get common destination and individual time min
destination, timemin = ft.initialize_simulators(sims, n_trajectories, STATE_INIT, missionheading, plot=True)
print("destination : " + str(destination) + " & timemin : " + str(timemin) + "\n")
# Search parameters
name = "tree_exemple"
frequency = 10
budget = 100
# Initialize the forest
forest = ft.Forest(listsimulators=sims, destination=destination, timemin=timemin, budget=budget)
# Launch the search
master_nodes = forest.launch_search(STATE_INIT, frequency)
# Save the result as a tree
new_dict = deepcopy_dict(master_nodes)
forest.master = MasterTree(sims, destination, nodes=new_dict)
forest.master.save_tree(name)
# Displays some juicy results
forest.master.plot_tree_uct()
forest.master.get_best_policy()
forest.master.plot_best_policy()
forest.master.plot_hist_best_policy(interactive=True)
master_node¶
Module implementing the node class as it is represented in a master tree, a master node stores rewards from multiple scenarios. It is separate from the master module as this class is used in both the master one (the nodes in the final master tree are master node) and in the forest module. In the forest module the Manager.dict used to multiprocess is a dictionary of master modes. However as this Manager.dict represents the master tree being built it is not a MasterTree object from the master module.
-
class
master_node.
MasterNode
(numscenarios, nodehash=None, parentNode=None, action=None, rewards=[])¶ Bases:
object
Node of a MasterTree.
Variables: - hash (int) – hash of the node (key of the dictionary
master.MasterTree.nodes
) - arm (int) – Action taken to get to this node from its parent.
- parentNode (MasterNode) – parent of this node
- rewards (numpy.array) – Array of Hist. Its shape is (#scenario, #possible actions).
- children (list) – List of children (
MasterNode
) - depth (int) – Depth of the node.
-
add_reward
(idscenario, reward)¶ Includes a reward into the histogram for a random action of one scenario.
Parameters: - idscenario (int) – id of the scenario/workertree from which the update is coming.
- reward (float) – reward of the update.
-
add_reward_action
(idscenario, action, reward)¶ Includes a reward into the histogram for one action of one scenario.
Parameters: - idscenario (int) – id of the scenario/workertree from which the update is coming.
- action (int) – Action (in degree) of the update
- reward (float) – reward of the update
-
is_expanded
(idscenario)¶ Check if this node has been expanded by a scenario.
Parameters: idscenario – id of the scenario Return boolean: True if the scenario has expanded this node.
- hash (int) – hash of the node (key of the dictionary
-
master_node.
deepcopy_dict
(nodes)¶ Return a deep copy of a the master Manager.dict object. Add also the children, the parentNode and the depth of each node. This method is called after the search before saving the result.
Parameters: nodes (dict) – a dictionary with master_node.MasterNode
objectsReturns: the deep copy of the input dictionary
utils¶
Module implementing two useful classes : the histogram that is used in each node to stored the obtained rewards. And an Player class that implements interactive plots to help with result visualisation.
-
class
utils.
Hist
(init=[])¶ Bases:
object
Definition of the histogram class.
-
MAX_REWARD
= 1.5¶ Upper bound of histogram
-
MEANS
= array([ 0.0625, 0.1875, 0.3125, 0.4375, 0.5625, 0.6875, 0.8125, 0.9375, 1.0625, 1.1875, 1.3125, 1.4375])¶ mean value of each bin (mean between upper and lower threshold of each bin)
-
MIN_REWARD
= 0¶ Lower bound of histogram
-
N_BINS
= 12¶ Number of bins in histogram
-
THRESH
= array([ 0. , 0.125, 0.25 , 0.375, 0.5 , 0.625, 0.75 , 0.875, 1. , 1.125, 1.25 , 1.375, 1.5 ])¶ Values of the thresholds between bins (lower and upper included)
-
add
(value)¶ Adds the value to the corresponding bin. If value is lower than lowest (resp. highest) threshold then the value is added to the first (resp. last) bin. :param int value: value to be added to the histogram
-
get_mean
()¶ Computes the mean value of the histogram
Return float: mean value
-
-
class
utils.
Player
(fig, func, frames=None, init_func=None, fargs=None, save_count=None, mini=0, maxi=100, pos=(0.125, 0.92), **kwargs)¶ Bases:
matplotlib.animation.FuncAnimation
Class implementing interactive plot, inherits from FuncAnimation and must be used accordingly.


| Package | Description |
|---|---|
| org.apache.commons.configuration |
The Configuration main package.
|
| Modifier and Type | Method and Description |
|---|---|
ConfigurationKey |
ConfigurationKey.append(String property)
Deprecated.
Appends the name of a property to this key.
|
ConfigurationKey |
ConfigurationKey.appendAttribute(String attr)
Deprecated.
Appends an attribute to this configuration key.
|
ConfigurationKey |
ConfigurationKey.appendIndex(int index)
Deprecated.
Appends an index to this configuration key.
|
ConfigurationKey |
ConfigurationKey.commonKey(ConfigurationKey other)
Deprecated.
Returns a configuration key object that is initialized with the part
of the key that is common to this key and the passed in key.
|
ConfigurationKey |
ConfigurationKey.differenceKey(ConfigurationKey other)
Deprecated.
Returns the "difference key" to a given key.
|
| Modifier and Type | Method and Description |
|---|---|
ConfigurationKey |
ConfigurationKey.commonKey(ConfigurationKey other)
Deprecated.
Returns a configuration key object that is initialized with the part
of the key that is common to this key and the passed in key.
|
ConfigurationKey |
ConfigurationKey.differenceKey(ConfigurationKey other)
Deprecated.
Returns the "difference key" to a given key.
|
void |
HierarchicalConfiguration.Node.visit(HierarchicalConfiguration.NodeVisitor visitor,
ConfigurationKey key)
A generic method for traversing this node and all of its children.
|
void |
HierarchicalConfiguration.NodeVisitor.visitAfterChildren(HierarchicalConfiguration.Node node,
ConfigurationKey key)
Visits the specified node after its children have been processed.
|
void |
HierarchicalConfiguration.NodeVisitor.visitBeforeChildren(HierarchicalConfiguration.Node node,
ConfigurationKey key)
Visits the specified node.
|
void |
HierarchicalConfiguration.BuilderVisitor.visitBeforeChildren(HierarchicalConfiguration.Node node,
ConfigurationKey key)
Visits the specified node before its children have been traversed.
|
Copyright © 2001–2013 The Apache Software Foundation. All rights reserved.


The RPA Workforce Access map measures the accessible workforce from a given origin by walking, biking, public transit or car. Travel times approximate a typical morning commute.
The tool allows the user to define the place of origin, mode and maximum travel time. Workforce with in the travel-shed are tabulated and mapped. The map representation shows a single point for each worker. Workforce color coded by either industry classification or educational attainment.
Data Sources
The tool utilizes the US Census’ LEHD Origin-Destination Employment Statistics data set for 2011 to measure jobs. The data set categorizes workplace and workforce characteristics at a block-level.
Public transit travel times are calculated using publicly-available data sets in the GTFS format. These data sets contain schedules and timetables for most public transport service within the New York metro region.
Driving, walking and and biking is calculated using the OpenStreetMap data set, a global, seamless map of roadway and pedestrian infrastructure.
OpenTripPlanner, an open source software package, is used to calculate travel times across all modes. Public transit times are based on GTFS-derived timetables. Driving times are estimated based on average roadway speeds for a given roadway classification, and are adjusted using publically available roadway speed data from NYMTC and the NJTPA Regional Transportation Model.
Limitations
Travel times are estimates using best-available information, and should not be used for travel planning purposes.
Public transit trips are calculated by finding fastest travel times via any combination of walking and public transit based travel. In areas where walking is faster/more accessible than public transit, the travel-shed will reflect primarily walk-based journeys.
Morning rush travel speeds are estimates based on a comparison of different data sets. For traffic data within New York State historical averages from 2011 NYMTC data is used to calculate percent-change in travel speeds between 7-9am when compared against daily maximums. For New Jersey morning congestion speed data from the NJTPA Regional Transportation Model was used. Appropriate morning rush data was not available for Connecticut; results there reflect daily average travel times.


Please note that all sequences are currently treated as linear. Support for plasmid digestion will be added later.
Sequence Submitted:


Israeli airstrike kills Islamic Jihad commander in Gaza
by Anadolu AgencyJERUSALEM: The Israeli army carried out an airstrike early Tuesday, killing a commander in the Al-Quds Brigades, the armed wing of Gaza-based resistance faction Islamic Jihad.
The military said it struck a house in Gaza City to target Bahaa Abu Al-Atta, in a resumption of a targeted killing.
The army said the attack “was approved by the Prime Minister and Defense Minister Benjamin Netanyahu.”
“Abu Al-Atta practically carried out most of the (Islamic Jihad) movement’s activities in the Gaza Strip…, and he was directly involved in the operations and attempts to target the citizens of Israel and IDF (army) soldiers in various ways,” a military statement said.
The Palestinian resistance group confirmed that Al-Atta, its north Gaza Strip commander, was killed and vowed to avenge his death.
“We mourn Commander Abu Al-Atta and his wife who were martyred in this crime, and we announce the state of alert among our fighters,” it said in a statement.
A father of five, Abu Al-Atta was born in Shejaiya neighbourhood in the eastern Gaza Strip in 1977.
In 1990, he joined the Islamic Jihad and moved up until he became its commander in the northern Gaza Strip.
Abu Al-Atta had previously survived three Israeli assassination attempts, the last of which was in 2014.
In another statement, Islamic Jihad’s military wing Al-Quds Brigades said it fired rockets into southern Israel in response to the assassination.
Red alert sirens were activated in southern Israel following the airstrike, the Israeli army said.
A state of emergency was declared in the Gaza Strip and schools were suspended until further notice.
The official Israeli Broadcasting Corporation said the army had reinforced its forces around the Gaza Strip and was preparing for several “offensive and defensive scenarios.”
Condemnations
Meanwhile, a Palestinian government spokesperson said President Mahmoud Abbas was holding contacts to halt the Israeli military escalation in the Gaza Strip.
“We call for urgent international intervention to stop the Israeli crimes and escalation that could lead to a new war that kills our people in Gaza,” Ibrahim Melhem told Anadolu Agency.
Palestinian group Hamas, which rules the Gaza Strip, described the Israeli attack that killed the Islamic Jihad commander as a “serious escalation”.
“The Israeli occupation bears the responsibility for this crime and its repercussions,” Hamas spokesperson Sami Abu Zuhri said on Twitter.
Saeb Erekat, Secretary General of the Palestine Liberation Organization (PLO)’s Executive Committee, also condemned the Israeli airstrike.
“We condemn in strongest possible terms the cowardly assassination of the Islamic Jihad commander and his wife,” Erekat said in a statement.


- Merry Christmas
- Soulwax
- The Grapevine Game
- Tick Talk
- First
- Second
- This is the Third
- Fourth
- This is a really long sentence that will result in a tiny font size. This is a really long sentence that will result in a tiny font size.
- This is a shorter line.
- This is
- a longer second line
- An even longer third line.


Welcome to Swimat!
You're almost there! There's just a couple of things you'll need to do before you can start using Swimat:
- Open System Settings.
- Open the Extensions Pane.
- Select "Xcode Source Editor" from the pane on the right.
- Ensure that the checkbox next to Swimat is checked.
- Restart Xcode and enjoy! You can find Swimat in the Editor menu.
Swimat also comes with a handy command line tool:


new EventBus(name)
The event bus constructor
Parameters:
| Name | Type | Description |
|---|---|---|
name |
string | [description] |
- Source:
Members
(static) BusEvent
Return the BusEvent class
- Source:
(static) Errors
Return all the errors type
- Source:
name
- Source:
Methods
(static) deregister()
Deregister a function from the event bus
- Source:
- See:
(static) emit()
Emit an event to a channel
- Source:
- See:
(static) register()
Method used to register a callback function on a specific channel
- Source:
- See:
deregister(channel, listener)
Deregister a function from the event bus
Parameters:
| Name | Type | Description |
|---|---|---|
channel |
string | The listening channel |
listener |
function | The listener function |
- Source:
destroy()
Destroy the event bus
- Source:
emit(channel, data) → {EventBus}
Emit an event to a channel
Parameters:
| Name | Type | Description |
|---|---|---|
channel |
string | The event channel |
data |
* | The event data |
- Source:
Returns:
Returns the current instance of the EventBus
- Type
- EventBus
emitAsync(channel, data, delay=opt) → {EventBus}
Method to emit an event async
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
channel |
string | The event channel | |
data |
* | The event data | |
delay= |
number |
<optional> |
The delay until the event will be send |
- Source:
Returns:
Returns the current instance of the EventBus
- Type
- EventBus
emitEvent(event)
Emit a bus event
Parameters:
| Name | Type | Description |
|---|---|---|
event |
BusEvent | [description] |
- Source:
register(channel, listener, scope=opt, onceopt) → {function}
Method used to register a callback function on a specific channel
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
channel |
string | The given channel | ||
listener |
function | The callback function | ||
scope= |
function |
<optional> |
The callback function scope | |
once |
boolean |
<optional> |
false | If it should deregister after first event |
- Source:
Throws:
-
If [this condition is met]
Returns:
Returns a deregister function
- Type
- function
registerOnce(channel, listener, scope=opt) → {function}
Method used to register a callback function on a specific channel
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
channel |
string | The given channel | |
listener |
function | The callback function | |
scope= |
function |
<optional> |
The callback function scope |
- Source:
Throws:
-
If [this condition is met]
Returns:
Returns a deregister function
- Type
- function
resendDeadEvents()
Start resending 'dead' events
- Source: