Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface. -Doug McIlroy, Inventor of Unix pipe
This post illustrates some of the ideas behind the Unix philosophy by composing utilities together to convert Markdown to HTML. I chose Ruby because it's a language I'm familiar with, but also to show that shell scripting does not require bash. The main idea is to write small filter scripts that can be composed together with pipes to create flexible tools.
Typically, Ruby files end with a .rb
extension and are executed by invoking
the Ruby interpreter explicitly. But instead typing out ruby markdown.rb
each
time, we can use a shebang at
the top of our script to indicate which language and interpreter to use.
#/usr/bin/env ruby
# This first line allows us to name our script `markdown` without the .rb extension
To skip invoking ruby
explicitly, use a terminal to change the permission of
our script to make it executable:
$ chmod +x markdown
$ ./markdown # no output and no errors
For the first iteration, our script will take a single argument -- a filename of
a markdown document to convert to html. Command line arguments are available
through an Array named ARGV
.
#/usr/bin/env ruby
markdown_file = ARGV.first # ARGV is ['foo.md']
puts markdown_file
If we run our script, we see that ARGV is whatever arguments we pass in:
$ ./markdown foo.md
foo.md
Other languages sometimes provide a convenience method named ARGC
to indicate
the number of command line arguments ((ARG)ument (C)ount) , but since ARGV
is
an array, it's easy to grab the number of arguments by calling ARGV.length
.
For a simple script like ours, it's sufficient to work with ARGV directly. If
there are complex options and flags to parse, the standard library's optparse
module is a good starting point. This
gist is a template and an example
for parsing conventional POSIX style flags.
We have a markdown filename. The next step is to convert it to HTML. There are many gems that will accomplish this, but for the sake of the exercise, we don't install any gems. Instead, we can use GitHub's markdown API with curl. For example:
$ echo '{"text": "# header"}' | curl -s -H 'Content-Type: text/plain' https://api.github.com/markdown -d'@-'
The first half of the pipeline uses echo
to print a JSON snippet to stdout. We
pipe this output to curl
. The last argument -d'@-'
is how we send the stdin
data to GitHub. From curl
's man page:
-d, --data If you start the data with the letter @, the rest should be a file name to read the data from, or - if you want curl to read the data from stdin.
-s
makes curl
's output less noisy, and -H
lets us pass in custom HTTP
headers required by the API.
Our script's immediate goal is to produce JSON similar to the echo
command in
our example above. Again, we do not need an external library because json
is
available through the standard library:
#/usr/bin/env ruby
require "json"
markdown_file = ARGV.first
payload = { :text => File.read(markdown_file) }.to_json
puts payload
We can test this works as expected by executing:
$ echo "# header" > foo.md
$ ./markdown foo.md | curl -s -H 'Content-Type: text/plain' https://api.github.com/markdown -d'@-'

header

With our prepared JSON payload, our next step is to handle the pipe within our
script. Ruby's IO.pipe
is a general way of creating a connected read and write
pipes, but for our purposes, we're interested in the higher abstraction of the
open3
module:
#/usr/bin/env ruby
require "json"
require "open3"
markdown_file = ARGV.first
payload = { :text => File.read(markdown_file) }.to_json
curl_cmd = %Q(curl -s -H 'Content-Type: text/plain' https://api.github.com/markdown -d'@-')
# `stdin`, `stdout`, `stderr` are the respective file handlers for the curl command
stdin, stdout, stderr = Open3.popen3(curl_cmd)
# Take the json we built and give it to curl via it's stdin. We have to
# explicitly close it's stdin before we can access it's stdout. Otherwise, curl
# will keep waiting for more input.
stdin.puts payload
stdin.close
# Print out curl's output to stdout and stderr
puts stdout.read
$stderr.puts stderr.read
Let's try it out:
$ echo "# header" > foo.md
$ ./markdown foo.md

header

In our last example, we had to create a markdown file because our script expects a filename as an argument. The great thing about most Unix utilities is they default to operating on stdin and stdout. This makes it easy to chain commands together so that the stdout of one command flows into the stdin of the next. For example, both of the following commands will print the number of lines in a file:
# count the number of lines for a given filename
$ wc -l README.md
# print out the file, then count the number of the lines on stdin
$ cat README.md | wc -l
We can improve our markdown script with this behavior; Convert a file if a file name is given, or convert whatever is passed in via stdin if there are no arguments.
#/usr/bin/env ruby
require "json"
markdown_file = ARGV.first
markdown_content = markdown_file ? File.read(markdown_file) : $stdin.read
payload = { :text => markdown_content }.to_json
# snip
We can simplify this code further by using Ruby's ARGF
object. From the
docs:
ARGF is a stream designed for use in scripts that process files given as command-line arguments or passed in via STDIN.
The same code rewritten with ARGF
would look like:
#/usr/bin/env ruby
require "json"
markdown_content = ARGF.read
payload = { :text => markdown_content }.to_json
# snip
As an added bonus, ARGF
works on multiple filenames, allowing our script to
process multiple files at once:
# ARGF.read will read in all 3 files
$ ./markdown foo.md bar.md baz.md
The complement to processing stdin by default is to keep stdout on topic. Stdout
should be reserved only for the intent of the original script. In our script,
the only output should be HTML because the script is used to convert markdown to
HTML. We avoid logging diagnostic messages or printing progress counters unless
we decide to add flags to our script that support these features. This allows us
to easily chain more commands after our own script. For example, if we want to
indent the output from our command, we can use the tidy
command and know that
everything we output is HTML:
$ ./markdown.sh foo.md | tidy -i
Script exit codes allow us to control the flow of our pipelines. For example, we
may want to publish the results of running markdown
, but only if the command
succeeded:
# Generate blog-post.html. If successful, run `./publish`, otherwise, print an error message
cat blog-post.md \
| ./markdown > blog-post.html && ./publish || echo "failed to publish blog-post.html"
A successful exit is 0
, with any other number indicating something went wrong.
Unfortunately, if we ran the above, we would always publish and never see the
error message even if curl failed. Our script doesn't call exit
explicitly, so
we always exit 0
-- even when GitHub's API isn't accessible.
Since the last thing our script run is curl
, our script should exit with
curl
's exit code. Our current call to Open3.popen3
saves three of the return
values, but the method actually returns four. We will use this fourth value to
query for curl
's exit code.
# snip
# We add a -f flag so that non-200 responses fail with an exit code of 22
curl_cmd = %Q(curl -f -s -H 'Content-Type: text/plain' https://api.github.com/markdown -d'@-')
# `stdin`, `stdout`, `stderr` are the respective file handlers for the curl command
# `thread` is a `Thread` instance representing the command we're running
stdin, stdout, stderr, thread = Open3.popen3(curl_cmd)
# snip
# thread.value is a `Process::Status`. We exit our script with whatever curl's
# exit code was.
exit thread.value.exitstatus
By following these simple conventions, our scripts work well with other existing Unix tools. This allows us to quickly prototype things that would otherwise require a lot of setup and dependencies. Since the scripts aim to handle a single task, we are more likely to reuse the script for tasks that we didn't original intend for the script to handle.
Our final source listing is:
#/usr/bin/env ruby
require "json"
require "open3"
markdown_file = ARGV.first
payload = { :text => File.read(markdown_file) }.to_json
# Curl command to post STDIN to GitHub's markdown API
#
# -f: non-200 responses fail with an exit code of 22
# -s: silent
# -H: http headers
curl_cmd = %Q(curl -f -s -H 'Content-Type: text/plain' https://api.github.com/markdown -d'@-')
# `stdin`, `stdout`, `stderr` are the respective file handlers for the curl command
# `thread` is a `Thread` instance representing the command we're running
stdin, stdout, stderr, thread = Open3.popen3(curl_cmd)
# Take the json we built and give it to curl via it's stdin. We have to
# explicitly close it's stdin before we can access it's stdout. Otherwise, curl
# will keep waiting for more input.
stdin.puts payload
stdin.close
# Print out curl's output to stdout and stderr
puts stdout.read
$stderr.puts stderr.read
# thread.value is a `Process::Status`. We exit our script with whatever curl's
# exit code was.
exit thread.value.exitstatus
I use this to generate the markup for this blog. The full source is available at jch/jsg.


API Documentation
Welcome to the API documentation page. The content you are seeing below is included dynamically.
Don't have an API Key yet? Click here to get one.
Get Subscribers
To retrieve a list of subscribers you must have the following information available.
Data to send in your request:
| Fields | Description | Required |
|---|---|---|
| API Key | Your API Key. | Yes |
| Account ID | Your Account ID. | Yes |
Data you will receive in the response:
| Fields | Description | Type |
|---|---|---|
| Course ID | The Course ID. | Integer |
Did it work?
Everything you see above was dynamically included.


{% extends "mails/messages/participant_base.html" %} {% load i18n %} {% block message %}
{% blocktrans context 'email' %} You joined an activity on {{ site_name }}! {% endblocktrans %}
{{ title }}
{% if duration %} {% include 'mails/messages/partial/period.html' %} {% elif slots %} {% include 'mails/messages/partial/slots.html' %} {% endif %} {% endblock %} {% block end_message %}{% blocktrans context 'email' %} If you are unable to participate, please withdraw via the activity page so that others can take your place. {% endblocktrans %}
{% endblock %}


--- layout: page title: "About" description: "This is what I do." header-img: "img/about-bg.jpg" ---
Hello Everyone. I am R S Devi Prasad. I am a programmer and an aspiring full stack web developer. I code whenever I find time and whenever I feel like. . .
Currently I am an intern at a company named Mindfire Solutions. I am almost done with my Master in Computer Application(M.C.A).
I have working level proficiency in HTML5, CSS3, JavaScript, jQuery, PHP, MySQL. I am also undergoing the training of FileMaker Database(an Apple subsidiary).I am also trying to learn frameworks such as Laravel and CodeIgniter. As a hobby, I try to participate in online programming competitions whenever I am free from work.


[§346-177] Program of incentive for registration. Subject to the limits of legislative appropriations, the department may establish a program to encourage the registration of persons who provide care in private homes in violation of section 346-171. The program may include:
(1) Training of providers of care;
(2) Assistance to applicants in obtaining registration and complying with the minimum requirements;
(3) Counseling in providing quality care;
(4) Referrals of parents to providers;
(5) Assistance in obtaining benefits under or participation in federal and state child care programs; and
(6) Assistance in complying with business and tax regulations and requirements. [L 1985, c 208, pt of §2]


Posted by vincent on October 30, 2018
Posted by vincent on October 24, 2018
Posted by vincent on August 25, 2018
Posted by vincent on March 8, 2018
Posted by vincent on September 19, 2017
Posted by vincent on August 26, 2017
Posted by vincent on August 9, 2017
Posted by vincent on March 31, 2017
Posted by vincent on March 28, 2017
逗逼程序猿，白羊座，拖延症。
:D 获取中...


Watch Live: SAA Briefs Media On Strike
by NT EditorSAA is briefing the media on the strike by workers affiliated to Numsa and the SA Cabin Crew Association.
SAA is briefing the media on the strike by workers affiliated to Numsa and the SA Cabin Crew Association.


{%extends 'base.html'%} {%block content%}
Hood: {{hood.hood_name}}
Location: {{hood.location}}
Occupants: {{hood.user.join.hood_id.id}}


Battleboat.js
Try Again
Restart Game
Start Game
Place Randomly and Start
Your Fleet
Please enable JavaScript to play this game
Enemy Fleet
Please enable JavaScript to play this game


This page is the most important index page in the world. You must see that we have
here
something special. Without that, "
" would ave been a dull chapter. Nor is
:title
allowed in normal case, or in
:title-lower


* managed groups are in bold
| Pic | Name | Emails | Number | Groups | Action |
|---|---|---|---|---|---|
|
|
{{ name.displayNameLastFirst}} |
{{ email.value}}
|
{{ phoneNumber.value }}
|
{{ getGroupName(membership.contactGroupMembership.contactGroupResourceName) }} {{ getGroupName(membership.contactGroupMembership.contactGroupResourceName) }} |


Templates, Data Binding
- Template's repeat attribute
- Data binding in inputs will update model
- Using third party library (i.e. underscore.js) (not sure if this is a good approach)
- Q: Seems to be globally scoped. Ok?
- Event target.templateInstance.model.
Customer List
Add a new customer called "{{newCustomer}}" by clicking on the button.


The SchemaValidatorFilter class will modify the incoming event stream by validating it against the schema definitions found in the DynamicContext's DocumentCache. More...
#include <SchemaValidatorFilter.hpp>
Public Member Functions | |
| SchemaValidatorFilter (bool strictValidation, EventHandler *next, xercesc::GrammarResolver *grammarResolver, xercesc::MemoryManager *mm, const LocationInfo *info) | |
| virtual | ~SchemaValidatorFilter () |
| void | reset () |
| virtual void | startDocumentEvent (const XMLCh *documentURI, const XMLCh *encoding) |
| Handles a document node as an event. | |
| virtual void | endDocumentEvent () |
| Handles a document node as an event. | |
| virtual void | startElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) |
| Handles the start of an element node as an event. | |
| virtual void | endElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) |
| Handles the end of an element node as an event. | |
| virtual void | piEvent (const XMLCh *target, const XMLCh *value) |
| Handles a processing instruction node as an event. | |
| virtual void | textEvent (const XMLCh *value) |
| Handles a text node as an event. | |
| virtual void | textEvent (const XMLCh *chars, unsigned int length) |
| Handles a text node as an event. | |
| virtual void | commentEvent (const XMLCh *value) |
| Handles a comment node as an event. | |
| virtual void | attributeEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) |
| Handles an attribute node as an event. | |
| virtual void | namespaceEvent (const XMLCh *prefix, const XMLCh *uri) |
| Handles a namespace binding as an event. |
The SchemaValidatorFilter class will modify the incoming event stream by validating it against the schema definitions found in the DynamicContext's DocumentCache.
It will add typing information, as well as default values and attributes, and will normalize values according to the schema normalization rules.
| SchemaValidatorFilter::SchemaValidatorFilter | ( | bool | strictValidation, | |
| EventHandler * | next, | |||
| xercesc::GrammarResolver * | grammarResolver, | |||
| xercesc::MemoryManager * | mm, | |||
| const LocationInfo * | info | |||
| ) |
| virtual SchemaValidatorFilter::~SchemaValidatorFilter | ( | ) | [virtual] |
| virtual void SchemaValidatorFilter::attributeEvent | ( | const XMLCh * | prefix, | |
| const XMLCh * | uri, | |||
| const XMLCh * | localname, | |||
| const XMLCh * | value, | |||
| const XMLCh * | typeURI, | |||
| const XMLCh * | typeName | |||
| ) | [virtual] |
Handles an attribute node as an event.
Reimplemented from EventFilter.
| virtual void SchemaValidatorFilter::commentEvent | ( | const XMLCh * | value | ) | [virtual] |
Handles a comment node as an event.
Reimplemented from EventFilter.
| virtual void SchemaValidatorFilter::endDocumentEvent | ( | ) | [virtual] |
Handles a document node as an event.
Reimplemented from EventFilter.
| virtual void SchemaValidatorFilter::endElementEvent | ( | const XMLCh * | prefix, | |
| const XMLCh * | uri, | |||
| const XMLCh * | localname, | |||
| const XMLCh * | typeURI, | |||
| const XMLCh * | typeName | |||
| ) | [virtual] |
Handles the end of an element node as an event.
Reimplemented from EventFilter.
| virtual void SchemaValidatorFilter::namespaceEvent | ( | const XMLCh * | prefix, | |
| const XMLCh * | uri | |||
| ) | [virtual] |
Handles a namespace binding as an event.
Reimplemented from EventFilter.
| virtual void SchemaValidatorFilter::piEvent | ( | const XMLCh * | target, | |
| const XMLCh * | value | |||
| ) | [virtual] |
Handles a processing instruction node as an event.
Reimplemented from EventFilter.
| void SchemaValidatorFilter::reset | ( | ) |
| virtual void SchemaValidatorFilter::startDocumentEvent | ( | const XMLCh * | documentURI, | |
| const XMLCh * | encoding | |||
| ) | [virtual] |
Handles a document node as an event.
Reimplemented from EventFilter.
| virtual void SchemaValidatorFilter::startElementEvent | ( | const XMLCh * | prefix, | |
| const XMLCh * | uri, | |||
| const XMLCh * | localname | |||
| ) | [virtual] |
Handles the start of an element node as an event.
Reimplemented from EventFilter.
| virtual void SchemaValidatorFilter::textEvent | ( | const XMLCh * | chars, | |
| unsigned int | length | |||
| ) | [virtual] |
Handles a text node as an event.
Reimplemented from EventFilter.
| virtual void SchemaValidatorFilter::textEvent | ( | const XMLCh * | value | ) | [virtual] |
Handles a text node as an event.
Reimplemented from EventFilter.


Home
A - Z of Services
Pay for it
Report it
Give us feedback on
What's on
Customer Services
Content Here!


Clintons in survival talks over shop closures and rent cuts
Greetings card chain Clintons is considering shop closures and rent cuts as part of a survival plan.
The retailer, which has about 2,500 staff, is in restructuring talks with landlords in another sign of the High Street crisis.
A spokeswoman told the BBC no decisions have yet been made.
Clintons was responding to reports on Sunday that it wanted to close 66 out of 332 shops, with landlords slashing rents on most of the other stores.
The restructuring would involve a controversial scheme known as a company voluntary arrangement (CVA), an insolvency process that allows companies to continue trading while pushing through closures and rent cuts.
A Clintons spokeswoman said "discussions are continuing with our landlords but no decisions have been made".
But she declined to comment on a Sunday Telegraph report that the company told landlords 90 of its shops were loss-making and that sales were expected to continue to decline.
Potential sale
One landlord told the BBC that although there was a meeting with Clintons last week, very few details of the restructuring plan were given. More talks are expected this week.
The Sunday Times said landlords would have until 20 December to air their objections to a CVA. However, landlords have taken an increasingly tough stance on the growing use of CVAs and are more prepared to fight demands for rent cuts.
The retailer, formed in 1968, is owned by the Weiss family, which previously controlled the American Greetings retail chain in the US.
Clintons, previously known as Clinton Cards, had appointed advisers from consultancy KPMG to explore a potential sale, but it is thought no acceptable offers were received.
News of Clintons' restructuring comes days after baby goods retailer Mothercare announced its UK operation was going into administration, putting 2,500 jobs at risk.
Mothercare is part of a long list of High Street names to go under, including Maplin and Poundworld. Others, including Homebase, Debenhams and Carpetright, have been forced into restructuring.
A string of restaurant chains have also closed amid a squeeze on consumer spending.
Retail experts expect more pain, however, as firms approach the make-or-break Christmas trading period. It is common for banks to wait until they have a clearer picture of Christmas and New Year sales before pulling the plug on retailers.


Top Left
Bus Mall appreciates your feedback! Please take a moment to provide us some feedback
Set of three random product images will appear below. Please click on one of the three.
After 25 product clicks, you will be presented with a 'View Results' button to see results


Generates calibration plates with multiple cure times. It helps to find out the best cure time for any type of resin in one go.
You can define cure times and let the program generate multiple pillars with different cure times.
Printing process for calibration plates are different from normal plates, so do not panic if you see fast image switching during the printing process.


Basic Drush
// Download a module or theme
drush dl cck
// Enable module or theme
drush en cck
// clear cache all, don't need sudo
drush cc all
// Get help message on command
drush help pm-update
// List site aliases
drush sa
// Get status on particular site, via site-alias
drush @math status
Advanced Drush
Using Drush to sync a remote server
Sync Dev Server with Staging Server
// drush core-rsync <source> <destination>
drush core-rsync @dev @stage
- see for full documentation:
http://drush.ws/#core-rsync
Download drushextras
drush dl drush_extras
Drush pushkey
This command creates a ssl public/private key in your home directory and copies the public key to a remote server. Subsequent drush commands will use this public/private key for authentication.
// okay substitute your username for "boris" and your server for "badinoff.com"
drush pushkey<EMAIL_ADDRESS>Drush Git Backup
Install DGB
cd <drush directory>/commands/
git clone https://github.com/scor/dgb.git
Setup DGB for a site
# from DRUPAL_ROOT
# cd up one directory
cd ..
# create directory for backed up database
mkdir databases
# initialize a git repository
git init
Back up Site
cd <DRUPAL_ROOT>
drush dgb-backup
What is in DGB Archive
The DGB instance directory is the directory up from your DRUPALROOT.
each site’s db dump is in databases/
Database dump for default is in databases/default.sql
There is a Git repository of your site’s files
# from DRUPAL_ROOT cd into the DGB instance directory
cd ..
# see list of git commits
git log
# see what files have changed since last call to drush dgb-backup
git status
Clone the Site for development
# from DRUPAL_ROOT
cd ../..
# create a dev directory parallel to other site
mkdir dev
cd dev
git clone <path to dgb instance>
# create a new branch called "my-dev-branch"
git branch my-dev-branch
# checkout the new dev branch
git checkout my-dev-branch
# now create a new database with the database dump
# change <dbuser>, <dbpasswd>, <devdbname> and <path-to-dgb-instance>
# and also the substitute default.sql for the name of your databasedump
mysql -u <dbuser> -p <dbpasswd> <devdbname> < <path-to-dgb-instance>/databases/default.sql
# now finally update settings.php to point to your dev database
vim sites/default/settings.php
# finally check that there is an .htaccess file in your new dev
# <DRUPAL_ROOT> if not, copy it over from the cloned siteF
Another Way to Copy @live to @dev
# Core-rsync copies all of the files from one site instance to another.
# The first time you sync you can use --include-conf option to copy settings.php.
drush core-rsync @live @dev --include-conf
# Next change database settings to use @dev database.
vi <document-root>/sites/default/settings.php
# After first sync use w/out --include-conf and it will preserve the existing settings.php.
drush core-rsync @live @dev
# Sync databases.
drush sql-sync @live @dev
Database dump for default is in databases/default.sql
There is a Git repository of your site’s files
# from DRUPAL_ROOT cd into the DGB instance directory
cd ..
# see list of git commits
git log
# see what files have changed since last call to drush dgb-backup
git status
Clone the Site for development
# from DRUPAL_ROOT
cd ../..
# create a dev directory parallel to other site
mkdir dev
cd dev
git clone <path to dgb instance>
# create a new branch called "my-dev-branch"
git branch my-dev-branch
# checkout the new dev branch
git checkout my-dev-branch
# now create a new database with the database dump
# change <dbuser>, <dbpasswd>, <devdbname> and <path-to-dgb-instance>
# and also the substitute default.sql for the name of your databasedump
mysql -u <dbuser> -p <dbpasswd> <devdbname> < <path-to-dgb-instance>/databases/default.sql
# now finally update settings.php to point to your dev database
vim sites/default/settings.php
# finally check that there is an .htaccess file in your new dev
# <DRUPAL_ROOT> if not, copy it over from the cloned siteF
Another Way to Copy @live to @dev
# Core-rsync copies all of the files from one site instance to another.
# The first time you sync you can use --include-conf option to copy settings.php.
drush core-rsync @live @dev --include-conf
# Next change database settings to use @dev database.
vi <document-root>/sites/default/settings.php
# After first sync use w/out --include-conf and it will preserve the existing settings.php.
drush core-rsync @live @dev
# Sync databases.
drush sql-sync @live @dev


| < Day Day Up > |
In this chapter, we introduce another sorting algorithm. Like merge sort, but unlike insertion sort, heapsort's running time is O(n lg n). Like insertion sort, but unlike merge sort, heapsort sorts in place: only a constant number of array elements are stored outside the input array at any time. Thus, heapsort combines the better attributes of the two sorting algorithms we have already discussed.
Heapsort also introduces another algorithm design technique: the use of a data structure, in this case one we call a "heap," to manage information during the execution of the algorithm. Not only is the heap data structure useful for heapsort, but it also makes an efficient priority queue. The heap data structure will reappear in algorithms in later chapters.
We note that the term "heap" was originally coined in the context of heapsort, but it has since come to refer to "garbage-collected storage," such as the programming languages Lisp and Java provide. Our heap data structure is not garbage-collected storage, and whenever we refer to heaps in this book, we shall mean the structure defined in this chapter.
| < Day Day Up > |


This sample uses ffmpeg / fluent-ffmpeg and automatically converts audio files that are uploaded to Cloud Storage to FLAC file format with mono-channel audio @ 16000hz.
See file functions/index.js for the audio conversion code.
The audio conversion is performed using ffmpeg. The audio is first
downloaded locally from the Cloud Storage bucket to the
tmp
folder using the
google-cloud
SDK.
The dependencies are listed in functions/package.json.
The function triggers on upload of any file to your Firebase project’s default Cloud Storage bucket.
To deploy and test the sample:
git clone https://github.com/firebase/functions-samples
cd functions-samples/ffmpeg-convert-audio
firebase use --add
and select your Firebase project
firebase deploy
_output.flac
suffix will be created in the same folder
(make sure you refresh the UI to see the new file).


Where the GWT world stops and the GIN/Guice world begins.
Analogous to Guice's
Injector
, this type can be used to bootstrap injection. Unlike
Guice, however, this is not a type that you create, but rather a type that you extend. It's
best explained with an example. Consider this Guice code:
// Define and create a Module
Module applicationModule = ...;
// create an Injector
Injector injector = Guice.createInjector(applicationModule);
// bootstrap the injection
injector.getInstance(Application.class);
Here's the equivalent GIN code:
// Define a GinModule (e.g. ApplicationModule) but don't create it.
// create a Ginjector
ApplicationGinjector ginjector = GWT.create(ApplicationGinjector.class);
// bootstrap the injection
RootPanel.get().add(ginjector.getApplication());
(somewhere else...)
// define a Ginjector subtype
@
GinModules(ApplicationModule.class)
public interface ApplicationGinjector extends Ginjector {
Application getApplication();
}
Note that this is not named "G-injector" -- its "GIN-jector."


Answers in this round:
INTEL MOTHERBOARD LEWIS CARROLL SECOND GRAND ALLIANCE YOSHIMITSU PANASONIC Q
The name of a fictional character can be found as a substring of each of the answers (this is slightly hinted at by the word “characters” in the flavortext). Each of the characters is notably non-human and is a monster of some sort.
| Answer | Character | Source |
|---|---|---|
| INTEL MOTHERBOARD | ELMO | Sesame Street |
| LEWIS CARROLL | SCAR | The Lion King |
| SECOND GRAND ALLIANCE | RANDALL | Monster’s Inc. |
| YOSHIMITSU | YOSHI | Mario video games |
| PANASONIC Q | SONIC | Sonic the Hedgehog video games |
Each of these characters also has a distinctive color, and it turns out that these 5 colors exactly match those of the villainous Monstars in the classic basketball film Space Jam. The Space Jam aha is also mildly hinted at by the jersey designs, which are from the 90s (specifically the 1993–94 season). In the film, each of the Monstars steals the talent of a different NBA player, and those 5 players belong to the teams on the given jerseys.
| Character | Color | Monstar | NBA Player | Team | Jersey Number |
|---|---|---|---|---|---|
| Elmo | Red | Nawt | Muggsy Bogues | Charlotte Hornets | 1 |
| Scar | Orange | Pound | Charles Barkley | Phoenix Suns | 34 |
| Randall | Purple | Bupkus | Larry Johnson | Charlotte Hornets | 2 |
| Yoshi | Green | Bang | Patrick Ewing | New York Knicks | 33 |
| Sonic | Blue | Blanko | Shawn Bradley | Philadelphia 76ers | 76 |
This lets us match up the jerseys in the puzzle to NBA players, with one caveat: there are two Hornets players, and two of the four Hornets jerseys in the puzzle are smaller, so those two should correspond to Muggsy Bogues, who is notably the shortest player to ever play in the NBA.
For extraction, we find the value of X on each jersey so that the number matches the player’s actual jersey number. We use the jersey numbers seen in the film, or equivalently, in the 1993–94 season. Indexing these values of X into their corresponding answers gives the solution SQUARE BALL (not to be confused with air ball, a more normal reason for missed shots).
| Team on jersey | Expression on jersey | Actual jersey number | X | Corresponding answer | Indexed letter |
|---|---|---|---|---|---|
| New York Knicks | X+30 | 33 | 3 | YOSHIMITSU | S |
| Philadelphia 76ers | X+66 | 76 | 10 | PANASONIC Q | Q |
| New York Knicks | X+23 | 33 | 10 | YOSHIMITSU | U |
| Charlotte Hornets | X-7 | 2 | 9 | SECOND GRAND ALLIANCE | A |
| Phoenix Suns | X+26 | 34 | 8 | LEWIS CARROLL | R |
| Charlotte Hornets (small) | X-3 | 1 | 4 | INTEL MOTHERBOARD | E |
| Charlotte Hornets (small) | X-11 | 1 | 12 | INTEL MOTHERBOARD | B |
| Philadelphia 76ers | X+74 | 76 | 2 | PANASONIC Q | A |
| Phoenix Suns | X+23 | 34 | 11 | LEWIS CARROLL | L |
| Charlotte Hornets | X-11 | 2 | 13 | SECOND GRAND ALLIANCE | L |


{% extends 'layout.html' %} {% block content %}
Welcome to your Profile page where your rating preferences are displayed. Here you can browse through the films you have previously rated and update their scores if you wish. Enjoy!
...Psst! Is your table empty? You probably have not rated anything yet! Check out the Browse page and start rating some films!
| Movie Title | Current Rating | Edit |
|---|---|---|
| {{rating.movie.title}} | {{rating.score}} |


Yes, if you make it look like an electrical fire. When you do things right, people won't be sure you've done anything at all. I was having the most wonderful dream. Except you were there, and you were there, and you were there! No argument here. Goodbye, cruel world. Goodbye, cruel lamp.  Cruel though they may be.

That's so cute. Can we have Bender Burgers again? Is the Space Pope reptilian!? I wish! It's a nickel. Bender! Ship! Stop bickering or I'm going to come back there and change your opinions manually!
Example: Okay, I like a challenge. Is that a cooking show? No argument here.
As I have explained in my book 'Earth in the Balance', and the much more popular 'Harry Potter and the Balance of Earth', we need to defend our planet against pollution. Also dark wizards. Fry, you can't just sit here in the dark listening to classical music.
Example: Actually, that's still true. Well, let's just dump it in the sewer and say we delivered it.
Morbo can't understand his teleprompter because he forgot how you say that letter that's shaped like a man wearing a hat. Also Zoidberg. Can we have Bender Burgers again? Goodbye, cruel world. Goodbye, cruel lamp.
Example: Cruel though they may be...


This demo application shows Cross-Site Scripting (XSS) with JavaServer Faces (JSF). The first block of links enables normal usage of the demo application (like a normal user). The second block contains attack possibilities with XSS.


Welcome, this is a page for all of my visual designs for the HackerEarth hackathon.
Child Abuse Hackathon:
This was a hackathon where many people of different career backgrounds come together and solve a general problem using the
technology we have now. The topic of this hackathon was how we can help children deal with child abuse. My main idea was to
make a simluation based on the situation the child has gone through. But, when we could not find a programmer for the group
the group decided on a tablet that a child use while they are waiting for a first responder to arrive on the scene. The final
idea was to have a child friendly tablet that the child can play with and record information on the child's mood and their
mental state based on questions or the pulse of the child.


* If you want a badge on the SegmentItem then you add a badge object in the SegmentItem array. The description of the badge is used as aria-label. Note that badges are only applied when the mode is 'default'. See the interface for SegmentItem.
Note on size: For all modes, the touch area will always be a minimum of 44px by 44px. If chip/segment is smaller than this, the surrounding area will still be clickable, to preserve accessibility.


Library: Net
Package: HTTPServer
Header: Poco/Net/HTTPServerConnection.h
Description
This subclass of TCPServerConnection handles HTTP connections.
Inheritance
Direct Base Classes: TCPServerConnection
All Base Classes: TCPServerConnection, Poco::Runnable
Member Summary
Member Functions: onServerStopped, run, sendErrorResponse
Inherited Functions: run, socket, start
Constructors
HTTPServerConnection
HTTPServerConnection(
const StreamSocket & socket,
HTTPServerParams::Ptr pParams,
HTTPRequestHandlerFactory::Ptr pFactory
);
Creates the HTTPServerConnection.
Destructor
~HTTPServerConnection
virtual ~HTTPServerConnection();
Destroys the HTTPServerConnection.
Member Functions
run
void run();
Handles all HTTP requests coming in.
See also: Poco::Runnable::run()
onServerStopped
void onServerStopped(
const bool & abortCurrent
);
sendErrorResponse
void sendErrorResponse(
HTTPServerSession & session,
HTTPResponse::HTTPStatus status
);


Loading...
Timeline on the big day
6
Friday
October 2017
5-7am
Checkin and freshup
7-10am
Coffee & Breakfast
10am-12pm
Rest I/ Hangouts
12-2pm
Lunch
2-4pm
Rest II/ Hangouts
4-6pm
City Visit
Since city is small make your own arrangements. Directions will be provided
6:30-7pm
Fresh Up/Make Up Time
7-10pm
Reception followed by Dinner
10pm-11pm
Rest III/ Hangouts
11:52PM
Muhurtham Time
12:30am
End of Function
Time left for the
Day
0
DAYS
0
HOURS
0
MINUTES
0
SECONDS
FOR MUHURTHAM


VLSI Multiply and Accumulate Unit
EE330 Fall 2020
Role: Design, Testing, and Virtual Implementation
Skills and Software Involved
- VLSI layout with Cadence Virtuoso
- Digital Logic Implementation in Verilog
- Waveform testing and Synthesis in ModelSim
- AMI 06 process technology
Design of a calculator that instead of doing four basic operations has one complex operation. That operation being 4x4 matrix multiplication. There are 10 different inputs buttons for the numbers 0-9. Since Matrix multiplication can get larger faster, implementation was restricted to the inputs 0-99. Output size was calculated accordingly.
Memory size was implemented with NMOS and PMOS transistors on the AMI06 process, however for practical simulation reasons, I had to limit the amount of memory to below 300 registers for synthesis performance reasons.
This project is ongoing this semester, however it remains one of the most complex ones in my entire career as a Computer Engineering student. Drawing concepts from digital logic, mathematics to solve circuits with non-linear electrical components, as well as having to create a component that solves a somehwat open-ended problem.
Tensor Processing Unit on MIAOW GPU
CPRE482x Fall 2020
Role: Multiplier Implementation, TPU Design
Skills and Software Involved
- MIAOW GPU RTL implementation
- Digital Logic Implementation in VHDL
- Waveform testing in ModelSim
- Simulation on Vivado
- Implementation on Zedboard FPGA
This project is ongoing this semester, and is only partially finished. The following is a few excerpts from our project proposal report:
MIAOW is an open source GPU which provides a RTL implementation of a GPU written in Verilog. MIAOW already focuses on general computation rather than graphics, allowing it to specialize in high performance computing applications and research. In the context of neural networks, we can optimize the GPU architecture for our application by implementing Tensor Cores which are specifically designed to perform common neural network matrix operations.
Our goal would be to design, test, synthesize, and benchmark a MIAOW GPU implementation with these tensor cores on the ZED board FPGAs.
First, we need to research and test the MIAOW GPU RTL as-is. The MAC we designed in lab 3 can be reused and modified as the base that we design the general processing element around. However, MIAOW GPU is primarily written in Verilog, so we may have to re-write our MAC to work in verilog, or learn how to synthesize the components we wrote in VHDL.
Additionally MIAOW was developed using Synopsys VCS 2012, so we may have to look into porting the project to work with tool chains that we are more familiar with, such as Modelsim or Vivado.
Second, we need to implement the MAC unit within the compute units. It is possible that we may have to outright re-write the compute unit, or we could potentially replace the vector ALU with our own version optimized for tensors.
Lastly, we need to synthesize, debug synthesis, and benchmark it.
GPS Android Game: "Cyde and Seek"
COMS 309 Fall 2019
Role: Front End Team Leader
Skills and Software Involved
- Application written in Java
- Android Studio developer environment
- Springboot backend
- Google Maps API
- Scrum development framework
Our app uses the Java Spring framework for the backend and Android for the front end. The front end uses the Android Volley library to send and receive data in the form of JSON to the endpoints. The Android application also uses websockets to constantly update the location of the player using the device’s location. By using a mixture of both fine and coarse location, the backend is able to receive a rough idea of where the player actually is, even with a bad signal.
The goal of our application is for players to connect to a game, be able to play hide and seek together, and then close a game and review overall statistics for each player within the game. Players will have the ability to join or create a game. To join, the user will type the code that is generated when another user creates a game. This makes it easy for players to play games with their friends. The player that creates the game will receive the code for others to use to join the game. For our overall game, we are using Google Maps API to allow users to see their location, along with other players from the same group in the same game. We also have a leaderboard that displays a player’s all time stats and allows them to compare them with their friends and all other players.
Controller:The player’s location is updated on the server via websocket every couple of seconds. The websocket determines if any players are near each other and broadcasts this information to the affected players. The controllers and websocket validate the input and return errors as necessary (e.g. when something is missing or incorrect in a request).
View:Our application’s front-end is entirely based on an Android application, so we make use of two activities, one that makes up all of the menu elements, such as the login screen, the game creation screen, etc. The second activity is for playing the game itself. This contains the calls to the Google Maps API to display the Google Map with place markers and various shapes based on the information provided by the backend to show the location of other players, the game boundaries, etc.
User Interface Webapp Design: "Noted"
SE 319 Spring 2019
Role: Team Leader
Skills and Software Involved
- Vanilla HTML and Javascript for performance
- MaterialDesignLite
- MaterializeCSS
- Mapbox API
- LeafletJS
- SimpleMDE
- OpenStreetMap API
- OpenCage Geocoding API
- MarkedJS
Initially, we had planned on Noted being a better version of Google Keep. After looking at our time available, and the fact that we decided on this project before the COVID-19 pandemic, we had to pivot and scale down our project in many ways. What the project is now is a fully functional note taking web application.
What this project has that Google Keep doesn’t is “smarter cards”. These cards were the main focus of the project as we wanted notes/cards that had more functionality to them, like interactive maps, and better text formatting. What this project doesn’t have is stuff on the UX side like smooth card selection and moving, searching for notes, and note sorting.
For the most part, this project is a successful proof of concept that a note app can contextualize more complex data, without having to sacrifice performance. If it weren’t for the shorter timeframe, conflict with other large project classes, and the pandemic, what our team would’ve done differently is get a lot more done on the user experience side of things.
More attention to detail like how the notes stack and display on the page is something that Google Keep does exceedingly well, and it becomes obvious how difficult it is once you try to mimic it.


This sample shows the minumum code needed to define a new renderer that overrides connection shapes from the base renderer:
CustomNotchRenderer
'custom_notch'
CustomNotchProvider
. It contains all of the constants needed to size a block during rendering. NOTCH_WIDTH
: the width of previous and next connection notches.NOTCH_HEIGHT
: the height of previous and next connection notches.makeConstants_
to tell the custom renderer to use the custom constants provider.
makeNotch
function to return a rectangular notch shape for previous and next connections.
makePuzzleTab
function to return a rectangular tab for input and output connections.
makeNotch
and makePuzzleTab
are both called by the constants provider during initialization.
Next


Finally Crystal will start giving some memory back to the operating system! Today we managed to fit the Boehm-Demers-Weiser conservative garbage collector into the language.
Although we plan to implement a more appropriate and custom garbage collector in the future, it’s a really good starting point to make the language more robust and usable.
In order to make this collector work with Crystal we had to make sure all the allocated block pointers were properly aligned in memory. Unions and type hierarchies were using packed structs and that made some pointers “invisible” to the GC and thus many blocks still in use were being deallocated and consecuently making everything crash quite easily.
Some quick tests reflect the obvious benefits of freeing some memory. For example, samples/mandelbrot2.cr
used to require around 13MB of memory to run. Once the GC is enabled it uses just under 1MB.
There is still a long path to travel, but now with a working memory manager we might consider start dogfooding Crystal for some non production or critical tools in our everyday work.


| Package | org.as3commons.collections.framework.core |
| Class | public class AbstractSortedCollection |
| Implements | ISortOrder |
| Subclasses | AbstractSortedDuplicatesCollection, SortedSet |
This implementation is based on the treap data structure which is here modified to enable duplicate items wich includes multiple equal items.
| Property | Defined by | ||
|---|---|---|---|
| comparator : IComparator
Returns or sets the initial comparator of the collection.
| AbstractSortedCollection | ||
| first : * [read-only]
The first item or
undefined if the collection is empty. | AbstractSortedCollection | ||
| last : * [read-only]
The last item or
undefined if the collection is empty. | AbstractSortedCollection | ||
| size : uint [read-only]
The number of items contained by the collection.
| AbstractSortedCollection |
| Property | Defined by | ||
|---|---|---|---|
| _comparator : IComparator
The sort criterion.
| AbstractSortedCollection | ||
| _root : SortedNode
The root node.
| AbstractSortedCollection | ||
| _size : uint = 0
The size of the collection.
| AbstractSortedCollection |
| Method | Defined by | ||
|---|---|---|---|
|
AbstractSortedCollection(comparator:IComparator = null)
AbstractSortedCollection constructor.
| AbstractSortedCollection | ||
|
clear():Boolean
Removes all items from the collection.
| AbstractSortedCollection | ||
|
has(item:*):Boolean
Tests if an item is contained by the collection.
| AbstractSortedCollection | ||
|
hasEqual(item:*):Boolean
Tests if the collection contains an item that is equal to the given item.
| AbstractSortedCollection | ||
|
Returns an iterator over the iterable data structure.
| AbstractSortedCollection | ||
|
remove(item:*):Boolean
Removes an item from the collection.
| AbstractSortedCollection | ||
|
removeFirst():*
Removes the first item of the ordered collection.
| AbstractSortedCollection | ||
|
removeLast():*
Removes the last item of the ordered collection.
| AbstractSortedCollection | ||
|
toArray():Array
Returns an array of all items.
| AbstractSortedCollection |
| Method | Defined by | ||
|---|---|---|---|
|
addNode(newNode:SortedNode):void
Adds an item to the tree.
| AbstractSortedCollection | ||
|
firstEqualNode(item:*):SortedNode
Returns the first node whose item equals the given item.
| AbstractSortedCollection | ||
|
higherNode(item:*):SortedNode
Returns the first node whose item is higher than the given item.
| AbstractSortedCollection | ||
|
lesserNode(item:*):SortedNode
Returns the last node whose item is lesser than the given item.
| AbstractSortedCollection | ||
|
removeNode(node:SortedNode):void
Removes a node from the tree.
| AbstractSortedCollection | ||
|
Rotates a parent with its child node.
| AbstractSortedCollection |
| _comparator | property |
protected var _comparator:IComparator
The sort criterion.
| comparator | property |
comparator:IComparator
[read-write]Returns or sets the initial comparator of the collection.
You cannot reset a comparator of a collection that contains items.
In that case an ArgumentError
is thrown.
public function get comparator():IComparator
public function set comparator(value:IComparator):void
| first | property |
first:*
[read-only]
The first item or undefined
if the collection is empty.
public function get first():*
| last | property |
last:*
[read-only]
The last item or undefined
if the collection is empty.
public function get last():*
| _root | property |
protected var _root:SortedNode
The root node.
| _size | property |
protected var _size:uint = 0
The size of the collection.
| size | property |
size:uint
[read-only]The number of items contained by the collection.
Implementation public function get size():uint
| AbstractSortedCollection | () | constructor |
public function AbstractSortedCollection(comparator:IComparator = null)
AbstractSortedCollection constructor.
Parameterscomparator:IComparator (default = null ) — The sort criterion.
|
| addNode | () | method |
protected function addNode(newNode:SortedNode):void
Adds an item to the tree.
The method creates a new tree node, inserts the node as the leaf of its successor/predecessor and rotates then the node upwards until the tree becomes consistent again regarding the priority constraint.
If the tree is empty, the method simply creates a new root node.
ParametersnewNode:SortedNode — The node to add.
|
| clear | () | method |
public function clear():Boolean
Removes all items from the collection.
If the collection is already empty, the method aborts with false
.
Boolean — true if items have been removed.
|
| firstEqualNode | () | method |
protected function firstEqualNode(item:*):SortedNode
Returns the first node whose item equals the given item.
Parametersitem:* — The item to test.
|
SortedNode —
The first equal node or undefined if there is no equal item contained.
|
| has | () | method |
public function has(item:*):Boolean
Tests if an item is contained by the collection.
Parametersitem:* — The item to test.
|
Boolean — true if the item is contained.
|
| hasEqual | () | method |
public function hasEqual(item:*):Boolean
Tests if the collection contains an item that is equal to the given item.
Returns of course true
if the given item is contained.
item:* — The item to test.
|
Boolean — true if there is an equal item contained.
|
| higherNode | () | method |
protected function higherNode(item:*):SortedNode
Returns the first node whose item is higher than the given item.
Parametersitem:* — The item to test.
|
SortedNode —
The next higher node or null if there is no higher item.
|
| iterator | () | method |
public function iterator(cursor:*):IIterator
Returns an iterator over the iterable data structure.
The cursor
parameter is optional and not considered by all iterable
data structures. E.g. the iterator of an unordered collection such as Map
or Set
starts always with the first item found. Still passing a parameter to
such a data structure does not throw an error and will simply show no effect.
The type of the cursor is unspecified and depends on the particular data structure. E.g. lists allow to specify an index, sets to specify an item and maps to specify a key.
If cursor
is specified, the iterator returns the item that is related
to that cursor with the first call to next()
(and its predecessor with
the first call to previous()
if the iterator allows bidirectional
navigation.
cursor:* — The initial cursor position.
|
IIterator —
An iterator.
|
| lesserNode | () | method |
protected function lesserNode(item:*):SortedNode
Returns the last node whose item is lesser than the given item.
Parametersitem:* — The item to test.
|
SortedNode —
The last lesser node or null if there is no lesser item.
|
| mostLeftNode_internal | () | method |
as3commons_collections function mostLeftNode_internal(node:SortedNode = null):SortedNode
Framework internal method to retrieve the lowest node of the given subtree (node).
Parametersnode:SortedNode (default = null ) — The root node of the subtree.
|
SortedNode —
The lowest node or null , if the collection is empty.
|
| mostRightNode_internal | () | method |
as3commons_collections function mostRightNode_internal(node:SortedNode = null):SortedNode
Framework internal method to retrieve the highest node of the given subtree (node).
Parametersnode:SortedNode (default = null ) — The root node of the subtree.
|
SortedNode —
The highest node or null , if the collection is empty.
|
| nextNode_internal | () | method |
as3commons_collections function nextNode_internal(node:SortedNode):SortedNode
Framework internal method to retrieve the successor of a given node.
Parametersnode:SortedNode — The node to get the successor.
|
SortedNode —
The next node or null if the node is the first item or the collection is empty.
|
| previousNode_internal | () | method |
as3commons_collections function previousNode_internal(node:SortedNode):SortedNode
Framework internal method to retrieve the predecessor of a given node.
Parametersnode:SortedNode — The node to get the predecessor.
|
SortedNode —
The previous node or null if the node is the last node or the collection is empty.
|
| remove | () | method |
public function remove(item:*):Boolean
Removes an item from the collection.
Trying to remove an item which is not contained by the collection
leaves the collection untouched and returns false
.
If the collection contains multiple entries of the given item the first occurrence of the item will be removed.
Parametersitem:* — The item to remove.
|
Boolean — true if the item has been removed.
|
| removeFirst | () | method |
public function removeFirst():*
Removes the first item of the ordered collection.
Returns* — The formerly first item or undefined if the collection is empty.
|
| removeLast | () | method |
public function removeLast():*
Removes the last item of the ordered collection.
Returns* — The formerly last item or undefined if the collection is empty.
|
| removeNode | () | method |
protected function removeNode(node:SortedNode):void
Removes a node from the tree.
The method rotates the given node downwards until it becomes a leaf node and gets removed from the tree.
Parametersnode:SortedNode — The node to remove.
|
| removeNode_internal | () | method |
as3commons_collections function removeNode_internal(node:SortedNode):void
Framework internal method to remove a node from the collection.
Parametersnode:SortedNode — The node to remove.
|
| rotate | () | method |
protected function rotate(parent:SortedNode, child:SortedNode):void
Rotates a parent with its child node.
Parametersparent:SortedNode — The parent node.
|
|
child:SortedNode — The child node.
|
| toArray | () | method |
public function toArray():Array
Returns an array of all items.
The order of items in the array is the same as in the particular collection.
Certain collections do not have an explicit order (Map
, Set
).
The order of the items in the array is then not predictable.
If the collection maintains an array as its data source, a copy of the internal array is returned rather than the original array.
ReturnsArray — An array of the items of the collection.
|


| User guide |
In the previous section we noted that when using layouts you never need to set the position or size of a user-interface component yourself - the layouts take care of it. So how do you control the sizes of the components?
Each layout that arranges multiple items within its drawing area
has a sizing property: for horizontal boxes this is Widths
and for vertical boxes Heights
; for grids we have both Widths
and Heights
. These all obey the same convention:
By default all sizes are set to -1 (variable size with unit weighting).
Let's take a simple example:
f =figure
(); layout =uix.HBox
( 'Parent', f );uicontrol
( 'String', 'Button 1', 'Parent', layout );uicontrol
( 'String', 'Button 2', 'Parent', layout );uicontrol
( 'String', 'Button 3', 'Parent', layout );
We can set the middle element to be twice as wide as the others (but still variable width) by setting its weight to -2 with the others at -1:
layout.Widths = [-1 -2 -1]
Alternatively we might want the first element to have a fixed width of 100 pixels with the others filling any remaining space equally:
layout.Widths = [100 -1 -1]
This ability to mix fixed and variable sized elements is crucial in interface design. It really comes into its own when building a hierarchy of layouts, described next.
Many of the multi-element layouts also provide a MinimumWidths
or MinimumHeights
property to prevent an element becoming too small. This is measured in
pixels and defaults to one pixel. Take care to ensure that the available
space is at least the sum of the minimum sizes, plus any padding and
spacing.
| Types of layout | [Top] | Layout hierarchies |


Matthew manages the empirical concentration estimate database.
Website »
Jason contributes to quality control and creative inspiration.
Julian contributes to quality control and creative inspiration.
Christopher is the lead developer of the InMAP model.


About Me
I received my bachelor degree in Mechanical Engineering at the Hong Kong Polytechnic University, and my MSc in Robotics Systems and Control at ETH Zurich. More details about me? Please see my CV below. Click on the blue buttons to jump to the section that interests you.
Education Experience Projects Publications Extra-Curricular Awards and Tests Skills Hobbies
Education
ETH Zurich, Switzerland (2016-09 ~ 2018-09)
- MSc Robotics Systems and Control
- Selected courses: robot dynamics, computer vision, physical human-robot interaction, probabilistic artificial intelligence, power electronic system, industrial process control
The Hong Kong Polytechnic University (HKPU), Hong Kong (2011-09 ~ 2016-06)
- BEng Mechanical Engineering, First Class Honour
- Selected courses: automatic control system, artificial intelligence, sound and vibration
Experience
Proprietary Quantitative Investing (2020-02 ~ present)
Part-time Trader
- Conduct research on trading strategies for multiple asset classes using a quantitative approach. Trade the strategies with my own saving.
- Develop and maintain an in-house strategy backtest/execution platform (with C++, python, HTTP REST). Set up DevOps infrastructure involving GitHub, Docker, and AWS, automating a large part of the workflow.
Leica Microsystems AG, Switzerland (2018-10 ~ present)
Software Engineer, Medical Imaging
- Developing high-performance and user-friendly software systems for medical applications using C++.
- Accelerating image processing algorithms using GPU-based parallel computing (NVIDIA CUDA), conducting performance analysis and optimization.
- Developed and patented a digital video stabilization algorithm for medical microscopes.
- Designed a flexible and efficient image rendering framework that are now at the heart of a few major projects.
Maxon Motor AG, Switzerland (2017-03 ~ 2017-09)
Engineer Trainee, Advanced Systems Group
- Developed firmware for real-time, low-latency motion control systems using C++.
- Developed and tested a high-performance sensorless control algorithm for brushless permanent magnet synchronous motors (PMSM).
- Developed system identification methods for motion control systems.
Robotic Systems Lab, ETH Zürich, Switzerland (2016-10 ~ 2017-03)
Research Assistant
- Developed firmware and low-level drivers for the battery and power management system of ANYmal, a quadrupedal walking robot.
- Developed a touchscreen-based user interface for ANYmal.
The Hong Kong Polytechnic Unviersity, Hong Kong (2016-06 ~ 2016-08)
Research Assistant
- Developed data acquisition and image processing systems for an unmanned aerial vehicle (UAV) based search-and-rescue mission platform (using C++ and Python).
- Developed ROS applications and PixHawk firmware for an in-house vertical take-off and landing (VTOL) UAV.
ASM Pacific Technology Ltd, Hong Kong (2014-06 ~ 2015-06)
Engineer Trainee, R&D Motion Group
- Developed a highly user-friendly motor sizing and simulation toolbox using C#.
- Developed various C++ and LabView programs for test automation.
- Deployment and tuning of high-precision motion control systems used for semiconductor processes.
Projects
Master Thesis: Collaborative Workpiece Manipulation with a Torque-Controllable Robot Arm, ETH Zürich (2018-02 ~ 2018-08)
- Developed and tested a novel workpiece manipulation method based on interaction forces.
- Implement and evaluate state-of-the-art control algorithms (e.g. inverse kinematics control, impedance control, and admittance control) on a MABI Speedy 12 collaborative robot arm.
Single Image Depth Estimation Using Deep CNN, ETH Zürich (2018-03 ~ 2018-06)
- Implemented and trained of a deep neural network (DNN) for single image depth estimation (using PyTorch).
- Tested a novel interleaved training method to improve consistency under illumination changes, using pairs of images of the same object taken under different illumination conditions.
Model Predictive Control of a Series Elastic Actuator, ETH Zürich (2017-09 ~ 2017-12)
- Developed and tested a novel model-predictive controller (MPC) for ANYdrive, a series elastic actuator (SEA). The controller is formulated for the whole electro-mechanical system, computing 3-phase voltage to the motor directly from output torque setpoints (output torque is measured as the deflection of the elastic component of the SEA).
- System identification of a SEA.
- Optimization to increase computational efficiency of the MPC on a MCU.
Multiple UAV Mission System, HKPU, Hong Kong (2015-08 ~ 2016-04)
Project Team Leader
- Designed, built, and tested a innovative unmanned aerial vehicle (UAV) system, that uses one UAV to relay radio communication for another UAV.
- Developed C++ and python ROS applications for UAV mission control, using Raspberry Pi; analyzed and tested a permanent magnet based quadrotor copter release system; project management.
- Won Champion at 2016 Taiwan Innovative Unmanned Aircraft Design Competition.
Publications
- Sun J, Li B, Jiang Y, Wen C-Y. A Camera-Based Target Detection and Positioning UAV System for Search and Rescue (SAR) Purposes. Sensors. 2016; 16(11):1778.
- Li B, Jiang Y, Sun J, Cai L, Wen C-Y. Development and Testing of a Two-UAV Communication Relay System. Sensors. 2016; 16(10):1696.
Extra-Curricular
Exploring Hong Kong Community, HKPU, Hong Kong (2012 ~ 2013)
Internal Vice President
- Organized hiking and camping trips in Hong Kong, targeting international students.
AIESEC Volunteer Service, Indonesia (2012-06 ~ 2012-08)
Volunteer English Tutor
- Gave English tutorials to children in underprivileged schools; hosted a cultural sharing program in a local university.
Awards and Tests
Awards:
- Champion, Taiwan Innovative Unmanned Aircraft Design Competition (2016)
- Dean’s Honors List, HKPU (2012 ~ 2013)
Tests:
- GRE: Verbal – 157, Quantitative – 167, Analytical Writing – 3.5
- IELTS Academic: Overall – 7.5, Listening – 8, Reading – 8, Writing – 6.5, Speaking – 6.5
Skills
Skills: Robotics, software engineering, machine learning, system identification, embedded system, electronics, mechanical design.
Programming: C++, Python, PyTorch, C#, Matlab, LabView.
Languages: English, German, Mandarin, Cantonese.
Hobbies
Robotics, programming, tennis, table tennis, watchmaking, cooking.


MyBlog
Welcome
Name!
!
Logout
Home
Login
Register
Create Post
Title
Category
Content
Submit
Articles
Welcome to MyBlog!
Login
Register
Login
Email
Password
Submit
Don't have an account?
Register
Email
Password
Repeat Password
Submit
Already have an account?
Javascript
Programming
Javascript is the best language!
Delete
Details
Edit
Title: Javascript
Category: Programming
Content: Javascript is the best language!
Back to Home
Edit Post
Title
Category
Content
Javascript is the best language!
Edit
Posts


About the project
Preparing yourself for whatever may come is quite a daunting task when you get right down to it. In the face of logistical breakdowns, food shortages, civil unrest, outright invasion, or natural disasters, there are many things to consider, each one having its own sizable length and breadth.
It is the aim of this manual to give the reader some idea as to where to begin, as well as lay the foundations for growth. Using this manual, you will learn how to strengthen your mind and body, develop a survival mindset, how to strengthen your body without a gym, basic first aid, maintain and utilize firearms, and many other useful tools.


Being born into a family that has always cheered utilizing to the fullest our natural abilities, I have excelled in every lifestyle I had ventured. I have adopted my parents' standards of how to conduct oneself in life, discipline and tenacious in pursuit. I have an inquisitive nature enjoy challenges and thrillers. I dedicate my life to the pursuit of happiness while resolved to take on the intellectual challenges. Now, I had become obsessed to being an industry-wide must have leader with the ability to evaluate topic relating to business and political operations.
I'm Prince Adewale Ayodele Oluwaseun Adegoroye aka Logg, L.O.Gessy & Logarithms. My family originated from Akure monarchy, Ondo State, Nigeria but born in Enfield, UK in 1981. I spent my teen life in Nigeria where I had my elementary education. I graduated from Uni. of Greenwich UK with BEng Computer Systems & Software Engineering and MSc Business Information Systems from Uni. of Bedfordshire UK. By my living and working internationally, I've come to appreciate and respect cultural diversities.
My academic & professional lines have maintained a conceptual continuity, focusing on Information Technologies in the last 10years. I have worked within multi-disciplinary teams; utilizing these experiences to develop the world around me. People find me to be an upbeat, dynamic team player with good communication skills. I spent several years working as both graphic and web designer, leading up design teams for independent consultancies; then decided to take my passion of the web world to the next level forming Loggcity & Sitechum.
I offer professional Window technical support on all aspects. Whether that be hardware issues or monthly updates to your software addressed quickly and effectively.
I design and build bespoke web and mobile appz that work successfully for all businesses of all types and sizes. If you have an idea, send it my way and together we make uniqueness.
A non-responsive pure xHTML/CSS3 website with login and DB.
A PHP/MySQL based Web 2.0 non-responsive website with simple DB backend
A responsive website using Codeigniter 3 with DB backend. PHP/MySQL, HTML5, CSS, jQuery
Payment Registration & Admission Sys, A responsive web - CI bonfire 0.7v. HTML5, CSS3, PHP, MySQL and jQuery
A PHP/MySQL based Web 2.0 non-responsive website with simple DB backend.
Corporate Business Card in Adobe Photoshop
Non-responsive web 2.0 for a print shop
A responsive journal system using OJS


{% extends 'modal_content.html' %} {% block body %} Update a Python job Deploy as a new Python job {% endblock %}


GEOS uses all RAM available to the system, even expanded and extended memory. Memory is managed by the kernel and is accessed in the segmented scheme implemented by the 8086 processor. (The protected mode of the more advanced processors is not supported in the Version 2.0 system software but is expected to be in future releases.)
The GEOS Memory Manager is sophisticated. It uses dynamic allocation and access of blocks on a global heap to provide high performance, optimized to run very efficiently even on systems with only 640 K.
GEOS maintains control of all the memory, objects, and other entities in the system through the Handle Table . The Handle Table is a section of memory set aside for kernel use, and it contains a number of entries, each 16 bytes that can contain various information about many different items in the system. These entries are accessed by handles , 16-bit offsets into the Handle Table. Applications and libraries may use handles but may not access the contents of a handle table entry. The data structure is opaque to all but the kernel.
Handles are used for many different things. They can reference threads, memory blocks, VM blocks, or files; they can represent data structures such as timers, queues, semaphores, or events (messages); and they can be used by the kernel for optimization (such as when several words of data are passed with a message).
Through the Preferences application, a user can set the number of handles in the Handle Table. However, the size of the table does not change during a single execution of GEOS. Applications and libraries may allocate handles dynamically for most of the above-mentioned purposes (e.g. memory and file reference).
A certain amount of memory is set aside for the file system (DOS, typically), the GEOS kernel (approximately 64 K), and any TSRs the user may have running on his system. Above this is the GEOS handle table. All RAM left (up to 1 megabyte) after these requirements are satisfied is used for the global heap (RAM over 1 megabyte is used as preferred swap space). The global heap is the space available to all the applications running in the system.
Applications allocate dynamic blocks of memory on the heap. Blocks may be of arbitrary size between 16 bytes and 64 K. Each block is designated a handle, an offset into the handle table where information about the block (such as size and location) is stored. Because blocks may be shuffled in the heap by the Memory Manager, applications must use handles as indirect references to the blocks; applications should not save pointers to specific locations in memory.
GEOS uses four basic types of blocks:
The GEOS kernel provides several routines to allocate memory. Some memory is allocated automatically, such as memory for code resources as they are loaded in. Other memory, however, must be allocated as it is needed during execution--for example, as the user types more and more text into a word processor. There are three basic ways to allocate memory on the heap:
MemAlloc()
This routine allocates a new block on the heap for an application's use.
MemReAlloc()
This routine reallocates a given block; this is useful for adding memory to a block already allocated.
malloc()
Although use of
malloc()
may help in porting previous C code to GEOS, it is discouraged. The
malloc()
routine will allocate small amounts of memory within a fixed resource. Extensive use of
malloc()
leads to large, fixed blocks on the heap, degrading system performance.
When an application is done with a memory block, it can free the block with the routine
MemFree()
. This will allow the Memory Manager to free up that memory space and re-use the block's handle if required.
If a block is allocated as fixed, an application can use a far pointer to access any byte within the block. However, because fixed blocks are not always allocated in the same portion of memory each time an application is loaded, applications should not save pointers as state information.
Non-fixed blocks, however, can not be accessed by far pointers without locking them into their position in memory.
MemLock()
will take a block's handle and lock the block, thereby assuring that the Memory Manager will not move it in the middle of an access.
MemLock()
provides its caller with a far pointer to the block. When access to the block is finished, the thread that locked the block must call
MemUnlock()
, which marks the block as unlocked so it may once again be moved or swapped.


{% extends 'main_site/header.html' %} {% load static %} {% block content %}
Learn about TKD terms both in English and Korean!
Examples of stances, kicks, and hand strikes.
Learn or review all of your forms here at any time.
Get faster and stronger with these workouts.
Simple to advanced gymnastics and tricking.
Learn how to build your own kicking pad and more!


class: middle, center, backgroundblue layout: true count: false .footnote[![tw-logo](images/logos/TW Colour Logos_trans_white.png)] --- background-image: url(images/background1.jpg) # I don't care what you did last summer ## Continuous Delivery + Immutable Servers ??? - Hello everybody, welcome! Thank you for being here - I'm going to be talking about Continuous Delivery and Immutable Servers today, what it is, what's so important about and why you probably want it :) --- .image[ ![business-card](images/business-card.jpg) ] ??? - My name is Moritz Heiber, I work for Thoughtworks - I work with clients to enable them to transform their culture to include DevOps methodologies, and Continuous Delivery and Immutable Servers are two very exciting ways of enabling teams to run their own software independently and with a strong sense of ownership --- .image[ ![](images/ops-problem.jpg) ] ??? - This is where we're coming from when we're talking about culture - CD + IS will help you by providing tools for developers to adjust their expectactions in their own code and the infrastructure that is running it - It will help to prevent you from falling into the trap of reckless, irresponsible development and clear cut department silos --- .left[ # Leverage technology # to empower teams ] ??? - It is essentially empowering people, and therefore your culture, to grow more flexible, accelerate processes and put the focus back on developing great software --- background-image: url(images/build-pipeline.jpg) # Continuous Delivery ??? - Let me start by talking about Continuous Delivery by looking at the definition Wikipedia is giving you if you're looking it up --- .quote[ > Continuous Delivery (CD) is a set of practices and principles in software engineering aimed at, **building, testing, and releasing software, faster and more frequently**. These principles help **reduce the cost, time and risk of delivering changes**, and ultimately value, to customers by allowing for **more incremental changes to applications in production**. ] .right[.citation[https://en.wikipedia.org/wiki/Continuous_delivery (emphasize are mine)]] ??? - More value for users, faster .. that's what everyone wants, right, or at least everyone should want it - Incremental changes, tiny steps instead of huge, bloated changes you'll never be able to verify beforehand much less deploy efficiently - That release button/lever of your's needs to die! - Signing off on releases needs to go away! - And if you worry less about how you're going to get your code into production you have more time to focus on what's important: writing code --- .left[ ## Continuous Delivery works ## with the power of pipelines ] .image[ ![gocd](images/gocd.jpg) ] .right[.citation[https://go.cd]] ??? - This is the manifestation of a continuous delivery life cycle - A release pipeline, taking the modified source code and initiating a build - That build is getting integrated and tested - Possibly deployed to a staging environment, for manual testing or approval - And in the end the code in this pipeline ends up in production, all in one sweep - Ideally, all of these steps are well defined and can be logically separated. --- .left[ # Continuous Delivery # lets you work with # small, incremental steps ] ??? - Why did we build gigantic monolithic applications in the past? - I'd say largely because we were deploying them the way we did in the past 30 years - Continuous Delivery is the evolution, the next step in the right direction when it comes to building software - Continuous Delivery is what enables you to write great code with small, incremental changes - Your software stack and design need to support CD - A gigantic mess of spaghetti code is hardly CD enabled - If it takes one release 3 hours to build I wouldn't do CD either - Don't have to be microservices, but it helps ;) - But at least try to split some of your code into logical, independent units connected by open protocols --- .left[ ### Writing tests now has a reason ;-) ] # Trust. Your. Code.\* .left[ **\* QA does not equal healthy code!** ] ??? - Your code needs to have a test coverage which is above average to ensure you're delivering healthy code - Healthy code implies and instills confidence and trust in delivering it anywhere - This isn't the job of QA!   - You should not be afraid to deliver code to production immediately - There should not be a "trigger" somewhere that you'd have to press manually for delivery - Otherwise it's "Stuttering Delivery" - Focus on decoupling deployments and delivery from feature releases, e.g. through feature toggles, A/B testing, canary releases and blue/green deployments --- # Pipelines need artifacts ??? - If you're using Continuous Delivery you most likely want to pass artifacts (your code, some tests results etc.) from pipeline step to pipeline step - If you aren't doing this it's not a pipeline, it's a set of independent build instructions - Pipelines are meant to act as a workflow, a unified process which takes code as an argument and delivers it to your users - The steps in between, while isolated, should rely on the information provided by the step before them, i.e. an artifact that's passed along - And this is where we come to immutable infrastructure --- background-image: url(images/immutable-servers.jpg) # Immutable servers* .left[ ** \* Also known as immutable infrastructure\*\* ** \*\* Also known as "phoenix servers" ] ??? - You never re-use existing Infrastructure, instead, you re-create it from scratch, test its viability, make the switch, and then throw away the old stack - The core concept is: Your infrastructure is an artifact just like your software is within a CD cycle - It's a unique software build alongside a unique, immutable infrastructure configuration - Together they are one single artifact - Doesn't change, only applies to a unique moment in time in your development --- .left[ # Artifact Driven Delivery ] .image[![](images/artifact-driven-delivery.jpg)] ??? - Pipelines need artifacts to work efficiently, but why should this just apply to your code? - Infrastructure should be a part of the artifact you are producing within your pipeline workflow - Redeploying a certain, immutable artifact from a pipeline run shouldn't make a difference in time, especially when it comes to Infrastructure deployments - If you are doing this you'll reap a lot more benefits from Continuous Delivery than from any other way of deploying --- .left[ # Atomic deployments # with Infrastructure # as code ] ??? - If you aren't using Infrastructure provisioning yet you should be, without it you will never be able to make great strides when it comes to Continuous Delivery or Immutable Servers - With it, if you deploy infrastructure once it will work over and over again the exact same way - Your software artifacts and Infrastructure code are combined into an immutable package, identified by a single commit/software version - They are essentially atomic - You can go back and forth seamlessly, at the push of a button even!  - Show app on GitHub - Show Snap-CI integration - Talk about deployment on AWS (CloudFormation, Route53, EC2/ELB/AutoScaling) - Change text in index.html - Show progress on Snap-CI - Show progress in AWS console for CloudFormation - Show deployed, new app website saying "Hello insert-venue-name!" --- .left[ # Summary ### Build software faster, without barriers/boundaries ### Atomic, bundled, artifact driven infrastructure management ### Enables you to build business focussed, efficient DevOps teams ] ??? - Continues delivery enables software development without barriers and impediment - Immutable servers allow for atomic, artifact bundled infrastructure management - Both combined enable effective, efficient DevOps teams with a business focus and a strong sense of ownership --- class: backgroundblue # One more thing... ??? - Switch back to website and show new text --- # Questions? .image-smaller[ ![questions](images/questions.jpg) ] --- ## Thank you! https://github.com/moritzheiber/i-dont-care-for-what-you-did-last-summer
moritzheiber |
<EMAIL_ADDRESS>|
heiber.im


Tournamenter v{{::version}}
New Update available:
{{newUpdate.version}}
Info
Download
Tournamenter
Tournamenter Manager v{{::version}} | Tournamenter v{{::versionTournamenter}}
Made with
by nerds in
- by
Ivan Seidel


Buy Now
Apples: 0
Avg. Purchase Price: $0
Sell Now
Buy Now
Oranges: 0
Avg. Purchase Price: $0
Sell Now
Buy Now
Bananas: 0
Avg. Purchase Price: $0
Sell Now
Buy Now
Pears: 0
Avg. Purchase Price: $0
Sell Now


--- layout: post title: "@Disclosedtech: Edsurge and Zeal" date: 2017-05-05 13:57:00 +0000 tags: image: https://s3.amazonaws.com/hackedu/2017-05-05-pigeon.jpg imagecredits: https://www.flickr.com/photos/147716978@N08/29651251660 ---
"Zeal CEO John Danner: Want to Make Data Actionable? Start With Building the Right Culture," Edsurge wrote on May 1, 2017. This article fails to disclose that Edsurge and Zeal share investors: Reach Capital.
This sort of disclosure (or lack thereof) is particularly important as Edsurge now sells schools a service recommending which ed-tech products they should buy.


Hello, we're Goodfood, your new premium food delivery service. We know you're always busy. No time for cooking. So let us
Never cook again! We really mean that. Our subscription plans include up to 365 days/year coverage. You can also choose to order more flexibly if that's your style.
You're only twenty minutes away from your delicious and super halthy meals delivered right to your home. We work with the best chefs in each town to esure that you're 100% happy.
All our vegetables are fresh, organic and local. Animals are raised without added hormones or antibiotics. Good for your health, the environment, and it also tastes better!
We don't limit your creativity, which means you can order whatever you feel like. You can also choose from our menu containing over 100 delicious meals. It's up to you!
Choose the subscription plan that best fits your needs and sign up today!
Choose the subscription plan that best fits your needs and sign up today!
Choose the subscription plan that best fits your needs and sign up today!
Goodfood is just awesome! I just launched a startup which leaves me with no time for cooking, so Goodfood is a life-saver. Now that I got used to it, I couldn't live without my daily meals!
Inexpensive, healthy and great-tasting meals, delivered right to my home. We have lots of food delivery here in Lisbon, but no one comes even close to Goodfood. Me and my family are so in love!
Goodfood is just awesome! I just launched a startup which leaves me with no time for cooking, so Goodfood is a life-saver. Now that I got used to it, I couldn't live without my daily meals!
That's only 13.30$ per meal
That's only 13.30$ per meal
Yes, please


Internal Token Offering - Investment Agreement
This Investment Agreement (hereinafter referred to as the “Agreemeent“) is entered into on {{ effective_date }} (the “Effective Date“), by and between:
Investor,
{{ full_name }},
residing at {{ address }};,
hereinafter referred to as the “Investor”;
and
Green IT Globe Holdings FZC, a free zone establishment with License No: 17194 with its principal place of business at Q1-07-038/B SAIF Zone, United Arab Emirates, PO Box 514608; hereinafter referred to as the “Company”;
Collectively referred to in this Agreement as the “Parties”, each referred to as a “Party”.
WHEREAS
Before its Private Token Offering (PTO), the Threefold Foundation is launching an Internal Token Offering (ITO) for friends, family and ambassadors. This ITO will be structured as a loan note issued by the Company which is convertible into ThreeFold Tokens pursuant to the terms and conditions of the present Agreement.
THEREFORE, IT HAS BEEN AGREED AS FOLLOWS:
1. Amount
The Investor will make available to the Company a principal amount of {{ amount }} BitCoins as a convertible loan (the “Loan”).
The Loan will be paid by the Investor by wire transfer to the Company’s BitCoin wallet hosted by BitOasis Technologies FZE, at the following digital address: 3GTf7gWhvWqfsurxXpEj6DU7SVoLM3wC6A (the “Wallet”) within 3 business days as from the date of this Agreement.
The Company undertakes to use the Loan in view of executing its business plan.
2. Term of the Agreement – Conversion – Redemption
On the day on which the Bitcoin payment has been received by the Company in its Wallet, the Loan will be converted in United Arab Emirates Dirham (AED) first at the conversion rate quoted on the website of BitOasis Technologies FZE, and then immediately thereafter from AED in US Dollars at the conversion rate quoted on the website of Oanda.com, both on such date at 11.59 PM Gulf Standard Time. The corresponding amount of the Loan expressed in US Dollars is hereinafter referred to as the “USD Loan”.
On the occurrence of the ThreeFold Foundation’s Private Token Offering (“PTO”), the Company shall convert the unpaid principal amount of the USD Loan and any accrued interests into ThreeFold Tokens at a conversion rate of 5 USD (five US Dollars) per Token. The total convertible amount will be rounded down to the nearest corresponding multiple of five. The balance (if any) will be converted in BitCoin on the date of the PTO (at the then current conversion rate) and repaid to the Investor.
The capital of the USD Loan and any accrued interests will in any event either be redeemed or converted within one year as from the Effective Date (the “Redemption Date” or “Conversion Date”). In case of redemption, the USD Loan will be converted in BitCoin on the date of the redemption (at the then current conversion rate quoted on the website of BitOasis Technologies FZE at the time the redemption is initiated, minus any applicable fees) and repaid to the Investor.
3. Interest
The Investor is entitled to an interest payment of 2% (two per cent) per year on the outstanding capital, starting as from the Effective Date. Interests are capitalized at the Conversion Date or Redemption Date.
Interest payments are made together with the redemption of the capital of the Loan or the conversion of the Loan.
In the event a (pre-)payment or conversion takes place, the interest payments are calculated on a pro rata temporis basis.
4. Lock-up Period
Without consent from the Foundation, Internal Token Offering investors will not be allowed to sell their Tokens for a period of twelve months after the date of this Agreement.
5. Default
The Investor may terminate the loan forthwith and without any prior written notice in case of any of the following events, which will each constitute an “Event of Default” by the Company:
Upon an Event of Default, the Investor may, at any time thereafter, by notice to the Company, declare that the Loan together with accrued interest and all amounts payable under the Loan by the Company are immediately due and payable.
6. Withholding
If the Company, in accordance with applicable tax law, is obliged to retain a withholding or any other similar tax or deduction on the payment of interest or the repayment of the principal amount under the Loan, the Company will immediately notify the Investor, withhold the applicable tax, pay this tax to the competent authorities before any penalties or interests are due and pay the remaining amount to the Investor. If the Investor has to pay the above-mentioned withholding tax or penalties or interests in connection therewith, due to a fault or negligence of the Company, the Company will reimburse the Investor upon first request for the damages suffered. If the Company pays the above-mentioned withholding tax or penalties or interests connected therewith, it will provide the Investor with the official tax receipts evidencing the payment, or certified copies thereof, as soon as it has received them.
7. Assignment
The Investor agrees that the Company may transfer and assign the Agreement in its discretion provided notice of such assignment is sent to the Investor within 15 days of such assignment.
8. Amendments
No amendment modifying, adding to or omitting from, or terminating this Agreement will be binding upon a Party unless made in writing and signed by or in the name of the Parties involved.
9. Partial Invalidity
The nullity of one of the provisions of this Agreement shall have no bearing on the validity of the other provision of this Agreement.
In such case the Parties to this Agreement shall in good faith negotiate on the provisions of this Agreement so that the same economic balance between the rights and obligations of the Parties to this Agreement are safeguarded to the same extent as if the invalid provision had been valid.
10. Governing Law
This Agreement is subject to Belgian law.
11. Jurisdiction
Any dispute which may arise between the Parties in relation to the validity, the interpretation or the execution of this Agreement will be submitted to the exclusive jurisdiction of the Courts of Gent, Belgium.
Signed on the Effective Date in two originals, each of the Parties acknowledging having received one original.
| The Company | The Investor |
| Green IT Globe Holdings FZC | {{ full_name }} |


--- layout: default ---
Just imagine… all on one screen: radio, weather forecast, photo album with personalised slideshows and digital clock with alarm. Top of the range and amazingly easy to program, practical and in a stunning design. This is… “Sonio Pro - Alarm Clock Radio” !
Radio Live! ... all your favorite radios stations always nearby! Thousands of radios, wide selection of Countries and Genres, Displaying the Title, Artiste name, Album cover of the song you're currently listening for radios stations that support this feature.
“Mince… Comment ça s’écrit déjà ?” Qui n’a pas eu ce genre d’hésitation au moment de rédiger : un mail professionnel, privé, une dissertation, une rédaction, un SMS, une lettre de motivation et son CV


Creativity and Evolution: A Metadesign Perspective
Authors
Elisa Giaccardi and Gerhard Fischer
Notes
Field of Study
Concepts
Quotations
References
Methodology


1 Moreover, Amasis dedicated offerings in Hellas. He gave to Cyrene a gilt image of Athena and a painted picture of himself; to Athena of Lindus, two stone images and a marvellous linen breast-plate; and to Hera in Samos, two wooden statues of himself that were still standing in my time behind the doors in the great shrine.
2 The offerings in Samos were dedicated because of the friendship between Amasis and Polycrates, son of Aeaces; what he gave to Lindus was not out of friendship for anyone, but because the temple of Athena in Lindus is said to have been founded by the daughters of Danaus, when they landed there in their flight from the sons of Egyptus. Such were Amasis' offerings. Moreover, he was the first conqueror of Cyprus, which he made tributary to himself.


Note: To access the Migrations API, you must provide a
custom media type in the Accept
header:
application/vnd.github.wyandotte-preview+json
Warning: The API may change without advance notice during the preview period. Preview features are not supported for production use. If you experience any issues, contact GitHub Support or GitHub Premium Support.
Fetches the URL to a migration archive.
GET /orgs/:org/migrations/:migration_id/archive
Status: 302 Found
https://s3.amazonaws.com/github-cloud/migration/79/67?response-content-disposition=filename%3D0b989ba4-242f-11e5-81e1.tar.gz&response-content-type=application/x-gzip


What are your week-to-week habits? Do not include anything you pay under a contract (such as bills, insurance and rent or mortgage).
Total per week: ${{vm.getSum().toLocaleString()}}


{% extends "hwam/base.html" %} {% block sub-title %}Asset Management Documentation | {% endblock %} {% block content-main %}
Organizational units can be departments, office locations, or anything else by which your organization can be ... organized. OUs can have a parent OU; an organization should be arranged in a tree.
Hardware assets can be any piece of hardware, from door locks to servers to USB thumb drives. Each hardware asset belongs to an OU. Hardware assets can have a parent hardware asset (for example, a hard drive in a server), along with the following attributes:
Software assets can be anything from files to operating systems. Software assets belong to an OU, and can have multiple parent hardware and software assets (for example, a virtual machine that runs on a cluster of 20 servers). They also have the following attributes:


?6
7
8
9
10
T
ã
v
The
New
York
copyright
reserved
botanical
Garden
ISO
3TANICAL
GARDEN
01443260
FLORA
NEOTROPICA
Si
deroxyl
on
a.mer
i
can
urn
(Miller)
Penn,
T.D.PENNINGTON
1986
PLANTS
OF
THE
WEST
INDIES
Bumelia
americana
(Mill.)
Stearn
Caicos
Islands:
Pine
Cay,
in
coppice
back
of
dunes,
northwest
side.
Trees
to
1;
m
tall.
Leaves
eaten
by
iguanas.
August
26,
1971+
D.
S.
Correli
43172
Herbarium
FAIRCHILD
TROPICAL
GARDEN
01443260
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


Improve on
Get the app
Sign-out
Welcome,
Name
Email
Click on the card you want to copy or query the results as per your liking!
Want to add a command? Add by clicking on the button, select a color and update. That's it!
Orange
Blue
Purple
Green
Red
Black
Submit
Add
Query your commands by clicking on one of the colored buttons...
Red
Blue
Green
Purple
Black
Orange
All
Psst! Nothing is in here. Try adding something to see.
Refresh


Reports
throw
statements inside of
finally
blocks. While occasionally intended, such
throw
statements may mask exceptions thrown, and tremendously complicate debugging.


Tech
Con
Dates
At Tech
Con.
May 9th - 21st
Want to be a part of Tech
Con?
:
Full Name:
Date:
Register
Anyone you know?:
We'll put down:
Ezra Moore
For:
2019-05-10
We'll put down:
William Nye
For:
2019-05-11
We'll put down:
Ellon Musk
For:
2019-05-11
We'll put down:
Bill Gates
For:
2019-05-12
We'll put down:
Tim McKenna
For:
2019-05-13


Basic Label
The quick brown fox jumps over the lazy dog.
Simple Label
Required Label
Required Label
Required Label
Truncated Label
Long labels are truncated by default.
Long labels are truncated by default.
Wrapped Label
Long labels can wrap if the 'wrap' property is set.
Long labels can wrap if the 'wrap' property is set.


--- layout: post title: "No Title" ---
Everybody wants to know what I am on. What am I on?


Main Library Hours 8am-12am
Where do I...
How do I...
Back
Main Menu
Study Rooms
Circulation Desk
Reference Desk (open hours)
Restrooms
Elevators
Back
Study Rooms
Lower Level
2nd Floor
3rd Floor
6th Floor
7th Floor
8th Floor


Files CCore/inc/CancelPacketList.h CCore/src/CancelPacketList.cpp
The class CancelPacketList implements the packet cancellation for packets, stored in some PacketList. It is also a "reference design" for the packet cancellation in a packet processing class.
class CancelPacketList : public Funchor_nocopy
{
public:
enum Event
{
Event_cancel,
Event_cancel_on_put,
EventLim
};
friend const char * GetTextDesc(Event ev);
using StatInfo = Counters<Event,EventLim> ;
private:
Mutex mutex;
StatInfo stat;
private:
void cancel(PacketHeader *packet);
PacketFunction function_cancel() { return FunctionOf(this,&CancelPacketList::cancel); }
public:
// constructors
CancelPacketList();
explicit CancelPacketList(TextLabel name);
~CancelPacketList();
// methods
void getStat(StatInfo &ret);
bool try_put(PacketList &list,PacketHeader *packet);
bool try_put(PacketList &list,PacketType packet) { return try_put(list,GetPacketHeader(packet)); }
void put(PacketList &list,PacketHeader *packet);
void put(PacketList &list,PacketType packet) { put(list,GetPacketHeader(packet)); }
PacketHeader * get(PacketList &list);
void get(PacketList &list,PacketList &dst);
void complete(PacketList &list);
};
The constructors argument name is used to name the internal mutex.
The class counts some events and the event statistic is available through the method getStat().
void CancelPacketList::getStat(StatInfo &ret)
{
Mutex::Lock lock(mutex); // mutex protected region
ret=stat;
}
The class can serve multiple packet lists. To put a packet to the list there are two main methods (and two variants): try_put() and put().
put() is a simple upgrade over try_put():
void CancelPacketList::put(PacketList &list,PacketHeader *packet)
{
if( !try_put(list,packet) ) packet->complete(); // if the packet is cancelled, complete it
}
try_put() puts the packet into the packet list and assigns the cancel function to it. So the packet can be removed from the list upon a cancel request. But if the packet comes in the canceled state (or the cancellation happens during the try_put() processing), the packet is not placed into the list and must be completed (or handled by another way). put() simply complete the packet in this case.
bool CancelPacketList::try_put(PacketList &list,PacketHeader *packet)
{
Mutex::Lock lock(mutex); // mutex protected region
if( packet->setCancelFunction(function_cancel())==Packet_NoCancelFunction )
{
packet->pushExt<PacketList *>(&list);
list.put(packet);
return true;
}
stat.count(Event_cancel_on_put);
return false;
}
try_put() is working under the mutex protection. It starts with the setting the cancel function to the packet. If the packet is clean, then try_put() extends it with the packet list pointer and put the packet into the list. Now packet has the assigned cancel function and it remembers from which packet list it must be removed.
The cancel function also is working under the mutex protection.
void CancelPacketList::cancel(PacketHeader *packet)
{
{
Mutex::Lock lock(mutex); // mutex protected region
if( PacketList *list=*packet->getExt<PacketList *>() ) list->del(packet);
stat.count(Event_cancel);
}
packet->popExt<PacketList *>();
packet->complete();
}
It extracts the packet list pointer and if it is not null, removes the packet from the packet list. Then in the lock-free context the packet extension is popped and the packet is completed. The packet list pointer may be null, because it is nullified by the method get().
To extract a packet from the list the method get() is used.
PacketHeader * CancelPacketList::get(PacketList &list)
{
for(;;)
{
Mutex::Lock lock(mutex); // mutex protected region
PacketHeader *packet=list.get();
if( !packet ) return 0;
if( packet->clearCancelFunction()!=Packet_Cancelled )
{
packet->popExt<PacketList *>();
return packet;
}
else
{
*packet->getExt<PacketList *>()=0;
}
}
}
To get a packet, the mutex is locked, then the first packet is extracted from the list. If the list is empty, the method is finished and the null pointer is returned. Otherwise the cancel function is cleared. If the packet was not canceled, the packet extension is popped and the packet is returned. Otherwise the packet extension pointer is nullified and the packet is dropped. That is because the packet originator has already taken the cancel function and going to call it or may did it already. In the last case the cancel function execution will be delayed on the mutex lock and continues as soon as we release the mutex. The packet is extracted from the list, so we have to nullify the packet list pointer to prevent the second attempt to remove the packet from the list. And the packet will be completed by the cancel function.
The last two methods are helpers.
get(PacketList &list,PacketList &dst) moves all not canceled packets from the list to another list for a further processing.
complete() completes all packets from the list. The list becomes empty.