exclude: true --- class: top left hide-count background-image: url(img/PXL_20211017_215933273_trim.jpeg) background-size: cover .fade-in[ .move-top10[ .title-text[Deep Sequencing for
 Respiratory Pathogen Detection
 & Infection Diagnosis] ] .callout-url-leftcorner[ .title-nametext[ Brendan J. Kelly, MD, MS Infectious Diseases & Epidemiology University of Pennsylvania

  ] ] ] --- ## Disclosures .pad-left[ - No commercial support or conflicts of interest. - Research supported by: - NIAID: K23 AI121485 - CDC: BAA 200-2016-91964, BAA 200-2018-02919, BAA 200-2021-10986 ] --- ## Respiratory Tract Infection: Public Health Challenge .pad-left[ - Lower respiratory tract infections (LRTIs) were the fourth leading cause of mortality for all ages in 2019 -- even before the global COVID-19 pandemic! - LRTIs account for nearly 4 million deaths annually. - Multidrug-resistant (MDR) bacterial LRTIs have been associated with increased reinfection risk and mortality, relative to non-resistant bacterial infections: - effect of factors that increase risk for MDR (e.g., underlying lung disease)? - effect on time to effective antimicrobial therapy? ... is microbiologic diagnosis complete without resistance profile? ] .footnote[Vos et al. _Lancet_ 2020; Vincent et al. _JAMA_ 2009; Weiner et al. _MMWR_ 2016; Kumar et al. _Crit Care Med_ 2006] --- ## Respiratory Tract Infection: Diagnostic Challenge .pad-left[ - Challenges to sensitivity: - potential etiologies include viruses, bacteria, fungi - low microbial biomass and/or fastidious organisms - difficulty of sampling (e.g., nonproductive cough) - Challenges to specificity: - all non-surgical samples contaminated by the upper airway (bronchoscopic carryover even with protected-specimen brush) ] .footnote[Charlson et al. _Am J Resp Crit Care_ 2011; Charlson et al. _PLoS One_ 2012; Dickson et al. _Ann Rev Physio_ 2016] --- ## Deep Sequencing for Culture-Free Diagnosis .pad-left[ - Approach: - extraction of nucleic acid from upper/lower respiratory specimen → 16S rRNA gene or shotgun metagenomic sequencing - Potential advantages: - rapid (depending on bioinformatics) & less biased (but not unbiased) - Potential disadvantages: - low sensitivity: microbial DNA swamped by host - misclassification risk: metagenomic assignment/assembly - limited accuracy of genotype-based AMR prediction ] --- class: full-screen hide-count background-color: #FCF5E5

Sequence-Based
Pathogen
Detection

 --- layout: false class: full-screen hide-count background-color: #FCF5E5

Sequence-Based
Pathogen
Detection

Microbial
Ecology &
Infection Diagnosis

 --- layout: false class: full-screen hide-count background-color: #FCF5E5

Sequence-Based
Pathogen
Detection

Microbial
Ecology &
Infection Diagnosis

Dis/Advantages
of a Sequence-
First Strategy

 --- layout: false class: full-screen hide-count background-color: #FCF5E5

Sequence-Based
Pathogen
Detection

Microbial
Ecology &
Infection Diagnosis

Dis/Advantages
of a Sequence-
First Strategy

 --- exclude: true class: center middle  --- background-image: url(img/kelly_microbiome_2016_heatmap.png) background-size: 70% .footnote[Kelly et al. _Microbiome_ 2016] --- ## 16s rRNA Sequencing for Bacterial Pneumonia .pad-left[ - concordance with clinical cultures: - 4/15 subjects with + LRT cultures - 16S rRNA identifies all as dominant 24-72hrs before culture - dominance of unknown clinical significance: - _Enterococcus faecalis_ domination post RSV pneumonia - _Ureaplasma parvum_ in an immunocompromised host - the "normal flora" problem: standards for ignoring expected taxa? ] .footnote[Kelly et al. _Microbiome_ 2016] --- background-image: url(img/pendleton_ajrccm_2017_top.png) background-size: contain .footnote[Pendleton et al. _AJRCCM_ 2017] --- background-image: url(img/pendleton_ajrccm_2017_bottom.png) background-size: contain .footnote[Pendleton et al. _AJRCCM_ 2017] --- ## 16s rRNA & Metagenomic Pathogen Detection .pad-left[ - high sensitivity & early detection of culture-positive cases - require tailored methods for _Mycobacteria_, fungi, viruses - lots of dominance of unclear clinical significance: - correlates with markers of inflammation and lung injury - should this receive directed antibiotic treatment? - byproduct of antibiotic treatment? ] .footnote[Graf et al _JCM_ 2016; Abbas _Am J Transpl_ 2017; Kitsios et al. _Front Micro_ 2018; Langelier et al. _PNAS_ 2018; Zinter et al. _CID_ 2019; Dickson et al. _AJRCCM_ 2020; McGinniss et al. _J Heart Lung Transpl_ 2021] --- ## Conclusions: Sequence-Based Pathogen Detection .pad-left[ - Advantages: - rapid & less biased - Disadvantages: - need new standard for "normal flora" - no single extraction/sequencing modality: _Mycobacteria_, fungi, viruses (efforts made to develop pipelines -- e.g., SURPI*) - AMR prediction in its infancy - Best of both worlds with multiplex NAAT? ] .footnote[Kelly et al. _Microbiome_ 2016; Kitsios et al. _Front Micro_ 2018; *Langelier et al. _PNAS_ 2018; Dickson et al. _AJRCCM_ 2020] --- layout: false class: full-screen hide-count background-color: #FCF5E5

Sequence-Based
Pathogen
Detection

Microbial
Ecology &
Infection Diagnosis

Dis/Advantages
of a Sequence-
First Strategy

 --- background-image: url(img/kelly_microbiome_2016_alpha_simple.png) background-size: 70% .footnote[Kelly et al. _Microbiome_ 2016] --- ## Dominance, Diversity & Infection Risk .pad-left[ - more comprehensive and quantitative approach permits: - richness: number of different species - evenness: balance across observed species - diversity: summary of richness & evenness - dominance: > 30% or > 50% of sequence reads - 16S rRNA qPCR or other standard-based quantitation of DNA/RNA abundance (use of cycle threshold values for SARS-CoV-2) ] .footnote[Dickson et al. _Lancet Resp Med_ 2014; Kelly et al. _Microbiome_ 2016; Kitsios et al. _Front Micro_ 2018; Dickson et al. _AJRCCM_ 2020; Kitsios et al. _AJRCCM_ 2020; Harrigan et al. _CID_ 2021] --- background-image: url(figs/p_combined_mdi_crosssection_counterfact.png) background-size: contain .footnote[Harrigan et al. _CID_ 2021] --- background-image: url(figs/p_minimpute_persistent_mdi.png) background-size: contain .footnote[Harrigan et al. _CID_ 2021] --- background-image: url(figs/p_minimpute_compare_outcome_definitions_persistence.png) background-size: contain .footnote[Harrigan et al. _CID_ 2021] --- ## Dominance, Diversity & Infection Risk .pad-left[ - 83 subjects dependent on mechanical ventilation - Sampled 1066 days to compare microbiome disruption indices (MDIs): - cross-sectional MDIs (low Shannon diversity, high 16S rRNA gene qPCR) associated with risk for VA-LRTI, but poor predictors - persistent low Shannon diversity had per-day LRTI odds ratio of 1.36 (95% credible interval 1.10 to 1.72) - observed association was consistent across multiple definitions of VA-LRTI ] .footnote[Harrigan et al. _CID_ 2021] --- ## Conclusions: Microbial Ecology of Infection .pad-left[ - Predictive utility of microbial community structure: - challenge of gold standard for pneumonia diagnosis - optimal utility with longitudinal measures/sampling - independent of pathogen identification (strength & weakness) - Advantage of deep sequencing over multiplex NAAT. - Is it worth the work? ] --- layout: false class: full-screen hide-count background-color: #FCF5E5

Sequence-Based
Pathogen
Detection

Microbial
Ecology &
Infection Diagnosis

Dis/Advantages
of a Sequence-
First Strategy

 --- ## Deep Sequencing First? .pad-left[ - Disadvantages: - need to redefine "normal flora" (specificity questions) - broad sensitivity demands complex wet-bench & bioinformatic pipeline - metagenomic AMR prediction is in early stages - Advantages: - speed and sensitivity - added predictive/diagnostic value of microbial community structure - __pathogen tracking and infection control__ -- application to public health ] --- background-image: url(figs/covid_cases_chloropleth.png) background-size: 30% background-position: 85% 50% ## SARS-CoV-2 Variant Tracking .pull-left[ - The value of extracted nucleic acids! - Draw on broad catchment of PennMedicine, led by Kyle Rodino, PhD: - ~ 1500 SARS-CoV-2 NAATs per day - positives with Ct < 28, stratified by county and zip code - ARTIC primer set to amplify → Illumina - assembly, alignment, PANGO lineage ] .pull-right[ ] --- background-image: url(img/marques_arma_model.png) background-size: 80% background-position: 50% 90% .move-top5[  ] .footnote[Marques et al. _medRxiv_ 2021] --- background-image: url(img/marques_vaccine_model.png) background-size: contain .footnote[Marques et al. _medRxiv_ 2021] --- layout: false class: full-screen hide-count background-color: #FCF5E5

Sequence-Based
Pathogen
Detection

Microbial
Ecology &
Infection Diagnosis

Dis/Advantages
of a Sequence-
First Strategy

 --- ## Conclusions .pad-left[ - Specificity challenges deep sequencing for respiratory pathogen identification: - nature of upper airway contamination - need to redefine standards for "normal flora" - Novel insights into microbial ecology provide alternate framework for infectious disease diagnosis: skip the CT scan and monitor lower respiratory bacterial community diversity/dominance? - As multiplex NAAT and diagnostic sequencing applications expand, opportunity to collaborate with infection control and public health colleagues to build bioinformatics infrastructure. ] --- ## Acknowledgements .pull-left[ - __ARES Group @ Penn__ Laurel Glaser, Kyle Rodino, Sean Loughrey, Laura Cowden, Magda Wernovsky, Jennifer Han, Erik Clarke, Michael David, Matt Ziegler, Lauren Dutcher, Ebbing Lautenbach, Jim Harrigan, Hatem Abdallah - __Bushman Laboratory @ Penn__ Arwa Abbas, Aoife Roche, Andrew Marques, Aubrey Bailey, Jacob Leiby, Rick Bushman - __PennCHOP Microbiome Program__ Lisa Mattei, Casey Hofstaedter, Huanjia Zhang, Kyle Bittinger ] .pull-right[ - __Collman Laboratory @ Penn__ Ize Imai, Aurea Simon Soro, John McGinniss, Ron Collman - __Division of ID @ Penn__ Ian Frank, Pablo Tebas, Robert Gross, Emily Blumberg - __Rutgers University & Penn DBEI__ Jason Roy, Arman Oganisian - __CDC Prevention Epicenters__ Clifford McDonald, Alison Laufer Halpin - __Funding__ CDC BAAs 200-2016-91964, 200-2018-02919, 200-2021-10986; NIAID: K23 AI121485 ] .center[ ###<EMAIL_ADDRESS>] --- class: middle center hide-count background-image: url(img/PXL_20211017_215933273_trim.jpeg) background-size: cover .title-subtext[Questions?] .callout-url-bottom[  [bjklab.org](http://www.bjklab.org)
 ] --- exclude: true ## bjklab.org .center[  ]


This tests that foreground and background colors properly change for autofilled inputs. It can only be run using the test harness.


| LatLng | LatLng of mouse pointer | ||
|---|---|---|---|
| Rel to pane | Mouse pointer pixel coords relative to _rotatePane | ||
| Rel to container | Mouse pointer coords relative to map <div> | ||
| Pivot | Last _rotationPane pivot pixel coords relative to _rotationPane | ||
| Pane offset | Pixel offset of _mapPane | ||
| Pixel origin | Negative pixel coords of the (0,0) CRS point relative to _rotatePane |


$1.99
Gold Bond Bottle
Volume
0.250 L
Alcohol
7.5%
This is our bottle that contains 555 ml with 5% alcohol from fields of Montreal to your hands since 1908.
Available in your nearest grocery stores.


ASCE-JMI and CSI-JMI are coming together this spring to bring you the much awaited
annual techno cultural fest.
Get ready to turn your boring college routine upside down on 16th - 18
th March as we have everything to set your mind and heart with excitement
you can't possibly contain.
2018
TAKE A LOOK!
Last year we set new records.
Presidents
Alima
Core Members
Developer
Faraaz


Reference documents Apache Geode properties, region attributes, the cache.xml
file, cache memory requirements, and statistics.
gemfire.properties and gfsecurity.properties (Geode Properties)
You use the
gemfire.properties
settings to join a distributed system and configure system member behavior. Distributed system members include applications, the cache server, the locator, and other Geode processes.-
Use the cache.xml file to set up general cache facilities and behavior and to create and initialize cached data regions. These sections document cache.xml requirements; provide hierarchical diagrams of
<cache>
and<client-cache>
elements; and describe the function of each element. -
This topic describes the various region shortcuts you can use to configure Geode regions.
Exceptions and System Failures
Your application needs to catch certain classes to handle all the exceptions and system failures thrown by Apache Geode.
Memory Requirements for Cached Data
Geode solutions architects need to estimate resource requirements for meeting application performance, scalability and availability goals.
-
This section describes the primary statistics gathered by Geode when statistics are enabled.


Note: this is highly simplified example for development purposes. For a more pleasent user experience, please visit the OneLang WebIDE.


This is the summary, which can contain HTML markup and inline links. It should be 300 characters or less. This particular paragraph has 300 characters to give you a better perspective of what it will look like when you have this much content in this area. As you can see, it takes up this much space.


InitAudioCD()
语法
Result = InitAudioCD()概要
Try to initialize all the necessary resources in order to handle audio CD functions.
参数
无.
返回值
If Result is 0, the initialization has failed or there are no CD drives available, else Result contains the number of CD drives attached to the system.
备注
This function must be called before any other audio CD function.
已支持操作系统
所有


Loop assembly is a recursive DNA assembly method based on standardised type IIS assembly and Unique Nucleotide Sequences (UNS). Loop uses the Common Syntax for DNA parts to allow composing transcriptional units from L0 parts - currently used by PhytoBricks, MoClo and GoldenBraid. Then, Loop assembly 'loops' between two levels (odd and even) to generate DNA constructs of arbitrary complexity, with each level increasing the assembled modules by a factor of four.
LoopDesigner is the software layer of Loop assembly that rounds up all the knots, ties them and supplies a neat frontend for sequence handling and experimental design. You can design DNA constructs, perform in silico assembly and LoopDesigner will produce the necesary information for your experiments and also keep a database of parts you've created and assembled.
Information for local deployment can be found in our repository! See Help section if you are stuck, or check out the Wiki pages for more info, including how to set up a local copy of a LoopDesigner.


riak
The system architecture of Riak
Simple at the Core
At its heart, Riak is a decentralized key/value store, strongly influenced by Amazon's Dynamo and lessons learned from real-world application of the CAP Theorem to other distributed systems. It supports high availability at low cost by allowing applications to tune their relative needs for durability, partition-tolerance, and other business constraints.
A Riak cluster is generally run on a set of well-connected physical hosts. Each host in the cluster runs one Riak node. Each Riak node runs a set of virtual nodes, or "vnodes", that are each responsible for storing a separate portion of the key space.
Nodes are not clones of each other, nor do they all participate in fulfilling every request. The extent to which data is replicated, and when, and with what merge strategy and failure model, is configurable at runtime and flexible to meet the needs of many different applications.
one ring to find them
Riak uses the technique of consistent hashing to organize data storage. Central to any Riak cluster is a 160-bit integer space which is divided into equally-sized partitions. Each vnode is responsible for one of these partitions, and each document is stored in a set of partitions that can be determined statically depending on its key. This allows a client node to determine the "owners" of a given piece of data locally, without having to ask any central authority.
In the default configuration, each physical node of a Riak cluster will attempt to run roughly an equal number of vnodes. In the general case, this means that each node in the cluster is responsible for 1/(number of nodes) of the ring, or (number of partitions)/(number of nodes) vnodes. For example, if two nodes define a 1024-partition cluster, then each node will run 512 vnodes. By default, nodes claim their partitions at random intervals around the ring, which usually provides a sufficiently even distribution.
coordination and gossip
When a value is being stored in (or retrieved from) the cluster, any node may participate as the coordinator for the request. The coordinating node consults the ring state to determine which vnode owns the partition in which the value's key belongs, then sends the request to that vnode, as well as the vnodes responsible for the next N-1 partitions in the ring, where N is a bucket-configurable parameter that describes how many copies of the value to store. A put request may specify that at least W (=< N) of those vnodes reply with success, and that DW (=< W) reply with success only after durably storing the value. The request will only be considered successful to the client when both W and DW have been satisfied by the nodes in question. (A get request is similar except that it only has one such value, called R.)
The ring state is shared around the cluster by means of a gossip protocol. Whenever a node changes its claim on the ring, it announces its change via this protocol. Each node also periodically sends its current view of the ring state to a randomly-selected peer, in case any nodes missed previous updates.
causality and versioning
With any node able to drive any request, and not all nodes needing to participate in each request, it is necessary to have a method for keeping track of which version of a value is current. This is where vector clocks ("vclocks") come in.
When a value is stored in Riak, it is tagged with a vclock, establishing its initial version. When a value is updated in Riak, the client provides the vclock of the object being modified so that this vclock can be extended to reflect the update. Riak can compare vclocks on different versions of the object and determine:
- Whether one object is a direct descendant of the other.
- Whether the objects are direct descendants of a common parent.
- Whether the objects are unrelated in recent heritage.
Using this knowledge, Riak can auto-repair out-of-sync data, and in worse cases can provide a client with an opportunity to reconcile divergent changesets in an application specific manner.
Riak attempts to move data toward a consistent state across nodes, but it doesn't do so by comparing each and every object on each node. Instead, nodes needing to possibly update many values will exchange a merkle tree, which allows them to quickly decide which values need comparing.
pluggable data backends
Sharing data among nodes, on rings, etc. is all well and good, but at some point, it has to actually be stored somewhere - like on disk! Because Riak is relevant to a wide variety of applications, its "backend" storage system is a pluggable one.
Each node may be configured with a different module for managing local storage. This module only needs to define "get", "put", "delete", and "list keys" functions that operate on binary blobs. The backend can consider these binaries completely opaque data, or examine them to make decisions about how best to store them. Four backends come pre-packaged with Riak:
- riak_fs_backend, which stores data directly to files in a nested directory structure on disk
- riak_ets_backend, which stores data in ETS tables (which makes it volatile storage, but great for debugging)
- riak_dets_backend, which stores data on-disk in DETS tables
- riak_osmos_backend, which stores data in Osmos tables
building on the Web
Riak provides its primary programming interface over RESTful HTTP, in JSON encoding. This is enabled by embedding the Webmachine server, and has two major benefits:
- Ease of use for developers in any programming language
- Taking advantage of the Web's architecture for caching, validation and more


Chapter 5: Surface normals and multiple objects. First, let’s get ourselves a surface normal so we can shade. This is a vector that is perpendicular to the surface, and by convention, points out. One design decision is whether these normals (again by convention) are unit length. That is convenient for shading so I will say yes, but I won’t enforce that in the code. This could allow subtle bugs, so be aware this is personal preference as are most design decisions like that. For a sphere, the normal is in the direction of the hitpoint minus the center: On the earth, this implies that the vector from the earth’s center to you points straight up. Let’s throw that into the code now, and shade it. We don’t have any lights or anything yet, so let’s just visualize the normals with a color map. A common trick used for visualizing normals (because it’s easy and somewhat intuitive to assume N is a unit length vector– so each component is between -1 and 1) is to map each component to the interval from 0 to 1, and then map x/y/z to r/g/b. For the normal we need the hit point, not just whether we hit or not. Let’s assume the closest hit point (smallest t ). These changes in the code let us compute and visualize N : And that yields this picture: Now, how about several spheres? While it is tempting to have an array of spheres, a very clean solution is the make an “abstract class” for anything a ray might hit and make both a sphere and a list of spheres just something you can hit. What that class should be called is something of a quandary-- calling it an “object” would be good if not for “object oriented” programming. “Surface” is often used, with the weakness being maybe we will want volumes. “Hitable” emphasizes the member function that unites them. I don’t love any of these but I will go with “hitable”. This hitable abstract class will have a hit function that takes in a ray. Most ray tracers have found it convenient to add a valid interval for hits tmin to tmax, so the hit only “counts” if tmin < t < tmax . For the initial rays this is positive t , but as we will see, it can help some details in the code to have an interval tmin to tmax . One design question is whether to do things like compute the normal if we hit something; we might end up hitting something closer as we do our search, and we will only need the normal of the closest thing. I will go with the simple solution and compute a bundle of stuff I will store in some structure. I know we’ll want motion blur at some point, so I’ll add a time input variable. Here’s the abstract class: And here’s the sphere (note that I eliminated a bunch of redundant 2’s that cancel each other out): And a list of objects: And the new main: This yields a picture that is really just a visualization of where the spheres are along with their surface normal. This is often a great way to look at your model for flaws and characteristics.


The CaptureCache pattern is useful to auto-generate static resources in base of a HTTP request. The Webserver needs to be configured to run a PHP script generating the requested resource so further requests for the same resource can be shipped without calling PHP again.
It comes with basic logic to manage generated resources.
Simplest usage as Apache-404 handler
1 2 | # .htdocs
ErrorDocument 404 /index.php
|
1 2 3 4 5 6 7 8 9 10 11 12 13 | // index.php
use Zend\Cache\PatternFactory;
$capture = Zend\Cache\PatternFactory::factory('capture', array(
'public_dir' => __DIR__,
));
// Start capturing all output excl. headers and write to public directory
$capture->start();
// Don't forget to change HTTP response code
header('Status: 200', true, 200);
// do stuff to dynamically generate output
|
| Option | Data Type | Default Value | Description |
|---|---|---|---|
| public_dir | string | <none> | Location of public directory to write output to |
| index_filename | string | “index.html” | The name of the first file if only a directory was requested |
| file_locking | boolean | true | Locking output files on writing |
| file_permission | integer boolean | 0600 (false on win) | Set permissions of generated output files |
| dir_permission | integer boolean | 0700 (false on win) | Set permissions of generated output directories |
| umask | integer boolean | false | Using umask on generating output files / directories |
Start capturing output.
| Return type: | void |
|---|
Write content to page identity.
| Return type: | void |
|---|
Get content of an already cached page.
| Return type: | string|false |
|---|
Check if a page has been created.
| Return type: | boolean |
|---|
Remove a page.
| Return type: | boolean |
|---|
Clear pages matching glob pattern.
| Return type: | void |
|---|
Set pattern options.
| Return type: | Zend\Cache\Pattern\CaptureCache |
|---|
Get all pattern options.
| Return type: | Zend\Cache\Pattern\PatternOptions |
|---|
Scaling images in base of request
1 2 | # .htdocs
ErrorDocument 404 /index.php
|
1 2 3 4 5 6 | // index.php
$captureCache = Zend\Cache\PatternFactory::factory('capture', array(
'public_dir' => __DIR__,
));
// TODO
|
The source code of this file is hosted on GitHub. Everyone can update and fix errors in this document with few clicks - no downloads needed.


Department of Advanced Science and Technology
University of Computer Studies
B.C.Sc/B.C.Tech. ( Fourth Year)
Computer Organization
Mid Term Examination
Control System II (CT-405)
March 2017
Zone III
Answer ALL Questions
Time allowed 3hours.
| G(S)= | K |
| s(s+2) (s2 + 4s + 5) |
| L(s)= Gc(s)G(s)= | K |
| s(s+3)(s2 + 2s +2) |
| G(s) | 5000 |
| (s+70)(s+500) |
| L(s)=Gc(s)G(s)= | K |
| s(ῑ1s+1)(ῑ2s+1) |


Tell us about yourself.
Are you over 18 year old?
Which option best describes your current role?
What is your education level?
What interests you? (pick all that apply)


 The user attempts to complete the course without crashing into objects on the road.
We decided to start by creating a simple track with 4 bezier curves and 13 control points:
This curve will span the x and y plane, and will be rotated. The camera will then be set to travel down the track by modifying the camera's center and eye position according to the points calculated on the curve. The curve will also be able to be moved in the z plane to create hills. We decided the easiest way to make edits to our curve and make sure our camera can follow the track would be to implement two modes, an "edit mode" and a "game mode". In edit mode, you can rotate the track and adjust the control points, so that we can flexibly re-design our track as we see fit. In game mode, we scale the track up and move the camera to a starting point on the track. To create the track, we decided to use multiple curves along our chosen path and use GL_QUAD_STRIPS to created the path. we decided to make partial scenery on both sides of the track in a similar way, where we draw the scenery along the curves as we go:
For embellishments, we plan to use a grass or dirt texture for the scenery, and setting the background color of the opengl window to blue. We will also use a road texture with lines to create a 2-lane road. We will also be using shading, but have not decided which type to use. Options we debated are toon-shading or shadow mapping and shadow volumes. We have not decided if we want to create a realistic or cartoon style scene.
Since we formed our group early, we also started on the project a week early. This post is for the work we did before the first official turn in, Week 1.
We completed the bezier curve referencing homework 6 for help:
We created a track() class, with 3 draw methods. drawPoints, which draws the control points, drawCurves(), which draws the red bezier curve, and drawTrack(), which draws the actual track. In edit mode, drawPoints() and drawCurves() are called, while in game mode, only drawTrack() will be called. Currently, we have game mode also call drawCurves() for debugging. In edit mode, we disable GL_LIGHTING.
In edit mode, we can currently rotate the track. Adjusting control points is not implemented yet.
In game mode, we have temporarily found a general initial camera position using translation matrices. The user can use the keys up, down, left, and right to move the camera position. Currently, there are no restrictions on the amount you can translate the camera. Camera following the curve is not implemented yet.
We ran into a problem when we attempted to draw the track. If we simple scaled or translated the bezier curve to create the track, the track would become slightly distorted. We fixed this by drawing the inner and outer curves along points in the normals of the original curve
We achieved c0 continuity by using pointers for the control points in our bezier curve class. This way, the ending and starting point can be the same point. However, when we attempted to move a control point, we noticed we did not have C1 continuity.
From our previous assignment, our bezier curve class can calculate tangents and normals for itself, however, it does not work in the z-direction. Our original design was to draw the bezier curve in the x,z plane, however this problem led us to draw it in the x,y plane, then rotate the track.
We created a camera which starts at this initial position:
The camera now follows the track, including the curves using the up key:
We also finished mapping a road texture to the track.
We fixed near-plane clipping (oblique view frustum) which can be toggled on and off with the 'o' key:
A problem we ran into while creating the camera was the camera orientation. At first, we were caught in a bird's eye view of the track. We fixed this with rotations in the camera. we also found, once we fixed the rotation, that our camera was under the track, not above it. When we moved the camera to the correct position above the track by changing the camera's "up" vector, we realized the camera was traveling backwards.
In order to fix the new problem, we had to switch the order the control points were drawn to make the camera move the correct direction.
When we tried to get the camera to follow the track by looking at the points on the curve, we realized we were having pointer problems in our getNext() method, which returns the next point on the track. The problem was caused by discontinuity between the different curves on the track. we fixed these pointers so that the iteration through the track curves was receiving points from the track.
Another problem we faced was placing textures on quad-strips for the texture. Difficulties arose because each strip could not be mapped on a 1 to 1 ratio with the texture because we needed it to be modular. By mapping it one to one, you could not create a line stipple texture that spanned across multiple strips. Another issue with using 1 to 1 ratio is that in order to get viewable line stipples, each quad-strip would need to be pretty big, which would make the edges of track curves jagged, rather than smooth. To resolve this issue we spanned the texture across X(variable amount depending on texture) numbers of quad strips and played around with the number, while keeping track of which iteration we were in and restarted the texture when the loop reached (X+1).
We did not achieve C1 continuity this week. Partly because the ability to edit control points in edit mode was partially implemented, but not finished this week.
The track will not draw until you've hit the "up" arrow key at least once.
c1 continuity in the z-direction when adding in hills:
We wanted to add a flame particle effect to the output of the exhaust for 2 technical points. This was implemented by using the parametric equation of a cone to form the shape of the flame. Then GL_POINTS were moved along the z-axis, and the angle about the cone was changed to create a spiraling effect. Finally the colors were interpolated along the z-axis to create the flaming colors going from white to yellow, then yellow to red.
Added objects on road, with bounding spheres around each object and the car. we loop through and compare the car's bounding sphere to each object's bounding sphere. To start with, we print out a "crash!" message to the console upon collision.
In generating the terrain, we were aiming for a canyon effect and there were many factors that could affect implementation.
Fixed Point Translation ensures the overall terrain is within a certain max height/width range however, if it could pose problems for the texture. If there are two vertices, one at its min and the other at its max, the quad can be much bigger than the others, causing stretching in the texture if not taken care of properly.
Relative Translation addresses some of the issues above, however, the terrain at the very top may be very jagged.
Above: Fixed point on left, Relative on right.
Above: Fixed Point with random shifting
Above: Relative with shifting
X/Y Randomness can allow the terrain to be even more random and have some interesting results, however, the randomness range in the X and Y components need to be changed when changing locations on the track or else vertices may cross over each other, thus reversing the normal plane and texture.
Outward/Normal randomness resolves the above problem because it only shifts the vertices in a path normal to the track.
After trying various combinations, we opted for starting with a wall at 90 Degrees with the track, relative translation, and outward/normal randomness. This generated the most natural looking cliffs while still having some interesting formations.
Misc bugs related to terrain:
- Level 1 and 2 jutted out into the road when the randomness was in the direction of the track . We set randomness to only be away from the track for these levels.
- The rock formations from either side of the road occasionally touched. To fix this, we shifted the walls slightly away from the track. It would be interesting however, to add in some rock bridges.
The ideal mapping of the texture would be based on the area of each quad so the stretching would be even. This however would be very difficult to do. We tried various tileable textures however, it was not displaying well. During this time, we were using our Fixed Point Translation method stated above and also X/Y randomness. Although the terrain that was generated looked like what we wanted, we needed to alter our algorithms so that that the texture would look nice too.
Dr. Schulze recommended that we try to make a very high density graphic that wraps the whole track so the stretching would not affect the image as much. After creating a very large seamless and tileable image, we tried to apply it to the terrain. After trying to debug why the texture would not show up we found that the issue was due to a max texture size capability in openGL. Because of this, we opted for a smaller, but still very dense texture. This meant that we could not wrap a single image around the whole track, but to work around this, we implemented an algorithm to repeat textures in two dimensions.
Because texture coordinates range from [0,1] in the X and Y components, we needed a way to break up the texture. We used similar algorithms as our track texture, however, this time we had another component to take care of. The track's texture spanned across the whole width of the track track and we only needed to take care of repeating the track texture. For the terrain texture, we implemented an algorithm based on how maximum levels of terrain, current level, strips per texture in two different components, This code would now allow us to to repeat the pattern upward and alongside the track making it easy to test what ratio worked.This code is also modular so whenever we altered the terrain, which was very often, it would still be functional.
Track length, camera skip caused by the sides of the track being shorter than the curved sides, fixed by doubling length of sides.
Car following track vs only being drawn stationary on screen
Texture wrap-around bug - Roughly every 10 strips of terrain, there would be one that was different than the others. At times, it would just be a line, and at other times, it seemed like it was a strip of texture. To fix this, whenever quad strip reached the end, we needed to redefine another set of vertices on top of it, but with new texture coordinates starting at 0.
Bounding Boxes collision detection is a little slow due to the comparison with every object with the car every frame. Could be optimized to only compare with objects on the current curve of the track. This would also take care of the bug where it occasionally detects collision with a object off-screen or small somewhere down the road.
Total of: 9 points for our group of three.
Per Surface Normals- Added initial normals calculated per surface
Per Vertex Normals- Calculated per vertex normals using surrounding vertices
[Photo Credit: lighthouse3d]
New Texture- Created new, less distracting, brown texture that emphasizes normals more
Terrain Randomness modification Smooth Steering Variable Speed/FPS Limiter- Added FPS limiter to control speed of game
HD/Square Dimensions- Added options to switch between square and rectangular windows
3D Collision Detection- Switched to 3D detection
- Added crash message & pause
- Added reset
Moving Obstacles- Added code to shift the objects sideways on the track
Reference: CSE167 Final project 2013
Github: https://github.com/Tsuruko
Email: liu.mona.c@gmail.com


Once of the biggest problems in the tech world today is gender inequality. Technology is largely dominated by men and so is the workplace. Statistically, women hold only about one-quarter of all information technology jobs. In 2009 women held a 25% share of computing occupations. In addition to this fact, nearly half of these women in science, engineering and technology quit. Women have quit rates of 47% in Science, 39% in Engineering and 56% in Technology. Over half of these women that leave their jobs leave the tech world completely. 51% of women who quit do something entirely different and do not return to the tech world. Lets examine why this might be.
The tech world is a boys club. Ephrat Bitton, the director of algorithms at FutureAdvisor says "It's a boys club, and you have to try to get into it, and they're trying as hard as they can to prove you can't." Writing code is a high pressure job with very little rom for error. Many people (assumably men) argue that women are not suited for this position because of how brutal the code reviews etc. can be. There is definetly a difference of opinions on whether or not women are up to the task. However, despite this Ephrat went on to say that while she strongly believes women are up to the task, no woman should be expected to perform so highly in such a masculine atmosphere. Women are harshly judged and scrutinized to the point where Ephrat believes tech is an unfair workplace.
Aside from technical abilities, another hurdle is how people are talking about the issue. "Women in the technology press are talked about in the context of being women," said a technical woman, "and men are talked about in the context of being in technology." Women can also be very good at their jobs, but they are first recognized for being a woman before they are recognized for their technical abilities.
People have already begun working to cure this problem. There are women-only hacker spaces and programs to increase the number of women who attend tech conferences and get jobs in the tech industry. A program called Passion Projects, calls upon a technical woman to present her work each month; Girl Develop It is a nonprofit group to help women become software developers; Black Girls Code is a nonprofit that introduces young girls to the technology industry and opens a multitude of opportunities for them. These are just three of many female focused organizations in the tech world. Women are pushing for equality in the work place just as they are pushing for an equal role in the tech industry.


Easel
JS
CurveTo
This example demonstrates painting to the canvas using the vector drawing API in EaselJS


Change theme
Demo Page
JQuery ui jqswfupload
Documentation:
Github Plugin page
Created by:
Alexandre Magno
Contibutions:
Elton Okada


Generated, simulated and reconstructed minimum bias proton-proton events at 14 TeV (Pythia 6.2 + CMSSW_1_8_X). Simulated objects: hit. Reconstructed objects: hit, track, v0, vertex. Number above reconstructed hit shows the id of the track it belongs to. It is has a "-" sign if the track is secondary. Use the checkboxes to plot several details. The graphics is compressed along the beam direction by factor 2.


Ignorance was Bliss
August 10, 2014
I grew up in a city whose diversity I couldn't fully appreciate until later in life. As a kid, my best friends were Vietnamese, black, portuguese, white, Puerto Rican and Ecuadorian. I, someone who identifies as Latina, was a member of and eventually president, of the Asian club in high school. All this is to say that I didn't consider that my ethnicity as a defining part of who I was, at least not at the top of the list of all the other things I considered myself: a nerd, a techie, an avid reader, etc. If you would've asked me back then, I would've said my ethnicity played little part in how I maneuvered through life. Though idealistic, I certainly didn't have a realistic view of race and ethnicity or of what being an ethnic minority in America meant. Then I went to college… and boy was I in for a rude awakening.
I took psychology classes from the start and ended up majoring in it, with a concentration in social psychology. For two years I worked as the assistant manager of a research laboratory that focused on threatened identities. Stereotype threat is a subject I studied ad nauseam.
 Of course I realized that I was the only girl in my computer science classes and that my male classmates wanted to dethrone me as the top student. I even realized part of that was simply because I was a girl. And I also noticed the exchange program we had with students in a wealthy, mostly white suburb of Connecticut was a social experiment in bringing the "disadvantaged" and "advantaged" youths together (cue the "West Side Story" overture). But it wasn't until really studying these issues in college that I realized my experience wasn't limited to a few overly competitive boys in high school. It would follow me. Everywhere.
I learned that in all of my math and science classes I'd just be expected to perform less well than boys. I learned that in my reading and writing classes I'd just be expected to be less well read than my white classmates. I learned that I couldn't administer certain tests for my own research laboratory because as a Latina I'd be perceived as an immigrant and bias the state of mind of the test-takers. I learned that at my part-time accounting job I'd be immediately judged as reliable and immature just for being young.
Damn, ignorance was bliss.
Maybe it was the perfect storm of knowledge, youthful angst and I'm-in-college-so-I-have-to-find-myself-now, but the weight of all that judgment weighed me down. Don't get me wrong, I played out my dutiful Type A role and did just fine in my classes, met a lot of people and excelled in my major. But I definitely held back at times. There's the scholarships I didn't apply for thinking I'd never qualify. There are the discussion groups where I stood silent lest I speak for my entire person-kind and be judged, or worse, cause judgement on said people. There were the extra few heart palpitations before an exam or group presentation.
I won't even offer an attempt to solve these issues. We all have our hangups and these are (just some of) mine. But one thing I know for sure is that THIS helps. Talking and listening. I only wish I could've had the freedom and safe space to talk about the things that (even mildly) plagued me back then. I never in my wildest dreams expected we'd be talking about stereotype threat at DBC and it makes me love it so much more for that. If I had to guess, I'd bet the catharsis of taking the anxious energy, balling it up and putting it back out into the ether would've helped back then. I hope we can all learn to respect and listen to our peers and give them that opportunity if nothing else.


A color cycle is an ordered set of colors used for plotting categorical data for visualization. Unfortunately, most existing color cycles are not colorblind-friendly. This is an issue since a significant fraction of those viewing a particular plot may be colorblind, especially in fields with diversity shortcomings. This survey was conceived out of frustration with this status quo, in particular with the default color cycle of the Matplotlib plotting library widely use in physics. The technical aspect of this can be resolved by enforcing minimum perceptual distances between colors, both for normal color vision and for various types of simulated color vision deficiencies, a technique that was also used by an earlier effort that created a colorblind-friendly color cycle picker.
The above mentioned technique was used to randomly generate 10 000 color sets each of six, eight, and ten color sets, which have minimum perceptual and lightness distances enforced (see this blog post for details); full deuteranopia, protanopia, and tritanopia simulations were used. However, this leaves the aesthetic aspect, which is where this survey comes in. The goal of this survey is to crowd-source the information needed to generate aesthetically pleasing color cycles that are also colorblind-friendly. Randomly generated color sets and cycles, which have a minimum perceptual distance enforced between colors, are presented for the user to choose the most pleasing one. These data will then be used to train a model to generate aesthetically pleasing color cycles. Additionally, once anonymized, the collected data will be released under a permissive license.
This survey is a project by Matthew Petroff.
If you wish to provide feedback, please leave it on the issue tracker or email it to colorcyclesurvey [at] mpetroff [dot] net.
A first party cookie is used but only for the data collection endpoint. It stores encrypted session information to allow for a stateless server implementation while preventing tampering, e.g., preventing someone from submitting their preferred color cycle many times in an attempt to skew the results. The cookie is deleted when the user’s browser is closed (at least for most browsers).
Web server logs will be kept for security and traffic analysis purposes. These logs are recorded separately from the survey data. They may contains timestamps, IP addresses, and various request header information. They will not be publicly released.
The types of data collected are listed below, as are how they will be used. While an effort was made to ensure that this list is accurate, minor deviations may happen, should the need arise.
Colorblindness information is collected to explore how color vision deficiencies affect how one rates color cycles. These session data will be publicly released. However, if any given category has fewer than 100 associated sessions, it will be classified as “other” in the released data.
Survey response data will be publicly released and linked to the corresponding user session. For each response, these data include the two color sets presented; the rendering mode used to present then, i.e., whether a line chart of scatter plot was displayed; the color set picked; the four color cycles presented; the color cycle picked; and the number of color cycle responses so far in the session. A timestamp will also be recorded with each response, but these timestamps will not be publicly released.
The user’s anonymized IP address is recorded for each request primarily to help filter out responses submitted by bad actors. It may also be used to derive a country code for each session. To anonymize the IP address, the last byte is zeroed in the case of IPv4, and the last four bytes are zeroed in the case of IPv6. The full IP address is not written to disk with survey data.
No IP addresses will be publicly released. Derived country codes or other derived location information may be publicly released, linked to individual sessions. However, if any given country code or location has fewer than 100 associated sessions, it will be classified as “other” in the released data.
The user agent provided by the user’s browser will be recorded for each session. This will be used to help filter out responses submitted by bad actors and to potentially help diagnose issues with certain browsers (and to filter out the data if need be).
Browser type information for major browsers, e.g., Firefox or Chrome, associated with a session will be publicly released. Unusual browsers will be classified as “other” in the released data. Raw user agent information will not be publicly released.
The browser window size rounded to the nearest 100 px will be recorded at the start of each session, as will the window orientation, i.e., whether it is landscape orientation or portrait orientation. This information is recorded as it may prove useful during analysis of the survey results.
Window size information will be used to categorize each session into a screen size category. These screen size classifications will be publicly released.
This work makes use of the color vision deficiency simulation technique detailed in Machado et al. 2009 and the CAM02-UCS color space detailed in Luo & Li 2013. Color set generation made use of Python, Numba, and Colorspacious. This survey makes use of Bulma on the front end (with an extension) and Go on the back end (with Gorilla and Zap).
Back to survey


THE MUSKETEER
Reviewed by Harvey Karten Universal Pictures/Miramax Films Director: Peter Hyams Writer: Gene Quintano, novel "The Three Musketeers" by Alexandre Dumas pere Cast: Catherine Deneuve, Mena Suvari, Stephen Rea, Tim Roth, Screened at: Sony Lincoln Sq. NYC 9/4/01
When Rudyard Kipling exclaimed in 1889, "Oh East is East and West is West and never the twain shall meet," he could not have seen Peter Hyams swashbuckler, "The Musketeer," but somehow he must have known that if director/cinematographer Peter Hyams were to attempt a marriage of the Western swordplay in the classic Dumas pere tale with Eastern oscillations, a swift divorce would follow. For this version of the action drama situated in Seventeenth Century France, Hyams seeks to put his original spin by piggy-backing on the wild success of Ang Lee's "Crouching Tiger, Hidden Dragon," but instead of employing crackerjack choreographer Yuen Wo-Ping-- who performed similar chores on "The Matrix"--he utilizes the talents of the second-tier dance-director Xin-Xin Xiong, whose claims to fame include jobs as stunt-and-action coordinator on "Time and Tide," "The Blacksheep Affair," and "Double Team."
If East does not meet West in "The Musketeer," all would not be lost. Unfortunately, the film is as tasteful and inspiring as a 17th Century French crepe served at Lutece restaurant in the year 2001. Not that swashbuckling is necessarily outdated today, particularly when there's a whole generation of young movie buffs who never had the pleasure of watching Errol Flynn before he deteriorated into the murk and fog of illegal drugs, heavy drinking and chain smoking when still in his forties, or Tyrone Power, who could have used his incredible good looks to bring "Solomon and Sheba" to life had he not died in Madrid while filming the Biblical epic. What's wrong with this version is just about everything: there are narrative gaps, inane performances by actors who mumble their words as though thinking appropriately enough in French but verbalizing in English, poor scripting, an editing nightmare, generic music, lazy direction, and ho-hum choreography.
What should give the Dumas classic--as interpreted in as shallow a manner as possible by Gene Quintano's screenplay-- its verve, its pizazz, its charm would be a more than simply perky performance by the lead actor in the role a guy with aspirations to become the most famous of King Louis XIII's elite guard, D'Artagnan. But when Justin Chambers, spotted for his more appropriate role in Barry Levinson's "Liberty Heights," says the most famous of Dumas's line, "All for one and one for all," the audience would not be blamed for thinking he's talking about the weather. Though he has boyish good looks, he's hardly the magnetic type that would appeal instantly to the equally antiseptic Mena Suvari in the role of the French queen's chambermaid, Francesca, but who was born instead to excel in the more suitable guise of the object of Kevin Spacey's lust in "American Beauty." As Francesca, Ms. Suvari comes across in this modernized adaptation as a liberated woman who, when accidentally spotted naked in her bathtub by a blushing D'Artagnan, teases, "Haven't you ever seen a naked woman before?" Yet she turns flush when D'Artagnan in a moment of forgetfulness appears to her in frontal nudity (his back to us in the audience) and turns around, shocked, though not without some admiration of the man's supposed accoutrements.
"The Musketeer" begins when young D'Artagnan witnesses the violent death of his unarmed father, a former musketeer, in the arms of the vicious Febre (Tim Roth--who is terrific and the only fellow in this film worth watching). Vowing to seek revenge, he gets his chance fourteen years later as a grown man seeking admittance to the legion of the king's guards. "The Musketeer" turns road-and-buddy movie as D'Artagnan begins his odyssey to Paris (the southwestern French town of Sarlat standing for the City of Lights in the 1600's). Meeting up with a less-than-colorful stack of opponents, he cuts his way to the capital, searches out Aramis (Nick Moran), Athos (Jan Gregor Kremp) and Porthos (Steve Speirs), the most elite of the elite guards, finding them demoralized, without commission. Allying up with Francesca, he moves to save the queen--who has been captured by the conscience-less Febre.
You come to a movie like this for swordfights, but instead of seeing an Errol Flynn duplicating his first swashbuckling role in Michael Curtiz's 1935 film "Captain Blood," we get the usual MTV-style editing backed up by David Arnold's incredibly banal score, with the result that we wonder why Mr. Chambers needed to develop his fencing talent for a whole month as he claims to have done. Nor do we quite understand the role of Cardinal Richelieu (Stephen Rea--who was a lot better in his Irish roles such as "Danny Boy" and "Michael Collins and in his element in "The Crying Game"). Worst of all is the role spun out by director Hyams for the great Catherine Deneuve, given first credit despite her minuscule part as the queen of France--who at one point disguises herself as a commoner, plays cards with the unwashed, and knocks over one of her enemies with her bare hands and legs. Deneuve, already smarting from being woefully miscast as a factory worker in Lars von Trier's "Dance in the Dark," does not help her rep any in this travesty.
Go ahead. See the movie, then rent a video of "Captain Blood," and watch how Errol Flynn, also in his first role as a fencer, is shown in a better light fifty-six years ago than Hyams is able to conjure up with all of today's special effects techniques at his disposal.
Rated PG-13. Running time: 98 minutes. (C) 2001 by Harvey Karten<EMAIL_ADDRESS>========== X-RAMR-ID: 29395 X-Language: en X-RT-ReviewID: 248143 X-RT-TitleID: 1109693 X-RT-SourceID: 570 X-RT-AuthorID: 1123
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


The card verification code (CVV2, CVC2, CID, CAV2) should not be stored under any circumstances.
The card verification code should not be stored in order to limit the potential damage in the event of a successful attack. The card verification code is often used for authentication in online transactions but does not need to be stored after the transaction has been processed.
Check the following to make sure they don't include the card verification code:
Identify the storage mechanism used to store the card verification code, such as a program or a database query. Change the storage mechanism so that it does not record the card verification code.


Enrolled in General Scientific Branch, Engineering Sciences orientation, Mathematics Speciality, at the end of which I received the highest qualification of "very good" at the National Exam.
Grades obtained at the National Exam:
(Baccalauréat Général Série S, Spécialité Sciences de l'Ingénieur, Ens. spécialisé Mathématiques)
Enrolled in the Bachelor cycle right after finishing High School in France. The EPFL offered a comprehensive education in Computer Science along with an international opening that remain unmatched by any university in France. As of today, it's ranked 8th best Computer Science university in the world by Times Higher Education ranking
Relevant Couses:
I directly enrolled in the Master Degree program after obtaining my Bachelor Diploma, as I wanted to learn more about Rendering and Computer Graphics to be able to specialize myself in 3D programming, as well as taking on as much projects as possible.
The Mater's Thesis, GPU Tessellation with Compute Shaders, received an eq. 90% grade (5.5/6), and is available here
Relevant Couses:


John Papa
Angular Jump-Start Demos
data binding
ng-repeat
controller and dependency injection
controller as
using jquery
services and factories
$http and ng-class
routes, ng-view, ng-include, ng-if and animations


Rackspace is a hybrid cloud company specializing in dedicated servers and public/private cloud solutions.


Event Location:
University of Iowa - University Capitol Centre
201 S Clinton St
Iowa City, Iowa
Abstract:
Business Intelligence Markup Language (Biml) is an XML language for Microsoft Business Intelligence that can take your Integration Services package development to the next level. Creating template packages added productivity to your Integration Services development effort. If the template design changes after development begins, a fair amount of rework to packages could be needed. See how Biml can help create template packages that can better adapt to changing business needs and allow for more comprehensive design or redesign. This session will be a demo based session that will inspire you to make Biml your number one integration services development tool. Learn how to use Biml scripts to create staging tables and integration services packages. Add metadata to your Biml scripts and really watch the possibilities expand.
Speaker(s): Reeves Smith,
Abstract:
Despite the wealth of analytical technologies available today, 65% of fraud at public companies is detected through tips, management review, or simple accidents. Forensic Analytics combine human intuition and leading-edge technologies, and can provide superior detection methods to significantly improve the detection and investigation of illegal or unethical activities. In this session, we explore Forensic Analytics: a set of techniques we can use to uncover irregularities in financial data. We also gain an understanding of goals of Forensic Analytics: to enable us to find out how — and why — these irregularities exist, and to find out their source(s) — especially when fraudulent activity is suspected. We discuss guiding principles that are key to isolating data anomalies, and outline a standard, repeatable process to Forensic Analytics. Throughout the session, we view examples of how we can employ PowerPivot for Excel to drive Forensic Analytics via various tests and reviews.
Speaker(s): William E Pearson III,
Abstract:
The Analysis Services 2012 Business Intelligence Semantic Model (BISM) unifies Multidimensional (OLAP) and Tabular (relational) options for organizational BI. In this session, BI Architect, SQL Server MVP and Analysis Services Maestro Bill Pearson introduces Microsoft Business Intelligence 2012 and the Business Intelligence Semantic Model ("BISM"). He then overviews the Tabular model, beginning with the creation of a project with SQL Server Data Tools (“SSDT”), and continuing from the data import steps to the creation and management of calculations, measures and Key Performance Indicators (“KPIs”). Finally, he provides insight to the creation and maintenance of perspectives and hierarchies, as well as other considerations involved in working with Tabular.
Speaker(s): William E Pearson III,
Abstract:
The definition of confidence is “belief in oneself and one’s powers or abilities” but the authors of the new book “The Confidence Code” define confidence as “the quality that turns thoughts into actions.” Traditionally men have been found to have much more confidence in themselves than do women. For example, in a study at Hewlett-Packard, men applied for a promotion when they thought they could meet 60% of the qualifications while women applied only when they thought they could meet 100%. Attend this WIT session to learn more about confidence and how it impacts your career and life. To prepare for the session, it is recommended that you complete The Confidence Quiz (http://theconfidencecode.com/confidence-quiz/)
Speaker(s): Kathi Kellenberger,
Abstract:
Do you have multiple databases with distinct workloads running on a single SQL Server Enterprise Edition instance? Have you ever had a runaway process or bad query from one system bring an entire instance to its knees, impacting a wide range of end users? If you answered yes to either of these questions, then come learn about Resource Governor for SQL Server. We’ll spend the first part of this introductory session going over the concepts you will need to know in order to implement Resource Governor successfully. Once we've covered the basics, we’ll spend the rest of the session working through a number of demos, reviewing exciting enhancements to Resource Governor in SQL Server 2014, and discussing scenarios in which you can use Resource Governor in your environment right away.  Learn how you can control them effectively in a multitenant environment, ensuring they are assigned where they need to be.
Speaker(s): Paul Timmerman,
Abstract:
As SQL Server professionals, we have a complicated relationship with Excel-based tools. Rather than broadly paint Excel as friend or foe, why not learn how Power Query Power Pivot can improve the SQL Server solutions you develop? In this session, we’ll cover scenarios where Power Query and Power Pivot can be leveraged to get the most from the proof-of-concept phase of your reporting, ETL, analytics projects. Learn how Power Query can help you test the quality of your data well before the production ETL is deployed. We’ll also cover how Power Pivot can help you visualize the structure and granularity of your data, and why it’s the perfect “gateway drug” for SSAS cube development. If you've ever had a BI project fall flat because “We didn't know what we didn't know” or want to avoid delivering a hundred reports when the data merits ten, this is the session for you!
Speaker(s): Gina Meronek,
Abstract:
Ever encounter a table consisting only of BIGINT, CHAR(255), and NVARCHAR(MAX) columns? Did your gut tell you that this is bad, but you had difficulty explaining why? Did you know that these data type choices can be a real performance killer? Attend this session to learn how database records are stored within SQL Server, and why all data types are not created equal. Armed with that knowledge, we will then explore several performance scenarios that may be impacting your systems right now! When you leave, you will be able to explain to your colleagues why data type choices matter, assess your own systems, and implement some best practices to mitigate these performance killers.
Speaker(s): Andy Yun,
Abstract:
Did you know that SQL Server Availability Groups can be a great solution for disaster recovery? Availability groups have become well known for their high availability capabilities, and for good reason: they work well, they remove some of clustering’s limitations, and they are fairly straightforward to setup. Extending an availability group to multiple sites for disaster recovery becomes more complicated. A lot of moving parts have to come together for it to work properly - SQL Server, Windows, Active Directory, and DNS all get involved in this advanced configuration. In this session, we’ll discuss some of the factors that complicate a multi-site availability group deployment, and we’ll walk through a multi-site deployment so you can see how it’s done.
Speaker(s): Ed Leighton-Dick,
Abstract:
People often dream of becoming a consultant, but what does that actually mean? Is consulting really the right path for you? Many choices are available when deciding to become a consultant, but these options can be overlooked. Contracting, consulting for an established team, going out on your own, or looking to build a larger business are all great options, depending on your vision and future goals. This session will help you ask the right questions to better chose and prepare for your path. We then explore the various realities and strategies of each path. Real-life experiences will be shared to help you make the most informed decision on which path is best for you, and how to accelerate your career as a consultant.
Speaker(s): David Klee,
Abstract:
Virtualizing your top-tier production SQL Servers is not as easy as P2V’ing it. Sometimes allocating more resources to the VM is the wrong approach, and getting it wrong will silently hurt performance. What is the most effective method for determining the ‘right’ amount of resources to allocate? What happens if the workload changes a month from now? The methods for understanding the performance of your mission-critical SQL Servers gathered over the past ten years of SQL Server virtualization will be addressed, and valuable processes for performance statistic collection and analysis will be displayed. Come learn how to properly ‘right-size’ the resources allocated to a VM, improve the performance of your SQL Servers, and keep it maximized well into the future.
Speaker(s): David Klee,
Abstract:
Almost every SQL Developer is familiar with Table Variables and Temporary Tables. While each of these objects represents temporary storage, there are also substantial differences between them. Understanding the differences between Table Variables and Temporary Tables, and the ramifications that those differences cause, is essential to being able to properly select the appropriate object for use in your development tasks. In this code filled session, we’ll discover the differences and similarities of Temporary Tables and Table Variables, dispel some widespread myths about each, and answer the most important questions of them all, "When do I use one or the other and what are the various impacts of doing so?"
Speaker(s): Wayne Sheffield,
Abstract:
SQL Server 2008 has introduced Table compression to the DBA toolkit. We all know there are different kinds of compression available in SQL Server. What some may not know is the subtleties of compression. Such subtleties include that not all Page Compressed tables are entirely page compressed. This session will show you how to reach into the database and discover compression states at the page level. At the lower level, this session will also show how to determine compression settings of objects in the database. Participants will be able to use undocumented commands as well as commands such as PIVOT to derive some interesting information from the database engine.
Speaker(s): Jason Brimhall,
Abstract:
One goal of a DBA is to automate gathering information such as the specifications of all of your SQL Servers. In this session we will show you the basics of the PowerShell language. Then we will move on to how you can use PowerShell to go through a list of servers and grab information like the processor specs, check if the machine is a virtual image, memory size, SQL version, etc. and produce a formatted Excel file with the information.
Speaker(s): Joshuha Owen,
Abstract:
Window functions were first introduced with SQL Server 2005 and enhanced with SQL Server 2012. They enable easy development and great performance…well, sometimes. Learn what you need to know to take full advantage of these features. What you don’t know can hurt you when you are using window functions.
Speaker(s): Kathi Kellenberger,
Abstract:
The modern data platform is more than a server in your data center. It goes far beyond that with the ability to reach beyond your data center to the cloud. Through cloud offerings, you have the ability to grow past your current hardware limitations and deliver data solutions that grow and expand with your data needs. In this white board session, we'll explore cloud offerings for your data platform and how the support the needs of DBA to provide the infrastructure and performance that data platforms demand.
Speaker(s): Jason Strate,
Abstract:
Power Query, a free add-in for Excel 2010 and 2013, will enhance the self-service business intelligence offering from Microsoft. With Power Query the business analysis along with the BI developer can combine and shape data from a wide variety of data sources in a quick and easy manner. This task can enable more time to be spent in analysis and discover and less time build ETL plumbing. This session will demo the ease of the data extraction process in Power Query. We will explore multiple data sources and even modify the language to create a foundation for further exploration into Power Query.
Speaker(s): Reeves Smith,
Abstract:
If you've never queried an XML column you definitely want to attend. While targeted to beginners this isn't a "Just do this" session. After this hour I'd like you to truly understand even subtle nuances of basic query syntax. Seasoned veterans stand a fair chance of learning something new.
Speaker(s): Rick Bielawski,
Abstract:
This is a introductory session on how a DBA and developers can use Execution plans to find performance bottlenecks. This will cover the fundamentals and cover some of the basic techniques that can be used to find hidden performance problems.
Speaker(s): Dave Bland,
Abstract:
This session will cover real world functions that are used for real DBA work. There will be a few slides but mostly demos with actual scripts to help you do your job. I will also introduce some SQLPSX to assist as well. Things like Reading/Changing the following: Permissions, DB Owner maintenance and database space management. We all could use a few standard things in our DBA world of ever changing roles and "I have to have it now" stuff, that Management Studio can get in the way of getting it done faster. Join me for a fun PowerShell hour.
Speaker(s): Ben Miller,
Abstract:
In this session, we’ll discuss Agile BI Methodologies and benefits of rapid prototyping of reports using Microsoft BI Tools like PowerPivot and PowerBI. We will also look at what’s new in the PowerBI preview app and cross-platform and cross-browser support.
Speaker(s): Chaitanya Khaladkar,
Abstract:
Properly managing indexes for a database is a common usse in many environments. When reviewing an index, should it have a single or multiple columns? Should the table be a heap, a clustered index or clustered columnstore index? These considerations are often at the forefront when analyzing your indexes. In this session, we'll look at easy methods for identifying new indexes, we'll review patterns for index consolidation, and discuss how and when to remove indexes. At the end, you'll have a strategy that helps design indexes to improve performance.
Speaker(s): Jason Strate,
Abstract:
Having a good understanding what security features are available and what configurations are considered best practice can be crucial to your company's data security. My experience at many dozens of companies indicates that more than 90% of all database implementations don't follow some of the most fundamental best practices. Learn to view security differently and how key builtin security features can be leveraged to make your systems both more maintainable and more secure.
Speaker(s): Rick Bielawski,
Abstract:
Extended Events were introduced in SQL Server 2008. With SQL 2014, we have seen a significant upgrade to this feature. Join me for a little adventure into the realm of extended events. We will discuss how to use extended events to aid in performance tuning and in day to day administration. We will also explore some background and the architecture of extended events. This is a fast paced session and will be a lot of fun. Attendees will be able to take back several sample XE sessions to help troubleshoot different issues and get to more intimately know their data/environment.
Speaker(s): Jason Brimhall,
Abstract:
This session will take a look at things that you should regularly know and use when coding TSQL. How can you be really friendly to SQL? The items covered will show you things that will help ensure that your code is readable, efficient and maintainable. We will look at query semantics, datatypes, things to avoid as well as how to be super friendly to the SQL Engine and allow things to work well.
Speaker(s): Ben Miller,
Abstract:
AlwaysOn is SQL Server 2012/2014’s High Availability solution. It provides a new standard for mission critical databases and end-to-end business intelligence at a lower total cost of ownership. It provides the required 9S of availability without the total cost and complexity. In this session, we’ll specifically explore high availability databases – Availability Groups. AG is a new feature that enhances and combines database mirroring and log shipping. We’ll demonstrate the setup and failover of multiple databases simultaneously.
Speaker(s): Mark Skiles,
Abstract:
Whether you're a SQL developer or a DBA, a sound understanding of the factors that make a query perform either well or poorly is vital. In this session, you'll learn (through many examples) how to find performance pitfalls in your code and the best ways to mitigate those issues.
Speaker(s): Matt Wigdahl,
Abstract:
There are two kinds of DBAs in the world -- those who have experienced corruption, and those who will. Join me for this session to learn what corruption is, how it can occur, and how to check if your data is corrupt. And if you do find corruption, I will show you how to identify what data is affected using DBCC CHECKDB and DBCC PAGE.
Speaker(s): Frank Gill,
Abstract:
Get to know more about the Microsoft Analytical Platform System and how a MPP system is different than a SMP system. Learn about how the MPP architecture can benefit hundreds of business use-cases and scenarios while providing phenomenal performance gains over a traditional SMP architecture.
Speaker(s): Chaitanya Khaladkar,
This is a list of speakers from the XML Guidebook records. The details and URLs were valid at the time of the event.
LinkedIn: http://www.linkedin.com/in/sqlbek
Contact: http://sqlbek.wordpress.com
Andy Yun is a SentryOne Principal Solutions Engineer and a former Microsoft MVP. He has been working with SQL Server for nearly 20 years as both a Database Developer and Administrator. Leveraging knowledge of SQL Server Internals and extensive experience in highly transactional environments, he strives to make T-SQL leaner and meaner. Andy is extremely passionate about passing knowledge onto others, regularly speaking at User Groups, SQLSaturdays, and PASS Summit. Andy is a co-founder of the Chicago SQL Association, co-Chapter Leader of the Chicago Suburban User Group, and part of the Chicago SQLSaturday Organizing Committee.
LinkedIn: https://www.linkedin.com/in/ginameronek
Contact: http://ginameronek.com
Gina Meronek is a Business Intelligence, Application Architecture, and IT Management professional with 18 years of experience applying the right people and tools to produce genuinely useful technology. She is dedicated to transforming data into information that solves problems via the right system architecture and interactive data visualizations. Gina has been active in the SQL PASS Community for a number of years and is passionate about sharing knowledge with other data geeks in her community. When not glorying in all that Power BI can do, she loves reading, riding her horse, or attending theater with her husband.
LinkedIn: https://www.linkedin.com/in/dbajbrimhall/
Contact: http://jasonbrimhall.info
Jason Brimhall has more than 20 years of experience and has worked with SQL Server 6.5 through SQL Server 2019. He has experience in performance tuning, high transaction environments, and large environments. He is currently a consultant specializing in performance tuning, server analysis, and problem resolution. Jason is a Microsoft Certified Master (MCM) and a Data Platform MVP.
LinkedIn: https://www.linkedin.com/in/richardbielawski
Rick has 35 years experience as a systems, applications and database architect having designed major systems for such institutions as NASDAQ, Bank of America, Blue Cross Blue Shield, Ecolab and Emperex. He holds multiple certifications including MCITP and MCSE in Business Intelligence and Data Platform. Rick currently designs database systems for custom software applications and likes speaking at local user groups and SQLSaturday events.
LinkedIn: http://www.linkedin.com/in/davidaklee
Contact: http://davidklee.net
David Klee is a Microsoft Data Platform MVP and VMware vExpert with a lifelong passion for technology. David spends his days focusing on the convergence of data and infrastructure as the Founder of Heraflux Technologies. His areas of expertise include cloud, virtualization, performance, and business continuity. David speaks at a number of national and regional technology related events, including PASS Summit, VMware VMworld, SQLBits, SQLSaturday events, and many SQL Server User Groups.
LinkedIn: http://www.linkedin.com/in/kathikellenberger
Contact: http://auntkathisql.com
Kathi Kellenberger is the editor of Simple Talk at Redgate and a Data Platform MVP. She has worked with SQL Server for over 20 years and has authored, co-authored, or tech edited over a dozen technical books. Kathi is the co-leader of the PASS Women in Technology Virtual Group and a volunteer at LaunchCode. When Kathi isn’t working, she enjoys spending time with family and friends, cycling, singing, and climbing the stairs of tall buildings. Be sure to check out her courses on Pluralsight.
LinkedIn: http://www.linkedin.com/in/dbaduck/
Contact: https://dbaduck.com
Ben has been a member of the SQL Server Community since 2000. He loves a challenge and has fixed many SQL Servers and helped hundreds of people get more out of their DBA jobs. He is a Data Platform MVP a SQL Server Certified Master (MCM). He has worked at various companies throughout the USA, as well as at Microsoft for 7 years. He is passionate about SQL Server Infrastructure, High Availability, Automation and Integration using SMO and PowerShell. He teaches DBAs how to use PowerShell to do their job and teaches SQL Server Internals. He is @DBAduck all around the web (Twitter, LinkedIn, Facebook, Blog) so let's catch up.
LinkedIn: https://www.linkedin.com/in/dbajbrimhall/
Contact: http://jasonbrimhall.info
Jason Brimhall has more than 20 years of experience and has worked with SQL Server 6.5 through SQL Server 2019. He has experience in performance tuning, high transaction environments, and large environments. He is currently a consultant specializing in performance tuning, server analysis, and problem resolution. Jason is a Microsoft Certified Master (MCM) and a Data Platform MVP.
LinkedIn: http://http://www.linkedin.com/profile/view?id=22766305amp;trk=tab_pro
Contact: http://skreebydba.com/
Frank Gill is a Senior Data Engineer at Concurrency With 21 years of IT experience, the first 8 as a mainframe programmer, he has developed a love of all things internal. Over the past several years, he has worked extensively with SQL Server solution in Azure, including Managed Instance. When not administering databases or geeking out on internals, Frank volunteers at the Art Institute of Chicago and reads voraciously.
LinkedIn: http://www.linkedin.com/in/eleightondick
Contact: http://www.edleightondick.com
Ed Leighton-Dick is a Microsoft MVP, SQL Server performance and architecture specialist, and Founder/Principal Consultant of Kingfisher Technologies. He is a frequent volunteer with PASS, including current roles as a Regional Mentor, co-leader of I-380 PASS local group, and co-leader of the HA/DR virtual group. He can often be found teaching sessions at local, regional, and national events, including user groups, SQLSaturday, and PASS Summit.
LinkedIn: http://www.linkedin.com/in/WayneSheffield
Contact: http://blog.waynesheffield.com/wayne
Wayne Sheffield, a Microsoft Certified Master in SQL Server and Microsoft Most Valuable Professional, started working with xBase databases in the late 80’s. With over 25 years in IT, he has worked with SQL Server (since 6.5 in the late 90’s) in various dev/admin roles, with an emphasis in performance tuning. He is the author of several articles at www.sqlservercentral.com, a co-author of “SQL Server T-SQL Recipes”, and enjoys sharing his knowledge by presenting at SQL events worldwide and blogging at http://blog.waynesheffield.com/wayne
LinkedIn: https://www.linkedin.com/e/fpf/252170891
Contact: https://mvp.support.microsoft.com/profile=02C5CD07-7511-4151-A678-3A4A3451F85E
Bill Pearson created Island Technologies Inc. in 1997, and has developed a large and diverse customer base since. Bill#39;s background as a CPA, Internal Auditor, Management Accountant, and SQL Server MVP (BI) enables him to provide value to clients as a liaison between Accounting / Finance and Information Services. Bill has implemented enterprise business intelligence systems over the years for many Fortune 500 companies and focuses his practice upon the integrated Microsoft Business Intelligence
LinkedIn: http://www.linkedin.com/in/davidaklee
Contact: http://davidklee.net
David Klee is a Microsoft Data Platform MVP and VMware vExpert with a lifelong passion for technology. David spends his days focusing on the convergence of data and infrastructure as the Founder of Heraflux Technologies. His areas of expertise include cloud, virtualization, performance, and business continuity. David speaks at a number of national and regional technology related events, including PASS Summit, VMware VMworld, SQLBits, SQLSaturday events, and many SQL Server User Groups.
LinkedIn: https://www.linkedin.com/in/richardbielawski
Rick has 35 years experience as a systems, applications and database architect having designed major systems for such institutions as NASDAQ, Bank of America, Blue Cross Blue Shield, Ecolab and Emperex. He holds multiple certifications including MCITP and MCSE in Business Intelligence and Data Platform. Rick currently designs database systems for custom software applications and likes speaking at local user groups and SQLSaturday events.
Contact: http://blog.gnetgroup.com
Chaitanya is a Solutions Architect with GNet Group, a Microsoft Gold Certified Data Analytics and Collaboration partner. He has over 10 years of in-depth experience leading and architecting solutions in areas of Data Analytics/BI, Data Governance amp; Master Data, and Collaborative Business Applications.
LinkedIn: http://www.linkedin.com/in/reevessmithiii/
Contact: http://reevessmith.wordpress.com
Reeves Smith, owner and principal architect of Macer Consulting, is passionate about applying data technologies that empower organizations. Reeves wields his knowledge and experience to lead, design, architect, and teach, working with both data center and business project teams. He approaches every project by first understanding the organization’s business challenges, and then developing a unique approach that targets those business needs accurately and effectively. Reeves Smith has more than 20 years of experience working on the SQL Server stack. He is a Microsoft Data Platform MVP and Microsoft Certified Master, and regularly delivers technical presentations at international, regional, and local conferences and user groups.
Contact: http://blog.gnetgroup.com
Chaitanya is a Solutions Architect with GNet Group, a Microsoft Gold Certified Data Analytics and Collaboration partner. He has over 10 years of in-depth experience leading and architecting solutions in areas of Data Analytics/BI, Data Governance amp; Master Data, and Collaborative Business Applications.
LinkedIn: https://www.linkedin.com/in/dave-bland-sql-server
Contact: https://www.davebland.com
Over 20 years of SQL Server experience that includes being a DBA, BI development and Application development using VB.NET. Dave currently is the Manager of the DBA team at Stericycle. Dave is a Friend of Red-Gate for 2019. He is a frequent presenter at SQLSaturday events and user groups around the country. Has been teaching SQL Server since version 2000 and is the SQL Server instructor at Harper College in Palatine, IL. Current certifications include: • Microsoft Certified Trainer • MCTS: SQL Server 2008, Implementation and Maintenance • MCTS: SQL Server 2008, BI Development and Maintenance • MCSA: SQL Server 2008 • MCSA: SQL Server 2016 • MCSE: SQL Server 2016 - BI • MCDBA: SQL Server 2000 • MCSD • MCSE: Data Management and Analytics
LinkedIn: ?https://www.linkedin.com/in/insightstoaction?
Mark Skiles is a (BI) Solutions Architect with Architect IT in Des Moines, IA. He and his wife live in Carlisle, IA. He is an international consultant and has worked for EDS in Taiwan and traveled extensively in China and Southeast Asia. He has over 28 years of technology experience and has worked with SQL server since 1995. His areas of interest are designing and integrating large scale databases and continual improvement in the presentation of data – ways to turn data into decisions.
Contact: http://www.bitsbyteswords.com/
A Senior Business Intelligence Consultant with Pragmatic Works by day and all-around geek at all times. I enjoy working with data technologies as well as dabbling in other areas such as web programming and the Google APIs.
LinkedIn: http://www.linkedin.com/in/jasonstrate/
Contact: http://www.jasonstrate.com/
Jason Strate is a SQL Server Solutions Architect with Pragmatic Works. He is also a Microsoft SQL Server MVP and MCM. He has over 15 years of experience developing, architecting, and managing data platforms. Jason writes, blogs, and presents on SQL Server.
LinkedIn: https://www.linkedin.com/pub/matt-wigdahl/65/643/217
Contact: http://wigdahl.net
Matt Wigdahl is Director of Software Quality at ScriptPro LLC and a SQL Server MCP. He has configured, developed with, and optimized queries for SQL Server for over 15 years, on both sides of the developer / DBA line.
Contact: http://blogs.lessthandot.com/index.php/author/mndba/
Paul is a Microsoft SQL Server MVP and the Lead SQL Server DBA at Hennepin County Medical Center in Minneapolis, Minnesota. Paul has fifteen years of experience in database administration and currently the Chapter Leader of the Minnesota SQL Server User Group, PASSMN. Paul is an active member of the PASS community and routinely speaks at user group meetings and SQLSaturday conferences.
LinkedIn: http://www.linkedin.com/in/jasonstrate/
Contact: http://www.jasonstrate.com/
Jason Strate is a SQL Server Solutions Architect with Pragmatic Works. He is also a Microsoft SQL Server MVP and MCM. He has over 15 years of experience developing, architecting, and managing data platforms. Jason writes, blogs, and presents on SQL Server.
LinkedIn: http://www.linkedin.com/in/reevessmithiii/
Contact: http://reevessmith.wordpress.com
Reeves Smith, owner and principal architect of Macer Consulting, is passionate about applying data technologies that empower organizations. Reeves wields his knowledge and experience to lead, design, architect, and teach, working with both data center and business project teams. He approaches every project by first understanding the organization’s business challenges, and then developing a unique approach that targets those business needs accurately and effectively. Reeves Smith has more than 20 years of experience working on the SQL Server stack. He is a Microsoft Data Platform MVP and Microsoft Certified Master, and regularly delivers technical presentations at international, regional, and local conferences and user groups.
LinkedIn: http://www.linkedin.com/in/kathikellenberger
Contact: http://auntkathisql.com
Kathi Kellenberger is the editor of Simple Talk at Redgate and a Data Platform MVP. She has worked with SQL Server for over 20 years and has authored, co-authored, or tech edited over a dozen technical books. Kathi is the co-leader of the PASS Women in Technology Virtual Group and a volunteer at LaunchCode. When Kathi isn’t working, she enjoys spending time with family and friends, cycling, singing, and climbing the stairs of tall buildings. Be sure to check out her courses on Pluralsight.
LinkedIn: https://www.linkedin.com/e/fpf/252170891
Contact: https://mvp.support.microsoft.com/profile=02C5CD07-7511-4151-A678-3A4A3451F85E
Bill Pearson created Island Technologies Inc. in 1997, and has developed a large and diverse customer base since. Bill#39;s background as a CPA, Internal Auditor, Management Accountant, and SQL Server MVP (BI) enables him to provide value to clients as a liaison between Accounting / Finance and Information Services. Bill has implemented enterprise business intelligence systems over the years for many Fortune 500 companies and focuses his practice upon the integrated Microsoft Business Intelligence
LinkedIn: http://www.linkedin.com/in/dbaduck/
Contact: https://dbaduck.com
Ben has been a member of the SQL Server Community since 2000. He loves a challenge and has fixed many SQL Servers and helped hundreds of people get more out of their DBA jobs. He is a Data Platform MVP a SQL Server Certified Master (MCM). He has worked at various companies throughout the USA, as well as at Microsoft for 7 years. He is passionate about SQL Server Infrastructure, High Availability, Automation and Integration using SMO and PowerShell. He teaches DBAs how to use PowerShell to do their job and teaches SQL Server Internals. He is @DBAduck all around the web (Twitter, LinkedIn, Facebook, Blog) so let's catch up.
The following is a list of sponsors that helped fund the event.


Flux using Redux
Follow along: github.com/MichaelReiter/ReduxTalk
- Redux is a predictable state container for JavaScript apps
Summary
- Whenever a user interacts with a view, an action is dispatched
- Stores containing the application's data update the affected views
Redux simplifies Flux
- Components are passed callback functions as props
- Callbacks create and dispatch actions whenever a UI event is triggered
- Actions are processed, computing the updated state
- State is kept immutable
- State is saved in a single store serving the entire application
- Components are rerendered as necessary, receiving updated state as props
Unidirectional Data Flow
- Easy to reason about application state
Powerful State Tree
- Immutable state and pure reducers allow trivial time travel
Hot Reloading
- Logic can be updated on the fly without affecting state
Actions
- Objects describing an intended state update
- Must contain a type field describing the update
- Can otherwise take any shape
- The only way store changes can be triggered
- Should be dispatched whenever a user interaction occurs
Reducers
- Process actions
- Pure functions (no side effects)
- (state, action) => new state
Store
- Large nested object for keeping track of application state
- Only one store in Redux
- Root reducer composed of smaller reducers which can independently manipulate state
- Similar to composing React components
Official Documentation
- Solid instructional material
Link
- Install Git (if necessary)
Link
- Clone this repository
$ git clone git@github.com:MichaelReiter/ReduxTalk.git
- Install Node (if necessary)
Link
- Navigate inside directory
$ cd ReduxTalk/sample\ app/
- Install dependencies
$ npm install
- Start the app
$ npm start
Todo List
- Action types are constants
- Uses action creator functions to dispatch actions
- Container components linked to store, dispatch actions
- Dumb components simply render data
Thanks for listening!