[]. viral disease population host viruses virus human used conservation vaccination {border-style px;} #ffffff;} species animal dynamics molecular transmission wild ecology risk [,]. approach number populations study genetic new pathogens zoonotic evolutionary health hosts infectious rabies rate understanding wildlife Dis emergence recent use Acad. USA changes control emerging endangered important provide reservoir spread structure Natl. Sci. advances analysis different time Ecol Infect. ability extinction identify management methods public px; reservoirs sequence {font-family Biol. Ecology Lond. RNA Soc. case cross-species diversity ecological ecologists evolution field font-size global history infection influenza key problems processes sequences studies surveillance techniques theory vaccines virology Bayesian Host NY, York, [], avian currently demographic distribution dogs double; help humans infer information known necessary origin parasite parasites phylodynamics phylogenetic populations, potential rates researchers sequencing strain (i.e., African Biol Ebola Indeed, Nile Sci United West Zoonotic animals biodiversity border-color border-width characteristics contact critical data developed diseases dispersal distemper ecology, hantavirus high historical increased individuals inform interactions knowledge limited make mathematical models negative novel occurs pandemic phylogenies phylogeny populations. process questions recombination scientists solid; using viruses, {font-style {font-weight (see American Ethiopian However, Infectious Phylodynamic Phylodynamics Recent Rev. Soc University WNV [,] [,]). [â€"]. and/or applied areas bold century clinical coalescent courier; demography development discovery domestic ecosystem effective efforts em; environmental epidemiological epidemiology especially established events example future gene genetics geographical greater heterogeneities impact including increase likely long model monitoring mouse need outbreaks past pathogen pathogens, patterns phylogeographic predict progress pt;} related research result sampled selection size spatial species. statistical strategies successful systems tools transmission? type vaccine viruses. work year


Pligos heavily relies on yaml configurations. In order to compile one set of configurations into different contexts (for example CI,dev,prod) pligos comes with it’s own simple schema language to describe the context. The idea is to create a single helm starter that supports a big set of your services. Services then differ only in their templating input (given in pligos.yaml
file).
Pligos supports the following basic types: string, numeric, bool, object.
Example:
# schema.yaml
context:
pullPolicy: string
useTLS: bool
applicationConfig: object
podInstances: numeric
contexts
, flavor
and spec
are reserved words in following pligos.yaml. You need to provide your schema configuration under spec
.
# example/pligos.yaml -- this is your actual service configuration, define this for all your services individually
contexts:
dev:
# Path to flavor folder that contains schema.yaml and templates folder
flavor: ./flavor
spec:
pullPolicy: Always
useTLS: true
applicationConfig:
fixture:
user: "John Doe"
balance: "10$"
podInstances: 1
# example/values.yaml -- this file will be generated by pligos
pullPolicy: "Always"
useTLS: true
applicationConfig:
fixture:
user: "John Doe"
balance: "10$"
podInstances: 1
As mentioned above pligos allows defining different contexts (dev, prod, …). Each context needs to be set under the contexts
property in the service configuration.
# schema.yaml -- the schema definition for the dev context
context:
environment: string
srcPath: string
# example/pligos.yaml
contexts:
dev:
flavor: ./flavor
spec:
environment: dev
srcPath: /home/johndoe/dev/src/
prod:
flavor: ./flavor
spec:
environment: prod
srcPath: /home/johndoe/prod/src/
Then running the pligos for prod
will generate the following values.yaml
# example/values.yaml -- this file will be generated by pligos
environment: prod
srcPath: /home/johndoe/prod/src/
However the true power of pligos comes through custom types, which can be instantiated and composed in the configuration.
# schema.yaml
route:
port: string
container:
route: route
context:
container: container
# example/pligos.yaml
contexts:
dev:
flavor: ./flavor
spec:
container: gowebservice
values:
route:
- name: http
port: 80
container:
- name: gowebservice
route: http
# helmcharts/example/values.yaml
container:
route:
port: 80
Notice that in the configuration, the instances are referenced by their name. name
is a special property in pligos which is used for referencering configuration instances (such as the gowebservice container) and mapped types
. More to mapped types
later.
Additionally the language supports the meta types repeated
, mapped
, embedded
and embedded mapped
which can be applied to any custom, or basic types. Let’s start with an example for repeated
instances.
repeated
instance# schema.yaml
container:
name: string
command: repeated string
context:
container: repeated container
# example/pligos.yaml
contexts:
dev:
flavor: ./flavor
spec:
container: ["nginx", "php"]
values:
container:
- name: nginx
command: ["nginx"]
- name: php
command: ["php-fpm"]
# examples/values.yaml
container:
- name: nginx
command:
- nginx
- name: php
command:
- php-fpm
Repeated allows specifying a list of any type. In the example we have a list of container, as well as a property command
which is a list of string
.
mapped
instanceNext, Pligos also allows you to define maps.
# schema.yaml
route:
name: string
port: string
containerPort: string
context:
routes: mapped route
# example/pligos.yaml
contexts:
dev:
flavor: ./flavor
spec:
routes: ["http"]
values:
route:
- name: http
port: 80
containerPort: 8080
# example/values.yaml
routes:
http:
port: 80
containerPort: 8080
Notice that, although the configuration defines an array of routes, pligos yields a map, as shown in the the output. Maps can be created using the mapped
meta type.
embedded
instanceUp until this point all custom types appeared under some key in the output. However, this is not always the desired behavior. In order to embed the types’ properties into the parent embedded
types can be used.
# schema.yaml
rawValues:
values: embedded object
context:
rawValues: embedded rawValues
# example/pligos.yaml
contexts:
dev:
flavor: ./flavor
spec:
rawValues: devenvironment
values:
rawValues:
- name: devenvironment
values:
mysql:
user: testuser
password: asdf
# example/values.yaml
mysql:
user: testuser
password: asdf
embedded mapped
instanceSimilarly the instance can be embedded using any arbitrary key using embedded mapped
types.
# schema.yaml
dependency:
port: string
hostname: string
context:
dependencies: embedded mapped dependency
# example/pligos.yaml
contexts:
dev:
flavor: ./flavor
spec:
dependencies: ["mysql"]
values:
dependency:
- name: mysql
port: 3306
hostname: mysql
# example/values.yaml
mysql:
port: 3306
hostname: mysql
Just as with mapped
types, the name property is used to embedd the type instance into the parent.


Expertise
Professionally drive
Synergistically strategize customer directed resources rather than principle.
Seamlessly leverage
Quickly repurpose reliable customer service with orthogonal ideas. Competently.
Interactively incubate
Interactively myocardinate high standards in initiatives rather than next-generation.
Globally streamline
Dynamically initiate client-based convergence vis-a-vis performance based.
Skills
UI & UX
Market Research
Communtcation Skills
Professional Skill
Organisational Skills
Work Experience
HEAD OF MARKET RESEARCH
Computer & Motor Ltd.United Kingdom, London
MEDIA ANALYST
BizzNissUnited Kingdom, London
BUDGET ADMINISTRATOR
Somsom LLCUnited Kingdom, London
Education
MA PRODUCT DESIGN
University of CaliforniaUnited Kingdom, London
BUSINESS MARKETING COURSE
Royal Academy of BusinessUnited Kingdom, London
BA (HONS) DESIGN
University of MichiganUnited Kingdom, London
Interest
BOOKS
Proactively extend market-driven e-tailers rather than enterprise-wide supply chains. Collaboratively embrace 24/7 processes rather than adaptive users. Seamlessly monetize alternative e-business.
ART
Dramatically utilize superior infomediaries whereas functional core competencies. Enthusiastically repurpose synergistic vortals for customer directed portals. Interactively pursue sustainable leadership via.
SPORTS
Assertively grow optimal methodologies after viral technologies. Appropriately develop frictionless technology for adaptive functionalities. Competently iterate functionalized networks for best-of-breed services.
Portfolio
Contact
Address
1355 Market Street, Suite 900
San Francisco, CA 94103
Phone Number
+61 3 8376 6284
987 654 321


I am an undergrad student at Queens College, the City University of New York, in my last semester. In May, I will graduate with a Bachelors of Computer Science. I also minor in Interaction Design and Mathematics.
This semester I am taking the following courses: Natural Language Processing, Software Engineering, Information Design, Web Design II, and Information Design. I am also doing the CodePath Android Bootcamp, a twelve week project-focused Android training course including weekly projects and labs, as well as a collaborative course-wide group project.
My GitHub has many of my projects and design prototypes. Last summer, I interned at Sapient Razorfish, a digital technology consultancy, where I pushed production code and provided responsive front-end development for the Mercedes-Benz and Freightliner Vans websites.
In my Information Design, we are learning many best practices and techniques for data visualisation, an example of which follows.


Money Play. How should Red play 41?
pips Red=123 White=112
(CorrectAnswer= 0/0, ErrorScore= 0)
I went badly wrong on this one, playing 13/12, 9/5 in an attempt to create builders for new points. This is overplaying the position in style!
The key point is that White’s position is at breaking point with some of his 5’s being truly terrible. Red should not be creating any targets for his opponent at precisely the moment when his position is about to break.
While 9/8, 9/5 is acceptable the very simple 13/8 is best, giving White nothing.
After my 13/12, 9/5 White rolled 62 (24/16*) and went on to win the game. That 62 would have been awkward after 13/8, and look at the difference if White rolls 35!
This is a powerful lesson that sometimes doing nothing is absolutely the correct plan. I learnt a very useful lesson here.
The key point is that White’s position is at breaking point with some of his 5’s being truly terrible. Red should not be creating any targets for his opponent at precisely the moment when his position is about to break.
While 9/8, 9/5 is acceptable the very simple 13/8 is best, giving White nothing.
After my 13/12, 9/5 White rolled 62 (24/16*) and went on to win the game. That 62 would have been awkward after 13/8, and look at the difference if White rolls 35!
This is a powerful lesson that sometimes doing nothing is absolutely the correct plan. I learnt a very useful lesson here.
1. Cubeful 2-ply 13/8 Eq.: +0.167 0.612 0.167 0.006 - 0.388 0.093 0.002 2. Cubeful 2-ply 9/8 9/5 Eq.: +0.144 (-0.022) 0.598 0.180 0.006 - 0.402 0.098 0.002 3. Cubeful 2-ply 13/12 9/5 Eq.: +0.122 (-0.045) 0.599 0.177 0.006 - 0.401 0.109 0.003 4. Cubeful 0-ply 8/3 Eq.: +0.071 (-0.095) 0.585 0.165 0.006 - 0.415 0.126 0.003 5. Cubeful 0-ply 13/9 8/7 Eq.: +0.039 (-0.128) 0.580 0.165 0.007 - 0.420 0.145 0.005


Touch input
These functions are declared in the main Allegro header file:
#include <allegro5/allegro.h>
ALLEGRO_TOUCH_INPUT
typedef struct ALLEGRO_TOUCH_INPUT ALLEGRO_TOUCH_INPUT;
An abstract data type representing a physical touch screen or touch pad.
Since: 5.1.0
ALLEGRO_TOUCH_INPUT_MAX_TOUCH_COUNT
#define ALLEGRO_TOUCH_INPUT_MAX_TOUCH_COUNT 16
The maximum amount of simultaneous touches that can be detected.
Since: 5.1.0
ALLEGRO_TOUCH_STATE
typedef struct ALLEGRO_TOUCH_STATE ALLEGRO_TOUCH_STATE;
This is a structure that is used to hold a “snapshot” of a touch at a particular instant.
Public fields (read only):
- id - identifier of the touch. If the touch is valid, this is positive.
- x - touch x position
- y - touch y position
- dx - touch relative x position
- dy - touch relative y position
- primary - TRUE if this touch is the primary one (usually the first one).
- display - The ALLEGRO_DISPLAY that was touched.
Since: 5.1.0
ALLEGRO_TOUCH_INPUT_STATE
typedef struct ALLEGRO_TOUCH_INPUT_STATE ALLEGRO_TOUCH_INPUT_STATE;
This is a structure that holds a snapshot of all simultaneous touches at a particular instant.
Public fields (read only):
- touches - an array of ALLEGRO_TOUCH_STATE
Since: 5.1.0
ALLEGRO_MOUSE_EMULATION_MODE
typedef enum ALLEGRO_MOUSE_EMULATION_MODE
Type of mouse emulation to apply.
- ALLEGRO_MOUSE_EMULATION_NONE
- Disables mouse emulation.
- ALLEGRO_MOUSE_EMULATION_TRANSPARENT
- Enables transparent mouse emulation.
- ALLEGRO_MOUSE_EMULATION_INCLUSIVE
- Enable inclusive mouse emulation.
- ALLEGRO_MOUSE_EMULATION_EXCLUSIVE
- Enables exclusive mouse emulation.
- ALLEGRO_MOUSE_EMULATION_5_0_x
- Enables mouse emulation that is backwards compatible with Allegro 5.0.x.
Since: 5.1.0
Unstable API: Seems of limited value, as touch input tends to have different semantics compared to mouse input.
al_install_touch_input
bool al_install_touch_input(void)
Install a touch input driver, returning true if successful. If a touch input driver was already installed, returns true immediately.
Since: 5.1.0
See also: al_uninstall_touch_input
Examples:
al_uninstall_touch_input
void al_uninstall_touch_input(void)
Uninstalls the active touch input driver. If no touch input driver was active, this function does nothing.
This function is automatically called when Allegro is shut down.
Since: 5.1.0
See also: al_install_touch_input
al_is_touch_input_installed
bool al_is_touch_input_installed(void)
Returns true if al_install_touch_input was called successfully.
Since: 5.1.0
Examples:
al_get_touch_input_state
void al_get_touch_input_state(ALLEGRO_TOUCH_INPUT_STATE *ret_state)
Gets the current touch input state. The touch information is copied into the ALLEGRO_TOUCH_INPUT_STATE you provide to this function.
Since: 5.1.0
al_set_mouse_emulation_mode
void al_set_mouse_emulation_mode(int mode)
Sets the kind of mouse emulation for the touch input subsystem to perform.
Since: 5.1.0
Unstable API: Seems of limited value, as touch input tends to have different semantics compared to mouse input.
See also: ALLEGRO_MOUSE_EMULATION_MODE, al_get_mouse_emulation_mode.
Examples:
al_get_mouse_emulation_mode
int al_get_mouse_emulation_mode(void)
Returns the kind of mouse emulation which the touch input subsystem is set to perform.
Since: 5.1.0
Unstable API: Seems of limited value, as touch input tends to have different semantics compared to mouse input.
See also: ALLEGRO_MOUSE_EMULATION_MODE, al_set_mouse_emulation_mode.
al_get_touch_input_event_source
void) ALLEGRO_EVENT_SOURCE *al_get_touch_input_event_source(
Returns the global touch input event source. This event source generates touch input events.
Since: 5.1.0
See also: ALLEGRO_EVENT_SOURCE, al_register_event_source
Examples:
al_get_touch_input_mouse_emulation_event_source
void) ALLEGRO_EVENT_SOURCE *al_get_touch_input_mouse_emulation_event_source(
Returns the global touch input event source for emulated mouse events. This event source generates emulated mouse events that are based on touch events.
See also: ALLEGRO_EVENT_SOURCE, al_register_event_source
Since: 5.1.0
Unstable API: Seems of limited value, as touch input tends to have different semantics compared to mouse input.
Examples:


Source code for tools
# -*- coding: utf-8 -*-
[docs]class Color:
"""
Static Enum class used form marking colors of pieces
In main program values are stored as int. This class is used only as static enum class to make code cleaner and
to avoid magic numbers.
"""
black = 0
white = 1
[docs] @staticmethod
def to_str(color):
"""
Changes color to readable string
:param int color: value representing color
:return: name of color
:rtype: str
"""
if color == Color.white:
return "white"
elif color == Color.black:
return "black"
else:
raise ValueError(str(color))
[docs] @staticmethod
def opposite(color):
"""
| Returns opposite color.
:param int color: value representing color
:return: opposite color
:rtype: int
"""
if color == Color.white:
return Color.black
elif color == Color.black:
return Color.white
else:
raise ValueError(str(color))
[docs]def cords_list_to_str(list_of_white_pieces: list, list_of_black_pieces: list):
"""
Creates nice looking string to visalize list of cords on the board,
usefull for debugging and tests
:param list list_of_white_pieces: list of cords of white pieces
:param list list_of_black_pieces: list of cords of black pieces
:return: str_board
:rtype: str
"""
empty_board = [
'+---------------+',
'| | | | | | | | |',
'|-+-+-+-+-+-+-+-+',
'| | | | | | | | |',
'|-+-+-+-+-+-+-+-+',
'| | | | | | | | |',
'|-+-+-+-+-+-+-+-+',
'| | | | | | | | |',
'|-+-+-+-+-+-+-+-+',
'| | | | | | | | |',
'|-+-+-+-+-+-+-+-+',
'| | | | | | | | |',
'|-+-+-+-+-+-+-+-+',
'| | | | | | | | |',
'|-+-+-+-+-+-+-+-+',
'| | | | | | | | |',
'+---------------+']
list_of_pieces = list_of_black_pieces + list_of_white_pieces
for cord in list_of_pieces:
x, y = cord
y = y*2
y = 15-y
x = x*2
x = x+1
line = empty_board[y]
line = list(line)
if cord in list_of_white_pieces:
line[x] = 'w'
elif cord in list_of_black_pieces:
line[x] = 'b'
line = "".join(line)
empty_board[y] = line
return '\n'.join(empty_board)
[docs]def str_to_cords(str_board: str):
"""
Creates list od cords out of string visual representation.
Does opposite of :func:`cords_list_to_str`
:param str str_board: string with visual representation of board
:return two lists of pieces
:rtype: tuple
"""
list_of_white_pieces = list()
list_of_black_pieces = list()
str_board = str_board.split("\n")
for y in range(16):
if y % 2 == 0:
continue
line = str_board[y]
line = line.lstrip()
y-=1
y/=2
y-=7
y = int(y)
y=abs(y)
line = list(line)
def remove_letter(letter):
ret_list = list()
while letter in line:
index = line.index(letter)
line[index] = ' '
index-=1
index/=2
index = int(index)
ret_list.append((index,y))
return ret_list
list_of_black_pieces.extend(remove_letter('b'))
list_of_white_pieces.extend(remove_letter('w'))
return list_of_white_pieces, list_of_black_pieces
[docs]class Move:
"""
New class intended to replace old way of storing 'move' data
Old way of storing 'move' was a tuple - (cords, dest, destroyed)
where:
cords - cords of moving piece
dest - destination cords
destroyed - list of cords of destroyed pieces
"""
def __init__(self, cords:tuple, dest:tuple, destroyed:list):
assert isinstance(cords, tuple)
assert isinstance(dest, tuple)
assert isinstance(destroyed, list)
self.cords = cords
self.dest = dest
self.destroyed = destroyed
[docs]class ListOfPieces:
"""
New class intended to replace old way of storing info about pieces
Old way of storing was a tuple two_pieces - (black_pieces, white_pieces)
where:
black_pieces - list of cords of black pieces
white_pieces - list of cords of white pieces
"""
def __init__(self, black_pieces: list, white_pieces: list):
assert isinstance(black_pieces, list)
assert isinstance(white_pieces, list)
self.black_pieces = black_pieces
self.white_pieces = white_pieces
[docs] def apply_move(self, move: Move):
"""
Applies Move to ListOfPieces.
Works in place
:param Move move: move to be applied
"""
if move.cords in self.black_pieces:
self.black_pieces.remove(move.cords)
self.black_pieces.append(move.dest)
elif move.cords in self.white_pieces:
self.white_pieces.remove(move.cords)
self.white_pieces.append(move.dest)
else:
raise ValueError
for destroyed_piece in move.destroyed:
if destroyed_piece in self.white_pieces:
self.white_pieces.remove(destroyed_piece)
elif destroyed_piece in self.black_pieces:
self.black_pieces.remove(destroyed_piece)
else:
raise ValueError


| Knowledge Graph |
The TBFY Knowledge Graph (KG) integrates procurement and company data. The KG covers data from January 2019 onwards. New data is onboarded every night.
On June 2020 the KG consisted of over 112 million triples and contained information about
| Service | URL | Description |
| KG SPARQL endpoint | http://data.tbfy.eu/sparql |
SPARQL endpoint that allows users to query the Knowledge Graph using SPARQL. We are using Apache Jena Fuseki as the SPARQL server and Apache Jena TDB as the underlying database. Example: |
| KG API | http://data.tbfy.eu/kg-api | REST API that allows you
to query the Knowledge Graph. See
https://github.com/TBFY/knowledge-graph-API/wiki for more info. Examples: |
| KG data dump | http://dump.tbfy.eu | Monthly data dump of the Knowledge Graph in RDF format containing procurement data and company data (for matching suppliers) for the period January 2019 onwards. In addition to the KG data dump in RDF, we have also made available the source data input for the KG, i.e., procurement release data from OpenOpps and company data (for matching suppliers) from OpenCorporates in JSON format. |
| YASGUI for KG | http://yasgui.tbfy.eu | YASGUI (Yet Another SPARQL GUI) is a 3rd party web application that we have set up that allows users to query the Knowledge Graph using SPARQL. |
| Repository | URL | Description |
| Knowledge Graph (KG) | https://github.com/TBFY/knowledge-graph | Repository where all source code, information and documentation for creating, deploying and using the Knowledge Graph are found. |
| OCDS Ontology | https://github.com/TBFY/ocds-ontology | Repository for the OCDS ontology. |
| KG API | https://github.com/TBFY/knowledge-graph-API | Repository for the core API. It also contains the API documentation and SPARQL queries of the TheyBuyForYou project. |
| KG API Gateway | https://github.com/TBFY/api-gateway | Repository for the API Gateway. It provides a flexible abstraction layer and a single entry point that securely manages communication between TBFY clients and online tools via API. |
| Service | URL | Description |
| Fuseki admin UI | http://fuseki.tbfy.eu | Apache Jena Fuseki admin UI that allows adminstrators to manage the TBFY Knowledge Graph. |


I had some hard time getting Tensorflow with GPU support and OpenAI Gym at the same time working on an AWS EC2 instance, and it seems like I’m in good company. For some time I used NVIDIA-Docker for this but as much as I love Docker, depending on special access to the (NVIDIA) GPU drivers, took away some of the biggest advantages when using Docker, at least for my use cases. Running OpenAI Gym in a normal container, exposing some port to the outside and running agents/neural nets etc. elsewhere seems like a really promising approach and I’m looking forward to it being ready.
There are good explanations on how to get Tensorflow with CUDA going, those were pretty helpful to me. However I suppose they were mostly concerned with supervised learning. If you want to run certain OpenAI Gym environments headless on a server, you have to provide an X-server to them, even when you don’t want to render a video. You can use a virtual framebuffer like xvfb for this, it works fine. But I never could getting it to work with GLX support. Also other solutions like X-Dummy failed. The problem is, that there’s no way to keep NVIDIA from installing OpenGl-libs, when using packages from some repo (which most of the tutorials do, because it’s way more convenient). Finally this comment by pemami4911 in a github issue pointed me into the right direction. Since many people seem to run into the same problems, maybe the following will spare you some trouble.
I’m using Python 3 because it really annoys me, that everyone still uses Python 2.7 in the deep learning community. Also I’m using Ubuntu Ubuntu 16.04 LTS XENIAL XERUS because it’s released for ages (even the official Canonical AMI on AWS) and when spinning up a single new instance for computing just a few things, I don’t see why I would use Ubuntu 14.04, just because 16.04 is not among the three AMIs AWS offers to me first. But I think it should be no trouble to adapt this to other needs.
OT: I also recommend using the AWS CLI together with the oh-my-zsh AWS plugin, because zsh and especially oh-my-zsh is awesome.
Okay, let’s begin:
Go to https://cloud-images.ubuntu.com/locator/ec2/ and look for the Ubuntu 16.04 LST XENIAL XERUS hvm:ebs-ssd AMI from Canonical. For eu-central-1 it’s ami-8504fdea. Spin up a new EC2 GPU instance (g2.2xlarge will do) using that AMI (use a spot instance if you are as broke as me). I recommend using at least 20GB as root volume. SSH into your instance, username is ubuntu.
Let’s get some basics:
The Java stuff is for Bazel Google’s build tool we will use later for compiling Tensorflow. We will use openJDK but if you have to, you can also use the proprietary one from Oracle.
Also some kernel sources, compilers and other stuff:
As we are on it, let’s install Bazel right now:
Now curl or wget the right NVIDIA driver. For the GRID K520 GPU 367.57 should be the right choice (maybe Linus would it call the least wrong choice at most).
NVIDIA will clash with the nouveau driver so deactivate it:
Insert the following lines and save:
Update the initframs (basically functionality to mount your real rootfs, which has been outsourced from the kernel) and reboot:
Make the NVIDIA driver runfile executable and install the driver and reboot one more time, just to be sure.
IMPORTANT: In my experience xvfb will only work if you use the –no-opengl-files option!
Now wget CUDA 8.0. toolkid from NVIDIA
While downloading register at NVIDIA, download CUDNN 5 runtinme lib on your local machine and SCP it to the remot instance:
Now make the runfile executable and install CUDA but don’t install the driver. Also the –override option helps to prevent some annoying errors, which could happen.
IMPORTANT: Be sure to use the –no-opengl-libs option
Now open your .bashrc
and add the following lines:
If the SCP operation is complete, extract it to the right locations.
Reboot one more time:
Now git clone Tensorflow and start the configuration:
I used /usr/bin/python3.5 for the Python binary and /usr/local/lib/python3.5/dist-packages for the path, Cuda SDK 8.0, cudnn 5.1.5, compiled without cloud-support and OpenCL but with GPU support of course. Computing capabilities for the instance are are 3.0.
Okay, now we compile everything:
This will take some time. You could watch this video while you’re waiting:
Build the wheel:
If you want, you can use a virtual environment:
Installing OpenAI Gym is pretty straight forward, cause the people at OpenAI and all other contributers have done an amazing job (: Sometimes there are some problems with Box2D. If you want to be sure, follow the instructions below. We already installed Swig (we need 3.x before compiling Box2D). Git clone Pybox2d
Build and install it:
Installing OpenAI Gym should now be no trouble at all. We already installed most of the dependencies but I copy-pasted everything from their github instructions just to be sure:
If you had problems running OpenAI Gym headless using xvfb as X-server it should now work, if you do as explained by Trevor Blackwell in this post (the GLX option is active by default):
Have fun (:
If you run into any troubles, just let me know. I’m always happy to help.


Hong Kong Code Conference will be held on Saturday 24th October 2015. It's a programming conference aimed at all programmers in Hong Kong. We want to share our skills and opinions. We want to inspire each other with our passion. We want to build a closer, stronger community.
we ❤ hk coders
Andrew Medworth graduated in Computer Science from Selwyn College, Cambridge in 2005, and moved from London to Hong Kong in 2010. His interests include programming languages, distributed systems and virtualization. He is currently helping to build a private cloud platform based on Docker.
Twitter: @medworth Github: @amdwTony Wong, co-founder and CTO of Shopline, is an entrepreneur and software engineer that has extensive experience in Web and Mobile Apps development. He is passionate about startups and is experienced in startup dynamics as a Founding Member of Viss, a mobile app focusing on fashion in Asia. Tony was an Overall Winner at Startup Weekend HK 2013 and he also holds a Master of Science from HKUST Business School. Prior to moving to Hong Kong, Tony has lived and worked in different parts of the world, including Latin America, Canada and other parts of South East Asia, giving him unique insight into many emerging markets around the globe.
Twitter: @tonywongkJonas S Karlsson, PhD, travelling Zen Hacker, likes do build new programming languages like pandalang.org and database kernels. Worked at Google building Google Megastore that underlies and scales Google App Engine consulting with numerous projects on how to scale to millions of users.
Twitter: @jonasskarlssonMart is the director of Droste, a Hong Kong-based Data Science Consultancy, a Data Science Instructor at General Assembly, Co-founder of Open Data Hong Kong, and the convener for Symbol & Key.
Twitter: @tijptjikDonal is passionate about sharing knowledge. He spent many years in education, first as a computer science lecturer then as a software engineer, followed by a short detour into the world of startups. Now he is an enterprise support engineer for GitHub where he continues his passion of helping people build software better, together.
Github: @donalJack has devoted himself to Ruby development since he graduated. He is keen to open-source self-tested projects and give talks at conferences and Codeaholics. Having worked in different institutions (startups, 4A agency, travel company and web consultancy), he is happy to see technology bring productivity, efficiency and change the world. He is fond of Agile development, but also tries his best to be agile physically in terms of running, swimming and as a softball catcher!
Github: @aquajachPedro is a full-stack software & social engineer. He can seamlessly switch between talking code and talking with humans thanks to his experience working in consulting companies like Thoughtworks and ThoughtSauce. Originally from Brazil, he came to Asia to change the world and, moreover, change himself. Currently he's leading development teams at Wallem, a multi-national logistics company.
Github: @_pedropimentel_Godfrey Chan is a software developer born and raised in Hong Kong. He is a member of the Ruby on Rails core team and a contributor to various open-source projects. He currently works at Tilde Inc in Portland, Oregon, splitting his time between building Skylight and open-source consulting. In his previous life, he was also an award-winning WordPress™ plugin author.
Github: @chancancode


Files CCore/inc/PrintBits.h CCore/src/PrintBits.cpp
PrintBits() is a Creator function, it is used to bind together a printing device and some unsigned integral value to build the Helper Type PrintBitsClass object.
template <UIntType UInt,PrinterType P>
PrintBitsClass<P,UInt> PrintBits(P &out,UInt value) { return PrintBitsClass<P,UInt>(out,value); }
PrintBitsClass prints bits of the given value in a textual form.
template <PrinterType P,UIntType UInt>
class PrintBitsClass
{
P &out;
UInt value;
bool empty;
public:
PrintBitsClass(P &out,UInt value);
PrintBitsClass<P,UInt> & operator () (UInt flag,StrLen name);
void complete();
};
Here is the usage pattern (from GenFile.h):
PrintBits<uint32>(out,oflags) (Open_Read ,"Read") (Open_Write ,"Write") (Open_Pos ,"Pos") (Open_Create ,"Create") (Open_Erase ,"Erase") (Open_New ,"New") (Open_AutoDelete,"AutoDelete") (Open_PosEnd ,"PosEnd") .complete(); // // Prints like Read|Write|Pos //
And more:
class FileOpenFlagsTextDesc { FileOpenFlags oflags; public: explicit FileOpenFlagsTextDesc(FileOpenFlags oflags_) : oflags(oflags_) {} template <class P> void print(P &out) const { PrintBits<uint32>(out,oflags) (Open_Read ,"Read") (Open_Write ,"Write") (Open_Pos ,"Pos") (Open_Create ,"Create") (Open_Erase ,"Erase") (Open_New ,"New") (Open_AutoDelete,"AutoDelete") (Open_PosEnd ,"PosEnd") .complete(); } }; inline FileOpenFlagsTextDesc GetTextDesc(FileOpenFlags oflags) { return FileOpenFlagsTextDesc(oflags); }


Coast Guard suspends NY Water ferries over safety issues
NEW YORK (AP) - A number of New York Waterway ferries were pulled from making trips in the waters between New Jersey and New York City over safety discrepancies, the Coast Guard said Sunday.
The agency said all 32 vessels in the company’s fleet were inspected over the last week and 23 vessels taken out of operation. On Sunday, the agency said six of those suspended vessels had been put back in service.
Petty Officer John Hightower, a spokesman for the agency, said the inspections of the entire fleet came after regular annual inspections found issues with fire safety and other emergency systems that hadn’t been resolved.
“We know many people rely on these ferries for daily commutes, and as these discrepancies are rectified, we will work with New York Waterway to return these ferries to operations as quickly as possible,” Capt. Jason Tama, commander of Coast Guard Sector New York, said in a statement.
NY Waterway spokesman Patrick Smith said there would be some delays during Monday morning’s commute, with some routes operating on a 20-minute frequency instead of the usual 10-minute time.
“NY Waterway regrets the inconvenience to our customers,” he said. “We are working with the Coast Guard to address this issue as quickly as possible.”
He deferred to the Coast Guard when asked what the issues with the vessels were.
There are 32,000 passenger trips on the ferries every weekday.
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


A Chassis has a DriveSystem and a name, and can move using the Motion Control System Framework.
More...
#include <Chassis.hpp>
A Chassis has a DriveSystem and a name, and can move using the Motion Control System Framework.
| std::string Chassis::getName |
( |
| ) |
|
Get the chassis name.
- Returns
- string name of the chassis
Use the DriveSystem to move the chassis.
- Parameters
-
| [in] | double | distanceFeet to move the chassis |
| [in] | ChassisTurnrate | chassisTurnRate (0 for straight, < 0 for left turn, > 0 for right turn) |
| [in] | ChassisVelocity | chassisVelocityRequested (actual movement constrained by drive system) |
| [in] | ChassisAcceleration | chassisAccelerationRequested (actual movement constrained by drive system) |
| void Chassis::setDriveSystem |
( |
const TankDrive & |
driveSystem | ) |
|
Sets the chassis's drive system to the specified object of a class derived from DriveSystem.
- Parameters
-
| [in] | DriveSystem | driveSystem derived class object (e.g., a TankDrive object) Gets the chassis' drive system (an object of a class derived from the DriveSystem base class) |
- Returns
- DriveSystem myDriveSystem - an object of a class derived from the DriveSystem base class
| void Chassis::setName |
( |
std::string |
name | ) |
|
Set the chassis name.
- Parameters
-
| [in] | string | name of the chassis |
| std::string Chassis::myName |
|
private |
The documentation for this class was generated from the following files:


stiffness:
thermal coupling:
temperature:
:
force radius:
time step:
:
stiffness: energy cost for a spin to not be a unit vector
thermal coupling: coupling strength to thermal bath at temperature T
temperature: temperature of the bath
vortex/force strength: strength of vortex attractive force when clicking on the system
time step: increase to increase simulation speed at the expense of accuracy
steps/frame: number of time steps before updating the image (decrease for more frames per second (fps), or increase for faster simulation speed if fps is already maxed out at 60fps)
Simulate the XY model using webgl!
Hold down the mouse button to apply a force that attracts vortices and repels anti-vortices.
The vortices and anti-vortices are emergent particle excitations with long-range interactions, similar to electrons and positrons.
Each pixel on the computer represents an XY model spin.
The spins in this simulation are soft, which means that the 2-component vector at each site is not constrained to a unit vector.
The color represents the direction of the spin vector.
Lighter colors indicate that the magnitude of the spin vector is less than 1, while darker colors indicate a magnitude greater than 1.


Tailwind Traders is broadening its use of Azure services. It still has on-premises workloads with current security-related configuration best practices and business procedures. How does the company ensure that all of its systems meet a minimum level of security and that its information is protected from attacks?
Many Azure services include built-in security features. Tools on Azure can also help Tailwind Traders with this requirement. Let's start by looking at Azure Security Center.
Azure Security Center is a monitoring service that provides visibility of your security posture across all of your services, both on Azure and on-premises. The term security posture refers to cybersecurity policies and controls, as well as how well you can predict, prevent, and respond to security threats.
Security Center can:
This short video explains how Security Center can help harden your networks, secure and monitor your cloud resources, and improve your overall security posture.
Tailwind Traders can use Security Center to get a detailed analysis of different components in its environment. Because the company's resources are analyzed against the security controls of any governance policies it has assigned, it can view its overall regulatory compliance from a security perspective all from one place.
Here's an example of what you might see in Azure Security Center:
Let's say that Tailwind Traders must comply with the Payment Card Industry's Data Security Standard (PCI DSS). This report shows that the company has resources that it needs to remediate.
In the Resource security hygiene section, Tailwind Traders can see the health of its resources from a security perspective. To help prioritize remediation actions, recommendations are categorized as low, medium, and high. Here's an example:
Secure score is a measurement of an organization's security posture.
Secure score is based on security controls, or groups of related security recommendations. Your score is based on the percentage of security controls that you satisfy. The more security controls you satisfy, the higher the score you receive. Your score improves when you remediate all of the recommendations for a single resource within a control.
Here's an example from the Azure portal showing a score of 57 percent, or 34 out of 60 points:
Following the secure score recommendations can help protect your organization from threats. From a centralized dashboard in Azure Security Center, organizations can monitor and work on the security of their Azure resources like identities, data, apps, devices, and infrastructure.
Secure score helps you:
Security Center includes advanced cloud defense capabilities for virtual machines, network security, and file integrity. Let's look at how some of these capabilities apply to Tailwind Traders.
Just-in-time VM access
Tailwind Traders will configure just-in-time access to VMs. This access blocks traffic by default to specific network ports of virtual machines, but allows traffic for a specified time when an administrator requests and approves it.
Adaptive application controls
Tailwind Traders can control which applications are allowed to run on its virtual machines. In the background, Security Center uses machine learning to look at the processes running on a virtual machine. It creates exception rules for each resource group that holds the virtual machines and provides recommendations. This process provides alerts that inform the company about unauthorized applications that are running on its VMs.
Adaptive network hardening
Security Center can monitor the internet traffic patterns of the VMs and compare those patterns with the company's current network security group (NSG) settings. From there, Security Center can make recommendations on whether the NSGs should be locked down further and provide remediation steps.
File integrity monitoring
Tailwind Traders can also configure the monitoring of changes to important files on both Windows and Linux, registry settings, applications, and other aspects that might indicate a security attack.
Tailwind Traders can use Security Center to get a centralized view of all of its security alerts. From there, the company can dismiss false alerts, investigate them further, remediate alerts manually, or use an automated response with a workflow automation.
Workflow automation uses Azure Logic Apps and Security Center connectors. The logic app can be triggered by a threat detection alert or by a Security Center recommendation, filtered by name or by severity. You can then configure the logic app to run an action such as sending an email or posting a message to a Microsoft Teams channel.


covviz
Chromosome Coverage
Global QC
Chromosome
Chr
Scaled coverage
Proportions covered
Loading...
Loading...
Inferred sex
Problematic low and non-uniform coverage bins


Started reading Mary Midgley’s Evolution as a Religion for the September episodes of Winning Slowly. This is going to be quite the ride.
(Let’s just say that her grasp on the problems of evolution-as-religion is better than her grasp on the nature of religion itself.)


§303-4 Adoption of rules. Each employer may adopt rules to implement this chapter including but not limited to:
(1) The method of filing an election to accept an adjustment in earnings and revocation of the election;
(2) The effective date of an election;
(3) Changes in the amount of the adjustment in earnings; and
(4) Selection of the insurance company or companies from which the annuity contracts are to be purchased or to which payments into a qualified custodial account are to be made. [L 1967, c 40, pt of §1; HRS §303-4; am L 1999, c 123, §2(5)]


#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
from pyspark import SparkContext
from pyspark.mllib.common import callMLlibFunc, callJavaFunc
from pyspark.mllib.linalg import SparseVector, _convert_to_vector
__all__ = ['KMeansModel', 'KMeans']
[docs]class KMeansModel(object):
"""A clustering model derived from the k-means method.
>>> from numpy import array
>>> data = array([0.0,0.0, 1.0,1.0, 9.0,8.0, 8.0,9.0]).reshape(4,2)
>>> model = KMeans.train(
... sc.parallelize(data), 2, maxIterations=10, runs=30, initializationMode="random")
>>> model.predict(array([0.0, 0.0])) == model.predict(array([1.0, 1.0]))
True
>>> model.predict(array([8.0, 9.0])) == model.predict(array([9.0, 8.0]))
True
>>> model = KMeans.train(sc.parallelize(data), 2)
>>> sparse_data = [
... SparseVector(3, {1: 1.0}),
... SparseVector(3, {1: 1.1}),
... SparseVector(3, {2: 1.0}),
... SparseVector(3, {2: 1.1})
... ]
>>> model = KMeans.train(sc.parallelize(sparse_data), 2, initializationMode="k-means||")
>>> model.predict(array([0., 1., 0.])) == model.predict(array([0, 1.1, 0.]))
True
>>> model.predict(array([0., 0., 1.])) == model.predict(array([0, 0, 1.1]))
True
>>> model.predict(sparse_data[0]) == model.predict(sparse_data[1])
True
>>> model.predict(sparse_data[2]) == model.predict(sparse_data[3])
True
>>> type(model.clusterCenters)
<type 'list'>
"""
def __init__(self, centers):
self.centers = centers
@property
[docs] def clusterCenters(self):
"""Get the cluster centers, represented as a list of NumPy arrays."""
return self.centers
[docs] def predict(self, x):
"""Find the cluster to which x belongs in this model."""
best = 0
best_distance = float("inf")
x = _convert_to_vector(x)
for i in xrange(len(self.centers)):
distance = x.squared_distance(self.centers[i])
if distance < best_distance:
best = i
best_distance = distance
return best
[docs]class KMeans(object):
@classmethod
[docs] def train(cls, rdd, k, maxIterations=100, runs=1, initializationMode="k-means||"):
"""Train a k-means clustering model."""
model = callMLlibFunc("trainKMeansModel", rdd.map(_convert_to_vector), k, maxIterations,
runs, initializationMode)
centers = callJavaFunc(rdd.context, model.clusterCenters)
return KMeansModel([c.toArray() for c in centers])
def _test():
import doctest
globs = globals().copy()
globs['sc'] = SparkContext('local[4]', 'PythonTest', batchSize=2)
(failure_count, test_count) = doctest.testmod(globs=globs, optionflags=doctest.ELLIPSIS)
globs['sc'].stop()
if failure_count:
exit(-1)
if __name__ == "__main__":
_test()


The readers we target are people who already have some basic experience in Java and show interest in Generic Programming. We don't plan to give any detail about usual Java notions, like primitive data, objects, or classes, so the reader should already have a basic knowledge of Java. Consequently, we already assume that you are a programmer and mainly focus on Generic Programming and Advanced Generic Programming features. People interested in these topics can be identified through two perspectives.
One is throught the programming spectrum. People interested in easy-to-maintain programs usually relies on simple designs, which are easy to understand and reusable in many situations. People who want to create libraries for broad audiences are also usually caring about how to cover as much scenarios as possible with their library, which leads them to develop generic structures and procedures. Thoses people are naturally driven towards using Java generics, which has been introduced in 2004 with J2SE 5.0. With greater experience, Java programmers tend to use generic structures which can be reused elsewhere, leading them to learn about Design Patterns and other standard structures recognised to provide relevant features. Those people are the first one to be interested in Advanced Generic Programming in Java.
A second relevant perspective is the ontological spectrum. For those familiar with the word "ontology", be aware that we do not speak about the philosophical ontology, which is about the idea of identifying the "real" structure of the world, what exists and what does not, how entities relate to each other and how they don't. We speak here about ontology in Information Science, with the aim to establish a shared conceptualisation of the world or of the domain targetted by a given community. For those less familiar with the term, there might have people not particularly interested in programming, but who find a great interest in generic concepts and relationships. Those generalists are more of the kind to care about a broad, consistent view of the world they live in rather than many, independent views of each domain they might come across, whatever the reason. Those people, due to personal interest or professional constraints, might learn about programming in order to implement their models in a way that can be executed, whether it is for actual application or simulation. These people may want their program to be as close as possible to the model they have in mind, leading them to care about languages allowing them to make a "copy-paste" of their model with as few refinements as possible to obtain an executable program. Those people might find a great interest in learning about Generic Programing and Advanced Generic Programing too.
Generic Programming itself relates to the use of generic concepts, like Java generics. Here, we are not targetting simply the use of generic concepts, but also their relations with other (generic) concepts, which implies to care about generic relationships, and thus generic structures. Such structures refer usually to what we call Design Patterns


Everything started in April 2011, when Zack, Jonathan and Jerome – long-time friends – wanted to organise a group trip to the world famous festival, Coachella. They asked themselves essential questions: "Should we go camping, or stay at a hotel?", "Is this hostel convenient? Does it provide the best value for money?", "Should we go for the VIP ticket or the General Admission one?", and "Should we book local transportation?". The planning and booking process was painful, time consuming and very expensive!
Everything started in April 2011, when Zack, Jonathan and Jerome – long-time friends – wanted to organise a group trip to the world famous festival, Coachella. They asked themselves essential questions: "Should we go camping, or stay at a hotel?", "Is this hostel convenient? Does it provide the best value for money?", "Should we go for the VIP ticket or the General Admission one?", and "Should we book local transportation?". The planning and booking process was painful, time consuming and very expensive!
Everything started in April 2011, when Zack, Jonathan and Jerome – long-time friends – wanted to organise a group trip to the world famous festival, Coachella. They asked themselves essential questions: "Should we go camping, or stay at a hotel?", "Is this hostel convenient? Does it provide the best value for money?", "Should we go for the VIP ticket or the General Admission one?", and "Should we book local transportation?". The planning and booking process was painful, time consuming and very expensive!
Everything started in April 2011, when Zack, Jonathan and Jerome – long-time friends – wanted to organise a group trip to the world famous festival, Coachella. They asked themselves essential questions: "Should we go camping, or stay at a hotel?", "Is this hostel convenient? Does it provide the best value for money?", "Should we go for the VIP ticket or the General Admission one?", and "Should we book local transportation?". The planning and booking process was painful, time consuming and very expensive!
Everything started in April 2011, when Zack, Jonathan and Jerome – long-time friends – wanted to organise a group trip to the world famous festival, Coachella. They asked themselves essential questions: "Should we go camping, or stay at a hotel?", "Is this hostel convenient? Does it provide the best value for money?", "Should we go for the VIP ticket or the General Admission one?", and "Should we book local transportation?". The planning and booking process was painful, time consuming and very expensive!


I'm at Bristol Hack Night at Momentum and I'm going to carry on with Odio. Okay, so I've got a test where the desired ODS files is zipped up to create a single file with the .ods extension. Then the actual file is compared against it, and if they match then the test passes. There's a separate program for generating the ODF file, but my task is to integrate this into the tox tests.
Okay, that's done.
Some docs are really needed, let's do that next.


Last updated: May 27, 2016
Cat Facts by kevrom ("us", "we", or "our") operates http://catfacts.kevrom.com (the "Site"). This page informs you of our policies regarding the collection, use and disclosure of Personal Information we receive from users of the Site. We use your Personal Information only for providing and improving the Site. By using the Site, you agree to the collection and use of information in accordance with this policy.
Information Collection And Use
While using our Site, we may ask you to provide us with certain personally identifiable information that can be used to contact or identify you. Personally identifiable information may include, but is not limited to your name ("Personal Information").


--- layout: default title: Bigger Than Yourself section: work-in-progress ---
Documentation of sketches, photographs, models, or writings are key to the making process.


-
Even in cases where it's okay to talk to someone who is on yellow or red, you might notice that the interaction is still difficult for them. As long as you're respecting their boundaries, chances are that they're not upset with you. They may just be anxious, tired, distracted, or overloaded. Here are some options to consider for making it easier:
- If they seem anxious to get back to work, try to make the interaction as quick as possible. What are the important parts? What can wait?
- Be patient while they formulate thoughts. Any number of things might be getting in the way of someone finding the right words. Avoid talking more to fill the silence. Even if you feel you're providing helpful information, is probably going to be more distracting and make it even harder.
- Offer to use an alternative form of communication. If someone is having trouble speaking, for example, they might have an easier time using an AAC app, signing, writing it down, etc., but they may be uncomfortable or unable to suggest it themselves.
- Even if someone is not obviously stressed, it might be best to make any interactions with a person on yellow or red as quick as possible.
- If someone says you can be on their "yellow list" or "red list," use this power responsibly! It is still likely to be a bad idea to strike up a long conversation about weekend plans with someone on red.
- You may find that you need to adjust the specifics to suit your own needs.
- For example, you might ask people not to email you in favor of talking even if you're on yellow, or to try to get your attention gently before jumping into a conversation when you're on red.
- It may be a good idea to take some time when starting to use color communication to talk to the people you interact with most about your preferences or to figure out how you'll discuss modifications that need to come up later.
Tips & Resources
Accessibility options (uses cookies)
Font size: %
Tips and Reminders
Things to keep in mind for using color comunication effectively
Additional Resources
Here are some links to additional resources, including those referenced throughout this site and a few others
- Color Communication information sheet by the Autistic Self Advocacy Network
- The curb cut effect: 1 | 2 | 3
-
Augmentative/Alternative Communication (AAC) and related options for if your usual mode of communication is not feasible: (I do not have personal experience with all of these, so I cannot guarantee their efficacy)
- SpeechNinja for Chrome or Safari (should work on desktop and mobile) - the developers also have apps for reading longer text, dictating notes, and captioning live audio
- Emergency Chat: Android | iOS
- Speech Assistant AAC for Android
- eeSpeech for iOS
-
Spoon Theory, a way disabled people often describe energy levels, can in some situations be loosely analogous to the different colors (e.g., red might mean “low on spoons”)
- Another post about spoons


Writing the First Lines of Code (MVP Part 2)
The Makings of a Minimum Viable Product
Introduction to the HTML5 Template Element


Hi - I bought an emonTH with a DS18B20 temperature sensor and an external DS18B20 sensor, together with a Raspberry Pi Base station, back in early October, but have only just got around to setting it up.
I've attached a screenshot of the inputs (from a local copy of emoncms 8.4.0 and emonhub running on the Raspberry Pi) that I am getting. I can see the onboard temperature, and the battery level, but I can't see the external temperature input anywhere.
Any ideas what I need to do to get this please?
Re: Missing value from emonTH - SOLVED
I don't know, but my (saved) emonTH sketch doesn't transmit the external temperature. However, two sketches that I've looked at on GitHub do, emonTH_DHT22_dual_DS18B20 and emonTH_DHT22_DS18B20, and the rest might do too, so without checking both that and the change notes, I think you need to load a (later) sketch to your emonTH.
Re: Missing value from emonTH - SOLVED
Thanks for the suggestion. I looked at the emonTH_DHT22_dual_DS18B20 sketch, and this appears to do what I want. But first it says that I need to find out the addresses of the two sensors. So I loaded the sensor test sketch, and I am confident that I have got the addresses.
However, when I compile the emonTH_DHT22_dual_DS18B20 sketch, it uses the RFu_JeeLib: https://github.com/openenergymonitor/RFu_jeelib library, which the documentation says is "(OLD emonTH V1.4)".
I have got an emonTH V1.5 Any idea what needs to be done to upgrade the sketch?
Also, I tried to upload a 'factory' sketch, and chose emonTH_DHT22_DS18B20_RFM69CW, but it doesn't work. I notice that there is a new firmware planned for units shipped from December, but this also requires changes to the base station. Any idea which sketch I can load to get me back to where I was?
Re: Missing value from emonTH - SOLVED
I've had a look at emonTH_DHT22_dual_DS18B20, and all I think you need to do here, if you have a V1.5 with a surface-mount processor on the main board and not the RFu328 piggy-back board, is replace "#include <RFu_JeeLib.h>" with "#include <JeeLib.h>".
If you're using "emonTH_DHT22_DS18B20_RFM69CW" and you have the RFM12B radio (see "RFM Radio Modules - Identifying different types" in Resources), then change "#define RF69_COMPAT 1" to "#define RF69_COMPAT 0" like it says in the comment.
Re: Missing value from emonTH - SOLVED
Thanks again for your suggestions, but I've not had much success....
I've made the following changes to emonTH_DHT22_dual_DS18B20
I've attached a screen shot of the serial monitor output.
- Why am I getting all the corrupt characters? (When I run the sensor test sketch, I don't get any of these, so I think it must be to do with the sketch. I've also played around with BAUD rates, but it made no difference)
- The sketch pauses for a minute after displaying sensor 1 and before displaying sensor 2. Looking at the sketch, this doesn't make sense to me.
- None of the readings are getting back to my Raspberry Pi. :-(
Also, I can't seem to find a 'factory' sketch that works.
Thanks for any help.
P.S. I'm using Arduino IDE 1.6.6 - don't know if that is significant - but everything compiles OK.
Re: Missing value from emonTH - SOLVED
I have now solved the problem (with some help from Glyn and Robert).


Save
with Ease
Saving Plan
Automated Savings
Build a dedicated savings faster on your terms automatically or manually.Fixed Savings
Lock money away for a fixed duration with no access to it until maturity. It’s like having a custom fixed deposit.Goal-oriented Savings
Reach all your savings goals faster. Save towards multiple goals on your own or with a group.Flexible Savings
Save, transfer, withdraw, manage and organise your money for free at any time.Investment
Invest securely and confidently on the go. Grow your money confidently by investing in pre-vetted investment opportunities.
More info5 Million +
customers
Since launching in 2019, over 5,000,000 people have used WemaVest to manage their money better, avoid over-spending and be more accountable.
Start Saving


Jody Mimmack
Democrat
I am a retired Colorado public school teacher and leader. Also since 2014 I been a content expert and online professor for CSU-Global in he Principal Leadership Licensure program.
I have a PhD in Educational Leadership and Policy Studies from the University of Denver. I also hold a Masters and Bachelors degree in Special Education form the University of Northern Colorado. I consider myself a near Colorado native and graduated from Thomas Jefferson High School in Denver.
80210
I have donated small sums of money to the Democratic Party at the local, state and national levels.
I volunteered through Rotary Clubs in Fruita and Winter Park. I retired as I had to return home to live with and take care of my mother. I have had to place mom in a more skilled nursing facility and now have time to volunteer.
As a long time school leader Principal, Executive Director and Superintendent I have extensive experience in working with individuals and groups that represent different interests. I have superior facilitation skills and work with groups to find solutions and common ground. I also possess excellent conflict resolutions skills I have served on many negotiations committees and other interest based committees as both a participant and chairperson.
I would like to serve on the commission to support all Coloradans in being able to be involved in being able to access our government processes.
I am a long term PUBLIC educator and believe in the power of equity for all. I believe in listening to all sides with interest and intent. I am a solutions oriented individual and am able to help individuals expand perspective. I seek consensus and am able to engage in and employ many different processes to reach consensus. Because am committed to equity for all I am also fair and impartil in seeking to understand perspective and find solutions.
I have worked in public education for over 35 years and have had to work through many very difficult issues including budget cuts, curriculum shifts, personnel issues and others. I have the ability to quickly read and review materials, have an extensive quantitative and qualitative research background that enable me to gain full perspectives based on research and available data. In turn I am able to thoughtfully analyze problems and apply logic to finding workable solutions.
Female


Camera model
Pinhole Camera Model
Given a 3D point in world coordinate, we can calculate the corresponding image pixel (homogeneous coordinate):
where is internal camera parameters.
, which represent the camera rotation and translation in world coordinate, are external camera parameters.
Binocular Camera Model
Here, I also put the introduction of binocular camera model.
Fundamental and Essential Matrix
Fundamental and essential matrix are two important concepts in epipolar constraint. It has been widely used in various monocular 3D vision. Here are the derivations.
Given two correponded feature points in two images ( is the 3D point in world coordinate) and assuming the first camera is on orginal coordinate, we have below equations.
Since is a scalar and . We can put into for simplicity. . . So we have
We have below equation after combining them.
We left cross product on both sides, and the equation becomes
where is the cross product matrix. Since is a vector and it is vertical vector . We left multiply on both sides. Then we have Note that the scale in this estimation is undetermined. Because you can multiply any scalar number on essential matrix without violate the equation (i.e. the equation still holds when translation multiply any scalar number). This problem leads to the depth estimation (trianglation) is undetermined too. So monocular vision cannot calculate the exact scale information.
If we already have interal camera parameters , we can calculate the essential matrix from the a group of feature correspondences and then decomposite essential matrix to the external parameter . If we don’t have interal camera parameters, then we need to calculate the fundamental matrix and figure out the internal and external parameters at the same time.
I’d like to summarize some important properties about epipolar geometry as below:
1.The degree of freedom (DoF) of essential matrix is 5 (3 rotation + 3 translation - scale invariant), fundamental matrix is 7 (9 elements - scale invariant - determinant=0), homography matrix is 8 (9 elements - scale invariant). When it satisfies scale invariant, we can always marginalize out an element like force translation_Z = 1 or last matrix element = 1.
2.Essential matrix has two eigen values and they are the same. Fundamental matrix has two eigen values but they are different. The rank of E and F are both 2. A linear algebra conclusion: the sum of eigen values = the sum of diagonal elements. The multiplication of eigen values = the value of determinant
3.Fundamental matrix . is epipolar point in the second image, is homography matrix. The coefficients of epipolar line can be represented by .
Homography matrix
Sometimes, the fundamental or essential matrix could be ill-posed (e.g. no translation or all correspondence points are on a plane). The essential or fundamental decomposition could be degenerated.
In this case, we build a new model to calculate interal and external parameters.
Given a plane in world coordinate (usually we can assume the first camera coordinate is world coordinate), the plane can be formulated as below
where is the normal vector of plane. is a point on the plane. is the vertical distance between original coordinate and plane.
The corresponded feature points on two images should satisfy the below equation
Since , we can formulate a new equation
That is Note that the complete homography matrix should contain the depth information , like .
If we have a group of feature correspondences, then we can estimate homography matrix and decompose it to .
Trianglation (depth estimation)
There are several methods to estimate the depth of points, when we get the intrinsic and extrinsic camera parameters. Here I’d like to introduce one of them. First, we have
Combine them and we can get
Since are already known, we use for simplicity.
So we have
Multiple in both sides. We have
Since are already known, we can solve now. Then we can calculate .


--- layout: default ---
The page you are looking for cannot be found.
Please go back to our main site, or contact us


You're running the demo from local file system. Please run from webpage to achieve better time sync and fft effects.


CATEGORY:
WINS:
0
TRIES LEFT:
ALREADY GUESSED:
Previous Word:
WORD GUESS for Van's family
Wendy, Konnor, and Farrah
See answers in console log


this is a paragraph
interpolation is represented by double curly braces. please refer to the code for the text below.1 plus 1 is {{ 1 + 1 }}
your username is {{ username }} and this is defined in line 21 of app.component.ts
Hi, {{ currentUser.username }} - {{ currentUser.email }}
Hello, {{ currentUser.username + ' - ' + currentUser.email }}, bye
method getUsername returns {{ getUsername() }} !
On the other hand, method getEmail returns {{ getEmail() }} =)
Hello {{ getUsername() }}
Your email is {{currentUser.email}}
Hello {{currentUser.username}}!!
Your email is : {{currentUser.email}}
assigning input value chomp to a local variable
new use of referencing which is a var with # in front
input value is : {{a.value}}
lets change our email,
on click
on key release
shortened version of on key release
This text appears or disappears depending on the NG-IF statement
can you see the text above? ^^ pointing up ^^


In the future, we’ll forget creativity’s eminence & it won’t be something we realize we miss once it’s gone. The path from whence we came will be hidden and inconstructible. Adumbrating sensory overload will occlude our path, if we even think to look for it.
Honestly, as dysfunctional as I have been, I miss whatever part of me thought to write this down.
Exponential development of culture threatens to detach us from the aspects of life that precipitate creativity. The nature of postmodernism, combined with desensitization and the pruning of adjunct appurtenance supplanted by technology, all may lead us to a place where it is incredibly difficult to form new ideas. Even distinguishing novel ideas becomes difficult. The motivation for discovery is mostly diminished, as the effort required to identify and demonstrate novelty intensifies. Yet, novelty’s increasing scarcity will augment the rewards for a select few.
λ ♥ Originality and Precipitation of True Novelty
ϕ Life is Miracle Grow for Creatives
ϕ Windmills on Broadband
ϕ Harnessing Isolation
λ ♥ Metamodernism
ϕ Exercising Our Creative Muscles
λ ♥ The Paradox of Creativity
ϕ The Curse of Reality Porn
ϕ The Power of the Unknown
ϕ Cyberspace Wanderlust
ϕ Mastery Over Mystery Means Mystery Over Mastery
λ ♥ Paraparadox
ϕ Two Paradoxes Paired to Form a Third
ϕ 無 de nada
ϕ From Whence We Came?
ϕ Metaphysical Cross-Pollination×
ϕ The What, The How and The Why
ϕ It’s the Food and How We Cook It
ϕ Generation Rift
ϕ Tempered from Experience
λ ♥ Líf and Lífþrasir
ϕ Winning!
ϕ Never Forget 天命
λ ♥ Originality and Precipitation of True Novelty
In a world where almost everything has been discovered, how does one cultivate creativity? There is a skill of creating something without knowing about it. Some ideas are just natural extensions of others; maybe two to three steps away. If you’re lucky, you’ll have a head start on those innovations which are so close to something that exists and is well known. Yet, these ideas will naturally be reached by most people who think about them.
Other ideas and techniques are much more difficult to reach. If you’re lucky, you identify something truly new that can be recombinated with everything applicable. These gems may require excruciating introspection and magnificent insight. Being capable of this kind of creativity is an exceedingly rare skill! Some have a talent for it, but it can also be practiced, improved and understood. It is not some mysticism only possible for eccentrics.
Life is Miracle Grow for Creatives
Some artists seem to have personalities that naturally enable them to be more creative. It can be some strength of character that the have, like an inquisitive thirst for variety in experience or a curiousity for understanding what most would consider distasteful. Or maybe some quirk or deficiency that drives the experiences to nurture creativity. Often, one becomes creative out of raw struggle to transcend limitation or understand some challenge. They develop such an intimate, intricate knowledge of a domain because their thirst consumes them. They articulate this understanding by filling their works with vividly distinguished statements demonstrating depth of knowledge about those domains.
Windmills on Broadband
Limitations to communication and cultural transmission have been evaporating since the introduction of broadband and pervasion of internet video. When I wanted to learn how to windmill, all I had was the Mother Goose Ultimate Windmill Guide.  After a few months of rolling around in my garage, I miraculously met a bboy that helped me get continuous mills down. My point is, in case you just popped out of a coma, every formerly obscure subculture from breakdancing to cup-stacking has been spreading like wildfire. In the 90’s, if you weren’t in an urban area, you never saw bboy’s breaking it down, unless you rented Beat Street from Blockbuster.
My favorite aspect of breakdancing? It’s a skill that you can practice and pride yourself on, where the only requirement is physical coordination and a pair of shoes. And maybe some parachute pants.
The internet lead to an acceleration of modernization on par with the phenomenon of modernization itself. By 2006, after YouTube firmly established itself, instruction or exposure for nearly any subculture you could be interested became available over a broadband connection, facilitating the recombination of those subcultures into new artforms. Broadband was the equivalent of strapping a jet turbine to modernization.

The speed at which data could barrel through Al Gore’s series of tubes no longer held us back. The next major growth restraints were average time spent online, communication response time and service availability, which were eliminated by iPhone and smartphones by 2010.
Harnessing Isolation
When I first started jamskating, from about 2003 until early 2005, I only had one person to practice with. Youtube wasn’t available, I had just upgraded from dial-up to broadband and we couldn’t travel to learn moves from other skaters. So we were forced to work with what we had and we struggled hard to come up with our own stuff. It was hard, but if we didn’t try to create moves, we would have been limited to maybe two dozen. Because we spent so much time thinking about what constituted a move in search of new combo’s, we began to intuitively deconstruct what we knew and eventually created a plethora of new stuff …. Of course, now that I look for my 2006 singles/doubles videos online, they are all conveniently missing, instead of just mostly conveniently missing. Wow. This is not the first time I’ve been scrubbed, it’s honestly $#@!’ing typical. Maybe this is for the best? LMAO.  Moving on
λ ♥ Metamodernism
Metamodernism looks at cycles that transition between the modern and postmodern trends. These cycles are like waves that ripple in a pond. Modernism creates the original waves that bring together disparate cultural elements, which were originally separated geographically. And postmodernism is a reaction to modernism, where it is clear in art and culture that people seek to differentiate themselves by reaching further or seeking to combinate elements that others have missed. So, postmodernism is represented by the waves that are reflected off the edge of the pond that mix and mesh together. But, since there is always cultural disparity created by the dispersion of new culture, there is a continual, cyclical interplay between the notion of modernism and postmodernism. That’s how I understand it anyways. Also, IMO, metamodernism is about seeking to understand the trends and factors that create the basis on which art movements are driven and on which art can be judged to be novel and original.
Read this fantastic article to learn more: [Re]construction: Metamodern ‘Transcendence’ and the Return of Myth
Exercising Our Creative Muscles
However, in a world standing on the shoulders of giants – who are, in turn, standing on giants all the way down – several things become limiting factors for creativity which present unique challenges. There is the sheer scale of time require to learn all the necessary skills to advance a field. This is a huge issue and so is all the repeat information you’ll need to process when learning the required skills.
Yet there is another more subtle limiting factor for us inhabitants of our postmodern world. In a world where mostly everything has been done in some way or another, people have less of a reward system in place to exercise their creative muscles. The opporunity for creativity dwindles and the cost for true invention skyrockets. Our drive to create diminshes, but our thirst doesn’t disappear. Like anything else, if you don’t use it, you lose it.
We’re two steps away from a world where it’s possible to download jujitsu from the matrix – yet, the need for many skills will be supplanted by tech. Outside of amusement or curiousity, there would be many skills we wouldn’t need to download. We can currently learn nearly anything we want for free with Coursera and other online education tools. We are more in control of the design and development of our mind than ever before. But you can’t so easily teach someone to be as creative as the people who struggled to innovate in the first place.
λ ♥ The Paradox of Creativity
For people to profit from discoveries in society, there are more efficient ways to teach skills and subjects, but it’s one that may or may not foster creative aptitude. It is simple with technology, but not easy, to optimize the education systems on quantity of knowledge developed – though technology never replaces the community of IRL college and school. Yet, this is orthogonal to the knowledge required for creative process. And I would say that there is no set of knowledge which could completely replace the experience and passion that drives the creative process.
The Curse of Reality Porn
Speaking firsthand, in a world where anyone can conjure up youtube videos of any fantastic combination of keywords, I’ve found myself desensitized to what should be truly amazing. We’ve become so oversaturated with access to prime content, sorted by viewcount and rating, that we can easily lose appreciation for the amazing experiences around us. It’s like reality porn, since it strongly warps our notion of what’s normal. It can drive people to strive harder, but obviously may lead to unrealistic expectations. For me, watching some amazing maker videos would stimulate my imagination and simultaneously stem my desire to try it or something like it, since it had been done before. This led me to avoid learning some skills altogether, had I just been willing to work very hard to experience something without feeling a need for that project to be something new.
The Power of the Unknown
In my head, a reel is playing my 2004 image of an amazing bboy hitting the most insane powermoves. The windmill sensei that brought me up in the bboy game comes to mind. I was so excited to meet this guy because I had never met anyone who could teach me how to bboy and here’s this guy that, breaking it down for 120 seconds, pulled 200 kids into the center of the floor to watch. Fast forward just three years and getting a crowd that size so quick was impossible. The ability to have vicariously experience anything at any time sapped the magic from so much out there. And after TV shows like America’s Best Dance Crew, it’s to be expected this wouldn’t be such a rarity in Roanoke.
But there’s really no replacing that kind of magic moment, where out of nowhere, life hands you precisely what you’ve been searching for. You just had no idea; your mind had no concept of it, but your heart felt it. That is the power of mystery in life and it’s dying. There is power in seeing something, which your mind struggled to assess, model, measure and compare. That moment is what life is about, to me.
Cyberspace Wanderlust
We rob ourselves of the power of these experiences as we sift through videos, tweets and shares to immediately satisfy our craving for humour or wonder. Though too often this understanding lies below the veil of my conscious mind: it is desire for the ecstacy of incomprehensible, imcomparable experience that drives my behavior; to recognize it, to control it is to exhibit masterful control of my mind and my life. And to practice is it, one must meld with the beauty of now and dissolve preconceived maxims or schemas for the world, the experiences of which further inform our mind, all to often quenching the flame of the child inside us.
This is because the more powerful our schemata for predicting and controlling the world become, the more likely we are to lean on the same schema again and again. This results in constriction of variety of experience and myopia and the elimination of dynamic behavior. And yet, the world doesn’t ask us to do this; quite the opposite. Structures in society tend to extinquish this, except in a few cases, particularly for artists. If your livelihood demands strengthening your inner child, I hope you realize how lucky you are.
Mastery Over Mystery Means Mystery Over Mastery
To tap into the power of the unknown, we have to develop the intuition to evaluate the true value of unknown experiences, as well as their fidelity and authenticity when they are vicarious or surrogate. We also need to resolve the self-restraint and patience to wait for the bona fide phenomena, instead of self-indulgence on a rough imitation. You only have one first experience with something or someone, although yes, one can argue that there are never two experiences or two things exactly alike. And yet, the only way we can develop this intuition is through experiences and by living life.
λ ♥ Paraparadox
When I meet someone, I always try to remember how it happened. I’m not good at this, but I try. Some people’s creativity derives from their model of attention and focus. They simply process different information and notice different things. Optimal social behavior is a very hard problem that requires storing and processing lots of information. For me, that’s a challenge. For others, it appears to be simple and natural. However, if you constantly process and store what is happening around you, you are more aware of the present and you’re more likely to remember the little things about the first time you met someone, which IMO is irreplaceable.
Two Paradoxes Paired to Form a Third
A corollary to this is to actually restrict the number of times you might meet someone new or experience something completely new, since that requires so much energy and effort on your part. Yet, it’s another paradox, since trying to control the experiences you will have limits your range of life experiences from which to discern truth. The only way we can hope to discern a sense of truth in the flux of life is by being exposed to as many authentic situations as possible. Yet, again, so many religions and cultures develop their traditions and social structures based on five or more generations of life experience, so how would someone know when it is worthwhile to seek their own understanding?
無 de nada
As for becoming a master of the present moment, I’m sure there are plenty of other exercises to strengthen your awareness, as well as tactics for knowing how to apply your learnings.
From Whence We Came?
Multitudes of people who are incredibly smart, but less creative, especially in a world where anyone can instantly know nearly anything, may leave us in a place where we can not see the way back. However, if we can’t see the way back, how can we claim the way forward? I view the Singularity as more of a Convergence, or exponential development towards a sharply plateaued sigmoid curve, which may consist of several steps over millions of years. But, with this paradox of creativity, we may accelerate our implementation of science and technology, but then stagnate our progression of it, eventually, as we separate ourselves from our past.
Metaphysical Cross-Pollination
Obviously, we must move forward; our economy demands it. Yet, we need to keep a close eye on our trajectory. Total loss of the factors which fecundate and fertilize to cultivate seeds of creativity may leave us stranded and lost. We need to maintain diversity of thought, so that we can take advantage of the cross-pollination of ideas.
Jesus Christ, think of the bees!!
Otherwise, 3 or 4 generations into this phenomenon of quasi-omnisience, if we don’t expend the energy to maintain an understanding of how we got here, then the skills, traits and seeds of originality may be lost. An understanding of what motivates artistry and creation, that could easily be forgotten. Or perhaps it is fated, in which case, it is all the more vital for us to retain the memory of this future moving forward.
The What, The How and The Why
This has happened time and time again in history: people understand the “what” of their history, they may even remember the “how” of the past, But, they almost always forget the “why” in their story. It’s simple to remain aware of the what happened in the past two generations. People may marvel at how the pyramids in egypt or stone statues on Easter Island. But can anyone answer the Riddle of the Sphinx? IMO, the same motivation that compelled the inhabitants of Easter Island to construct their statues also, albeit partially, answers that riddle.
Over the next century, this phenomenon of not understandy “why” will rapidly become more difficult to understand. In a world of overdriven sensory overload, this is already a problem. There’s so much information out there, that it becomes difficult to discern things which were once just common sense. And, even though we appear to be so much more “advanced” and sophisticated, our minds are suffering. Needless complexity in our lives has distracted us through constant overstimulation. And it’s become common to philosophize and “discover” some mode of thinking or phenomenon that everyone used to be familiar with.
It’s the Food and How We Cook It
You can already see how this has effected us by contrasting eating habits now, compared to 100 to 500 years ago. Of course, there wasn’t much decent medical or nutritional records then and no doubt that poverty drove people to eat less healthy. But if you look at conventional wisdom about what were healty eating habits then and correlate it to the beliefs of an average 14 year old, you might be shocked. In the past five years, our habits have changed and America seems much healthier, but 25 years ago, someone thought it’d be a good idea to load food with transfats.
And this is one example where our modern minds, overstimulated with data and the latest scientific understanding, thought it’d be a great idea to completely reject five centuries of conventional nutritional and medical understanding.  It has always been valuable to draw generalizations across generations of observed patterns in eating and living habits.
Science seems smart, but often lacks wisdom. It appears to explain, yet often lacks the “why.” Science without religion is blind; religion without science is lame. Ahhh, sometimes lines from TV shows can be brilliant eh?
Generation Rift
The skills and hard work that we gave up in the name of convenience also endowed us with invaluable knowledge. Usually this we absorbed purely from sensory experience, milking cows and whatever. We made valuable insights from our direct observations. If we completely lack the experiences that cause those observations, or if an entire generation no longer shares like 90% of the observations or experiences of the previous generations, then a rift is formed. It becomes more difficult to relate. The younger generation has a tough time comprehending the belief systems of the older generation and simply considers them wrong, when there is immeasurable value in sharing our experiences. And in a major revolution, the seniors and elderly often find themselves targeted in the following years, as their experience threatens the young power.
Tempered from Experience
And for those skills which seemed outdated, the youth tends to believe them to be a complete encumbrance. We totally overlook how replacing those skills with convenience leads to a vacuum in newer generations, where there was once experience and knowledge. Therefore, large branches are severed from the tree our or collective mind to which we all map our belief systems and knowledge. This reduces the diversity of mind and culture, which encroaches on the universal scope of ideas available to us.
For example, common agricultural practices are mostly lost to this generation. Robots are our friendly farmers and you can see their perfect circular crops dot the terrain from 15,000 feet. But there are great insights that can be attained from a life working in this trade, or perhaps just a few humble years. This is stuff you’ll only understand by doing it yourself for a protracted amount of time. Someone could try to explain it to you, but the relevance of this knowledge would be completely invisible, if it can even be put into words. Farmers are closer to nature. Farmers learn to be closer to animals, at least they do if they’re not using cruel factory farming techniques.
Sidenote: There is an economic benefit to restraint on cruel agricultural practices, which is that it restrains livestock production to smaller operations. This translates into higher prices and profits shared amoung more people. Good luck with that one though.
λ ♥ Líf and Lífþrasir
In a Hollow Tree
My point is, by severing ourselves from longstanding cultural practices, we poison that tree, culling all the branches to leave just one. In doing so, we stunt our own growth and our fate may be that our great-grandchildren are all blind. Or lost. Or unaware of how they were born into their world? We need to maintain the practice of cultural practices and trades which can be automated, so that we can continue to maintain this diversity. It’s obviously not efficient, but our future depends on our ability to understand our world. After all, we only arrived here by understanding the world around us, right?
In 2030, education will be so streamlined that equivalent of a bachelor’s degree could be attained in less than 10 years, instead of 17. Innovation will eventually be driven by AI. And the more facets of life that are supplanted by AI, the darker the shadow of nihilism will grow. Nihilism scares me more than any robot or zombie apocalypse because we can never be sure to prevent or defeat it, no matter how much progress we achieve. In fact, it is progress itself that strengthens the spectre of nihilism. The more we eliminate disease and poverty, the more certain we are to struggle against widespread nihilism.
Winning!
Imagine that. The more we win, the more certain we are to lose. To lose hope. To lose progress. To lose understanding. The seeds of our salvation and hope lie in recognizing this early and fomenting cultural resilience against it. In a world where there is no reason to work, we cannot forget the value of hard work. In a world where there is no disease, we cannot forget the pain, fear and regret so often experienced in a hospital or a deathbed. In a world where there is no poverty, we cannot forget the valuable lessons we learned enduring stagnant poverty. If we don’t manage to push forward with this information, we will be forever cursed to being pulled back. When that happens, we may have forgotten where we came from, so how can we know where to go?
Never Forget 天命
So I hope we never forget the value of being creative. It won’t be something that we realize we miss once it’s gone because even if we could turn away from the adumbration of sensory overload, we won’t know where to look. If we forget, we will be lost. As progress accelerates, culture exponentiates, as do its effects on society. With culture, we have the opportunity to nurture our tree to see it blossom or see it curl inward as we become fastidiously blinded by hubris. Which one would give our children a resilient haven for Líf and Lífþrasir?
…


--- layout: post title: "My Week in Review" date: 2017-04-02 07:05:00 +0000 tags: image: https://s3.amazonaws.com/audreywatters/2017-04-02-london.jpg imagecredits: https://www.flickr.com/photos/surreal_badger/33658188951/in/dateposted-public/ ---
Icon credits: The Noun Project


My wife gave birth to our daughter on a cold Autumn eve when the Japanese invaded Manchuria. She was naked, red, and crying for breath. A child so small she could have fit into the crook of my arm.
I can feel her in my arms, these feelings of safety and security taking me over. Vulnerability seemed a far distant thought that was further away than the beaches of Iwo Jima. Yet, something was coming to find me, to pull me away from this false notion of peace. Pearl Harbor.
I made a vow to God. If I made it out of this war alive, I would carry my youngest daughter on my back to stairs of the cathedral to be baptized.
I'm not ready.
The Battle of Guadalcanal was fought between August 7th, 1942 to 9th February 1943. On the seventh of August, Alied forces landed on Guadalcanval with the objective of hindering the Japanese progression in the Pacific and to threathen enemy supploy and communication routes throughout the Pacific. The Japanese had occupied the island since May 1942 and were severely outnumbered by the Allies
Shocked by the Allied offensive, the Japanese tried to retake their airfields, engaging in three major land battlles and several large naval battles. Each side bombared the other leaving a total of 7,100 Allied forces dead and 31,000 Japanese soldiers dead.
Guadalcanal was the decisive turning point in the war. The Japanese surrendered the island in the early year.
These men are of the old breed, these men are our commanding officer. The very men put in charge of our lives. I can now see white sands of Pacific before me.
17. 18. 19. These men are still children.   I see these children leaping from the amphibious vehicles like frogs springing from one log to the next as the hawk o’er head gazes down waiting to pluck. 17. 18. 19. dead men.
November 10 1943
This afternoon, while we were south of Bougainville ... we came across a raft with four live Japs in it ... As the destroyer Spence came close to the raft, the Japs opened up with a machine gun at the destroyer.  One of the Japs did not want to die for the Emperor and put up a struggle. The others held him down. The officer was the last to die. He also blew his brains out. The Spence went in to investigate. All the bodies had disappeared into the water. There was nothing left but blood and an empty raft. Swarms of sharks were everywhere. The sharks ate well today ... We went to battle stations ... and at 10PM we were attacked by enemy planes ... Later darkness descended and the rains came.
September 3, 1942
Guadalcanal Island
Dear Mother, Dad, Katharine, and John: Yesterday we got our first mail, the best birthday present possible for me. ... After mail call everybody would be nice and quiet when suddenly somebody would curse in a loud voice and shout, “Alice got married.” It really was funny. Cherokee got word that he is out in the cold and really surprised us all. One fellow in our squad got a box of cookies that had been reduced to dust and the dust was soon reduced leaving an empty box…. Daddy! You absent-minded prof. When you write to mother, you better mail it to her and not accidentally put it in my letter. I destroyed it and didn’t show it to the boys though, just to show what a sport I am… Tell everybody hello for me…
Love
Sid
Guadalcanal Island
While we were giving them hell, the Japs somehow managed to land their amphibious vechicles on the beach and outpoured a battalion of men. The gunnery sergeant yelled at us to get into formation to defend the beach from their invasions. I ran post the pine trees lining the beach and the sweet smell of pine reminded me of the years passing me by.
We ran down from the beach back to the guns.  We offered them our finest bullets, hoping some would nail them in the head or heart.  I want to forget the sound of men screaming like panic horses being fired at. I want to forget this shithole of an island.
When the light headed back to the moutains we began to prepare for the long run.
European Campaign spanned across many countries. Allied forces tredged through muck and mire, climbed over barbwire, all while getting blozen to bits by Nazi artillery.
The Battle of the Bulge was fought between December 16, 1944 to January 25, 1945. It was a major German offensive that took place in Belgium, France, and Luxembourg. The Germans decided to take on a weakly defended section of the Allied line, a suprise attack that took them offguard.
Although the Germans had the upper edge, they were defeated after the Allies brought in reinforcements. The battle involved 610,000 American men, 19,000 which were killed and 89,000 casualities. It was the largest and bloodiest battle fought by the U.S. during the war.
It was also a very, cold and brutal winter.
Belgium, November 19, 1944
I hardly know how to begin after such a long time and I really have been sweating it out. But speaking of sweating things out, in the past two weeks there was a few mornings that really called for a good deal of sweating out. It used to be fairly peaceful to lay in our foxholes but these particular mornings there was plenty of big stuff falling nearby. I never was too scared of the stuff until then. We happened to be about eight miles inside of Reich and the artillery was coming from all directions. Everytime a shell started to whistle in, I was beginning another prayer. As one of the 'doughfeet' put it, "I may not get the Purple Heart for being wounded but if they give them out for being scared as hell I certainly rate one," and that's no kiddin'...
Respectfully, Carl SchluterWe've had little rest in the past two days. Every man's head slowly nods in a foxhole as sleep tries taking cover.
I think it's Tuesday. Perhaps, it's Monday. The days blur into each other. It's snowed past four days.
I reckon this will be the last of you’ll ever hear of me. Haven't got much time seeing Death is looming o’er head of me in this pending hour. Us soldiers evade Death and all his friends like birds flying south to avoid a cold New York winter. If there is one last thing you should know about me before I go is that I was never scared of death but being forgotten.
 That name is his identity and legacy. I found myself that day I was wounded at Guadacanal. I learned that I was the type of man who refused to die. Although my life was comfortable in Texas, I would get this constant itch, a yearning to find myself again.
Soldiering ain’t what it’s made out to be, fancy uniforms and gold emblems. It’s the experience of lying in the mud, wounded, while your friends die around you.
I can still taste that Pacific soil and the cold warmth of rain and dirt on my back. Bury me there with the rest of my friends.


I'm a Singaporean, Computer Science student at UCLA. I love art, music and travel and have dedicated most of my time in UCLA to social justice on campus and coding. I initially started off as a business economics major but through getting my hands dirty in my first coding project in a hackathon mid year 1, I soon discovered that the CS field better catered to my passion for problem solving and making meaningful difference.
Throughout my college experience, I've seeked learning opportunities wherever possible, whether be it through taking up online courses to learn Python, iOS app development and R during my spare time, or involving myself in leadership on campus to better acclimatise myself with social justice issues such as mental health, learning about different cultures, and carrying out projects to better the UCLA community.
I'm currently working as a student web developer for UCLA External Affairs through which I seek to gain real work experience while learning on the job.
Throughout my college experience, I've seeked learning opportunities wherever possible, whether be it through taking up online courses to learn Python, iOS app development and R during my spare time, or involving myself in leadership on campus to better acclimatise myself with social justice issues such as mental health, learning about different cultures, and carrying out projects to better the UCLA community.
I'm currently working as a student web developer for UCLA External Affairs through which I seek to gain real work experience while learning on the job.