The Req object also allows you to read the request body.
Because the request body can be of any size, all body reading operations will only work once, as Cowboy will not cache the result of these operations.
Cowboy will not attempt to read the body until you do. If handler execution ends without reading it, Cowboy will simply skip it.
Cowboy provides different ways to read the request body. You can read it directly, stream it, but also read and parse in a single call for form urlencoded formats or multipart. All of these except multipart are covered in this chapter. Multipart is covered later on in the guide.
You can check whether a body was sent with the request.
cowboy_req:has_body(Req).
It will return true
if there is a request body, and false
otherwise.
Note that it is generally safe to assume that a body is sent for POST
, PUT
and PATCH
requests, without having to explicitly check for it.
You can obtain the body length if it was sent with the request.
{Length, Req2} = cowboy_req:body_length(Req).
The value returned will be undefined
if the length couldn't be figured out from the request headers. If there's a body but no length is given, this means that the chunked transfer-encoding was used. You can read chunked bodies by using the stream functions.
You can read the whole body directly in one call.
{ok, Body, Req2} = cowboy_req:body(Req).
By default, Cowboy will attempt to read up to a size of 8MB. You can override this limit as needed.
{ok, Body, Req2} = cowboy_req:body(Req, [{length, 100000000}]).
You can also disable it.
{ok, Body, Req2} = cowboy_req:body(Req, [{length, infinity}]).
It is recommended that you do not disable it for public facing websites.
If the body is larger than the limit, then Cowboy will return a more
tuple instead, allowing you to stream it if you would like to.
You can stream the request body by chunks.
Cowboy returns a more
tuple when there is more body to be read, and an ok
tuple for the last chunk. This allows you to loop over all chunks.
body_to_console(Req) -> case cowboy_req:body(Req) of {ok, Data, Req2} -> io:format("~s", [Data]), Req2; {more, Data, Req2} -> io:format("~s", [Data]), body_to_console(Req2) end.
You can of course set the length
option to configure the size of chunks.
You can control the rate of data transmission by setting options when calling body functions. This applies not only to the functions described in this chapter, but also to the multipart functions.
The read_length
option defines the maximum amount of data to be received from the socket at once, in bytes.
The read_timeout
option defines the time Cowboy waits before that amount is received, in milliseconds.
Cowboy will by default decode the chunked transfer-encoding if any. It will not decode any content-encoding by default.
The first time you call a body function you can set the transfer_decode
and content_decode
options. If the body was already started being read these options are simply ignored.
The following example shows how to set both options.
{ok, Req2} = cowboy_req:body(Req, [ {transfer_decode, fun transfer_decode/2, TransferState}, {content_decode, fun content_decode/1} ]).
You can directly obtain a list of key/value pairs if the body was sent using the application/x-www-form-urlencoded content-type.
{ok, KeyValues, Req2} = cowboy_req:body_qs(Req).
You can then retrieve an individual value from that list.
{_, Lang} = lists:keyfind(lang, 1, KeyValues).
You should not attempt to match on the list as the order of the values is undefined.
By default Cowboy will reject bodies with a size above 64KB when using this function. You can override this limit by setting the length
option.
{ok, KeyValues, Req2} = cowboy_req:body_qs(Req, [{length, 2000000}]).


Enable Mods
Silence Sound (mute goose)
Goose Can Attack Mouse
Attack Randomly
Use Custom Colors
Set Goose's Body Color
Set Goose's Beak Color
Goose's Outline Color
Minimum Wandering Time Seconds
Maximum Wandering Time Seconds
First Wandering Time Seconds
Apply settings
Copy text
Download


src.threads package¶
Submodules¶
src.threads.cleanUpThread module¶
This module is responsible for keeping the integrity between local data and database.
-
class
src.threads.cleanUpThread.
JobCleaner
(app)¶ Bases:
threading.Thread
Class with the job to clean up false links in the module database.
-
__init__
(app)¶ Initiliazes a JobCleaner object.
Parameters: app – The flask app context.
-
run
()¶ Runs the thread in an eternal loop, checking constantly the integrity of the database.
-
-
src.threads.cleanUpThread.
dirIntegrity
(module_path, modlist)¶ Checks if module files from database are existing on the local machine.
Parameters: - module_path – The installation script path of the module.
- modlist – A list of modules.
src.threads.integrityThread module¶
WARNING: deprecated. Needs to be deleted.
src.threads.threadManager module¶
This module contains the thread manager, which keeps track of all packer-workerthreads. It removes and restarts soft locked threads.
-
class
src.threads.threadManager.
ThreadManager
(app)¶ Bases:
threading.Thread
The ThreadManager manages all worker and integrity threads from BibiCreator
-
__init__
(app)¶ Start up the threadmanager.
Parameters: app – The flask app context.
-
checkForTTL
(secondsToLive)¶ Checks the uptime of all workerthreads, which are currently building a new Image. Shut down the thread if the process takes too long.
Parameters: secondsToLive – Threshold of time to live for this thread.
-
run
()¶ Spins up all 5 worker threads.
-
src.threads.workerThread module¶
Main worker thread for executing pending build jobs.
-
class
src.threads.workerThread.
JobWorker
(app, lock)¶ Bases:
threading.Thread
A thread which is responsibel for building new linux images into openstack.
-
__init__
(app, lock)¶ Initializes a new worker thread.
Parameters: - app – The flask app context.
- lock – A reference to a mutex lock.
-
run
()¶
-
shutDownPacker
()¶ If the packer process is soft locked, we can try to force shut it down.
-
-
src.threads.workerThread.
cp_booksAndScripts
(job, logfile, directory_trgt, module_type)¶ Copies Ansible playbooks and bash scripts to the working directory.
Parameters: - job – The targeted job object from database.
- logfile – The logfile of the working directory.
- directory_trgt – Location of the working directory.
- module_type – Is this a Playbook or a Bash Script?
Raises: Exception
– Could not access role, maybe because it is not existent.
-
src.threads.workerThread.
cp_booksAndScriptsForced
(logfile, directory_trgt)¶ Copies FORCED Ansible playbooks and bash scripts to the working directory.
Parameters: - logfile – The logfile of the working directory.
- directory_trgt – Location of the working directory.
Raises: Exception
– Could not access role, maybe because it is not existent.
-
src.threads.workerThread.
cp_roles
(job, logfile, ansible_roles_path)¶ Copies Ansible Roles from the locale database to the working directory.
Parameters: - job – A orm job object from database.
- logfile – A file descriptor for logging outputs.
- ansible_roles_path – In which working directory shall these roles be installed?
Raises: Exception
– Could not access role, maybe because it is not existent.
-
src.threads.workerThread.
cp_rolesForced
(logfile, ansible_roles_path)¶ Copies FORCED Ansible Roles from the locale database to the working directory.
Parameters: - job – A orm job object from database.
- logfile – A file descriptor for logging outputs.
- ansible_roles_path – In which working directory shall these roles be installed?
Raises: Exception
– Could not access role, maybe because it is not existent.
-
src.threads.workerThread.
installFromGalaxy
(job, logfile, ansible_roles_path)¶ Installs Ansible Roles from Ansible Galaxy to the working directory of a build process.
Parameters: - job – A orm job object from database.
- logfile – A file descriptor for the worker logfile.
- ansible_roles_path – The location on where to install the galaxy roles.
Raises: Exception
– Ansible Galaxy was not able to install a role.


Dumsor is a 'devil' introduced by Mahama - NPP MP
Chairman for Mines and Energy Committee in parliament, Emmanuel Kwasi Gyamfi, has said the National Democratic Congress (NDC) should forget about another term in government considering they have established themselves as the originators of power shortage also known as ‘dumsor’ in the country.
According to him, the power shortage under the NDC was a ‘devil’ introduced by John Mahama brought a lot of torment to Ghanaians, especially on the job front.
He however commended the Akufo-Addo administration for ending ‘Dumsor’ as soon as they assumed office.
Emmanuel Kwasi Gyamfi who was speaking on the floor of parliament during the 2020 budget debate Tuesday said the Akufo-Addo led government is delivering every promise they made in their 2016 manifesto and must therefore be praised. The achievement he says includes a massive facelift in the energy sector.
“For almost 4 years, between 2012 and 2016 we were experiencing what we called dumsor. Dumsor was a devil that was introduced by the previous government led by John Mahama. It was a devil because it cost of dumsor to Ghanaians. Jobs were lost, lives were lost and people’s livelihood suffered. Never again would we allow NDC to come back to power to bring back dumsor.’ He said.


Powered by Diagraphic
Not logged in
Submit
Cancel
Logout
Login
Patient Name:
Starting Date:
Reset
Submit
Create New Patient Entry
Patient:
Protocol Approved By:
Precautions:
Diagnosis:
Referring Doctor:
Pre-Modality:
Post-Modality:
Tools:
Data Saved
Delete Forms
Cancel Delete
Delete Selected Forms
Delete All
Add New Form
Copy Forward
Save & Close
Export as PDF


|
LoRCA: Low Redshift survey at Calar Alto
Mapping the large scale structures of the local Universe using the Schmidt-telescope of the Calar Alto Observatory |
|
The Baryon Acoustic Oscillation (BAO) feature in the power spectrum of galaxies provides a standard ruler to measure the accelerated expansion of the Universe. To extract all available information about dark energy, it is necessary to measure a standard ruler in the local, z less than 0.2, universe where dark energy dominates most the energy density of the Universe. Though the volume available in the local universe is limited, it is just big enough to measure accurately the long 100 Mpc/h wave-mode of the BAO. Using cosmological N-body simulations and approximate methods based on Lagrangian perturbation theory, we construct a suite of a thousand light-cones to evaluate the precision at which one can measure the BAO standard ruler in the local universe. We find that using the most massive galaxies on the full sky (34,000 sq. deg.), i.e. a K(2MASS) brighter than 14 magnitude-limited sample, one can measure the BAO scale up to a precision of 4% and 1.2% using reconstruction). We also find that such a survey would help to detect the dynamics of dark energy.Therefore, we propose a 3-year long observational project, named the Low Redshift survey at Calar Alto (LoRCA), to observe spectroscopically about 200,000 galaxies in the northern sky to contribute to the construction of aforementioned galaxy sample. For more details, please read our paper. |
|
|
|
Instrumental set-up LoRCA will observe spectra for about 0.2 million galaxies of the north galactic cap that were not previously observed by SDSS with the most-suited northern facility: the Schmidt telescope at the Calar Alto observatory. The LoRCA survey would be highly complementary to the Australian TAIPAN survey, that aims observing order of a million low-redshift galaxies in the south galactic cap, starting in 2016. This survey would use the Calar Alto 80-cm Schmidt telescope refurbished with a cartridge that will host about 400 robotic fiber positioners in the focal plane. Optical fibers carry light from the focal plane to the slithead, which feeds one spectrograph permanently mounted on the floor in a control environment room. The field-of-view that we intend to cover with a single exposure is by 30cm on the focal plane, i.e. about 50 square degrees. The fiber core will be 100 microns, which yield 6.7 arcsec on the sky. |
|
|
In the following links, you can find: Documents from the kick-off workshop; and its website Simulations, mock light cones; and target catalogs. |
|
Contact persons J. Comparat, j.comparat _at_ csic.es F. Prada, f.prada _at_ csic.es |
Institutions:


Hout Bay is surrounded by spectacular mountains and sports a picturesque harbour for a small fishing fleet. It lies on the western coast of the Cape Peninsula, 15NM south of Cape Town harbour.
Contrary to information previously posted here, where it was reported this bay was very sheltered, it should be noted that Hout Bay does suffer from very strong Katabatic winds from the East, kicking up waves and spray. Visiting yachts should be sure to find as protected a berth as possible in the marina to avoid problems when the Katabatics strike.
Position 34°03.07'S, 18°20.98'E.
If you moor at Simonstown or Hout Bay you will have to complete clearance in Cape Town taking your whole crew with you.
See Cape Town Clearance for details,
All yachts must sign their craft in and out in the yacht club register at the Marina.
When departing from South Africa for a foreign destination skippers must obtain a clearance certificate from the yacht club to show all fees have been paid and visit the necessary officials in Cape Town (Immigration, Harbour Revenue Office and Customs).
Last updated February 2014.
There is a marina with about 100 walk on moorings (floating pontoons) and the pontoons for the ABC boat Club. The extended harbour wall protects the marina from any surge.
In the little town just 10 minutes walk from the port you find laundry services, rental cars, hardware shops, tool hire, spare parts, supermarkets, pharmacy and a great number of restaurants.
The town and port is reasonably safe even after dark and there are many security guards watching this upmarket tourist place and the pretty homes.
Tradesmen will visit here from Cape Town.
Last updated July 2012.


A channel to discuss trading. For useful links and more info click the pinned messages to the right.
100 messages
Before 05-Dec-19 12:00 AM
Markus30-Jul-19 04:37 PM
bullish divergence on btc daily
altcoinist30-Jul-19 04:40 PM
When I buy btc it'll dump so I better wait it to reach 7-8k (maybe never will happen)
Markus30-Jul-19 04:42 PM
9k support looking good so far
Neko30-Jul-19 05:06 PM
fork btc when altszn
Neko30-Jul-19 05:43 PM
so thats it, kmd will keep dropping forever until 0
FlyingDutchman30-Jul-19 05:48 PM
yep
Caglio30-Jul-19 05:53 PM
But be sure to buy at 1$
its bargain
Fill your bags
On the way to 0
Lanii30-Jul-19 05:54 PM
@Markus TA was calling for a dump on the last pump to 17k pre news
text book rejection
Thats why you don't bother with funnymental news
Markus30-Jul-19 05:56 PM
everything what happened was according to the TA
Neko30-Jul-19 05:56 PM
what TA is saying now
Markus30-Jul-19 05:57 PM
oversold on 4h so can get a bounce
hidden bullish divergence on macd
Neko30-Jul-19 05:58 PM
thanks.
Lanii30-Jul-19 06:00 PM
Bounce here
Last line of defense around 960
If not well ggs lads
btw there is no such thing as oversold or overbought
its just a meme
For every sell there is a buyer and vice versa
Markus30-Jul-19 06:02 PM
remember that its not kmd itself who looses value against btc other alts aswell
Lanii30-Jul-19 06:02 PM
henca a shitcoin can never be one or the other
Markus30-Jul-19 06:03 PM
but i think kmd is one of the few alts with most potential, the development of new tech is going on in a rapid speed, tell me one other platform u can compare it with
Lanii30-Jul-19 06:03 PM
Agreed
But I can also tell you that kmd is the coin that got me rekt the most
All other shitcoins I trade according to TA and would never take a 80% draw down
Markus30-Jul-19 06:04 PM
Yes it got rekt hard in sats value, still up in usd value tho since btc bottoming
Lanii30-Jul-19 06:05 PM
mh
anyways I think there is a high probability we could go as low as 960 and bounce
Potential HL in play
btw I'd prefer it to just bounce here
Markus30-Jul-19 06:06 PM
Yes possible but its fine, set some buy orders here and there later on this prices will never happen again
Lanii30-Jul-19 06:06 PM
sure thing buddy
thats what people been saying since 2018
"never this cheap again"
But it doesnt matter, I belive in kmd
I dont really trade it here being greedy for another 10% lower
Markus30-Jul-19 06:07 PM
Good projects will rise, this is just the begin of the bull cycle
there is years ahead
Lanii30-Jul-19 06:07 PM
there is no bull
until 11.5 is broken
and closes above it
for 2 weeks at least
Untill that happens this is just a rally in a bear market
Idk how something can be in a bull market without even reclaiming 50% of retracement
Markus30-Jul-19 06:08 PM
even if its a rally, then imagine bull market
Lanii30-Jul-19 06:08 PM
yeh
its unfortunate we couldnt hold 11.5
but you never know
Markus30-Jul-19 06:09 PM
i mean we rallied from 7k to 14k pretty much without any pullbacks


Encapsulates access to the database used for storing Workbooks, Pages, Recs and Editors.
More...
|
| static DatabaseService | Connect (string connectionString) |
| | Manually creates an instance of the class with the given connectionString . Typically, instances are not created manually but supplied by dependency injection. More...
|
| |
|
|
override void | OnModelCreating (ModelBuilder modelBuilder) |
| |
Encapsulates access to the database used for storing Workbooks, Pages, Recs and Editors.
◆ DatabaseService()
| Lingvo.Backend.Services.DatabaseService.DatabaseService |
( |
DbContextOptions< DatabaseService > |
options | ) |
|
|
inline |
Creates a new instance. The options are configured in Startup.ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection) and supplied by dependency injection.
◆ Connect()
| static DatabaseService Lingvo.Backend.Services.DatabaseService.Connect |
( |
string |
connectionString | ) |
|
|
inlinestatic |
Manually creates an instance of the class with the given connectionString . Typically, instances are not created manually but supplied by dependency injection.
- Parameters
-
◆ Delete() [1/3]
| void Lingvo.Backend.Services.DatabaseService.Delete |
( |
Recording |
recording | ) |
|
|
inline |
Deletes the specified recording .
◆ Delete() [2/3]
| void Lingvo.Backend.Services.DatabaseService.Delete |
( |
Page |
page | ) |
|
|
inline |
Deletes the specified page and the associated recording.
◆ Delete() [3/3]
| void Lingvo.Backend.Services.DatabaseService.Delete |
( |
Workbook |
workbook | ) |
|
|
inline |
Delete the specified workbook and all corresponding pages.
◆ FindPageWithRecording()
| Page Lingvo.Backend.Services.DatabaseService.FindPageWithRecording |
( |
int |
id | ) |
|
|
inline |
Finds the page with the given id and loads it from the database, including the associated Page.TeacherTrack.
◆ FindWorkbookWithReferences()
| Workbook Lingvo.Backend.Services.DatabaseService.FindWorkbookWithReferences |
( |
int |
id | ) |
|
|
inline |
Finds the workbook with the given id and loads it from the database, including its pages and their associated recordings.
◆ GetPagesWithReferences()
| List<Page> Lingvo.Backend.Services.DatabaseService.GetPagesWithReferences |
( |
| ) |
|
|
inline |
Loads all pages with their associated recordings from the database.
◆ GetWorkbooksWithReferences()
| List<Workbook> Lingvo.Backend.Services.DatabaseService.GetWorkbooksWithReferences |
( |
| ) |
|
|
inline |
Loads all workbooks, their pages and the associated recordings from the database.
◆ Save() [1/3]
| void Lingvo.Backend.Services.DatabaseService.Save |
( |
Recording |
recording | ) |
|
|
inline |
Saves the specified recording , updates it if it already exists.
◆ Save() [2/3]
| void Lingvo.Backend.Services.DatabaseService.Save |
( |
Page |
page | ) |
|
|
inline |
Saves the specified page , updates it if it already exists.
◆ Save() [3/3]
| void Lingvo.Backend.Services.DatabaseService.Save |
( |
Workbook |
workbook | ) |
|
|
inline |
Saves the specified workbook , updates it if it already exists.
◆ Editors
| DbSet<Editor> Lingvo.Backend.Services.DatabaseService.Editors |
|
getset |
Exposes the list of Editors stored in the database.
◆ Pages
| DbSet<Page> Lingvo.Backend.Services.DatabaseService.Pages |
|
getset |
Exposes the list of Pages stored in the database.
◆ Recordings
| DbSet<Recording> Lingvo.Backend.Services.DatabaseService.Recordings |
|
getset |
Exposes the list of Recordings stored in the database.
◆ Workbooks
| DbSet<Workbook> Lingvo.Backend.Services.DatabaseService.Workbooks |
|
getset |
Exposes the list of Workbooks stored in the database.
The documentation for this class was generated from the following file:
- src/Backend/Services/DatabaseService.cs


Senior Software dev. with hands on experience of Full Stack Development on MERN / Java Spring stack, Built Responsive, PWA on ReactJS. Worked on end to end high performant Microservices development covering all the aspects (System Design, low level coding , DB Integration) Good at problem solving and System Design with in-depth SQL/NoSql knowledge.An Eager learner and learning towards data engineering and cloud architecture
HTML,CSS (Bootstrap, AndDesign), JS( ReactJS, Jquery), React Native
Core Java( Spring Boot), NodeJS & ExpressJS, Python
GCP BigQuery, MongoDB, SQL
Agile, Team Leader, CI/CD, AWS(S3)


When evaluated as a hard-core off-road vehicle, the Jeep YJ
is often praised for its excellent fuel-injected motor and
panned for its weak axles and low, limited-articulation
suspension. Dealing with the suspension is easy enough:
there are many aftemarket kits available to lift the YJ and
dramatically increase the suspension's articulation.
Increasing the axle strength is another matter.
Yes, you can buy a stronger-than-stock custom-made axle...if
you can afford it. For most of us, though, that's not a
viable option. That leaves the option of building it
yourself. The do-it-yourself option does not mean that you
build an axle from scratch. Instead, you locate a likely
donor vehicle whose axle or axles best match your vehicle
and your requirements. The closer the match, the less work
and money you'll need to invest to complete the upgrade.
This write-up will summarize the process of installing Scout
axles and a Dana 300 xfer case into a YJ with an automatic
transmission.
My Setup and Why I Made These Choices
After a lot of pondering, I decided to install a pair of
Scout Dana 44 axles and a CJ Dana 300 transfer case. My
decision was based on the following requirements:
- Whatever axles I chose had to be cheap. In this respect,
I was extremely lucky that my good friend, Rob Bryce,
located a complete set of Scout axles for me which only cost
$65.
- The rear axle had to be compatible (same width, same bolt
pattern) with a front axle which permitted me to use free wheeling
hubs.
- I wanted to improve my brakes so the new axles had to
have larger brake components that would easily handle tires
up to 35" in diameter.
- The axle width had to be similar to my existing axles'.
I didn't want to run full-size axles nor did I want to incur
the cost of shortening axle housings and shafts.
- I wanted a front axle whose front diff was located on the
same side of the vehicle as my factory setup. The Scout
axles weren't a good choice in this respect but I was able
to affordably install a stronger transfer case which moved
the front driveshaft output to the same side as used on
Scouts.
- I wanted to do a swap which had been done before because,
to be honest, I'm not a great mechanic. I relied heavily on
the experiences of Rick Boiros and Rob Bryce, both of whom
had slipped Scout axles under Chrysler Jeeps.
|
|
Rear Dana 44:
The Scout II Dana 44 rear axle is the perfect width for a Wrangler
YJ. Spring perch movement is the hardest thing about this part
of the swap.
|
|
|
Front Dana 44:
The Scout II Dana 44 front axle comes with disk brakes and later
Scout front Dana 44s used the larger Dana 44 u-joint. The axle
is relatively very easy to swap in a Wrangler YJ.
|
|
|
Final Notes:
The Scout II Dana 44 axle swap requires a transfer case swap and
a few other details. Reflections on what axle swap is best for a
Wrangler YJ.
|


Now you can feel the Energy
Start your day fresh with your favorite coffee
Menu
Item:
Price $:
Enter Your Item
Item List


'Go now ... and take the board with you'
Former Wallabies coach Alan Jones has called on Rugby Australia chairman Cameron Clyne to go immediately and leave key tasks like finding the next national coach to a new-look board.
Clyne announced on Monday he won't stand for re-election at the completion of his difficult term in March.
He said he and the board remained committed to delivering a new broadcast deal, appointing Michael Cheika's replacement as Wallabies coach and concluding the legal matter involving Israel Folau.
Jones has been an outspoken critic of Clyne's tenure, which has been shadowed by the removal of Western Force from Super Rugby, the Folau saga and disappointing results from the Wallabies.
"Go now and take the board with you," Jones said on 2GB on Tuesday. "Let Australian rugby make a fresh start and no appointments should be made, coach or anybody, until a new administration is in place.
"This mob are lame ducks but they're going to lumber the next administration with whatever the lame ducks leave behind."
AAP


---
layout: presentation
title: Tutorial on GitHub, Reveal.js and Jekyll
order: 1
---
## GitHub,
## Reveal.js presentations,
## Jekyll websites
* Press 'o' for overview mode
* Use space bar to step through slides in order
* Use arrow keys to navigate presentation
* Organization is top to bottom, left to right
-vertical-
* **GitHub**: hosting, version control
* **Prose.io**: File editing
* **Reveal.js**: presentations
* **Jekyll**: websites
[jacob.moorman.me/slides/s18math290j/](https://jacob.moorman.me/slides/s18math290j/)
-vertical-
Open a web browser if you want to follow along
Chrome, Firefox, Internet Explorer, etc
-horizontal-
## Github
Create an account at [github.com/join](https://github.com/join)
-vertical-
Verify your email address
-vertical-
Options for creating a new project:
* Create a new empty repository
* Import code from an existing repository
* Fork an existing repository
-vertical-
To create a new empty repository,
click the plus at the top right corner
and select "New repository"
-vertical-
* Give your repository a name
* Tick "Initialize this repository with a README"
* Click "Create repository"
-vertical-
To import code from an existing repository,
click the plus at the top right corner
and select "Import repository"
-vertical-
* Paste a link to the existing repository
* Give your new repository a name
* Click "Begin import"
-vertical-
To fork an existing repository,
go to the repository you wish to fork
and click the fork button near the top right
-vertical-
-vertical-
Forking is very similar to importing code from an existing repository, but only works on repositories within GitHub.
-vertical-
To rename a repository,
go to the settings tab
-vertical-
Type the new name of your repository
and click "Rename".
-vertical-
The page should reload and the name of your repository should change
-vertical-
## Checkpoint
Go to the settings tab of your repository
Change the name of your repository to "test"
-vertical-
To host your GitHub project as a website,
go to the settings tab of your repository
-vertical-
* Scroll down until you see "GitHub Pages"
* Select "master branch"
* Click "Save"
-vertical-
Check that a confirmation message appears
-vertical-
Eventually the confirmation message turns green if you wait a while and refresh the page
(takes about 30 secs, tops)
-vertical-
## Checkpoint
* Go to the settings tab of your repository
* Enable GitHub Pages on "master branch"
* visit the site at [username.github.io/test/]()
---
You will see outdated content if you visit before the confirmation turns green
-vertical-
The home of a GitHub Pages site is
[username.github.io/repository-name/]()
Unless the repository name is "username.github.io"
which will be accessible at [username.github.io]()
-horizontal-
## Prose.io
An online GitHub file editor
-vertical-
Enable editing at [prose.io](https://prose.io)
-vertical-
Authorize prose to access your repositories
-vertical-
Open the "test" repository on prose.io
-vertical-
Create a new file
-vertical-
Name the file "index.md"
-vertical-
You can preview the file
by clicking the eyeball on the right
Switch back to editing by clicking
the pencil above the eyeball on the right
-vertical-
Save the file
* Click the save icon on the right
* Click "commit"
-vertical-
## Checkpoint
Verify that when you load [username.github.io/test]()
you see the contents of the file you just added
-vertical-
Today, everything will be written in Markdown
To view a summary of Markdown formatting, google "Markdown Cheatsheet" and click the first link
-horizontal-
## Reveal.js
Examples/Demonstrations
* [Reveal.js overview slides](https://revealjs.com/)
* [My 285J presentation](https://jacob.moorman.me/slides/s18math285j/)
* [This very presentation](https://jacob.moorman.me/slides/s18math290j/)
-vertical-
## Reveal.js
* beautiful html presentations
* slides exist in a 2d grid
* slides are ordered top-to-bottom, left-to-right
-vertical-
Fork [github.com/jdmoorman/slides]()
-vertical-
When finished, open the settings tab
-vertical-
Scroll down until you see the "GitHub Pages" section
Change the GitHub Pages branch to "master branch"
-vertical-
## Checkpoint
You should be able to load
[username.github.io/slides/template/]()
-vertical-
Remember
* Press 'o' for overview mode
* Use space bar to step through slides in order
* Use arrow keys to navigate presentation
* Organization is top to bottom, left to right
-vertical-
On prose.io, open the "slides" repository
-vertical-
Open the "template" folder
-vertical-
To edit your presentation
edit the code in "content.md"
-vertical-
To add inline equations such as \\( c = \sqrt{a^2+b^2} \\), surround with `\\( \\)`
```
\\( c = \sqrt{a^2+b^2} \\)
```
To add block equations such as \\[ c = \sqrt{a^2+b^2}, \\] surround with `\\[ \\]`
```
\\[ c = \sqrt{a^2+b^2} \\]
```
-vertical-
## Checkpoint
Try adding this equation to your presentation:
```
\\[ c = \sqrt{a^2+b^2} \\]
```
and verify that it renders correctly.
[username.github.io/slides/template/]()
-vertical-
To add a new slide in the current column, use
```markdown
-vertical-
```
To add a new slide and start a new column, use
```markdown
-horizontal-
```
These can be configured, but that's out of scope
-vertical-
Use Markdown to control the
appearance of your content
-horizontal-
## Jekyll
A website generator
Commonly used for blogs
-vertical-
For example: [jekyllrb.com]()
-vertical-
For example: [jacob.moorman.me](https://jacob.moorman.me)
-vertical-
Was generated from
barely any more code than just the text on the screen
-vertical-
For this tutorial, I've chosen the template "Hyde". However, most templates function similarly.
-vertical-
### Other Forkable Jekyll Templates
- [Lanyon](https://github.com/poole/lanyon) by MDO
- [mojombo.github.io](https://github.com/mojombo/mojombo.github.io) by Tom Preston-Werner
- [Left](https://github.com/holman/left) by Zach Holman
- [Minimal Mistakes](https://github.com/mmistakes/minimal-mistakes) by Michael Rose
- [Skinny Bones](https://github.com/mmistakes/skinny-bones-jekyll) by Michael Rose
- [Jekyll Now](https://github.com/barryclark/jekyll-now) by Barry Clark
---
List taken from [Barry Clark's Jekyll Now repo](https://github.com/barryclark/jekyll-now)
-vertical-
Most templates will not have equation rendering
built in, but I've added it to this one
-vertical-
Fork [github.com/jdmoorman/hyde](https://github.com/jdmoorman/hyde)
-vertical-
Open the settings tab, change the name
to [username.github.io](), and click rename
-vertical-
It's important that the name of the repository exactly matches [username.github.io]()
-vertical-
Scroll down until you see the "GitHub Pages" section
Change the GitHub Pages branch to "master branch"
-vertical-
Open a tab of prose.io and
open the [username.github.io]() repository
-vertical-
open "\_config.yml"
-vertical-
On line 13, change
```markdown
baseurl: "/hyde"
```
to
```markdown
baseurl: ""
```
and save the file
-vertical-
## Checkpoint
You should be able to load [username.github.io](https://mrmoorman.github.io/)
-vertical-
Back in "\_config.yml", change
```markdown
title: Hyde
description: 'A brazen two-column ...'
url: https://jacob.moorman.me/hyde/
```
to
```markdown
title: Your Name
description: 'A brief description of yourself'
url: https://username.github.io/
```
and save the file
-vertical-
also change
```markdown
author:
name: 'Jacob Moorman'
url: https://jacob.moorman.me/
```
to
```markdown
author:
name: 'Your Name'
url: https://username.github.io
```
and save the file
-vertical-
If you don't need a blog, you can change
```markdown
has_blog: True
```
to
```markdown
has_blog: False
```
but for now, just leave it as True
-vertical-
If you want to change the colorscheme, you can change
```markdown
theme_id: "7"
```
to any of \{7, 8, 9, a, b, c, d, e, f\}
-vertical-
## Checkpoint
Verify that the changes are reflected at
[username.github.io](https://mrmoorman.github.io/)
-horizontal-
## Adding pages
## to your website
-vertical-
Suppose you want to add pages for
each of the courses you teach.
-vertical-
in prose.io, go to the [username.github.io](https://mrmoorman.github.io/) repo
-vertical-
Add a new file
-vertical-
name the file "teaching.md"
-vertical-
Replace the contents of "teaching.md" with
```markdown
---
layout: page
title: Teaching
---
The courses I'm teaching are:
* [Course 1](/teaching/course1/)
* [Course 2](/teaching/course2/)
```
-vertical-
Save "teaching.md", and return to prose.io at [username.github.io]()
Add another new file
-vertical-
Name the file "teaching/course1.md"
This will create a directory called "teaching" and a file in that directory called "course1.md"
-vertical-
Replace the contents of "course1.md" with
```markdown
---
layout: default
---
## Hello from course 1
```
-vertical-
Create another file called "teaching/course2.md"
replace its contents with
```markdown
---
layout: default
---
## Hello from course 2
```
-vertical-
## Checkpoint
You should now be able to load
* [username.github.io/teaching/]()
* [username.github.io/teaching/course1/]()
* [username.github.io/teaching/course2/]()
And the links on the teaching page should work
-vertical-
To add a blog post, open prose.io to [username.github.io]()
navigate to the "\_posts" directory
-vertical-
Create a new file, give it whatever title you want
commit the file
-vertical-
Open the settings of the file,
Click "create draft"
-vertical-
Click "Draft to post" and commit
If you get a red warning, reload the page, hope the warning goes away
-vertical-
Click "Unpublished" and commit
-vertical-
-vertical-
## Checkpoint
Your new blog post should show up at
[username.github.io/blog/]()
-horizontal-
## Adding images
prose.io allows you to add images easily
find an image to add to your "About" page
-vertical-
Open [username.github.io/]() > about.md in prose.io
click the image icon
-vertical-
Drag and drop your image, but do not click "insert"
First you must specify where the image should go
-vertical-
For your website repository, a good location is:
```
/public/images/filename.jpg
```
For your slides repository, the location should be
```
/template/images/filename.jpg
```
-vertical-
Edit the location of the image, and click "insert"
-vertical-
A Markdown image link will be inserted into the text.
```markdown
![cat.png]({{site.baseurl}}/public/images/cat.png)
```
If you want to resize the image you can add
```markdown
{:height="36px" width="36px"}
```
or
```markdown
{:height="50%" width="50%"}
```
to the end of the line
-vertical-
## Checkpoint
Your image should show up at [username.github.io/]()
-horizontal-
## Things not covered that
## you may find useful
* Using Git for version control
* [How to install Node.js and npm](https://www.npmjs.com/get-npm)
* [How to host reveal.js locally](https://github.com/hakimel/reveal.js#installation)
* [How to host Jekyll locally](https://jekyllrb.com/docs/installation/)
* [How Jekyll works](https://jekyllrb.com/docs/home/)
* [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet)
-vertical-
There are subtle differences between Katex and MathJax
* Katex was used for website equations
* [supported commands](https://khan.github.io/KaTeX/function-support.html)
* renders way faster
* fewer supported commands
* MathJax for presentation equations
* [Supported commands](http://docs.mathjax.org/en/latest/tex.html)
* slow rendering
* more supported commands, plugins
-horizontal-
## Good Luck, Have Fun
If you need help, feel free to reach out
[jacob@moorman.me]()
These slides are available at
[jacob.moorman.me/slides/s18math290j](https://jacob.moorman.me/slides/s18math290j)


Distributed Systems Engineer | Wave Inc
Jan 2016 - April 2016
- Developed and shipped scalable, fault-tolerant backend services written in Python and Django for the accounting product that has 1.7 million users.
- Used messaging queues, database sharding, worker machines and denormalization to distribute load and perform heavy computations asynchronously
in the background, leading to more than 90% reduction in time required to generate unique financial reports for each user.
- Stored each database change as a sequence of immutable queryable events (Event Sourcing), resulting in improved concurrency control and auditability.
R&D Developer | DST Systems
April 2015 - Aug 2015
- Worked with the applied analytics division to add features, improvements and bug fixes to a big data engine which used transformation rules to clean, reduce and prepare
large datasets for analytics using Hadoop, Node.js, Redis, Rails, PostgreSQL and ActiveMQ.
- Developed a C++ and Python GUI that uses machine learning algorithms and relevant libraries (Numpy, Matlplotlib, Scikit-learn) to authenticate users
in real time based on their ECG (Electrocardiogram) which was acquired using data streamed via Bluetooth from a wearable device (Nymi band).
- Built an image viewer with Node.js and Bootstrap that interfaced with eye tracking hardware to monitor user performance and generate live heatmaps.
Test Developer | HubHead Corp
Sept 2014 - Dec 2014
- Wrote end to end and unit tests for a cloud-based data quality product using Angular.js, Protractor and Selenium, increasing test coverage by 40%.
- Detected and documented software bugs, by managing the automated testing infrastructure running on a Continuous Integration server (Jenkins).
Junior Developer & QA | Protecode Inc
Jan 2014 - April 2014
- Optimised SQL of a data warehousing GUI written in C# and PostgreSQL using SQL joins, reducing project processing time by about 25%.
- Developed web crawlers in C# to download over 120,000 open source projects into a MySQL database from websites like Github and SourceForge.


==
I've been around the world a bit and have been able to take in a bit of the the world's diversity and beauty and horrors.
The travelling doesn't stop though. My wife loves travelling since forever so we do go around the globe a bit more.
Of course there is a wishlist of countries I'd like to visit some time, but those are expensive or take a long time to travel to.


--- layout: post title: "A red-green-refactor checklist" description: "A simple read-do checklist for test-driven development." date: 2019-10-21 6:49 UTC tags: [Unit Testing] --- {% include JB/setup %}
{{ page.description }}
I recently read The Checklist Manifesto, a book about the power of checklists. That may sound off-putting and tedious, but I actually found it inspiring. It explains how checklists empower skilled professionals to focus on difficult problems, while preventing avoidable mistakes.
Since I read the book with the intent to see if there were ideas that we could apply in software development, I thought about checklists one might create for software development. Possibly the simplest checklist is one that describes the red-green-refactor cycle of test-driven development.
As the book describes, there's basically two types of checklists:
This list is, I think, mostly useful if you're still learning test-driven development. It can be easily internalised. As such, I offer this for inspiration, and as a learning aid.
Read each of the steps in the list and perform the task.
I regularly see people write failing tests as an initial step. The reason the test fails, however, is because the implementation throws an exception.
Consider, as an example, the first test you might write when doing the FizzBuzz kata.
[Fact] public void One() { string actual = FizzBuzz.Convert(1); Assert.Equal("1", actual); }
I wrote this test first (i.e. before the 'production' code) and used Visual Studio's refactoring tools to generate the implied type and method.
When I run the test, it fails.
Further investigation, however, reveals that the test fails when Convert
is called:
Ploeh.Katas.FizzBuzzKata.FizzBuzzTests.One Source: FizzBuzzTests.cs line: 11 Duration: 8 ms Message: System.NotImplementedException : The method or operation is not implemented. Stack Trace: at FizzBuzz.Convert(Int32 i) in FizzBuzz.cs line: 9 at FizzBuzzTests.One() in FizzBuzzTests.cs line: 13
This is hardly surprising, since this is the current 'implementation':
public static string Convert(int i) { throw new NotImplementedException(); }
This is what the subordinate do-confirm checklist is for. Did the test fail because of an assertion? In this case, the answer is no.
This means that you're not yet done with the read phase.
You can address the issue by changing the Convert
method:
public static string Convert(int i) { return ""; }
This causes the test to fail because of an assertion:
Ploeh.Katas.FizzBuzzKata.FizzBuzzTests.One Source: FizzBuzzTests.cs line: 11 Duration: 13 ms Message: Assert.Equal() Failure ↓ (pos 0) Expected: 1 Actual: ↑ (pos 0) Stack Trace: at FizzBuzzTests.One() in FizzBuzzTests.cs line: 14
Not only does the test fail because of an assertion - it fails because of the last assertion (since there's only one assertion). This completes the do-confirm checklist, and you're now ready to make the simplest change that could possibly work:
public static string Convert(int i) { return "1"; }
This passes the test suite.
It's important to see tests fail. Particularly, it's important to see tests fail for the reason you expect them to fail. You'd be surprised how often you inadvertently write an assertion that can never fail.
Once you've seen the test fail for the proper reason, make it pass.
Finally, refactor the code if necessary.
Comments
I remember the first time that I realized that I did the red step wrong because my test didn't fail for the intended reason (i.e. it didn't fail because of an assertion). Before that, I didn't realize that I needed to This is a nice programming checklist. Thanks for sharing it :)
If I can be a Devil's advocate for a moment, then I would say that code can always be improved and few things are necessary. In all honesty though, I think the refactoring step is the most interesting. All three steps include aspects of science and art, but I think the refactor step includes the most of both. On the one hand, it is extremely creative and full of judgement calls about what code should be refactored and what properties the resulting code should have. On the other hand, much of the work of how to (properly) refactor is laid out in books like Martin Fowler's Refacoring and is akin to algebraic manipulations of an algebraic formula.
In other words, I feel like there is room to expand on this checklist in the refactor step. Do you have any thoughts about you might expand it?
Tyson, thank you for writing. I agree that the refactoring step is both important and compelling. I can't, however, imagine how a checklist would be useful.
The point of The Checklist Manifesto is that checklists help identify avoidable mistakes. A checklist isn't intended to describe an algorithm, but rather to make sure that crucial steps aren't forgotten.
Another important point from The Checklist Manifesto is that a checklist is only effective if it's not too big. A checklist that tries to cover every eventuality isn't useful, because then people don't follow it.
As you write, refactoring is a big topic, covered by several books. All the creativity and experience that goes into refactoring doesn't seem like something that can easily be expressed as an effective checklist.
I don't mind being proven wrong, though, so by all means give it a go.


In Java, there can be multiple different versions of a single function which differ in the number and/or types of parameters. In @x:Act there can be only a single version of a function, but that single version can be set up to handle a wide range of parameters. This mechanism also supports optional keyword parameters and variable length parameter lists.
To write a function that has flexible parameter handling the function will have a single formal parameter prefixed with the % prefix operator.
When calling a function that has a single % formal parameter, the actual parameters are each evaluated and then combined into a single xdom:element object. The attributes of this object then contain the actual parameter values. Within the function body the rec view can be used to get named parameters and the array view can be used to get positional parameters.
There is also a special % form for actual parameters. If a function call contains a single actual parameter with is the % prefix operator applied to a xdom:element value then the actual parameter list is created by expanding the attributes of that xdom element.


Hello, I’m Prashant Pandey
I love to work in Web Designing & Problem Solving.
Because I love to solve the design problem and find easy and better
solutions to solve it. I always try my best to make good user interface with the best user experience.


<- Click here
to cancel any changes and go back to the museums list...
Use the tree items above to navigate to different pages...
Use the red buttons to go to the next or previous page...
(*) fields are required...
{$c{museum}->{error_text}}
help on
completing this
survey
Important
The information you supply here is used to create the online listing for your museum on museums4schools. Filling in the basic facts about your museum and its services should be fairly straightforward. The survey also includes questions about the areas of the curriculum that your permanent displays, object loan or outreach service could support (for brevity these are all called “permanent displays” in the survey). This is so that teachers can search the online database by curriculum theme. They will want to know if there is plenty to see and do related to their area of study,
so please only tick the themes for which your displays/object loan/outreach service really could be useful.
To keep updating to a minimum, the database does not include rapidly changing information. Rather, it will encourage teachers to get in touch with your museum or service directly to get up to date information on events, charging details, etc.
The curriculum themes are different for each Key Stage. The ages of children in each Key Stage are shown on the survey. If you know that school groups use your museum for other themes, please include these on the last page of the survey so that this information can be included in the listing for your museum.
For now, the online database is for primary teachers only. It will be extended to secondary teachers later in 2005, at which time you will be able to add information for Key Stages 3 and 4.
You don’t need to complete the survey all in one go. You can click “save and return later” at any time. The information will not appear on the website until you have finished the whole survey and it has been checked through by a member of our editorial staff.
general
info
For us to contact you about this survey:
your name (*)
job title
phone (*)
email
how do you prefer to be contacted?
radio_checked('contact_via', 'phone')}>
phone
radio_checked('contact_via', 'email')}>
email
radio_checked('contact_via', 'either')}>
don't mind
Information for inclusion on the website:
museum name (*)
full address
{$c{museum}->address}
town/city (*)
county (*)
{$c{museum}->get_county_options}
postcode (*)
your museum's website
general
info
education information and bookings phone
education information email
do you want your name to appear on the website?
radio_checked('publish_name', 'yes')}>
yes
radio_checked('publish_name', 'no')}>
no
radio_checked('publish_name', 'either')}>
don't mind
which days is the museum normally open to schools?
field_radio_checked('gen_open_mon', 'y')}>
mon
field_radio_checked('gen_open_tue', 'y')}>
tue
field_radio_checked('gen_open_wed', 'y')}>
wed
field_radio_checked('gen_open_thu', 'y')}>
thu
field_radio_checked('gen_open_fri', 'y')}>
fri
field_radio_checked('gen_open_sat', 'y')}>
sat
field_radio_checked('gen_open_sun', 'y')}>
sun
is the museum open all year round?
field_radio_checked('gen_openallyear', 'yes')}>
yes
field_radio_checked('gen_openallyear', 'no')}>
no
if not, when is the closed period?
how much of the museum is accessible to wheelchair users?
field_radio_checked('gen_wheelchair', 'noareas')}>
no areas
field_radio_checked('gen_wheelchair', 'someareas')}>
some areas
field_radio_checked('gen_wheelchair', 'mostareas')}>
most areas
field_radio_checked('gen_wheelchair', 'allareas')}>
all areas
is there somewhere for coaches to drop off and collect pupils?
field_radio_checked('gen_coaches', 'yes')}>
yes
field_radio_checked('gen_coaches', 'no')}>
no
does the museum regularly have temporary/changing exhibitions?
field_radio_checked('gen_exhibitions', 'yes')}>
yes
field_radio_checked('gen_exhibitions', 'no')}>
no
about
your
museum
Please give an overview of your museum or heritage organisation. This should be a snapshot (around 200 words), written for a teacher who has never heard of your museum or service.
The opening paragraph is the
first bit teachers will read
, so you may need to give it some thought. Describe what your organisation is and what it has to offer schools in a nutshell. Following paragraphs should give more detailed information, focussing on what you can offer
to schools
.
If you don’t want to start from scratch, try adapting a description that has already been written for other marketing purposes, such as:
Museums Association Museums & Galleries Yearbook
MuseumNet
www.museums.co.uk
Engage gallery finder (art galleries)
www.engage.org/galleryfinder
{$c{museum}->notes}
about
your
museum
Please answer the following questions about what your museum provides for school groups:
does the museum charge entry for school groups?
field_radio_checked('aym_chargegroups', 'yes')}>
yes
field_radio_checked('aym_chargegroups', 'no')}>
no
does the museum charge schools for educational sessions?
field_radio_checked('aym_chargesessions', 'yes')}>
yes
field_radio_checked('aym_chargesessions', 'no')}>
no
does the museum have a staffed education service?
field_radio_checked('aym_staffed', 'yes')}>
yes
field_radio_checked('aym_staffed', 'no')}>
no
does the museum have a separate education/study/workshop area?
field_radio_checked('aym_workshop', 'yes')}>
yes
field_radio_checked('aym_workshop', 'no')}>
no
does the museum have an area where school groups can have lunch?
field_radio_checked('aym_lunch', 'yes')}>
yes
field_radio_checked('aym_lunch', 'no')}>
no
does the museum offer help with planning school visits?
field_radio_checked('aym_offerhelp', 'yes')}>
yes
field_radio_checked('aym_offerhelp', 'no')}>
no
does the museum produce a visit planning guide?
field_radio_checked('aym_planningguide', 'yes')}>
yes
field_radio_checked('aym_planningguide', 'no')}>
no
does the museum offer teachers free planning visits?
field_radio_checked('aym_teachersfree', 'yes')}>
yes
field_radio_checked('aym_teachersfree', 'no')}>
no
would you like the museum to be described as "actively looking to work with teachers to develop new resources"?
field_radio_checked('aym_lookingtowork', 'yes')}>
yes
field_radio_checked('aym_lookingtowork', 'no')}>
no
education support:
key stage 1
Which of these is regularly offered
at the museum
for KS1 children (aged 5-7) and their teachers?
museum or gallery tours led by educators
field_radio_checked('ks1_museum_tours', 'y')}>
printed resources for pupils
field_radio_checked('ks1_museum_pupilres', 'y')}>
living history
field_radio_checked('ks1_museum_history', 'y')}>
on-gallery activities
field_radio_checked('ks1_museum_gallery', 'y')}>
printed resources for teachers
field_radio_checked('ks1_museum_teachres', 'y')}>
continuing professional development
field_radio_checked('ks1_museum_development', 'y')}>
does the museum offer sessions run by museum staff for children aged 5-7?
field_radio_checked('ks1_sessions', 'yes')}>
yes
field_radio_checked('ks1_sessions', 'no')}>
no
If "yes", which curriculum areas do they relate to?
History
field_radio_checked('ks1_sessions_yes_history', 'y')}>
Art & Design
field_radio_checked('ks1_sessions_yes_artdesign', 'y')}>
Design & Technology
field_radio_checked('ks1_sessions_yes_dandt', 'y')}>
Geography
field_radio_checked('ks1_sessions_yes_geography', 'y')}>
Science
field_radio_checked('ks1_sessions_yes_science', 'y')}>
Which of these is regularly offered for use
in schools
by KS1 children (aged 5-7) and their teachers?
loans boxes
field_radio_checked('ks1_schools_boxes', 'y')}>
printed resources for pupils
field_radio_checked('ks1_schools_pupilres', 'y')}>
printed resources for teachers
field_radio_checked('ks1_schools_teachres', 'y')}>
web-based or other e-learning resources
field_radio_checked('ks1_schools_web', 'y')}>
sessions led by museum staff
field_radio_checked('ks1_schools_sessions', 'y')}>
curriculum support:
key stage 1
The following are the main curriculum themes that museums can support at Key Stage 1. Are your permanent displays useful for KS1 children (aged 5-7) learning about:
History
Art & Design
Famous local people
field_radio_checked('ks1_history_famouspeople', 'y')}>
Portraits
field_radio_checked('ks1_artdesign_portraits', 'y')}>
Local people's lives in the past
field_radio_checked('ks1_history_localpeople', 'y')}>
Textiles
field_radio_checked('ks1_artdesign_textiles', 'y')}>
Toys past & present
field_radio_checked('ks1_history_toys', 'y')}>
Sculptures
field_radio_checked('ks1_artdesign_sculptures', 'y')}>
Homes past & present
field_radio_checked('ks1_history_homes', 'y')}>
Natural objects as inspiration for artwork
field_radio_checked('ks1_artdesign_natural', 'y')}>
Seaside holidays past & present
field_radio_checked('ks1_history_seaside', 'y')}>
Shape and pattern in buildings
field_radio_checked('ks1_artdesign_buildings', 'y')}>
Florence Nightingale, Crimean War
field_radio_checked('ks1_history_florence', 'y')}>
Remembrance Day
field_radio_checked('ks1_history_remember', 'y')}>
Design & Technology
Vehicles
field_radio_checked('ks1_dandt_vehicles', 'y')}>
Science
Wheels & axles
field_radio_checked('ks1_dandt_wheels', 'y')}>
Our bodies
field_radio_checked('ks1_science_bodies', 'y')}>
Puppets
field_radio_checked('ks1_dandt_puppets', 'y')}>
Local plants/their habitats
field_radio_checked('ks1_science_plants', 'y')}>
Houses and homes: different types of construction
field_radio_checked('ks1_dandt_homes', 'y')}>
Local animals/their habitats
field_radio_checked('ks1_science_animals', 'y')}>
Similarities and differences between living things
field_radio_checked('ks1_science_livingthings', 'y')}>
Geography
Properties and uses of common materials
field_radio_checked('ks1_science_materials', 'y')}>
Using maps
field_radio_checked('ks1_geography_maps', 'y')}>
Forces and movement
field_radio_checked('ks1_science_forces', 'y')}>
The local landscape
field_radio_checked('ks1_geography_landscape', 'y')}>
Using electricity
field_radio_checked('ks1_science_electricity', 'y')}>
Going to the seaside
field_radio_checked('ks1_geography_seaside', 'y')}>
Light and sound
field_radio_checked('ks1_science_light', 'y')}>
Any other KS1 curriculum areas not listed here?
If "yes", please specify on the last page.
field_radio_checked('ks1_notlisted', 'yes')}>
yes
field_radio_checked('ks1_notlisted', 'no')}>
no
education support:
key stage 2
Which of these is regularly offered
at the museum
for KS2 children (aged 7-11) and their teachers?
museum or gallery tours led by educators
field_radio_checked('ks2_museum_tours', 'y')}>
printed resources for pupils
field_radio_checked('ks2_museum_pupilres', 'y')}>
taught sessions or workshops
field_radio_checked('ks2_museum_workshops', 'y')}>
on-gallery activities
field_radio_checked('ks2_museum_gallery', 'y')}>
living history
field_radio_checked('ks2_museum_history', 'y')}>
continuing professional development
field_radio_checked('ks2_museum_development', 'y')}>
printed resources for teachers
field_radio_checked('ks2_museum_teachres', 'y')}>
Which of these is regularly offered for use
in schools
by KS2 children (aged 7-11) and their teachers?
loans boxes
field_radio_checked('ks2_schools_boxes', 'y')}>
printed resources for pupils
field_radio_checked('ks2_schools_pupilres', 'y')}>
printed resources for teachers
field_radio_checked('ks2_schools_teachres', 'y')}>
web-based or other e-learning resources
field_radio_checked('ks2_schools_web', 'y')}>
does the museum offer sessions
in schools
run by museum staff for KS2 children (aged 7-11)?
field_radio_checked('ks2_sessions', 'yes')}>
yes
field_radio_checked('ks2_sessions', 'no')}>
no
If "yes", which curriculum areas do they relate to?
History
field_radio_checked('ks2_sessions_yes_history', 'y')}>
Art & Design
field_radio_checked('ks2_sessions_yes_artdesign', 'y')}>
Design & Technology
field_radio_checked('ks2_sessions_yes_dandt', 'y')}>
Geography
field_radio_checked('ks2_sessions_yes_geography', 'y')}>
Science
field_radio_checked('ks2_sessions_yes_science', 'y')}>
curriculum support:
key stage 2
The following are the main curriculum themes that museums can support at Key Stage 2. Are your permanent displays useful for KS2 children (aged 7-11) learning about:
History
Science
Ancient Egypt
field_radio_checked('ks2_history_egypt', 'y')}>
Habitats, keys and food chains
field_radio_checked('ks2_science_foodchain', 'y')}>
Ancient Greeks
field_radio_checked('ks2_history_greeks', 'y')}>
Life cycles
field_radio_checked('ks2_science_lifecycles', 'y')}>
Indus Valley (ancient India)
field_radio_checked('ks2_history_indus', 'y')}>
Keeping healthy
field_radio_checked('ks2_science_healthy', 'y')}>
Romans
field_radio_checked('ks2_history_romans', 'y')}>
Skeletons and muscles
field_radio_checked('ks2_science_skeletons', 'y')}>
Anglo Saxons
field_radio_checked('ks2_history_saxons', 'y')}>
Helping plants grow well
field_radio_checked('ks2_science_plantsgrow', 'y')}>
Vikings
field_radio_checked('ks2_history_vikings', 'y')}>
Micro-organisms
field_radio_checked('ks2_science_microorganisms', 'y')}>
Henry VIII and his wives
field_radio_checked('ks2_history_henryviii', 'y')}>
Insulating and conducting materials
field_radio_checked('ks2_science_insulconduct', 'y')}>
Rich & poor in Tudor times
field_radio_checked('ks2_history_tudor', 'y')}>
Rocks and soils
field_radio_checked('ks2_science_rocks', 'y')}>
Local life in Victorian times
field_radio_checked('ks2_history_localvictorian', 'y')}>
Changing materials
field_radio_checked('ks2_science_materials', 'y')}>
Children in Victorian Britain
field_radio_checked('ks2_history_childrenvictorian', 'y')}>
Separating mixtures
field_radio_checked('ks2_science_mixtures', 'y')}>
Britain 1930-1947 and/or World War II
field_radio_checked('ks2_history_ww2', 'y')}>
Electricity and circuits
field_radio_checked('ks2_science_electricity', 'y')}>
Children in World War II
field_radio_checked('ks2_history_childrenww2', 'y')}>
Forces and motion
field_radio_checked('ks2_science_forces', 'y')}>
Britain since 1948
field_radio_checked('ks2_history_since1948', 'y')}>
Light and sound
field_radio_checked('ks2_science_light', 'y')}>
Famous local person or people from the past
field_radio_checked('ks2_history_famouslocals', 'y')}>
Earth, Sun and Moon
field_radio_checked('ks2_science_earth', 'y')}>
Local sites or buildings across time
field_radio_checked('ks2_history_localsites', 'y')}>
curriculum support:
key stage 2
Art & Design
Geography
Sculpture
field_radio_checked('ks2_artdesign_sculpture', 'y')}>
Using maps
field_radio_checked('ks2_geography_maps', 'y')}>
Public art
field_radio_checked('ks2_artdesign_publicart', 'y')}>
The geography of the local area
field_radio_checked('ks2_geography_localarea', 'y')}>
Still life
field_radio_checked('ks2_artdesign_stilllife', 'y')}>
Rivers and waterways
field_radio_checked('ks2_geography_rivers', 'y')}>
Landscapes
field_radio_checked('ks2_artdesign_landscapes', 'y')}>
Development of Roman, Anglo-Saxon or Viking settlements
field_radio_checked('ks2_geography_romans', 'y')}>
Images depicting relationships between people
field_radio_checked('ks2_artdesign_relationships', 'y')}>
Vessels and containers
field_radio_checked('ks2_artdesign_containers', 'y')}>
Citizenship
Chairs
field_radio_checked('ks2_artdesign_chairs', 'y')}>
Animal welfare and rights
field_radio_checked('ks2_citizenship_animal', 'y')}>
Textiles from different times and/or cultures
field_radio_checked('ks2_artdesign_textiles', 'y')}>
The media and reporting the news
field_radio_checked('ks2_citizenship_media', 'y')}>
Headwear from different times and/or cultures
field_radio_checked('ks2_artdesign_headwear', 'y')}>
Children's personal and cultural identities in a diverse world
field_radio_checked('ks2_citizenship_childrens', 'y')}>
Costume from different times and/or cultures
field_radio_checked('ks2_artdesign_costume', 'y')}>
Design & Technology
Purses, wallets and bags
field_radio_checked('ks2_dandt_purses', 'y')}>
Musical instruments from different times and/or cultures
field_radio_checked('ks2_dandt_instruments', 'y')}>
Moving toys
field_radio_checked('ks2_dandt_toys', 'y')}>
How motors work
field_radio_checked('ks2_dandt_motors', 'y')}>
Any other KS2 curriculum areas not listed here? If "yes", please specify on the next page.
field_radio_checked('ks2_anymore', 'yes')}>
yes
field_radio_checked('ks2_anymore', 'no')}>
no
what have we
missed?
{$c{museum}->extra_info}
save and finish
Click the button below when you are finished on this museum,
remember you can always come back and edit it later...
Saving - Please Wait ...


Graduating with a First Class Honours in Computer Science and subsequently being awarded a full PhD scholarship for research in Deep Learning and Big Data analytics. An outgoing researcher who wishes to continue developing technical skills and new approaches while providing meaningful real-world applications. Extensive range of relevant technical ability developed throughout time in academia. Highly motivated and hardworking, consistently looking to better oneself and others. Driven by self-learning and the gripping desire for completion. Throughout my research as a PhD student, I have taken an experimental stance, pushing for automated systems that can output results while I further my knowledge in topic areas. Creating a framework that can systematically process offshore satellite image data while utilising Convolutional Neural Networks to clean and classify with a continuous value correlated to the images sea height. I am currently in the process of submitting a conference paper with these experimental results, with several posters for upcoming internal and external poster conferences.
Quick development and prototyping experiments. Extensive use for deep learning in particular applications of convolutional and multilayered neural networks, graphing and statistical analysis.
Uses for highly optimized and niche programming solutions; such as high-performance computing and graphical simulations.
Large time spent using C# at undergraduate, large modular programs utilising abstraction and polymorphic behaviour.
Previous uses include androird mobile app development and game automation tools.
Used in both website development and light-weight web driven game creation.
The main focus of my PhD work as present, with a direct interest in image processing through neural networks, both discrete and continuous outputs. Future work aims analyse procedural content and synthetic images using generative models.
Research internship generating frameworks to process data through The University of Hull's supercomputer, Viper. Large-scale processing of matrix operations using Cuda and multiple high-end GPUs for deep learning.
Dissertation project for undergraduate creating a simulation with the ability to mimic real-world terrains. Providing a huge scale procedural planet which can be traversed in real time.
Throughout projects involving large-scale data, consistent access and use of data analysis tools to justify, graph and prepare data sets for future work. Using various supervised and unsupervised techniques to find hidden representations in data sets. Readable visualizations of data through heat maps and 3D plots.
List of academic posters and paper publications; both first and co-authored
Deep Learning for Wave Height Classification in Satellite Images for Offshore Wind Access
14/09/2018
Summarising preliminary experiments and poster publications into a broader collection of writing on the methodologies involved with; processing large amounts of open source satellite data, cleaning and preparation of the data set and the continuous classification of a wave height for a given satellite image.
Deep Learning for Wave Height Classification in Satellite Images for Offshore Wind Access
11/05/2018
Exploring ability to use large-scale open source satellite imagery with convolutional neural networks for efficient and scalable sea height prediction.
Utilising VIPER for Parameter Space Exploration in Agent-Based Wealth Distribution Models
01/09/2018
Developing a supercomputing framework with the ability to exhaust parameters in a model or simulation effectively.
Toolkit Development for Parallelized Agent Based Wealth Distribution Models
21/11/2018
Practical application of previous parameter exploration framework tools, simulation of an agent-based model aiming to reenact how financial population segregation occurs.
List of formal conferences, talks, presentations and events attended as I pursue my PhD
Poster - Deep Learning for Wave Height Classification in Satellite Images for Offshore Wind Access
19-20th June 2018
Gathering of current problem areas in offshore wind. Poster presented to a group of other technical experts working in the field
Poster - Scalable Deep Learning of Satellite Images, Preprocessing and Cleaning
7th June 2018
Collection of researchers and lectuers at the Unversirty of Hull, presenation and poster on current topic area. Preprocessing and cleaning of sattilite image data.
11-13th September 2018
First IGGI conference, connecting with other students and understanding the current state of work within the research group. Multiple relevant and notable talks on procedural content generation (PCG) with applied deep learning techniques specifically Sebastian Risi's talk on Playing and Designing Games through Bio-Inspired AI, with some good takeaways from Charlie Ringer, applying deep learning to the visual outputs of game streams on Twitch. Lastly some good interest from industry with creators of "hellblade" expressing curiosity for deep learning to assist in content generation within games in particular large scale "interesting" terrain.
Paper - Deep Learning for Wave Height Classification in Satellite Images for Offshore Wind Access
14th September 2018
Recorded presentation submitted alongside a technical paper for submission in Springer AI (LNAI)


Dear sir or madam Please let me introduce our company (NINGBO ENVOLT BATTERY CO.,LTD) to you, I am sorry if this letter disturb you, and please tell me I will remove your email address from our email list. Our company is a pioneer of new style enterprise in specialist of Zinc-manganese batteries and Alkaline manganese batteries. Our products have been past test through Acts testing Labs(H.K.) Ltd, China light industry quality supervise testing center. We are specialized in the batteries of R20P, R14P, R6P, R03P, 6F22, LR6, LR03 etc. The products are high power, high capacity and long life, which deeply welcomed by home and foreign customers. If you have some business about battery, we are appreciated your enquiry, we will supply good quality and competitive price. Many thanks. Best regards. Keven wei NINGBO ENVOLT BATTERY CO.,LTD Tel:0086-574-62598358 Fax:0086-574-62598338 http://www.envolt.com email: envoltbattery@163.com


{% extends "base.html" %} {% block bodyclass %}apps-gallery{% endblock %} {% block body %}
This is where you’ll find a whole library of apps to boost your Kippt experience. Submit your own app.
BrianMedia / Kipptr, Library
By BrianMedia
clipApp, Desktop
By MadeBy
Comfortable, iOS
By Daniela Petrova
FeedLeap, Web
By José Padilla
jkippt, Library
By Federico De Faveri
Keep, iOS
By Longoria Bros.
Keep-it, Android
By Eric Taix
Keep It (Windows Phone), Windows Phone
By Haythem Tlili
Kippt-Python-Wrapper, Library
By Thomas (TJ) Biddle
Kippt TCL plugin for Eggdrop, Other
By JaTu
kippt-tools, Other
By Mario Rimann
Kippt widget for WordPress, Other
By kekeblom
Kippt.NET, Library
By Haythem Tlili
Klippr, Other
By Martin Borho
LBCKipptKit, Library
By longoria
node-kippt, Library
By dph
omniauth-kippt, Library
By Greg Leppert
Pocket, iOS
By Pocket
thomasbiddle / Kippt-Bookmark-Importer, Library
By Thomas (TJ) Biddle
vesan / kippt, Library
By Vesa Vänskä


########### Request Example ################# # URL https:://app.divecentrehq.com/api/v1/pricing_plans #Request Body { pricing_plans: [ { billing_period: 30, description: "", id: 1, name: "Super Plan 1", number_of_customers: 10000, number_of_shops: 1, number_of_users: 1, price: 29.0, }, { billing_period: 30, description: "", id: 2, name: "Turtle", number_of_customers: 10000, number_of_shops: 1, number_of_users: 10, price: 32.0, } ] }


| ID # | Employee | Time (Start - Off) | Hours | Rest Day (s) | From (Date) | To (Date) | Status | Actions |
|---|---|---|---|---|---|---|---|---|
| 110302 | BROWN, MIA | 11:00:00 AM - 06:00:00 PM | 8 hours | Sunday, Saturday | Sat, Dec 01 2018 | Thu, Jan 31 2019 | Present Schedule | Edit Archive Delete |
| 001122 | QUINN, SEAN | 08:00:00 AM - 04:00:00 PM | 8 hours | Sunday, Saturday | Sat, Dec 01 2018 | Thu, Jan 31 2019 | Present Schedule | Edit Archive Delete |


PLANET SICK-BOY: http://www.sick-boy.com "We Put the SIN in Cinema"
There's something admirable about a film that manages to entertain despite not making any sense at all.   Personally, I blame the sneaky epiglottis for intercepting the brain's warning message, but I have no concrete proof of this.
Seconds is about a retired car thief named Randall "Memphis" Raines (Nicolas Cage, Bringing Out the Dead) who is temporarily drafted back into a life of crime when his younger brother Kip (Giovanni Ribisi, Boiler Room) ends up in hot water with a local bad ass with an English accent and a fetish for handcrafted wooden furniture. The Brit is Raymond Calitri (Christopher Eccleston, eXistenZ), and he turns down Memphis' offer of $10,000 for Kip, instead making the older Raines brother agree to boost fifty specific automobiles in four days to prevent him from becoming an only child.
It doesn't take long to set up the film's premise (about fifteen minutes), and I settled back in my seat under the assumption that I was in for a good hour-and-a-half of car boosting and the hilarious hijinks attendant thereto. But Seconds doesn't go down like that. While the bottom of the screen reminds viewers that there are only seventy-two hours remaining in Memphis' deadline, he has a touchy-feely breakfast with Kip. Wait a second. Kip? Why the heck would Calitri let Kip go? Couldn't he just skip town with Memphis and his $10,000 and leave Calitri and the car-jacking business behind them?
Memphis blows the next few days visiting his mom (Grace Zabriskie, Twin Peaks) and trying to put together a team of top-notch car thieves. He starts with the man that taught him everything he knows: former chop-shop owner Otto Halliwell (Robert Duvall, A Civil Action). Together, Memphis and Otto complete the rest of their lawbreaking lineup. The ranks include a mechanic/bartender named Sara "Sway" Wayland (Angelina Jolie, Girl, Interrupted), a mute morgue attendant called `The Sphinx' (Vinnie Jones, Lock, Stock & Two Smoking Barrels), and a driving instructor named Donny Astricky (Chi McBride, Mercury Rising). Memphis also reluctantly agrees to let Kip's gang assist in the heist. The Gen-Y brigands include Scott Caan (Ready to Rumble), James Duval (Go), T.J. Cross and William Lee Scott (Black & White).
Memphis and his criminal comrades plan to steal all fifty cars in one
twelve-hour period. And not just any twelve-hour period, but, of
course, the twelve-hour period immediately before the deadline (I
shouldn't complain – I waited until the morning of my 12th grade English
class to write my final thesis, even though I had months to complete the
project). To make matters worse, Memphis and crew are being pursued by
two cops (Delroy Lindo, Romeo Must Die, and Timothy Olyphant, Go), as
well as a rival gang of car thieves that actually complained that
Memphis stole the fifty-car job out from under them.
You know that the heist is going to go down to the wire, which begs the question `Why didn't they start earlier?' There's the mandatory chase through the L.A. River Aqueduct (which, at this point, is used only for filming Hollywood chase scenes), and the big shoot-‘em-up action finale is so ridiculously unbelievable that I couldn't help laughing out loud. And don't get up and leave when the big chase scene is over, because you'll miss Jones' hysterical, out-of-the-blue line, which is probably the best since Alyson Hannigan's `One time, in band camp…' confession in American Pie.
There are so many things in Seconds that just don't make sense, and I'm not sure I even have the space to list all of them here. Like when the bandits break into a warehouse full of about fifty rare, expensive cars, and the five that they need to boost are all lined up behind one another for easy removal. And how do you explain that each thief gets back out on the streets after they drop off the car they've just stolen? Seconds isn't even sure what city it's supposed to take place in, mentioning Long Beach several times, but filming multiple scenes in San Francisco in addition to the Los Angeles suburb.
Seconds is also full of all of the spastic editing, plot-holes and lack of female characters that you come to expect from a Jerry Bruckheimer (Armageddon) produced summer blockbuster. In addition to inciting the audience to root against the police and for the criminals, Seconds also features a couple of pretty bad racial stereotypes (black people can't swim and Asian women can't drive).
Seconds was directed by Dominic Sena (Kalifornia) and written by Scott Rosenberg (ConAir), who adapted the script from a little-seen 1974 H.B. Halicki film of the same name (it spawned a sequel called The Junkman eight years later). Despite its many flaws, Seconds is still worth the price of admission just for the unique and diverse casting, which includes big-name stars, regulars in independent cinema, a British soccer star and – get this – three Oscar winners (Cage, Jolie and Duvall).
1:52 - PG-13 for violence, adult situations and language
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Trader Iria:
Welcome! We have everything except what we don't have. Ha ha ha! If you want to buy, do so quickly. If you just want to browse...go away! We don't sell weapons that those dirty Humans make, so if you are looking for those you've come to the wrong shop. Ha ha!
Buy/Sell/Refund.
View information about the local lord and tax rate.
Quest


Memory Game
Welcome to the Memory Game! Your goal is to repeat the colors that light up by pressing the buttons!
Start
Stop
Buttons
4 Buttons
5 Buttons
6 Buttons
7 Buttons
8 Buttons
Difficulty
Easy
Medium
Hard
Dynamic
Sound
Melody
Pokemon
Nintendo
Wait...


NEWS.md
run_check_relatedness
not just fail IBD estimates d009da90
cleanData
that can distinguish between miss-specified filters and non-failing samples 7432b1ee; addresses issue #31
check_snp_missingness
, check_maf
and check_hwe
in cases where all samples pass perIndividualQC
. 31ed6f65; related to issue #31
evaluate_check_sex
and evaluate_check_het_imiss
for all passing samples and accordingly, no fail samples label in plot. d071a43
evaluate_*
functions, controlling text and title sizes (b38a348, f25b8d0)evaluate_check_ancestry
for missing non-reference samples 5c03971


NYUAD Housing Application
name
age
gender
distance from home
family income
medical history
class
submit my answers!


**Comparison of BPE implementation** # Goal I [rewrote](https://github.com/gwenzek/fastBPE) fastBPE from C++ to [Zig](https://ziglang.org/). FastBPE is a [C++ implementation](https://github.com/glample/fastBPE) of the Bytes Pair Encoding algorithm introduced by [Sennrich] et al. The main goal was to actually learn Zig on a small performance-oriented project. I'm also interested in the performance impact of changing language. C++ claims to be as fast as C while Zig claims to be faster than C thanks to better defaults. [#Sennrich]: Sennrich, Rico, Barry Haddow, and Alexandra Birch. [Neural Machine Translation of Rare Words with Subword Units](https://arxiv.org/abs/1508.07909) (2015) # What's BPE In NLP (Natural Language Processing), one of the first thing we do when feeding text to another algorithm is to split it into "words". The problem with "words" is that the notion is very specific to each languages, poorly defined for some languages, and on top of that you generally ends up with a very large vocabulary. This makes writting the "tokenizer" relatively complex, with a lot of language specific rules, and ends up being relatively slow. And it assumes you know in which language your text is in, which is not always so easy. The large vocabulary is also a problem for neural network trained to predict the next word in a sentence, because you need to compute a probability for each word in your vocabulary.  BPE aims to solve this issue by splitting the text in frequent chuncks of characters. So "I'm eating some apples." might become "I'm eat ing some appl es.". It doesn't aim at being linguistically correct, but rather at being a good compromise between speed, correctness, and coverage. I'm personally not a big fan of BPE, because it uses frequences rather than mutual information, but it's implementation is relatively straightforward, so I chose it for this exercise. If this topic interest, you look into [sentence piece](https://github.com/google/sentencepiece). Outline of the algorithm: * At train time, use some basic tokenization (on spaces, newlines, ...) * Compute the frequency of all n-grams * At inference time, reuse the same basic tokenization * Treat each character of the word as a token * Merge recursively the tokens, prioritizing those with the highest score: `e a t i n g -> ea t i n g -> ea t i ng -> ea t ing -> eat ing` * The algorithm is mostly linear but quadratic in the length of your words. # Zig implementation The first implementation was very much a translation of the C++ implementation, as I wanted to keep things comparable. The main difference is memory allocation. In Zig memory implementation is more explicit than in C++ and a bit more cumbersome. I decided to make the Zig version prealloacate memory and to not allocate during processing. The C++ implementation also do a lot of small string concatenations which was replaced by array slicing in Zig. I think this is fair because in Zig you have to think about memory allocation and preallocating makes everything easier. The main downside is that it can't handle "words" which are more than 4096 bytes long (but that shouldn't happen to often), and arbitrarely skip them in 4096 bytes chunks. I think when facing such pathological case I prefer my computer to default to an approximated solution rather than churning CPU at it. # Benchmark I evaluated the "apply" part of the algorithm starting from learned codes. The corpus used as input is 800k words long and is extracted from the French Wikipedia. All implementations produce the exact same files. For C++ there are two implementations: * `apply` takes a whole file, load it memory as one bytes array and treat it with 4 threads in parallel. * `apply_stream` read from stdin and process lines one by one in a single thread. I'm more interested by the second version because they are different use case where I won't have the file on disk: * The text is stored in compressed in a .gz file * The text on the disk is not tokenized and is piped through a tokenizer before BPE. * I don't want to preprocess 100Gb of text before starting working on the next step. The Zig implementation has only the stream, single core implemented yet. So unless mentioned implementation refers to the stream mode. `C++ (batch)` refers to the implementation with in memory file and 4 threads. | Implementation | Time | Word / s | |:---------------|------:|---------:| | C++ (batch) | 0.47s | 1702k/s | | C++ | 2.92s | 274k/s | | Zig | 0.97s | 825k/s | # Python wrapper Another thing I wanted to evaluate with this project is to compare the different way of writing C extension for Python. There are 3 main alternatives: Cython, pybind11, cffi. Here is a table comparing them summarizing from Stephan [Behnel] blog | Tool | API language | Static | Fast | |:--------:|:-------------|:--------|:-----| | Cython | Python-like | static | fast | | pybind11 | C++ | static | fast | | cffi | Python | dynamic | slow | | ctypes | Python | dynamic | slow | [#Behnel]: [Cython, pybind11, cffi – which tool should you choose?](http://blog.behnel.de/posts/cython-pybind11-cffi-which-tool-to-choose.html) - Stefan Behnel ## Python Wrapper Benchmark I was curious about the performance impact of the chosen python wrapper and the general overhead. The python code is pretty minimal and called Python functions are mostly direct C calls, with some string encoding. So I was expecting the Python impact to be negligible. ```py import fastBPE, sys, time def apply(file: str, codes: str) -> None: start = time.time() f = sys.stdin if file == "-" else open(file, mode="r") bpe = fastBPE.fastBPE(codes, "") for i, line in enumerate(f): s = bpe.apply([line[:-1]])[0] print(s) delay = time.time() - start print(f"Computed BPE on {i} sentences in {delay:.2f}s, using cython wrapper around cpp implementation", file=sys.stderr) ``` | Implementation | Time | Word / s | Overhead | |:---------------|------:|---------:|:---------| | C++ | 2.92s | 274/s | 1× (ref) | | C++ - Cython | 2.79s | 287/s | 0.95× | | Zig | 1.06s | 755/s | 1× (ref) | | Zig - Ctypes | 1.07s | 748/s | 1.01× | I'm not sure why the Cython implementation is faster than C++, The exact number varies across runs but I found the small speed up to be constistent. Maybe it's due to the Python IO being faster than `stdio.h` ? I don't know ^^ ## Flame graph I used [py-spy](https://www.benfrederickson.com/profiling-native-python-extensions-with-py-spy/) to benchmark the two python wrappers (click to enlarge). ![C++ - Cython](./test/cpp_cython.svg) The Cython flame graph is a mess, hard to see what's going around. I think the -O3 optimization level is inlining so much stuff that the call stack is probably mostly wrong. In particular the string concatenation isn't calling `process_bpe`. So I'm not sure how much conclusion we can draw from this one. Most of the time seems to be inside `unordered_map::find` which is logic. We can see we are also spending some 10% of our time into `vec::push_back` which is probably due to the vector often resizing. ![Zig - Ctypes](./test/zig_ctypes.svg) That's more readable. Apparently we spend 25% in `HashMap.ensureCapacityExact` which is called when the `HashMap` need to grow. This happens only when loading the bytes paires and their score from the disk. I should probably be more aggressive here with the first allocation, and I could also save in the file the number of pairs. I have to be careful if I want the zig code to read old models trained with the C++ code. I also spend 14% of the time copying back the results from the zig code to python. Currently the python code passes a buffer to python and copies the result to a new `bytes` object. I think it'd be better if Zig could directly return a Python bytes object, but I'm not sure how to do that. We also have `PyCFuncPtrCall` that cost 6%. This is the cost of calling the Zig function from Python. It can be mitigated by calling the a Zig function that reads the full file, but I think it's interesting to benchmark it this way, because one of the point of the Python wrapper is to grant more flexibility to the caller. # Parting word Overall it was fun to learn more about Zig and the onboarding was ok. I found myself reading more of the source code of the [standard library](https://github.com/ziglang/zig/blob/master/lib/std/hash_map.zig), because sometimes the [documentation](https://ziglang.org/documentation/0.6.0/std/#std) is still a bit lacking. But reading Zig code was also a good way of learning it :-) I'm new to Zig, so probably my code isn't the best, but you can [check it out](https://github.com/gwenzek/fastBPE/blob/master/fastBPE/applyBPE.zig). Thanks for reading ! Cheers, Guillaume


Officers and Important People
{{officer.fullName}}
{{officer.summoner}}
{{officer.position}}
{{person.fullName}}
{{person.summoner}}
{{person.contribution}}


calc_je
Grammar
Jacobian = calc_je( RR, AA, q, joints )
Global variables
J_type, Qe,
cc, ce,
num_q, Ez
Explanation
Function which calculates a Jacobian matrix of an end point specified by "joints."
In general, the linear and angular velocities of an end point are determined as follows.
| [ | vh | ] = Js*[ | v0 | ] + Jbm*qd |
| wh | w0 |
Js,JbmFJacobian matrix of base and end point
This function "calc_je" only calculates Jbm.
Size: 6 by num_q.


My life in World of Warcraft
Main Menu
About Legion
Experiences
Sightseeing
Lore
About Legion
Main Menu
About Legion
Experiences
Sightseeing
Lore
Experiences
Main Menu
About Legion
Experiences
Sightseeing
Lore
Sightseeing
Main Menu
About Legion
Experiences
Sightseeing
Lore
Lore


FACE/OFF A film review by Neal Richardson Copyright 1997 Neal Richardson
Principal Actors: John Travolta, Nicolas Cage Written by: Michael Colleary and Mike Werb Directed by: John Woo
3.5 out of 4 stars
Imagine what it might be like to wear the face of the person you hate the most. What would that do to you?
This is the dilemma at the heart of John Woo's latest action thriller, "Face/Off." The premise the screenwriters use to make us believe that the two leads "swap" faces is ludicrous but when this occurs we aren't really concerned with suspending our disbe lief. This movie has already sucked us in.
What makes this movie work is the intensity that Travolta and Cage bring to their roles as they play themselves and then switch roles a quarter of the way through the film. The scenes become more poignant as the audience knows who's really who and everyo ne else does not. A very interesting human drama unfolds as the best in these characters is brought out due to the role reversal.
If none of this grabs you as you watch this in a multiplex, John Woo's direction and outrageous stunts will. This is without a doubt his most Hong Kong like of his American films. Those who are familiar with Woo's style will undoubtedly smile knowingly at some of these shots throughout this picture.
This is an action movie with a lot of heart. You'll be hard pressed to find a better action film this summer.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


See a map view of our counselors.
Ohio, Northern
Ohio, Cleveland
Phoenix
Ohio, Columbus Area
East Coast
International Counselor


Charge
Currency
Due as of
Charge Time Type
Charge Calculation Type
Due
Paid
Waived
Outstanding
Transactions


Dallas Buyers Club
Larry King Now News - TheWrap Reviews · Movie Reviews · TV Reviews. Larry King grills the ABC series' star about. his character's return from the dead "Lisa Lampanelli" on Larry King Now! Print Video. Larry King gives his review of the movie "42" and talks about baseball great Jackie Robinson Read More


|
Hunter
(Dido) |
|
With
one light on in one room
I know you're up when I get home With one small step upon the stair I know your look when I get there If you were a king up there on your throne would you be wise enough to let me go for this queen you think you own Wants to be a hunter again wants to see the world alone again to take a chance on life again so let me go The unread book and painful look the tv's on, the sound is down One long pause then you begin oh look what the cat's brought in If you were a king up there on your throne would you be wise enough to let me go for this queen you think you own Wants to be a hunter again wants to see the world alone again to take a chance on life again so let me go let me leave For the crown you've placed upon my head feels too heavy now and I don't know what to say to you but I'll smile anyhow and all the time I'm thinking, thinking I want to be a hunter again want to see the world alone again to take a chance on life again so let me go. |


--- layout: post title: "MNIST GAN" date: 2018-07-31 00:52:31 -0700 category: ML featured: false description: Generative Adversarial Network, Deep Learning permalink: /mnist_gan.html title-image: gan.gif github: https://github.com/darkthecross/mnist_gan ---
Generative Adversarial Network is really a cool stuff, enabling human to use machine learning to generate a series of images, which are merely distinguishable from some real images.
This project is just a toy project for GAN. I'm building a generative neural network and a discriminative neural network, to automatically generate a MNIST image which represents number 9.


Some fun wave effects - mouse over!
Wavey
Wavalicious
super-cali-fraga-listic-expi-ali-docious
Tubular


It seems to be your first time using one of the Archipel applications.
To create your account, we need to make sure that you’re attached to a company.
Please choose an option below:
My company doesn't have a page yet.
Let's create one and invite members!
My company page has already been created.
Let's look for it.


src/app/types.ts
Interface for classes that hold the datetime-value of when they where last updated.
Properties |
| updatedAt |
updatedAt:
|
Type : string
|
| Optional |
|
Defined in src/app/types.ts:28
|
export interface UniqueId {
id?: string;
}
/**
* Interface for classes that hold the datetime-value
* of their creation
*/
export interface CreatedAt {
createdAt?: string;
}
/**
* Interface for classes that hold the datetime-value
* of when they where last updated.
*/
export interface UpdatedAt {
updatedAt?: string;
}
/**
* ManagedByGraphCool - This class should be used
* to be extended by all classes representing graphql
* schema-types managed by the graph.cool
* backend-framework
*
* Class defines the common properties
* id, createdAt and updated at that should
* by available on every graphql schema-type
* defined for this application and should be
* extended by every according typescript 'graphql-type'
* object-instance.
*/
export class ManagedByGraphCool implements UniqueId, CreatedAt, UpdatedAt {
/**
* Unique instance id managed by the graphcool-framework
*/
id?: string;
/**
* The datetime the particuler
* graphql schema-type instance was created.
* Managed by the graphcool-framework
*/
createdAt?: string;
/**
* The datetime the particuler
* graphql schema-type instance was updated.
* Managed by the graphcool-framework
*/
updatedAt?: string;
}
/**
* Class to hold data available at graphql schema-type
* Link, representing this schema-type within this application
*/
export class Link extends ManagedByGraphCool {
/**
* A short headline describing what this link
* is about.
*/
description?: string;
/**
* The actual url of the submitted link
*/
url?: string;
/**
* Reference to the user who submitted the link
*/
postedBy?: User;
/**
* References to the upvotes casted on the link
*/
votes?: Vote[];
/**
* Property to hold the count of casted votes
* so links can be ordered by votes on the sever-side
* by graphcool-framework default methodes.
*/
voteCount?: number;
/**
* Reference to the comments received on the link
*/
comments?: Comment[];
/**
* Property to hold the count of casted votes
* so links can be ordered by votes on the sever-side
* by graphcool-framework default methodes.
*/
commentCount?: number;
}
/**
* User - A User represents an authendicated Visitor of
* the application and receives access to additional features
* whitin the application
*
* Class to hold data available at graphql schema-type
* User, representing this schema-type within this application
*/
export class User extends ManagedByGraphCool {
/**
* The unique nickname used by the user within the application
*/
name?: string;
/**
* The unique email-adresse used by the user
* to be verified within the application
*/
email?: string;
/**
* The links submitted by the user
*/
links?: Link[];
/**
* References a users votes casted on links
*/
votes?: Vote[];
/**
* The users comments on submitted links
*/
comments?: Comment[];
/**
* References a users votes casted on comments
*/
commentUpVotes?: CommentVote[];
}
/**
* Vote - A Vote is a flag indicating that a user liked
* and/or found the contents of a submitted link useful
*
* Class to hold data available at graphql schema-type
* Vote, representing this schema-type within this application
*/
export class Vote extends ManagedByGraphCool {
/**
* Reference to the user that casted that vote
*/
user?: User;
/**
* Reference to the link the vote was casted on
*/
link?: Link;
}
/**
* Comment - A Comment represents a users response
* to a posted link or comment
*
* Class to hold data available at graphql schema-type
* Comment, representing this schema-type within this application
*/
export class Comment extends ManagedByGraphCool {
/**
* The message to replied to a link or comment
*/
message?: string;
/**
* As comments can be casted on comments, this flag
* should be used to signal how deep the casted comment
* is nested in the comment-tree structure
*/
depth?: number;
/**
* Reference to the link a comment is replied to
*/
link?: Link;
/**
* Reference to the user who casted the event
*/
user?: User;
/**
* References the votes casted on the comment
*/
votes?: CommentVote[];
/**
* Reference to the parent comment of a
* reply to a comment
*/
parent?: Comment;
/**
* References the children, or comments casted as reply
* to a comment
*/
responses?: Comment[];
}
/**
* CommentVote - A CommentVote represents that a user liked and/or
* found the response to link or comment useful.
*
* Class to hold data available at graphql schema-type
* Comment, representing this schema-type within this application
*/
export class CommentVote extends ManagedByGraphCool {
/**
* Reference to the user casting the vote on a comment
*/
user?: User;
/**
* Reference to the comment a user casted the vote on
*/
comment?: Comment;
}


Pslu_freeable_t Type Reference
#include <psymbfact.h>
Detailed Description
-- Structure returned by the symbolic factorization routine
Memory is allocated during parallel symbolic factorization
symbfact_dist, and freed after dist_symbLU routine.
(xlsub,lsub): lsub[*] contains the compressed subscript of
rectangular supernodes; xlsub[j] points to the starting
location of the j-th column in lsub[*]. Note that xlsub
is indexed by column.
Storage: row subscripts
(xusub,usub): lsub[*] contains the compressed subscript of
rectangular supernodes; xusub[j] points to the starting
location of the j-th row in usub[*]. Note that xusub
is indexed by rows.
Storage: column subscripts
(xsup_beg_loc,xsup_end_loc, supno_loc) describes mapping between
supernode and column, information local to each processor:
xsup_beg_loc[s] is the leading column of the local s-th supernode.
xsup_end_loc[s] is the last column of the local s-th supernode.
supno[i] is the supernode no to which column i belongs;
Field Documentation
The documentation for this type was generated from the following file:


We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.
Your name:
What's your mood?
Nah-Ney
Confused
Sad
Happy
What would you like to share about this space?


Angular-UI-History - Simple example
Warning - GitHub posting unsupported
GitHub pages does not support dynamic content so posting via the GitHub demo will not actually make the post appear in the history list
Latest Post
Files


I am planning to get my car in West Parkade. Suddenly, a big earthquake happened around UBC. It's too late to drive away. But I have a flyboard in my trunk. I can fly over UBC to the safest place, West 33rd Ave cross Arbutus St.
Let's find where West Parkade roughly is!


Your Tasks
You can do anything but you can't do everything
+
Outstanding Tasks:
2
to go!
Buy milk
01/12/19
✔
🗑
Finish coding homework
03/12/19
✔
🗑
Completed Tasks:
1
completed!
Do laundry
30/11/19


Bootstrap auto dismiss alert examples
Simple alert
(2000 ms)
simple success example
Dismissible alert
(default, 5000 ms)
×
Warning!
Better check yourself, you're not looking too good.
Events
(7000 ms)
Events example
Event messages