{% extends "Default/default.html" %} {% block content %}
Build a system that toggles a relay on and off when the touch sensor is tapped. The pins on the connectors G1 through G5 are connected to GPIO pins on the baseboard and can be directly controlled from Linux. In this project, the application reads the state of the touch sensor from GPIO-AB on connector GAB, and toggles the relay by driving GPIO-E on connector G2. Each time the sensors is tapped, the relay will toggle between on and off. The GPIO pins E-L cannot be used by the sensor mezzanine examples that use sensors to provide input, like the touch sensor. These GPIO pins are being used by the bitstream to connect the MIPI camera sensor. For more information on the Grove Sensor Kit please visit Grover Starter Kit.


- Available Since
- 1.4-M3
GET /browseService/artifactAvailable/{g}/{a}/{v}
verify if an artifact is available locally if not download from proxies will be try
- Available Since
- 1.4-M3
Request Parameters
| name |
type |
description |
default |
| a |
path |
|
n/a |
| g |
path |
|
n/a |
| v |
path |
|
n/a |
| repositoryId |
query |
|
n/a |
Response Body
| media type |
data type |
| application/json |
(custom)
|
| application/xml |
boolean
(XML) |
- Available Since
- 1.4-M4
GET /browseService/artifactAvailable/{g}/{a}/{v}/{c}
verify if an artifact is available locally if not download from proxies will be try
- Available Since
- 1.4-M4
Request Parameters
| name |
type |
description |
default |
| a |
path |
|
n/a |
| c |
path |
|
n/a |
| g |
path |
|
n/a |
| v |
path |
|
n/a |
| repositoryId |
query |
|
n/a |
Response Body
| media type |
data type |
| application/json |
(custom)
|
| application/xml |
boolean
(XML) |
GET /browseService/artifactContentEntries/{g}/{a}/{v}
Request Parameters
| name |
type |
description |
default |
| a |
path |
|
n/a |
| g |
path |
|
n/a |
| v |
path |
|
n/a |
| c |
query |
|
n/a |
| p |
query |
|
n/a |
| repositoryId |
query |
|
n/a |
| t |
query |
|
n/a |
Response Body
| media type |
data type |
| application/json |
(custom)
|
| application/xml |
list of artifactContentEntry
(XML) |
GET /browseService/artifactContentText/{g}/{a}/{v}
if path is empty content of the file is returned (for pom view)
Request Parameters
| name |
type |
description |
default |
| a |
path |
|
n/a |
| g |
path |
|
n/a |
| v |
path |
|
n/a |
| c |
query |
|
n/a |
| p |
query |
|
n/a |
| repositoryId |
query |
|
n/a |
| t |
query |
|
n/a |
Response Body
| media type |
data type |
| application/json |
(custom)
|
| application/xml |
artifactContent
(XML) |
GET /browseService/artifactDownloadInfos/{g}/{a}/{v}
Request Parameters
| name |
type |
description |
default |
| a |
path |
|
n/a |
| g |
path |
|
n/a |
| v |
path |
|
n/a |
| repositoryId |
query |
|
n/a |
Response Body
| media type |
data type |
| application/json |
(custom)
|
| application/xml |
list of artifact
(XML) |
- Available Since
- 1.4-M3
GET /browseService/artifacts/{r}
return List of all artifacts from this repository
- Available Since
- 1.4-M3
Request Parameters
| name |
type |
description |
default |
| r |
path |
|
n/a |
Response Body
| media type |
data type |
| application/json |
(custom)
|
| application/xml |
list of artifact
(XML) |
- Available Since
- 2.2
- Available Since
- 2.2
- Available Since
- 2.2
GET /browseService/artifactsByProperty/{key}/{value}
Return List of artifacts from this repository with property key matching value.
If repository is not provided the search runs in all repositories.
- Available Since
- 2.2
Request Parameters
| name |
type |
description |
default |
| key |
path |
|
n/a |
| value |
path |
|
n/a |
| repositoryId |
query |
|
n/a |
Response Body
| media type |
data type |
| application/json |
(custom)
|
| application/xml |
list of artifact
(XML) |
GET /browseService/browseGroupId/{groupId}
Request Parameters
| name |
type |
description |
default |
| groupId |
path |
groupId to browse |
n/a |
| repositoryId |
query |
optionnal (repository to browse if null all available user repositories are used) |
n/a |
Response Body
| media type |
data type |
| application/json |
(custom)
|
| application/xml |
browseResult
(XML) |
GET /browseService/dependees/{g}/{a}/{v}
List of artifacts using the artifact passed in parameter.
Request Parameters
| name |
type |
description |
default |
| a |
path |
|
n/a |
| g |
path |
|
n/a |
| v |
path |
|
n/a |
| repositoryId |
query |
|
n/a |
Response Body
| media type |
data type |
| application/json |
(custom)
|
| application/xml |
list of artifact
(XML) |
POST /browseService/importMetadata
Request Parameters
| name |
type |
description |
default |
| repository |
query |
|
n/a |
Response Body
| media type |
data type |
| application/xml |
boolean
(XML) |
GET /browseService/rootGroups
Request Parameters
| name |
type |
description |
default |
| repositoryId |
query |
|
n/a |
Response Body
| media type |
data type |
| application/json |
(custom)
|
| application/xml |
browseResult
(XML) |
- Available Since
- 2.2
GET /browseService/searchArtifacts/{key}/{text}
Search artifacts with the property specified by key matching text. If repository is not provided the search runs
in all repositories. If exact is true only the artifacts whose property match exactly are returned.
- Available Since
- 2.2
Request Parameters
| name |
type |
description |
default |
| key |
path |
|
n/a |
| text |
path |
|
n/a |
| exact |
query |
|
n/a |
| repositoryId |
query |
|
n/a |
Response Body
| media type |
data type |
| application/json |
(custom)
|
| application/xml |
list of artifact
(XML) |
- Available Since
- 2.2
GET /browseService/searchArtifacts/{text}
Search artifacts with any property matching text. If repository is not provided the search runs in all
repositories. If exact is true only the artifacts whose property match exactly are returned.
- Available Since
- 2.2
Request Parameters
| name |
type |
description |
default |
| text |
path |
|
n/a |
| exact |
query |
|
n/a |
| repositoryId |
query |
|
n/a |
Response Body
| media type |
data type |
| application/json |
(custom)
|
| application/xml |
list of artifact
(XML) |
GET /browseService/treeEntries/{g}/{a}/{v}
return the dependency Tree for an artifacts
the List result has only one entry
Request Parameters
| name |
type |
description |
default |
| a |
path |
|
n/a |
| g |
path |
|
n/a |
| v |
path |
|
n/a |
| repositoryId |
query |
|
n/a |
Response Body
| media type |
data type |
| application/json |
(custom)
|
| application/xml |
list of treeEntry
(XML) |
GET /browseService/userRepositories
Response Body
| media type |
data type |
| application/json |
(custom)
|
| application/xml |
list of managedRepository
(XML) |
GET /browseService/versionsList/{g}/{a}
Request Parameters
| name |
type |
description |
default |
| a |
path |
|
n/a |
| g |
path |
|
n/a |
| repositoryId |
query |
|
n/a |
Response Body
| media type |
data type |
| application/json |
(custom)
|
| application/xml |
versionsList
(XML) |


Activity ID Inventory List
The Activity ID Inventory List is a spreadsheet containing the Activity IDs used for each project order to avoid causing Activity ID collisions by accidentally creating and using the same Activity IDs for different activities. The Activity ID inventory list is a required deliverable for all xAPI content. Click the download button below to view the example list and populate it with all Activity IDs used for your project.


{{ if .Site.Params.one_signal_id }}{{ partial "body/scripts/onesignal.html" . }}{{ end }} {{ partial "body/scripts/service-worker.html" . }}


{% extends "social/base/register_snippet.html" %} {% block social %} Sign up with Twitter {% endblock social %}


Contents
This section is non-normative.
In this tutorial, we show how easy it can be to design simple style sheets. For this tutorial, you will need to know a little HTML (see [HTML4]) and some basic desktop publishing terminology.
We begin with a small HTML document:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">   <TITLE>Bach's home page</TITLE>
Bach's home page

Johann Sebastian Bach was a prolific composer.
To set the text color of the H1 elements to red, you can write the following CSS rules:
h1 { color: red }
A CSS rule consists of two main parts: selector ('h1') and declaration ('color: red'). In HTML, element names are case-insensitive so 'h1' works just as well as 'H1'. The declaration has two parts: property name ('color') and property value ('red'). While the example above tries to influence only one of the properties needed for rendering an HTML document, it qualifies as a style sheet on its own. Combined with other style sheets (one fundamental feature of CSS is that style sheets are combined), the rule will determine the final presentation of the document.
The HTML 4 specification defines how style sheet rules may be specified for HTML documents: either within the HTML document, or via an external style sheet. To put the style sheet into the document, use the STYLE element:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">   <TITLE>Bach's home page</TITLE>
Bach's home page

Johann Sebastian Bach was a prolific composer.
For maximum flexibility, we recommend that authors specify external style sheets; they may be changed without modifying the source HTML document, and they may be shared among several documents. To link to an external style sheet, you can use the LINK element:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">   <TITLE>Bach's home page</TITLE> <LINK rel="stylesheet" href="bach.css" type="text/css">
Bach's home page

Johann Sebastian Bach was a prolific composer.
The LINK element specifies:
To show the close relationship between a style sheet and the structured markup, we continue to use the STYLE element in this tutorial. Let's add more colors:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">   <TITLE>Bach's home page</TITLE>
Bach's home page

Johann Sebastian Bach was a prolific composer.
The style sheet now contains four rules: the first two set the color and background of the BODY element (it's a good idea to set the text color and background color together), while the last two set the color and the background of the H1 element. Since no color has been specified for the P element, it will inherit the color from its parent element, namely BODY. The H1 element is also a child element of BODY but the second rule overrides the inherited value. In CSS there are often such conflicts between different values, and this specification describes how to resolve them.
CSS 2.1 has more than 90 properties, including 'color'. Let's look at some of the others:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">   <TITLE>Bach's home page</TITLE>
Bach's home page

Johann Sebastian Bach was a prolific composer.
The first thing to notice is that several declarations are grouped within a block enclosed by curly braces ({...}), and separated by semicolons, though the last declaration may also be followed by a semicolon.
The first declaration on the BODY element sets the font family to "Gill Sans". If that font is not available, the user agent (often referred to as a "browser") will use the 'sans-serif' font family which is one of five generic font families which all users agents know. Child elements of BODY will inherit the value of the 'font-family' property.
The second declaration sets the font size of the BODY element to 12 points. The "point" unit is commonly used in print-based typography to indicate font sizes and other length values. It's an example of an absolute unit which does not scale relative to the environment.
The third declaration uses a relative unit which scales with regard to its surroundings. The "em" unit refers to the font size of the element. In this case the result is that the margins around the BODY element are three times wider than the font size.
This section is non-normative.
CSS can be used with any structured document format, for example with applications of the eXtensible Markup Language [XML10]. In fact, XML depends more on style sheets than HTML, since authors can make up their own elements that user agents do not know how to display.
Here is a simple XML fragment:

 <HEADLINE>Fredrick the Great meets Bach</HEADLINE> <AUTHOR>Johann Nikolaus Forkel</AUTHOR> <PARA> One evening, just as he was getting his <INSTRUMENT>flute</INSTRUMENT> ready and his musicians were assembled, an officer brought him a list of the strangers who had arrived. </PARA>

To display this fragment in a document-like fashion, we must first declare which elements are inline-level (i.e., do not cause line breaks) and which are block-level (i.e., cause line breaks).
INSTRUMENT { display: inline } ARTICLE, HEADLINE, AUTHOR, PARA { display: block }
The first rule declares INSTRUMENT to be inline and the second rule, with its comma-separated list of selectors, declares all the other elements to be block-level. Element names in XML are case-sensitive, so a selector written in lowercase (e.g., 'instrument') is different from uppercase (e.g., 'INSTRUMENT').
One way of linking a style sheet to an XML document is to use a processing instruction:
<?xml-stylesheet type="text/css" href="bach.css"?>
 <HEADLINE>Fredrick the Great meets Bach</HEADLINE> <AUTHOR>Johann Nikolaus Forkel</AUTHOR> <PARA> One evening, just as he was getting his <INSTRUMENT>flute</INSTRUMENT> ready and his musicians were assembled, an officer brought him a list of the strangers who had arrived. </PARA>

A visual user agent could format the above example as:
Notice that the word "flute" remains within the paragraph since it is the content of the inline element INSTRUMENT.
Still, the text is not formatted the way you would expect. For example, the headline font size should be larger than then the rest of the text, and you may want to display the author's name in italic:
INSTRUMENT { display: inline } ARTICLE, HEADLINE, AUTHOR, PARA { display: block } HEADLINE { font-size: 1.3em } AUTHOR { font-style: italic } ARTICLE, HEADLINE, AUTHOR, PARA { margin: 0.5em }
A visual user agent could format the above example as:
Adding more rules to the style sheet will allow you to further describe the presentation of the document.
This section up to but not including its subsections is non-normative.
This section presents one possible model of how user agents that support CSS work. This is only a conceptual model; real implementations may vary.
In this model, a user agent processes a source by going through the following steps:
Part of the calculation of values depends on the formatting algorithm appropriate for the target media type. For example, if the target medium is the screen, user agents apply the visual formatting model.
Note that the CSS user agent does not alter the document tree during this phase. In particular, content generated due to style sheets is not fed back to the document language processor (e.g., for reparsing).
For all media, the term canvas describes "the space where the formatting structure is rendered." The canvas is infinite for each dimension of the space, but rendering generally occurs within a finite region of the canvas, established by the user agent according to the target medium. For instance, user agents rendering to a screen generally impose a minimum width and choose an initial width based on the dimensions of the viewport. User agents rendering to a page generally impose width and height constraints. Aural user agents may impose limits in audio space, but not in time.
CSS 2.1 selectors and properties allow style sheets to refer to the following parts of a document or user agent:
This section is non-normative.
CSS 2.1, as CSS2 and CSS1 before it, is based on a set of design principles:
Forward and backward compatibility. CSS 2.1 user agents will be able to understand CSS1 style sheets. CSS1 user agents will be able to read CSS 2.1 style sheets and discard parts they do not understand. Also, user agents with no CSS support will be able to display style-enhanced documents. Of course, the stylistic enhancements made possible by CSS will not be rendered, but all content will be presented.
Complementary to structured documents. Style sheets complement structured documents (e.g., HTML and XML applications), providing stylistic information for the marked-up text. It should be easy to change the style sheet with little or no impact on the markup.
Vendor, platform, and device independence. Style sheets enable documents to remain vendor, platform, and device independent. Style sheets themselves are also vendor and platform independent, but CSS 2.1 allows you to target a style sheet for a group of devices (e.g., printers).
Maintainability. By pointing to style sheets from documents, webmasters can simplify site maintenance and retain consistent look and feel throughout the site. For example, if the organization's background color changes, only one file needs to be changed.
Simplicity. CSS is a simple style language which is human readable and writable. The CSS properties are kept independent of each other to the largest extent possible and there is generally only one way to achieve a certain effect.
Network performance. CSS provides for compact encodings of how to present content. Compared to images or audio files, which are often used by authors to achieve certain rendering effects, style sheets most often decrease the content size. Also, fewer network connections have to be opened which further increases network performance.
Flexibility. CSS can be applied to content in several ways. The key feature is the ability to cascade style information specified in the default (user agent) style sheet, user style sheets, linked style sheets, the document head, and in attributes for the elements forming the document body.
Richness. Providing authors with a rich set of rendering effects increases the richness of the Web as a medium of expression. Designers have been longing for functionality commonly found in desktop publishing and slide-show applications. Some of the requested rendering effects conflict with device independence, but CSS 2.1 goes a long way toward granting designers their requests.
Alternative language bindings. The set of CSS properties described in this specification form a consistent formatting model for visual and aural presentations. This formatting model can be accessed through the CSS language, but bindings to other languages are also possible. For example, a JavaScript program may dynamically change the value of a certain element's 'color' property.
Accessibility. Several CSS features will make the Web more accessible to users with disabilities:
Note. For more information about designing accessible documents using CSS and HTML, see [[-WCAG20]].


Electronic Component Soldering
Carlos Amaro<EMAIL_ADDRESS>OEDK Engineering Design Technician
The sheer thought of soldering small electronic components may seem a bit frightening to some, however this may help you to avoid some common pitfalls. This guide is by no means “the bible” when it comes to soldering, however it will provide you with some helpful tips in soldering components. Some of you may have to solder circuit boards, wires, and or switches during a project and this will help to guide you.
Please bear in mind that soldering irons and guns get extremely hot and can burn fingers, wires, insulation, plastic and components. Keep in mind all lab safety rules and wear safety glasses when soldering. Also remember that solder contains lead so wash your hands when you are finished. Try to avoid breathing the smoke from soldering as well.
Determine the Job
Look at what the scope of the job will be; will it be surface mount or thru hole, what type of wire is being used, am I making connectors or using switches? All of these things will have a direct effect on the soldering techniques that you use. The size of the components will determine the tip size for your soldering iron. Obviously you would not want to use the largest tip available for soldering a small capacitor, nor would you use the smallest tip to solder heavy gauge wire either. Be careful to choose the right size tip, because once the iron has been heated, it will take a while to cool off before the tip can be changed.
Soldering iron and various tips.
Different
electronic components.
Component
Preparation
Examine the component leads and foil runs on the board carefully and you will find that they probably need to be cleaned. Over time the leads can oxidize, but this can be removed with a pencil eraser. Just rub the eraser over the leads or foil runs and it will clean them off. You can also use isopropyl alcohol and a Q-tip to clean them as well, but the eraser trick works just as well. Be sure to clean off the eraser rubbings when done.
If your soldering involves using wires, then be sure to use the correct wire type and gauge. You may want to consider whether or not the wires need to be flexible or not. If yes, then you will need to use stranded wire. If you need to solder the wire to the board or to a connector, you should “tin” the tip of the wire first. Here’s how to do it: start by stripping back a bit of the insulation, not too much though. Apply a little bit of flux to the end of the wire that you want to “tin”. It is a resin that creates a quick heat transfer condition. Put a little bit of solder on the tip of the iron and then apply the tip to the wire in a gentle back and forth manner. If done correctly, the solder will flow from the iron and get sucked up into the wire strands to make them solid. This does not mean that the solder is so thick on the wire that it appears to be one solid mass. A good indicator of a well tinned wire is that you can still see the stranding of the wire through the solder. This will make the soldering of the stranded wire to a component, such as a switch, much easier to do. Be careful, if you hold the iron to the wire too long, you will cause the insulation to melt or the “tinning” to run up under the insulation; either one is not good. You can also get a good burn out of it too.
Tinning a wire is easily done.
Component Layout
It has been my experience that it helps to lay out the components on the board before soldering anything in place. This will allow you to see how the components will physically look on the board. It will also let you to move things around before you make anything fixed. Keep in mind that your project board may have built in foil runs so make sure to utilize them effectively. I personally like to make power and ground rails so that they can be tapped from various points on the board.
Note how the components are arranged neatly.
You can use a pair of small needle nose pliers to make nice bends on component leads. This will help keep the circuit looking clean and neat. Make sure to position components carefully on you board. Try and keep the components equidistant from the solder junctions. Also remember that you can change the orientation of some components, like resistors, in order to save space.
Component lead formed with pliers.
Soldering Iron
Preparation
Once you have decided on the tip to use, install it on the soldering iron by unscrewing the retaining cover on the iron. Once the cover has been removed, gently pull the tip out of the end of the iron and replace it with the one you need to use. Re-install the retaining cover taking care not to cross thread the cover on the iron.
Soldering iron with retaining cover and tip removed.
Now that the iron has the correct tip installed, make sure the unit is turned off before you plug it in. Power up the unit and set the temperature control knob to about 600°F. You will need to wet (but don’t soak) the sponge that is provided with the unit. It will be used to help clean the tip of the iron.
Note the wet sponge for iron cleaning.
Once the iron has reached temperature, you can clean the tip of the iron by gently wiping it on the sponge. Don’t leave it touching the sponge too long or it will burn and stick to the iron. You can repeat the process if the iron is still not clean, or try adding some solder to the tip and then try again. As long as there appears to be carbon coating the tip, it will not be clean and make soldering difficult if not impossible. DO NOT UNDER ANY CIRCUMSTANCES TRY TO USE AN ABRASIVE SUCH A SANDPAPER TO CLEAN THE TIP OF THE IRON. It will permanently damage the tip.
Now apply a bit of solder to the end of the iron and leave it there. This will act as a “bridge” to help transfer heat to the surfaces to be soldered.
Soldering…At Last
Now that the soldering iron and components are ready, you can solder them to your board. Start by placing your first component on the board in its proper location and orientation. If you are soldering components on a thru hole project board, you will need to be able to turn the boar over to solder the leads. You can use some tape to hold the component in place while the board is turned over.
Don’t worry about trimming the excess lead length off for now; you can do it after the leads are soldered. One thing you can do to help solder components is use flux. You can apply it sparingly to the leads before you solder them to the board.
Use the iron to apply heat (sparingly) to the surfaces to be soldered. Try to heat them evenly so that the solder will bind to both at the same time. Remember to apply the solder to the component and not the iron, although you can get the solder to flow from the tip of the iron to the leads. Be sure to use the correct size of solder since it comes in a wide variety. You may have to adjust the temperature of you iron to help facilitate the process. Keep going and before you know it, all your components will be in place.
Soldering a thru-hole component
Soldering…The
Good, The Bad and The Ugly
So, how can you tell if your soldering job met any of the three above mentioned conditions? You can do this by examining your board/work carefully. See if you find any of the following conditions:
The Good:
A good solder connection for a thru-hole component will have a shiny appearance and will have fillets from the surface of the board to the component leads. It will not have too much solder and have clean separation (no spikes of solder). The component leads will be neatly trimmed, near the surface of the board.
A good solder joint on the right, a bad one on the left.
The one on the left has too much solder.
Good component placement is also a plus. Try to have the components flush with the surface of the board. The component leads are bent at a nice 90° and the components are not all right on top of each other. Any wires that have been added to the board are cut to length and soldered properly. Any stranded wire should have the leads “tinned”.
Note the nice clean wiring; components are neatly installed
and
flush mounted on the surface of the board.
The Bad:
The “cold” solder joint; this condition can be tricky. It will be dull in appearance and not have the usual nice, clean shiny surface. This can also be an indication of the lack of solder flow to one of the surfaces. Try to apply a little bit of heat to the junction to see if you can get them to flow together; maybe use some flux to help.
Hard to see, but they are defective; note how the
solder
does not make a good connection with the board.
“The bigger the glob, the better the job” is the only way to describe this condition.  It can very easily lead to a shorting condition and burn up your circuitry. This can be remedied by using either a solder sucker, which is a manually operated vacuum pump or wicking which will “suck” up the solder. The wicking is trickier to use, but still effective. To use wicking, a copper mesh, you will need to pull a little bit out and then try to spread the strands apart at the end a bit. Then, place the wicking over the area where you want to remove the solder and apply the iron.  If you are holding the wicking in place with your fingers, be careful because it transfers heat quite well and will get hot enough to burn you.
Good, but too much solder.
Use solder wick or the manual solder sucker to remedy.
The opposite condition of “the bigger the glob” is not enough solder. You should not have any gaps between the component leads and the board surface. Add a bit more solder, but avoid the previous mentioned condition.
The left lead of the 3-lead component lacks solder.
The Ugly:
Measling is a condition that occurs when the iron has been left on the PCB (printed circuit board) too long. The iron has heated the surface of the board so much that small white spots have appeared on the surface. This is an especially bad condition if you are utilizing a multilayered PCB. The excess heat can damage foil runs and connections on different layers of the board, which could render the board useless.
Note the white “spots” from too much heat.
Lifted pad or foil run- a condition similar to “measling”. What usually occurs is that the iron is used to heat a connection surface on the board, but it has gotten so hot that it has physically separated itself from the board. If this occurs, the best solution is to use a different pad or foil run since it can not be reattached to the board surface. Another alternative is to bypass the foil run with a jumper wire, however this can be difficult to achieve.
Burned component leads or a burned board connection- this is plainly obvious. The iron has been left in place too long or is too hot. Try to lower the iron temperature or try using a bit of flux to help solder quickly.
Note the burned appearance of the board.
This can be an indication of damaged components
because of overheating with the soldering iron.


Pasco County officials respond to crash with multiple injuries on SB I-75 in Dade City
by WFTS Digital StaffPASCO COUNTY, Fla. --- Pasco County officials are on the scene of an accident on SB I-75 in Dade City.
Pasco Fire Rescue said four people are being transported to the hospital and another two are being evaluated.
One person was entrapped and extricated by firefighters.
A large debris field has been reported in the area. There is one lane open on SB I-75.


We enhance blockchain!
- whiteboard bleeding-edge channels
- morph turn-key e-services
- enhance scalable channels
- extend vertical partnerships
- engineer real-time channels
- unleash virtual metrics
- generate intuitive ROI
- generate next-generation e-markets
- disintermediate turn-key interfaces
- e-enable one-to-one systems


Tune Time LOGO
Recent Playlist
Walk The Dog
NSFW
Long Commute
Short Commute
Walk The Dog
10min
Hip-Hop
Lil Wayne- She Will ft.Drake
J.cole- Pride is The Devil ft.Lil Baby
Dababy- BOP
lil Baby- sum 2 Prove
Save Playlist
Generate New Playlist
Generate New Playlist Form
X
Title of the New Playlist
Duration of the New Playlist
Generate Playlist


Mouse keys (full)
You can enter mouse keys mode by "right_command + m".
Mouse keys mode is active while you press the right_command key.
Example:
- Press the right_command key
- Press the m key (enter mouse keys mode)
- Release the m key
- Press the j key (mouse down)
- Press the l key (mouse right)
- Release the right_command key (leave mouse keys mode)
Key bindings:
- h: mouse left
- j: mouse down
- k: mouse up
- l: mouse right
- v: left click
- b: middle click
- n: right click
- f: fast mode (fast mouse move by f+hjkl)
- d: slow mode (slow mouse move by d+hjkl)
- s: scroll mode (scroll by s+hjkl)


1. What is a StreetHack ?
StreetHack is a 2 phase 24-hour hackathon with a twist: our challenges are themed and well described here.
2. Count me in; how do I sign up ?
You can register here!
3. What do I bring ?
You'll need to bring your ID, a laptop, any device you think you will need, chargers, and your creativity!
4. Wait, do I have to pay ?
Not at all; StreetHack is absolutely FREE! We are kindly funded by some awesome sponsors, and thanks to them, we can provide you with power, swag, and food, so you don't have to spend a penny once you're here. Unfortunately, we are not able to provide any travel reimbursements at this time.
5. I might get Hungry after a while.
Don't worry, food is on us, non-stop supply of Snacks and drinks
6. Will internet be provided ?
Continous high speed internet will be provided
7. Where exactly is the Hackathon ?
Investopad(18, Institutional Area, Prem Puri, Sector 32, Gurugram, Haryana 122001)
8. Did we miss out on any question?
We're eagerly waiting for you on Facebook or mail us instead.
PRIZES
A grant of Euro 800 to up to 3 Teams for a Trip to Finland to present your prototype at Ultrahack 2018 Sprint I.
Stay connected for updates. Cool prizes are to be announced soon.


@(user: models.user.User, form: Form[models.user.UserUpdateData])( implicit request: Request[AnyContent], session: Session, flash: Flash, messages: Messages )@layout.bootstrap("Register") { @if(flash.get("error").isDefined) {
By clicking on "Update Profile" you agree to GetGatsby's' Terms and Conditions
Please review and save your information. Complete and accurate information will help us serve you better.
Please click UPDATE PROFILE and then enter your payment information in the next dialog box.
Failure to enter your payment information will make your request for our services incomplete.


Day 75
Published last at 10:15am CDT August 20 2020, subject to change throughout the day.
President Barack Obama, speaking at last night's Democratic Convention from Pennsylvania, delivered an emotionally charged and somber address. His message was simple, do not give up. Stay engaged. Plan:
"That is how *THEY* have influence over your life, when *THEY* convince [you that do not matter]; DO NOT LET THEM TAKE AWAY YOUR POWER, YOUR DEMOCRACY." - @BarackObama
— Loooorena "La Tigresa" Mesa @ #BlackLivesMatter 🖤 (@loooorenanicole) August 20, 2020
This. Is all you need to remember. Stay with me. Let's do it. #DemConvention #DemConvention2020
Furthermore, last night's Democratic Convention addresses focused on the role of women in politics. Notably Speaker of the House Nancy Pelosi pointing out, "as America marks the centennial of women, finally, women winning the right to vote, we do so with 105 women in the House. Proudly, 90 are Democrats."
KEEP RISING! (Notice @aoc is in the center. 👀😍). #DemConvention #DemConvention2020 #DemocraticConvention pic.twitter.com/s71Sy0cAYX
— Loooorena "La Tigresa" Mesa @ #BlackLivesMatter 🖤 (@loooorenanicole) August 20, 2020
While we celebrate the rise of women in the USA government, we need to remember that as we celebrate the 100th year anniversary of women gaining the right to vote this right was not universally applied to all women. As Black (and indigenous women) continued to confront barriers to vote. Notably Black women were subject to racist state laws that aimed to keep Black Americans from voting. "The 19th Amendment did not addres violence or lynching", Martha S. Jones author of "Vanguard: How Black Women Broke Barriers, Won the Vote, and Insisted on Equality for All" explains.
Put another way, Democratic Vice President nominee Kamala Harris, explains this duality by stating simply, "there is no vaccine for racism, we've go to do the work. For George Floyd. for Breonna Taylor, for all the lives of too many others to name ... ".
"There is no vaccine for racism. We've got to do the work. For George Floyd, for Breonna Taylor, for the lives of too many others to name... None of us are free until all of us are free." - Democratic vice presidential nominee Kamala Harris. #DemConvention https://t.co/LxbJJ2IiP2 pic.twitter.com/Sk6CtkSH2y
— CNN (@CNN) August 20, 2020
The Democratic Convention continues tonight. Before that, go prepare your voting plan over at IWillVote.com
.
Update: Bannon has been arrested by USPS, at sea. 2020 y'all. 2020.
News
- Trump Administration - Tax Return New York Times - Trump Must Turn Over Tax Returns to D.A., Judge Rules
- Trump Administration - Fraud CNBC - Former Trump advisor Steve Bannon arrested on fraud charges in border wall fundraising scheme
- DNC Convention - Day 3 Recap NPR - Highlights From Night 3: Democratic Leaders Zero In On Trump
Events
- Democratic National Contention 2020 culmintates tonight at 8:00pm CDT to 10:00pm CDT with Democratic Presidential nominee Vice President Joe Biden as he will accept the party nomination. For the full lineup, including speakers like Senator Tammy Duckworth, find the full schedule here, and watch live.
Call to Action
- Get your flu shot. The WHO, Dr. Fauci, and many other health experts urge us all to get one as we wait for a COVID19 vaccine. Target/CVS already have flu shots, Walgreens is slated to start September 1 2020.
- Prepare your voting plan at
IWillVote.com
.
Just for fun
- The Daily Social Distancing Show host Trevor Noah beautifully captured Michelle Obama's Democratic Convention with the following:
"That was ice-cold. And what made it even more devastating was that Michelle Obama wasn’t angry, she wasn’t yelling, she just stated Trump’s complete failure as a president as an obvious fact.


Breaking Sikhs from India is a Pakistan fantasy
by Shekhar GuptaIt is bound to fail like the earlier ones, again causing Pakistan enormously more damage than to India, points out Shekhar Gupta.
IMAGE: A picture of the Kartarpur complex and Gurdwara Darbar Sahib shared by Pakistan Prime Minister Imran Khan on social media.
Yet, even by his standards, his offer to make the visit to Kartarpur Sahib visa free for only the Sikhs from India was curious.
How would he, to begin with, define a Sikh?
Sikhism is neither doctrinaire, nor exclusive.
Anyone from any faith is welcome in a gurdwara.
You just need to follow a couple of simple rules: A covered head, bare feet.
Then, you can pray, the priest will treat you and get you the blessings from the holy book like any other devotee, and the sangat (community) will feed you at the langar.
There is no place in Sikhism, including the Golden Temple or Akal Takht Sahib, where anyone's faith bars them.
The essence of Sikhism is bar none.
That is where the philosophy of the langar, a community meal where everyone eats together, comes from.
You share a meal, you are equals.
Then anyone, irrespective of faith, can do kar sewa (voluntary work).
And so many do.
This is the reason Sikh holy places are among the cleanest anywhere.
There is much anxiety in India about the moves and intentions of Imran/the Pakistan army/the Inter-Services Intelligence over Kartarpur Sahib.
They all might be -- and probably are -- as diabolical as we suspect.
But they aren't particularly bright.
Even if they had such a genius idea of subverting India's Sikhs and reviving separatism through Kartarpur Sahib, Imran has ruined their 'operation' by offering freebies to only the Sikhs.
Besides the fact that the Sikh faith, intrinsically equal and inclusive, will dismiss this preferential treatment with contempt, Imran will also not know how to define a Sikh, or tell one from any other devotee of Guru Nanak and the great faith he and his nine successors founded.
There is nothing in Sikh practice and tradition that discriminates Sikh from non-Sikh.
Imran has bought into the old military establishment folklore in Pakistan that a final Sikh-Hindu division is inevitable.
That two efforts in the past -- one in the mid-1960s and the second in the 1981-1994 period -- failed, but the time for a third push has now come.
That's why some overseas Sikh organisations, especially in Canada, are being brought together with Pakistani immigrant groups, especially Kashmiri (Mirpuri), and this so-called 'Referendum 2020' is being sponsored.
Another chapter is being opened in an old playbook.
It is bound to fail like the earlier ones, again causing Pakistan enormously more damage than to India.
We, in India, need have no anxieties.
Breaking the Sikhs away from India is a fantasy of the Pakistani elites going back to the early 1950s, when that generation's wounds of Partition were still raw.
The Pakistanis took this operation to its first peak in the mid-1960s, hoping to prise the Sikhs away.
One faction of the Punjabi Suba (separate Punjabi state) movement had a radical/separatist impulse.
But Partap Singh Kairon as chief minister in Punjab, and after his assassination Lal Bahadur Shastri and Indira Gandhi handled the challenge adroitly.
Punjab was divided again, with Hindi-predominant Haryana and Himachal Pradesh becoming new states and a Punjabi-speaking (and Sikh) majority now with a Punjab of its own.
A curious little sidelight: The Pakistanis also separated and tried to indoctrinate Sikh Indian prisoners of war, especially officers, in 1965.
That chapter ended, and the second one was launched in 1981 by a Pakistani establishment emboldened by the new clout it had acquired with the Afghan jihad.
It coincided, however, with many other factors internal to India: A revivalist mood among the Sikhs, weak governments, and the marginalisation of the Shiromani Akali Dal.
Then, the arrival of a leader as charismatic and puritanical as Jarnail Singh Bhindranwale.
What followed is well recorded history.
It is just that in the following 13 years, tens of thousands died.
And then, just when it had begun to look like Punjab was a lost cause, it all ended.
So rapidly that even those of us following this closely didn't have the time to catch our breath.
And why did this happen? For sure, the security forces and intelligence agencies did their job well.
But that phase of terror ended the day the Sikhs themselves decided that they had had enough.
The real hero of that fight was the predominantly Sikh Punjab police.
It was quite dramatic how Sikh popular opinion turned.
From a point where some of my fellow journalists were even talking of visiting 'liberated zones' in Punjab, it ended almost overnight.
In fact, no one even wanted to talk about this anymore.
K P S Gill, who led the campaign as Punjab police chief then, spoke to me in detail for an India Today story, and when I asked him why and how this ended so dramatically, he said, you see, the Pakistanis do not read Iqbal: Kuchch baat hai ke hasti, mit-ti nahin hamaari...
For the Pakistanis to think that they can bring back those days, therefore, is fantastic nonsense.
Similarly, for us in India to now worry that the Pakistanis will take 'our' Sikhs away from 'us' is embarrassing neurosis.
We have to be nuts to get unnerved over the pictures of Bhindranwale on the odd hoarding in Kartarpur Sahib.
You can even find them in and around the Golden Temple, on key-chains sold in shops outside it, on the backs of cars in Delhi, and sometimes even as computer and tablet screen-savers.
If we choose to get alarmed by any of this, we must have very little confidence in ourselves as a nation, and trust in the Sikh community.
To think that they are so gullible as to fall for the same trope in 2019 is an insult to their intelligence.
And to think any of us as 'we' who have to protect 'them' -- the Sikhs from evil Pakistanis -- is worse than being irrational.

We had said that Indian social and national coherence had strengthened over the years as it had become more relaxed.
We are stronger not because we are merely united in our diversity, but because we are at ease with it now.
It is possible to argue today that the founders of our Republic were a bit anxious and erred in giving us the slogan of 'Unity in Diversity'.
They should have simply said, celebrate diversity.
Once you accept that, you need not worry about the national commitment to any fellow Indian.
That's why it is time to forget subversive fears.
India isn't made of porcelain.
One of the holiest shrines for the Indian Sikhs and so many non-Sikh Indians is open now.
It's a moment of collective joy for us to cherish.
Switch off those TV discussions on the 'return of Khalistan'.
It isn't happening.
Don't paint the devil on the wall.
And if it still bothers you, just remember that concluding line of the Sikh prayer, invoking Guru Nanak: Nanak naam chardi kala/tere bhane sarbat da bhala.
Translated loosely: Nanak, your name would keep us all upbeat/on the ascendant/gung-ho (you can choose either or all, or find another name for that brilliant Sikh attitude)/may the entire mankind be joyful and prosperous with your benevolence.
By special arrangement with The Print


YUC auxin YDF IAA yucasin (Fig. biosynthesis Arabidopsis Fig. IPA analogs root inhibitors plants activity growth inhibitor potent using pathway seedlings Supplemental enzyme inhibition showed probe wild-type {border-style µM DR::GUS acid phenotype Plant px;} #ffffff;} S). Yucasin phenotypes presence protein effects incubated inhibitory medium plant TAA auxin-deficient endogenous μM A). Cell DII-VENUS Effects L-Kyn high-auxin overexpression pMDC::YUC plants. Auxin days expression land metabolic mutant pathway. photoaffinity plants, reporter °C chemical demonstrated signaling stability Figure added aryl defects fluorescent grown measured moiety h. (Supplemental -d-old GUS [], active agar auxin-responsive azido binding caused containing exogenous genes group labeling off-target px; site substrate {font-family mM HPLC Physiol analyzed auxinole biology degradation displayed font-size gene identified length levels restored results role sample shown yucasin. B). K.H. Photoaffinity Physcomitrella Scale Sci YDF. analog bind biosynthetic competitive cultured diverse double; induced inhibitors. patens performed polymorpha reaction repressed response stable synthesized various yucasin-type ( μM) ,,-triazole-( AtYUC H)-thione IAA. IAOx TIR University, Values YDF, YUC, addition, alkyl application assay bar = bifunctional blocked border-color border-width buffer cellular completely concentration continuous cypb development effective enzymes experiments function indicate indicated inhibited irradiated lines liquid lower means ± S.D. method mixture mm. molecules moss pathways phenyl planta planta. recombinant reported resulting roots severe similar solid; specific suggesting tagged tryptophan used values washed water {font-style {font-weight ( mmol) ./pnas. ./tpc.. Acad BA::GUS CYPB Chem Commons Creative Marchantia Natl Proc Recombinant S), S.T., S::YUC Therefore, USA YUCCA acetone action affinity analogs, approaches biosynthesis, biosynthesized bold cell cocktail conversion courier; derivatives distribution double em; etiolated evidence experiments. extreme fluorescence genetic highly implying incubation. inhibitors, inhibits liverwort mainly material minor monooxygenase mutants mutants. pathway, phosphate photoreactive plates previous primary probe. pt;} regulated relative rescued resulted revealed signal small solution study, suppressed synthetic taa treated vertically weak wild-type, yuc yucQ min. °C.


HARD RAIN
A film review by Matt Williams
RATING: * * 1/2* out of * * * *
After stalling for nearly a year, Hard Rain finally makes it to the box office. Previously titled The Flood, the filmmakers quickly renamed it after the deluge of disaster pics, so as not to have it drown in the public's eye. In a way, it's fitting, since the disaster portion of the film is merely a backdrop, not the main focus. The heart of the film is a heist picture, albeit one with an ever present supply of water to provide additional difficulties. But all in all, the film is not a disaster in itself.
The small town of Huntingburg is being flooded. The sheriff (Randy Quaid) is evacuating the citizenry, even though he lost the recent election. He and his deputies, however, will be staying to protect the town from looters, as the sheriff feels doing his job well is the best revenge.
Also anticipating looters are the local banks. An armored car, guarded by Tom (Christian Slater) and Charlie (Ed Asner), is emptying the vaults of banks up and down the river.
That truck is the target of a group of thieves (led by Morgan Freeman), who are using the torrential rains to their unexpected advantage. However, the heist doesn't go exactly as planned: Tom escapes and manages to hide the money.
Soon, the band of theives is after Tom to find the hidden money, and the police don't know whether to trust Tom or lock him away as a potential looter.
There is a good setup in Hard Rain, with the three sides (the thieves, the cops, and the hero), each having its own idiosyncracies. The ragtag group of robbers is the most interesting, containing not only Freeman but an ex-science teacher (Dan Florek), a trigger-happy bible-quoting thug, and a nervous neophyte.
However, after this setup, the characterization goes nowhere. Morgan Freeman simply plays the part of "Morgan Freeman as a kindly but desperate thief", and we're never given any hows or whys for his character. The same goes for all the other characters as well, who offer no real surprises (especially if you've seen the spoiler-filled trailer). Christian Slater and fellow flood victim Minnie Driver are paired off, but there's no more depth to their relationship than to their characters.
While we're on the subject of screenwriting, the dialogue isn't particularly deep, either. There are times that it's servicable for fueling the bare minimums of an action picture, but others (particularly the comic relief) are purely atrocious. One entire subplot, involving an elderly civilian couple (Betty White and Richard Dysart) severely needed to be axed.
But all that said, the movie does work, on its own terms. This is nothing that's going to win an Academy Award, but for thrills and excitement, it will deliver bang for your (matinee) dollar. A flood might not be in the same class as volcanoes, twisters and earthquakes, but after seeing this film you sure don't want to be in one.
The best advice is to watch this film without questioning too many of the details. (Such as...with all the shotgun blasts going on, why doesn't anyone's boat get holed?) But if you sit back and simply enjoy the mindless peril, you'll have a decent time.
Copyright 1998 Matt Williams
- Matt Williams<EMAIL_ADDRESS>Reviewer for Shreck's Cinema: http://www.shreck.com Home of over 500 reviews, and information on over 500 upcoming releases
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


Girl scout Jodie Chesney's killer crashes through conservatory during dramatic arrest
The dramatic arrests of Arron Isaacs and Svenson Ong-a-Kwie, who stabbed teenager Jodie Chesney to death while she walked home, has been released on the day they were sentenced
by Emily PenninkThe moment Jodie Chesney's killers were caught was captured on footage released on the day they were locked up for life.
Today the killers of Jodie Chesney, Arron Isaacs and Svenson Ong-a-Kwie were locked up for her murder in Harold Hill, east London on March 1.
Ong-a-Kwie, 19, burnt his clothes and disposed of the knife he used to stab the 17-year-old Girl Scout with immediately after the attack.
He had been lying low at the home of 17-year-old Arron Isaacs' uncle in Dagenham, east London, when police swooped to arrest them both on the evening of March 10.
As officers approached the house they heard a commotion outside and an officer shouted: "Around the back."
In police body-worn video, Ong-a-Kwie can be seen clambering over a rear flat roof and crashing into the conservatory below.
An officer shouted: "Stay where you are. Show me your hands now.
As he was handcuffed, an officer confirmed to colleagues that he was "detained".
When told he was arrested on suspicion of murder, Ong-a-Kwie said: "What? Murder? I killed no-one."
Meanwhile, Isaacs had escaped through a window but was apprehended in the back garden with a rucksack containing a deadly Rambo-style knife.
He was initially arrested on suspicion of assisting an offender, but was later also charged with Jodie's murder.
The footage was released by the Metropolitan Police as Ong-a-Kwie was jailed for at least 26 years and Isaacs was locked up for at least 18 years for their part in Jodie's death on March 1.
At the Old Bailey sentencing hearing Judge Wendy Joseph QC spoke about the horrific stabbing.
She said: "What matters is that they left the area, and prepared to attack and that is exactly what they did.
"They came back to the park in the car of Manuel Petrovic.
"He was asked to help because Ong-a-Kwie trusted him.
"I reject that Svenson went back to his hostel to pick up two small bags on cannabis.
"One of you plunged a knife into Jodie's back.
"Jodie screamed until she could scream no more. Svenson burnt his clothes that night and the teenager disposed of his too."
The defendants denied Jodie's murder, each blaming the other for inflicting the fatal wound.
But prosecutor Crispin Aylett QC told jurors that both were responsible for the killing, amid incidents of "casual violence" in the drug-dealing world.
The jury deliberated for less than six hours to find them guilty last week of Jodie's murder.


Introduction:
I (29 year old male, 70 kg, no other medication, suffering a bit of a cold at the time) was planning on going out for a nice evening of dancing, which might or might not include some MDMA. In the past I have on some occasions noticed fatigue/depression for a few days following MDMA usage. This has been described elsewhere and attributed to serotonin (5-HT) depletion. It has also been suggested that the amino acid tryptophan (TP), a biological precursor for 5-HT, would reduce this effect. In the Netherlands tryptophan is sold as a food supplement, advertised as reducing stress.
Report:
I took 1000 mg of L-Tryptophan before getting in the car with my girlfriend to go to the party, and after half an hour to an hour I was quite surprised to find myself feeling lightheaded.
+1h:
The lightheadedness was a bit like what I'd experience after 1 glass of whisky on an empty stomach, but without the associated drowsiness/muscle relaxation.
While I had been rather irritable earlier in the day, most of the irritability seemed to have gone. I did not even mind sitting in a car as a passenger for a several hour trip (no pun intended) as much as I normally would. I would not have wanted to drive in that state.
When we stopped for fuel I felt a bit clumsy in the exchange of the usual courtesy phrases. I found myself responding to one phrase when the cashier was about to open her mouth to utter it.
+1.5h
When we stopped for some drinks and a restroom visit, I found that I didn't really look around me as well as I should. I tripped over a low bit of store display and nearly bumped into someone I didn't notice when I was heading for the door. I felt like I was more focused (in a slightly obsessive manner) and less attentive.
t+2.5h
I felt like I could probably drive safely again. Pretty much normal again, perhaps very faint lightheadedness.
During all this experience I did not experience any visual effects (eyes open or closed). The nasal congestion caused by my cold was not affected either. All in all I was left wondering if this was caused by the tryptophan. The Tikhal entry on tryptamine (T) did mention tryptophan effects after doses of up to 15 g, although in most of the reported doses no distinction was made between L-tryptophan and racemic (D,L-tryptophan) tryptophan.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


@main("404") {
Sorry, but the page you are looking for has not been found. Try checking the URL for errors, then hit refresh. Or you can simply click the icon below and go home:)


|
DNAaka deoxyribonucleic acidHow did life first get started on this planet?  The answer is found in DNA.DNA was discovered in 1869, but at the time, no one really knew what it was or whether it was important. Scientists knew that it was a complicated molecule found inside the cells of living things, and they suspected it had something to do with heredity. In 1944, quantum physicist Erwin Schrodinger (of "Schrodinger's Cat" fame) published a collection of lectures titled What is Life? Schrodinger postulated that all life was somehow designed according a pre-set script that could found among the molecules of the body. Following on his discoveries in the study of subatomic systems, Schrodinger believed that information about the structure of a life form was physically encoded into the life form at a very small scale, and that the code was inherited by each generation from the previous. Schrodinger challenged his contemporaries in the life sciences to find that code. In the 1950s, two young scientists named James Watson and Francis Crick discovered that the molecules of DNA were coiled up in the double helix formation. A couple of years later, an experiment using bacteria proved that DNA was the medium for transferring hereditary -- also called genetic -- information. By the time you finish reading this next section, you might well think DNA stands for "Do Not Ask," but it's actually an abbreviation for deoxyribonucleic acid. DNA is a string-shaped molecule arranged as two strands spiraling around each other, connected through the middle by hydrogen atoms. The shape is known as a "double helix." The DNA molecule is twined very tightly, so that a large number of atoms fit into a very small space. Each strand of DNA contains a number of smaller molecule-like clusters of atoms, known as nucleotides. There are four nucleotides, each usually represented by a letter -- A, T, C, or G. From here out, everything you read is going to be pretty grossly oversimplified. The nucleotide letters are arranged into three-letter "words" known as codons. There are 64 codons, or 64 possible combinations of the four nucleotides. (There are also 64 hexagrams in the I-Ching, which may or may not be a coincidence.) Each codon is sort of like a command in computer coding -- an instruction on how to do something. Each set of instructions is framed by a "start" and "stop" codon. These markers are like a set of parentheses. Inside the parentheses, there is one specific set of instructions, which is almost always (Make a protein.) When a new set of parentheses begin, a new instruction has been launched, such as (Make a different protein.) These instructions are carried out by RNA, or ribonucleic acid. Here's how it works: A molecule called an enzyme bonds with DNA, and the resulting chemical reaction creates RNA. When you unstick the RNA from the DNA, the RNA carries an impression of the DNA, called a transcription. The RNA then drops into a simmering stew of amino acids, which are the carbon-based raw materials of life. The amino acids interact chemically with the RNA segment to make proteins, in a type dictated by the information copied from the parenthetical DNA segment. Like the gears and springs in a pocket watch, proteins are the fundamental machines that do the work of life within a cell. If your eyes are glazing over right about now, don't feel bad. It's insanely complicated. Here's an absurdly oversimplified (but surprisingly reasonable) way to think about it: DNA is like a long string of connected Legos®, and RNA is like Play-Doh®. The Play-Doh (RNA) presses onto the string of Legos (DNA), which leaves an indentation in the Play-Doh. The Play-Doh gets tacky and falls away from the Legos. The now-stiff Play-Doh drops into a pile of loose Legos (amino acids). As they bang around together, appropriately shaped Legos snap into the impressions left in the Play-Doh to make a new Lego construct (a protein). The type and number of proteins in a cell determine whether the cell is a bone cell, a blood cell, a brain cell, or a spleen cell. By following some specific combination of codons in a segment of DNA, RNA manufactures all the parts that go into a cell, and by following the entire recipe book (decoding the entire strand of DNA in the correct order and with the proper raw materials), you can incubate an entire person... or cat, dog, mouse, aardvark, bacterium, virus, fungus, sunflower or dragonfly. So this bizarre little super-complicated molecule holds basic recipe book on how to build a human being in about eleventy million trillion easy steps. How did this come to be? We know that the origins of DNA are the origins of life on this planet. Unfortunately knowing that and knowing the actual origins of DNA are two different things. Experiments have demonstrated that the combination of base chemicals and environmental conditions on primitive Earth -- including lava, electrical storms, carbon and water -- were conducive to the formation of complex organic molecules. Some organic molecules formed on Earth; others may have been dropped here by passing comets or meteors. It's not quite clear how, but all these factors appear to have come together to form RNA first, then RNA eventually became more complex and developed into DNA. There isn't really any one view about how this happened, but the earliest forms of life derived from these first building blocks. Well, according to most views, anyway. From these simple building blocks, more complex forms of life evolved through the process of mutation. Because the process described above are extremely complex and involve millions of small chemical changes, there are numerous opportunities for something to go wrong between the Legos and the Play-Doh. Although DNA can repair itself to a certain extent, some errors persist and are inherited by the next generation of the life form in question. Over the course of a great deal of time, this eventually led to the development of opposable thumbs, tonsils and third nipples. Although the stuff was unimaginable just 200 years ago, DNA is now a part of everyday life. Because each person inherits a unique genetic sequence, DNA has revolutionized criminal investigations by offering a not-quite infallible method of identifying suspects from the blood, semen, spit and hair they leave behind. DNA testing can be used to establish paternity within an inconsequential margin of error. In medicine, DNA grows more prominent every day. Although the genetic code still contains mysteries, scientists have managed to unlock genetic markers for various diseases. Some diseases are directly caused by faulty DNA. Gene therapy -- in which healthy DNA is spliced onto damaged DNA -- is still in its early stages. Gene therapy shows promise in principle, but its track record in clinical trials to date isn't stellar. Then there's genetic engineering. We may not fully understand how DNA works, or where it came from, or exactly precisely how all those little codons work, but in typical human form, we have already figured out how to monkey with them. Genetic engineering is rampant in the U.S. food industry, including tomatoes, beets, wheat and corn. On the bright side, GE has made foods more resistant to spoilage, more easily processed, or more easily cooked. GE hybrids, whether plants or animals, are known as transgenic organisms. In order to accomplish this goal, genetic engineers do some questionable things, like splicing fish genes onto strawberries to keep them from freezing, or splicing human genes into chickens to make them grow larger more rapidly. Some early experimentation has been done splicing human DNA into pigs in order to grow pigs with organs that can then be transplanted into humans. (Would eating bacon from these pigs constitute cannibalism?) Much of this gene splicing is done by introducing an engineered virus into the host organism. By their nature, viruses tinker with the DNA of host cells, so the strategy has a certain logic behind it. On the other hand, if you think there's something inherently alarming about creating viruses and introducing them into animals in order to create bizarre new interspecies hybrids, you're not alone. The ultimate frontier -- tampering with the DNA of human beings -- is just around the corner. Rumors of human cloning persist, but no proven clones have surfaced yet. There are two predominant reasons to tamper with human DNA -- to improve the health of a living human, or to breed children with specific traits, presumably superior ones. Experiments in the former area have been hampered because patients have an annoying tendency to die. It turns out that inserting genetically engineered viruses into people and animals can be bad for their health. Who would have thought it? Experiments in the latter field, sometimes known as eugenics, are equally troublesome. Although trials with animals have produced super-smart mice and sheep whose breast milk contains insulin, it's still relatively taboo to talk about manufacturing smart, beautiful children with an insatiable appetite for world domination. In the old days, eugenics had to be accomplished through the cumbersome task of selective breeding, but modern geneticists are increasingly able to manipulate DNA directly to enhance qualities such as strength, resistance to disease and intelligence. Although Adolf Hitler gave eugenics a bad name during the 1940s, scientists are still plugging away to promote the practice. Although current efforts are mostly limited to examining ways to diagnose and treat genetically transmitted diseases like cystic fibrosis and cancer, you know it won't be long before we're all battling for our lives against a generation of supermen whose genes for morality were accidentally excised by an overeager scientist trying to prevent warts. Naturally, we won't be able to beat them. You can only hope that the technology to create these superbabies won't exist during our lifetimes... which would be fairly pointless since the technology pretty much exists already, held in check by only a rapidly fraying string of ethical posturing. After all, the last time you stopped at McDonald's, you ate a tomato with fish genes in it. Pretty much anything goes after that. O brave new world!
|


projects
shmeeload.xyz
This website has been a large project for me to showcase some of my development skills. I developed the full server backend from scratch in Go. On the GitHub repository, you will find the project demonstrating some of my project management, CI and organizational skills. Before this, I didn't know anything about HTML, CSS, JavaScript or TypeScript, so this has also been a chance for me to gain some of those skills. I hope you like the look of the site. A little bit of the old web look, a bit of my own touch.
For more information and source code, please check out my repo.
chef library
This is a simple HTTP utility library that is used extentively for the backend of this website. Demonstates some slick test-driven development and has extensive coverage for all use cases I will ever have. I plan on continuing to flesh this project out into a nice minimal HTTP backend library that hopefully someone other than just me can use. In designing this package, I've learned a lot about making extendable APIs/packages and creating development roadmaps for a more organized engineering workflow.
For more information and source code, please check out my repo.
shmeechain and shmeecoin
Ongoing project for learning and implementing a public blockchain and crypto ecosystem. I am planning to use libp2p as the core of the project to learn more about their ecosystem and its available transports like QUIC. I currently have a basic blockchain with a Bitcoin-style proof of work consensus mechanism with tuneable difficulty. Current plans of the project are to fully flesh out the p2p networking stack so I can set up easily runnable nodes for my friends.
For more information and source code, please check out my repo.
djinn 3D game engine
My ongoing game engine project. Vulkan rendering engine with physically-based rendering, custom memory allocators, hardware accelerated ray-tracing, editor and audio engine. I've learned so much about GPU hardware, physics and high-performance allocations and threading on this project. A main goal of the project has been to build a strong knowledge base in performant modern C++ (C++20), which can be seen with the engine's use of compile-time computation, concepts, and anonymous functions (lambdas). I'm planning to merge this project with another Vulkan renderer from my colleague at NSF SHREC, Bill Derksen (github), so we can have an ongoing collaborative renderer project.
For more information and source code, please check out my repo.
algorithms and data structures from scratch
My repo for algorithms and data structures from scratch. Currently using Golang, but I want to try to expand to a variety of language as a learning exercise. I use this for training for coding interviews and practicing implementing design specifications. The excercise of writing down the theory of how an data structure should work and implementing it without looking at any other code has helped me a lot in how to translate more complex ideas from paper to code.
For more information and source code, please check out my repo.
skills
programming
- Languages (in order of experience): C++, C, Go, CUDA, Python, HTML/CSS, TypeScript, JavaScript, Shell, Haskell, GLSL, Matlab, Dlang, C#, OpenCL, Lua
- APIs (in order of experience): MPI, OpenSHMEM, OpenMP, Vulkan, OpenGL, PyTorch, TensorFlow
hardware / software
- Hardware: CPUs, HPC Interconnects (Infiniband, Aries, OmniPath), GPUs (Data-center and consumer), TPUs, FPGAs
- Software: Linux, Git, Windows, Altium Designer, Visual Studio, Simulink, NVIDIA Nsight, LTSPICE
knowledge bases
- Distributed Systems: blockchains, smart contracts, proof-of-work, proof-of-stake, leader election
- Networking: RPC, HTTP, TCP, UDP, QUIC, IBVerbs, RDMA
- Machine Learning:
- Rendering: physically-based rendering, ray-tracing, distributed offline rendering
- Control: adaptive control, PID, fuzzy logic, complex control
languages
- German: intermediate
- Mandarin Chinese: intermediate
experience
Graduate Research Engineer
NSF Center for Space, High-Performance and Resilient Computing (SHREC)
August 2019 - April 2021
- Led and developed research plans for team of 3 graduate and 2 undergraduate researchers.
- Provided code review and debugging support for all team members along with weekly internal meetings.
- Developed novel benchmarks for evaluating communication scaling performance of supercomputers using up to 320 nodes.
- Wrote grants to gain access to national supercomputers such as National Scientific Computing Center (NERSC) and Pittsburgh Supercomputing Center (PSC).
- Analyzed inference performance of Convolutional Neural Networks (CNNs) on edge devices such as embedded TPUs.
- Designed a CNN-based single-image-super-resolution model for on-Earth upscaling of low-resolution imagery sent from space.
publications
In progress: A. Johnson, and A. D. George, Performance and Productivity Evaluation of HPC Communicaiton Libraries and Programming Models,
2021 OpenSHMEM Workshop, 2021.
L. Kljucaric, A. Johnson, and A. D. George, Architectural Analysis of Deep Learning on Edge Accelerators,
2020 IEEE High Performance Extreme Computing Conferece (HPEC), 2020.
D. Langerman, A. Johnson, K. Buettner and A. D. George, Beyond Floating Point Ops: CNN Performance Prediction with Critical Datapath Length,
2020 IEEE High Performance Extreme Computing Conferece (HPEC), 2020.
D. Kline, N. Parshook, A. Johnson, J. E. Stine, W. Stanchina, and A. K. Jones, Sustainable IC design and fabrication,
2017 Eighth International Green and Sustainable Computing Conference (IGSC), 2017.
education
M.S. in Electrical and Computer Engineering, University of Pittsburgh
August 2019 - April 2021
- Swanson School of Engineering
- GPA: 3.969
B.S. in Electrical and Computer Engineering, University of Pittsburgh
August 2015 - April 2019
- Swanson School of Engineering
- GPA: 3.741
- Summa Cum Laude
awards & honors
Outstanding Graduate in Electrical Engineering
August 2019
- Awarded to the top Electrical Engineering student in Pitt's Class of 2019
references
Alan D. George, Ph.D.
Department Chair, R&H Mickle Endowed Chair, and Professor of Electrical and Computer Engineering
412.624.9664


you were always passing [] in to the options parameter. options lets you customize how UIKit creates your animation.
| .repeat: | Include this option to makes your animation loop forever. | |
|---|---|---|
| .autoreverse: | Include this option only in conjunction with .repeat; this option repeatedly plays your animation forward, then in reverse. | |
| Tips | That means [] for no options, [.repeat] for a single option, and [.repeat, .autorepeat] for multiple options. | .repeat for a single option |
| .curveLinear: | This option applies no acceleration or deceleration to the animation. | |
| .curveEaseIn: | This option applies acceleration to the start of your animation. | |
| .curveEaseOut: | This option applies deceleration to the end of your animation. | |
| .curveEaseInOut: | This option applies acceleration to the start of your animation and applies deceleration to the end of your animation. | |
| .transitionFlipFromLeft | ||
| .transitionFlipFromRight | ||
| .transitionCurlUp | ||
| .transitionCurlDown | ||
| .transitionCrossDissolve | ||
| .transitionFlipFromTop | ||
| .transitionFlipFromBottom |


✔ You successfully uploaded your file!
Adjust the parameters to your preference
Add visualisation here
Add save button here


A Pretty Strange Game
Enter 5-20 (inclusive) for Columns and Rows:
Refresh the page for a new game
Grid cells go top-down left-to-right numerically, with the top-left cell being "cell #0" and the bottom-right cell being "cell #99"
Columns:
Rows:
Submit
single move btn
game simulator btn


X-Mailer: popper Season's Greetings! Forgive my indignation if this message comes to you as a surprise and may offend your personality for contacting you without your prior consent and writing through this channel.I got your contact from a professional database found in internet while searching for a reliable and honest person that will be an anointed steward in a vision very dear to me. I am Mrs. Alondra Jose-Carlos person from Puerto Rico undergoing medical treatment. I am married to Dr. Kevin Jose-Carlos who was a gun runner supplying arms and ammunition to warring factions in Africa before he died in the year 2002.We were married for eleven years without a child. He died after a brief illness that lasted for only four days. Since his after death, I decided not to re-marry or get a child outside my matrimonial home. When my late husband was alive he deposited the sum of £ 11.8.Million (Eleven Million, Eight Hundred Thousand British Pounds Sterling) with a Fiduciary company. Presently ,this money is still with the Fiduciary Company. Recently, my doctor told me that I would not last for the next three months due to cancer problem. Though what disturbs me most is my partial paralysis. Having known my condition I decided to donate this fund to an organisation or individual that will utilize this money the way I am going to instruct here in. I want an organisation or individual that will use this to fund, women and youth groups, victims of war, environmental protection, charities, orphanages and widows . It is said that blessed is the hand that giveth. I took this decision because I don't have any child that will inherit this money and as a part of restitution for the atrocities of my husband which I tacitly supported. I don't want a situation where this money will be used in an ungodly manner , hence the reason for taking this bold decision. I am not afraid of death, hence I know where I am going .I know that I am going to be in the bosom. If you consider yourself adequately equipped morally and spiritually for this mission, please ,respond by letting me know your decision to<EMAIL_ADDRESS>Yours sincerely, Mrs. Alondra Jose-Carlos


Metamorphics is the solution to every rockhound's most persistent problem. Once you devise the perfect display for your collection, you're limited by it. Everything has it's place, so there's no room for any more pieces! Metamorphics allows you to keep growing your collection by adding more modular boxes. They come in a variety of sizes to accomodate the diversity of sizes and shapes of your specimens. The magnets on each side means the boxes click nicely into place, and your display can be easily rearranged and transformed. Each box fits perfectly with all other models, meaning there is no limit to the different configuations your collection can take!


This API is built with Node using the Express framework. It scrapes Google Finance for data and returns it to the user in the form of JSON/Text.
/api/quote/:symbol
/api/quote/GOOG
/api/quote/TSE:BB
/api/getsymbol/:company
/api/getsymbol/google
/api/getsymbol/cibc
/api/historical/:symbol/:interval/:lookback
/api/historical/RY/5/1
where interval is 5 minutes and lookback 1 day/api/historical/TD/1/7
where interval is 1 minute and lookback 1 week
Requests to the demo server (i.e this one) are limited to one every 60 seconds (response will be delayed).
Also, please don't use this for your trading - this API is basically a toy and shouldn't be used for investing purposes.


Go Back To Dashboard
User Information
User name: {{user.name}}
User email: {{user.email}}
Add Custom Deskbooks
Download 2020 Deskbook
Upload Deskbook Version
Download 2020 Deskbook
Upload Deskbook Version
Go onto web.mfgdocent.com to Upload and Download Deskbook Versions
Your new deskbooks will appear in the Deskbook Version dropdown on the Start New Assessment Page


Internal BeanIO implementation classes. Class level API's are subject to change in any release without support for backwards compatibility.


Unlike typical software engineer job interviews, front-end job interviews have less emphasis on algorithms and have more questions on intricate knowledge and expertise about the domain — HTML, CSS, JavaScript, just to name a few areas.
While there are some existing resources to help front end developers in preparing for interviews, they aren’t as abundant as materials for a software engineer interview. Among the existing resources, probably the most helpful question bank would be Front-end Developer Interview Questions. Unfortunately, I couldn’t find many complete and satisfactory answers to these questions online, hence here is my attempt at answering them. Being an open source repository, the project can live on with the support of the community as the state of web evolves.
Go from zero to front end interview hero with this handbook. No prior interview experience needed.
Learn to walk before you learn to fly. While React, Vue and Angular are cool, make sure you also know your fundamentals.
The best thing about Open Source is that the community vets the contents, so you can be sure the answers here have been proofread by many.
Anybody who wants to land a job at a tech company for a front end role and is looking to make sure they don’t stumble on the basic questions. To be frank, I revise the answers here from time to time as well!
💰 Interested in Front End Dev jobs? Sign up with Triplebyte to efficiently interview with top tech companies! 💰
You might be interested in the Tech Interview Handbook which has helpful content on general coding interviews such as algorithms, behavioral questions and an interview cheatsheet!
If you are interested in how data structures are implemented, check out Lago, a Data Structures and Algorithms library for JavaScript. It is pretty much still WIP but I intend to make it into a library that is able to be used in production and also a reference resource for revising Data Structures and Algorithms.
We have adopted the same Code of Conduct as Facebook that we expect project participants to adhere to. Please read the full text so that you can understand what actions will and will not be tolerated.
Read our contributing guide to learn about how you can contribute, how to propose improvements or if you are interested in translating the content.
Many hours of hard work have gone into this project. Your support will be very appreciated!
All projects and packages in this repository are MIT licensed.


for _ in range(10001):
yield "It"s sentence produced by that bug."
for d in nlp.pipe(string_generator()):
for t in d:
str(t.lemma_)
remember = d
elif i == 10002:
del anchor
gc.collect()
assert remember.text == "Oh snap."


{% extends 'base.html'%} {% import 'macros.html' as macro%} {% import 'bootstrap/wtf.html' as wtf %} {% block styles%} {{ super() }} {% endblock %} {% block content %} {%for quote in getquote%}
WANJALA BLOG WEBSITE
{{ quote.quote }}
This is Wanjala's blog website where one can create and share their opinions.
One can also read and comment on those opinions. Create account, login in, and leave a comment.


QuickTime Delivery
Home
About Us
Thank You
Your Order has been submitted.
Click here to create new order »


TO DO
This extension uses Disconnect Tracking Services list and the following libraries:
https://github.com/juliangarnier/anime/blob/3.2.0/lib/anime.min.js
https://github.com/jquery/jquery/releases/tag/3.6.0
https://github.com/cure53/DOMPurify/releases/tag/2.3.4
^These are the official release URLs for Firefox Addon review
2022-Jan-08


All-in-1 Calc
2D Shapes
3D Shapes
Trignometry
2D SHAPES
Square:
Calc Area
Rectangle:
Calc Area
Triangle:
Calc Area
Circle:
Calc Area
Trapezoid:
Calc Area


BUGATTI has always been defined by the spirit of its founder, Ettore Bugatti. He started the incomparable journey of the BUGATTI brand in 1909 in Molsheim. In 2019 we are looking back at our legacy and proudly celebrating our rich, unparalleled 110 year long history full of passion, craftsmanship, dynamics and elegance.
Founded in 1963, Automobili Lamborghini is headquartered in Sant’Agata Bolognese, in Northern Italy. The Lamborghini Huracán, which made its world debut at the Geneva Motor Show in 2014, in the Huracán Spyder and rear wheel-drive version released in 2015, are the successors to the iconic Gallardo. With their innovative technology and exceptional performance, they redefine the driving experience for luxury super sports cars.
Ferdinand Porsche founded his engineering office in 1931. Working until his death in 1951, the exceptionally creative technician, formerly a designer of electric cars and racing cars and the chief developer at Daimler-Benz, laid the foundations for the global company that would later bear the same name.
Our dealership offers luxury cars and service when you first come in. Our dealership provides...


Wallet
Balance
N 15,000.000
ADEKUNLE DANIEL
Fund Account
Quick Links
Transfer
Recharge
Pay Bills
Transactions
| Date | Details | Amount | Type |
|---|---|---|---|
| 12-08-2021 | Electricity bill | N 4000.00 | Debit |
| 06-07-2021 | Airtime recharge | N 500.00 | Debit |
| 11-07-2021 | Transfer | N 10,000.00 | Credit |
| 09-06-2021 | DSTV | N 3000.00 | Debit |
Electricity bill
12-08-2021
N 4000.00
Debit
Airtime Recharge
06-07-2021
N 500.00
Debit
Transfer
11-07-2021
N 10,000.00
Credit
DSTV
09-06-2021
N 3000.00
Debit


Strength public enum Strength Strength of password weak Minimum 5 characters. Declaration Swift case weak medium Minimum 8 characters. One uppercase. Declaration Swift case medium strong Minimum 8 characters. One uppercase. One lowercase. One number. Declaration Swift case strong


Hello World - Google Maps Api & Google Earth Enterprise Portable
This example utilizes your Google Earth Enterprise Portable installation. It assumes that you are running your Portable server and currently serving a 2D map. View the source of this page to see how the Google Maps API is initialized, and how it makes a call to your Portable server.


To create a panoramic image a photographer can start by taking multiple photos of a scene. This can be done by putting the camera in continuous shoot mode or a similar setting on the specific device. A burst or a sequence of multiple images is a premises to this application.
Step one is to get two or more images from the same one scene. Make sure that each photo has about 10-30% overlap with all other adjacent photos.
Stitch the two example images together to one and the same image
The following three images, each one have higher resolution then the first each two.
This panorama will take a bit longer to compute since the images are bigger and they are more.


|
C++ String Streams
String streams are similar to the <iostream> and <fstream> libraries, except that string streams allow you to perform I/O on strings instead of streams. The <sstream> library provides functionality similar to sscanf() and sprintf() in the standard C library. Three main classes are available in <sstream>:
String streams are actually subclasses of iostreams, so all of the functions available for iostreams are also available for stringstream. See the C++ I/O functions for more information. Display all entries for C++ String Streams on one page, or view entries individually:
|


Last updated: 2021-09-24
Checks: 7 0
Knit directory: myTidyTuesday/
This reproducible R Markdown analysis was created with workflowr (version 1.6.2). The Checks tab describes the reproducibility checks that were applied when the results were created. The Past versions tab lists the development history.
Great! Since the R Markdown file has been committed to the Git repository, you know the exact version of the code that produced these results.
Great job! The global environment was empty. Objects defined in the global environment can affect the analysis in your R Markdown file in unknown ways. For reproduciblity it’s best to always run the code in an empty environment.
The command set.seed(20210907)
was run prior to running the code in the R Markdown file. Setting a seed ensures that any results that rely on randomness, e.g. subsampling or permutations, are reproducible.
Great job! Recording the operating system, R version, and package versions is critical for reproducibility.
Nice! There were no cached chunks for this analysis, so you can be confident that you successfully produced the results during this run.
Great job! Using relative paths to the files within your workflowr project makes it easier to run your code on other machines.
Great! You are using Git for version control. Tracking code development and connecting the code version to the results is critical for reproducibility.
The results in this page were generated with repository version 6f87250. See the Past versions tab to see a history of the changes made to the R Markdown and HTML files.
Note that you need to be careful to ensure that all relevant files for the analysis have been committed to Git prior to generating the results (you can use wflow_publish
or wflow_git_commit
). workflowr only checks the R Markdown file, but you know if there are other scripts or data files that it depends on. Below is the status of the Git repository when the results were generated:
Ignored files:
Ignored: .Rhistory
Ignored: .Rproj.user/
Ignored: catboost_info/
Ignored: data/2021-09-08/
Ignored: data/CNHI_Excel_Chart.xlsx
Ignored: data/CommunityTreemap.jpeg
Ignored: data/Community_Roles.jpeg
Ignored: data/YammerDigitalDataScienceMembership.xlsx
Ignored: data/acs_poverty.rds
Ignored: data/fmhpi.rds
Ignored: data/grainstocks.rds
Ignored: data/hike_data.rds
Ignored: data/us_states.rds
Ignored: data/us_states_hexgrid.geojson
Ignored: data/weatherstats_toronto_daily.csv
Untracked files:
Untracked: code/YammerReach.R
Untracked: code/work list batch targets.R
Note that any generated files, e.g. HTML, png, CSS, etc., are not included in this status report because it is ok for generated content to have uncommitted changes.
These are the previous versions of the repository in which changes were made to the R Markdown (analysis/BeerAwards.Rmd
) and HTML (docs/BeerAwards.html
) files. If you’ve configured a remote Git repository (see ?wflow_git_remote
), click on the hyperlinks in the table below to view the files as they were in that past version.
| File | Version | Author | Date | Message |
|---|---|---|---|---|
| Rmd | 6f87250 | opus1993 | 2021-09-24 | adopt viridis color palette and add the tweet |
This week’s #TidyTuesday data comes from the Great American Beer Festival via Bart Watson.
The Judging Panel awards gold, silver or bronze medals for brewing excellence in five different three-hour judging sessions that take place over the three-day period during the week of the festival. Judges are assigned beers to evaluate in their specific area of expertise.
tt <- tidytuesdayR::tt_load("2020-10-20")
Downloading file 1 of 1: `beer_awards.csv`
beer_awards <- tt$beer_awards %>%
mutate(brewery = case_when(
stringr::str_detect(brewery, "Alaskan") ~ "Alaskan Brewing",
TRUE ~ brewery
)) %>%
mutate(state = str_to_upper(state)) %>%
mutate(medal = fct_relevel(medal, c("Bronze", "Silver")))
The categories have expanded a great deal over the past 33 years. Some categories must receive less than 3 submissions in a given year and give out less than 3 medals.
In the most recent years, there have been as many as 109 unique beer categories, and nearly 250 medals awarded within those categories.
This data set is only the medal winners, rather than the entire set of submissions. There were even ties in two years for silver medals in a couple of categories.
beer_awards %>%
count(year, medal, category) %>%
filter(n > 1) %>%
knitr::kable(caption = "Beer Award Ties") %>%
kable_minimal(c("striped", "hover", "responsive"))
| year | medal | category | n |
|---|---|---|---|
| 1998 | Silver | Fruit Beer | 2 |
| 1998 | Silver | Specialty Honey Ales Or Lagers | 2 |
The big names in brewing have accumulated the most medals:
beer_awards %>%
add_count(brewery) %>%
mutate(brewery = fct_lump(brewery, w = n, n = 8)) %>%
filter(brewery != "Other") %>%
group_by(year, brewery) %>%
summarize(
Medals = n(),
.groups = "drop"
) %>%
ggplot(aes(year, Medals, fill = brewery)) +
geom_col(show.legend = FALSE) +
scale_fill_manual(values = hrbrthemes::ipsum_pal()(9)) +
scale_y_continuous(breaks = c(2, 4, 6, 8)) +
facet_wrap(~brewery, ncol = 4) +
labs(
title = "Beer Medal History at the Top 8 Companies",
subtitle = "Number of Medals total earned each year",
y = "", x = "",
caption = "Data Source: Great American Beer Festival"
) +
theme(panel.grid.minor.y = element_blank())
What beers have won the most awards?
beer_counts <- beer_awards %>%
count(beer_name, brewery, medal, city, state)
beer_counts %>%
mutate(beer_name = glue::glue("{ beer_name } ({ brewery })")) %>%
filter(fct_lump(beer_name, 16, w = n) != "Other") %>%
mutate(beer_name = fct_reorder(beer_name, n, sum)) %>%
ggplot(aes(n, beer_name, fill = medal)) +
geom_col() +
labs(
title = "Which beers have won the most awards?",
subtitle = "Total Medals: Alaskan Smoked Porter \nGold Medals: Sam Adams Double Bock",
x = "# of awards",
y = "",
fill = "",
caption = "Data Source: Great American Beer Festival"
) +
theme(
panel.grid.major.y = element_blank(),
legend.position = c(0.8, 0.3),
legend.background = element_rect(color = "white")
)
beer_counts %>%
pivot_wider(
names_from = medal, values_from = n,
values_fill = list(n = 0)
) %>%
mutate(total = Bronze + Silver + Gold) %>%
slice_max(order_by = total, n = 10) %>%
arrange(desc(total)) %>%
knitr::kable(caption = "Top 10 Beers") %>%
kable_minimal(c("striped", "hover", "responsive"))
| beer_name | brewery | city | state | Silver | Gold | Bronze | total |
|---|---|---|---|---|---|---|---|
| Alaskan Smoked Porter | Alaskan Brewing | Juneau | AK | 3 | 5 | 3 | 11 |
| Samuel Adams Double Bock | Boston Beer Co. | Boston | MA | 1 | 6 | 2 | 9 |
| Raspberry Tart | New Glarus Brewing Co. | New Glarus | WI | 1 | 3 | 4 | 8 |
| Abbey Belgian Style Ale | New Belgium Brewing Co. | Fort Collins | CO | 0 | 4 | 3 | 7 |
| Kiwanda Cream Ale | Pelican Pub & Brewery | Pacific City | OR | 2 | 4 | 1 | 7 |
| Laughing Lab Scottish Ale | Bristol Brewing Co. | Colorado Springs | CO | 3 | 2 | 2 | 7 |
| Miller Genuine Draft | Miller Brewing Co. | Milwaukee | WI | 5 | 1 | 1 | 7 |
| Coors Light | Coors Brewing Co. | Golden | CO | 2 | 1 | 3 | 6 |
| Genesee Cream Ale | Genesee/High Falls Brewing | Rochester | NY | 3 | 2 | 1 | 6 |
| Belgian Red | New Glarus Brewing Co. | New Glarus | WI | 1 | 4 | 0 | 5 |
| Budweiser | Anheuser-Busch, Inc | Saint Louis | MO | 1 | 1 | 3 | 5 |
| La Folie | New Belgium Brewing Co. | Fort Collins | CO | 1 | 3 | 1 | 5 |
| Miller High Life | Miller Brewing Co. | Milwaukee | WI | 3 | 0 | 2 | 5 |
| O’Doul’s | Anheuser-Busch, Inc | Saint Louis | MO | 3 | 0 | 2 | 5 |
| Samuel Adams Octoberfest | Boston Beer Co. | Boston | MA | 1 | 2 | 2 | 5 |
What breweries have won the most awards?
beer_awards %>%
count(brewery, medal) %>%
filter(fct_lump(brewery, 16, w = n) != "Other") %>%
mutate(brewery = fct_reorder(brewery, n, sum)) %>%
ggplot(aes(n, brewery, fill = medal)) +
geom_col() +
labs(
title = "Which breweries have won the most awards?",
subtitle = "Pabst dominates",
x = "# of awards",
y = "",
fill = "",
caption = "Data Source: Great American Beer Festival"
) +
theme(
panel.grid.major.y = element_blank(),
legend.position = c(0.8, 0.3),
legend.background = element_rect(color = "white")
)
What states have brewery locations that have won the most awards?
beer_awards %>%
count(state, medal) %>%
mutate(state = state.name[match(state, state.abb)]) %>%
filter(fct_lump(state, 16, w = n) != "Other") %>%
mutate(state = fct_reorder(state, n, sum)) %>%
ggplot(aes(n, state, fill = medal)) +
geom_col() +
labs(
title = "Which states have won the most awards?",
subtitle = "California, then Colorado",
x = "# of awards",
y = "",
fill = "",
caption = "Data Source: Great American Beer Festival"
) +
theme(
panel.grid.major.y = element_blank(),
legend.position = c(0.8, 0.3),
legend.background = element_rect(color = "white")
)
by_year_state <- beer_awards %>%
add_count(year, name = "year_total") %>%
count(year, state, year_total, sort = TRUE) %>%
mutate(pct_year = n / year_total) %>%
complete(year, state, fill = list(year_total = 0, n = 0, pct_year = 0)) %>%
group_by(state) %>%
nest() %>%
mutate(model = map(data, ~ glm(cbind(n, year_total - n) ~ year, data = .x, family = "binomial"))) %>%
mutate(results = map(model, tidy, conf.int = TRUE)) %>%
unnest(results) %>%
ungroup() %>%
unnest(data) %>%
filter(term == "year")
by_year_state %>%
mutate(state = state.name[match(state, state.abb)]) %>%
mutate(state = fct_lump(state, n = 35)) %>%
filter(state != "Other") %>%
mutate(state = fct_reorder(state, estimate)) %>%
ggplot(aes(estimate, state)) +
geom_point(size = 4) +
geom_vline(xintercept = 0, lty = 2, color = "blue") +
geom_errorbarh(aes(
xmin = conf.low,
xmax = conf.high
),
height = .3,
size = 1,
show.legend = FALSE
) +
scale_x_continuous(limits = c(-0.15, 0.15)) +
labs(
x = "Estimated slope",
title = "What is the trend of medal winning by state?",
subtitle = "North Carolina and Virginia's proportion is growing while Wisconsin's is shrinking",
y = "",
caption = "Data Source: Great American Beer Festival"
) +
theme(panel.grid.major.y = element_blank())
by_year_state %>%
mutate(fill = case_when(
conf.low > 0 ~ "Increasing",
conf.high < 0 ~ "Decreasing",
TRUE ~ "Flat"
)) %>%
ggplot(aes(
x = year, y = pct_year,
fill = fill
)) +
geom_area() +
scale_y_continuous(
labels = scales::percent,
n.breaks = 2
) +
scale_x_continuous(n.breaks = 3) +
facet_geo(~state, grid = "us_state_grid2") +
labs(
title = "Beer awards proportion by year for all states",
subtitle = "The West coast is strong. North Carolina and Virginia are growing most quickly.",
fill = "", y = "", x = "",
caption = "Data Source: Great American Beer Festival"
) +
theme(
legend.position = c(0.9, 0.3),
strip.text.x = element_text(size = 6),
axis.text.x = element_text(size = 4),
axis.text.y = element_text(size = 4),
legend.text = element_text(size = 6),
panel.spacing = unit(0.2, "lines")
)
For each state, what are the beer category words most representative of that state?
word_counts <- beer_awards %>%
mutate(category = str_remove(category, "s$")) %>%
unnest_tokens(word, category) %>%
anti_join(get_stopwords()) %>%
count(state, word, sort = TRUE) %>%
filter(!word %in% c("style", "beer"))
state_words <- word_counts %>%
bind_log_odds(state, word, n) %>%
arrange(state, word) %>%
group_by(n) %>%
filter(sum(n) > 6) %>%
ungroup() %>%
group_by(state) %>%
slice_max(order_by = log_odds_weighted, n = 3) %>%
ungroup() %>%
select(state, word, log_odds_weighted)
p1 <- state_words %>%
mutate(log_odds_weighted = scales::rescale(log_odds_weighted, to = c(7, 10))) %>%
ggplot(aes(
label = word,
size = log_odds_weighted,
color = log_odds_weighted
)) +
geom_text_wordcloud_area(shape = "triangle-upright") +
scale_color_steps(
low = "#255E82",
high = "#C58F40"
) +
facet_geo(~state, grid = "us_state_grid2") +
labs(
title = "Beer award winner category distinctive word usage by weighted log odds",
subtitle = "Who would have guessed Kolsch in Kentucky and Kellerbier in North Dakota?",
fill = "", y = "", x = "",
caption = "Data Source: Great American Beer Festival"
) +
theme(
panel.spacing = unit(0, "lines"),
title = element_text(family = "Tw Cen MT"),
plot.title = element_text(
size = 24,
face = "bold",
color = "#255E82"
),
plot.subtitle = element_text(
size = 16,
face = "bold",
color = "#C58F40",
family = "Tw Cen MT"
),
strip.text.x = element_text(
size = 12,
color = "#000000",
family = "Tw Cen MT",
face = "bold"
)
)
logo_file <- "https://camo.githubusercontent.com/f1141fa07f075a4186f5d71efab61012617a2ca8/68747470733a2f2f69322e77702e636f6d2f7468656265657274726176656c67756964652e636f6d2f77702d636f6e74656e742f75706c6f6164732f323031382f30372f47726561742d416d65726963616e2d426565722d466573746976616c2d4c6f676f2e6a70673f73736c3d31"
ggdraw() +
draw_plot(p1) +
draw_image(logo_file, x = 0.37, y = -0.2, scale = .2)
And finally, the tweet:
tweetrmd::include_tweet("https://twitter.com/jim_gruman/status/1318945248995835907")
Who would have guessed Kolsch in Kentucky and Kellerbier in North Dakota?