{% extends "templates/base.html" %} {% block "title" %}Timelapse Beehive{% endblock %} {% block "heading" %}Timelapse Beehive{% endblock %} {% block "main" %}
Becuase I'm curious about how bees sound inside the hive. Becuase I want to know what a bee sounds like if no-one's listening.
This project is in its very early stages. There's no data yet, but it's days away. Hopefully by mid-June 2015 there will be!
Yes, my blog is here with some more personal reflections.
A custom-written piece of software runs on an Android device (Nexus 7 tablet just because I happened to have one). It uploads recordings to a web server (written in Clojure). This then stores samples and splices them together. The splicing and spectrograms is done with the excellent SoX.
Yes, everything about this project is open source. The recordings are CC-BY licensed and the code is MIT licensed.
There's a highly criticised paper that says mobile phones damage bees' ability to navigate. It's pretty much discredited. That said, I was cautious about putting a mobile phone right up against a beehive. So my routine is to unplug the tablet, take it home and upload over wifi.
If you want to run this software, it could be easily changed to upload over a mobile connection if you wanted.
It's English. I went through a lot of Latin and Greek words, but you can't beat prosaic, obvious words. It seemed to work for FolkTuneFinder
Please do! Email me at<EMAIL_ADDRESS>and we can discuss. This site is just waiting for more people to upload stuff.
The Android application doesn't have to be used in a beehive. You can get the wav files off the device like any other file. Mail me at<EMAIL_ADDRESS>to discuss.


This was my first website to build at Moringa school.Here i picked up a skill in commandline ,git and github usage, scratch coding in Html and css.
My Name is Munge Kevin,over the years my dream has been of positive energy in technology contribution, nation building and making a generation of tech concious beings.Born and raised in the highlands of kisii, Kenya,studied my primary,highschool to join Jkuat univeristy and now currently at Moringa School doing what I love. In the past I have done project on wordpress, such as palaiseleganza.com,in Moringa I look forward to be a full stack developer .I prefer watching movies,series especially those that surround tech,fiction and drama ,my favourite being Triple frontier.
please view this site on git-hub pages at github page
This was my first website to build at Moringa school.Here i picked up a skill in commandline ,git and github usage, scratch coding in Html and css.
This was my second website(petweb) to build, here learnt how to create readme.md file incorporated HTML and Css language.
This was my third project(sololo resort) to build at Moringa school.Here i picked up a skill in commandline ,git and github usage, scratch coding in Html and css.The website is about a resort in marsabit.
Read more about Munge Kevin here Munge Kevin


Files | |
| file | ocmc_ecc_l2.h |
| This module defines the OCMC HAL. This file contains the OCMC Hardware Abstraction Layer API used for low-level programming of the OCMC IP. | |
Data Structures | |
| struct | vbuf_setup_raw_auto_addr_t |
| Structure used to setup the parameters for a VBUF configuration with auto address-generation. More... | |
| struct | vbuf_setup_raw_t |
| Structure used to setup the parameters for a VBUF configuration. More... | |
| struct | vbuf_setup_image_params_t |
| Structure used to setup a VBUF configuration using Image parameters. More... | |
| struct | vbuf_setup_image_params_auto_addr_t |
| Structure used to setup a VBUF configuration using Image parameters with auto address generation. More... | |
Enumerations | |
| enum | ocmc_ram_controller_t |
| Enumeration that contains all possible values for ocmc ram regions. | |
| enum | ocmc_ret_type_t |
| Enumeration that contains all possible return values from OCMC HAL APIs. | |
| enum | ocmc_intr_id_t |
| Enumeration that specifies all possible interrupt sources within the OCMC. | |
Functions | |
| ocmc_inst_t | OCMC_GetNumOCMC (void) |
| Query the chip for how many OCMC instances are on the chip. More... | |
| ocmc_ret_type_t | OCMC_Get_GP_MemoryBaseAndSize (uint32_t baseAddr, ocmc_addr_t *gp_mem_base, uint32_t *gp_mem_size) |
| Query where GP memory starts and what the GP memory size is. More... | |
| ocmc_ret_type_t | OCMC_Setup_VBUF (uint32_t baseAddr, ocmc_buf_id_t buf_id, const vbuf_setup_raw_t *vbuf_setup_raw) |
| API to set up a VBUF using VBUF and CBUF physical addresses. More... | |
| ocmc_ret_type_t | OCMC_Setup_VBUF_Address_Auto (uint32_t baseAddr, ocmc_buf_id_t buf_id, const vbuf_setup_raw_auto_addr_t *vbuf_setup_raw_auto_addr) |
| API to set up a VBUF using auto-generated virtual frame and CBUF addresses. More... | |
| ocmc_ret_type_t | OCMC_Setup_VBUF_With_Image_Params (uint32_t baseAddr, ocmc_buf_id_t buf_id, const vbuf_setup_image_params_t *vbuf_setup_image) |
| API to set up a VBUF using Image Parameters. More... | |
| ocmc_ret_type_t | OCMC_Setup_VBUF_With_Image_Params_Address_Auto (uint32_t baseAddr, ocmc_buf_id_t buf_id, const vbuf_setup_image_params_auto_addr_t *vbuf_setup_image_auto_addr) |
| API to set up a VBUF using Image Parameters With Automatic VBUF Start Address Selection. More... | |
| ocmc_ret_type_t | OCMC_Get_VBUF_Params (uint32_t baseAddr, ocmc_buf_id_t buf_id, vbuf_setup_raw_t *vbuf_setup_raw) |
| API to read a specified VBUF's programmed parameters. More... | |
| ocmc_ret_type_t | OCMC_CBUF_Heap_Init (ocmc_inst_t ocmc_inst_id) |
| CBUF Memory Heap Initialization. More... | |
| void * | OCMC_CBUF_Heap_Alloc (ocmc_inst_t ocmc_inst_id, const vbuf_setup_image_params_auto_addr_t *vbuf_setup_image_auto_addr, ocmc_ret_type_t *err) |
| Allocate CBUF Memory. More... | |
| ocmc_ret_type_t | OCMC_CBUF_Heap_Free (ocmc_inst_t ocmc_inst_id, const void *addr) |
| Free CBUF Memory. More... | |
| ocmc_ret_type_t | OCMC_CBUF_Deinit (ocmc_inst_t ocmc_inst_id) |
| Deinitialize CBUF memory. More... | |
| char * | OCMC_Get_Error_String (ocmc_ret_type_t err) |
| API to convert error code to string. More... | |
| uint32_t | OCMC_Inst_AddrGet (ocmc_inst_t ocmc_inst) |
| API gets OCMC instance base address for the OCMC instance number passed. More... | |
| ocmc_buf_id_t | OCMC_GetNumCBUF (void) |
| API gets number of circular buffer supported. More... | |
| ocmc_ret_type_t OCMC_CBUF_Deinit | ( | ocmc_inst_t | ocmc_inst_id | ) |
Deinitialize CBUF memory.
| [in] | ocmc_inst_id | OCMC instance number |
This function disables global CBUF mode
| void* OCMC_CBUF_Heap_Alloc | ( | ocmc_inst_t | ocmc_inst_id, |
| const vbuf_setup_image_params_auto_addr_t * | vbuf_setup_image_auto_addr, | ||
| ocmc_ret_type_t * | err | ||
| ) |
Allocate CBUF Memory.
| [in] | ocmc_inst_id | OCMC instance number |
| [in] | vbuf_setup_image_auto_addr | Pointer to structure containing image params |
| [out] | err | Returns error or success code |
Implementation Notes: this API uses underlying OCMC HAL API "OCMC_Setup_VBUF_With_Image_Params_Address_Auto" to program the next free buffer in one of the available OCMC instances.
| ocmc_ret_type_t OCMC_CBUF_Heap_Free | ( | ocmc_inst_t | ocmc_inst_id, |
| const void * | addr | ||
| ) |
Free CBUF Memory.
| [in] | ocmc_inst_id | OCMC instance number |
| [in] | addr | Memory address to be freed from OCMC CBUF |
Memory can be freed up in any order, however the usage of the overall Alloc/Free pair is expected to occur just once. ie, a bunch of Alloc calls occurring during the beginning of the program execution, and a bunch of Free calls occur in the end.
| ocmc_ret_type_t OCMC_CBUF_Heap_Init | ( | ocmc_inst_t | ocmc_inst_id | ) |
CBUF Memory Heap Initialization.
| [in] | ocmc_inst_id | OCMC instance number |
This function enables global CBUF mode
| char* OCMC_Get_Error_String | ( | ocmc_ret_type_t | err | ) |
API to convert error code to string.
| [in] | err | Error code as an enumerated value |
| ocmc_ret_type_t OCMC_Get_GP_MemoryBaseAndSize | ( | uint32_t | baseAddr, |
| ocmc_addr_t * | gp_mem_base, | ||
| uint32_t * | gp_mem_size | ||
| ) |
Query where GP memory starts and what the GP memory size is.
| [in] | baseAddr | OCMC Instance baseAddr |
| [out] | gp_mem_base | General Purpose memory start address |
| [out] | gp_mem_size | General Purpose memory size in bytes |
Implementation: Algorithm works by scanning through CBUF_n_START_ADDR and CBUF_n_SIZE registers and records the highes start address and associated size it finds.
GP memory is expected to begin from afterwards.
Usage: API is expected to be called after CBUFs have been configured
| ocmc_ret_type_t OCMC_Get_VBUF_Params | ( | uint32_t | baseAddr, |
| ocmc_buf_id_t | buf_id, | ||
| vbuf_setup_raw_t * | vbuf_setup_raw | ||
| ) |
API to read a specified VBUF's programmed parameters.
| [in] | baseAddr | OCMC Instance baseAddr |
| [in] | buf_id | Buffer Id |
| [out] | vbuf_setup_raw | Pointer to a vbuf_setup_raw_t structure. |
| ocmc_buf_id_t OCMC_GetNumCBUF | ( | void | ) |
API gets number of circular buffer supported.
| ocmc_inst_t OCMC_GetNumOCMC | ( | void | ) |
Query the chip for how many OCMC instances are on the chip.
Implementation Notes: the API is to be implemented by querying the chip's SW_ID register
| uint32_t OCMC_Inst_AddrGet | ( | ocmc_inst_t | ocmc_inst | ) |
API gets OCMC instance base address for the OCMC instance number passed.
| [in] | ocmc_inst | OCMC instance number |
| ocmc_ret_type_t OCMC_Setup_VBUF | ( | uint32_t | baseAddr, |
| ocmc_buf_id_t | buf_id, | ||
| const vbuf_setup_raw_t * | vbuf_setup_raw | ||
| ) |
API to set up a VBUF using VBUF and CBUF physical addresses.
| [in] | baseAddr | OCMC Instance baseAddr |
| [in] | buf_id | Buffer Id |
| [in] | vbuf_setup_raw | Pointer to vbuf_setup_raw_t structure. |
| ocmc_ret_type_t OCMC_Setup_VBUF_Address_Auto | ( | uint32_t | baseAddr, |
| ocmc_buf_id_t | buf_id, | ||
| const vbuf_setup_raw_auto_addr_t * | vbuf_setup_raw_auto_addr | ||
| ) |
API to set up a VBUF using auto-generated virtual frame and CBUF addresses.
| [in] | baseAddr | OCMC Instance baseAddr |
| [in] | buf_id | Buffer Id |
| [in] | vbuf_setup_raw_auto_addr | Pointer to vbuf_setup_raw_auto_addr_t structure. |
| ocmc_ret_type_t OCMC_Setup_VBUF_With_Image_Params | ( | uint32_t | baseAddr, |
| ocmc_buf_id_t | buf_id, | ||
| const vbuf_setup_image_params_t * | vbuf_setup_image | ||
| ) |
API to set up a VBUF using Image Parameters.
| [in] | baseAddr | OCMC Instance baseAddr |
| [in] | buf_id | Buffer Id |
| [in] | vbuf_setup_image | Pointer to vbuf_setup_image_params_t structure. |
| ocmc_ret_type_t OCMC_Setup_VBUF_With_Image_Params_Address_Auto | ( | uint32_t | baseAddr, |
| ocmc_buf_id_t | buf_id, | ||
| const vbuf_setup_image_params_auto_addr_t * | vbuf_setup_image_auto_addr | ||
| ) |
API to set up a VBUF using Image Parameters With Automatic VBUF Start Address Selection.
| [in] | baseAddr | OCMC Instance baseAddr |
| [in] | buf_id | Buffer Id |
| [in] | vbuf_setup_image_auto_addr | Pointer to vbuf_setup_image_params_auto_addr_t structure. |
Implementation Notes: This assumes that the VBUF programming is done sequentially starting with VBUF0 onwards. VBUF0 is allocated at the start of the virtual frame region. VBUF1 is allocated adjacent to the end of VBUF0, and so on.


01
02
03
04
05
Covid Detector Quiz
Determine whether you are covid symptomatic or not
Use the up and down arrows to navigate
Q1)
What is your Gender?
Male
Female
Q2)
What is your age group?
0-9
10-19
20-24
25-59
60+
Q3)
Please select all the applicable symptoms
Fever
tiredness
Sore-throat
Breathing Difficulty
Nasal Congestion
Runny Nose
Diarrhea
Body pains
Dry Cough
None
Q4)
Were you in contact with a covid positive person?
Yes
No
Not Sure
Submit
×
Result:
You are Mildly positive


Confirm employer identity
This is the first time you have recieved a request from this employer. To prevent fraud, you need to make sure they are who they say they are.
The company has told us it is:
Acme Coventry Ltd
Company number: 10542519
How to check this company
You can ask your contract at the company to confirm that they sent a request from their employer account with the reference number: 98HGS3F
Where can an employer find their reference number?
They can find it in a place in their DAS account


{% extends 'layout.html' %} {% block content %}
Thank you for registering, your registration is now complete. You are logged in now.


To remove a subscription, call the RemoveSecurity method.
self.RemoveSecurity(self.dataset_symbol)
RemoveSecurity(_datasetSymbol);
If you subscribe to Cross Asset Model data for assets in a dynamic universe, remove the dataset subscription when the asset leaves your universe. To view a common design pattern, see Track Security Changes.


Logikos Flash! Pro
File
Selected Cards
Drill
Bundle
Cards
Criteria
Edit
Options
Select
Drill
Edit
Tables
Add
Port
Settings
Card Front
Card Back
Previous Card
Over
Were you right?
Right
Wrong
Skip


A brief Timeline of the life and times of Carl Sagan astronomer and champion of the scientific method. Carl Sagan has and always will spark my love for science and rational thought.
JAN 5, 1950- Sagan started working as an advisor for NASA
NOV 17, 1966- 1st achieved national attention with his book "intelligent life in the universe"
AUG 18, 1968- Named director of Cornell's laboratory for planetary studies
The Dragons of Eden: Speculations on the Evolution of Human Intelligence
1977- The voyager project launches along with a the "Golden Disk" Dr. Sagan and his associates assembled 115 images and a variety of natural sounds, such as those made by surf, wind and thunder, birds, whales, and other animals. To this they added musical selections from different cultures and eras, and spoken greetings from Earth-people in fifty-five languages, and printed messages from President Carter and U.N. Secretary General Waldheim.
MAY 15, 1980- television series Cosmos: a personal voyage aired
JUN 11, 1983-Sagan introduced the idea of "Nuclear Winter"
DEC 20, 1996-Sagan died of a rare bone marrow disease
JAN 5, March 9, 2014 – present


Methods include converting series of event names to strings, finding common patterns in a group of strings, discovering featured patterns when comparing two groups of strings as well as the number and starting position of each pattern in each string, obtaining transition matrix, computing transition entropy, statistically comparing the difference between two groups of strings, and clustering string groups. Event names can be any action names or labels such as events in log files or areas of interest (AOIs) in eye tracking research.
| Version: | 0.3.2 |
| Depends: | R (≥ 3.0.1) |
| Imports: | utils, plyr, Rcpp, cluster, graphics, stats |
| Suggests: | testthat |
| Published: | 2017-08-15 |
| Author: | Hui Tang, Norbert J. Pienta |
| Maintainer: | Hui (Tom) Tang <htang2013 at gmail.com> |
| License: | GPL-2 |
| NeedsCompilation: | no |
| Materials: | README NEWS |
| CRAN checks: | GrpString results |
| Reference manual: | GrpString.pdf |
| Package source: | GrpString_0.3.2.tar.gz |
| Windows binaries: | r-devel: GrpString_0.3.2.zip, r-release: GrpString_0.3.2.zip, r-oldrel: GrpString_0.3.2.zip |
| OS X binaries: | r-release: GrpString_0.3.2.tgz, r-oldrel: GrpString_0.3.2.tgz |
| Old sources: | GrpString archive |
Please use the canonical form https://CRAN.R-project.org/package=GrpString to link to this page.


Bootbox official website
Bootbox.js is a small javaScript library which allows you to create programmatic dialog boxes using Bootstrap modals, without having to worry about creating, managing or removing any of the required DOM elements or JS event handlers.
Examples
Work With Nifty Effects
Sweet Alert official website
Sweet Alert Styles
Here’s a comparison of a standard error message. The first one uses the built-in alert-function, while the second is using sweetAlert. SweetAlert automatically centers itself on the page and looks great no matter if you're using a desktop computer, mobile or tablet. It's even highly customizeable, as you can see below!
With a function attached to the "Confirm" button :
And by passing a parameter, you can execute something else for "Cancel".


{% extends "base.html" %} {% block title %}
Medieval catalogues > CISTERCIANS > Waverley > Leland, c. 1536-40
{% endif %}5 identified entries found.
All data was derived from the List of Identifications by Professor Richard Sharpe.
{% if not printing %}
A key to codes used in the List is available (opens in new tab).{% endif %}


National Student Employment Week 2015
Created by Rachel Naomi Beser | @rachelbeser | Linkedin | rachelnaomidesign[at]gmail[dot]com
“If you want something done, ask a busy person.”
Summer 2006, Entomology Lab at University of Maryland, Lab Intern
November 2007 – January 2009, Towson University, Gallery Attendant
November 2008 – August 2010, Ann Taylor Loft, Sales Associate
August 2008 – May 2010, AIGA Towson, Event Coordinator and President
Post Graduation Reflections
August 2008 – May 2010, Event Coordinator and President
“Treat your Career Like a Bad Boyfriend.”
“Creativity is connected to your passion, that light inside you that drives you.”
Dale Carnegie, How to Win Friends and Influence People
Michael Janda, Burn Your Portfolio: Stuff they don't teach you in design school, but should
Sophia Amouruso, #Girlboss
Sheryl Sandberg, Lean In: Women, Work, and the Will to Lead
Amy Poehler, Yes Please
Access slides at rachelbeserdesign.com/nsew-2015


Choicelet Playback Tool
keyboard_arrow_down
Choose Choicelet
Choose Choicelet
keyboard_arrow_down
Choose Version
Choose Version
Loading Choicelet information...
Sessions for
#
State Id
Group
User
Date/Time
Duration
Closed


| java.lang.Object | ||
| ↳ | android.graphics.PathMeasure | |
| ↳ | com.sccomponents.gauges.library.ScPathMeasure |
Extend the PathMeasure because the original class not consider the contours in its totality.
|
[Expand]
Inherited Constants | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
From class
android.graphics.PathMeasure
|
| Public Constructors | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| ScPathMeasure() | |||||||||||
| ScPathMeasure(Path path, boolean forceClosed) |
| Public Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| boolean |
contains(float x, float y, float threshold)
Check if the passed point is on the path the threshold parameter define the checking
tolerance.
| ||||||||||
| RectF |
getBounds()
Get the path bounds.
| ||||||||||
| float |
getContourDistance(float distance)
Get the real distance from the own contour.
| ||||||||||
| float |
getDistance(float x, float y, float threshold)
Find the distance (from path start) of point nearest to the passed one considering
only the area defined by the threshold parameter.
| ||||||||||
| float |
getDistance(float x, float y)
Find the distance (from path start) of point nearest to the passed one.
| ||||||||||
| float |
getLength()
Get the length of a path considering all the contours.
| ||||||||||
| Path |
getPath(float distance)
Get the source path, between all contours, where the distance fall.
| ||||||||||
| Path |
getPath()
Get the source path.
| ||||||||||
| Path[] |
getPaths()
Divide the current path in an array of contours.
| ||||||||||
| boolean |
getPosTan(float distance, float[] pos, float[] tan)
Pins distance to 0 <= distance <= getLength(), and then computes the corresponding position
and tangent.
| ||||||||||
| boolean |
getSegment(float startD, float stopD, Path dst, boolean startWithMoveTo)
Given a start and stop distance, return in dst the intervening segment(s).
| ||||||||||
| void |
setPath(Path path, boolean forceClosed)
Set the current path.
|
|
[Expand]
Inherited Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
From class
android.graphics.PathMeasure
| |||||||||||
|
From class
java.lang.Object
|
Check if the passed point is on the path the threshold parameter define the checking tolerance. Noted that this method take valid all contours.
| x | the x of point |
|---|---|
| y | the y of point |
| threshold | the threshold to define the checking area |
Get the path bounds. Noted that this method consider all contours. If the path changed you must recall a setPath to update this value. As the computeBounds of the path object seem not work proper I must cycle point by point of path for find the right path boundaries.
Get the real distance from the own contour.
| distance | from the start |
|---|
Find the distance (from path start) of point nearest to the passed one considering only the area defined by the threshold parameter. Noted that this method consider all contours.
| x | the x of point |
|---|---|
| y | the y of point |
| threshold | the threshold to define the checking area |
Find the distance (from path start) of point nearest to the passed one. Noted that this method consider all contours.
| x | the x of point |
|---|---|
| y | the y of point |
Get the length of a path considering all the contours. If the path changed you must recall a setPath to update this value.
Get the source path, between all contours, where the distance fall.
Get the source path.
Divide the current path in an array of contours.
Pins distance to 0 <= distance <= getLength(), and then computes the corresponding position and tangent. Returns false if there is no path, or a zero-length path was specified, in which case position and tangent are unchanged. Noted that this override method consider all contours.
| distance | The distance along the current contour to sample |
|---|---|
| pos | If not null, returns the sampled position (x==[0], y==[1]) |
| tan | If not null, returns the sampled tangent (x==[0], y==[1]) |
Given a start and stop distance, return in dst the intervening segment(s).
If the segment is zero-length, return false, else return true.
startD and stopD are pinned to legal values (0..getLength()).
If startD <= stopD then return false (and leave dst untouched).
Begin the segment with a moveTo if startWithMoveTo is true.
On KITKAT
and earlier
releases, the resulting path may not display on a hardware-accelerated Canvas.
A simple workaround is to add a single operation to this path, such as
dst.rLineTo(0, 0)
.
Noted that this override method consider all contours.
| startD | the start distance |
|---|---|
| stopD | the end distance |
| dst | the destination path |
| startWithMoveTo | start with a moveTo calling |
Set the current path.
| path | the source path |
|---|---|
| forceClosed | force to close |


Nawab Faizunnesa Govt. College
WEB BASED RESULT PUBLICATION SYSTEM
XII Test Result-2009
| Roll No | 564500 | Registration | [NOT SHOWN] |
|---|---|---|---|
| Name | Rashadul Alam | Type | Regular |
| Group | Business studies | Session | 2018-2019 |
| Result | GPA=3.00 |
Subject-Wise Grade/Marks
| Subject Code | Subject Name | Grade |
|---|---|---|
| 101 | Bangla | A |
| 101 | Bangla | A |
| 101 | Bangla | A |
| 101 | Bangla | A |


Align View Background View Border View Clearfix View Display View Divider View Flex View Float View Height View Hide View Loader View Opacity View Overflow View Position View Rounded View Shadow View Spacing View Text View Transition View Width View


hanoi university of science and technology
school of international education
Previous
Next
Sign In
Email address
Password
Sign In
Forgot your password?


Assessing the Disruption of Public Spaces
Climate Change’s Impacts on Public Spaces in Boston
Team members: Cristina | Max | Yael | Xuenan
Department of Urban Studies and Planning at MIT
Click Me!


function u(t) {
u(t) is called 60 times per second.
t: Elapsed time in seconds.
S: Shorthand for Math.sin.
C: Shorthand for Math.cos.
T: Shorthand for Math.tan.
R: Function that generates rgba-strings, usage ex.: R(255, 255, 255, 0.5)
c: A 1920x1080 canvas.
x: A 2D context for that canvas.


Sequence Back
Sequence Sequence
The Sequence
object provides a unified API encapsulating the notion of
zero or more consecutive elements in a collection, stream, etc.
Lazy evaluation
Generally speaking, creating a sequence should not be an expensive operation,
and should not iterate over an underlying source or trigger any side effects.
This means that chaining together methods that return sequences incurs only
the cost of creating the Sequence
objects themselves and not the cost of
iterating an underlying data source multiple times.
The following code, for example, creates 4 sequences and does nothing with
source
:
var seq = Lazy(source) // 1st sequence
.map(func) // 2nd
.filter(pred) // 3rd
.reverse(); // 4th
Lazy's convention is to hold off on iterating or otherwise doing anything
(aside from creating Sequence
objects) until you call each
:
seq.each(function(x) { console.log(x); });
Defining custom sequences
Defining your own type of sequence is relatively simple:
- Pass a method name and an initialization function to
Sequence.define
. By convention, this function should at least accept aparent
parameter as its first argument, which will be set to the underlying sequence. - Define an
each
method on this new function's prototype, which accepts a function as a parameter and callsthis.parent.each
to fetch elements one by one from the underlying sequence.
As a trivial example, the following code defines a new type of sequence
called SampleSequence
which randomly may or may not include each element
from its parent.
var SampleSequence = Lazy.Sequence.define("sample");
SampleSequence.prototype.each = function(fn) {
this.parent.each(function(e) {
// 50/50 chance of including this element.
if (Math.random() > 0.5) {
return fn(e);
}
});
};
(Of course, the above could also easily have been implemented using
#filter
instead of creating a custom sequence. But I did say this
was a trivial example, to be fair.)
Now it will be possible to create this type of sequence from any parent sequence by calling the method name you specified. In other words, you can now do this:
Lazy(arr).sample();
Lazy(arr).map(func).sample();
Lazy(arr).map(func).filter(pred).sample();
Etc., etc.
define Sequence.define
Sequence
.Example
var VerboseSequence = Sequence.define("verbose");
// This sequence type logs every element to the console
// as it iterates over it.
VerboseSequence.prototype.each = function(fn) {
this.parent.each(function(e, i) {
console.log(e);
return fn(e, i);
});
};
Lazy([1, 2, 3]).verbose().toArray();
// (logs the numbers 1, 2, and 3 to the console)
Parameters
| Name | Type | Description |
|---|---|---|
| methodName | string | The name of the method to be used for constructing
the new sequence. The method will be attached to the Sequence prototype
so that it can be chained with any other sequence methods, like
#map , #filter , etc. |
| init | Function | Any initialization logic for the sequence type. |
Returns
| Type | Description |
|---|---|
| Function | A constructor for a new type inheriting from Sequence . |
all Sequence#all
Sequence#every
.any Sequence#any
Sequence#some
.async Sequence#async
each
.Example
Lazy([1, 2, 3]).async(1000).each(function(x) {
console.log(x);
});
// (logs the numbers 1, 2, and 3 to the console, one second apart)
Parameters
| Name | Type | Description |
|---|---|---|
| interval | number | The approximate period, in milliseconds, that should elapse between each element in the resulting sequence. Omitting this argument will result in the fastest possible asynchronous iteration. |
Returns
| Type | Description |
|---|---|
| AsyncSequence | The new asynchronous sequence. |
collect Sequence#collect
Sequence#map
.compact Sequence#compact
false
, 0
, ""
, null
, and undefined
).Example
Lazy(["foo", null, "bar", undefined]).compact();
// => sequence: ("foo", "bar")
Returns
| Type | Description |
|---|---|
| Sequence | The new sequence. |
concat Sequence#concat
Example
var left = [1, 2, 3];
var right = [4, 5, 6];
var both = Lazy(left).concat(right);
// => sequence: (1, 2, 3, 4, 5, 6)
Parameters
| Name | Type | Description |
|---|---|---|
| var_args | * | One or more values (or arrays of values) to use for additional items after this sequence. |
Returns
| Type | Description |
|---|---|
| Sequence | The new sequence. |
contains Sequence#contains
Example
var numbers = [5, 10, 15, 20];
Lazy(numbers).contains(15);
// => true
Lazy(numbers).contains(13);
// => false
Parameters
| Name | Type | Description |
|---|---|---|
| value | * | The element to search for in the sequence. |
Returns
| Type | Description |
|---|---|
| boolean | True if the sequence contains the value, false if not. |
countBy Sequence#countBy
Example
var numbers = [1, 2, 3, 4, 5];
var oddsAndEvens = Lazy(numbers).countBy(function(x) {
return x % 2 == 1 ? "odd" : "even";
});
// => sequence: (["odd", 3], ["even", 2])
Parameters
| Name | Type | Description |
|---|---|---|
| keyFn | Function | The function to call on the elements in this sequence to obtain a key by which to count them. |
Returns
| Type | Description |
|---|---|
| Sequence | The new sequence. |
detect Sequence#detect
Sequence#find
.difference Sequence#difference
Sequence#without
.drop Sequence#drop
Sequence#rest
.each Sequence#each
Example
var subordinates = [joe, bill, wendy];
Lazy(subordinates).each(function(s) { s.reprimand(); });
Parameters
| Name | Type | Description |
|---|---|---|
| fn | Function | The function to call on each element in the sequence. Return false from the function to end the iteration. |
every Sequence#every
Example
var numbers = [1, 2, 3, 4, 5];
var allEven = Lazy(numbers).every(function(x) { return x % 2 === 0; });
// => false
var allPositive = Lazy(numbers).every(function(x) { return x > 0; });
// => true
Parameters
| Name | Type | Description |
|---|---|---|
| predicate | Function | A function to call on (potentially) every element in this sequence. |
Returns
| Type | Description |
|---|---|
| boolean | True if predicate returns true for every element in the
sequence (or the sequence is empty). False if predicate returns false
for at least one element. |
filter Sequence#filter
Sequence#select
.find Sequence#find
Example
var numbers = [5, 6, 7, 8, 9, 10];
Lazy(numbers).find(function(x) { return x % 3 === 0; });
// => 6
Lazy(numbers).find(function(x) { return x < 0; });
// => undefined
Parameters
| Name | Type | Description |
|---|---|---|
| predicate | Function | A function to call on (potentially) every element in the sequence. |
Returns
| Type | Description |
|---|---|
| * | The first element in the sequence for which predicate returns
true , or undefined if no such element is found. |
findWhere Sequence#findWhere
Example
var words = ["foo", "bar"];
var foo = Lazy(words).findWhere({ 0: "f" });
// => "foo"
Parameters
| Name | Type | Description |
|---|---|---|
| properties | Object | The properties that should be found on some element in this sequence. |
Returns
| Type | Description |
|---|---|
| * | The found element, or undefined if none exists in this
sequence. |
first Sequence#first
undefined
) simply returns the first element of this sequence.Example
function powerOfTwo(exp) {
return Math.pow(2, exp);
}
var firstTenPowersOf2 = Lazy.generate(powerOfTwo).first(10);
// => sequence: (1, 2, 4, ..., 512)
Parameters
| Name | Type | Description |
|---|---|---|
| count | number | The number of elements to take from this sequence. If this value exceeds the length of the sequence, the resulting sequence will be essentially the same as this one. |
flatten Sequence#flatten
Example
Lazy([1, [2, 3], [4, [5]]]).flatten();
// => sequence: (1, 2, 3, 4, 5)
Returns
| Type | Description |
|---|---|
| Sequence | The new sequence. |
foldl Sequence#foldl
Sequence#reduce
.foldr Sequence#foldr
Sequence#reduceRight
.forEach Sequence#forEach
Sequence#each
.getIterator Sequence#getIterator
Creates an iterator object with two methods, moveNext
-- returning true or
false -- and current
-- returning the current value.
This method is used when asynchronously iterating over sequences. Any type
inheriting from Sequence
must implement this method or it can't support
asynchronous iteration.
Example
var iterator = Lazy([1, 2]).getIterator();
iterator.moveNext();
// => true
iterator.current();
// => 1
iterator.moveNext();
// => true
iterator.current();
// => 2
iterator.moveNext();
// => false
Returns
| Type | Description |
|---|---|
| Iterator | An iterator object. |
groupBy Sequence#groupBy
[key, values]
where values
is an array containing all of
the elements in this sequence with the same key.Example
var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var oddsAndEvens = Lazy(numbers).groupBy(function(x) {
return x % 2 == 1 ? "odd" : "even";
});
// => sequence: (["odd", [1, 3, ..., 9]], ["even", [2, 4, ..., 10]])
Parameters
| Name | Type | Description |
|---|---|---|
| keyFn | Function | The function to call on the elements in this sequence to obtain a key by which to group them. |
Returns
| Type | Description |
|---|---|
| Sequence | The new sequence. |
head Sequence#head
Sequence#first
.indexOf Sequence#indexOf
Example
Lazy(["foo", "bar", "baz"]).indexOf("bar");
// => 1
Lazy([1, 2, 3]).indexOf(4);
// => -1
Lazy([1, 2, 3]).map(function(x) { return x * 2; }).indexOf(2);
// => 0
Parameters
| Name | Type | Description |
|---|---|---|
| value | * | The element to search for in the sequence. |
Returns
| Type | Description |
|---|---|
| number | The index within this sequence where the given value is located, or -1 if the sequence doesn't contain the value. |
initial Sequence#initial
Example
var produce = [apple, banana, carrot, durian];
var edibleProduce = Lazy(produce).initial();
// => sequence: (apple, banana, carrot)
Parameters
| Name | Type | Description |
|---|---|---|
| count | number | The number of items to omit from the end of the sequence (defaults to 1). |
Returns
| Type | Description |
|---|---|
| Sequence | The new sequence. |
inject Sequence#inject
Sequence#reduce
.intersection Sequence#intersection
Example
Lazy(["foo", "bar"]).intersection(["bar", "baz"]);
// => sequence: ("bar")
Parameters
| Name | Type | Description |
|---|---|---|
| var_args | * | The values, or array(s) of values, in which elements from this sequence must also be included to end up in the resulting sequence. |
Returns
| Type | Description |
|---|---|
| Sequence | The new sequence. |
invoke Sequence#invoke
Example
function Person(first, last) {
this.fullName = function() {
return first + " " + last;
};
}
var people = [
new Person("Dan", "Tao"),
new Person("Bob", "Smith")
];
var fullNames = Lazy(people).invoke("fullName");
// => sequence: ("Dan Tao", "Bob Smith")
Parameters
| Name | Type | Description |
|---|---|---|
| methodName | string | The name of the method to invoke for every element in this sequence. |
Returns
| Type | Description |
|---|---|
| Sequence | The new sequence. |
isEmpty Sequence#isEmpty
Example
Lazy([]).isEmpty();
// => true
Lazy([1, 2, 3]).isEmpty();
// => false
Returns
| Type | Description |
|---|---|
| boolean | True if the sequence is empty, false if it contains at least one element. |
join Sequence#join
Example
Lazy([6, 29, 1984]).join("/");
// => "6/29/1984"
Parameters
| Name | Type | Description |
|---|---|---|
| delimiter | string | The separator to insert between every element from
this sequence in the resulting string (defaults to "," ). |
Returns
| Type | Description |
|---|---|
| string | The delimited string. |
last Sequence#last
undefined
) simply returns the last element of this sequence.Example
var siblings = [lauren, adam, daniel, happy];
var favorite = Lazy(siblings).last();
// => happy
Parameters
| Name | Type | Description |
|---|---|---|
| count | number | The number of items to take from the end of the sequence. |
Returns
| Type | Description |
|---|---|
| * | The new sequence (or the last element from this sequence if no count was given). |
lastIndexOf Sequence#lastIndexOf
Example
Lazy(["a", "b", "c", "b", "a"]).lastIndexOf("b");
// => 3
Lazy([1, 2, 3]).lastIndexOf(0);
// => -1
Parameters
| Name | Type | Description |
|---|---|---|
| value | * | The element to search for in the sequence. |
Returns
| Type | Description |
|---|---|
| number | The last index within this sequence where the given value is located, or -1 if the sequence doesn't contain the value. |
map Sequence#map
Example
var odds = [1, 3, 5];
var evens = Lazy(odds).map(function(x) { return x + 1; });
// => sequence: (2, 4, 6)
Parameters
| Name | Type | Description |
|---|---|---|
| mapFn | Function | The mapping function used to project this sequence's elements onto a new sequence. |
Returns
| Type | Description |
|---|---|
| Sequence | The new sequence. |
max Sequence#max
Gets the maximum value in the sequence.
TODO: This should support a value selector.
Example
Lazy([6, 18, 2, 49, 34]).max();
// => 49
Returns
| Type | Description |
|---|---|
| * | The element with the highest value in the sequence. |
min Sequence#min
Gets the minimum value in the sequence.
TODO: This should support a value selector.
Example
Lazy([6, 18, 2, 49, 34]).min();
// => 2
Returns
| Type | Description |
|---|---|
| * | The element with the lowest value in the sequence. |
pluck Sequence#pluck
Example
var people = [
{ first: "Dan", last: "Tao" },
{ first: "Bob", last: "Smith" }
];
var surnames = Lazy(people).pluck("last");
// => sequence: ("Tao", "Smith")
Parameters
| Name | Type | Description |
|---|---|---|
| propertyName | string | The name of the property to access for every element in this sequence. |
Returns
| Type | Description |
|---|---|
| Sequence | The new sequence. |
reduce Sequence#reduce
Example
var numbers = [5, 10, 15, 20];
var sum = Lazy(numbers).reduce(function(x, y) { return x + y; }, 0);
// => 50
Parameters
| Name | Type | Description |
|---|---|---|
| aggregator | Function | The function through which to pass every element in the sequence. For every element, the function will be passed the total aggregated result thus far and the element itself, and should return a new aggregated result. |
| memo | * | The starting value to use for the aggregated result (defaults to the first element in the sequence). |
Returns
| Type | Description |
|---|---|
| * | The result of the aggregation. |
reduceRight Sequence#reduceRight
Example
var letters = "abcde";
var backwards = Lazy(letters).reduceRight(function(x, y) { return x + y; });
// => "edcba"
Parameters
| Name | Type | Description |
|---|---|---|
| aggregator | Function | The function through which to pass every element in the sequence. For every element, the function will be passed the total aggregated result thus far and the element itself, and should return a new aggregated result. |
| memo | * | The starting value to use for the aggregated result. |
Returns
| Type | Description |
|---|---|
| * | The result of the aggregation. |
reject Sequence#reject
Example
var numbers = [1, 2, 3, 4, 5, 6];
var odds = Lazy(numbers).reject(function(x) { return x % 2 === 0; });
// => sequence: (1, 3, 5)
Parameters
| Name | Type | Description |
|---|---|---|
| rejectFn | Function | The predicate to call on each element in this sequence, which returns true if the element should be omitted. |
Returns
| Type | Description |
|---|---|
| Sequence | The new sequence. |
rest Sequence#rest
Example
var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var lastFive = Lazy(numbers).rest(5);
// #=> sequence: (6, 7, 8, 9, 10)
Parameters
| Name | Type | Description |
|---|---|---|
| count | number | The number of items to omit from the beginning of the sequence (defaults to 1). |
Returns
| Type | Description |
|---|---|
| Sequence | The new sequence. |
reverse Sequence#reverse
Creates a new sequence with the same elements as this one, but to be iterated in the opposite order.
Note that in some (but not all) cases, the only way to create such a sequence
may require iterating the entire underlying source when each
is called.
Example
var alphabet = "abcdefghijklmnopqrstuvwxyz";
var alphabetBackwards = Lazy(alphabet).reverse();
// => sequence: ("z", "y", "x", ..., "a")
Returns
| Type | Description |
|---|---|
| Sequence | The new sequence. |
select Sequence#select
Example
var numbers = [1, 2, 3, 4, 5, 6];
var evens = Lazy(numbers).select(function(x) { return x % 2 === 0; });
// => sequence: (2, 4, 6)
Parameters
| Name | Type | Description |
|---|---|---|
| filterFn | Function | The predicate to call on each element in this sequence, which returns true if the element should be included. |
Returns
| Type | Description |
|---|---|
| Sequence | The new sequence. |
shuffle Sequence#shuffle
Example
Lazy([1, 2, 3, 4, 5]).shuffle();
// => sequence: (2, 3, 5, 4, 1)
Returns
| Type | Description |
|---|---|
| Sequence | The new sequence. |
some Sequence#some
Example
var numbers = [1, 2, 3, 4, 5];
var someEven = Lazy(numbers).some(function(x) { return x % 2 === 0; });
// => true
var someNegative = Lazy(numbers).some(function(x) { return x < 0; });
// => false
Parameters
| Name | Type | Description |
|---|---|---|
| predicate | Function | A function to call on (potentially) every element in this sequence. |
Returns
| Type | Description |
|---|---|
| boolean | True if predicate returns true for at least one element
in the sequence. False if predicate returns false for every element (or
the sequence is empty). |
sortBy Sequence#sortBy
Parameters
| Name | Type | Description |
|---|---|---|
| sortFn | Function | The function to call on the elements in this sequence, in order to sort them. |
Returns
| Type | Description |
|---|---|
| Sequence |
The new sequence. function population(country) { return country.pop; } function area(country) { return country.sqkm; } var countries = [ { name: "USA", pop: 320000000, sqkm: 9600000 }, { name: "Brazil", pop: 194000000, sqkm: 8500000 }, { name: "Nigeria", pop: 174000000, sqkm: 924000 }, { name: "China", pop:<PHONE_NUMBER>, sqkm: 9700000 }, { name: "Russia", pop: 143000000, sqkm: 17000000 }, { name: "Australia", pop: 23000000, sqkm: 7700000 } ]; var mostPopulous = Lazy(countries).sortBy(population).last(3); // => sequence: (Brazil, USA, China) var largest = Lazy(countries).sortBy(area).last(3); // => sequence: (USA, China, Russia) |
sortedIndex Sequence#sortedIndex
Performs a binary search of this sequence, returning the lowest index where the given value is either found, or where it belongs (if it is not already in the sequence).
This method assumes the sequence is in sorted order and will fail otherwise.
Example
Lazy([1, 3, 6, 9, 12, 15, 18, 21]).sortedIndex(3);
// => 1
Parameters
| Name | Type | Description |
|---|---|---|
| value | * | The element to search for in the sequence. |
Returns
| Type | Description |
|---|---|
| number | An index within this sequence where the given value is located, or where it belongs in sorted order. |
sum Sequence#sum
Gets the sum of the values in the sequence.
TODO: This should support a value selector.
Example
Lazy([1, 2, 3, 4]).sum();
// => 10
Returns
| Type | Description |
|---|---|
| * | The sum. |
tail Sequence#tail
Sequence#rest
.take Sequence#take
Sequence#first
.toArray Sequence#toArray
Creates an array snapshot of a sequence.
Note that for indefinite sequences, this method may raise an exception or (worse) cause the environment to hang.
Example
var range = Lazy.range(1, 10);
// => sequence: (1, 2, ..., 9)
var array = range.toArray();
// => [1, 2, ..., 9]
Returns
| Type | Description |
|---|---|
| Array | An array containing the current contents of the sequence. |
toObject Sequence#toObject
Example
var details = [
["first", "Dan"],
["last", "Tao"],
["age", 29]
];
var person = Lazy(details).toObject();
// => { first: "Dan", last: "Tao", age: 29 }
Returns
| Type | Description |
|---|---|
| Object | An object with keys and values corresponding to the pairs of elements in the sequence. |
toString Sequence#toString
Sequence#join
.union Sequence#union
Example
Lazy(["foo", "bar"]).union(["bar", "baz"]);
// => sequence: ("foo", "bar", "baz")
Parameters
| Name | Type | Description |
|---|---|---|
| var_args | * | The values, or array(s) of values, to be additionally included in the resulting sequence. |
Returns
| Type | Description |
|---|---|
| Sequence | The new sequence. |
uniq Sequence#uniq
Example
Lazy([1, 2, 2, 3, 3, 3]).uniq();
// => sequence: (1, 2, 3)
Returns
| Type | Description |
|---|---|
| Sequence | The new sequence. |
unique Sequence#unique
Sequence#uniq
.where Sequence#where
Example
var people = [
{ first: "Dan", last: "Tao" },
{ first: "Bob", last: "Smith" }
];
var dans = Lazy(people).where({ first: "Dan" });
// => sequence: ({ first: "Dan", last: "Tao" })
Parameters
| Name | Type | Description |
|---|---|---|
| properties | Object | The properties that should be found on every element that is to be included in this sequence. |
Returns
| Type | Description |
|---|---|
| Sequence | The new sequence. |
without Sequence#without
Example
Lazy([1, 2, 3, 4, 5]).without(2, 3);
// => sequence: (1, 4, 5)
Parameters
| Name | Type | Description |
|---|---|---|
| var_args | * | The values, or array(s) of values, to be excluded from the resulting sequence. |
Returns
| Type | Description |
|---|---|
| Sequence | The new sequence. |
zip Sequence#zip
Example
Lazy([1, 2]).zip([3, 4]);
// => sequence: ([1, 3], [2, 4])
Parameters
| Name | Type | Description |
|---|---|---|
| var_args | Array | One or more arrays of elements to combine with those of this sequence. |
Returns
| Type | Description |
|---|---|
| Sequence | The new sequence. |


Davis Cup: Great Britain lose to hosts Spain in semi-final
Hosts progress to face Canada in Sunday's final
by Husmukh KeraiGreat Britain were beaten 2-1 by hosts Spain in the semi-finals of the revamped Davis Cup in Madrid on Saturday.
Jamie Murray and Neal Skupski lost the deciding doubles rubber 7-6 (6-3) 7-6 (10-8) against the team of Rafael Nadal and Feliciano Lopez in front of a partisan home crowd.
In the absence of Andy Murray, Kyle Edmund had given Leon Smith's side a 1-0 lead with a convincing singles win over Lopez in the opening match of the tie.
The world No 69 followed up his straight-set wins in the ties against Kazakhstan and Germany with a 6-3 7-6 (7-3) win against Lopez - who himself was a late replacement for Pablo Carreno Busta, who pulled out with illness.
Nadal then beat British No 1 Dan Evans 6-4 6-0 to level the tie going into the deciding rubber.
Spain will go on to face first-time finalists Canada in Sunday's final after they beat Russia 2-1 in Saturday's early semi-final.
Britain were backed by almost 1,000 fans at the Caja Magica after the Lawn Tennis Association provided additional tickets to hand to supporters for free.
Check our news, reports and reaction from all major tennis events by following us on skysports.com/tennis, our app for mobile devices or our Twitter account @skysportstennis.


Erica Mena Shows Off A Fierce Look And People Say She Slays This Pregnancy
by Alexis StoneErica Mena shared a photo on her social media account, and she slays the sensual look. She’s wearing an amazing dress paired with a matching bag and boots, but it’s best to check out the photo for yourselves below.
‘Girls! Black Friday has come early.. @prettylittlething are offering up to 50% off EVERYTHING! don’t miss out💘’ Erica captioned her post.
Someone said: ‘How In The Hell, U Out Doing Regular Skinny Thick And Fit Chicks ….  DAMN Ericaaaaa give us time to catch up or something 😫’
Another commenter wrote this: ‘Killing 😍 I gotta get these boots! I keep seeing them .. it’s a sign!’
Someone else said that Erica looks like a model despite the fact that she is pregnant: ‘You still look like a model pregnant🔥Sexiest pregnant girl ever. Queen!! with your beautiful pregnant self!! Blessings to you and your family.’
Another follower praised Erica as well: ‘You have been serving it up this entire pregnancy! Talk about applying pressure. 😍🙌🏾’
Erica is living her best life these days together with Safaree. These two are expecting a baby girl, and the couple could not be more excited.
Erica has been posting like crazy on her social media account, and fans cannot stop praising her beauty.


--- layout: post status: publish published: true title: ClearCase Merge Excuse for Slacking Off author: display_name: Fabio Pereira login: admin email<EMAIL_ADDRESS>url: http://fabiopereira.me author_login: admin author_email<EMAIL_ADDRESS>author_url: http://fabiopereira.me wordpress_id: 366 wordpress_url: http://fabiopereira.me/blog/?p=366 date: '2011-03-03 06:18:57 +0' date_gmt: '2011-03-03 13:18:57 +0' categories: - Technical tags: - Cool - Fun - Comic comments: [] ---
If you have ever worked with ClearCase, you will understand this "adapted" version of the classic XKCD joke for programmers excuse for slacking off.


|
Test Case
|
INIT-0020 |
|
Title
|
Installation of the weather server on an existing PI running Stretch |
|
Objective
|
This test case is intended to verify the following implied or specified requirements:
- When the server is running, it shall report runtime and communication errors to a log file viewable by an administrator.
- If the server successfully initializes, it shall report to the log that it is listening to a HTTP port.
This test case illustrates the that repository can be installed on an existing PI running Stretch. In this case, the installation will deviate from the repository that creates an "appliance". This illustrates how the server can be run in a mode that is useful for debugging. |
|
Setup
|
- Existing PI with about 4 Gig of spare memory running Raspbian Stretch.
|
|
Actions
|
- Log onto the PI account of the preinstalled PI.
- Ignore the GitHub.com/mbroihier/sfwiWeather installation instructions up to step 5.
- Execute instructions 5 to 14.
- Start the weather server using the command: node weather.js
- Verify that the server reports that it is listening.
- Verify that no errors are reported.
- Using a browser on another computer in the local network, connect to the server by using the node name of the sever and the port the server is listening on (e.g. http://rpiOther:3000).
- Verify a page is displayed in the browser that is the expected location being reported by the server.
|
|
Expected
|
The server will come up when commanded and display that it is listening and will not display any errors. A HTTP client will be able to query the server and a page consistent with the configured location will be displayed. |
|
Results
|
PASSED |
|
Cleanup
|
|
|
Requirements
|
SFWIWEATHER-PR-INIT-010, SFWIWEATHER-PR-INIT-020 |


Add Recipe
The Basics
Title
Preparation time
Cooking time
Servings
Description
Ingredients
Directions
Tags
Save


Automated Gender Bias Removal Tool: Changing notions, one word at a time.
Input data
{% endif %} {% endblock %}


Leadership Team
Rasheed Adegoke
Founder and Chief Executive Officer
Rasheed Adegoke is a technology strategist and business executive with hands-on expertise in the design and delivery of high-performance information technology and business process improvement solutions to address complex business problems.
His core competence are in Information Technology, Process Improvement, Systems Integration, Digital Business Strategy and Solutions Design, Business & Technology Strategic Planning, Operations Management, Project & Change Management, and Organizational Restructuring. He has over twenty four years experience working with successful businesses especially in Management Consulting, Software Development, Financial Services, and Oil and Gas industries.
He was Chief Information Officer for leading banks in Nigeria for the last sixteen years of his career successfully leading major IT transformation and business integration projects in those roles. His last two positions were at United Bank for Africa Plc where he was the Director, Group Information Technology between August 2013 and August 2015 and First Bank of Nigeria Limited where he was Chief Information Officer from February 2009 to July 2013.
Rasheed is a respected industry expert who has also served on a Presidential committee on National Broadband Strategy and the TechLaunchPad initiative of the Federal Ministry of Communication Technology.
George Igunbor
Chief Technology Officer
George Igunbor is an experienced IT professional whose career in project implementation and delivery, application development and post implementation support spans over 15 years. George’s work experience spanned the IT and Banking industry with companies such as Computer Warehouse Group, United Bank for Africa Plc and First Bank of Nigeria Limited. He played significant roles in various large-scale projects including many core banking systems implementations and upgrades.
While at First Bank of Nigeria, George was involved in a number of transformational projects amongst which was the Central Bank of Nigeria led Bank Verification Number (BVN) initiative aimed at providing unique id for customers across Nigerian Banking Industry, protect customers bank accounts from unauthorized account access, and address matters of identity theft and fraud. George has good knowledge and experience of the sub-Saharan African market and was a key resource in training and implementation of Finacle core banking system for UBA offices across sub Saharan Africa.
George is a graduate of Computer Science from University of Ibadan and has a MBA from the prestigious Lagos Business School. He has attended several courses both locally and internationally including Finacle Core Banking Application training at Infosys, India, the Pan-African EMBA Programme at IESE Business School, Barcelona, Spain and Entrepreneurship & Innovation in Emerging Markets course organized by International Business Resource Centre, University of Wisconsin. George joined Algorism as Chief Technology Officer in March 2016.


Get help, ask a question on the mailing list if you're stuck and the documentation and a websearch didn't provide any answers.
Get involved, anyone can help! You don't have to be a programmer. If you want to help but don't know where then join the developer list and introduce yourself.
Get started, we recommend that you start by reading Design With FontForge before moving on to the documentation on this page.


---
layout: default
---
Extensions
About
Extensions for built-in collection types. Methods are generic unless otherwise specified.
Types Extended
Array
Array extensions include the following:
- Skip
- Skips the specified count.
IEnumerable
IEnumerable extensions include the following:
- ContainsIgnoreCase
- Determines whether the IEnumerable<string> contains the specified string, ignoring case.
- IsEmpty
- Determines whether the specified IEnumerable is empty
IList
NuGet
Install-Package MichaelBrandonMorris.Extensions.CollectionExtensions
Help
Code Documentation


Userbase uses some third party subprocessors, such as cloud computing providers and payment processors, to provide our services. We enter into GDPR-compliant data processing agreements with each subprocessor, extending GDPR safeguards everywhere personal data is processed.
Subprocessors located in the United States:


Testing Hypothesis
When we are talking about hypothesis testing, what we are merely trying to do is reframing a qualitative question into a mathematical problem. For example, we might ask:
Do discounts have a statistically significant effect on the number of products customers order? If so, at what level(s) of discount?
And reframe it to:
, the mean of the amount sold in orders with discounts is less or equal to the mean of the amount sold in orders without discounts.
Our goal usually is to reject our formulated null hypothesis by calculating the p-value which we generally want to be p < 0.05 (i.e., there’s only a 5% chance that two identical distributions could have produced these results).
What type of data do we have? Categorical or Numerical?
We first want to find out what type of data we are dealing with whether it is continuous or categorical. For example, we want to find the mean height of all boys in a school year, and we could be very very accurate and measure every boy to the n-th digit after the comma. In this case, we are dealing with continuous (numerical) data. On the other hand, we have categorical data if we want to know if the girls have a significant different preference in what type of fruit (apple, bananas, plums etc) they eat.
How many samples am I comparing?
- 1 Sample i.e., comparing an actual result against a desired target
- 2 Sample i.e., comparing a control and treatment group or an A/B test
- More than 2 Sample i.e., comparing three different variants of a landing page
1 Sample T-Test
Compares a sample mean to a hypothetical population mean. It answers the question “What is the probability that the sample came from a distribution with the desired mean?” Use this when you are comparing against a known target (like a statistic from a paper or a target metric).
ttest_1samp requires two inputs, a distribution of values and an expected mean:
tstat, pval = ttest_1samp(example_distribution, expected_mean)
print(pval)
2 Sample T-Test
A 2 Sample T-Test compares two sets of data, which are both approximately normally distributed.The null hypothesis, in this case, is that the two distributions have the same mean. Use this when you are comparing two different numerical samples.
ttest_ind requires two distributions of values:
tstat, pval = ttest_ind(example_distribution1, example_distribution2)
print(pval)
ANOVA
ANOVA compares 2 or more numerical datasets without increasing the probability of a false positive. In order to use ANOVA, The samples are independent. Each sample is from a normally distributed population.The population standard deviations of the groups are all equal. This property is known as homoscedasticity.
f_oneway (scipy.stats) requires two or more groups:
fstat, pval = f_oneway(data_group1, data_group2, data_group3, data_groupN)
print(pval)
ols (statsmodels)
model_name = ols('outcome_variable ~ group1 + group2 + groupN',
data=your_data).fit()
model_name.summary()
Tukey
Tukey’s Range Test compares more than 2 numerical datasets without increasing the probability of a false positive. Unlike ANOVA, Tukey tells us which datasets are significantly different. Many statisticians use Tukey instead of Anova. Note: pairwise_tukeyhsd is from StatsModels, not SciPy!
pairwise_tukeyhsd# requires three arguments:
- A vector of all data (concatenated using np.concatenate)
- A vector of labels for the data
- A level of significance (usually 0.05)
v = np.concatenate([a, b, c])
labels = ['a'] * len(a) + ['b'] * len(b) + ['c'] * len(c)
tukey_results = pairwise_tukeyhsd(v, labels, 0.05)
Binomial Test
Compares an observed proportion to a theoretical ideal. Examples:
- Comparing the actual percent of emails that were opened to the quarterly goals
- Comparing the actual percentage of respondents who gave a certain survey response to the expected survey response
binom_test requires three arguments:
- The number of successes (the numerator of your proportion)
- n - the number of trials (the denominator of your proportion)
- p - the proportion you are comparing to
pval = binomtest(numerator, n=denominator, p=proportion)
print(pval)
Chi Squared Test
If we have two or more categorical datasets that we want to compare, we should use a Chi Square test. It is useful in situations like:
- An A/B test where half of users were shown a green submit button and the other half were shown a purple submit button. Was one group more likely to click the submit button?
- Men and women were both given a survey asking “Which of the following three products is your favorite?” Did the men and women have significantly different preferences?
chi2_contingency requires a contingency table of all results:
chi2, pval, dof, expected = chi2_contenigency([cat1yes, cat1no],
[cat2yes, cat2no])
print(pval)
Use Case
If we are going back to our example for a null hypothesis from above we can use either the 2 Sample T-Test (ttest_ind) or ANOVA. All approaches depend on how we are going to prepare the data.
Let take a practical example and work through it on the Northwind database Microsoft provides.
1. Join ‘OrderDetail’, ‘Product’ and ‘Category’ and assign meaningful names to the features:
SELECT OrderDetail.Id orderdetail_id,
OrderDetail.ProductId orderdetail_prodid,
OrderDetail.Quantity orderdetail_quantity,
OrderDetail.UnitPrice orderdetail_unitprice,
OrderDetail.Discount orderdetail_discount,
Product.Id product_id,
Category.Id category_id,
Category.CategoryName category_name
FROM Category
JOIN Product ON Category.Id = Product.CategoryId
JOIN OrderDetail ON Product.Id = OrderDetail.ProductId;
data = pd.read_sql_query(your_sql_command, engine)
$\tiny \ast \text{ The SQL statement should be inside of ```}$
2. Extract all ‘Unit price’ and split them into two lists for simplicity:
d_df = Q2_df['orderdetail_unitprice'].where(Q2_df['discount_bool'] == 1)
nd_df = Q2_df['orderdetail_unitprice'].where(Q2_df['discount_bool'] == 0)
discount = d_df.tolist()
no_discount = nd_df.tolist()
3. Run the 2 Sample T-Test (Note: the ttest_ind creates a readable statement:
stats.ttest_ind(discount, no_discount, equal_var = False)
# Ttest_indResult(statistic=-2.9756718793666415, pvalue=0.0034331287209264576)
4. As a final step we want to calculate the effect size using Cohen’s $d$. Cohen’s $d$ is typically used to represent the magnitude of differences between two (or more) groups on a given variable, with larger values representing a greater differentiation between the two groups on that variable.
cohens_d = (mean(x) - mean(y)) / (sqrt((stdev(x)**2 + stdev(y)**2) / 2))
print("Cohen's D: {}".format(cohens_d))
# Cohen's D: 0.4564472299543739
5. Conclusion, because our p-value (0.0034) is not significant, we reject the null hypothesis in support of the alternative.
Further Reading
Hypothesis Testing is a big topic, and this was just a quick overview of how someone can approach a question using Python. Here is a short list of resources that I fund helpful:
- Z-statistics vs. T-statistics - Khan Academy
- A/B Testing: The Definitive Guide to Improving Your Product - Dataquest
- Understanding t-Tests - The Minitab Blog
- A Gentle Introduction to Effect Size Measures in Python - Machine Learning Mastery
- Robust effect sizes for 2 independent groups - basic statistics


Sauti Sol, Kaligraph Jones emerge winners at AFRIMA awards as Nikita Kering makes history in Lagos
by Pauline KatethyaKenya remains a hotbed of talent
The 6th edition of the All Africa Music Awards, (AFRIMA) went down on 23rd November at the Eko Convention Centre of Eko Hotels and Suites in Lagos Nigeria and Kenya did not disppoint with notable artistes beating stiff competition to bag awards.
The glamorous event which is designed to promote the distinct rich African music worldwide was attended by music stars and dignitaries across the globe.
17 year old Nikita Kering won the Best female artiste in Eastern Africa with the song ‘Happy with you’ beating Vanessa Mdee (Tanzania), Queen Darleen (Tanzania), Nandy (Tanzania), Rosa Ree (Tanzania) Sheebah (Uganda), Maua Sama (Tanania) and Irene Namatovu (Uganda).
She also won an award for Revelation of the African continent!
Our very own Kenyan Rock band, Rash band, scooped the Best African Rock with their track 'Grave robbers'. The beat Mohombi (Congo), Jeremy loops (South Africa), Jano Band (Ethiopia), DAPHIL Colag (Nigeria), Cobhams Asuquo (Nigeria) Cairoke (Egypt) and Ahmed Soultan (Morocco).
Khaligraph Jones aka Papa Jones aka Mr Omollo was named as the Best male artiste in East Africa with the track Leave me alone. Other nominees on the list were Boy Black (Nigeria), Diamond Platnumz (Tanzania), Harmonize (Tanzania), Mbosso (Tanzania), Nyashinski (Kenya), Rayvanny (Tanzania) and Shyn (Madagascar)
Burna Boy from Nigeria was crowned as the Artiste of the year beating Wizkid (Nigeria), Davido (Nigeria) Aminux (Morocco), Daphne (Cameroon), Davido (Nigeria), Diamond Patnumz (Tanzania), Nasty C (South Africa), Prince Kaybee (South Africa) and Tamer Hiosny (Egypt).
Biggest boy band, Sauti Sol made us proud again for winning the album of the year, ‘Afrikan Sauce’. Other albums that were also battling with Sauti Sol include African Giant (Burna Boy, Chulo Vibes (Timaya), Naked (Nadia Nakai), Omo Charlie Champagne (Simi), Poetic Trance (Aziz Sahmaoui), Umqhele (Sjava) and Wilmer (Patoranking).
Sauti Sol also won The best African Duo/Group/ Band with their hit song Extravaganza which featured Nviiri the storytreller, Kaskazini, Crystal Asige and Bensoul.
They beat Cairokee (Egypt), Charly Na Nina (Rwanda), Jano Band (Ethiopia), Toofan (Togo). WCB Wasafi (Tanzania), Mi Casa (South Africa), Kika Troup (Uganda) and Dream Boyz & Nelson Freita (Angola)
Other winners in the category were Nasty C (Best African Collaboration) and (Best African rapper/lyricist) Tiwa Savage (Best female artist in Western Africa), Joeboy (Best artiste in African pop), 2baba (Best artist in African Contemporary),


nips nips2012 nips2012-271 nips2012-271-reference knowledge-graph by maker-knowledge-mining
Source: pdf
Author: Yair Wiener, Ran El-Yaniv
Abstract: This paper examines the possibility of a ‘reject option’ in the context of least squares regression. It is shown that using rejection it is theoretically possible to learn ‘selective’ regressors that can ǫ-pointwise track the best regressor in hindsight from the same hypothesis class, while rejecting only a bounded portion of the domain. Moreover, the rejected volume vanishes with the training set size, under certain conditions. We then develop efﬁcient and exact implementation of these selective regressors for the case of linear regression. Empirical evaluation over a suite of real-world datasets corroborates the theoretical analysis and indicates that our selective regressors can provide substantial advantage by reducing estimation error.
[1] V. Vapnik. Statistical learning theory. 1998. Wiley, New York, 1998.
[2] C.K. Chow. An optimum character recognition system using decision function. IEEE Trans. Computer, 6(4):247–254, 1957.
[3] C.K. Chow. On optimum recognition error and reject trade-off. IEEE Trans. on Information Theory, 16:41–36, 1970.
[4] B. K´ gl. Robust regression by boosting the median. Learning Theory and Kernel Machines, e pages 258–272, 2003. ¨
[5] O. Ayseg¨ l, G. Mehmet, A. Ethem, and H. T¨ rkan. Machine learning integration for predicting ¸ u u the effect of single amino acid substitutions on protein stability. BMC Structural Biology, 9.
[6] R. El-Yaniv and Y. Wiener. On the foundations of noise-free selective classiﬁcation. The Journal of Machine Learning Research, 11:1605–1641, 2010.
[7] R. El-Yaniv and Y. Wiener. Active learning via perfect selective classiﬁcation. Journal of Machine Learning Research, 13:255–279, 2012.
[8] R. El-Yaniv and Y. Wiener. Agnostic selective classiﬁcation. In Neural Information Processing Systems (NIPS), 2011.
[9] W.S. Lee. Agnostic Learning and Single Hidden Layer Neural Networks. PhD thesis, Australian National University, 1996.
[10] V.N. Vapnik. An overview of statistical learning theory. Neural Networks, IEEE Transactions on, 10(5):988–999, 1999.
[11] R.M. Kil and I. Koo. Generalization bounds for the regression of real-valued functions. In Proceedings of the 9th International Conference on Neural Information Processing, volume 4, pages 1766–1770, 2002.
[12] S. Hanneke. A bound on the label complexity of agnostic active learning. In ICML, pages 353–360, 2007.
[13] S. Hanneke. Theoretical Foundations of Active Learning. PhD thesis, Carnegie Mellon University, 2009.
[14] A. Beygelzimer, S. Dasgupta, and J. Langford. Importance weighted active learning. In ICML ’09: Proceedings of the 26th Annual International Conference on Machine Learning, pages 49–56. ACM, 2009.
[15] J.E. Gentle. Numerical linear algebra for applications in statistics. Springer Verlag, 1998.
[16] C.C. Chang and C.J. Lin. LIBSVM: A library for support vector machines. ACM Transactions on Intelligent Systems and Technology, 2:27:1–27:27, 2011. Software available at ”http://www.csie.ntu.edu.tw/ cjlin/libsvm”.
[17] S. Hanneke. Rates of convergence in active learning. The Annals of Statistics, 39(1):333–361, 2011. 9


StanwoodCore framework
Table of contents
Author
Tal Zion<EMAIL_ADDRESS>Installation
pod 'StanwoodCore'
Release Notes
1.2.2
Bug
Bug fixing1.2
- stanwood Architecture 1.3 improvements
- Adding
Headerable
protocol to support headers forUICollectionView
andUITableView
- Adding
Delegateble
protocol to support multiple delegates when usingSourceType
- General improvements
1.1.3
- Fixing
Stanwood.Sections
to support different types ofDataType
1.1.2
- Making Stanwood.Elements subscipt and save/load
open
1.1.1
- Making numberOfItems and numberOfSections open
1.1
- Adding
Stanwood.Sections
, support for sections inUITableView
andUICollectionView
1.0.1
- Public release
0.2.3
Stanwood.Objects
has been renamed toStanwood.Elements
to follow Swift naming conventions.- Adding
cellType(forItemAt:)
toDataType
protocol to hanndlecellForItem
in the abstract level. - Adding
SourceTypePresentable
to support Stanwood Architecture 1.0 - Adding
UITestingCore
bridge forStanwoodUITestingCore
framework
0.2.2
- Fixing
Loadable
non-static function
0.1.8
- Fixing number of rows in section, in
Stanwood.AbstractTableDataSource
0.1.7
- Fixing
Loadable
- Fixing UIView extention
addShadow
default values - Removed duplciate extensions
- Adding
DataSourceType
&DelegateSourceType
protocol to support DataSource and Delegate - Adding
Presentable
protocol - Chaning naming in
Stanwood.Objects
Usage
Check out the full documentations.
Licence
StanwoodCore is under MIT licence. See the LICENSE file for more info.


Pat's Cookies
Home
Locations
Sales
Contact
Shop
Add New location :
Location Name :
Min / Cust :
Max / Cust :
Avg Cookie / Sale :
The Number of Pat’s Salmon Cookies in each location:


For beter work with Collections (key, label, value) - supports sorting
Link to blog: Design Studio SDK: Collection Util Component


Another morning. Time to drag myself out of bed and get to work. I guess I have the best job in the city. I work for myself, and there's no shortage of things to do. Having a reason to get out of bed is more than most people have these days, and I should be thankful for that, but the routine gets to me sometimes. I just don't know that I'm making a difference in the world anymore.
How long has it been this way? It's hard to say. I was born with all the advantages, including an expensive new designer template. My parents were so proud. Everyone told me I had a happy and productive future ahead of me. It never felt like that to me, though. There were some adjustment problems when I was young - behavioral issues at school, the genetic counselors couldn't explain my poor performance during career determination sessions. I didn't quite fit in, which was confusing. Everybody fit in.
On my thirteenth birthday, the phenotypists just gave up. Genetic engineering error, they said. Out of scope, you're on your own. It didn't really worry my parents. It was an exciting time, new avenues were always opening up. They were sure I'd find a niche; the family genome would see greater expression.
Things didn't work out as well as they had hoped. It was harder to find a job as I grew older. Robots had been taking up a growing part of the labor force, of course, and the most recent generation, the Robotrons, were better than people at most things. There were fewer openings for humans to contribute, and always someone more qualified for the job. It was all the same work for all the same people, and I wasn't one of them. I wasn't seeing any new templates, just Mommies, Daddies, and Mikeys. Nobody wanted to be different anymore. My own family got re-templated, except for me - I couldn't, because I didn't match a planned pattern. There was no place for me. I was having trouble understanding people when they talked. They didn't move their faces right. I couldn't pick up much from the TV, either, it was all idioms and cultural references that I wasn't privy to. I avoided people, ended up living on the streets.
Nobody really noticed when I dropped out of society. Its not like I had any friends at that point. Nobody really did anything anymore anyway, the Robotrons took care of everything. At least, they seemed to be, but I didn't understand them, either, which isn't too surprising now that I think about it. People created the Robotrons to do what they didn't want to do themselves, but I couldn't tell what they did want to do. Robotrons built things, they ran the city government, they went shopping. They made art, wrote books, and played music. They were busy and industrious, always on the move, while the Mommies, Daddies, and Mikeys seemed to just wander around.
Then one day I was rooting through the trash and saw a cargo hulk run a Mommy down. Just killed her on the sidewalk and kept walking. There was a Daddy right next to her, and he didn't even notice. I was stunned for a moment. Stood there staring with my mouth open. Then a police grunt turned towards me and smashed through the dumpster I was hiding behind. I jumped clear just in time, or I would have been toast.
I avoided the surface levels for a long time after that. I don't remember how long I lived that way. The world had gone crazy, and I went crazy with it. But eventually I had to climb back up to forage, and I wanted to know what it was like up there. A part of me was still connected to society, whatever that was. It was a mess, but there were a few Mommies, Daddies, and Mikeys wandering around, completely oblivious. I learned later that there were still conceptories making them. Robotrons were grabbing people, taking them apart, and reassembling them. I saw what used to be a Mikey sprinting down the street for whatever reason, yelling something about pizza interpolation.
 I basically kept doing what I had always done, rooting in the trash for what I needed. For a while I amused myself by getting chased by grunts and tricking them into crashing into electric pylons. It was a dangerous pastime, but what did it matter? What kind of future was there for me, anyway?
Then I was scrounging around in some old warehouse district. It was really old, there were written signs and everything. Very few people had known how to read for years, the Robotrons did all of that for us. It was some kind of engineering research facility, engineers also being a profession which hadn't been needed for a long time. There, I discovered the item which has kept me alive to this day, a prototype anti-robot laser. This must have been some kind of rogue operation, nobody had a use for weapons back in the day. The Robotrons had brought on world peace.
It was just the tool I needed, and I read the lab notes eagerly. "Shoots in eight directions." "Immediately fatal to Robotrons." Then my hopes were dashed. "Unusable by normal people. Requires superhuman strength to wield."
Well, there it was right there. I picked it up easily, charged it, and fired, taking out the whole wall. Apparently that genetic engineering error had given me superhuman strength - or, more likely, all the modern templates were weak, with the Robotrons handling all of the hard labor.
I'd like to say my life was changed by that discovery. I'd like to say it became fun again, a game. The truth is, it's not much different. So here I am, it's another morning. Every day I crawl out of my hideout and climb to the surface. I clear another area of Robotrons and rescue the humans. I don't know why I do it. Wave after wave of Robotrons keep coming, and wave after wave of the last human family as well, the same three people. It's kind of pointless. And what do I get out of it? Days of killing robots, nights spent in the company of Mommies, Daddies, and Mikeys. They are not very interesting company. They have no idea what's going on. All they can talk about is the latest meme, the same thing, over and over again. But still I do it. I don't know, it's a living. At least I have a job. --KRA


How to install Node.js and npm
Let's start with 2 lines of what is npm and Node.js, but if you already know about them you can jump
directly to the section on how to install it.
Mac users can also use brew :
What is Node.js
Node.js is a JavaScript open-source,
cross-platform runtime built on Chrome's V8 JavaScript engine. If you are a java developer,
Node.js is the equivalent of the JVM for the JavaScript world.
What is npm
Npm is the package manager for NodeJS and is also the largest repository of open source libraries in the world. if you are a java developer npm is the equivalent of Maven Central for the JavaScript world. As its name would imply, you can use it to install node programs and distribute your packages.How to install it
If you don't know if you have npm and Node.Js installed, run the following commands in your terminal to check it:
node -v in
npm -v
If you don't have Node.js and npm and you are using OS X or Windows download it from here: https://nodejs
.org/en/download/.Mac users can also use brew :
brew install node
Linux users can use apt-get:
curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -
sudo apt-get install -y nodejs


My Brief Trip to Amsterdam: Red Lights, Go and Biblical Flirting
The winter in Brussels was finally ending and my mood would start to get a lift soon, but a project due in about 10 days was poking my brain so hard I could not help but feel stressed and angry. The stress was not so bad, after all that time fighting for a degree in engineering I was used to having a barely sketched project just one or two days before the deadline. The tough aspect of the whole situation circled around the attitude of my partners; I was the only one who had made something work by then and it did not seem to activate one single neuron of guilt or gratitude of my Belgian or Chinese colleagues. They surely had their chores and tasks to do, but you cannot use that as an excuse to the 100-page manual of an electromagnetic simulator written in an old programming language. I was starting to believe they had implicitly quit, something I would later learn is even a legal term, and my plans on going away, more specifically to Amsterdam, were, out of helplessness, rapidly gaining life again.
One day later and I was already inviting my friends to come with me to the city well-known for its red-light district, but they would all refuse, blaming it on similar projects and study sessions. The need for traveling was much bigger than the one for friends though, and I decided to go anyway. The distance was short and I would be there for one or two days only, I hoped it wouldn’t be that much of a problem. Actually, I hoped it would be that much of a problem, I wanted my diminished efforts to incite my colleagues to do something — and it worked… sort of.
A few days later I wake up excited for the trip but get a quick slap to the face from looking at the typical concrete cloudy day in Brussels; even though I love its people and the overall feel of that city, I must confess they should do something about their background, just freaking shoot some fireworks or give free LSD injections to the people already. Gray is the color only the English and the Belgians can live by, I won’t ever understand — I once made that remark to a Belgian and he said he had not realized such lack of sunlight until I had stated it. After consulting the weather forecast app on my smartphone, I find out that, luckily, it will be sunny in Amsterdam the whole weekend, so let’s cheer up and get to the station.
The start of the trip is at the Gare du Nord — North Station — in Brussels, which is a copy of a station in Paris… or in London… or maybe it’s an original bruxelloise piece of architecture, since the biggest aspect of the city’s beauty is the mix of different types of works, a phenomenon, called brusselization apparently, that only works there, or at least according to the locals. Anyway, it doesn’t really matter, I guess, not to me, and seemingly not to the Belgians either, since they put their red-light district right next to the station. Weird. Upon visiting their red-light district once — to know what the fuss was all about with these human meat displays — I saw some families with children getting out of the station and having to deal with the explicit show across the street; a friend of mine even told me she had to go through that street every morning when going to school. And they say the Germans are the weird ones. On the other side, we find a more sober lane, where sleepy students and low budget travelers find their universal solution for the transport problem in northern Europe: the Megabus. It goes everywhere for at most the price of two big cheap meals, close to 20 euros. You could easily get one to Amsterdam for 5 euros or less if you monitored the prices and promotions on their site — which I didn’t though: I was feeling more like a rich bitch and didn’t bother to pay the steep fee of 12 euros. Probably the main problem we humble bus travelers face there nowadays is with these European stations: due to the ever higher salaries, there are less and less people taking care of them, so it’s very confusing to know exactly where to go, or if the bus is late or not, you have to rely on being deceivingly empathetic with strangers, especially with compatriots — Brazilians are everywhere… —, to be sure not that you’re in the right place, but that you’re not the only one hopelessly lost. This time, it was more or less ok, a slightly late bus, some hours of mild discomfort and we arrived.
As usual, these international buses do not get exactly to the main city, sometimes it’s a peripherical neighborhood, like in Brussels, but this time it was in a place that reminded me of the stereotypical zombie movie. Sloterdijk is a station that seems, at least from the outside, to have been built to support a gigantic flow of people, but what I witnessed was a billion bicycles, the chilling noise of chains in the wind and the bus passengers rushing for the station.  Some minutes later, I finally arrived at the center of the onion that is Amsterdam.
Every time I visit a new city I like to wander around, get lost in its charm. And this time was something very special, very different, the architecture felt cozy, although it bestowed a paradox on the capital: the clash between its cosmopolitan routine and the tiny buildings and village houses was made with a steep and yet unnoticed transition. This contradiction is mainly due to historical reasons as usual; the houses we see today stayed, the rhythm changed. That type of architecture reminded me of my trips to England, Germany and especially Antwerp. Belgium, albeit a single country, is in reality two different societies, with two different languages also, and one can sense a very sharp transition when crossing the middle and passing into the Flemish side.
In southern Europe, the rules are, from my experience, anthropomorphically seen as annoying bureaucrats, these necessary evils; but in that region of Europe, more specifically the former region of Flanders, they take a whole other level, I dare say they are their sovereigns, their deities, not only respected, but a source of strange devotion. This worldview yields a strange flow to society, the beauty of everything working properly is something foreign to people who come from Latin countries, here things are a lot messier.
After all these observations, I realized I was in fact lost — to err is human, I guess. Being relatively tired, I decided to go to the place I would stay in for the next two nights, which I chose because it was the cheapest and most different: a catholic hostel in Amsterdam. They did not disappoint me, upon entering it I was confronted with a mass made by a young priest and his even younger assistants, which were from all over Europe. Right next to the small ritual was the diner where God Almighty friendly snacks and meals were prepared by a team of young apostles of the McDonald’s doctrine; their chief of staff managed to fuse together the figures of both the ruthless boss and the forgiving father, a slap-and-kiss master. I left my bags in the typical hostel bedroom full of people snoring and quickly exited the sacred place, definitely wanting to go the red-light district after the catholic relapse — one needs to balance one’s touristic diet.
Again, I would get lost many times before arriving in the famous show streets of Amsterdam. But it was nonetheless pleasant, this time I was able to enjoy the historical center with its ornamented historical buildings, which felt timeless and powerful, a deeply ingrained image in my memory I associate with efficient work. Half an hour later and finally we are there, the legendary red-light district. And… nothing. Disappointing. It was bound to happen of course, after all I didn’t like the Brusselian version. It just seems so odd this ultimate objectivization of the sexually desired…  No? How about a doll that kind of dances? Still nope. Never have I witnessed such indifference as the one in the eyes of the young prostitutes on the other side of those shop windows. These districts were originally an attempt to concentrate all the prostitution in one place, to ease policing the crime scene origins of society — which was very successful and spread throughout Europe —, but nowadays it feels like a food court, with most of the establishments going for the fast food approach, even though they do not quite understand that it should be a different business model: it should also be quick and expensive in their opinion apparently. In Brussels, the prices were at its cheapest 40 euros per 15 minutes with a lot of restrictions and a room that seemed too tiny for two people not to suffocate — I guess that if you book more than 15 minutes, that’s what will start to happen. The only ones taking the deal, both in Brussels and Amsterdam, were mostly Arab immigrants who apparently were so in need of a sexual companion, anything seemed to work. The government programs of social integration in Europe work in mysterious ways.
After roaming around looking for entertainment, I headed back to the hostel, praying for some sweet catholic silence. In a room filled with 16 people, the odds were against me. Scratch that, they actually wanted to punish me: the only guy snoring was the one right next to me. I tried to kick him softly just so he would turn sideways and hopefully stop the musical act, but it didn’t work, he was playing Peter on me. Luckily, I was getting so tired, I soon fell asleep.
The next day I woke up earlier than usual (who knows why?). During last night my college colleagues eventually came out of hibernation and started to try to decipher the code I had written — nothing spectacular, my lines had only the basic features of a simulation working. I helped them through my phone but didn’t pay too much attention. This morning, on the other hand, I tried to compensate by spending some time making it easier to understand, before I went out to explore the city again.
Blessed breakfast, clean conscience and off we go. First stop, the Anne Frank museum. I didn’t get a chance to go in, too big a line, maybe next time. Next stop, my typical favorite, the public library. This one was huge compared to the size of Amsterdam, I think it had 7 floors, in a complete maze. They were inspired by their city’s paradox and created another one, because there were signs everywhere and I was lost every time, and worse: I couldn’t find most of the books. Resigned, I settled for a weird chair in a corner and made a point of finishing my L’écume des Jours. It took me some hours and some nearby coffee, but I made it, not an easy read for my level of French at the time, however, quite enjoyable, one of the best books I’ve ever read for sure.
The last stop of the day would be related to my Go passion, the game that gave me a lot of entertainment and a lot of friends. I could not miss a taste of the Amsterdam’s style of Go, especially considering many of the older strong European players came from there.
Like most of Europe, they would gather in bars — something I had come to love, since it lightens the sometimes tense atmosphere —, although it wasn’t exactly a bar. People could play in the bar, but the serious fighting happened in the back, in a very dark room. Upon entering it I had the impression the Inquisition had used that same room to interrogate sinners — the wallpapers seemed medieval, dark red and gold ornaments drawn repeatedly on all walls —, a tense atmosphere of people eager to smash their opponents suffocated you and the clacking of stones pumped your heart to a racing pace. I sat down in a chair and my legs frantically bounced up and down as if indeed I were racing, one of my characteristic tics. The club’s leader told me I could play in their weekly league and so I accepted, registering myself as a 1 kyu. My match would be against a 2 kyu and, to my surprise, the format had me giving him 2 handicap stones with komi in my favor, a very unusual setting. In spite of having an hour of main time, I knew I was bound to suffer, giving a 2 kyu such a board advantage was a first for me. Time for some special tactics: trick play after trick play and I started to gain an edge, the byo-yomi almost gave me a heart attack and a misread could have stolen me the win. Thankfully, my opponent did not see it, and I won by more than 15 points.
In the end, the frightening part was the beginning, to remain calm against that never before experienced obstacle. Later, my opponent pointed out that, had we finished the game a bit earlier, we could have gotten a review from veteran Rob van Zeijst 6d, a pity it didn’t happen. Overall, it was quite fun, but I was relieved I could exit the dungeon. Next, I ate, drank some beer, and went back to the hostel: my colleagues were finally getting something done.
Prayer in, prayer out, and I was always there, watching with the omnipresence of my online chat. Despite bonding and getting some work done, we couldn’t get much further from my initial lines, only the most rudimentary simulation was working. There was an external attempt at helping us with some mysterious Chinese code, but, alas, it was a fake, it did not work. Late into the night and I was the only one left in the lounge area. Except for the janitor.
Unexpectedly, the janitor was about my age and female. After an hour of boredom and my furious concentration on the task, she asked me what I was doing. I tried to answer in a nonchalant manner to convey that I wasn’t really wanting to chit-chat, but, damn, being a janitor late at night is too lonely a job, she just couldn’t stop talking — and in a very thick English accent, something I wasn’t used to. You’ll find that a British expat girl working as a janitor in exchange for a place to stay and food in a catholic hostel in Amsterdam is very likely to be needy, as she suddenly stole my computer, lied down on my lap and started to show me nonsensical videos on Youtube. Surprised and not knowing what to do, I followed along her monologue, and her intentions were becoming more and more clear — both to me and to her. Soon after, though, my declaration of disbelief in any superior beings gave her a sigh of sadness, nevertheless she wouldn’t quit so easily. She manufactured a bible out of nowhere, opened it in a random page and read the fateful line: For one man has faith to eat all things while another, who is weak, eats only vegetables (Romans 14:2; apparently, not all bibles have this line, only some versions of the English one have it, I believe). I couldn’t help but give it a good and resounding laughter. Who knew vegetarians were bullied even back then? Having many vegetarian friends made it even funnier. The Brit, unfortunately, did not share my sense of humor, she was quick to scorn and give me goodbye.
With owlish eyes, in a room full of people snoring, after being expelled from the lounge due to the late hour, little did I suspect the assignment that worried me for so long would be cancelled by the professor on Monday, arguing that nobody had managed to complete it.


Our Mission
We want to create the most safe and clean environment wherever YOU go. This pandemic has showed that germs are everywhere and you can minimize you exposure by carrying Hanitize with you or keeping it nearby.
Hanitize mini
The mini allows you to take it anywhere. Put it in your pocket, take it on the go. It can fit in your shorts, pants, shirt pocket, or even on a key chain.
Hanitizer stationary
This one here is stationary. Keep it by your desk, your counter, your bed, or couch. It will always be closeby for your use. Don't take it with you, just place it at different stations around your way.
Hanitizer Deluxe
It is a multipack so you never run out. Share with family members, share with friends. Make sure everyone is safe and clean. You don't to be the person spreading germs.


We are a web development consultancy. Our job is to understand you, so that the world wide web understands you. We make websites simple, so you can keep doing what you do best.
We don't build cookie cutter websites. Don't be a cookie.
Carlie and Will Shafroth are wife and husband team. They combine their skills and talents to great effect. They have a passion for working with others. COMMUNICATION PLACE HOLDER. They are lovebirds, and posses many proprietary sounds that only they understand.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.


--- title: Data keywords: fastai sidebar: home_sidebar summary: "Load transaction data into a usable format" description: "Load transaction data into a usable format" nb_path: "20_data.ipynb" ---
The data module can be used to load in transaction data sets from multiple sources into a format that the gamba library can use. This format is needed to create a measures table, and is simply a dataframe with fixed column names. Read through this page to find out how it works, plus some simple plotting at the end. This module also contains a number of data loading functions for existing public data repositories so you can replicate or extend work right from the start.
{% include note.html content='The CSV file format described on this page is referred to throughout the documentation as the gamba standard format.' %}
This can be done using the read_csv
method, which is a wrapper around the pandas library's method of the same name.
This can be used to read a regular CSV file as you'd expect, but can also be used for tab-separated files - as some of the transparency project's data sets are.
The gamba library's methods expect a dataframe with certain column names. The most important task after loading data as a pandas dataframe is to set these column names according to the type of data the column contains. These names should match the following table for basic data;
| Column Name | Description |
|---|---|
| player_id | a unique identifier for each player |
| bet_size | the size of the bet (in raw currency form, e.g. USD) |
| bet_time | the datetime the bet was placed |
| payout_size | the size of the payout (also in raw currency) |
Advanced data sets may contain more information about each bet. These additional columns can be included using names from the table below. Note that methods in other parts of the library will reject dataframes which contain column names not in one these two tables.
| Column Name | Description |
|---|---|
| payout_time | the timestamp that the payout was paid |
| decimal_odds | the decimal odds for the given bet |
| house_edge | the percentage taken by the house (value of 3 for 3% house edge) |
| game_type | the game being played as a string e.g. 'coinflip', 'roulette' - doesn't have to be one of a fixed set but should be unique per game type |
| provider | the operator's name - this is useful for mixed operator datasets |
{% include note.html content='CSV files with the following columns and data types are said to be in the gamba standard format, and are compatible with methods across the gamba library.' %}
Several public repositories provide transaction data that can be loaded by the gamba library (see Public Repositories in the menu). The data module contains methods for loading some of these sets into the correct format, which are used in the respective replications. If you're loading in a similar data set, feel free to explore the source code of these methods to see how it's done, and modify them for your own needs!
There's also an generate_bets
method which returns a set of example transactions (entirely synthetic) to use as an example throughout the docs or to compare against your own data.
It's good practice to check that your column names match those used by the gamba library, and make sure that no extra columns exist. The check_data
method below can be given the dataframe, and it will raise an error if anything isn't as it should be;
The data module contains some basic visualisation methods which can be applied before any behavioural measures are calculated. This is useful for showing the distributions of player bet sizes, times, payouts, and so on.


Team Profile Generator
created by kemaldemirgil
Alex
Manager
ID: 1
Email:
<EMAIL_ADDRESS>Office Number: 313
Kemal
Engineer
ID: 2
Email:
<EMAIL_ADDRESS>Github:
kemaldemirgil
Mia
Intern
ID: 3
Email:
<EMAIL_ADDRESS>School: 2University