Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 4
Beef tastes great paired with the strong flavours of tamarind and lemongrass. This dish can be made in minutes- perfect for a speedy weekday supper. (For a more filling option try it with wholegrain noodles.)
This meal is
low calorie
and provides 232 kcal, 30g protein, 13.4g carbohydrate (of which 10.8g sugars), 6.3g fat (of which 1.7g saturates), 1.7g fibre and 0.8g salt per portion.
Heat the oil in a wok or frying pan, toss in the beef and cook over a high heat for 2-3 minutes.
Add the lemongrass, shallots and chillies and stir-fry for a 5 minutes, or until the meat is well browned.
Add the tamarind paste, lime juice, fish sauce, sugar and papaya and stir-fry for 4 minutes.
Divide between four bowls and serve.


As one of the first few projects in my Computational Robotics course, my project group and I implemented a Particle Filter to help localize a robot based on lidar data (in layman’s terms - figured out where the robot is on a map based on sensor input). As one of the earlier projects in this course, this project was fairly scaffolded, with starter code and data provided. Our primary focus while working on this project was to gain a strong understanding of the theoretical underpinnings of the Particle Filter (in particular, why this approximation is needed and why this method works) and practice taking the project from theory to implementation. The project assignment description can be found here.
Project Partners: Eamon O’Brien, Emma Pan
Project Results
The overall results from testing our particle filter on pre-recorded data can be seen below. Note that the large red arrow represents the “ground truth” (aka the actual position of the robot based on a camera looking at fiducial tags on the ceiling), and the robot represents our filter’s best estimate of the robot’s current position. Each small arrow represents a “hypothesis” of a possible location of the robot, and its color indicates how much we believe in that estimate based on what our lidar is currently seeing (where red = unlikely hypothesis, green = likely hypothesis).
Project Details (excerpt of our write-up)
Project goal
The objective of implementing a Particle Filter is to create a method for figuring out where the robot is within a known map. Although there are mathematically straightforward ways to compute this, there are usually runtime considerations that prevent these from being implemented as-is. In a particle filter, we attempt to compute a “good enough” approximation by tracking and updating a series of poses, which we assign weights to that represent our level of confidence in that particular pose.
What we did
The following steps are implemented in our Particle Filter:
- Create a series of particles with varying positions and poses around our initial estimate (high uncertainty, lots of variation)
- Compute weights for each particle
- Line up the center of the lidar data with the particle
- For each point in the lidar, compute what map position that’d be using the following pseudocode:
x = particle.x + point_r*cos(point_theta + particle.theta) y = particle.y + point_r*sin(point_theta + particle.theta)
- For each of the projected lidar points, compute the distance to the nearest point in the map + If the projection is off the map, discard the projection
- Compute the average distance between the projection and the map
- Create a weight value that is inversely proportional to the distance
- Normalize weights (adjust weights such that their sum equal 1)
- Update most likely robot pose (computed by averaging the x,y, and theta of the top 20 or so particles)
- Resample particles (randomly choose particles from a weighted set, add noise that is proportional to the variance)
- Update particles with the odometry (move all of the particles based on movement reported by the robot’s encoders) using the following pseudocode:
r = distance(prev_pose, current_pose) for each particle in the particle cloud: particle.x += r*cos(particle.theta) particle.y += r*sin(particle.theta)
- Go back to the compute weights step and repeat the process
Full Project Write-up
To read more about this project and to see our full-length project write-up, visit the link below!


Data Mining and Predictive Analytics
Posted on Wed 11 January 2017 in Data-Science • Tagged with Data-Mining, Machine Learning, Predictive Analytics
Posted on Wed 11 January 2017 in Data-Science • Tagged with Data-Mining, Machine Learning, Predictive Analytics
Posted on Wed 11 January 2017 in Data-Science • Tagged with R, programming
Posted on Sat 28 May 2016 in Learning • Tagged with C, programming


-
Data Scientist
Dow Jones
Machine Learning, NLP, vizualization.
November 2014 -
-
Fellow
Insight Data Science
An intensive seven week post-doctoral training fellowship bridging the gap between academia and data science.
July 2014 - September 2014
-
Postdoctoral Associate
Weill Cornell Medical College
Biostatistics, Inference of Time-Varying Networks.
January 2012 - November 2014
-
Ph.D in BioStatistics
University of Bristol
Machine Learning, Bayesian Statistics and way too much MCMC.
October 2009 - January 2012
-
Masters in Complexity Sciences
Bristol Centre for Complexity Sciences
Interdisplinary projects in Biostatistics.
September 2008 - October 2009
-
Bachelors: Double Major in Mathematics & Physics
University of Bristol
Mathematics and Physics
October 2004 - September 2008
Side Projects
In Press
As part of my current position as Data Scientist at Dow Jones, I have the fantastic opportunity to regularly collaborate on NewsRoom project with reporters and editors of the Wall Street Journal. Here are a few examples of some publised work.
Publications
In a previous life, I spent my time developing statistical tools and libraries to help address questions relevant to the fields of Genetic Medicine and Protein Folding. During this time, I was able to contribute to a number of manuscripts that have been publised in peer-reviewed journals.
Smoking Dysregulates the Human Airway Basal Cell Transcriptome at COPD Risk Locus 19q13.2
Massive parallel RNA sequencing was used to compare the transcriptome of BC purified from the airway epithelium of healthy nonsmokers (n = 10) and healthy smokers (n = 7). The chromosomal location of the differentially expressed genes was compared to loci identified by GWAS to confer risk for COPD. Smoker BC have 676 genes differentially expressed compared to nonsmoker BC, dominated by smoking up-regulation. Strikingly, 166 (25%) of these genes are located on chromosome 19, with 13 localized to 19q13.2 (p<10−4 compared to chance), including 4 genes (NFKBIB, LTBP4, EGLN2 and TGFB1) associated with risk for COPD. These observations provide the first direct connection between known genetic risks for smoking-related lung disease and airway BC, the population of lung cells that undergo the earliest changes associated with smoking.
Click to view paper
High Correlation of the Response of Upper and Lower Lobe Small Airway Epithelium to Smoking
The distribution of lung disease induced by inhaled cigarette smoke is complex, depending on many factors. With the knowledge that the small airway epithelium (SAE) is the earliest site of smoking-induced lung disease, and that the SAE gene expression is likely sensitive to inhaled cigarette smoke, we compared upper vs. lower lobe gene expression in the SAE within the same cigarette smokers to determine if the gene expression patterns were similar or different.
Click to view paper
LOGICOIL—multi-state prediction of coiled-coil oligomeric state
This work introduces LOGICOIL, the first algorithm to address the problem of predicting multiple coiled-coil oligomeric states from protein-sequence information alone. By covering >90% of the known coiled-coil structures, LOGICOIL is a net improvement compared with other existing methods, which achieve a predictive coverage of ∼31% of this population. This leap in predictive power offers better opportunities for genome-scale analysis, and analyses of coiled-coil containing protein assemblies.
Click to view paper
SCORER 2.0: an algorithm for distinguishing parallel dimeric and trimeric coiled-coil sequences
The predominant coiled-coil oligomer states in Nature are parallel dimers and trimers. Here, we improve and retrain the first-published algorithm, SCORER, that distinguishes these states, and test it against the current standard, MultiCoil. The SCORER algorithm has been revised in two key respects: first, the statistical basis for SCORER is improved markedly. Second, the training set for SCORER has been expanded and updated to include only structurally validated coiled coils.
Click to view paper
A basis set of de novo coiled-coil peptide oligomers for rational protein design and synthetic biology
Protein engineering, chemical biology, and synthetic biology would benefit from toolkits of peptide and protein components that could be exchanged reliably between systems while maintaining their structural and functional integrity. Ideally, such components should be highly defined and predictable in all respects of sequence, structure, stability, interactions, and function. To establish one such toolkit, we present a basis set of de novo designed α-helical coiled-coil peptide.
Click to view paper
The evolution and structure prediction of coiled coils across all genomes
Coiled coils are α-helical interactions found in many natural proteins. Various sequence-based coiled-coil predictors are available, but key issues remain: oligomeric state and protein–protein interface prediction and extension to all genomes. We present SpiriCoil (http://supfam.org/SUPERFAMILY/spiricoil), which is based on a novel approach to the coiled-coil prediction problem for coiled coils that fall into known superfamilies: hundreds of hidden Markov models representing coiled-coil-containing domain families.
Click to view paper
Prediction and analysis of higher-order coiled-coils: insights from proteins of the extracellular matrix, tenascins and thrombospondins
LOGICOIL out-performed other algorithms in predicting trimerisation of these proteins and sequence analyses identified features associated with many other trimerising CCDs. The thrombospondins are a larger and more ancient family that includes sub-groups that assemble as trimers or pentamers. LOGICOIL predicted the pentamerising CCDs accurately. However, prediction of TSP trimerisation was relatively poor, although accuracy was improved by analyzing only the central regions of the CCDs. Sequence clustering and phylogenetic analyses grouped the TSP CCDs into three clades comprising trimers and pentamers from vertebrates, and TSPs from invertebrates. Sequence analyses revealed distinctive, conserved features that distinguish trimerising and pentamerising CCDs. Together, these analyses provide insight into the specification of higher-order CCDs that should direct improved CCD predictions and future experimental investigations of sequence-to-structure functional relationships..
Click to view paper
Airway Basal Stem/Progenitor Cells Have Diminished Capacity to Regenerate Airway Epithelium in Chronic Obstructive Pulmonary Disease
Click to view paper
Designed coiled coils promote folding of a recombinant bacterial collagen
We propose that a single CC promotes folding of the CL domain via nucleation and in-register growth from one end, whereas initiation and growth from both ends in CC-CL-CC results in mismatched registers that frustrate folding. Bioinformatics analysis of natural collagens lends support to this because, where present, there is generally only one coiled-coil domain close to the triple helix, and it is nearly always N-terminal to the collagen repeat.
Click to view paper


This website serves as a showcase for my resume and personal projects. As a sophomore, I plan to continue pursuing biomedical engineering as well as the computer science behind biomedical engineering in my classes and exploration of industry. I have interned at the US Department of Defense's Project Tesseract, researched hearing loss with the University of Washington, built a medical device while on a student startup, and created a button to aid in suicide prevention. Please feel free to contact me if you have any questions about my portfolio.
Teaching Assistant and grader for Washington University's Data Structures and Algorithms Course.
Project Tesseract is an effort by the United States Department of Defense to gain insights from recruited fellows in academia on emerging fields and for the fellows to work on projects related to the research of emerging technologies.
While an intern, I prototyped a vending system for tools to accelerate the speed of maintenance operations on a military base's Flightline. I also worked on a sub-team to develop a system to allow for autonomous robots to operate inside a hangar among humans similar to Amazon fulfillment centers. I also presented a report of the robot system to Brigadier General Linda Hurry, where it was positively received.
Diagram from the provisional patent
OsteoPOP was a student startup led by Biomedical Engineering Ph.D. student Ian Berke. OsteoPOP focused on finding a solution to the low compliance rate of bisphosphonate medications prescribed to elderly women for the treatment of Osteoporosis.
Our team spaned a wide array of disciplines, including students skilled in Biomedical Engineering like Ian and I, an Electrical and Systems Engineering Student proficient in sensors, two Economics Ph.D. students studying incentives, and MBA students studying the market of a potential solution.
Our solution was a device with an optional pack-in application that tracked compliance and educated the user on the importance of their medication as well as auto-requested a prescription refill for them if they consented to it. As an Engineering Lead, I managed the development schedule and still worked as an engineer helping with the development of a prototype, which included microcontroller programming, Computer-Aided Design (CAD), and App Development. Our final result was simple, yet effective; a pill cap sensor that was equipped with a LIDAR sensor and 3D Dot Projection that could estimate the number of pills left in the bottle accurately enough to determine whether a medication was taken and if a refill would soon be required. The resulting device was filed for a provisional patent co-authored by Evin Jaff, Ian Berke, and Caleb Martin (the three main students working on prototyping the device). The prototype was presented at multiple entrepreneurship events, including TigerLaunch, and Washington University's Olin School of Business' Idea Bounce where it was a finalist in both. The student startup disbanded, however, after Ian was awarded his Ph.D. in the Spring of 2019.
A photo of a sample similar to what I prepared in a recent publication from the lab
While interning at the Stone Lab in the Medical School's Otolaryngology Department, I worked under a graduate student to prepare and analyze inner-ear samples. I learned standard lab skills, as well as complex protocols for how to properly "defrost" biological samples stored for years in sub-zero freezers and the handling of dangerous chemicals such as Formaldehyde. While an intern, I also attended multiple research conferences and met with colleagues of the lab to learn more about medical research


Customize the overall appearance of the monitor. The dark theme is recommended for easier readability, especially for late nights on call.


Track transition curves
For passengers in a car or train, traveling in a straight line at constant speed is the most comfortable motion, as there is no acceleration. Roads or rail lines with only straight lines are rather limiting, however, so we frequently encounter curves, in the most extreme form in large freeway interchanges such as shown below.
When designing a freeway interchange, one of the most basic questions just what shape the transition curves between the straight-line roads should have. Other considerations then follow, such as stacking the roads above each other and banking the angle of the roads.
The difficultly in designing curves in roads arises from the need to have a smooth ride for the passengers in the vehicles as they traverse the curves at high speed. In particular, we do not want to have sudden changes in acceleration for the passengers.
Aerial view of the High Five multi-level stack interchange between I-635 and US 75 in Dallas, Texas, taken with a camera suspended from a kite line. Image source: Fotopedia image, from the flikr image by Jett Attaway (CC BY 2.0) (full-sized image).
Circular arcs for transition curves
To understand the issues with transition curve design, we will consider a simple oval track with two straight segments joined by curves at both ends. The simplest curve shapes are semi-circles (half-circles), as shown below.
Car driving at constant speed around a track with straight line segments joined to perfect semi-circle ends. The graph at the bottom shows the acceleration magnitude versus time. Note the sudden jump in acceleration magnitude when the car switches from a straight line to the curve.
If we the car driving around the track with semi-circle ends, then we see that there is zero acceleration on the straight segments, but on the semi-circular transition curves the acceleration is inwards with magnitude $v^2 / \rho$, where $\rho$ is the radius of curvature. A passenger would thus feel no acceleration on the straight segments, but then would suddenly feel a large sideways acceleration as the vehicle switches to the semi-circles, which would be very uncomfortable and potentially dangerous.
For passenger comfort, we do not want rapid changes in acceleration for transition curves. That is, we want a low value for the derivative of acceleration with respect to time. The derivative of acceleration is known as jerk, defined by $\vec{\jmath} = \dot{\vec{a}}$ (for vectors) or $j = \dot{a}$ (for scalars). With perfect semi-circular ends we see that the jerk is mathematically infinite at the transition to the curve, although in reality it would just be a very high value as the vehicle would not transition to the semi-circle instantaneously.
While the terms velocity and acceleration are standard for the 1st and 2nd derivatives of position, the names for higher derivatives are not so well-established. While jerk is often used for the derivative of acceleration (so the 3rd derivative of position), the terms jolt, surge, and lurch are also sometimes encountered for this quantity.  Another suggestion is to refer to the 4th, 5th, and 6th derivatives of position as snap, crackle, and pop, respectively.
Jerk and snap have many applications in engineering and science. For example, jerk and snap have both been used to measure human movement smoothness and diagnose stroke patients (Rohrer et al., 2002) while minimizing snap is often used as a design principle for quadcopter control schemes (Mellinger and Kumar, 2011).
Changing accelerations (causing jerk) must result from changing forces, due to Newton's second law. Although the terminology is also somewhat loose in this case, the derivative of force with respect to time is often referred to as yank, and the derivative of yank is called tug (the second derivative of force). Third derivatives and higher of force are very rarely encountered, and do not seem to have any names in common usage.
References
- D. Mellinger and V. Kumar, Minimum snap trajectory generation and control for quadrotors, in 2011 IEEE International Conference on Robotics and Automation (ICRA), 2520–2525, 2011. DOI: 10.1109/ICRA.2011.5980409
- B. Rohrer, S. Fasoli, H. I. Krebs, R. Hughes, B. Volpe, W. R. Frontera, J. Stein, and N. Hogan, Movement Smoothness Changes during Stroke Recovery, The Journal of Neuroscience, 22(18): 8297–8304, 2002. Link.
Smooth transition curves with Euler spirals
Unlike the sudden switch shown above from a straight line segment (no curvature) to a curved transition curve, we would prefer to have a more gradual transition. An example of this is shown below with the right-hand transition curves changed to use Euler spiral segments, which start curving gradually and then increase the curvature the further the vehicle moves around the curve, before reversing the process on the second half of the curve. Euler spirals are one of the common types of track transition curves and are special because the curvature varies linearly along the curve.
Car driving at constant speed around a track with perfect straight line segments joined to Euler-spiral segments on the right-hand curve and a semi-circle on the left-hand curve. The red curve is a perfect semi-circle for comparison. Note the continuous transition in acceleration when the car switches from a straight line to the left-hand curve.
If we the motion around the track with Euler spiral transitions, then we can see from the acceleration magnitude plot that the acceleration does not suddenly jump as the vehicle moves around the right-hand curve. Instead it steadily increases to a maximum value, before decreasing again to zero. The peak acceleration needed on the Euler spiral transitions is somewhat higher than on the semi-circle transitions, but we have avoided the sudden jerk associated with switching from straight line to circular motion.
The equation for a spiral with linear curvature variation was first derived by the Swiss mathematician Leonard Euler in 1744, hence the name Euler spiral for this curve. The spiral was then independently rediscovered in the late 1800s by civil engineers who were unaware of Euler's work and who named the resulting spiral the clothoid, which is still a commonly used name in traffic engineering. This spiral also arises in the study of near-field diffraction in optics, as developed by the French engineer Augustin-Jean Fresnel and the French physicist Alfred Cornu, for which reason the spiral is also sometimes called the Cornu spiral.
Euler spiral equation
An Euler spiral is a curve for which the acceleration magnitude increases at a constant rate as we travel along the curve at uniform velocity. Another way to say this is that the curvature is a linear function of the distance along the curve. To see that this is the same thing, we write the acceleration in a tangential/normal basis as \[ \vec{a} = \ddot{s} \, \hat{e}_t + \kappa v^2 \, \hat{e}_n. \] For constant-speed motion with speed $v$, the distance along the curve satisfies $\dot{s} = v = \text{constant}$, so $\ddot{s} = 0$. The acceleration vector thus only has a normal component, and this has magnitude proportional to the curvature $\kappa = 1/\rho$, where $\rho$ is the radius of curvature. To have the acceleration increasing linearly along the curve, we thus want the curvature to be a linear function of distance, so $\kappa = \alpha s$ for some constant $\alpha$.
While specifying that $\kappa = \alpha s$ is enough to define the shape of the Euler spiral curve, finding the explicit equation for the curve is not so easy. We first introduce the functions $C(z)$ and $S(z)$, known as Fresnel integrals and defined by:
Fresnel integrals
\[\begin{aligned} C(z) &= \int_0^z \cos\Big(\frac{1}{2} \pi u^2\Big) du \\ S(z) &= \int_0^z \sin\Big(\frac{1}{2} \pi u^2\Big) du \end{aligned}\]
The Fresnel integrals do not have any simpler forms in terms of elementary functions, as the integrals in them cannot be computed in closed form.
Now we define the constant $\ell = \sqrt{\pi/\alpha}$, and then the position at distance $s$ along an Euler spiral curve is:
Euler spiral
\[\vec{r} = \ell C(s / \ell) \, \hat{\imath} + \ell S(s / \ell) \, \hat{\jmath}\]
We start the spiral curve from the origin, initially moving horizontally to the right and curving upwards with constant speed $v$. Using a tangential/normal basis, let $\theta$ be the angle of $\hat{e}_t$ as shown. Then $\dot{\theta}$ can be found by considering two expressions for the acceleration. First, from the tangential/normal acceleration formula we have \[ \vec{a} = \ddot{s} \, \hat{e}_t + \kappa v^2 \, \hat{e}_n = \alpha s v^2 \, \hat{e}_n, \] where we used the fact that $\ddot{s} = \dot{v} = 0$ (constant speed) and that $\kappa = \alpha s$ for some constant $\alpha$ (the definition of the Euler spiral is that curvature is a linear function of distance $s$).
The second expression for acceleration uses the angular velocity $\vec{\omega} = \dot\theta \, \hat{k}$ of the tangential/normal basis vectors. Recalling that $\vec{v} = v \, \hat{e}_t$ and $v$ is constant, we have \[\begin{aligned} \vec{a} = \dot{\vec{v}} = v \, \dot{\hat{e}}_t = v \, \vec{\omega} \times \vec{e}_t = v \dot{\theta} \, \hat{e}_n. \end{aligned}\]
Comparing the two expressions for $\vec{a}$ and using $s = vt$ we see that \[ \dot{\theta} = \alpha s v = \alpha v^2 t \] and we can integrate this (with the initial condition that $\theta$ starts at zero) to give \[ \theta = \frac{1}{2} \alpha v^2 t^2. \]
To find the equation for $\vec{r}$ we can integrate the equation \[ \dot{\vec{r}} = v \, \hat{e}_t = v \cos\theta \, \hat{\imath} + v \sin\theta \, \hat{\jmath} \] starting from $\vec{r} = 0$ to obtain \[ \begin{aligned} \vec{r} &= \int_0^t \left(v \cos\Big(\frac{1}{2} \alpha v^2 \tau^2\Big) \, \hat{\imath} + v \sin\Big(\frac{1}{2} \alpha v^2 \tau^2 \Big) \, \hat{\jmath}\right) d\tau \\ &= \ell \int_0^{s/\ell} \left( \cos\Big(\frac{1}{2} \pi u^2\Big) \, \hat{\imath} + \sin\Big(\frac{1}{2} \pi u^2\Big) \, \hat{\jmath} \right) du, \end{aligned} \] where we made the substitution $\tau = \ell u / v$ with $\ell = \sqrt{\pi/\alpha}$. Using the definitions of the Fresnel integrals now gives the desired expression.
Plotting the Euler spiral equation gives the curve below, which starts out at the origin with zero curvature, and the then has steadily increasing curvature as we move along it.
Euler spiral shape defined by the equation above. Changing the value of $\alpha$ or $\ell$ simply scales the whole curve to make it bigger or smaller, without changing the shape.
The full Euler spiral is unsuitable for track transitions, as the curvature increases without limit. Instead, we can piece together short segments of the Euler spiral to form our transition curve. For example, the right-hand curve in the smooth track above is composed of two copies of the first quarter-turn of the Euler spiral, with one copy flipped upside down. This means the curvature starts at zero, increases linearly to a maximum halfway around the curve, then decreases linearly again back to zero to join the straight segment.
The Fresnel integrals $C(x)$ and $S(x)$ are examples of special functions. The term special function does not have a precise mathematical definition. Instead, these are functions which arise frequently in applications and which have been extensively analyzed and documented. The classic reference for many special functions is the book known generally as Abramowitz and Stegun. This refers to the publication:
Abramowitz, Milton and Stegun, Irene A. (editors) Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables, Dover Publications, New York, 1972, ISBN 978-0-486-6.
While the tables of special function values in Abramowitz and Stegun are no longer generally needed due to the advent of computers, there is still much useful information in the book. This useful information is now also available in the online successor Digital Library of Mathematical Functions (DLMF) from the National Institute of Standards and Technology (NIST). For example, Chapter 7 of the DLMF includes the the definition of the Fresnel integrals as well as plots of the functions and series expansions for them.


{{ define "content" }}
Hosted by siblings Michael and Rachel Lynch and their dear friend Matt Woodland.


You don’t have permission to view this document. If the document is yours, please log in to see it. Otherwise, the owner of the document must share it with you. See our help documentation for more information on sharing documents.


| |
9400 NW 41st Street, Doral, FL 33178 USA |
|
| |
| Sactuary Doral is pleased to welcome you home! |
|
| [%OtherResidents%] |
9400 NW 41st Street, Unit [%UnitName%] Doral, FL 33178 |
| Move In Information |
|
| Apartment Secured: [%LeaseDate%] |
|
| Lease Start: [%LeaseStart%] Lease End: [%LeaseEnd%] |
|
| Lease Term: [%LeaseTerm%] Months |
|
| |
| Initial Fee |
| Application Fee |
$ [%ApplicationFee%] |
| Administration Fee |
$ [%AdministrationFee%] |
| Holding Reservation Fee |
$ 0.00 |
| Move In Charges |
| Security Deposit |
$ [%SecurityDeposit%] |
| Pet Fee |
$ [%PetFee%] |
| Vehicle Registration |
$ [%VehicleReg%] |
| Prorated Rent |
$ [%ProratedRent%] |
| Prorated Trash/Recycle |
$ [%ProratedTrash%] |
| Prorated Pest |
$ [%ProratedPest%] |
| Prorated Convergent |
$ [%ProratedConvergent%] |
| Prorated Vehicle Rent |
$ [%ProratedVehicleRent%] |
| Concession Amount |
$ [%ConcessionAmount%] |
| |
| Total |
$ [%TotalMoveIn%] |
|
| Monthly Charges |
| Rent |
$ [%Rent%] |
| Trash/Recycle |
$ [%Trash%] |
| Pest Control |
$ [%PestControl%] |
| Convergent |
$ [%ConvergentAmt%] |
| Pet Rent |
$ [%PetRent%] |
| Vehicle |
$ [%Vehicle%] |
| Storage |
$ [%Storage%] |
| |
| Total |
$ [%TotalMonthly%] |
Does not include utility charges.
Water, Sewer, Electricity, Cable, Internet, etc. You will receive a monthly statement outlining your monthly charges that are due the 1st of each month.
|
Notes:
Look and Lease special applied to waive Application Fee ($150.00) and half of the Administrative Fee ($175.00).
|
|
|
|
| * ALL MOVE-IN INFORMATION IS PENDING YOUR APPLICATION APPROVAL * |
| It is our goal to help make this move as easy as possible for you. If there is anything we can do to help, please let us know. Welcome Home! |
| |
| |
Helpful Telephone Numbers
Utilities
Please be sure to connect the following utilities at least five business days in advance.
❖ Electric - Florida Power & Light
fpl.com or<PHONE_NUMBER>
❖ Cable
U-verse – Cesar<PHONE_NUMBER> Comcast 1-800-266-2278
❖ Renter’s Insurance. Resident Shield
https://www.residentshield.com
Berkshire Coral Gables cannot accommodate an 18 wheeler moving truck inside the moving dock or streets surrounding the building.
Maximum 2 pets per apartment home.
Community Directory
Leasing Center<PHONE_NUMBER> Leasing Fax<PHONE_NUMBER>
|
|
|
|
|


If you would like to change to city weather data which will update the navigation you may do this here!
Weather API Implementation
{{infos.name}}
{{infos.main.humidity}}
{{infos.weather[0].main}}
{{infos.weather[0].description}}
{{infos.weather[0].icon}}


25. JDBC Connection¶
In this chapter, you will learn how to use JDBC source to write and read data in PySpark. The idea database for spark is HDFS. But not many companies are not willing to move all the data (PII data) into Databricks’ HDFS. Then you have to use JDBC to connect to external database. While JDBC read and write are always tricky and confusion for beginner.
25.1. JDBC Driver¶
For successfully connection, you need the corresponding JDBC driver for the
specify Database. Here I will use Greenplum database as an example to
demonstrate how to get the correct .jar
file and where to put the .jar
.
25.1.1. Get the .jar
file¶
Since Greenplum is using PostgreSQL, you can search with
‘PostgreSQL JDBC Driver’. There is a high chance that
you will reach to this page: https://jdbc.postgresql.org/download.html.
Then download the .jar
file.
25.1.2. Put .jar
in the jars folder¶
Now what you need to do is putting the .jar
file in the jar folder under
your spark installation folder. Here is my
jar folder: /opt/spark/jars
25.2. Get Credentials¶
The following is the demo how to get the credentials in Azure Databricks:
def azdb_credentials(databaseName="DEFAULT_DB"):
"""
Create credentials by usung dbutils.secrets
:param databaseName: Database need to build the connection,
:return: credentials
"""
# get dbutils module
dbutils = IPython.get_ipython().user_ns["dbutils"]
# Read Secret Keys from Key-Vault
service_principal_id = dbutils.secrets\
.get(scope="secret-scope-key-vault",
key="DB-SPN-ID")
service_principal_secret = dbutils.secrets\
.get(scope="secret-scope-key-vault",
key="DB-SPN-SECRET")
tenent_id = dbutils.secrets.get(scope="ecret-scope-key-vault",
key="TENENT-ID")
# define the authority URL and your tenant ID
##In Azure
###authorityHostUrl = "https://login.microsoftonline.com"
authority_url = ('https://login.microsoftonline.com' + '/' + tenent_id)
context = adal.AuthenticationContext(authority_url, api_version=None)
token = context.acquire_token_with_client_credentials(
"https://database.windows.net/",
service_principal_id,
service_principal_secret)
credentials = {'access_token': token["accessToken"],
'url': "jdbc:sqlserver://a3pcdsapsq01.database.windows.net"
+ ";" + "databaseName=" + databaseName + ";"}
return credentials
25.3. JDBC read
¶
- The most tricky part for JDBC
read
is ensuring: parallel reading
almost evenly distributed partition size for each partition
First Let’s look at the source code JDBC lower-upper Bound:
stride = (upper_bound/partitions_number) - (lower_bound/partitions_number)
partition_nr = 0
while (partition_nr < partitions_number)
generate WHERE clause:
partition_column IS NULL OR partition_column < stride
if:
partition_nr == 0 AND partition_nr < partitions_number
or generate WHERE clause:
partition_column >= stride AND partition_column < next_stride
if:
partition_nr < 0 AND partition_nr < partitions_number
or generate WHERE clause
partition_column >= stride
if:
partition_nr > 0 AND partition_nr == partitions_number
where next_stride is calculated after computing the left sideo
of the WHERE clause by next_stride += stride
(stride = (20/5) - (0/5) = 4
SELECT * FROM my_table WHERE partition_column IS NULL OR partition_column < 4
SELECT * FROM my_table WHERE partition_column >= 4 AND partition_column < 8
SELECT * FROM my_table WHERE partition_column >= 8 AND partition_column < 12
SELECT * FROM my_table WHERE partition_column >= 12 AND partition_column < 16
SELECT * FROM my_table WHERE partition_column >= 16
As you see, the above queries generate 5 partitions of data, each containing the values from: (0-3), (4-7), (8-11), (12-15) and (16 and more).
Warning
The above results is only true when your partition column has incremental
like column. If you are using DB2
, Netezza
or Oracle
, they have
implicit rowid
you can use it as partitionColumn
. Otherwise, you’d
better to work with your engineer team to add the rowid
to each table
(this is the most convenient way to fix the problem in this part).
def azdb_read(table_name, partition_column='rowid', lower_bound=0,
upper_bound=1000000, num_partitions=200, fetchsize=5000,
database_name="DEFAULT_DB"):
"""
Read table from DEFAULT_DB.
:param table_name: table to be read, ONLY need table name at here
:param partition_column: column name used to do partition, must be a
numeric, date, or timestamp
:param lower_bound: lower bound of values to be fetched
:param upper_bound: upper bound of values to be fetched
:param num_partitions: The maximum number of partitions that can be used
for parallelism in table reading
:param fetchsize: The JDBC fetch size, which determines how many rows to
fetch per round trip. This can help performance on JDBC
drivers which default to low fetch size (e.g. Oracle
with 10 rows).This option applies only to reading.
:param database_name: The source database where the table will be in.
:return: DataFrame
"""
spark = SparkSession.builder.getOrCreate()
credentials = azdb_credentials(database_name)
df = spark.read \
.format("com.microsoft.sqlserver.jdbc.spark") \
.option("url", credentials['url']) \
.option("dbtable", table_name) \
.option("accessToken", credentials['access_token']) \
.option('partitionColumn', partition_column) \
.option('numPartitions', num_partitions) \
.option("lowerBound", lower_bound) \
.option("upperBound", upper_bound) \
.option("fetchsize", fetchsize) \
.option("encrypt", "true") \
.option("hostNameInCertificate", "*.database.windows.net") \
.load()
return df
25.4. JDBC write
¶
TODO…
def azdb_write(df, table_name, num_partitions=200, write_mode='error',
batchsize=5000, database_name="DEFAULT_DB"):
"""
Write spark DataFrame back to DEFAULT_DB
:param df: the spark DataFrame need to be written
:param table_name: the name of the table in DEFAULT_DB, ONLY need table
name at here
:param num_partitions: The maximum number of partitions that can be used
for parallelism in table writing
:param write_mode: 'error'(default), 'append', 'overwrite', 'ignore'
:param batchsize: The JDBC batch size, which determines how many rows to
insert per round trip. This can help performance on JDBC
drivers. This option applies only to writing.
It defaults to 1000.
:param database_name: The designated database where the table will be in.
:return: None
"""
credentials = azdb_credentials(database_name)
df.write \
.mode(write_mode) \
.format("com.microsoft.sqlserver.jdbc.spark") \
.option("url", credentials['url']) \
.option("dbtable", table_name) \
.option("accessToken", credentials['access_token']) \
.option('numPartitions', num_partitions) \
.option("batchsize", batchsize) \
.option("encrypt", "true") \
.option("hostNameInCertificate", "*.database.windows.net") \
.save()
Warning
If you are working with some database which is not supporting string
datatype, such as DB2
, Netezza
, you need pass the custom schema as
an option like
.option("createTableColumnTypes", custom_schema)
Actually, you can use the following code to automatically generate the custom schema:
def auto_schema(df):
cols_string = [k for k, v in dict(df.dtypes).items() if v=='string' ]
features_len = df.select(*(F.length(F.col(c)).alias(c) for c in
cols_string)).cache()
max_lenth ={}
for c in cols_string:
max_lenth[c] = features_len.agg(F.max(F.col(c))).collect()[0][0]
schema_dict = [(k, 'VARCHAR({})'.format(v)) for k,v in max_lenth.items()]
return ', '.join(i for i in [' '.join([j for j in i]) for i in schema_dict])
25.5. JDBC temp_view
¶
TODO…
def azdb_temp_view(table_name, partition_column='rowid', lower_bound=0,
upper_bound=1000000, num_partitions=200,
fetchsize=5000, database_name="DEFAULT_DB",
temp_table_name=None):
"""
Read a table in DEFAULT_DB with pyspark and create global temporary view
:param table_name: database table to be read
:param temp_table_name: temporary table name
:param partition_column: column name used to do partition, must be a
numeric, date, or timestamp
:param lower_bound: lower bound of values to be fetched
:param upper_bound: upper bound of values to be fetched
:param num_partitions: The maximum number of partitions that can be
used for parallelism in table reading
:param database_name: default DEFAULT_DB
:return: pyspark dataframe for the read table
"""
spark = SparkSession.builder.getOrCreate()
output = azdb_read(table_name, partition_column, lower_bound,
upper_bound, num_partitions, fetchsize, database_name)
if temp_table_name:
spark.catalog.dropGlobalTempView(temp_table_name.upper())
output.createGlobalTempView(temp_table_name.upper())
else:
spark.catalog.dropGlobalTempView(table_name.upper().split('.')[-1])
output.createGlobalTempView(table_name.upper().split('.')[-1])
return output


Welcome to the 2018-2019 school year! Be sure to look out for emails coming soon and check back here for announcements throughout the year!


| Authors: |<EMAIL_ADDRESS>(Sérgio Gomes<EMAIL_ADDRESS>(Jeffrey Posnick) |
| Copyright: | Copyright 2010, Google Inc. All Rights Reserved. |
| License: | Licensed 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
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. |
This library connects to Google’s ClientLogin service and generates an AuthToken that can be used to login to the AdWords API.
Required Files
- cgi
- net/http
- net/https
Classes and Modules
- MODULE AdWords


---
layout: post
title: Hacking the meat and Second Life at the same time
tags:
- Linux
- Open Source Software
- Second Life
- Software Development
- Web
status: publish
type: post
published: true
meta: {}
---
This post is specially for my son Jack.
Jonathon Oxter has a video on Google showing how to connect the real world (electric lights, RFID chips embedded in the body etc.) to things in the Second Life game
[googlevideo=http://video.google.com/videoplay?docid=3850910409804844384]
It's an hour long and very, very, geeky -- but it's Oh So Cool.


Trump says he hopes release of captives in Afghanistan prompts ceasefire
WASHINGTON (Reuters) - U.S. President Donald Trump on Wednesday said he hopes the release of two Western prisoners held hostage by the Afghan Taliban this week could help pave the way to an end to the war in Afghanistan.
“We join families of Kevin King & Tim Weeks in celebrating their release from Taliban captivity. Thanks to President Ghani for his courageous support. Let’s hope this leads to more good things on the peace front like a ceasefire that will help end this long war. Proud of my team!” Trump tweeted.


Mobile Software Engineer
- Name: Kevin Siundu
- Age: 21 Years
- Position: Mobile Software Engineer
- Employer: Equity Bank Limited
I am a Web and Mobile Software Developer from Kenya. I am an enthusiastic and hardworking self established Software Developer. I have had experience in developing various applications for 3+ years now. Prior to which I have done a couple of certificates to back me up.
My Passion for developing applications began when I finished High School and ever since I have been growing in my skills. I believe growth and co-operation with other developers are key factors that make developers stand out in the field.
My journey
PKF EastAfrica
A Mobile Developer Traineer with desire to Learn. Java as Main Languages. Android Studio as Main Frameworks. Between March-May 2016.
Moringa School
A Mobile Developer student eager to learn and understand principles of Android Development. Java and Javascript as my Main Languages. Androind and Node.JS as my Main Frameworks.
Eclectics Int Ltd
A Mobile Developer with expertise both in Native and Hybrid Mobile Development. Java and JavaScript as Main Languages. Android Studio and Ionic as Main Frameworks. Since May 2018 to June 2019.
EQUITY GROUP HOLDINGS LTD
A Mobile Developer with expertise in Android Native and iOS Native Frameworks. I normally use kotlin or java for Android as the primary language and swift for xcode framework for iOS. Since November 2019 to now.


--- layout: page title: Features text: Padrino was created to make it fun and easy to code more advanced web applications while still adhering to the spirit that makes Sinatra great! --- {% capture current %}Features{% endcapture %} {% include header_navigation.html %} {% include headline.html %}
Many people love the simplicity and expressiveness of Sinatra but quickly come to miss a great deal of functionality provided by other web frameworks such as Rails when building non-trivial applications.
Our goal with Padrino is to stay true to the core principles of Sinatra while at the same time creating a standard library of tools, helpers and functions that will make Sinatra suitable for increasingly complex applications.
Here is a list of the major functionality Padrino provides on top of Sinatra:
Full support for many popular testing, templating, mocking, and database libraries.Learn more
Provide a unified logger that can interact with your ORM or any library.
Automatically reloads server code during development.


I’m a Biostatistics Ph.D. candidate at New York University’s Grossman School of Medicine, working under the mentorship of Prof. Thaddeus Tarpey. My research involves developing statistical models that cater to high-dimensional complex data, such as functional and imaging data.
In the summer of 2022, I had the opportunity to work as a Data Scientist Intern at Google, where I applied my statistical skills to real-world problems. Prior to joining the Ph.D. program, I completed my master’s degree in Biostatistics and Data Science from Cornell University advised by Prof. Iván Díaz, and my bachelor’s degree in International Finance from Capital University of Economics and Business.
Outside of academia, I began my journey as a professional swimmer at the age of 5 and went on to achieve several regional and national championships. I’m also passionate about Chinese calligraphy, and my artwork has been exhibited in top galleries and museums including the National Art Museum of China (Beijing). In addition, I am also interested in oil painting, and aeromodelling.


{% extends "layout.html" %} {% block page_title %} Publish government data {% endblock %} {% block proposition_header %} {% include "includes/propositional_navigation_service.html" %} {% endblock %} {% block header_class %} with-proposition {% endblock %} {% block content %} {% include "includes/phase_banner_beta.html" %} {% include "includes/get_started.html" %} {{formData | safe}} Upload a new dataset You must give your dataset a title and summary. This will make it easier for users to find it on GOV.UK Upload a new dataset Upload a file {% endblock %}
You must give your dataset a title and summary.
This will make it easier for users to find it on GOV.UK


Just as you see yourself in a mirror that is how your ally should be.We all need someone who like absorbs the energy. should be more than comfortable around them .Let alone them allowing us to confide in them.
Friends that are loyal are always there to make you laugh when you are down, They are not afraid to help you avoid mistakes And they look out for your best interest. This kind of friend can be hard to find, But they offer a friendship that will last a lifetime. Other frieds are family


| 038:003 Khan | : |
How many a generation We have destroyed before them, and they cried out when there was no longer time for escape! |
| 038:003 Maulana | : |
How many a generation We destroyed before them, then they cried when there was no longer time for escape! |
| 038:003 Pickthal | : |
How many a generation We destroyed before them, and they cried out when it was no longer the time for escape! |
| 038:003 Rashad | : |
Many a generation before them we annihilated. They called for help, in vain. |
| 038:003 Sarwar | : |
How many ancient generations did We destroy? (On facing Our torment) they cried out for help, but it was too late for them to escape. |
| 038:003 Shakir | : |
How many did We destroy before them of the generations, then they cried while the time of escaping had passed away. |
| 038:003 Sherali | : |
How many a generation have WE destroyed before them ! they cried out for help, but it was no longer the time for escape. |
| 038:003 Yusufali | : |
How many generations before them did We destroy? In the end they cried (for mercy)- when there was no longer time for being saved! |
Concepts/Themes Covered: القرآن الكريم > أقسام القرآن الكريم The Holy Quran>The Affirmation in the Holy Quran القرآن الكريم > حقيقته وتصديقه للكتب الأوائل The Holy Quran> The Quran's Reality and its confirmation of the Previous Books القصص والتاريخ > العبر التاريخية فى أنباء القرى The Stories and the History> The Historic Examples of Towns' News
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


Please enter the name
Who are You ?
Please enter valid contact number
Please enter valid NIC
Please enter valid email
Please enter valid password
Login


{{vm.detailpeople.birthday | date}}
{{vm.detailpeople.deathday | date}}
{{vm.detailpeople.place_of_birth}}
{{vm.detailpeople.biography}}


WORKSHOPS
{% for workshop in workshops %}
{% endfor %}
TALKS
{% for talk in talks %}
{% endfor %}
SHOWS
{% for show in shows %}
{% endfor %}
COMPETITIONS
{% for competition in competitions %}
{% endfor %}


sexual young adolescents HIV women sex men findings Young ;():–. reports risk research use Adolescents health learning parents experience AIDS qualitative {border-style believe prevention study Health px;} sex, social #ffffff;} African Sciences adolescent context pregnancy Uganda. condom relationships adolescents’ education knowledge violence beliefs condoms countries having example, rural studies variety Kenya, Pathogens especially feel included physical provide sex. Tanzania, experiences include report sexually Biology HIV. Medicine community information instruction intimate know male multiple older participants process range receive sub-Saharan Kenya. Life abstracted age effect forced gender including like members number peers programs school search statements transmitted HIV, Sexual Social Uganda United avoid communication cultural expected families family formal framework lack living messages partners people pregnancy, prevention. primed px; related team {font-family Africa. Central PMCID: Thus, attitudes attributable coercion dating described early epidemic financial font-size generalized girls inclusion infected infections learning. money puberty puberty, role sense sizes think understand view work worry East Knowledge Learning National PMC. Research STI Sandelowski Theory Viral access analysis conducted data did domains double; east economic exchange factors female finding focus frequency high met partner premarital pressured prevent relationships. review sample school. sexuality sources transmission treatment used violence. want women, (i.e., ./.. CBD Fig HIV/AIDS Kenya Nations Psychology Society Tanzania. Western aspects available based border-color border-width concerns condoms, consequences consider consistent content criteria desire discuss discussions emotional expectations fear following important learning, life metasynthesis outside peers, peers. perceptions public religious reproduction reproductive risks solid; teachers them, them. topics transmission. use, wish {font-style {font-weight ASK. Adolescents’ Cognitive Culture, Despite FNR Human Immunodeficiency KRM Learning: Lentivirus: Microbial Microbiology NobeliusAM, Organisms Parents Retroviruses STIs, Sex U.S. Viruses Viruses: acquired adolescents. adults approach aware basic bold care changes circumcision conceptual contributed courier; determined developed development difficult efforts em; engage experiences. experiencing exposure face final findings, findings. form full-text grouped hand, harassment inaccurate informal instance, intercourse. interest, interested just likely limited make making marriage menstruation needs, new observation official out-of-school particularly partners. pregnancy. pressure prevalence provided provides pt;} quality rape raped relationships, relatives, reluctant represented reproduction, researchers romantic second set sexuality. shared similar size support types typically unique use. wide woman younger


|
Register before 31 May 2006
for only $90 (plus GST)
Usually $150
Microsoft Visual Studio 2005 Team System
is an integrated software development
platform to build the mission-critical
applications that businesses depend on.
It extends Visual Studio's integrated
and productive experience from the
developer to the entire development team
by delivering powerful new role-based
tools for software architects,
developers, testers and project
managers.
Let special guest speaker
Eric Phan guide you through these
tools and show you how they can improve
your software development cycle.
|


Open 511
Each year, DriveBC receives 14 million requests for road and weather conditions of provincial highways. To find travel conditions in municipalities and other provinces and states, users would have to inconveniently access several sources. The Ministry of Transportation and Infrastructure recognized that if various levels of government opened up their data for sharing, it would enable entrepreneurs to find ways to more conveniently and safely get travellers to their destinations. Open511 is the data standard that can make this idea of “borderless transportation” happen. In 2015, the Ministry collaborated in the development of the standard, and published “DriveBC Open511”. The key behind DriveBC Open511 is the API (application programming interface) which offers a standardized way for developers to access the Drive BC data and build innovative apps.
Contact<EMAIL_ADDRESS>> Impact
The BC tech sector now has the opportunity to partner with government to build apps that save commuters time on roads, reduce accidents, and deliver the best travel experience to our citizens.
> Partner(s)
Data BC, OCIO
> Resouces Used
API guide, Citizen Engagement Handbook
> Tags
#govasaplatform #opendata #APIs


| 052:021 Khan | : |
And those who believe and whose offspring follow them in Faith, to them shall We join their offspring, and We shall not decrease the reward of their deeds in anything. Every person is a pledge for that which he has earned. |
| 052:021 Maulana | : |
And those who believe and whose offspring follow them in faith -- We unite with them their off-spring and We shall deprive them of naught of their work. Every man is pledged for what he does. |
| 052:021 Pickthal | : |
And they who believe and whose seed follow them in faith, We cause their seed to join them (there), and We deprive them of nought of their (life's) work. Every man is a pledge for that which he hath earned. |
| 052:021 Rashad | : |
For those who believed, and their children also followed them in belief, we will have their children join them. We never fail to reward them for any work. Every person is paid for what he did. |
| 052:021 Sarwar | : |
The offspring of the believers will also follow them to Paradise. So shall We join their offspring to them because of their faith.  Everyone will be responsible for his own actions. |
| 052:021 Shakir | : |
And (as for) those who believe and their offspring follow them in faith, We will unite with them their offspring and We will not diminish to them aught of their work; every man is responsible for what he shall have wrought. |
| 052:021 Sherali | : |
And those who believe and whose children follow them in faith - with them will WE join their children. And WE will not diminish anything from the reward of their works. Every man stands pledged for what he has earned. |
| 052:021 Yusufali | : |
And those who believe and whose families follow them in Faith,- to them shall We join their families: Nor shall We deprive them (of the fruit) of aught of their works: (Yet) is each individual in pledge for his deeds. |
Concepts/Themes Covered: الإيمان > الغيب > الجنة > أصحاب الجنة Faith> The Unseen World> The Paradise> The Companions of the Garden الإيمان > الغيب > الجنة > صفات الجنة Faith> The Unseen World> The Paradise> Characteristics of Paradise الإيمان > المؤمنون > ما أعده الله لهم Faith> The Believers> What has Allah Prepared for them الإيمان > المؤمنون > وعده إياهم Faith> The Believers> His Promise to them الإيمان > اليوم الآخر > الجزاء بالعمل Faith> The Hereafter> The Award against Action العمل > المسؤولية > مسؤولية المرء عن عمله Action(Work)> Responsibility> Every one is Responsible for What he/she has Done الإنسان والعلاقات الاجتماعية > الأسرة > الأولاد Man and The Social Relations>The Family>Children
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


<%-app.meta.fullname%> Node was not found. Download and Install it
System Requirements
>12Gb RAM
>6 core CPU
>10Gb free disk space
>10Mb/s internet speed
<% } else { %>
<%-app.meta.fullname%> Node control is not yet available for your operating system.
<% }%>
<% } else { %>
Your device already has <%-app.meta.fullname%> Node.
<% if(proxy.direct) {%>
You can set system pathes or stop it and install via <%-app.meta.fullname%> Desktop Application
<% } else {%>
You can't manage node on this device via current application
<% } %>


Event Location:
Lindholmen Science Park, Svea
Lindholmspiren 5
Gothenburg, Västra Götalands Län, Sweden
Abstract:
How easy is it to hack a SQL Server? In this session we'll see examples on how to exploit SQL Server, modify data and take control, while at the same time not leaving a trace. We'll start by gaining access to a SQL Server (using some "creative" ways of making man-in-the-middle attacks), escalating privileges and tampering with data at the TDS protocol level (e.g. changing your income level and reverting without a trace after payment), hacking DDM, and more. Most importantly, we'll also cover recommendations on how to avoid these attacks, and take a look at the pros and cons of new security features in SQL Server 2016. This is a demo-driven session, suited for DBAs, developers and security consultants. Disclaimer: No actual crimes will be committed.  I had a number of success criteria that had to be met. Checking all of these by hand (eye) would have been error prone, so I wrote a test to do this for me and an easy for management to read HTML report using PowerShell and Pester. The session has come from that situation and is about enabling you to provide an easy to read output to quickly and repeatedly show that infrastructure is as expected for a set of checks, also known as Operational Validation using Pester. There are many use cases for this type of solution; DR testing, installation, first line checks, presentation setups After this session you will have a basic understanding of how Pester works and the capability to examine your checklists and create your own validation tests and provide some reporting for manager
Speaker(s): Rob Sewell,
Abstract:
Building robust and resilient Data Platform solutions can be complex and costly, building out for both High Availability and Disaster Recovery. The Always On technologies incorporated in the Microsoft SQL Server stack help Data Platform Engineers to do just this. Creating solutions that span multiple locations, in an effort to protect the data that we are tasked to manage on a daily basis. Together we will walk through the architecture patterns, technology requirements, and configuration options that you need to know in order to build a solid Data Platform. Understanding the implementation differences between on-premises and cloud based deployments is important. Especially as there are specific requirements that need to be met for up-time SLAs to be applicable, as well as mitigating for region failures. All of these elements mean that it is more than just simple wizards to follow in order to have a solid, reliable, and robust SQL Server Data Platform.
Speaker(s): John Martin,
Abstract:
- How it started - Project Drawbridge, Slava with his brother! - SQL PAL (SQL Platform Abstraction Layer) - SQLOSv2 - The (very small) host extension which is platform specific - Installation with demo,yes that fast! - Backups and Restores cross platform - Clustering on Linux - AlwaysOn Availability Groups cross platform - SQL Agent for Log Shipping - Compiling/Deploying CLR code for both platforms with demo - How the Linux layer is compiled - Debugging a combined Windows PE and Linux ELF execution including getting a stack dump - New DMVs for Linux and DMVs which are replaced as they are not cross platform - Performance goals - Limitations with the current implementation
Speaker(s): David Williams,
Abstract:
Power BI is a great suite of tools for business analytics and reporting. You use it to create reports and dashboard to deliver insights throughout your company. But, what about the new licensing model recently introduced for Power BI? How it can fits to your needs? Every organization is a complex system with rules and limitations. Users belong to groups each with visibility profile. So you need to know how security in Power BI works: how to configure and restrict access, how to filter data based on the logged user, how to implement static and dynamic Row-level security (RLS), how to control usage of specific features.  Power BI provides an admin portal that allows you to manage users and groups in the Office 365 admin center. Come to this session to discover what’s behind the scenes in Power BI and how to implement a solution compliant to your security and governance model.
Speaker(s): Andrea Martorana Tusa,
Abstract:
We will discuss and demonstrate the MPP (massively parallel processing) architecture of Azure SQL DW and how to make best use of this exciting technology, including: • Getting up and running • Loading and migrating data • Designing tables and optimizing queries to extract maximum performance This session will also include some benchmarks and Power BI demos with different DWU and storage options on a very large data set.
Speaker(s): Britton Gray,
Abstract:
Move up to Management Studio Superstar with these great productivity tips! We’ll explore stuff like keyboard shortcuts, configuration options, how to keep your SSMS settings synchronized across multiple environments and other really useful everyday tricks and hacks. Think “hey, wait, how’d you do that!?” Some of the things I’ll cover: * Previewing and quick-reference stuff you can do with keyboard shortcuts * Quickly navigating your code to find errors or bookmarks No undocumented stuff, no registry editor, and nothing you wouldn’t put into production. Just really clever productivity tips that will take some of the burden off your everyday work. But I’m not going to sugarcoat it. Your code may still run slow, and you’ll probably write just as many bugs – but you’ll write them a lot quicker and with so much more style and panache.
Speaker(s): Daniel Hutmacher,
Abstract:
The JavaScript Object Notation format, known simply as JSON, has now become a standard in data interchange between client-server applications, it is also used to store information in non-relational databases and the SQL Server 2016 engine handles it natively . However, today, not everyone has passed to the latest version of SQL Server, however, it is possible to process the JSON format even with earlier versions: in this session, it is confident with this format and illustrates the non-native mode that allows you to be ready in the moment of the upgrade to 2016 (or later) with a few simple moves. Finally, with a few simple examples, you will find some tips on how to use JSON in an advanced way with SQL Server 2016.
Speaker(s): Emanuele Zanchettin,
Abstract:
In an ideal world, we would not need any error handling, because there would be no errors. But in the real world we need to have error handling in our stored procedures. Error handling in SQL Server is a most confusing topic, because there are such great inconsistencies. But that does not mean that we as database developers can hide our head in the sand. This presentation starts with a horror show of the many different actions SQL Server can take in case of an error. We will then learn how should deal with this - what we should do and what we should not and that with SET XACT_ABORT we get better consistency. We will learn how TRY-CATCH works in SQL Server, and we will get a recipe for how to write CATCH blocks. More generally, we will learn why it pays off to be simple-minded to survive in this maze. The session mainly looks at traditional T-SQL code, but the session ends with a quick look at natively compiled stored procedures, where everything is different.
Speaker(s): Erland Sommarskog,
Abstract:
Azure Machine Learning plays a central role in Cortana Intelligence: discovering useful patterns in all the collected data is essential in advanced analytics. To get started with Azure machine learning you don't need to be an expert: Microsoft provides ready made models that can be used immediately (Cognitive Services). For other business problems (e.g. churn) Microsoft provides a template, but we need to tune this template to our business data. And for some analysis problems we need to build machine learning solutions from scratch. In this demo-oriented session you will see demonstrations of these three ways of working with Machine Learning in the Azure cloud.
Speaker(s): Nico Jacobs,
Abstract:
Microsoft offers a large playground for young and old with the cognitive services. Here can be tested according to your heart's content which will be maybe tomorrow all in use. With the various building kits such as Bot Framework, Emotion, Face, Text Analytics or Recommendations, to put together in a short time Impressive applications. Come on a little trip with on this playground.
Speaker(s): Alexander Klein,
Abstract:
Azure SQL DWH is based on MS SQL Server and supports T-SQL. It helps to DB/DWH developers start using it without many efforts. Unfortunately, there are several limitations that could bring difficulties in your job. For example, we can't use MERGE statement for Upsert tasks in DWH, there is no IDENTITY or SEQUENCE, differences in implementing partition switching and so on. In this session, I'm going to cover several tips and tricks how we can handle with this limitations using available possibilities.
Speaker(s): Sergiy Lunyakin,
Abstract:
In this session you will learn the difference between the internal and external index and heap fragmentation and how to detect it. You will get a deep understanding of the reasons of fragmentation like - page split - index fill factor - ghost record - forwarding record - heap PFS insert algorithm - batch insertions - database shrink / auto growth
Speaker(s): Torsten Strauss,
Abstract:
SSIS custom components can help to reuse code. The session shows step by step to program a custom pipeline component to query directory structures for files and present them as a continuous stream to e.g. FILESTREAM destinations. Only free tools will be used. C# knowledge is helpful.
Speaker(s): Arne Bartels,
Abstract:
Temporal Tables are a new feature in SQL Server 2016. This session will start with an overview of the basic functionality of Temporal Tables based on a real world scenario. After the core concepts of Temporal Tables have been implemented the session will dive deeper into the functionality of it with all its really great benefits but there is no lunch for free. This session will demonstrate what's not working fine with Temporal Tables and its common drawbacks when you will work with this feature of SQL Server 2016. Fasten seat belts and get an overview of the core concept of Temporal Tables and decide for yourself, whether you would use it or kick it away :)
Speaker(s): Uwe Ricken,
Abstract:
Explore Usage of Azure Datafactory to mesh data from various cloud/On-Premises offerings such as AWS and Google Cloud. Many vendors would have more than one cloud/On-Premises and the want to bring data together. We will explore stategies to connect data from various sources, obstacles, workarounds, trobleshooting and best practices. All hands-on.
Speaker(s): Mohamed Mawla,
Abstract:
During this session we will be having a tombola which contain several SQL Server issues you might face. After a volunteer has picked a problem, we will continue by handling this issue. We will show you how it appears, what impact it has on your performance and the way you are able to solve the issue. The issues inside the tombola will consist out of the most frequent SQL Server issues as seen in the field.
Speaker(s): Stijn Wynants,
Abstract:
In this session, we’ll see in detail how to create nodes and edges tables designed for graphs traversal in SQL Server 2017. After a summary of the underlying graph theory and its implementation in databases, we’ll see how to create graph tables in SQL Server 2017, and how to query them with the match operator. This session will give you a kickstart on using graphs in SQL Server 2017.
Speaker(s): Rudi Bruchez,
Abstract:
SQL and SQL Server has a lot in common with Othello - fairly easy to learn, but takes a lifetime to master. Many times overt abuse is not even necessary - an incorrectly configured database is surprisingly capable of destroying any semblance of performance all by itself. The database is very good at doing some things - and exceptionally bad at others. Combine these facts with a general lack of understanding of the database engine and the road to perfomance hell is truly plotted. Join Alexander for a session of examples how developers can and do abuse SQL Server - both intentionally and unintentionally.
Speaker(s): Alexander Arvidsson,
Abstract:
Tuning your SQL queries is one of the most important task of your daily business but how can we achieve this for existing execution plans? This session is about the difference of the database tuning advisor and the missing index database management views of the query engine. You will learn the limitations of both approaches in order to avoid applying wrong indexes.
Speaker(s): Torsten Strauss,
Abstract:
When it comes to performance, we often focus on waits and how to solve them. However, in most cases, solving the real problem with the code, gives you the performance you want. In this presentation I will show you how to spot the performance blockers.
Speaker(s): Peter Larsson,
Abstract:
Master Data Services (MDS) has been around since SQL 2008, but it's hardly ever used. Mainly because of the unfamiliarity of MDS. MDS can resolve many management issues. And especially with the new features introduced with SQL Server 2016. This session will show the important new features and several scenario's how MDS can strengthen your BI solutions.
Speaker(s): Remko de Boer,
Abstract:
Change Tracking came out with SQL Server 2008, but SS2012 almost eclipsed it with Change Data Capture. Change Tracking is now the red-headed step child, but in many cases may be the best solution for data ETL movement from an SQL Server OLTP database to a data warehouse or reporting database. This session will provide a review of change tracking syntax and implementation with detailed demos. It will then dive into an actual ETL subset implementation from the AdventureWorks database to a data warehouse solution (modified AdventureWorksDW) with detailed code discussion and demos using TSQL only (no SSIS).
Speaker(s): Mike Byrd,
Abstract:
What is GDPR, who is affected and how does it affect me as a database professional? This session will explain the general data protection regulation at a high level and how to make SQL Server and Azure SQL Databases compliant to the new regulation. Different techniques like Row level security, data masking, transparent data encryption will be demonstrated. The session will also cover some basic tools for finding data breaches.
Speaker(s): Håkan Winther,
This is a list of speakers from the XML Guidebook records. The details and URLs were valid at the time of the event.
LinkedIn: https://www.linkedin.com/in/alexanderarvidsson
Contact: http://www.arcticdba.se
Alexander is a principal solutions architect at Atea in Linköping, Sweden. Nobody really knows what it means to be a principal solutions architect, but he spends his days helping clients of all shapes and sizes to take better care of their data. He has spent the last 23 years toying with databases and related infrastructure services such as storage, networking and virtualization, occasionally emerging from the technical darkness to attend a Star Wars convention somewhere in the world. He is a frequent international speaker, a Data Platform MVP, podcaster, blogger and a Microsoft Certified Trainer, focusing on SQL Server, the Azure data stack and Power BI.
LinkedIn: http://be.linkedin.com/in/sqlwaldorf
Contact: http://blogs.u2u.be/u2u/author/Nico-Jacobs.aspx
Dr. Nico Jacobs is a Microsoft Business Intelligence and SQL Server trainer at the U2U training center since 2004. Before that, he was a machine learning researcher at the university of Leuven, Belgium. At U2U, Nico creates and delivers courses on the SQL Server business intelligence stack (Integration Services, Analysis Services, Reporting Services …), Power BI, the traditional relational database environment (database development and administration) and the Azure AI and Big Data stack (Azure Data Factory, Machine Learning, Synapse Analytics,...)
Trilingual Principal Consultant amp; Team Tech lead at a global Tech Consulting Mohamed had worked with large SQL server environments such as financials and gov of hundreds of SQL server instances and enormous amounts of data. His favorite subjects are Cloud Analytics, performance tuning, High Availability, especially Replication and Disaster recovery. Certified Google Cloud and Azure Data Engineer. When not working, Mohamed carries his cameras and takes a trip somewhere.
LinkedIn: http://www.linkedin.com/pub/mike-byrd/1/aa0/bbb
Contact: http://logicalread.solarwinds.com/?s=byrd, www.TSQLMentoring.com and SQLServerCentral.com
Former rocket scientist and USAF Fighter Pilot -- now a SQL Server geek (24 years)! Past opportunities include free-lance technical writer for PC Magazine, Senior Software Manager for government sponsored munitions effectiveness committee, and insurance company CTO. Currently senior database engineer consultant for several Austin companies. Presenter at many SQL Saturdays over last 6 years in United States, Europe, and Australia. Specialize in SQL Server performance tuning; database (OLTP OLAP) architecture; trouble-shooting; teaching TSQL (Basic through Advanced). Video presentations (for local SQL Server user groups or SQL Saturdays) can be found at http://usergroup.tv/videos/category/speaker/mike-byrd
LinkedIn: http://it.linkedin.com/pub/emanuele-zanchettin/18/921/34/
Emanuele Zanchettin, after studying in Computer Engineering, began his career with DB2 in the banking sector in 1998. After a few years and a change of scope of application, he encountered Access and Oracle with which he subsequently worked for several years in data access tuning and database design for new application features. Since 2007 he has also launched into the SQLServer world 2K, 2005, 2008* and 201* and more importantly, since 2011, into Azure SQL Database (SQL Azure). In order to have a greater capacity for assessment and familiarity with the various technologies that the market offers, he has deepened his knowledge to include MySQL and DocumentDB. Today Emanuele is mainly involved in IT projects and database management.
Andrea Martorana Tusa is a Business Intelligence Team Manager at Würth Phoenix, the IT and consulting company of the Würth-Group. He is awarded as MVP in the Data Platform category Former BI Specialist at Widex, a Danish manufacturing company, and BI Developer in the IT department of an Italian banking group. 20+ years of experience working with data. He is focused on the entire BI stack: database development, data warehousing, data analysis, reporting, etc. Andrea is a usual speaker at many events: SQLSaturdays, conferences in Europe and PASS Summit, and for PASS Virtual Groups. Andrea is an author for sqlshack.com, sqlservercentral.com, and UGISS (User Group Italiano SQL Server).
LinkedIn: https://se.linkedin.com/in/hakanwinther
Contact: http://www.sqlservice.se/blogg/?person=145
H#229;kan Winther is a senior SQL server specialist at SQL Service Nordic, with SQL server experience since 1995 and passion for T-SQL development, performance tuning, large databases and BI Solutions. He contributes to the SQL server community by sharing his experience as an active member of ask.sqlservercentral.com, mentor at LabCenter and as a speaker at TechDays, Microsoft Sommarkollo and the Swedish PASS Chapter.
LinkedIn: http://www.linkedin.com/profile/view?id=270775013amp;trk=tab_pro
Contact: http://www.sqlmaster.de
Uwe Ricken is working with IT systems since the 90’s. The primary passion for developments with Microsoft SQL Server expanded in 2007 with his engagement as a DBA for Deutsche Bank AG in Frankfurt am Main. After 6 years of operational experiences as a DBA and over 14 years as a developer of complex database models he achieved the “Microsoft Certified Master – SQL Server 2008” certification which “was” the highest technical certification. In the same year he earned his first award as a Data Platform MVP for his support to the Microsoft SQL Server community in Germany and Europe. Uwe Ricken is a speaker on many international conferences and events and preferred topics are “Database Internals”, “Indexing” and “Development”.
LinkedIn: https://www.linkedin.com/in/justdaveinfo?trk=nav_responsive_tab_profile
Contact: http://justdave.info
David is a cross product DBA (SQL Server, DB2, Oracle, Informix, Sybase) who has worked for 25 years as a DBA for both private, local/central government customers including a Fortune 50 investment bank. Certifications include MCSE 2014 Data Platform, MCTS SQL Server 2008 DBA and Developer as well as certifcations in other products. David has spoken at multiple SQL Saturdays as well as local usergroups and is a regular volunteer at events including SQLBits.
LinkedIn: https://www.linkedin.com/in/brittongray/
Britton Gray is a veteran of database development, data management, business intelligence, analytics, and data privacy in BI. He has successfully completed projects in a variety of technologies in different technology stacks. Coming from a family full of teachers, he thoroughly enjoys the opportunity to share knowledge and insights; it's an extension of "getting the right information to the right people at the right time" mantra of BI. He lives near Indianapolis, Indiana, and is the Director of BI for Project Lead The Way, a nonprofit organization providing transformative learning experiences in computer science, engineering, and biomedical sciences.
Torsten Strauß (MVP, MCSE Data Platform, MCSE Data Management and Analytics, MCT) has been working with Microsoft SQL Server since the turn of the millennium. He currently works as Database Engineer and Microsoft SQL Server Evangelist for BP Europe SE and as Principal Consultant for Sarpedon Quality Lab. Torsten has delivered more than 100 presentations about Microsoft SQL Server at national and international conferences and user groups in recent years.
LinkedIn: https://www.linkedin.com/in/stijn-wynants-ba528660?trk=hp-identity-name
Contact: http://swyssql.wordpress.com
Stijn is a Microsoft Premier Field Engineer on Data AI and a DataMinds core member. He is also one of the organizers of the local user group sessions the yearly event called DataMinds Connect (SQL Server Days). He is a speaker at various international events (SQL Saturday,PASS Summit,Difinity,...). He spends his days tuning SQL Servers solving problems with the full data platform. His focus is primarily on sql server core, but has also done various BI ETL projects. He gets his kicks out of Columnstore indexes tuning queries but shivers at the sight of an SSAS cube. When Stijn is not working with SQL Server, you can probably find him enjoying the local cuisine local beers or enjoying time with his wife and his dog.
LinkedIn: ?https://nl.linkedin.com/in/remko-de-boer-6155a52?
Remko de Boer has been a SQL Server enthousiast since SQL 2000. He has been an MCT for many years and works primaraly as a SQL Server Database consultant or as a SQL Server Business Intelligence consultant. From the inner workings of the database engine to building dynamic generated Reports, almost any aspect of SQL Server will spark an interest.
LinkedIn: https://www.linkedin.com/in/slunyakin
Contact: https://slunyakin.wordpress.com
Sergiy Lunyakin (MCSA, MCSE, MCTS) is a Big Data Architect at SoftServe, Inc. He has extensive experience in designing and developing Big Data Analytics, Data Warehouse, and BI solutions, using both on-premises and cloud products. In 2016, Sergiy became Microsoft Data Platform MVP and has since maintained his MVP status. Sharing knowledge is another one of his passions. He regularly speaks at international conferences such as SQLSaturday, SQLDay, SQLNexus, and SQLBits. He also runs the Lviv SQL Server User Group in Ukraine and organizes SQLSaturday Lviv.
LinkedIn: http://LinkedIn.COM/in/AndreMelancia
Contact: http://Andy.PT
Owner / Principal Consultant at LunarCat.PT Microsoft Certified Trainer (MCT) focusing on SQL Server, Azure, IoT and Security. 19+ years' fun developing information and multimedia systems, DBA, project and IT management. Data Community Portugal, IT Pro Portugal and PowerShell Portugal communities organiser. IPv6 Portugal, DNSSec Portugal and Windows Development Portugal online communities moderator. Actively volunteering, organising, speaking or just participating at community meetings and events around the world. Proud uncle and food devouring expert, with dangerous рuϧϧy cat as companion. Go to http://Andy.PT and you'll know the same as the NSA...
LinkedIn: http://uk.linkedin.com/in/johnqmartin/
Contact: https://www.mssqltips.com/sqlserverauthor/291/john-martin/
John Martin is a Data Platform Engineer working in the financial sector, as well as Vice President Marketing for the PASS organization and currently a Microsoft Data Platform MVP. Previously John has worked as a product manager for SentryOne and a Premier Field Engineer with Microsoft UK. John has over a decade of experience working with SQL Server and the Microsoft Data Platform. Working as a DBA, developer and consultant for Microsoft, he has been lucky enough to see how best, and how not, to use SQL Server and the Data Platform effectively.
Contact: http://www.sqltopia.com
Peter Larsson is a key player for performance written code. He can turn a 10 hour query into a 3 minute piece of code. Peter is also a SQL Server MVP since 2009. He often hangs out at SQLTeam.com (27k+ posts) and other various sites where he helps all people understand SQL Server.
LinkedIn: https://uk.linkedin.com/in/robsewellsqldba
Contact: http://sqldbawithabeard.com
Rob was once a production SQL Server DBA, but is now generally found automating the Data Platform and providing training for clients. He has a passion for PowerShell, Data, and DevOps. He is an MVP, an officer for the DevOps PowerShell VG, and has spoken and volunteered at many PowerShell and Data events. He is a member of the committee that organises Data In Devon and the European PowerShell Conference. He is a proud supporter of the Data and PowerShell communities. He relishes sharing and learning and can be found doing both via Twitter @sqldbawithbeard and his blog sqldbawithabeard.com. He spends most of his time looking at a screen and loves to solve problems.
LinkedIn: https://se.linkedin.com/in/danielhutmacher
Contact: https://sqlsunday.com/
Senior database developer with a long-running passion for performance tuning on SQL Server. I run my own consultancy business where I help companies with database development, ETL work, performance tuning and technical training on SQL Server. Board member of the Swedish SQL Server usergroup 2017-2019, organizer of SQL Saturday Stockholm, and co-organizer of GroupBy.org.
Contact: http://www.sommarskog.se
Erland Sommarskog is an independent consultant based in Stockholm, working with SQL Server since 1991. He was first awarded SQL Server MVP in 2001, and has been re-awarded every year since. His focus is on systems development with the SQL Server Database Engine and his passion is to help people to write better SQL Server applications.
Torsten Strauß (MVP, MCSE Data Platform, MCSE Data Management and Analytics, MCT) has been working with Microsoft SQL Server since the turn of the millennium. He currently works as Database Engineer and Microsoft SQL Server Evangelist for BP Europe SE and as Principal Consultant for Sarpedon Quality Lab. Torsten has delivered more than 100 presentations about Microsoft SQL Server at national and international conferences and user groups in recent years.
LinkedIn: http://www.linkedin.com/in/alexander-klein-13a04b3a
Alexander Klein is a senior Business Intelligence consultant with more than 15 years of experience. He focuses on Business Intelligence and Data Warehouse projects with Microsoft technologies like SQL Server, Power BI, Azure ML or Cortana Intelligence. Since 2008, he has been a self-employed consultant in large and medium-sized projects in all sectors across Europe. He has been visiting SQL Saturdays and other Data Conference all over Europe since 2013. Speaker at national and international events since 2017.
LinkedIn: https://www.linkedin.com/profile/view?id=207669359amp;trk=nav_responsive_tab_profile
Master of physic in Germany 2000, worked as MS Flightsimulator Expert on the side. Employed at OLTEC Windamp;Solar as C++/Web/PHP/MySQL -Programmer. Company bought by Vestas 2004 shifting to MS-SQL,SSIS until now.
LinkedIn: https://fr.linkedin.com/in/rudibruchez
Contact: http://www.babaluga.com/
(same as before)
The following is a list of sponsors that helped fund the event.


Ruby on Rails
PostgreSQL
JSON
JavaScript
Vue.js, React.js
HTML/CSS
Twilio
Executive Administrative Business Partner
Hipmunk
Employee Experience Manager
Actualize
Coding Bootcamp & Apprenticeship
Scripps College
BA, Honors in Anthropology
After completing a fullstack development bootcamp that focused primarily on Ruby and Rails and API development, I realized that - after a brief introduction to JavaScript - my true passion lay in the fun, responsive world frontend development.
I taught myself advanced ES6, Node.js, React.js, and many of the more nuanced aspects of design with HTML5 and CSS3. I'm excited to continue building my skillset in an engineering role.
Find out more about how I can be an asset to your engineering org.
four oh eight - eight eight eight - five three nine five


We value each and every person who is coming to our event and for the conference we want to get the best experience for everyone. Thus we would kindly ask you to make yourself familiar with our Code of Conduct if you want to attend the conference.
Breaks, Food and Drinks
We will have several breaks between our talks. We will serve drinks before, during and after the event and due to some special deal with one of our team (Simon), we are able to serve you some fresh brewed local beer by denkbräu for free during the event.
Thanks to our sponsor Computer Futures, we also have some food for you: There will be wraps (vegan or chicken options) you can get during the break. It should be enough but please don’t take two wraps at the beginning so everyone gets his preferred one.
Get there
By plane
If you’re flying to the conference, choose a local train (S-Bahn) to Cologne Central station or Hansaring, then choose the S-Bahn to "Köln Ehrenfeld" and switch off there. From there, the venue is within a walking distance (see below).
By train
Arriving at Cologne Central Station ("Köln Hbf"), choose the S-Bahn (S12, S13) on track 11 (2 stops) to "Köln Ehrenfeld" and switch off there. If you’re taking a local cable car, switch off at "Köln Ehrenfeld S-Bahn". From there, the venue is within a walking distance (see below).
Please make sure to buy a train ticket (costs 2.40 Euro). The ride and walk takes about 15 minutes, trains leave every 10 minutes.
Subway
The next subway station is "Körnerstraße" where the cars 3 & 4 are stopping by. It´s a 3 minute walk from there to the venue, trains are arriving every 5 to 10 minutes.
From the station "Subbelrather Str./Gürtel", where cars 5 & 13 are stopping by, you´ll have to walk 5 to 7 minutes to the venue.
Walk
Starting from the train station mentioned above, follow the Stammstraße for about 200m to the venue. It’s a 3 minutes walk from the station and easy to find. Here’s a Link to the venue on Google Maps.
Schedule
Find the schedule of the evening (yes, all times are p.m.) here:
Doors open |
|
WelcomeChris Heilmann |
|
Homemade PressureBastian Allgeier |
|
If you wish to learn ES6/2015 from scratch, you must first invent the universeAshley Williams |
|
A Culture of CourageStefanie Schirmer |
|
Code is a JobGarann Means |
|
Overcoming the Fame GameLizzie Mary Cullen |
|
GoodbyeChris Heilmann |
|
After PartyThis year we'll stay at the conference location for the after party. We’re happy to continue the great evening and end it with a few drinks and good conversations. |


|
ECS160Android
FortNitta Android platform team
|
CRandomNumberGenerator class, used to generate a random number. More...
Public Member Functions | |
| CRandomNumberGenerator () | |
| The default constructor just initializes DRandomSeedHigh and DRandomSeedLow to fixed hex values. | |
| final void | Seed (int high, int low) |
| Generates a random number using the 2 seeds. More... | |
| final int | Random () |
| Changes the value of DRandomHigh and DrandomLow. More... | |
Protected Attributes | |
| int | DRandomSeedHigh |
| This is the seed that generates the upper half of the random number. | |
| int | DRandomSeedLow |
| This is the seed that generates the lower half of the random number. | |
CRandomNumberGenerator class, used to generate a random number.
| final int game.utils.CRandomNumberGenerator.Random | ( | ) |
Changes the value of DRandomHigh and DrandomLow.
Returns an int where DRandomSeedHigh affects the upper 16 bits and DRandomlow affects all 32 bits
multiplies the lower 16 digits by a set number (different for low and high) adds this to the upper 16 digits shifted right by 16 bit
| final void game.utils.CRandomNumberGenerator.Seed | ( | int | high, |
| int | low | ||
| ) |
Generates a random number using the 2 seeds.
This sets DRandomSeedHigh and DrandomseedLow.
| low | the new value of DramdomseedLow |
| high | the new value of DrandomseedHigh Low and high must not be the same value, and they must both exist |


| | Class | Description |
| | CellCountDivider |
Divide a spritesheet into cells based on count - ie, 4 cells by 3 cells. |
| | FixedSizeDivider |
Divide a sprite sheet into fixed-size cells. |
| | MultiSpriteSheetHelper |
Helper to manage many similar sprite sheets (for instance, multiple sheets
for the same character). |
| | SpriteContainerComponent |
An abstract class to allow access to a set of sprites. |
| | SpriteSheetComponent |
Handles loading and retrieving data about a sprite sheet to use for rendering. |
| | SWFSpriteSheetComponent |
A class that is similar to the SpriteSheetComponent except the frames
are loaded by rasterizing frames from a MovieClip rather than splitting
a single image. |


{{ partial "head" . }} {{ partial "nav" . }}
BTC Native buy prices (for validation) Exchange | Buy Price | SellAsks Coinspot | 12220.0 | 12247.5 CSpot B/S | 11974.9 | 12066.6 Coinjar | 12155.4 | 12240.0 ACX.io | 12600.0 | 13580.0 BTC Mrkts | 12069.5 | 12107.0 IND RES | 12111.0 | 12111.0 Bitfinex | 7892.4 | 7892.5 Coinfloor | 6089.0 | 6093.0 KrakenUS | 7846.1 | 7846.2 Bittrex | 7836.0 | 7847.6 Gemini | 7844.1 | 7849.0 Bitstamp | 7843.2 | 7852.7 -------------------------------------------------------------------- BTC Market Prices Exchange | Buy Bids | Sell Asks Coinspot | 12220.0 | 12247.52 CSpot B/S | 11974.919 | 12066.61 Coinjar | 12155.382 | 12240.0 ACX.io | 11192.481 | 13697.752 BTC Mrkts | 12060.117 | 12099.263 IND RES | 12111.009 | 12111.03 Bitfinex | 12035.594 | 12035.747 Coinfloor | 12108.32 | 12116.274 KrakenUS | 11970.754 | 11974.965 Bittrex | 11960.834 | 11963.853 Gemini | 11972.524 | 11988.085 Bitstamp | 11966.805 | 11980.274 -------------------------------------------------------------------- BTC MARGIN COMBINATIONS (Trade fees and exchange rates included only) Direction | Margin Bitfinex -> Coinjar | 0.8% KrakenUS -> Coinspot | 0.8% KrakenUS -> Coinjar | 1.2% Bittrex -> Coinspot | 0.9% Bittrex -> Coinjar | 1.3% Bittrex -> Coinfloor | 0.7% Gemini -> Coinjar | 1.1% Bitstamp -> Coinspot | 0.8% Bitstamp -> Coinjar | 1.2% -------------------------------------------------------------------- BTC MARGIN COMBINATIONS for a 10k AUD move (All Fees included for a TWO way trip) Direction | Profit --- none :( --- ETH Native buy prices (for validation) Exchange | Buy Price | SellAsks Coinspot | 309.0 | 312.7 CSpot B/S | 301.8 | 309.5 Coinjar | 306.0 | 311.0 ACX.io | 301.0 | 400.0 BTC Mrkts | 306.0 | 308.1 IND RES | 306.4 | 308.6 Bitfinex | 199.7 | 199.8 KrakenUS | 198.8 | 199.0 Bittrex | 198.8 | 199.0 Gemini | 198.9 | 199.2 Bitstamp | 199.0 | 199.1 -------------------------------------------------------------------- ETH Market Prices Exchange | Buy Bids | Sell Asks Coinspot | 309.0 | 312.699 CSpot B/S | 301.752 | 309.541 Coinjar | 306.023 | 311.01 ACX.io | 201.813 | 479.481 BTC Mrkts | 305.82 | 307.841 IND RES | 306.38 | 308.595 Bitfinex | 304.441 | 304.654 KrakenUS | 303.069 | 303.563 Bittrex | 303.369 | 303.967 Gemini | 303.611 | 303.987 Bitstamp | 303.631 | 303.986 -------------------------------------------------------------------- ETH MARGIN COMBINATIONS (Trade fees and exchange rates included only) Direction | Margin -------------------------------------------------------------------- ETH MARGIN COMBINATIONS for a 10k AUD move (All Fees included for a TWO way trip) Direction | Profit --- none :( --- LTC Native buy prices (for validation) Exchange | Buy Price | SellAsks Coinspot | 77.5 | 78.3 CSpot B/S | 75.6 | 77.6 Coinjar | 76.6 | 79.0 ACX.io | 1.0 | 139.0 BTC Mrkts | 76.7 | 77.1 IND RES | 77.0 | 79.7 Bitfinex | 50.0 | 50.1 KrakenUS | 49.8 | 49.9 Bittrex | 49.7 | 50.0 Gemini | 49.8 | 49.9 Bitstamp | 49.8 | 49.9 -------------------------------------------------------------------- LTC Market Prices Exchange | Buy Bids | Sell Asks Coinspot | 77.5 | 78.324 CSpot B/S | 75.623 | 77.617 Coinjar | 76.59 | 78.955 ACX.io | 0.9 | 3.287 BTC Mrkts | 76.418 | 77.861 IND RES | 76.49 | 80.103 Bitfinex | 76.334 | 76.44 KrakenUS | 76.068 | 76.136 Bittrex | 75.807 | 76.302 Gemini | 76.039 | 76.185 Bitstamp | 76.047 | 76.18 -------------------------------------------------------------------- LTC MARGIN COMBINATIONS (Trade fees and exchange rates included only) Direction | Margin ACX.io -> Coinspot | 2256.6% ACX.io -> CSpot B/S | 2198.5% ACX.io -> Coinjar | 2229.9% ACX.io -> BTC Mrkts | 2224.1% ACX.io -> IND RES | 2226.4% ACX.io -> Bitfinex | 2221.9% ACX.io -> KrakenUS | 2213.8% ACX.io -> Bittrex | 2205.8% ACX.io -> Gemini | 2212.9% ACX.io -> Bitstamp | 2213.1% -------------------------------------------------------------------- LTC MARGIN COMBINATIONS for a 10k AUD move (All Fees included for a TWO way trip) Direction | Profit ACX.io -> Coinspot | 225591.32 ACX.io -> CSpot B/S | 219780.69 ACX.io -> Coinjar | 222921.82 ACX.io -> BTC Mrkts | 222339.56 ACX.io -> IND RES | 222569.91 ACX.io -> Bitfinex | 222123.24 ACX.io -> KrakenUS | 221308.82 ACX.io -> Bittrex | 220516.94 ACX.io -> Gemini | 221220.14 ACX.io -> Bitstamp | 221245.86 BCH Native buy prices (for validation) Exchange | Buy Price | SellAsks CSpot B/S | 409.3 | 420.3 ACX.io | 501.0 | 650.0 BTC Mrkts | 412.4 | 419.2 IND RES | 412.6 | 420.5 Bitfinex | 270.5 | 270.8 KrakenUS | 269.5 | 269.7 Bittrex | 270.2 | 270.3 Gemini | 269.3 | 270.1 Bitstamp | 269.3 | 269.6 -------------------------------------------------------------------- BCH Market Prices Exchange | Buy Bids | Sell Asks CSpot B/S | 409.318 | 420.335 ACX.io | 24.979 | 1305.459 BTC Mrkts | 405.111 | 419.066 IND RES | 409.37 | 419.797 Bitfinex | 412.444 | 413.065 KrakenUS | 411.015 | 411.541 Bittrex | 410.794 | 412.916 Gemini | 410.782 | 412.013 Bitstamp | 410.877 | 411.907 -------------------------------------------------------------------- BCH MARGIN COMBINATIONS (Trade fees and exchange rates included only) Direction | Margin -------------------------------------------------------------------- BCH MARGIN COMBINATIONS for a 10k AUD move (All Fees included for a TWO way trip) Direction | Profit --- none :( --- OMG Native buy prices (for validation) Exchange | Buy Price | SellAsks CSpot B/S | 1.2 | 1.2 BTC Mrkts | 1.2 | 1.2 IND RES | 1.2 | 1.4 Bitfinex | 0.8 | 0.8 KrakenUS | 0.8 | 0.8 Bittrex | 0.8 | 0.8 -------------------------------------------------------------------- OMG Market Prices Exchange | Buy Bids | Sell Asks CSpot B/S | 1.189 | 1.236 BTC Mrkts | 1.11 | 1.403 IND RES | 1.085 | 1.622 Bitfinex | 1.202 | 1.21 KrakenUS | 1.191 | 1.222 Bittrex | 1.192 | 1.573 -------------------------------------------------------------------- OMG MARGIN COMBINATIONS (Trade fees and exchange rates included only) Direction | Margin -------------------------------------------------------------------- OMG MARGIN COMBINATIONS for a 10k AUD move (All Fees included for a TWO way trip) Direction | Profit --- none :( --- TRX Native buy prices (for validation) Exchange | Buy Price | SellAsks Coinspot | 0.0 | 0.0 CSpot B/S | 0.0 | 0.0 Bitfinex | 0.0 | 0.0 KrakenUS | 0.0 | 0.0 Bittrex | 0.0 | 0.0 -------------------------------------------------------------------- TRX Market Prices Exchange | Buy Bids | Sell Asks Coinspot | 0.023 | 0.023 CSpot B/S | 0.023 | 0.023 Bitfinex | 0.023 | 0.023 KrakenUS | 0.023 | 0.023 Bittrex | 0.023 | 0.023 -------------------------------------------------------------------- TRX MARGIN COMBINATIONS (Trade fees and exchange rates included only) Direction | Margin -------------------------------------------------------------------- TRX MARGIN COMBINATIONS for a 10k AUD move (All Fees included for a TWO way trip) Direction | Profit --- none :( --- Rates are : AUD->USD: 0.6554641192 AUD->NZD: 1.0361972723 AUD->GBP: 0.5028773666 AUD->EUR: 0.5754733268


World's Simplest Thanksgiving Turkey
From: Food Network Kitchen
Prep Time: 10 min |
Cook Time: 3 hr |
Difficulty: Easy |
Ingredients:
- 1 turkey, 10 to 12 pounds
- onions
- carrots
- apples
- herbs
- butter
- Salt and pepper
Estimated Weight: 15 lbs
Directions:
- Preheat the oven to 325 degrees F.
- Pull the neck and giblets out of the cavity; ditch the liver and save the rest of the giblets for gravy. Dry the turkey with paper towels, then season inside and out with salt and pepper.
- Fill the turkey with aromatics like chopped onions, carrots, apples, and herbs, then place breast-side up in a roasting pan and brush with melted butter.
- Tent with foil and roast for 2 hours (for a 10- to 12-pound turkey; add an extra 15 minutes per pound for larger birds).
- Remove the foil, base with more melted butter and crank the oven to 425 degrees F. Roast for another hour or until the meat at the thigh registers 165 degrees F.


Yet another? No way! What?
nodeKoaRabbit is yet another irc slash chat app which gives you the power of public, irc and personal chats all at once.
Chat with anybody and everybody.
Move from old to better aesthetic irc.
See who is online, who is offline in real time.
Chat with selected favourite in your private list.
Mark people as favourites to filter your chats.
Stalk your friends indefinitely :p


EAT everything that comes in your path.
COLLECT points while you eat the fishes.


--- layout: documentation title: FlowCollectionElementType ---
Field values are associated with each record in the collection of a flow data record.
| Field Name | Type | Description |
|---|---|---|
| Flow_Record_Field_Value0..n | StringObjectPropertyType |
Set of fields values for a given Flow Data Record. |