Intro
Have you ever created Android library? You know, when you are working on specific functionality in some project and get enlightenment “hey, I could use this in some other project!”. No? Well… you should - at least sometimes :) I don’t mean creating new ultimate architecture framework every week (we are not JavaScript developers after all), but writing simple tools that you know how to use and that will make your work easer on future projects. I recommend trying this, getting stars on GitHub and showing friends your library at AndroidArsenal is cool.
Here is some random tutorial on how to put your lib on JitPack: How to JitPack your lib. When it’s there, you can use it like every other dependency in project.
Why even
Anyway, this text is not about just creating libraries and putting them online. You may not want to make your libs opensource or store them externally, but still benefit from having great tools you’ve made. Solution is local Maven
repository. It also gives you a very easy way to work on your library and test it immediately on project you need this library for. Without this, every time you want to fix or add something to your lib, you need to update it’s version, make release on Github, send it to JitPack, wait until it builds, hope it won’t fail, update version of lib in your project, and then if everything goes well check if it does it’s work. Of course your lib should contain sample application that shows usage of all library features, so you can test if it’s working without this whole release process, but sometimes it’s not enough and you need to test on real project.
Entry info
- you dont need to install anything in your system, it’s all in
Gradle
plugin - no need to use command line
- no need to modify your project, just
build.gradle
file - you don’t have to know where are your local libs stored, but its good to know:
- Unix/Mac OS X – ~/.m2
- Windows – C:\Users{username}.m2
- each local release overrides previous one with same version number, so there is no need to update version each time (like for JitPack or other remote
Maven
repository) - you may have many local versions of your library, versioning works in the same way. You can even develop separate versions of your lib that are used in different projects, because of different
minSdkVersion
etc.
Sample code in Kotlin
is available on GitHub. There are 2 projects in repo: app
that contains application using locally published libraries from project library
. Library project has sample application and 2 library modules: firstlib
and secondlib
. They are dead simple and contain just custom button class that overrides initial background color.
How to
Sounds too good to be true? Don’t worry, there is no catch.
Library
In your library module build.gradle
you have to add (usually on top of file):
apply plugin: 'maven-publish'
If you publishing your lib to JitPack, there is a chance you have below variables set. If not, just add below lines before android
block.
def artifactId = 'your-library-name}'
def groupId = 'com.your.package.name'
Now is the only tricky part. Following code should be added at the bottom of lib module build.gradle
, after any blocks you already have there.
Typical case
If your lib is single module, or you have many library modules in single project but without mutual dependencies:
project.afterEvaluate {
publishing {
publications {
library(MavenPublication) {
setGroupId groupId
setArtifactId artifactId
version android.defaultConfig.versionName
artifact bundleReleaseAar
}
}
}
}
Not-so-typical case
If your library project contains many modules that are independent libs and one that is collection of them - it might sound stupid but sometimes it’s useful. You can use it also for single module, but it’s just an overkill. :
project.afterEvaluate {
publishing {
publications {
library(MavenPublication) {
setGroupId groupId
setArtifactId artifactId
version android.defaultConfig.versionName
artifact bundleReleaseAar
pom.withXml {
def dependenciesNode = asNode().appendNode('dependencies')
configurations.compile.allDependencies.each {
if (it.group != null && (it.name != null || "unspecified".equals(it.name)) && it.version != null) {
def dependencyNode = dependenciesNode.appendNode('dependency')
dependencyNode.appendNode('groupId', it.group)
dependencyNode.appendNode('artifactId', it.name)
dependencyNode.appendNode('version', it.version)
}
}
}
}
}
}
}
Protip
You can create file with publishing code and apply it in each module instead of copy-paste whole thing. You can see it used in Github project in module secondLib
of library project. There is a file publish_local.gradle
in library project root folder that contains publishing code. In library module you can now just add
apply from: '../publish_local.gradle'
Just remember to set variables artifactId
and groupId
, they are individual for each module.
Publish your lib
All you need to do now is run task: publishToMavenLocal
.
So what is it for actually? You are telling maven-publish
to release your library module to local Maven
repository with name you’ve set in artifactId
and package set in groupId
. For multi-module project, it just iterates over modules and if they have publishing
code they are also published to local repository.
Project
All you have to do in project you want to use locally published library, is add in project root build.gradle
file mavenLocal()
in repository list, so it looks like that:
allprojects {
repositories {
mavenLocal()
jcenter()
...
How it works: Gradle
while building your project will look for dependencies first in local Maven
repository, then if it won’t find requested dependency it will try JCenter
etc. So if you are using CI, your library should be released on source that CI have access to, like remote repository (private Nexus server, JitPack).
I highly recommend using local repository only for development and testing your lib, and then publishing it somewhere when you are sure your work is done.
Outro
This approach to library development saved me tons of useless work and waiting for publishing on remote repository. I hope with this tutorial I can save some of your time. Or maybe you’ve figure it out in better way? :)
- Maven (1) ,
- Gradle (4) ,
- Android (9) ,
- Kotlin (11) ,
- library (2) ,
- modularization (2) ,
- build config (4)


--- Day 8: Memory Maneuver ---
The sleigh is much easier to pull than you'd expect for something its weight. Unfortunately, neither you nor the Elves know which way the North Pole is from here.
You check your wrist device for anything that might help. It seems to have some kind of navigation system! Activating the navigation system produces more bad news: "Failed to start navigation system. Could not read software license file."
The navigation system's license file consists of a list of numbers (your puzzle input). The numbers define a data structure which, when processed, produces some kind of tree that can be used to calculate the license number.
The tree is made up of nodes; a single, outermost node forms the tree's root, and it contains all other nodes in the tree (or contains nodes that contain nodes, and so on).
Specifically, a node consists of:
- A header, which is always exactly two numbers:
- The quantity of child nodes.
- The quantity of metadata entries.
- Zero or more child nodes (as specified in the header).
- One or more metadata entries (as specified in the header).
Each child node is itself a node that has its own header, child nodes, and metadata. For example:
2 3 0 3 10 11 12 1 1 0 1 99 2 1 1 2
A----------------------------------
B----------- C-----------
D-----
In this example, each node of the tree is also marked with an underline starting with a letter for easier identification. In it, there are four nodes:
A
, which has2
child nodes (B
,C
) and3
metadata entries (1
,1
,2
).B
, which has0
child nodes and3
metadata entries (10
,11
,12
).C
, which has1
child node (D
) and1
metadata entry (2
).D
, which has0
child nodes and1
metadata entry (99
).
The first check done on the license file is to simply add up all of the metadata entries. In this example, that sum is
1+1+2+10+11+12+2+99=138
.
What is the sum of all metadata entries?


The Translation Project
The story "Some Ponds, A Hotel, The Hollyhocks" has been translated from English into Serbo-Croat. This is the first step of the project. The next stage is for the Serbo-Croat text to be translated into, say, French, the French into Urdu, the Urdu into Finnish, the Finnish into Chinese ... and so on, until, dozens (or hundreds) of languages later, the text is translated back into English. If you are able to translate from Serbo-Croat into a language other than English, please leave a message with your old friend the Duty Git.
The Ice Project
Plans are afoot for the Hooting Yard Ice Archive. The idea is to compile a ludicrously exhaustive library of information about ice. From the ice cubes in a freezer to the wind-blasted wastes of Antarctica - if you have any information about ice, or know of any existing ice archives which can be subsumed into the Hooting Yard archive, let the Ice Archivist know.
The Homunculus Project
This project is code-named Homunculus for reasons so abstruse that not even people skilled in deciphering immensely abstruse things can work it out. The project is meant to work as follows:
- You have visited Hooting Yard and have got this far.
- You are sufficiently interested to want to contribute to the Homunculus Project.
- You are willing to help define what the Homunculus Project should include, and what it should exclude.
- You are prepared, if necessary, to devote the rest of your life to the Homunculus Project.
- You understand that the Homunculus Project is self-generating, and no one is in charge.
Send your ideas to The Homunculus Project.
Some possible starting points: Tristram Shandy, the history of lighthouses, Oulipo, obscure farm implements, things that vanish, Muggletonians .... As the project develops, progress updates will appear on the Hooting Yard Site and/or be posted to contributors.
The CCC Project
"CCC" stands for "Cryptic Crossword Clue". You are invited to send in either:
- Texts composed entirely from (genuine) cryptic crossword clues, or
- Single clues which can be used by others to compose texts.
If possible, please give the source: publication, date, setter (if known), etc.
Send your clues to the Tetchy Cruciverbist
Here are some highlights from the responses to the various projects. Let me rewrite that. Here are all of the responses to the various projects:
Cam Baddeley writes:
I firmly believe that the Homunculus Project should exclude any reference to gases. Liquids, yes. Gases, no. I am keenly interested in things which, when left alone for long periods, may or may not turn into something else, eg my grandfather's tools, which have been in a large chest in my father's garage for twenty years, or the correspondence Edward Gorey admits to having left unopened for thirty-five years. I am unconvinced that the contents of either of these are the same contents that were originally lodged, and defy anyone to conclusively prove otherwise. I can see the Melbourne docks, the country rail yards and several fairly substantial chimneys from my office window. If I could see a gasometer I would be the happiest man on earth.
C.J. Baddeley<EMAIL_ADDRESS>I think Cam has hit the nail on the head there. But which nail? And whose head? Meanwhile, Tempel Ov Spoon has (have?) been very forthcoming on ice topics. First, on pykrete:
from "Pyke - The Unknown Genius" - by David Lampe "Pyke had conceived of the Plough project to solve a few specific problems of the war, but his Habbakuk idea, he felt, would do much more. It would solve all the war's problems - as well as those problems of the peace which would follow. The three elements of the scheme were to be ice, sawdust and very cold water. Pure ice, Pyke had learned, is molecularly very similarly to pure concrete, although it has an even lower temsile strength. If however, small particles of some other substance are suspended in water, and if that water is frozen, the reinforced ice has remarkable qualities. The reinforcement boosts the ice's tensile strenghth tremendously. Pyke had learned that particles of wood - such as the chips used in paper manufacture - can micro-reinforce ice very much.
"The memo then pointed to a certain little-known characteristic of super-cooled water - water chilled below freezing-point but not allowed to congeal. In a pre-war study made by the United States Bureau of Standards, research indicated that, contrary to popular teaching, such water need not be kept static.
"In the Brooklyn Polytechnic's Cold Research Laboratories scientists working for Pyke had added between four and fourteen per cent of wood pulp to water. The slush thus produced was frozen into a material at first named piccolite and later called pykrete. Initial tests of the material gave fantastic results.
"The crush resistance of clear ice is between 250 and 1,300 pounds per square inch, but pykrete's crush resistance proved to be more than 3,000 pounds per square inch. A one inch column of pykrete was found to be strong enough to support the weight of a medium-sized motorcar quite easily. The wood pulp insulated pykerete quite remarkably after the material's outer surface thawed, making it considerably more stable at high temperatures than ordinary ice. A relatively small expenditure of energy would keep it frozen.
"Pyke's Habbakuk memorandum went on to make some very incredible suggestions. Why not build giant aircraft carriers entirely of pykerete - ships two thousand feet long with thirty-foot-thick hulls? Since pykeretes specific gravity is lower than that of ice, the ships would be unsinkable. The maximum speed need only be seven knots, he estimated, but because of pykerete's invulnerability this would not matter. Initial scientific calculation suggested that if hit broadside by a torpedo, the carrier hulls would suffer a crater only three feet deep and about twenty feet in diameter. Such hulls could resist waves a hundred feet high, and incendiary attack woulkd hardly damage them.
"Pykrete carriers' hollowed hulls would contain freezing plants, workshops, airplane hangars and living quarters - all as snugly warm as igloos. Their runways would launch any military aircraft then in use. Each iceberg aircraft carrier would contain sufficient deisel fuel in its tanks for seven-thousand-mile non-stop cruises. Freezing units would circulate cold air throughout cardboard tubes, frozen vein-like into the pykrete kulls, to allow ships to withstand the most torrid weather, and cork sheathing would preserve the hulls' exterior contours against the effects of possible evaporation.
"Pyke's memo then suggested pykrete freighters, each so large that it would carry as much cargo as eighty Liberty ships! Rather than be unloaded with cranes (obviously inefficient, Pyke remarked), holes would be carved in the sides of the ice freighters and cargo would then be slid off onto ice barges (these to be built for only $200 apiece, according to Pyke's calculations). The freighter's sides could then be frozen shut again quite easily. Their usefulness outlived, the iceberg freighters would be taken to open water and allowed to melt. The memo also suggested a large pykrete carrier, four thousand feet long, as well as smaller berg ships."
As if that weren't enough, Tempel added the following:
Pyke managed to stretch the boundaries of eccentricity and would brief members of the War Cabinet from his bed whilst surrounded by beer bottles full of piss, because going to the lavatory would waste time that he could otherwise use by working on his inventions.
Another ice story you might like to pick up on is that one of the ice mummies of the Incas, Sarita, has just been discovered in the Andes. For more details go to: http://www.pbs.org/wgbh/pages/nova/peru/
<EMAIL_ADDRESS>(TempelOvSpoon)
Marvellous stuff. This is precisely the sort of thing to keep shovelling in to the Ice Archive until all known hard disk space in the world is frozen solid with it. More ice from Jonathan Edmondston:
Interesting facts about Ice:
1. It only exists at negative temperatures, unless you are using the Fahrenheit or Reameur(?) scales, or you are in another dimension
2. Most of the planet Pluto is ice
3. If all the ice on earth melted at once, the planet would be flooded, and you wouldn't be able to have scotch on the rocks
4. Penguins walk on ice, but Mars bars slide
5. Rod, Jane and Freddy (of Rainbow fame) once sang a song about 'Coconut ice tasting very nice'
6. The Ice Warriors on Doctor Who were the only alien race who actually looked different to each other, unlike the daleks, cybermen, etc.
7. In the anti-matter universe, ice would solidify into water, and water-bergs would float on the ice seas, causing a danger to shipping everywhere (especially Portsmouth harbour)
<EMAIL_ADDRESS>Thank you for that, Jonathan - especially number 6, which could lead to a project of its own if anyone has further thoughts on such things. Finally, a rather ambitious scheme for the Homunculus Project from Tim Drage:
Idea: Locate the plant/insect which most resembles a human being, and selectively breed it until undistinguisiable from the real thing.
<EMAIL_ADDRESS>Well, yes, Tim, but when are we going to find the time? You can visit Tim at http://www.yi.com/home/DrageTim/ (unless he's too busy carrying out demented experiments in his lab, as his cackling factotum Mungo drags in another sack of insects....)
You'd better go back to the Home Page, unless you want to look at Planet of the Severe Haircuts


This example calls J to read the chinook database included with the data/sqlite addon.
First ensure that the data/sqlite addon is installed and tested. Run jconsole and start the server:
load 'net/websocket/demo2/run'
Then connect and try the examples. The showtables button shows the first 5 records of each table. The example buttons show typical select queries. You can edit the text box to try other select queries.


Try it out
Getting started
Include camera.js and camera.css in your html.
<link rel="stylesheet" href="css/camera.css">
<script src="js/camera.js"></script>
Now start the camera.
var camera = new Camera();
camera.start();
That will show a preview on the top left of the screen. Click on the button below or press spacebar to snap a photo.
You can also snap a photo manually by calling the snap() function.
camera.snap();
And stop it by calling the stop() function.
camera.stop();
This will remove all the elements and event listeners. It is recommend you do this when you don't the camera instance anymore.
Options
You can also pass an object containing options in the camera instance.
// All values listed below are the defaults
var opts = {
fps : 33 // Controls how the fast is the preview
mirror : true // Renders preview as flipped, just as how anything looks in a mirror.
onSnap : null // Accepts a function. The first parameter of the callback function contains the base64 encode of the image
onSuccess : null // Accepts a function. Useful if you want to manually access the video stream
onError : null // Accepts a function. If you want a flash fallback, add it here
};
var camera = new Camera(opts);
Issues
You need to run the code from a web server. This is because chrome won't allow webcam access from the file system.
camera.js will work on Chrome, Firefox and Opera. IE support is still lacking.
License
camera.js is made by shash7 and is distributed under the MIT license.
If you have any bugs or inconsistencies to report, please made a new issue on the github repo.


Joshua Shin is an educator and illustrator. Joshua is currently working as an ESL teacher. He has an academic background in continental philosophy (phenomenology is his jam), is kind of obsessed with serialized fiction, wishes he was in vaudeville, and his favorite ninja turtle was Donatello... so really, his learning programming makes all the more sense in hindsight.
(He also has a predilection for speaking parenthetically.)


HTML Renderer supports
img
tag as well as CSSbackground-image
property.
Image data can be provided by URI, file path, base64 encoded and code interception.Loading image
URI
File path
Base64 encoded
Intercept
img tag
You can use Images anyway you like, apply borders margin and padding as for any other box.
Limitation
Imagealign
attribute and CSSfloat
property are not yet supported.
Just an image: Loaded from web: Image with border and background: Stretched Image: Huge padding and border: Image in line with the text Background images


Company profile - Canadian Company Capabilities
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
Sinclair Technologies a Division of Norsat International Inc
Legal/Operating Name:
Sinclair Technologies a Division of Norsat International Inc
Mailing Address:
85 Mary StAurora, Ontario
L4G 6X5
Location Address:
85 Mary StAurora, Ontario
L4G 6X5
Tel.:<PHONE_NUMBER>
Tel.:<PHONE_NUMBER>
Fax:<PHONE_NUMBER>
Logo
Company Profile
Sinclair Technologies is a leader in its field recognized
globally as a manufacturer and distributor of high-quality fixed
and mobile antennas, filters, receiver multicouplers,
transmitter combiners and related components, and complete
antenna systems constructed from these elements. The Companys
products are used extensively in the SMR, public safety,
cellular, transportation and military sectors and operate in the
30 MHz to 2.5 GHz frequency ranges. In addition to a
comprehensive product portfolio, Sinclairs engineers can design
customized products and systems to meet the unique needs of our
customers, and can provide on-site evaluations, special testing
and in-service support.
A History of Excellence:
The Company was founded in 1951 by Dr. George Sinclair, a
pioneer in the development of antennas and filters for military
applications. Early innovations included sophisticated
multicouplers designed to meet rigorous specifications
established by the U.S., Canadian and British Navies for
improved shipboard communications, and a series of antennas
designed for the U.S. and Canadian Air Forces. The Company has a
history of designing and building products capable of operating
in extreme conditions. Today, Sinclair is a major supplier of
antennas and filter systems for harsh environments.
Industry Leadership:
At Sinclair we believe that exceeding our customers
expectations requires that we play a leadership role in our
industry. To that end, Sinclair is committed to a strong R&D
Program, development of Industry Standards, and Quality
Management. Sinclair operates an R&D facility where highly-
trained engineers, equipped with sophisticated design tools,
develop innovative and superior products for our customers.
Advanced test facilities support the performance verification
and accelerated life testing that are important elements of our
product development programs. Building on a strong history of
involvement in public safety and public security networks,
Sinclair is a Founding Signatory to the TETRA Memorandum
of Understanding and is involved in the development of the APCO-
P25 standards. Sinclair Technologies is registered to the
ISO9001 international quality standard.
Building Relationships:
Sinclair works closely with: cellular network operators in the
Americas, Europe and Asia; public sector network operators,
including several national and regional police forces and
military networks, and many ambulance and fire dispatch
services; private sector network operators, including trucking,
construction, oil-field and forestry management
companies, and other dedicated network operators; and, a range
of international OEMs who build equipment for these networks.
Sinclair operates sales, engineering and manufacturing
facilities in North America and Europe and has a global network
of distribution partners.
At Sinclair we believe that exceeding our customers
expectations requires that we play a leadership role in our
industry. To that end, Sinclair is committed to a strong R&D
Program, development of Industry Standards, and Quality
Management.
Full profile
Full profile
Contact information
Company description
Product / Service / Licensing
associated filter equipment for applications in UHF, VHF,
Cellular, Trunking, ASM, PCS, PCN and others.
Sinclair's team of applications engineers can custom design
antenna systems to meet specific requirements.
Market profile
Industry sector market interests:
- Information Technology and Telecommunications
Geographic markets:
Export experience:
- Algeria
- Australia
- Barbados
- Brazil
- Chile
- China
- Colombia
- Costa Rica
- Cuba
- Denmark
- Finland
- Germany
- Hong Kong
- Iceland
- India
- Indonesia
- Iran, Islamic Republic of
- Israel
- Italy
- Jamaica
- Japan
- Jordan
- Korea, Republic of
- Kuwait
- Mauritius
- Mexico
- Morocco
- New Zealand
- Norway
- Peru
- Philippines
- Saudi Arabia
- Singapore
- South Africa
- Spain
- Sri Lanka
- Sweden
- Turkey
- United Kingdom
- United States
- Venezuela, Bolivarian Republic of
- Viet Nam
- Alabama
- Alaska
- Arizona
- Arkansas
- California
- Colorado
- Connecticut
- Delaware
- District of Columbia
- Florida
- Georgia
- Hawaii
- Idaho
- Illinois
- Indiana
- Iowa
- Kansas
- Kentucky
- Louisiana
- Maine
- Maryland
- Massachusetts
- Michigan
- Minnesota
- Mississippi
- Missouri
- Montana
- Nebraska
- Nevada
- New Hampshire
- New Jersey
- New Mexico
- New York
- North Carolina
- North Dakota
- Ohio
- Oklahoma
- Oregon
- Pennsylvania
- Rhode Island
- South Carolina
- South Dakota
- Tennessee
- Texas
- Utah
- Vermont
- Virginia
- Washington
- West Virginia
- Wisconsin
- Wyoming
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
Contacts
Contact information
Description
Company description
Products, services and licensing
Product / Service / Licensing
associated filter equipment for applications in UHF, VHF,
Cellular, Trunking, ASM, PCS, PCN and others.
Sinclair's team of applications engineers can custom design
antenna systems to meet specific requirements.
Market
Market profile
Industry sector market interests:
- Information Technology and Telecommunications
Geographic markets:
Export experience:
- Algeria
- Australia
- Barbados
- Brazil
- Chile
- China
- Colombia
- Costa Rica
- Cuba
- Denmark
- Finland
- Germany
- Hong Kong
- Iceland
- India
- Indonesia
- Iran, Islamic Republic of
- Israel
- Italy
- Jamaica
- Japan
- Jordan
- Korea, Republic of
- Kuwait
- Mauritius
- Mexico
- Morocco
- New Zealand
- Norway
- Peru
- Philippines
- Saudi Arabia
- Singapore
- South Africa
- Spain
- Sri Lanka
- Sweden
- Turkey
- United Kingdom
- United States
- Venezuela, Bolivarian Republic of
- Viet Nam
- Alabama
- Alaska
- Arizona
- Arkansas
- California
- Colorado
- Connecticut
- Delaware
- District of Columbia
- Florida
- Georgia
- Hawaii
- Idaho
- Illinois
- Indiana
- Iowa
- Kansas
- Kentucky
- Louisiana
- Maine
- Maryland
- Massachusetts
- Michigan
- Minnesota
- Mississippi
- Missouri
- Montana
- Nebraska
- Nevada
- New Hampshire
- New Jersey
- New Mexico
- New York
- North Carolina
- North Dakota
- Ohio
- Oklahoma
- Oregon
- Pennsylvania
- Rhode Island
- South Carolina
- South Dakota
- Tennessee
- Texas
- Utah
- Vermont
- Virginia
- Washington
- West Virginia
- Wisconsin
- Wyoming


Welcome to Conway's Game of Life
The Game of Life, also known simply as Life, is a cellular automaton
devised by the British mathematician John Horton Conway in 1970.
The world of Game of life is typically a two-dimentional infinitely
long plane. But in this application we are restricted to the size
of the screen. This plane is divided into small square cells with
each of them in two possible states, live or dead.
The rules of Game of Life are:
- A live cell with fewer than two live neighbouring cells dies (underpopulation)
- A live cell with more than three live neighbouring cells dies (overpopulation)
- A live cell with two or three live neighbouring survives
- A dead cell with three neighbourig cells becomes a live cell (reproduction)
Credits: For more info
Click here.
Click and drag on the board to create live cells
Use these options to do your simulation
- Next Gen - To display the next generation
- Play - To start the simulation
- Pause - To stop the simulation
- Clear - To clear the board
You can set the pace of the simulation even in real time
You can choose pre-built patterns to run your simulation. Try one it will amuse you!
Rest In Peace
John Horton Conway
26 December 1937 – 11 April 2020
Have Fun!
For the source code of this application checkout my
GitHub.


Example renders static items with html content and allows for custom data-attributes for keyword search:


It's html with coding standard
It's html with coding standard
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16


|
|
Berlin
average values for Berlin |
|---|---|
|
|
background pollution:
grade:
traffic pollution:
grade:
| NO2 | SO2 | O3 | CO | PM10 | Grade |
| 1h avg 200 | 1h avg 350 | 1h avg 180 | 8h av 10 | 24h avg 50 | limit |
| 0-25 | 0-25 | 0-33 | 0-1 | 0-10 | 1 |
| 26-50 | 26-50 | 34-65 | 1-2 | 11-20 | 2 |
| 51-100 | 51-120 | 66-120 | 2-4 | 21-35 | 3 |
| 101-200 | 121-350 | 121-180 | 4-10 | 36-50 | 4 |
| 201-500 | 351-1000 | 181-240 | 10-30 | 51-100 | 5 |
| >500 | >1000 | >240 | >30 | >100 | 6 |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
Recommendation
if possible, make your journeys at times, when roads are less busy, so outside of traffic rush hours - check our live traffic maps more info...
keep an eye out for changes throughout the day
if you start to feel respiratory discomfort (eg. coughing or breathing difficulties), reduce cycling intensity eg. try to find an alternative route using our pollution map
especially in the morning (due to greater winds the pollution is usually improved in the evening)
you want to maintain a fairly regular, low intake of oxygen; breathing hard from cycling too fast will only cause you to take in more pollution. But don’t ride too slow, either; try to find a balance of moving with purpose, but not overexerting yourself. --> the amount of pollution in the air doesn’t change but the amount you are inhaling does! try to include extra antioxidant-rich fruit and vegetables (incl. blueberries, strawberries, plums, oranges, grapes cherries, mangoes and kale amongst the highest) to counteract the impact of the air pollution on the body. especially in the morning (due to greater winds the pollution is usually improved in the evening)
you want to maintain a fairly regular, low intake of oxygen; breathing hard from cycling too fast will only cause you to take in more pollution. But don’t ride too slow, either; try to find a balance of moving with purpose, but not overexerting yourself. --> the amount of pollution in the air doesn’t change but the amount you are inhaling does!
you want to maintain a fairly regular, low intake of oxygen; breathing hard from cycling too fast will only cause you to take in more pollution. But don’t ride too slow, either; try to find a balance of moving with purpose, but not overexerting yourself. --> the amount of pollution in the air doesn’t change but the amount you are inhaling does! try to include extra antioxidant-rich fruit and vegetables (incl. blueberries, strawberries, plums, oranges, grapes cherries, mangoes and kale amongst the highest) to counteract the impact of the air pollution on the body. especially in the morning (due to greater winds the pollution is usually improved in the evening)
you want to maintain a fairly regular, low intake of oxygen; breathing hard from cycling too fast will only cause you to take in more pollution. But don’t ride too slow, either; try to find a balance of moving with purpose, but not overexerting yourself. --> the amount of pollution in the air doesn’t change but the amount you are inhaling does!
PM10
NO2
SO2
CO
O3


Here you can create and modify your personal profile page!
With your personal profile page you or your company is findable in our „Real estate
agent“-Search.
My profile page
We are specialized for...
(max. 12)
Our services for you...
(max. 12)
About us
Company data
Company Logo
Contact person
Last time modified on: {{$parent.user.updated_at}}


- 2004-GWBush.txt - (3)
- 2002-GWBush.txt - (1)
- 2005-GWBush.txt - (1)
personal retirement account
- 2005-GWBush.txt - (3)
- 2002-GWBush.txt - (1)
- 2004-GWBush.txt - (1)
personal retirement +
- 2005-GWBush.txt - (3)
- 2002-GWBush.txt - (1)
- 2004-GWBush.txt - (1)
tyranny
- 2002-GWBush.txt - (2)
- 2005-GWBush.txt - (2)
- 2004-GWBush.txt - (2)
momentum
- 2002-GWBush.txt - (2)
- 2005-GWBush.txt - (1)
- 2004-GWBush.txt - (1)


Registraion_form(Student)
First Name:
Last Name:
E-mail
Password:
Password_again:
Mobile number:
Gender:
Male
Female
Are you sure?


SDSSmanagement
¶
Module containing functions that deal with getting and processing the SDSS spectra.
-
SDSSmanagement.
_log
(message)[source]¶ Simple error logging function :param message: message to be added to log file :type message: str
-
SDSSmanagement.
chunk_table
(table, chunksize=10)[source]¶ Separates the table into multiprocessing chunks
Parameters: - table (astropy.table) – Full table object
- chunksize (int, optional) – Default size of chunks is 10
Returns: result
Return type: list
-
SDSSmanagement.
download_spectra
(table, data_dir, save_raw=True, raw_dir=None)[source]¶ Downloads SDSS spectra
Parameters: - table (AstroPy.Table) – Table with coordinates
- data_dir (str) – Specifies directory where the data is saved
- save_raw (bool) – Specifies whether the raw spectra (i.e. sdss fits) should be saved
- raw_dir (str, optional) – Specifies save directory for the raw spectra. If raw_dir=None and save_raw is True it defaults to data_dir
Returns: - spectra (list) – List of HDU objects
- filenames (list) – List of filenames to be used when saving linemeasurements
-
SDSSmanagement.
load_table
(listname, length=10, all=False)[source]¶ Loads a section of the SDSS id list and removes it from the coordinate list
Parameters: - listname (str) – Name of the file to load from
- length (int) – Length of chunk to return
- all (bool) – If true returns the full list
Returns: - table (pandas.DataFrame) – DataFrame with the information needed by SDSS.get_spectra.
- remaining (int) – Remaining rows in list
-
SDSSmanagement.
make_SDSS_idlist
(filename, clobber=False, verbose=True)[source]¶ Creates a master file with quantities that provide unique identification in the SDSS: ra, dec, mjd, plate number, and fiber ID. The spectra are selected to be galaxies and classified as starbursts => EW(Ha) > 50 Å. This can then be used to get the corresponding spectra in chunks at a later stage.
Parameters: - filename (str) – Name of the savefile
- clobber (bool) – Whether to remake the list file
- verbose (bool) – Sets print level.
Notes
Saves a list of interesting SDSS id’s for all galaxies with spectra
-
SDSSmanagement.
measure_lines
(wl, flux, linelist, method='narrowband', width=40)[source]¶ Measures a set of emission lines to get fluxes that can be compared to cloudy.
Parameters: - wl (ndarray) – Array of wavelengths in Ångström
- flux (ndarray) – Continuum_subtracted flux. Array of same length as wavelength. Units should be erg/s/Å
- linelist (str) – List with line names and wavelengths. Tab separated
- method ({'narrowband', 'gaussian'}) – Selects the fitting method. Narrowband integrates the continuum subtracted spectrum over a small box around each line to get the line flux. Gaussian fits a set of gaussians to all the requested lines
- width (int) – Width of the narrowband.
Returns: results – Dataframe with two columns: ‘name’, and ‘flux’ as measured from the spectrum
Return type: pandas.DataFrame
-
SDSSmanagement.
normalize
(wavelength, flux, kernel=51)[source]¶ Function that normalizes the input spectrum using median filtering
Parameters: - wavelength (ndarray) – Array of wavelengths in Ångström
- flux (ndarray) – Array of same length as wavelength. Units should be erg/s/Å
Returns: normalized_flux – Normalized flux array
Return type: ndarray
-
SDSSmanagement.
process_spectra
(spectra, save_res=True, save_name=None, clobber=False)[source]¶ Coordinates the measuring of lines and removal of continuum from sdss spectra. The steps that are performed are:
- Unpacking the spectrum
- Redshifting
- Continuum subtraction
- Line measuring
Parameters: - spectra (list) – List of HDU objects conforming to the SDSS standard
- save_res (bool) – Whether or not to save the individual dataframes
- save_dir (str) – Filenames where the dataframe pickles will be saved
Returns: objects – List of dataframes with measured line fluxes. If all files have already been created returns empty list.
Return type: list


Laravel aims to make implementing authentication very simple. In fact, almost everything is configured for you out of the box. The authentication configuration file is located at app/config/auth.php
, which contains several well documented options for tweaking the behavior of the authentication facilities.
By default, Laravel includes a User
model in your app/models
directory which may be used with the default Eloquent authentication driver. Please remember when building the Schema for this Model to ensure that the password field is a minimum of 60 characters.
If your application is not using Eloquent, you may use the database
authentication driver which uses the Laravel query builder.
Note: Before getting started, make sure that your
users
(or equivalent) table contains a nullable, stringremember_token
column of 100 characters. This column will be used to store a token for "remember me" sessions being maintained by your application. This can be done by using$table->rememberToken();
in a migration.

The Laravel Hash
class provides secure Bcrypt hashing:
$password = Hash::make('secret');
if (Hash::check('secret', $hashedPassword))
{
// The passwords match...
}
if (Hash::needsRehash($hashed))
{
$hashed = Hash::make('secret');
}

To log a user into your application, you may use the Auth::attempt
method.
if (Auth::attempt(array('email' => $email, 'password' => $password)))
{
return Redirect::intended('dashboard');
}
Take note that email
is not a required option, it is merely used for example. You should use whatever column name corresponds to a "username" in your database. The Redirect::intended
function will redirect the user to the URL they were trying to access before being caught by the authentication filter. A fallback URI may be given to this method in case the intended destination is not available.
When the attempt
method is called, the auth.attempt
event will be fired. If the authentication attempt is successful and the user is logged in, the auth.login
event will be fired as well.
To determine if the user is already logged into your application, you may use the check
method:
if (Auth::check())
{
// The user is logged in...
}
If you would like to provide "remember me" functionality in your application, you may pass true
as the second argument to the attempt
method, which will keep the user authenticated indefinitely (or until they manually logout). Of course, your users
table must include the string remember_token
column, which will be used to store the "remember me" token.
if (Auth::attempt(array('email' => $email, 'password' => $password), true))
{
// The user is being remembered...
}
Note: If the attempt
method returns true
, the user is considered logged into the application.
If you are "remembering" user logins, you may use the viaRemember
method to determine if the user was authenticated using the "remember me" cookie:
if (Auth::viaRemember())
{
//
}
You also may add extra conditions to the authenticating query:
if (Auth::attempt(array('email' => $email, 'password' => $password, 'active' => 1)))
{
// The user is active, not suspended, and exists.
}
Note: For added protection against session fixation, the user's session ID will automatically be regenerated after authenticating.
Once a user is authenticated, you may access the User model / record:
$email = Auth::user()->email;
To retrieve the authenticated user's ID, you may use the id
method:
$id = Auth::id();
To simply log a user into the application by their ID, use the loginUsingId
method:
Auth::loginUsingId(1);
The validate
method allows you to validate a user's credentials without actually logging them into the application:
if (Auth::validate($credentials))
{
//
}
You may also use the once
method to log a user into the application for a single request. No sessions or cookies will be utilized.
if (Auth::once($credentials))
{
//
}
Auth::logout();

If you need to log an existing user instance into your application, you may simply call the login
method with the instance:
$user = User::find(1);
Auth::login($user);
This is equivalent to logging in a user via credentials using the attempt
method.

Route filters may be used to allow only authenticated users to access a given route. Laravel provides the auth
filter by default, and it is defined in app/filters.php
.
Route::get('profile', array('before' => 'auth', function()
{
// Only authenticated users may enter...
}));
Laravel provides an easy method of protecting your application from cross-site request forgeries.
<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">
Route::post('register', array('before' => 'csrf', function()
{
return 'You gave a valid CSRF token!';
}));

HTTP Basic Authentication provides a quick way to authenticate users of your application without setting up a dedicated "login" page. To get started, attach the auth.basic
filter to your route:
Route::get('profile', array('before' => 'auth.basic', function()
{
// Only authenticated users may enter...
}));
By default, the basic
filter will use the email
column on the user record when authenticating. If you wish to use another column you may pass the column name as the first parameter to the basic
method in your app/filters.php
file:
Route::filter('auth.basic', function()
{
return Auth::basic('username');
});
You may also use HTTP Basic Authentication without setting a user identifier cookie in the session, which is particularly useful for API authentication. To do so, define a filter that returns the onceBasic
method:
Route::filter('basic.once', function()
{
return Auth::onceBasic();
});
If you are using PHP FastCGI, HTTP Basic authentication will not work correctly by default. The following lines should be added to your .htaccess
file:
RewriteCond %{HTTP:Authorization} ^(.+)$
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

Most web applications provide a way for users to reset their forgotten passwords. Rather than forcing you to re-implement this on each application, Laravel provides convenient methods for sending password reminders and performing password resets. To get started, verify that your User
model implements the Illuminate\Auth\Reminders\RemindableInterface
contract. Of course, the User
model included with the framework already implements this interface, and uses the Illuminate\Auth\Reminders\RemindableTrait
to include the methods needed to implement the interface.
use Illuminate\Auth\Reminders\RemindableTrait;
use Illuminate\Auth\Reminders\RemindableInterface;
class User extends Eloquent implements RemindableInterface {
use RemindableTrait;
}
Next, a table must be created to store the password reset tokens. To generate a migration for this table, simply execute the auth:reminders-table
Artisan command:
php artisan auth:reminders-table
php artisan migrate
Now we're ready to generate the password reminder controller. To automatically generate a controller, you may use the auth:reminders-controller
Artisan command, which will create a RemindersController.php
file in your app/controllers
directory.
php artisan auth:reminders-controller
The generated controller will already have a getRemind
method that handles showing your password reminder form. All you need to do is create a password.remind
view. This view should have a basic form with an email
field. The form should POST to the RemindersController@postRemind
action.
A simple form on the password.remind
view might look like this:
<form action="{{ action('RemindersController@postRemind') }}" method="POST">
<input type="email" name="email">
<input type="submit" value="Send Reminder">
</form>
In addition to getRemind
, the generated controller will already have a postRemind
method that handles sending the password reminder e-mails to your users. This method expects the email
field to be present in the POST
variables. If the reminder e-mail is successfully sent to the user, a status
message will be flashed to the session. If the reminder fails, an error
message will be flashed instead.
Within the postRemind
controller method you may modify the message instance before it is sent to the user:
Password::remind(Input::only('email'), function($message)
{
$message->subject('Password Reminder');
});
Your user will receive an e-mail with a link that points to the getReset
method of the controller. The password reminder token, which is used to identify a given password reminder attempt, will also be passed to the controller method. The action is already configured to return a password.reset
view which you should build. The token
will be passed to the view, and you should place this token in a hidden form field named token
. In addition to the token
, your password reset form should contain email
, password
, and password_confirmation
fields. The form should POST to the RemindersController@postReset
method.
A simple form on the password.reset
view might look like this:
<form action="{{ action('RemindersController@postReset') }}" method="POST">
<input type="hidden" name="token" value="{{ $token }}">
<input type="email" name="email">
<input type="password" name="password">
<input type="password" name="password_confirmation">
<input type="submit" value="Reset Password">
</form>
Finally, the postReset
method is responsible for actually changing the password in storage. In this controller action, the Closure passed to the Password::reset
method sets the password
attribute on the User
and calls the save
method. Of course, this Closure is assuming your User
model is an Eloquent model; however, you are free to change this Closure as needed to be compatible with your application's database storage system.
If the password is successfully reset, the user will be redirected to the root of your application. Again, you are free to change this redirect URL. If the password reset fails, the user will be redirect back to the reset form, and an error
message will be flashed to the session.
By default, the Password::reset
method will verify that the passwords match and are >= six characters. You may customize these rules using the Password::validator
method, which accepts a Closure. Within this Closure, you may do any password validation you wish. Note that you are not required to verify that the passwords match, as this will be done automatically by the framework.
Password::validator(function($credentials)
{
return strlen($credentials['password']) >= 6;
});
Note: By default, password reset tokens expire after one hour. You may change this via the
reminder.expire
option of yourapp/config/auth.php
file.

Laravel provides facilities for strong AES encryption via the mcrypt PHP extension:
$encrypted = Crypt::encrypt('secret');
Note: Be sure to set a 16, 24, or 32 character random string in the
key
option of theapp/config/app.php
file. Otherwise, encrypted values will not be secure.
$decrypted = Crypt::decrypt($encryptedValue);
You may also set the cipher and mode used by the encrypter:
Crypt::setMode('ctr');
Crypt::setCipher($cipher);

Laravel offers the database
and eloquent
authentication drivers out of the box. For more information about adding additional authentication drivers, check out the Authentication extension documentation.


Configure, generate and download the layout of a new Sphinx documentation.
As diecutter's authors, we are glad to share this page with you.
The
template
should make it easy to scaffold of a new Sphinx documentation.
It is more than an alternative to Sphinx's builtin sphinx-quickstart
command:
as sphinx-quickstart
, it generates configuration and directory layout,
but it also helps you start with documentation content.
About content, we are trying to promote best practices from
Write The Docs community.
The user interface is just an HTML page.
Feel free to give feedback, report issues or request features in the bugtracker.
diecutter is a server that handles templates. When you post data to a template resource, you retrieve the generated content. Templates can be either single files (returns single files) or directories (returns archive). Learn more in diecutter's documentation.
diecutter is open-source template rendering software.
diecutter.io is the original online provider for diecutter.


CRIME AND PUNISHMENT IN SUBURBIA A film review by Julia Levin Copyright 2001 filmcritic.com filmcritic.com
If you're seeking enlightenment on what you think would be a modern reverberation on the timeless Fyodor Dostoyevsky's masterpiece, don't be misled by Crime and Punishment in Suburbia. While the film opens with a quotation from Crime and Punishment, which, I suppose, is intended to lead us to a new interpretation of the book, that's the only (tenuous) connection. In the novel, the protagonist, Raskolnikov, rebels against the morality imposed on him by a society and kills an innocent woman. He later discovers that the worst punishment for the murder was the one his guilty conscience made him to endure. And perhaps, if you concentrate hard enough, the suffering Raskolnikov could conceivably parallel that of a pudgy adolescent Roseanne (Monica Keena ex of Dawson's Creek), one of the main characters in the movie.
Completed before American Beauty, this artificial little movie resembles it in every way possible, mainly because it examines the very same set of stereotypes about malfunctioning wealthy suburbanites. Vincent (Vincent Kartheiser), a sallow loner, follows Roseanne everywhere with his camera. Given the privilege to provide voice-over for most of the film, we hope that he is the voice of wisdom, or at least revelation in the story. Far from it: His philosophy is one of a self-possessed New Age spiritual guru who is convinced he can save Roseanne from hell she is living in. What Ricky was able to see with his lens in American Beauty revealed the hidden layers of human behavior. Vincent, by comparison, as well as the whole ensemble of characters in Crime and Punishment, goes through the plot's twists and turns without a single coherent thought in his head.
The genre of the film is familiar -- using the suburbs as an emotional terrain where the sense of unwholesomeness surrounds the surfaces of people's life and threatens their seemingly secure shelters. In Roseanne's family, we have a complete set of obvious characters: a psychopathic stepfather (Michael Ironside) with a face of a bulldog and a penchant for heavy drinking, a frustrated and suffering mother (Ellen Barkin), and a vacuous, popular little girl who dates a football player (James DeBello). What follows is supposed to be a tragedy of revelations, in which a gloomy loner Vincent will help Roseanne rediscover herself and alter her perception of the world forever. Supposed to be.
What attracted me the most in American Beauty was how punchy and derisive -- yet humane -- the film was. It carried a deep loss for the human connection, a charge that gave the film its integrity, the weight of reality.
To completely befuddle us, the film switches from Vincent's voice over to Roseanne's. In a chillingly dispassionate voice, she narrates from jail and says how much she enjoys her non-existence. "I killed somebody. I was sorry. It changed nothing." When freed, she follows Vincent as her savior and marvels, "What a strange path it took to find my heart." But first, you have had to believe that she even has one.

Visit filmcritic.com on the Web at http://www.filmcritic.com
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Experiment
Thank you for completing this study!
You may close this window. Please let us know you completed the study.


{% extends 'main.html' %} {% block content %}
You will be permitted to create, edit or delete categories and products.


This page requires JavaScript. For more information, visit
https://github.com/mattwparas/steel
.
Loading
Steel Playground
...


Philadelphia Museum of Art
2600 Benjamin Franklin Pkwy, Philadelphia, PA 19130
Category:
Art
Phone:
215-763-8100
Visit Museum Website
Submit Museum Update
Download Museum Info
Full Report
Museum Row
Print This Report
Edit Museum Boundary
3 Mile Raduis
5 Mile Raduis
10 Mile Raduis
People
Households
Similar Museums
Population
6,545
Race/Ethnicity
Gender
Education Attained
Foreign Born Population
Employment Status
Median Home Value
$239,850
Home Values
Per Capita Income
$28,100
Household Tenure
Poverty
×
Download
Full Report
Only Museum


device
— Modbus Device Representation¶
API Documentation¶
Modbus Device Controller¶
These are the device management handlers. They should be maintained in the server context and the various methods should be inserted in the correct locations.
-
class
pymodbus.device.
ModbusAccessControl
[source]¶ This is a simple implementation of a Network Management System table. Its purpose is to control access to the server (if it is used). We assume that if an entry is in the table, it is allowed accesses to resources. However, if the host does not appear in the table (all unknown hosts) its connection will simply be closed.
Since it is a singleton, only one version can possible exist and all instances pull from here.
-
__iter__
()[source]¶ Iterater over the network access table
Returns: An iterator of the network access table
-
__contains__
(host)[source]¶ Check if a host is allowed to access resources
Parameters: host – The host to check
-
-
class
pymodbus.device.
ModbusPlusStatistics
[source]¶ This is used to maintain the current modbus plus statistics count. As of right now this is simply a stub to complete the modbus implementation. For more information, see the modbus implementation guide page 87.
-
class
pymodbus.device.
ModbusDeviceIdentification
(info=None)[source]¶ This is used to supply the device identification for the readDeviceIdentification function
For more information read section 6.21 of the modbus application protocol.
-
__init__
(info=None)[source]¶ Initialize the datastore with the elements you need. (note acceptable range is [0x00-0x06,0x80-0xFF] inclusive)
Parameters: information – A dictionary of {int:string} of values
-
__iter__
()[source]¶ Iterater over the device information
Returns: An iterator of the device information
-
update
(value)[source]¶ Update the values of this identity using another identify as the value
Parameters: value – The value to copy values from
-
__setitem__
(key, value)[source]¶ Wrapper used to access the device information
Parameters: - key – The register to set
- value – The new value for referenced register
-
-
class
pymodbus.device.
DeviceInformationFactory
[source]¶ This is a helper factory that really just hides some of the complexity of processing the device information requests (function code 0x2b 0x0e).
-
classmethod
get
(control, read_code=1, object_id=0)[source]¶ Get the requested device data from the system
Parameters: - control – The control block to pull data from
- read_code – The read code to process
- object_id – The specific object_id to read
Returns: The requested data (id, length, value)
-
classmethod
_DeviceInformationFactory__get
(identity, object_id)¶ Read a single object_id from the device information
Parameters: - identity – The identity block to pull data from
- object_id – The specific object id to read
Returns: The requested data (id, length, value)
-
classmethod
_DeviceInformationFactory__gets
(identity, object_ids)¶ Read multiple object_ids from the device information
Parameters: - identity – The identity block to pull data from
- object_ids – The specific object ids to read
Returns: The requested data (id, length, value)
-
classmethod
-
class
pymodbus.device.
ModbusControlBlock
[source]¶ This is a global singleotn that controls all system information
All activity should be logged here and all diagnostic requests should come from here.
-
__str__
()[source]¶ Build a representation of the control block
Returns: A string representation of the control block
-
addEvent
(event)[source]¶ Adds a new event to the event log
Parameters: event – A new event to add to the log
-
getEvents
()[source]¶ Returns an encoded collection of the event log.
Returns: The encoded events packet
-
_setListenOnly
(value)[source]¶ This toggles the listen only status
Parameters: value – The value to set the listen status to
-
_setMode
(mode)[source]¶ This toggles the current serial mode
Parameters: mode – The data transfer method in (RTU, ASCII)
-
_setDelimiter
(char)[source]¶ This changes the serial delimiter character
Parameters: char – The new serial delimiter character
-
setDiagnostic
(mapping)[source]¶ This sets the value in the diagnostic register
Parameters: mapping – Dictionary of key:value pairs to set
-


Resources
2023 01 03.
TEE and its Key Management
2022 10 15.
Hybrid Consensus Algorithm
Back To Home


| Peercom Co., Ltd. | |
| Product: | My Personal Portal - “My DeskStation” and “My Home” for PCs - “My WebSpace” & “Shared WebSpace” for Web-based views |
| Description: |
By using JXTA’s network independent functionality, “My
Personal Portal” makes it easy to view digital content that
is stored in many digital devices (home pc, office pc, mobile
pc, etc.) |
| System Requirements: | - Windows XP, Windows 2000, Windows ME, Windows 98 SE with JRE
1.4.X - RAM: Windows 128 MB (minimum), 256 MB (recommended) - Disk space: Windows 50 MB - JRE 1.4 (preferred) or later |
| Availability & Pricing: | Available now for Windows PC Peercom is planning to develop another version for PDA, Mobile phones. A demo (in Korean) is available. |
| Target Markets: | - General users who use multiple pc devices - Web disk (Internet disk, web hard) users - Enterprise users in need of file sharing between team members - Users who share large multi media files (audio, video) |
| Contact: | Tae-Nyeon Ha CEO Peercom Co., Ltd. E-mail<EMAIL_ADDRESS>|
| Website: | Peercom Demo available |


--- layout: post title: My ~/.gitconfig date: '2013-06-03T21:29:00+02:00' tags: - git - gitconfig category: 'Server' tumblr_url: http://andywenk.tumblr.com/post/52075632216/my-gitconfig ---
Moin Moin,
when you’re using git as your scm, you will probably love it’s command line interface. I am using it on a daily basis … heavily. I know that there are some quite good GUI’s (like SourceTree) but I never got really into them. So if you’re interested to make your git-life a little more comfortable, you can check out my (small) .gitconfig:
There are three entries worth mentioning:
always use “git pull — rebase” to avoid unnecessary merge commits
use “_conflictstyle = diff3” for an advanced diff while solving conflicts during merge or rebase. You will see three different parts: your changes, their changes and the merged common ancestors. This gives you full access to all changes and you can choose what has to be merged
check out the awesome alias “lg”. Full power overview what’Äs going on in your repo. Credits go out to my fine colleague Thomas @Thereincarnator.
Cheers


'My blood is boiling' - Former Birmingham City player accused of making vile slur
The incident is alleged to have happened during Leyton Orient's match with Forest Green
by Alex Dicken, https://www.facebook.com/alexdickenjournalist/?fref=tsFormer Birmingham City player Mark Cooper has been accused of making a vile slur concerning the late Justin Edinburgh.
Edinburgh tragically passed away over the summer after guiding Leyton Orient back into the Football League and, after a brief spell under Carl Fletcher, Ross Embleton has taken temporary charge of the O’s.
Embleton’s side were defeated 4-2 by Forest Green at Brisbane Road on Saturday and they are now languishing in 18th position in League Two.
But the match was overshadowed by an incident between Embleton and Forest Green manager Cooper on the touchline. Embleton became visibly angry with something Cooper said and proceeded to throw chewing gum at the 50-year-old, who spent one season at St Andrew’s during his playing days.
Cooper's son Charlie also spent time in Blues' academy before joining Forest Green in 2017.
Referee Chris Sarginson sent Embleton, 38, off after the exchange and the Orient boss has now given his version of events.
He alleges Cooper said ‘Who do you think you are, Justin Edinburgh?’ during a heated discussion on the touchline, which is why he reacted the way he did.
Here is Embleton's post-match interview in full:
“I got told I’m an impostor being in and around the environment that I’m in. But it’s great because I’ve spent most of my life being an impostor - I didn’t play football, didn’t have a football career.
“I’ve worked extremely hard to get myself to where I am and where I have been in my coaching career. It’s a thing which has been thrown at me quite regularly and I quite like it, it’s my thing.
“A lot of people don’t know my name, a lot of people don’t know who I am and I can accept that. But to follow it up with, ‘Who do I think I am, Justin Edinburgh?’ is something I’ll never accept.
“I have to apologise to everybody, the fans, the players and the staff, for getting sent off. It has a negative effect on the team and it shows a lack of discipline.
“At the same time, if there’s anybody out there that wants to get me sent off then use that phrase. For me, it’s totally unacceptable.
“I knew of Mark Cooper’s behaviour at times and the way that he approaches different people but today has shown me what he’s all about.
Birmingham City latest
This is your round up of all things Birmingham City; the one-stop shop that will keep you updated on the latest goings on at the club and beyond.
Transfers, injuries, match-days and managers, we’ve got you covered.
We’ll be bringing the very latest on the Blues throughout the week and around the clock.
Make sure you keep yourself updated with our handy daily catch up...
Must reads...
- 'My blood is boiling' - Former Birmingham City player accused of making vile slur
- Birmingham City's rampant starlets rated
- Pep Clotet explains that Birmingham City call - and who impressed him at Huddersfield
- Birmingham City player ratings as Jefferson Montero makes an impact at Huddersfield
- Garry Monk makes Birmingham City claim after Sheffield Wednesday charge
For all your latest BCFC news, opinion, analysis and transfer gossip, click here
You can follow our Blues reporter Brian Dick on Twitter, and his email address is<EMAIL_ADDRESS>“I got sent off for throwing my chewing gum at him. Ultimately, that’s something I deserve - you can’t do that sort of thing. However, it was either that or do something a lot more aggressive. That would have been even more naive of me and I probably would spend more time in the stands than perhaps I’m going to.
“It was the best way for me to deal with it at that moment in time. My blood is still boiling. I suppose the further I go with it, the more difficult I’m going to make it. Everybody is aware of exactly what happened now and it’s a case of focusing on what the game looked like and where we fell short today.”


Sunbird software is containerized. The installation script uses the Docker swarm orchestration engine to run the Sunbird docker images. The Docker swarm consists of manager and agent nodes. The containers are run on the agent nodes and the manager nodes manage the container lifecycle.
All the stateless services in Sunbird - Portal, LMS Backend, API Gateway and Proxies - are run as docker containers inside the swarm. All stateful services consisting of Cassandra, PostgreSql, Elasticsearch and the OAuth service(Keycloak) are run on Virtual Machines (VMs) directly. The installation is automated using shell scripts and Ansible.
Minimum 2 servers with 7 GB RAM, running Ubuntu server 16.04 LTS. You can scale the infrastructure by adding servers. Sunbird is designed to scale horizontally. The servers should connect to each other over TCP on the following ports The scripts do not work on virtual machines created locally (using VMware/VirtualBox) and have been tested on Azure and AWS VMs.
Recommended that you have a domain name and a valid SSL certificate for the domain. If you do not have a domain name, you can configure Sunbird such that it can be accessed over an IP address. If you have a domain name, and you want to get an SSL certificate, refer Let’s Encrypt to generate a free certificate which is valid for 90 days.
Sunbird requires Ekstep API keys to access the Ekstep content repository. Follow the steps here to get the keys. If you are creating a test environment, get the QA API keys.
Create a common linux user (e.g. deployer) on all the servers. Configure this user to use key based ssh. Use an empty passphrase while generating the ssh key to avoid password prompts during installation. Since the installation script uses this key (user) to deploy Sunbird, this user must have sudo access on the servers.
The following table lists the services that are set up and run as part of installation. The table also lists the optimal server count for a typical staging or production environment with thousands of users.
| Server Name | Suggested Servers per environment | Basic Requirement | Max Servers |
|---|---|---|---|
| Docker swarm manager1 | Staging - 1 Prod - 3 |
CPU: 1core & RAM: 2GB | Any |
| Docker swarm agent nodes1 | Staging - 1 Prod - 3 |
CPU: 2core & RAM: 6GB | Any |
| Elasticsearch2 | Staging - 1 Prod- 3 |
CPU: 1core & RAM: 3GB | Any |
| Postgres master2 | Staging&Prod - 1 | CPU: 1core & RAM: 3GB | 1 |
| Postgres slave2 | Staging&Prod - 1 | CPU: 1core & RAM: 3GB | 1 |
| Cassandra2 | Staging&Prod - 1 | CPU: 1core & RAM: 3GB | 1 |
| Keycloak1 | Staging&Prod - 1 | CPU: 1core & RAM: 4GB | Any |
When you install Sunbird on 2 servers, all the services with the common superscript (e.g. servername2) in the Server Name are run on the same server. The App server runs services with superscript 1 and the DB server runs services with superscript 2.
Note: If you setup more than one swarm agent node, you will need to configure a load balancer to spray the incoming requests to all the agent nodes. All agent nodes in a swarm route the request to the right service.
Note: Choose one docker swarm manager VM as the installation server and execute the following steps from that server. If you are installing Sunbird on two servers, execute the steps from the app server.
1.Install git using apt-get update -y && apt-get install git -y
2.Run git clone https://github.com/project-sunbird/sunbird-devops.git
3.cd sunbird-devops/deploy
4.Update the configuration parameters in the config
file.
The configuration parameters are explained in the following table:
| variable | description | mandatory | |
|---|---|---|---|
env |
Name of the environment you are deploying. Typically, it is one of development, test, staging, production, etc.. | yes | |
implementation_name |
Name of your sunbird implementation. | yes | |
ssh_ansible_user |
SSH user with sudo access for accessing all servers. | yes | |
ansible_private_key_path |
Path to the private SSH key file for the ssh_ansible_user. Ansible uses this file to SSH to the servers. | yes | |
dns_name |
Domain name for your installation. Use the IP address if want to access Sunbird over an IP address | yes | |
proto |
http/https. Use http if your dns_name is an IP address or if you have a domain but do not want ssl for trials. | yes | |
cert_path |
Path to .cert file (SSL certificate) for nginx. This variable need not be set if the proto is set to http. | no | |
key_path |
Path to .key file (SSL certificate) for nginx. This variable need not be set if the proto is set to http | no | |
ekstep_api_key |
Jwt token generated by the key,secret produced from Ekstep | yes | |
sso_password |
Password for keycloak sso user (default user is user-manager, can change it it keycloak gui) | yes | |
keycloak_admin_password |
Keycloak admin console password (default admin username is admin, can change it in keycloak gui) | yes | |
trampoline_secret |
Trampoline secret for keycloak, atleast 8 chars | yes | |
app_address_space |
Application server address space (e.g. <IP_ADDRESS>/24) | yes | |
ekstep_api_base_url |
https://qa.ekstep.in/api & prod: https://api.ekstep.in | yes | |
ekstep_proxy_base_url |
https://qa.ekstep.in & prod: https://community.ekstep.in | yes | |
sudo_passwd |
The sudo password, if the user has it else skip the parameter | no | |
database_host |
The private IP address of the DB server | no | |
database_password |
The common password for all the databases | no | |
elasticsearch_host |
A comma-separated (,) list of Elasticsearch database IP addresses. | no | |
cassandra_host |
The IP address of the Cassandra database. | no | |
postgres_master_host |
The IP address of the Postgres master database | no | |
postgres_slave_host |
The IP address of the Postgres slave database. If you do not need a slave node enter the same IP address as that of the master. | no | |
swarm_manager_host |
A comma-separated (,) list of IP addresses of the swarm managers. | no | |
swarm_node_host |
A comma-separated (,) list of swarm node IP addresses . | no | |
keycloak_host |
A comma-separated (,) list of keycloak IP addresses. | no | |
sunbird_azure_storage_account |
The Azure storage account for the badger service | yes | |
sunbird_azure_storage_key |
The Azure storage key for the badger service | yes | |
sunbird_image_storage_url |
The Azure image url for the badger service | yes | |
sunbird_installation_email |
The Sunbird installation email ID | no | |
sunbird_telemetry_pdata_id |
The Sunbird telemetry pdata ID, for example {env}.{implimentation_name}.learning.service |
no | |
backup_storage_key |
elasticsearch backupstorage key | yes | |
badger_admin_password |
Badger admin password | yes | |
badger_admin_email |
Badger admin email for admin user | yes | |
mail_server_host |
mail server host for alerting | no | |
mail_server_port |
mail server port used by mail server for alerting | no | |
mail_server_username |
username of mail | no | |
mail_server_password |
password of mail | no | |
vault_postgres_exporter_password |
postgres vault exporter password | no | |
grafana_admin_password |
password for grafana dashboard | no | |
monitor_alerts_slack_url |
slack app webhook url | no | |
monitor_alerts_slack_channel |
list of emails to send alerts | no | |
vault_proxy_prometheus_admin_creds |
prometheus admin password | no | |
proxy_prometheus |
Setting up Prometheus Proxy | no | |
sunbird_sso_publickey |
For creation of User, http://dns_name/auth -> realm settings -> keys -> public keys (click on public keys) and paste the value | yes | |
sunbird_default_channel |
channel name with which you are creating the organization | yes |
5.Run the script ./sunbird_install.sh
. This script sets up the infra setup from stage 1 to stage 6 in a sequence as mentioned in the following table.
| stage no | stage name | Description |
|---|---|---|
| 1 | config | Generates configuration file and hosts file |
| 2 | dbs | Installs all databases and creates schema |
| 3 | apis | Sets up API manager kong and Onboard API’s and consumer’s |
| 4 | proxy | Deploys and configures Nginx |
| 5 | keycloak | Deploys and configures Keycloak |
| 6 | badger | Deploys the badger service |
| 7 | core | Deploys all core services |
Note: The badger service does not work without an Azure storage account name and key.
6.Get the sunbird_sso_publickey from keycloak under http://dns_name/auth -> realm settings -> keys -> public keys (click on public keys) and paste that value in sunbird_sso_publickey under config file and execute the command ./sunbird_install.sh -s core
to redeploy the core services.
Note:
- If you want to re-run particular stage in the installation, execute ./sunbird_install.sh -s <stagename>
sunbird_install.sh
7.To create access token and root organization, execute the following commands:
Create user access token
curl -X POST {dns_name}/auth/realms/sunbird/protocol/openid-connect/token -H 'cache-control: no-cache' -H 'content-type: application/x-www-form-urlencoded' -d 'client_id={client-name}&username={username}&password={password}&grant_type=password'
Note:
Create root organization
curl -X POST {dns_name}/api/org/v1/create -H 'Cache-Control: no-cache' -H 'Content-Type: application/json' -H 'accept: application/json' -H 'authorization: Bearer {jwt token from ~/jwt_token_player.txt}' -H 'x-authenticated-user-token: {access token created last step}' -d '{ "request":{ "orgName": "{YourOrganizationName}", "description": "Organization for demonstrating Sunbird Skills Training", "isRootOrg":true, "channel":"{YourChannelName}" } }
8.Update sunbird_default_channel in the config file with {YourChannelName} (that was created in previous step) and re-run the command ‘./sunbird_install.sh -s core`
9.Run ./sunbird_install.sh -s posttest
, this script validates checks all the services for a successful installation. On executing the script, a file postInstallationLogs.log in the logs directory
10.Open https://[domain-name] and sign up.
11.You can choose your own user name and password. The format for the username is: username@channelName
The Sunbird installation script ./sunbird_install.sh
is a wrapper shell script that invokes other scripts or Ansible playbooks. It fetches all the docker images from the Sunbird DockerHub repository.
sanity.sh
- Basic Sunbird prerequisites check.
install-deps.sh
- Installs Ansible v<IP_ADDRESS> on the installation server to provision and deploy Sunbird. This script also sets up the docker swarm.
generate_config.sh
- Creates a workspace for the installation and sets up necessary config files.
generate_hosts.sh
- Creates a hosts file (Ansible file format) dynamically to run the Ansible scripts.
install-dbs.sh
- Installs Cassandra, Elasticsearch and Postgres databases
init-dbs.sh
- Sets up the required schema for Cassandra, Elasticsearch and Postgres databases
deploy-apis.sh
- Deploys the api gateway (Kong) as a docker service using Ansible.
deploy-proxy.sh
- Deploys the proxy (Nginx) as a docker service.
provision-keycloak.sh
- Installs Keycloak.
deploy-keycloak-vm.sh
- Deploys the OAuth service (Keycloak) on the VM. The Keycloak service runs outside the swarm.
bootstrap-keycloak.sh
- Imports the auth realm and configures Keycloak.
deploy-badger.sh
- Deploys the badger service as docker service.
deploy-core.sh
- Deploys the core services player, content, actor and learner service as docker services. The content, actor and learner service together form the LMS backend.
The following is a list of ports that must be open:
| From server | To server | port | protocol |
|---|---|---|---|
| Administration server | All servers | 22 | TCP |
| ELB | <IP_ADDRESS> | 80,433 | TCP |
| swarm managers subnet | swarm nodes subnet | All | TCP & UDP |
| swarm nodes | Cassandra servers | 9042 | TCP |
| swarm nodes | Elasticsearch servers | 9200 | TCP |
| swarm nodes | Postgres servers | 5432 | TCP |
| swarm nodes | Keycloak | 8080 | TCP |


Salvia has provided me with such a powerful experience that I honestly don't know where to begin. First, I'd like to say that, prior to this, I tried salvia once to no great effect. I along with my friend and his wife wanted to give it another try so I purchased one gram of 10x extract (originally, we tried regular salvia divinorum along with some 5x extract). The three of us had been out last night shooting pool and drinking and decided, on a whim, to try the 10x extract. We went back to their apartment and had another drink, put on some relaxing music and talked for a while. These are close friends of mine that I trust very much and we are often able to talk to each other about personal thoughts and feelings. Our mood that night was very good and the whole experience seemed somewhat intimate. Neither of us were doing this just for a thrill, or to get high. No one was in a rush to do it and everyone was quite comfortable.
 We sat on pillows in a circle around a single candle. We continued chatting for a while as my friend prepared the bowl. We then passed the pipe around, each taking a hit, with the sitter just taking a small toke.
I've noticed that the initial effect of Salvia is a break in time. I become disconnected from my life, there is no recollection of having smoked or what I am doing. I only know that I am there. In this moment, my body disappeared and left me a floating entity. For a short moment, I caught a glimpse of something, another universe perhaps. I cannot put my finger on it but it was very short. Then the flame appeared. In our world, flame destroys but this flame was different. It created. It reversed my disembodiment. Slowly, as it consumed my mind, it recreated my physical body. As it did so, it created an intense tingling feeling. This all happened very quickly, and although it was bizarre, I wasn't uncomfortable with it.
We shared our experiences and took notes before packing another bowl. We each lit a cigarette and I got up to pour myself a drink (Crown and Coke). Walking was very funny. Every movement brought on tingling sensations. I was super sensitive and not very coordinated. I walked past the light switch in the kitchen three times before I finally found it.
Some 15 minutes after the first experience, we were ready to go again, this time with a bigger hit. I let my friend go first and watched over him while he took two hits (he hadn't gotten a strong effect on the first try). Once he seemed safe, I took another larger hit. I barely passed the pipe to my friend's wife before I was ripped from reality. Still, the new reality was somewhat fuzzy but cartoonish. The space between us became polygonal. Each of us were situated in our own polygon. I was amazed! I tried explaining this to my friends but I was completely incoherent. Slowly, the polygons started to meld together and everything started to shape itself back to normal.
It was at this point that I noticed a very important aspect of salvia. I DO NOT know I am on salvia. When I leave this reality, the new reality becomes the only reality I know. When I begin to return and things start to 'morph' back to normal, there comes a point of recognition. It's at this point that I realize where I am. It's a very pleasant surprise. Coming back, I appreciate my life and everything around me... and the morphing effect is VERY cool!
After another 20 minutes or so, my friend packed another bowl. This time, he filled it to the top and packed it as much as he could, finishing up the last of the salvia. This time, I took the first hit off of this monster bowl. I believe I had taken a second hit as well but this is very foggy. What happened next, I don't remember. According to my friends, I lunged forward, grabbing each of them by the arm. I looked terrified and my friend grabbed me and laid me down. I didn't put up a fight. I just laid on the floor squirming around. My friend and his wife sat on the couch and a few minutes later I jumped up and moved across the room. I got down on my knees before them and babbled incoherently. I was frantically trying to speak. 'Ommmba! Ommmba!' Still nothing. Things were morphing and I knew now where I was. 'I'm.... I'mmmm...', I babbled. Hey, at least I was being entertaining. 'I'm back! Oh God, I'm back!'
Finally I could speak. I put my face in my hands, repeating that I was back. Very slowly, I slurred, 'you... ah not gonna bereave what just happen!' I was also apologizing to them for reasons they didn't understand. I was shaken and excited, but laughing as I gave my account of what had just transpired.
Time had become a blanket. One end was the past. The other, the future. This blanket suddenly had wrapped around me so that I was unable to move and I 'fell out' of my life and into a universe of complete whiteness. I was in a room with pure white walls. The only thing that wasn't white was various types of industrial machinery. I immediately realized that my entire life was like a TV show. It hadn't been real and now I was being shown that everything that I had loved, and everything I had done had never happened. I was terrified and desperate to have my life back, but how can you have something that isn't real. The feeling of loss was so deep and maddening. The universe had uncaringly dismissed me from a play that I had thought was real.
As I fell into this dimension, I was thrown onto a conveyor belt. I couldn't move since I was wrapped in the 'time blanket'. The conveyor belt went into a wall. It was at this point that I started to give up. I was trying to let go of my life as it was the only choice I seemed to have. I was being dropped from conveyor belt to conveyor belt and through all sorts of machinery. Finally, I was dropped into an empty white room. There was no actual lights but light seemed to be coming from everywhere. Two blurry, dark figures appeared before me. They seemed displeased and I felt a very deep guilt for some reason. I humbly kneeled down before them when they began to change. The room was changing as well.
Suddenly, I hit the point of recognition. What I was seeing was the life I had given up hope for. The two figures became my friend and his wife. I couldn't contain my excitement. I wanted nothing more than to talk to them and tell them how happy I was to see them. Never in my life have I been so happy to see anyone. Speaking was impossible so I formed the simplest message I could in my head: I'm back.
Although this may sound like a bad trip, the horrible feelings that I suffered were dwarfed by the feeling of appreciation I had for my life when I came back. I've been unhappy lately with a lot of things in my life and the Shephardess has shown me that things could be much worse. I could have no problems.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Select and copy desired symbols to your search engine.
Submit a photo of your problem and we will give you hints on how to solve it!
Automatically recognize and translate a symbol to an editable text.
Automatically recognize your equation and find learning resources for you.


For the formal kickflip enthusiast.
3 reviews
Have a ticket tape for this slick shoe taper!
8 reviews
Dress to impress with these classy leather monsters.
15 reviews
This leather was made to be cracked by the wear and tear of exploration.
31 reviews
Modernizing the old Amsterdam tradition of woodern shoes.
6 reviews
Never learned to tie your shoes? No problem here.
18 reviews
Unsure whether or not to buy these? We'll perSUEDE you.


Statistical data set
Information on apprenticeship vacancies.
This statistical data set provides information through a number of reports on the number of apprenticeship vacancies and traineeship opportunities for 2008/09 to 2014/15 year-to-date.
Applications stated are for those made online through Find An Apprentice, and do not include those made offline directly to employers.
‘Recruit an apprentice’, replaced Apprenticeship vacancies (Av) in August with the following changes:
MS Excel Spreadsheet , 39.9KB
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
MS Excel Spreadsheet , 63.9KB
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
MS Excel Spreadsheet , 40KB
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
MS Excel Spreadsheet , 40KB
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
MS Excel Spreadsheet , 55.9KB
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
MS Excel Spreadsheet , 39.9KB
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
MS Excel Spreadsheet , 39.9KB
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
MS Excel Spreadsheet , 39.9KB
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
Published: 7 November 2014
Updated: 7 March 2017


State bot provides a public service to reasearchers interestd in ethereum classic. Every 7 days, state bot exports the latest state in json format to the IPFS network and updates its smart contract.
Statebot is a truly decentralized application which utlizes Ethereum classic, IPFS, the MEW framework, and Javascript. It is entirely hosted on the Interplanitary file system and interates with its parent contract through public web3 api points. The parent contract is located at 0x28bfbf40bf22e3e78767fa3ba321e7311374ddda
If you are running an IPFS node please add statebot or the latest JSON to your node and help everyone by seeding for a few days.


Aaron Jacobson
Home
Resume
Photography
Portfolio
Code
Writing
Home
Resume
Photography
Portfolio
Code
Writing
view_headline
Static
For all day use.
Spotify
Play Spotify in the car.
Weather
From Dark Sky
Weather
Including rain or snow.
Lunchtime
Time-dependent for lunch or dinner crowd


Hi, I'm a full-stack developer with experience in ReactJs, NodeJs ExpressJs, mongoDb, MYSQL and diffrent web technology, comfortable with developing server-side and client-side architectures. Proficient in finding creative solutions to construct user-friendly applications. excels at communicating between teams and business partners to push outcomes forward. known among peers for a positive attitude and a strong focus on details. experienced with agile methodologies.
Languages : Javascript, java, HTML5,CSS3
Technologies and Frameworks :React.Js, ExpressJs, Node.JS ES6, Angular 8, TypeScript, MYSQL, MongoDb, RESTful APIs, NPM
Applications : Jira,VBA, VsCode, Git, Heroku
View ResumeA portfolio website that gives you the power to communicate your work visually and professionally.Features include an about me page, connect with me, current works .
A simple weather forecast app which gives the weather information in real time. This weather app is created with technology like ReactJs. For the weather forecast it uses a weather Api called 'Openweathermap'.A user can enter his/her location to find their weather information.
A dummy landing page for Clipboard which helps us to save, organize, and access all our clipboard. Our Mac and iOS apps will help you organize everything.


Hai Dam
DevOps Manager/Head of SREs
<EMAIL_ADDRESS>Call me at +84-936-211001
https://me.haidv.tech
References: Luis Reyes - Enterprise Architecture & DevOps
Tel:<PHONE_NUMBER>
Skills
- System Architect
- Design system & infrastructure to suite engineering & business requirement.
- DevOps
- Implement CI/CD pipline, Infrastructure as code with terraform, chatops, gitops, …
- SRE
- Develop & maintain monitoring services.
Stack
- Kubernetes
- AWS/GCP/Azure/OpenStack
- CI/CD & GitOps toolset
- Python
- Golang
- Shell
- VoIP
- Unix
Certifications
- Certified Kubernetes Administrator (CKA)
- Certified Kubernetes Application Developer (CKAD)
- Certified Kubernetes Security Specialist (CKS)
- Certified SAFe® 5 Practitioner
- AWS Solution Architect Professional
- AWS Solution Architect Associate
- LPIC-2
- CCNA
- MCITP
- Genesys Certified Professional Support
- Getting started with AI on Jetson Nano
Experience
- Belle Torus AI - Hanoi, Vietnam
-
Head of SREs
- Aug 2021 - Present
Accountable for the SRE, DevOps, Infrastructure engineering functions within BelleTorus. These teams are responsible:
- The security and observability of the BelleTorus infrastructure and the applications that are part of the platform
- Providing a stable, maintainable, and secure deployment of our applications
- All aspects of deployment of our applications, veto rights on things that negatively affect our ability to deploy scalably and securely
- Deliver and maintain solid, production-ready service for any product BelleTorus builds e.g. microservices, DBs, App servers, DevOps tools
- VNDirect Securities Corporation - Hanoi, Vietnam
-
DevOps Manager
- Aug 2021 - Aug 2022
- Manage a team of DevOps professionals working to deliver production uptime, provide stable internal infrastructure, and facilitate the rapid iteration and release of features to production.
- Fortna Inc - Hanoi, Vietnam
-
Senior DevOps Engineer
- Oct 2020 - Oct 2021
- Support the Software Development team’s hardware and operational needs to support rapid delivery.
- Implement CI/CD pipelines to automate configuring, provisioning, packaging, testing, and deployment;
- Configure and deploy GUI front-end visualizations of builds, deployments, tests, telemetry, alerting, errors/logs, and health status;
- Standardize the processes for managing, maintaining, and securing ad-hoc Linux-based environments to ensure consistent and timely setup, configuration, and availability;
- Draft and maintain detailed, up-to-date technical documentation and user guides;
- Linagora - Hanoi, Vietnam
-
Senior DevOps Engineer
- Feb 2020 - Oct 2020
- Maintain & Operate an OpenPaas system on OVH
- Develop a framework based on Terraform, Ansible, Helm to allow cluster creation.
- Write several tools for internal usage & cluster management.
- Tomochain - Hanoi, Vietnam
-
Senior DevOps Engineer
- Nov 2018 - Jan 2020
- Deploy & maintain application server, decentralized system in blockchains.
- Develop DevOps software from design specifications
- Perform code reviews, code refactors.
- Planning, implement and document unit/functional/intergration tests.
- Netcompany - Hanoi, Vietnam
-
Senior DevOps Engineer
- Feb 2018 – Nov 2018
- Design, implement and administer DevOps solution for .Net/Java/JS Family/React Native builds using Jenkins/Bitrise.io/Fastlane/CircleCI.
- Developed automation and deployment utilities using Bash, Python.
- Co-Well - Hanoi, Vietnam
-
DevOps Engineer & AWS Architect
- Apr 2017 – Feb 2018
- Integrating AWS services with CI/CD tools (CircleCI, Ansible, Chef, Puppet, Salt,TravisCI, Vagrant…)
- Developing with RESTful API interfaces.
- Monitoring infrastructure with Zabbix, Prometheus, and Grafana
- Programming with AWS APIs (Python, Nodejs), Infrastructure as Code with Terraform.
- General troubleshooting and debugging
- IC&D Cooperation - Hanoi, Vietnam
-
System Administrator Leader & Infrastructure Manager
- April 2016 – Apr 2017
- System Administrator Leader: install, implement and operator centralized contact centers over the IP medium (Elastix Asterisk)
- Infrastructure Manager:
- Design and execute short plus long term strategic plans to assure infrastructure capacity attains current and future needs.
- Develop, execute and oversee procedures, policies and related training plans for project management and infrastructure administration..
- Manage and establish priorities for maintenance, design, development and analysis of entire infrastructure systems.
- Test server performance plus provide network presentation statistics. Report and prepare strategies to maintain server infrastructure.
- Advanced Network System Vietnam - VNPT Technology - Hanoi, Vietnam
-
System Integration Engineer
- Feb 2011 – Apr 2016
- Install and implement centralized contact centers over the IP medium (Genesys Platform), TV over IP system with Vinaphone, Mobifone.
- Writing presale system plan; Demonstrate and explain bidding plan, preparing the tender documents and answer questions from onsite customers.
- Onsite support, including break-fix support, preplanned maintenance, machine and parts replacements, installations, moves and equipment changes.
- Monitoring and resolve incidents, support and resolution of VAS, IT and network systems on a 24x7 basis and fine-tuning of the system, backup data, logs, CDR file.
- Java web programming with Genesys tools.
Technical Review Book for PACKT Publishing
- Hands-On Continuous Integration and Delivery
- Effective DevOps with AWS, Second Edition
- Mastering DevOps Automation
- Mastering Jenkins, Second Edition
Education
Vietnam National University - Hanoi University of Engineering and Technology (UET)
- Master of Data Communication & Computer Network
- Information Technology
- 2016 – 2019
- The program is based on the academic system (curriculum, syllabi, homework, examinations…) delivered in English.
University of Transportation and Communication (UTC)
- Bachelor of Data Communication & Computer Network
- Information Technology
- 2007 – 2011
- The program is based on the academic system (curriculum, syllabi, homework, examinations…) delivered in English.