THE LOVE LETTER
Reviewed by Harvey Karten, Ph.D. DreamWorks Pictures Director: Peter Ho-Sun Chan Writer: Maria Maggenti, novel by Cathleen Schine Cast: Kate Capshaw, Blythe Danner, Ellen DeGeneres, Geraldine McEwan, Julianne Nicholson, Tom Everett Scott, Tom Selleck, Gloria Stuart
There may be some good reasons for living in a picturesque small town but you'd never know this from seeing "The Love Letter." A film about a sleepy burg whose drowsy, if eccentric, beings are awakened by an anonymous billet doux, "The Love Letter" is so slight, so insipid, that a viewer can scarcely find much therein to love or hate. Just a spoonful of sugar less sweet than "Message in a Bottle," at least director Peter Ho-Sun Chan's movie based on a novel by Maria Cathleen Schine and adapted for the screen by Maria Maggenti, does not take itself seriously. Even Ellen DeGeneres--who once again steals every scene she is in-- appears to sleepwalk her way through the tale, or at least appears to do so when you compare her performance with her work in "EdTV."
"The Love Letter" borrows a technique used so successfully in works from playwrights from Plautus through Shakespeare and beyond--mistaken identity with the comic and romantic touches that can emerge from such deception. The enigma in question centers on a mysterious writer, although his or her identity (revealed in the final moments) is not important. What is consequential is the buried feelings that some of the most unlikely characters possess and how the possibility of having a secret admirer makes residents of Loblolly, Massachusetts (actually filmed in that state's town of Rockport) spring to life.
When the owner of the town's bookstore, Helen (Kate Capshaw), receives an unsigned, typewritten note professing love, she assumes the dispatch is directed to her and begins to fantasy who might be preoccupied with thoughts of her. When people speak to her in everyday terms, she imagines their declaring unbridled passion. She leaves the note by a wine bottle where it is picked up by her dinner guest and summer assistant, the twenty-year-old Johnny (Tom Everett Scott), who is certain that the letter is Helen's and that it is directed to him. Gradually the note finds its way into the hands of a few others in Loblolly with similar effects. Among the consequences is that a budding romance between Helen and the town's firefighter, George (Tom Selleck) is rekindled, but not before Helen works her way through a brief, passionate affair with Johnny, who is twenty years or so her junior. In one swift month Helen turns from a stable, if unfulfilled bookseller, to the bemused object of a triangular relationship. In the process she discovers a surprising secret about her mother, Lillian (Blythe Danner) as well, and uncovers a post card from an old shoebox which, if carefully read some years back, would have dramatically altered her life.
At best, "The Love Letter" could provide for a career- making opportunity for Tom Everett Scott, heretofore known to the public only for cutesy roles in movies like Tom Hanks's "That Thing You Do" and teen horror circuit adventures like "Dead Man on Campus." The story telling is for the most part linear and conventional with Tami Reiker's camera failing to exploit much quaintness is the town of Rockport. Nor does Ms. Reiker's camerawork paint a flattering portrait of Kate Capshaw, whose wan acting cannot make a case for an April-September affair with a college kid. In her small role Blythe Danner puts most of the remainder of the cast to shame by her mere presence, as veteran Tom Selleck appears so unenthusiastic in his pursuit of Capshaw's character that his affection for her is even less convincing than is hers for young Scott. Finally, Bill Buell's cartoonish performance as a keystone cop puts could put the lid on tourism to Rockport.
Rated R. Running Time: 95 minutes. (C) 1999 Harvey Karten
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


Cart (2)
Empty Cart
All items will be deleted.
Organic Apple
1 kg
$ 5.99
Beetroot
1 kg
$ 42.99
Have a discount code?


Romesh Ranganathan marks milestone as he co-hosts Royal Variety Performance
This year’s annual charity event featured Britain’s Got Talent winner Colin Thackeray, Robbie Williams and Jamie Cullum.
Romesh Ranganathan joked that it had taken the Royal Variety Performance 106 years to “brown it up”, as he became the first person from a South Asian background to co-host the show.
The comedian hosted the annual event alongside his long-standing friend Rob Beckett, making the pair the first comedic two-hander at the helm in over 30 years, since Ronnie Corbett and Bruce Forsyth in 1988.
The Duke and Duchess of Cambridge were entertained by a cast of famous faces at the London Palladium, including Chelsea Pensioner and Britain’s Got Talent winner Colin Thackeray.
They enjoyed the show, in aid of the Royal Variety Charity, from the theatre’s royal box.

But Ranganathan added: “And it’s taken them 106 of these until they decided to brown it up.
“And then they diluted it by making me host it with the whitest person on TV. It’s unbelievable.”
He added: “We are not a double act. When your nan watches it she will think you hosted it with your Uber driver.”
Responding to the audience’s laughs, he added: “Pretty tasteless round of applause, if I am being honest with you.”
Beckett said that while he was “honoured” to have been asked to co-host the show, he suggested there had been a “booking error”.
Apparently referring to William and Kate, Beckett quipped: “Before we continue, we must acknowledge that there are two very special VIP guests here – our mums.”
Ranganathan suggested their mothers were like “two extras from Loose Women”.
Introducing William and Kate, Beckett asked the pair: “Your Royal Highnesses, thank you for coming out tonight. Date night? That’s exciting, isn’t it? It’s hard to get out, isn’t it?
“Have you got the babysitter until midnight or one? It’s worth the extra 20 quid until late.”
Ranganathan quipped of the couple: “I might know how it feels. Like me, you have been blessed with three kids.

Thackeray sung the hymn I Vow To Thee, My Country, backed by a military marching band and framed by a backdrop of the Royal Hospital Chelsea retirement home.
The night also saw Robbie Williams and Jamie Cullum duet music from Williams’ new album The Christmas Present.
Their performance was due to include Sir Rod Stewart but the veteran singer, 74, pulled out at the last minute due to a throat infection, saying on Instagram he was “absolutely devastated”.
Speaking ahead of the show, Royal Variety Charity chairman Giles Cooper said he hoped the night would raise as much as £850,000 – a “big chunk” of the charity’s annual income.
He said it was a shame Sir Rod could not perform but that cancellations were an unavoidable part of variety performances.
“It’s something that happens in showbusiness a lot,” he said.
In his place Scottish chart-topping singer Lewis Capaldi closed the first half of the show with his song Bruises.
Cellist Sheku Kanneh-Mason, who performed at the wedding of the Duke and Duchess of Sussex, was joined by his siblings on stage.
There were also performances from Emeli Sande and Manchester’s Bee Vocal Choir, Cirque Du Soleil’s Luzia and the cast of Mary Poppins, including Petula Clark, which is playing at the Prince Edward Theatre in Soho.
The Royal Variety Performance will air on ITV in early December.


This is test paragraph. SEE Console log.
Search:
Search:
Search:
Add Events
Inner Box
This is paragram


|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface IDeploymentAdapter
Interface defining a common deployment adapter within eclipse needed to reuse the UI implementation.
| Method Summary | |
|---|---|
void |
connect()
Connects to the database. |
boolean |
disconnect()
Disconnects from the database. |
String |
execute(CharSequence _command)
Executes given _command within the console. |
IExportItem |
export(org.eclipse.core.resources.IFile _file)
Extracts for given _file name the update code from the
database. |
IExportItem |
export(String _typeDef,
String _item)
Exports defined _item with depending _typeDef . |
org.eclipse.jface.resource.ImageDescriptor |
getImageDescriptor(org.eclipse.core.resources.IFile _file)
Returns for given _file related image descriptor. |
org.eclipse.jface.resource.ImageDescriptor |
getImageDescriptor(String _typeDef)
Returns for given type definition _typeDef related image
descriptor. |
ITypeDefRoot |
getTypeDefRoot()
Evaluates the type tree hierarchy and returns the root. |
boolean |
isConnected()
Checks if the adapter is already connected to the database. |
List<ISearchItem> |
search(Set<String> _typeDefList,
String _match)
Searches for given type definitions _typeDefList which
matches _match . |
void |
update(List<org.eclipse.core.resources.IFile> _files,
boolean _compile)
Updates given update _files in the database. |
| Method Detail |
|---|
boolean isConnected()
void connect() throws Exception
Exception
- if connect failedboolean disconnect() throws Exception
Exception
- if disconnect failedvoid update(List<org.eclipse.core.resources.IFile> _files, boolean _compile) throws Exception
_files
in the database.
_files
- update files to update in the database_compile
- if true all program files are compiled; if
false no files are compiled
Exception
- if update failed (or connect failed)IExportItem export(org.eclipse.core.resources.IFile _file) throws Exception
_file
name the update code from the
database.
_file
- update file for which the update code must be extracted
Exception
- if export failedIExportItem export(String _typeDef, String _item) throws Exception
_item
with depending _typeDef
.
_typeDef
- type definition_item
- MX name to export
Exception
- if export failedString execute(CharSequence _command) throws Exception
_command
within the console.
_command
- command to execute
Exception
- if execute failedList<ISearchItem> search(Set<String> _typeDefList, String _match)
_typeDefList
which
matches _match
.
_typeDefList
- set of searched type definitions_match
- match for the search
ITypeDefRoot getTypeDefRoot() throws Exception
null
if it could not evaluated)
Exception
- if execute failedorg.eclipse.jface.resource.ImageDescriptor getImageDescriptor(org.eclipse.core.resources.IFile _file)
_file
related image descriptor.
_file
- file for which the image descriptor is searched
null
org.eclipse.jface.resource.ImageDescriptor getImageDescriptor(String _typeDef)
_typeDef
related image
descriptor.
_typeDef
- type definition for which the image descriptor is
searched
null
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


This is a short example of how to use the foreach functionality in CommonHIT. Please inspect this document's source code to see how certain functionality is being achieved.
Any container with the CSS class hit-foreach
will act as a template
and will be instantiated multiple times (without the wrapping container):
The script in commonhit.js
will call a global function
(specified by the user in the data-func
attribute)
to obtain an array of objects
[x_1, x_2, ..., x_n]
.
Then for each object, the script will instantiate the template for each object
x_i
by replacing each
{{field}}
in the template with
x_i[field]
.
Sometimes you want the order of the list to be random.
This can be achieved by using HIT.shuffleArray(array)
.
This function shuffles the original array in place.
The return value of the function is the shuffled array:
Templates can be given an id
,
such that you can add new instances within a script:
window.counter = (window.counter || 0) + 1; HIT.Template.byId['scriptedForeach'].addItem({ value: counter, label: 'Vote for ' + counter }); HIT.generateIdNames($('#ScriptedList'));
It is also possible to get them byNode:
window.counter2 = (window.counter2 || 0) + 1; HIT.Template.byNode(document.getElementById('scriptedForeach2')).addItem({ value: counter2, label: 'Vote for ' + counter2 }); HIT.generateIdNames($('#ScriptedList2'));


The Sound
People passing by the blue house on West Grand Boulevard could often get a taste of the smooth lyrics and southern-style rhythms that made “The Motown Sound.” Composed of raw rhythm and heavily influenced by blues music, the “southern sound” traveled north with Black Americans during the Great Migration when 6 million Black Americans traveled from the rural Southern United States to urban areas in the Northeast, Midwest, and West between 1916 and 1970. Detroit, Michigan became home to thousands of Black families—so much that the population between 1870 and 1920 multiplied 12 times its size.Young men arriving in Detroit were presented with three employment opportunities they could do without the education they could not have received in the South: work the assembly line in the booming auto industry, take on boxing, and music. Those who found their homes in jazz and blues clubs around town found themselves in direct competition with growing musicians like Elvis Presley who had taken the “southern sound” in 1956 and made it popular while pushing those who were responsible for the sound (Black artists like Big Joe Turner, Ruth Brown, and Jackie Wilson) away from the spotlight. As Presley rose to the top of the charts, Black musicians realized that no matter how groovy and catchy their music was, it would not reach the same fame as long as it was tied to a black face.
In order to maintain independence from white musicians like Presley, Black musicians created their spaces in underground jazz and blues clubs where their music would shift and change and innovate. It was in these places, late at night, where Berry Gordy Jr found successes like James “Igor” Jamerson who saw the potential in using Arabic, Latin, and Asian styles in the music he was playing. Gordy also stumbled upon Benny “Papa Zita” Benjamin, a drummer who’s unique snare beats would become a staple of ”The Motown Sound.” Over the years, Gordy’s collection of musicians would come together and call themselves “The Funk Brothers.”
At the time, synthesizers were still a novel invention, so without access to one, Motown writers including Gordy Jr and the Funk Brothers had to get creative and began creating sounds that regular instruments could not produce. This included having artists stomp their feet to create a heavy bassline, shake jars full of various contents, and even drag chains across the floor to create unique sounds. In The Supremes’ 1964 release of “Where Did Our Love Go,'' a hand clap beat can be heard in the background. This was actually created by an Italian-American teenaged named Mike Valvano who stomped on two two-by-fours suspended by strings to create the sound of a group of foot-stompers. “Where Did Our Love Go” would go on to be the first single by the Supremes to hit #1 on the Billboard Hot 100 in the United States. They held that spot for two weeks.
The location where they recorded much of their music also showed their innovation and adaptability. Inside the blue two-story at 2648 W Grand Blvd was Studio A, a tiny basement that had been converted to a recording studio and referred to as the “Snakepit” by the musicians and singers who came in and out of that space. The soundproofing was created by old theater curtains and the walls were heavy with plaster to seal the cracks, but still, bands and singers created hit after hit inside those walls. According to Mary Wilson of the Supremes, working in such a tight space was “conducive to a better rapport between the singers and players” even if when one person messed up, everyone had to start over. The Snakepit was another aspect of what made Motown so unique, something that not even the biggest artists could recreate. This ability to push against barriers and come out with success defined the Motown Sound and spirit. When they saw that the cultural sound that made the Black experience was being stolen and repackaged by white musicians, they doubled down and made it their own again. This was also part of what made the Civil Rights Movement so successful—in both there was resilience and this resulted in black empowerment through music.
The Movement
In the world of music where for years, many black artists had been discredited as their music was stolen and sung by a white musician, Motown emerged to open a world for Black artists to find space on the charts among other mainstream musicians. This is the message that Black scholar Booker T. Washington preached during the 19th Century. Washington believed that Black Americans needed to achieve economic success because, in a capitalist-America, economic success translated into power. According to Washington, Black America was being held back because whites denied them economic freedom and therefore denied them power. The theme of black empowerment through economic success was central to the movement for civil rights. Activist and leader, Malcolm X once stated that much of the Black struggle came because “Black men don’t own and control their own community’s retail establishments that they can’t stabilize their own community.” Even at Gordy’s insistence that he and his company were neutral on the politics of the time, it is undeniable that Berry Gordy Jr and his Motown ensemble were an example of Malcolm X and Booker T Washington’s ideal Black economic independence.By 1972, Motown had produced more number one hits than the Beach Boys, the Rolling Stones, the Beatles, and Elvis Presley combined. More than ten of their acts and musicians would be honored in the Rock & Roll Hall of Fame including The Supremes (honored in 1988), The Temptations (honored in 1989), and Marvin Gaye (honored posthumously in 1987). The business model that created a cultural phenomenon would transcend generations and allow for the creation of contemporary moguls from JAY-Z with Roc-A-Fella to Andre Harrell with Uptown Records to Sean "Diddy" Combs with Bad Boy.
The 1960s were a time of political and social upheaval and Motown not only managed to survive this period but it exceeded all stereotypes and expectations for Black-owned businesses in America. Motown was embraced by the youth of the 60s and would be for generations to come. Stories that reflect the 60s are inaccurate without the influence and appearance and voice of Motown stars. By developing a new style and music, Motown was able to become the ultimate symbol of black success and independence.


Only One Winner
Alone, with a partner or your squad will compete against up to 100 players on a remote island with post soviet cities, underground bunkers and a military base. Here strategic gameplay is as important as shooting skills.
Players will enter a last-man-standing battle where they try to locate weapons, vehicles and supplies in a graphically nd tactically rich battleground that eventually forces players into a shrinking play zone as they engage in a tense and spectacular fight to the death.
Will you be the last one to survive?


Espanol | Contact Us | 123-456-789
LOGO Manage Policies Join the million of policy owners who are managing their accounts online!
Sign In
Email
Password
Forgot Password? Remember Me
Create an Account
Sign up to take advantage of your online benifits
Quick Pay
Pay your bill without sigining in
Policy Number
Date of Birth
Zip Code


--- layout: default title: "B+ Trees versus Skiplists" description: "This project involves the meticulous examination of B+ trees and Skiplists followed by the comparison between the two structures on the basis of it's implementation and their time complexities" quote: "If you need something, all you need to do is ask" ---
This project involves the meticulous examination of B+ trees and Skiplists followed by the comparison between the two structures on the basis of it's implementation and their time complexities.


Created on {{ contract.createdDateTime | date:'full' }} Updated on {{ contract.updatedDateTime | date:'full' }}
You have unsaved changes! Would you like to leave the page and lose them?


Ancestral Horn
The ominous call on this ancient heirloom will summon forth ghostly heroes of old from the Elysian Fields to do battle once more.
^a${value} Second(s) Recharge
300
${value} Energy Cost
225
${value} Summon Limit
3 3 3 3 4 4 4 4 4 5 5 5 5 5 5
${value} Summoned Immediately
3 3 3 3 4 4 4 4 4 5 5 5 5 5 5
Life Time ${value} Seconds
24
MaxLevel
16
UltimateLevel
20


No more ratings?
-
anonymous
Hi, I just installed 1.0a2 and I no longer have a way to rate songs from the Synergy menu -- one of my favorite features. Is this a bug, my system, or something else?
-
Greg Hurrell
The Synergy menu has never had this, because it would be duplicating something already in iTunes' own Dock Menu.
But as before you are still able to rate songs using hot keys that you define in the Synergy preferences.
Reply
This topic is now closed.


{% extends 'base.html' %} {% load bootstrap3 %} {% block content %}
This EventSlot runs from {{ event_slot.when.lower }} to {{ event_slot.when.upper }}. It is part of an EventSession for {{ event_slot.event_type.icon_html }} {{ event_slot.event_type }} at location {{ event_slot.event_location }}.
The scheduled Event is titled {{ event_slot.event.title }}
Really unschedule this Event?


This sample demonstrates a class installer and property page provider for the ports class of devices. The ports class is divided into two types of devices, COM (serial) ports and LPT or ECP (printer) ports. A separate property page is provided for each type of device. Furthermore, the class installer distinguishes both types of devices and installs each type of device differently.
Note: When using this sample, you need to code whatever is specific to your class. This sample is specific to port class only. Copying and pasting this code without modification may lead to disaster for other classes.The sample runs on the x86 platform. It has only been tested in a 32-bit environment.
Enter the checked or free build environment. Then, while in the Class Installer sample directory, type build. A successful build produces the executable pnpports.dll.
File Descriptionadvandlg.c Advanced dialog for COM port property page ports.h Ports header file ports.c Class Installer for the Ports clas pp.c Property Page Provider for COM ports pp.h Definitions for pp.c pp_lpt.c Property Page Provider for LPT and ECP ports pp_lpt.h Definitions for pp_lpt.c util.c Utility functions ports.rc Resources ports.rc2 Resources pnpports.def Exports file ports.htm This file Sources needed to build Makefile needed to build
This programming tour shows the specifics of the class installer and how the property pages are added and initialized.
When the device is being installed, the class installer must first determine whether a COM or LPT port is being installed. The class installer relies on the .inf file that installed the device to write this value into the registry. The .inf must include an AddReg directive which writes a binary value named PortSubClass in the driver key for the device instance. Please see the sections [LptPort.AddReg], [EcpPort.AddReg], and [ComPort.AddReg] in msports.inf.
The class installer handles ths following DIF codes:
The handling DIF_INSTALLDEVICE is specific to the device type. This example demonstrates how to handle DIF_INSTALLDEVICE for COM ports. While the Ports Class installer shipped with the system also handles LPT ports in DIF_INSTALLDEVICE, this sample just informs Setup to perform the default installation.
The primary purpose of the COM ports class installer is to assign a port name, e.g. COM1, to the device and to create a friendly name for the device that includes the port name. Providing a unique name to the port can prove to be difficult; with that in mind, a COM name database was created. The API for the database resides in msports.dll (which pnpports.dll links against). The database provides concurrent access to the list of names that have already been claimed by other ports and modems.
The COM port class installer assigns a name to the port in this priority:
The friendly name for the device must now be set. This is done by concatenating the device description of the device with port name chosen for the device. For instance, if the device description is "Communications Port" and the chosen port name is COM2, then the friendly name would be "Communications Port (COM2)."
If the DIF code is DIF_REMOVE and the device is a COM port, the port name is freed from the COM name database.
The property pages are loaded using the EnumPropPages32 value in the device driver key of the registry. Please see the sections [LptPort.NT.AddReg] and [ComPort.NT.AddReg] in msports.inf to see how to correctly write the values via an .inf file.
When the property page provider function is called (SerialPortPropPageProvider or ParallelPortPropPageProvider), it sets the pfnCallback field of the PROPSHEETPAGEstructure. This is done so that the PPORT_PARAMS or PLPT_PORT_PARAMS structure that was previously allocated will be freed whether the page was created or not. Note that the property page is not created until the user chooses it for the first time.
© 2005 Microsoft Corporation


Namespace GeForMT.Observation
Defined in: jsGeForMT_v1.0.full.js.
| Constructor Attributes | Constructor Name and Description |
|---|---|
|
Observation module
|
| Field Attributes | Field Name and Description |
|---|---|
| <private> <inner> |
EventObservation for entire web interface.
|
| <private> <inner> |
Global attribute to enable/ disable mousemove events.
|
| <private> <inner> |
Identifier that is incremented and is used for mouse-touch-emulation.
|
| <private> <inner> |
Setting to prevent default behaviour on events.
|
| <private> <inner> |
List of objects of type GeForMT.Observation.EventObservation.
|
| <inner> |
Enumeration of possible mouse and touch events.
|
| <inner> |
Registered listener that wants to be notified of events on document only.
|
| <inner> |
Registered listeners that wants to be notified of all events on interface objects related to defined gestures.
|
| Method Attributes | Method Name and Description |
|---|---|
| <private> <inner> |
_addEventListener(element, eventName, handler, captureEvents)
Helper method for cross-browser registering of event listeners.
|
| <private> <inner> |
_createAndDispatchTouchEvent(name, event)
Create and dispatch a TouchEvent to simulate a single touch with a mouse.
|
| <private> <inner> |
_notifyAllDocumentEventListener(eventName, event)
Notify all registered document event listener.
|
| <private> <inner> |
_notifyAllGestureEventListener(eventName, event)
Notify all registered gesture listener.
|
| <private> <inner> |
_removeEventListener(element, eventName, handler)
Helper method for cross-browser removing of event listeners.
|
| <static> |
GeForMT.Observation.addEventObservation(gestureId, elementList)
Register an observation on the given list of elements get informed
about interaction on them.
|
| <static> |
GeForMT.Observation.getObservationByElement(element)
Returns the observer that is already registered on the given element
node or null if it's not.
|
| <static> |
GeForMT.Observation.init(preventDefault)
Initialize observation module.
|
| <static> |
GeForMT.Observation.registerDocumentEventListener(eventName, callback)
Register listener objects that wants to be notified about
events that are registered on document object.
|
| <static> |
GeForMT.Observation.registerGestureEventListener(eventName, callback)
Register listener objects that wants to be notified about all interaction
events.
|
| <static> |
GeForMT.Observation.removeDocumentEventListener(eventName, callback)
Remove listener that don't want to be notified about
events on document object anymore.
|
| <static> |
GeForMT.Observation.removeGestureEventListener(eventName, callback)
Remove listener that don't want to be notified about all interaction
events anymore.
|
| <static> |
GeForMT.Observation.removeGestureFromEventObservation(gestureId)
Removes a gesture identifier from an event observation.
|
Field Detail
<private> <inner>
{GeForMT.Observation.EventObservation}
_documentEventObservation
EventObservation for entire web interface. Events are registered on document object.
This is necessary to detect events beyond objects that registered
for gestures, especially for feedback visualization.
- Default Value:
- null
<private> <inner>
{Boolean}
_mouseMoveEventEnabled
Global attribute to enable/ disable mousemove events.
- Default Value:
- false
<private> <inner>
_mouseStrokeId
Identifier that is incremented and is used for mouse-touch-emulation.
<private> <inner>
{Boolean}
_preventDefault
Setting to prevent default behaviour on events.
- Default Value:
- false
<private> <inner>
{Array}
_registeredEventObservations
List of objects of type GeForMT.Observation.EventObservation.
- Default Value:
- null
<inner>
{Object}
EVENT_TYPES
Enumeration of possible mouse and touch events.
<inner>
{Object}
RegisteredDocumentEventListener
Registered listener that wants to be notified of events on document only.
Holds listener objects for specific events. Accordingly the object contains variables like 'gesturestart',
'gesturechange' and 'gestureend' holding an array of callback functions.
<inner>
{Object}
RegisteredGestureEventListener
Registered listeners that wants to be notified of all events on interface objects related to defined gestures.
Holds listener objects for specific events. Accordingly the object contains variables 'gesturestart',
'gesturechange' and 'gestureend' holding an array of callback functions.
Method Detail
<private> <inner>
_addEventListener(element, eventName, handler, captureEvents)
Helper method for cross-browser registering of event listeners.
- Parameters:
- {Element} element
- {String} eventName
- {Function} handler
- {Boolean} captureEvents
<private> <inner>
_createAndDispatchTouchEvent(name, event)
Create and dispatch a TouchEvent to simulate a single touch with a mouse.
- Parameters:
- {String} name
- Event type of event to dispatch.
- {MouseEvent} event
- Original event, that has to be adapted.
<private> <inner>
_notifyAllDocumentEventListener(eventName, event)
Notify all registered document event listener.
- Parameters:
- {String} eventName
- Type name of the event.
- {UIEvent} event
- Adapted Touch Event.
<private> <inner>
_notifyAllGestureEventListener(eventName, event)
Notify all registered gesture listener.
- Parameters:
- {String} eventName
- Type name of the event.
- {UIEvent} event
- Adapted Touch Event.
<private> <inner>
_removeEventListener(element, eventName, handler)
Helper method for cross-browser removing of event listeners.
- Parameters:
- {Element} element
- {String} eventName
- {Function} handler
<static>
GeForMT.Observation.addEventObservation(gestureId, elementList)
Register an observation on the given list of elements get informed
about interaction on them.
- Parameters:
- gestureId
- {String} Identifier of the gesture.
- elementList
- {Array} List of all elements on which the events will be registered.
<static>
GeForMT.Observation.getObservationByElement(element)
Returns the observer that is already registered on the given element
node or null if it's not.
- Parameters:
- {Element} element
- Returns:
- GeForMT.Observation.EventObserver
<static>
GeForMT.Observation.init(preventDefault)
Initialize observation module.
- Parameters:
- preventDefault
- {Boolean} Set to true for preventing the default behaviour on all events.
<static>
GeForMT.Observation.registerDocumentEventListener(eventName, callback)
Register listener objects that wants to be notified about
events that are registered on document object. (only on document)
- Parameters:
- {String} eventName
- {Function} callback
<static>
GeForMT.Observation.registerGestureEventListener(eventName, callback)
Register listener objects that wants to be notified about all interaction
events.
- Parameters:
- {String} eventName
- {Function} callback
<static>
GeForMT.Observation.removeDocumentEventListener(eventName, callback)
Remove listener that don't want to be notified about
events on document object anymore. (only on document)
- Parameters:
- {String} eventName
- {Function} callback
<static>
GeForMT.Observation.removeGestureEventListener(eventName, callback)
Remove listener that don't want to be notified about all interaction
events anymore.
- Parameters:
- {String} eventName
- {Function} callback
<static>
GeForMT.Observation.removeGestureFromEventObservation(gestureId)
Removes a gesture identifier from an event observation.
- Parameters:
- {String} gestureId
- Identifier of the gesture, that has to be removed.


Nicky Britt
A serious badass game producer & force to be reckoned with
bio
resume
interest
videoGames
music
realEstate
Park East Tower - St. Louis
Blue City Spaces - St. Louis


SKSL | 2020
For many industry observers,we are today on the cusp of a Fourth Industrial Revolution.Developments in previously disjoined fields such as artifical intelligence and machine learning,roboticd,nanotechnology, and biotechnology are all building on and amplifying one another.
According to PwC,"...India can build shared prosperity for its 1.25 billion citizens by transforming the way the economy creates value. Corporate India has a critical role to play in this story,not only by creating value by addressing key societal needs but in suporting a vibrant entrepreneurial sector".Disruptive changes to business management and growth of businesses over the coming years.
We plan to take this oppurtunity to create business software solutions as high-growth business grapple with decisions around the best business system to manage its expanding operations.
SKSL | 2020


Vice President Microsoft
Worth $ 3 billion
"You know I stop and say wow the PC really has become part of the very fabric of the way people live and we certainly surged with it. I used to stop and say hmmm pretty incredible ride"
Steven Anthony "Steve" Ballmer born on March 24, 1956, is an American businessman. At college, Ballmer was a manager for the football team, worked on The Harvard Crimson newpaper as well as the Harvard Advocate, and lived down the hall from fellow sophmore Bill Gates. In 1980, he dropped out of the Stanford Graduate School of Business to join Microsoft.
"Bill said well, how's next week, and they said we're on an airplane, we're leaving in an hour, we'd like to be there tomorrow. Well, hallelujah. Right oh.
Steve Ballmer was a Harvard roommate of Gates. He'd just joined Microsoft and would end up its third billionaire. Back then he was the only guy in the company with business training.
Steve Ballmer joined Microsoft on June 11, 1980, and became Microsoft's 30th
employee, the first business manager hired by Gates.
Ballmer was initially
offered a salary of $50,000 as well as a percentageof ownership of the company.
When Microsoft was incorporated in 1981, Ballmer owned 8 percent of the company.


CORTISPORIN - neomycin sulfate, polymyxin b sulfate and hydrocortisone acetate cream
Physicians Total Care, Inc.
CORTISPORIN Cream (neomycin and polymyxin B sulfates and hydrocortisone acetate cream, USP) is a topical antibacterial cream. Each gram contains: neomycin sulfate equivalent to 3.5 mg neomycin base, polymyxin B sulfate equivalent to 10,000 polymyxin B units, and hydrocortisone acetate 5 mg (0.5%). The inactive ingredients are liquid petrolatum, white petrolatum, propylene glycol, polyoxyethylene polyoxypropylene compound, emulsifying wax, purified water, and 0.25% methylparaben added as a preservative. Sodium hydroxide or sulfuric acid may be added to adjust pH.
Neomycin sulfate is the sulfate salt of neomycin B and C, which are produced by the growth of Streptomyces fradiae Waksman (Fam. Streptomycetaceae). It has a potency equivalent of not less than 600µg of neomycin standard per mg, calculated on an anhydrous basis. The structural formulae are:
Polymyxin B sulfate is the sulfate salt of polymyxin B1 and B2, which are produced by the growth of Bacillus polymyxa (Prazmowski) Migula (Fam. Bacillaceae). It has a potency of not less than 6,000 polymyxin B units per mg, calculated on an anhydrous basis. The structural formulae are:
Hydrocortisone acetate is the acetate ester of hydrocortisone, an anti-inflammatory hormone. Its chemical name is 21-(acetyloxy)- 11β,17-dihydroxypregn-4-ene-3,20-dione. Its structural formula is:
The base is a smooth vanishing cream with a pH of approximately 5.0.
Corticoids suppress the inflammatory response to a variety of agents and they may delay healing. Since corticoids may inhibit the body’s defense mechanism against infection, a concomitant antimicrobial drug may be used when this inhibition is considered to be clinically significant in a particular case.
The anti-infective components in the combination are included to provide action against specific organisms susceptible to them. Polymyxin B sulfate and neomycin sulfate together are considered active against the following microorganisms: Staphylococcus aureus, Escherichia coli, Haemophilus influenzae, Klebsiella- Enterobacter species, Neisseria species, and Pseudomonas aeruginosa. The product does not provide adequate coverage against Serratia marcescens and streptococci, including Streptococcus pneumoniae.
The relative potency of corticosteroids depends on the molecular structure, concentration, and release from the vehicle.
The acid pH helps restore normal cutaneous acidity. Owing to its excellent spreading and penetrating properties, the cream facilitates treatment of hairy and intertriginous areas. It may also be of value in selective cases where the lesions are moist.
For the treatment of corticosteroid-responsive dermatoses with secondary infection. It has not been demonstrated that this steroid-antibiotic combination provides greater benefit than the steroid component alone after 7 days of treatment (see WARNINGS).
Not for use in the eyes or in the external ear canal if the eardrum is perforated. This product is contraindicated in tuberculous, fungal, or viral lesions of the skin (herpes simplex, vaccinia, and varicella). This product is contraindicated in those individuals who have shown hypersensitivity to any of its components.
Because of the concern of nephrotoxicity and ototoxicity associated with neomycin, this combination should not be used over a wide area or for extended periods of time.
As with any antibacterial preparation, prolonged use may result in overgrowth of nonsusceptible organisms, including fungi. Appropriate measures should be taken if this occurs. Use of steroids on infected areas should be supervised with care as anti-inflammatory steroids may encourage spread of infection. If this occurs, steroid therapy should be stopped and appropriate anti-bacterial drugs used. Generalized dermatological conditions may require systemic corticosteroid therapy.
Signs and symptoms of exogenous hyperadrenocorticism can occur with the use of topical corticosteroids, including adrenal suppression. Systemic absorption of topically applied steroids will be increased if extensive body surface areas are treated or if occlusive dressings are used. Under these circumstances, suitable precautions should be taken when long-term use is anticipated.
Specifically, sufficient percutaneous absorption of hydrocortisone can occur in pediatric patients during prolonged use to cause cessation of growth, as well as other systemic signs and symptoms of hyperadrenocorticism.
Information for PatientsIf redness, irritation, swelling or pain persists or increases, discontinue use and notify physician. Do not use in the eyes.
Laboratory TestsSystemic effects of excessive levels of hydrocortisone may include a reduction in the number of circulating eosinophils and a decrease in urinary excretion of 17-hydroxycorticosteroids.
Carcinogenesis, Mutagenesis, Impairment of FertilityLongterm studies in animals (rats, rabbits, mice) showed no evidence of carcinogenicity attributable to oral administration of corticosteroids.
PregnancyTeratogenic EffectsPregnancy Category C. Corticosteroids have been shown to be teratogenic in rabbits when applied topically at concentrations of 0.5% on days 6 to 18 of gestation and in mice when applied topically at a concentration of 15% on days 10 to 13 of gestation. There are no adequate and well-controlled studies in pregnant women. Corticosteroids should be used during pregnancy only if the potential benefit justifies the potential risk to the fetus.
Nursing MothersHydrocortisone acetate appears in human milk following oral administration of the drug. Since systemic absorption of hydrocortisone may occur when applied topically, caution should be exercised when CORTISPORIN Cream is used by a nursing woman.
Geriatric UseClinical studies of Cortisporin Cream did not include sufficient numbers of subjects aged 65 and over to determine whether they respond differently from younger subjects. Other reported clinical experience has not identified differences in responses between the elderly and younger patients. In general, dose selection for an elderly patient should be cautious, usually starting at the low end of the dosing range, reflecting the greater frequency of decreased hepatic, renal, or cardiac function, and of concomitant disease or other drug therapy.
Pediatric UseSafety and effectiveness in pediatric patients have not been established (see PRECAUTIONS: General).
Neomycin occasionally causes skin sensitization. Ototoxicity and nephrotoxicity have also been reported (see WARNINGS). Adverse reactions have occurred with topical use of antibiotic combinations including neomycin and polymyxin B. Exact incidence figures are not available since no denominator of treated patients is available. The reaction occurring most often is allergic sensitization. In one clinical study, using a 20% neomycin patch, neomycin-induced allergic skin reactions occurred in two of 2,175 (0.09%) individuals in the general population.1 In another study, the incidence was found to be approximately 1%.2
The following local adverse reactions have been reported with topical corticosteroids, especially under occlusive dressings: burning, itching, irritation, dryness, folliculitis, hypertrichosis, acneiform eruptions, hypopigmentation, perioral dermatitis, allergic contact dermatitis, maceration of the skin, secondary infection, skin atrophy, striae, and miliaria.
When steroid preparations are used for long periods of time in intertriginous areas or over extensive body areas, with or without occlusive non-permeable dressings, striae may occur; also there exists the possibility of systemic side effects when steroid preparations are used over large areas or for a long period of time.
A small quantity of the cream should be applied 2 to 4 times daily, as required. The cream should, if conditions permit, be gently rubbed into the affected areas.
Tube of 7.5 g (NDC 54868-1531-1).
Store at 15° to 25°C (59° to 77°F).
Leyden JJ, Kligman AM. Contact dermatitis to neomycin sulfate. JAMA. 1979;242:1276-1278.
Prystowsky SD, Allen AM, Smith RW, et al. Allergic contact hypersensitivity to nickel, neomycin, ethylenediamine, and benzocaine. Arch Dermatol. 1979;115:959-962.
Prescribing Information as of November 2003.
Distributed by: Monarch Pharmaceuticals, Inc., Bristol, TN 37620
(A wholly owned subsidiary of King Pharmaceuticals, Inc.)
Manufactured by: King Pharmaceuticals, Inc., Bristol, TN 37620
Relabeling of "Additional Barcode" label by:
Physicians Total Care, Inc.
Tulsa, OK 74146
|
CORTISPORIN
neomycin sulfate, polymyxin b sulfate and hydrocortisone acetate cream | ||||||||||||||||||||
| ||||||||||||||||||||
| ||||||||||||||||||||
| ||||||||||||||||||||
| ||||||||||||||||||||
|
| Labeler - Physicians Total Care, Inc. (194123980) |
| Establishment | |||
| Name | Address | ID/FEI | Business Operations |
|---|---|---|---|
| Physicians Total Care, Inc. | 194123980 | relabel |


Because of JavaScript security restrictions enforced by some browsers, this page needs to be served by a Mingle instance or a webserver so that the host and port are the same as the Mingle instance.
You can do this easily in a development environment by moving this git repo to the MINGLE_DIR/public folder. It can then be accessed here.


rm(list = ls())
library(pander)
panderOptions('table.split.table', Inf)
library(ggplot2)
library(dplyr)
library(data.table)
options(datatable.fread.datatable = FALSE)
theme_set(theme_bw(base_size=15))
set.seed(2020)
# load some gists
source('https://gist.githubusercontent.com/liangyy/43912b3ecab5d10c89f9d4b2669871c9/raw/3ca651cfa53ffccb8422f432561138a46e93710f/my_ggplot_theme.R')
# load dependent scripts
source('../code/rlib_misc.R')
To build PRS, we need to have external GWAS results. Here we focus on the GWASs generated by Neale’s lab using UK Biobank data. The main goal here is to determine which GWAS phenotype could be used for which parental illness phenotype. Also, we have sex specific GWASs, so that they should be considered as well.
Load parental illness phenotypes.
list_init = readRDS('../analysis_output/parent_illness_init_phenotypes_clean_up.rds')
df_parental_illness = list_init$code
rm(list_init)
df_parental_illness = rbind(
df_parental_illness$father,
df_parental_illness$mother
) %>% distinct() %>% filter(code > 0)
df_parental_illness %>%
pander(caption = 'Parental illness (combined from mother and father)')
| code | choice | grp | choice_w_grp |
|---|---|---|---|
| 1 | Heart disease | 1 | Heart disease (1) |
| 2 | Stroke | 1 | Stroke (1) |
| 8 | High blood pressure | 1 | High blood pressure (1) |
| 9 | Diabetes | 1 | Diabetes (1) |
| 6 | Chronic bronchitis/emphysema | 1 | Chronic bronchitis/emphysema (1) |
| 10 | Alzheimer’s disease/dementia | 1 | Alzheimer’s disease/dementia (1) |
| 11 | Parkinson’s disease | 2 | Parkinson’s disease (2) |
| 12 | Severe depression | 2 | Severe depression (2) |
| 3 | Lung cancer | 2 | Lung cancer (2) |
| 4 | Bowel cancer | 2 | Bowel cancer (2) |
| 13 | Prostate cancer | 2 | Prostate cancer (2) |
| 5 | Breast cancer | 2 | Breast cancer (2) |
Load Neale’s lab GWAS sheet.
# downloaded from
# https://docs.google.com/spreadsheets/d/1kvPoupSzsSFBNSztMzl04xMoSC3Kcx3CrjVf4yBmESU
# Sheet="Manifest 201807"
# download date: 4/17/20
df_gwas = read.csv('~/Downloads/UKBB GWAS Imputed v3 - File Manifest Release 20180731 - Manifest 201807.csv')
Load self reported Data Field 20002 (non-cancer illness).
# downloaded from here: http://biobank.ctsu.ox.ac.uk/crystal/coding.cgi?id=6
df_self_report_noncancer = read.delim2('~/Downloads/coding6.tsv')
field_self_report_noncancer = 20002
Load self reported Data Field 20001 (cancer illness).
# downloaded from here: http://biobank.ctsu.ox.ac.uk/crystal/coding.cgi?id=3
df_self_report_cancer = read.delim2('~/Downloads/coding3.tsv')
field_self_report_cancer = 20001
Load ICD-10 Data Field 41202
# downloaded from here: http://biobank.ctsu.ox.ac.uk/crystal/coding.cgi?id=19
df_icd10 = read.delim2('~/Downloads/coding19.tsv')
field_icd10 = 41202
The procedure and principle:
get_code = function(pool, code, target) {
code[pool %in% target]
}
gwas_container = list()
indices = 1 : nrow(df_parental_illness)
i = 1
I24,Diagnoses - main ICD10: I24 Other acute ischaemic heart diseases,http://biobank.ctsu.ox.ac.uk/crystal/field.cgi?id=41202
I25,Diagnoses - main ICD10: I25 Chronic ischaemic heart disease,http://biobank.ctsu.ox.ac.uk/crystal/field.cgi?id=41202
I27,Diagnoses - main ICD10: I27 Other pulmonary heart diseases,http://biobank.ctsu.ox.ac.uk/crystal/field.cgi?id=41202
I51,Diagnoses - main ICD10: I51 Complications and ill-defined descriptions of heart disease,http://biobank.ctsu.ox.ac.uk/crystal/field.cgi?id=41202
disease = df_parental_illness$choice[indices[i]]
i = i + 1
message('Processing ', disease)
## Processing Heart disease
# self-reported
code = get_code(df_self_report_noncancer$meaning, df_self_report_noncancer$coding, 'heart/cardiac problem')
neale_id = paste0(field_self_report_noncancer, '_', code)
# icd-10
# other
gwas_container[[length(gwas_container) + 1]] = data.frame(disease = disease, gwas_code = neale_id)
disease = df_parental_illness$choice[indices[i]]
i = i + 1
message('Processing ', disease)
## Processing Stroke
# self-reported
code = get_code(df_self_report_noncancer$meaning, df_self_report_noncancer$coding, 'stroke')
neale_id = paste0(field_self_report_noncancer, '_', code)
# icd-10
# other
neale_id = c(
neale_id,
'6150_3'
)
gwas_container[[length(gwas_container) + 1]] = data.frame(disease = disease, gwas_code = neale_id)
disease = df_parental_illness$choice[indices[i]]
i = i + 1
message('Processing ', disease)
## Processing High blood pressure
# self-reported
code = get_code(df_self_report_noncancer$meaning, df_self_report_noncancer$coding, c('hypertension', 'essential hypertension'))
neale_id = paste0(field_self_report_noncancer, '_', code)
# icd-10
neale_id = c(neale_id, 'I10')
# other
neale_id = c(neale_id, '6150_4')
gwas_container[[length(gwas_container) + 1]] = data.frame(disease = disease, gwas_code = neale_id)
Note: I focus on T2D.
E10,Diagnoses - main ICD10: E10 Insulin-dependent diabetes mellitus,http://biobank.ctsu.ox.ac.uk/crystal/field.cgi?id=41202
E11,Diagnoses - main ICD10: E11 Non-insulin-dependent diabetes mellitus,http://biobank.ctsu.ox.ac.uk/crystal/field.cgi?id=41202
E14,Diagnoses - main ICD10: E14 Unspecified diabetes mellitus,http://biobank.ctsu.ox.ac.uk/crystal/field.cgi?id=41202
disease = df_parental_illness$choice[indices[i]]
i = i + 1
message('Processing ', disease)
## Processing Diabetes
# self-reported
code = get_code(df_self_report_noncancer$meaning, df_self_report_noncancer$coding, c('diabetes', 'type 2 diabetes'))
neale_id = paste0(field_self_report_noncancer, '_', code)
# icd-10
# other
neale_id = c(neale_id, '2443')
gwas_container[[length(gwas_container) + 1]] = data.frame(disease = disease, gwas_code = neale_id)
J20,Diagnoses - main ICD10: J20 Acute bronchitis,http://biobank.ctsu.ox.ac.uk/crystal/field.cgi?id=41202
J40,"Diagnoses - main ICD10: J40 Bronchitis, not specified as acute or chronic"
disease = df_parental_illness$choice[indices[i]]
i = i + 1
message('Processing ', disease)
## Processing Chronic bronchitis/emphysema
# self-reported
code = get_code(df_self_report_noncancer$meaning, df_self_report_noncancer$coding, c('emphysema/chronic bronchitis', 'bronchitis', 'emphysema'))
neale_id = paste0(field_self_report_noncancer, '_', code)
# icd-10
neale_id = c(neale_id, 'J43')
# other
neale_id = c(neale_id, '22128', '22129')
gwas_container[[length(gwas_container) + 1]] = data.frame(disease = disease, gwas_code = neale_id)
i = i + 1
disease = df_parental_illness$choice[indices[i]]
i = i + 1
message('Processing ', disease)
## Processing Parkinson's disease
# self-reported
code = get_code(df_self_report_noncancer$meaning, df_self_report_noncancer$coding, c('parkinsons disease'))
neale_id = paste0(field_self_report_noncancer, '_', code)
# icd-10
neale_id = c(neale_id, 'G20')
# other
gwas_container[[length(gwas_container) + 1]] = data.frame(disease = disease, gwas_code = neale_id)
disease = df_parental_illness$choice[indices[i]]
i = i + 1
message('Processing ', disease)
## Processing Severe depression
# self-reported
code = get_code(df_self_report_noncancer$meaning, df_self_report_noncancer$coding, c('depression'))
neale_id = paste0(field_self_report_noncancer, '_', code)
# icd-10
# other
neale_id = c(neale_id, '20126_3', '20126_4', '20544_11')
gwas_container[[length(gwas_container) + 1]] = data.frame(disease = disease, gwas_code = neale_id)
disease = df_parental_illness$choice[indices[i]]
i = i + 1
message('Processing ', disease)
## Processing Lung cancer
# self-reported
code = get_code(df_self_report_cancer$meaning, df_self_report_cancer$coding, c('lung cancer'))
neale_id = paste0(field_self_report_cancer, '_', code)
# icd-10
# other
neale_id = c(neale_id, '22140')
gwas_container[[length(gwas_container) + 1]] = data.frame(disease = disease, gwas_code = neale_id)
disease = df_parental_illness$choice[indices[i]]
i = i + 1
message('Processing ', disease)
## Processing Bowel cancer
# self-reported
code = get_code(df_self_report_cancer$meaning, df_self_report_cancer$coding, c('small intestine/small bowel cancer', 'large bowel cancer/colorectal cancer'))
neale_id = paste0(field_self_report_cancer, '_', code)
# icd-10
# other
gwas_container[[length(gwas_container) + 1]] = data.frame(disease = disease, gwas_code = neale_id)
disease = df_parental_illness$choice[indices[i]]
i = i + 1
message('Processing ', disease)
## Processing Prostate cancer
# self-reported
code = get_code(df_self_report_cancer$meaning, df_self_report_cancer$coding, c('prostate cancer'))
neale_id = paste0(field_self_report_cancer, '_', code)
# icd-10
# other
gwas_container[[length(gwas_container) + 1]] = data.frame(disease = disease, gwas_code = neale_id)
disease = df_parental_illness$choice[indices[i]]
i = i + 1
message('Processing ', disease)
## Processing Breast cancer
# self-reported
code = get_code(df_self_report_cancer$meaning, df_self_report_cancer$coding, c('breast cancer'))
neale_id = paste0(field_self_report_cancer, '_', code)
# icd-10
# other
gwas_container[[length(gwas_container) + 1]] = data.frame(disease = disease, gwas_code = neale_id)
df_gwas_container = do.call(rbind, gwas_container)
df_gwas_container = df_gwas_container %>% left_join(
df_gwas %>% select(Phenotype.Code, Sex, wget.command),
by = c('gwas_code' = 'Phenotype.Code'))
## Warning: Column `gwas_code`/`Phenotype.Code` joining factors with different levels, coercing to character vector
write.csv(df_gwas_container, '../analysis_output/summary.gwas_neale_lab.csv')
df_gwas_container %>% group_by(disease, Sex) %>% summarize(ngwas = n()) %>% pander
| disease | Sex | ngwas |
|---|---|---|
| Chronic bronchitis/emphysema | both_sexes | 6 |
| Chronic bronchitis/emphysema | female | 4 |
| Chronic bronchitis/emphysema | male | 4 |
| Diabetes | both_sexes | 3 |
| Diabetes | female | 3 |
| Diabetes | male | 3 |
| Heart disease | both_sexes | 1 |
| Heart disease | female | 1 |
| Heart disease | male | 1 |
| High blood pressure | both_sexes | 4 |
| High blood pressure | female | 4 |
| High blood pressure | male | 4 |
| Stroke | both_sexes | 2 |
| Stroke | female | 2 |
| Stroke | male | 2 |
| Bowel cancer | both_sexes | 2 |
| Bowel cancer | female | 1 |
| Bowel cancer | male | 1 |
| Lung cancer | both_sexes | 2 |
| Lung cancer | male | 1 |
| Parkinson’s disease | both_sexes | 2 |
| Parkinson’s disease | female | 1 |
| Parkinson’s disease | male | 2 |
| Prostate cancer | male | 1 |
| Severe depression | both_sexes | 5 |
| Severe depression | female | 5 |
| Severe depression | male | 5 |
| Breast cancer | female | 1 |
For efficient computation, I need to group the GWASs into batches.
get_partition = function(ngrp, ntotal) {
size = floor(ntotal / ngrp)
o = c()
for(i in 1 : ngrp) {
o = c(o, rep(i, size))
}
o = c(o, rep(ngrp, ntotal - (ngrp * size)))
return(o)
}
gwas_df = read.csv('../analysis_output/summary.gwas_neale_lab.csv')
gwas_df$id = fread(cmd = "cat ../analysis_output/summary.gwas_neale_lab.csv |tail -n +2 | cut -d, -f 5|awk -F\"/\" '{print $6}'| awk -F\"?\" '{print $1}' | sed 's#.tsv.bgz##g'", header = FALSE, data.table = FALSE)$V1
ngroup = 10
gwas_df$groupid = paste0('_group', get_partition(ngroup, nrow(gwas_df)), '_')
# save to text
gwas_df %>% select(id, groupid) %>% write.table('../analysis_output/analysis_batch.gwas_neale_lab.txt', quote = F, row.names = F, col.names = F, sep = '\t')


--- layout: base title: Top position class: drawer drawer-top theme: drawer-default mode: default base_url: "../" ---


About Me
Projects
Staff and Student Management Software is a software written in C++ framework QT. This project was done as a semester project for second semester Kathmandu University. The main purpose of this software is to easily add, modify and search records .
Digitized Info Wall is a website written using HTML,CSS,JS,PHP. This project was done as a 3rd semester project.The main purpose of this website is to provide a standard official communication medium for students and teachers such tat they can exchange notes,read notices,chat with is others.
Xplore Nepal is a tourist app written in java IDE Android Studio.This project was done as a 4th semester project.The main purpose of this app is to give information about various tourist area of Nepal as well as other informations like hotels,restaurants,etc and guide them to respective places.
Experience
Searching For Experience #Short description of the company (optional)
Education
St. Xavier’s College
+2 Science(Physics)
2014-2016
I studied +2 Science(Physics) in St. Xavier’s College,Maitighar for two years.
Katmandu University
Bachelor of computer engineering
2016-2020
I am studying Computer Engineering program in Department of Computer Science and Engineering of Kathmandu University
A Little More About Me
Skills:
Beginner's Skills:- Tenserflow
Intermediate Skills:- Java,python,php,javascript
Expert Skills:- c,c++,html,css
Interests: Have a keen interest in Cyber Security, Playing cricket


This is paragraph f69b2095-bcf1-462f-8941-b25733e58ef6
This is paragraph 5365bffa-a06c-478f-8c7e-2762a633a28e


Analytics
menu
Home
Search
Profile
Settings
Home
Search
Profile
Settings
Brand Transactions Chart
Finance
ENF Earned this month
Total ENF Earned chart (monthly) Brands+ followers
# of livestreams held
Charms earned per month:
Interaction
Monthly views on profile:
# of searches for your profile
# of brands that responded per month
# of views on livestream
message


Hi, I'm Humad. I write code and develop software.
I'm studying Computer Science at the University of Massachusetts Amherst. I've been developing software for the past 2 years, both professionally and as a hobby.
I'm graduating in December 2018 and actively looking for full-time software development opportunities.
I have experience with iOS Development using Swift and Full Stack Web Development using Node.js, Express, MongoDB, and React.
I'm currently working as a Software Developer and Teaching Assistant Intern at Horizons School of Technology in San Francisco for the summer. I also work as an iOS Developer for the Center of Youth Engagement at UMass Amherst during the academic year.
I'm passionate about technology, writing clean code, and creating robust software.
Are you in/near Amherst? Let's meet up for coffee!
I'm happy to talk about Web Development, iOS Development, or just Software Engineering in general.
If you don't want to talk about any of that, lets discuss books (I'm currently reading The Last Lecture by Randy Pausch) or movies (I think Isle of Dogs should win an Oscar!).
Send me an email to schedule a time to meet 😁
Motivate Bot is an application that sends motivational and/or wholesome text messages to its subscribers at regular intervals.
The thought that triggered the creation of this application was, “I want to make people smile”. The idea is simple: send a message to the subscribers. However, I had to put together lots of different components in code to make this work.
First, there had to be an API that could provide random quotes. Luckily, I built one years ago.
Second, I needed to connect to Twilio’s API to be able to send text messages.
And finally, I needed to have my own database of users to go through at a regular interval and determine whether or not to send a message to them (depending on whether or not they were still subscribed, and how much time had passed since they received their last message). I also gave users the ability to select the frequency of text messages for themselves.
Initially, Motivate Bot was supposed to be a Facebook messenger application but Facebook took too long to approve my app request, so I switched over to text messages. When first creating Motivate Bot, I wrote a Medium article about how to create Facebook Messenger bots.
Motivate Bot is currently live. There is also an iOS app in development for me to track app usage.
Created using JavaScript, Node.js, Twilio, MongoDB, Heroku.
Subscribe to Motivate Bot!
See the code!
Close Project
A content sharing platform that provides insights into user emotions and emotional changes.
I collaborated with 3 other developers on this project.
The idea is to have a platform where content creators, similar to those on YouTube or Twitch, can either upload or share their content for users to view. Apart from the usual metrics such as user views and likes/dislikes, the content creators will be able to see (either in graph form or via some other visual representation) how the users felt while viewing content. This is extremely valuable information for content creators as it allows them to determine weaknesses in their content and equips them with the data necessary to produce better content.
The application will require a device with a front facing camera, such as a laptop or a phone, in order to read the user’s facial features using the Affectiva API to determine their emotions. The Affectiva API runs purely on the browser and does not require any additional resources.
Reel Feels is currently offline because hosting it is currently too expensive and it is no longer actively maintained. However, feel free to download the code and run it on your computer!
Created using: Python, JavaScript, SQL, Django, Affectiva, Google Charts.
When smart speakers were still new technology, they didn't have as many features as they did today. When I first bought the Google Home, it couldn't answer questions about movies very well. Instead of waiting for better features, I decided to create my own.
Movie Guide offers information to the user about movies. Users can interact with it using their voice or through text.
Movie Guide is an agent created using API.AI with a webhook that was created using Node.js and Express.js. It is integrated with Actions on Google and can be used on devices such as smartphones running Android, and Google Home.
Since there aren't a lot of good movie information APIs (surprisingly), I had to create a little web scraper using Cheerio that would go through IMDB and gather some information from there.
Smart speakers have evolved since I created Movie Guide. Since it was no longer needed, I decided to take it down. However, if you like, you can download the code and run it locally!
Created using: JavaScript, Node.js, API.AI, Express


Ready to dive in? You're moments away from building your first element or your first app.
You're viewing an older version of Polymer. Please see Polymer 2.0 for the latest.
Get started using Web Components in your apps.
Browse the Polymer Element Catalog for interoperable elements that can be used on any site.
Browse elements Learn moreReady to create your own elements?
With custom elements, you can extend HTML semantics, brand and polish your UI, or embed rich functionality in your site.
Build an element Learn moreBuild Progressive Web Apps from the ground up with Web Components.
Use the pieces of the Polymer App Toolbox to deliver fast, responsive apps that work from anywhere.
Build an app Learn moreJoin Rob Dodson from the Chrome Developer Relations team for Polycasts, a comprehensive set of videos exploring the ins and outs of Polymer. Start a new Polymer project from scratch, add functionality to your elements, or get a crash course on understanding data binding. Create accessible components, and localize them for your target audience.
Watch more
npm install -g polymer-cli
mkdir my-app
cd my-app
polymer init
Polymer CLI is a command-line interface for building elements with Polymer and applications with the Polymer App Toolbox. It streamlines your workflow, making it easy to manage projects ranging from simple components to complex web apps.
Install the CLI


by Julia Hack
First of all, I would like to give credit to the Jekyll documentation step-by-step tutorial for giving me the code to work with on my blog page.
I am not sure what happened exactly, but for a while my blog page decided to stop working. Upon searching on stack overflow I noticed some people were having issues with the _site folder deleting and regenerating each time you serve the site again. I had this problem as well, because my logo decided it would just disappear when I served the site again.
This is because I placed it directly in the img folder inside of _site. I learned from this that you DON’T TOUCH the _site folder. That is for jekyll to render your site. From this I also learned that you need to use “jekyll build” when you make changes to your site, then re-serve it. Seems to be working so far but I am a bit shaky on my understanding of it.
After messing around in the code a fair bit, and doing severl “jekyll build” & “bundle exec jekyll serve”, something changed and my blog now works (again). I suspect it has something to do with the commands I mentioned above.
tags: jekyll


UPPRPB Police 2018 Constable Recruitment Results: Uttar Pradesh Police Recruitment and Promotion Board (UPPRPB) declares Police 2018 Constable Recruitment Results @ uppbpb.gov.in
by JKR StaffUPPRPB Police 2018 Constable Recruitment Results: The Uttar Pradesh Police Recruitment and Promotion Board (UPPRPB) has declared Police 2018 Constable Recruitment Results on its official website uppbpb.gov.in. The results announced on 20 November are for the written exams for the 2018 Reserve PAC (Constable).
123,921 candidates have made the cut. The successful candidates will not undergo what’s known as the Document Verification and Physical Standard Test (DVPST) round. The UPPRPB will announce the details on the next round soon.
Follow these steps to get your results
- Visit the UPPRPB official website uppbpb.gov.in
- Click the link to check the result for the relevant exam available on the home page
- A PDF with details of all the successful candidates will open
- You can click here for direct link of the results
About UPPRPB
Vision :- UP Police Recruitment and Promotion Board is committed to being a leader in recruitment, through impartial and objective methodology, adopting transparent processes, innovative technological applications, continuous evolution and growth.
Mission :- UP Police Recruitment and Promotion Board is committed to providing services which are appropriate to the needs of the police force based on its requirements to meet the challenges of the millennium.
Founding Principles :-
* To adopt and implement procedures which are fair, impartial, transparent, non-discretionary, and non-discriminatory.
* To inculcate a work culture of truthfulness, conscientious professionalism, responsibility, accountability, mutual trust and respect amongst one another and upholding the highest core values of reliability and work ethos.
* To achieve the goals, we strive to work as a team within the Board and in collaboration with other agencies, making use of their abilities, diverse experiences and skills in human resource management.


Flog My Pussy from EroticHabit
Description: This is the Ass-Stinging Tails Sample for the story Flog My Pussy performed by Erotic Habit’s Rosie McCoy. The story runs 23 minutes and 15 seconds and your purchase will include the digitally mastered mp3 and several sexy HD photos as well as the ebook. Buy it here (link: www.IWantClips.com ). Eventually I’ll update that link to go right to my store or the product page. Again, want to show the company the purpose of the outbound link to here for samples. They don’t afford audio samples on their site. So I will log into the portal, upload the mp3, title it, add the description, and upload a thumbnail. We spend a lot of time making these thumbnails, you’ll see this is the one I’m working on attached for this cover, so I wouldn’t mind if the thumbnail appeared large, it will only add sex appeal. You can use that for now as the sample thumbnail.
Eat Me from EroticHabit
Description: This is the Snatch Sample of Eat Me performed by Erotic Habit’s Kristen Stewart.  It runs 5 and a half minutes long and your purchase will include the digitally mastered mp3 and the ebook as well as a hot HD photo of Kristen. Buy it here (link: www.IWantClips.com ).
 Don’t miss it, it runs just over 7 minutes and your purchase includes the mp3 audiobook recorded on a Telefunken AR-51 and digitally mastered by the experts at Erotic Habit. You will also receive a hot HD photo of Vanessa as well as the ebook.
Description: This is the Pussy Perv sample from the erotic 1st person confession known as McKayla’s Lesbian Confession, performed by Erotic Habit’s Mandy Miller. In this 1st person confession, McKayla tells you all about her belated, yet first time with a woman, as she experiences being ripped out of her timid lesbian closet by a sadomasochistic lesbian goddess… right in the locker room of the local gym… after perving on her on the thigh spreader machine. Your purchase comes with a digitally mastered mp3 recorded in the highest quality you’ll ever come across in audiobooks. You will also receive a copy of the ebook and cover graphic and several nude photos of McKayla, or Mandy… You’ll have to figure out who it is. You can use the other attachment for now as the sample thumbnail. The final thumbs will be the ebook covers with graphic titles and such, so again, would love to have a large thumb, like regular photo size. For the others, just use the question mark thumbnail. I’ll have to replace them all eventually. I don’t have one finished ebook graphic yet, everything is in works. I’ll come back in all the time and edit the titles and descriptions too. That will be my grooming job.
That Gorgeous Male Body from EroticHabit
Description: This is the The Way You Blow main sample for That Gorgeous Male Body, runtime of 31 minutes and 30 seconds, performed by Gwen German of Erotic Habit.  Not our best recording as there were b.g. noises and other mic interferences because Gwen was masturbating so loud while she recorded it. But it still sounds better than most anything you’ll find on the market today. We are just perfectionists here at Erotic Habit. Your purchase will include the mastered mp3 as well as the ebook.


Former Selangor police chief dies
by BernamaSHAH ALAM (Nov 18): Former Selangor police chief Datuk Mohd Shukri Dahlan died at a private hospital here today of liver cancer. He was 65.
His daughter, Fateen Mohd Shukri said her father breathed his last at 4.45pm.
"He was taken to the hospital at about 4.30 pm after complaining of feeling unwell," she said when contacted.
The remains of Mohd Shukri will be brought to his home at Jalan Empangan Satu 8/14A, Section 8 here tonight.
Funeral prayers will be held tomorrow at the State Mosque at 9 am before burial at Section 21 Muslim cemetery here.
Throughout his service, Mohd Shukri had also served as Perak police chief.
He had been appointed as the Selangor Islamic Religious Council member for 2015-2017 term. — Bernama


Menu
A menu of all of our cupcakes!
Here are all the cupcake flavors we provide!
Chocolate
Vanilla
Lemon
Red Velvet


{% extends 'sitewide/base.html' %}
{% block title %}{{object.name}}{% endblock %}
{% load humanize %}
{% block metablock %}
{% endblock %}
{% load react %}
{% block body %}
{{object.name}}
{% if object.e_type == "comm" %}
Political Committee
{% endif %}
{% if object.e_type == "person" %}
Individual Contributor
{% endif %}
{% if object.e_type == "corp" %}
Company or Corporate Contributor
{% endif %}
How we get this information
State laws require that political organizations report their donations and spending to the Missouri Ethics Commission anywhere between one and five times each year, depending on the kind of organization and how much money they raise. We compile these reports and other public records to create profiles for each donor and political organization.
{% if object.income.all %}
Income
{% if top_donors %}
Top Income Sources
Source
Total Received
{% for donor in top_donors %}
{{donor.t_from__name}}
${{donor.amount|floatformat:2|intcomma}}
{% endfor %}
{% endif %}
Income by Source Type
{% react_render component="amUI.FinanceTypePie" prop_corp=object.get_total_income_from_corp prop_comm=object.get_total_income_from_comm prop_people=object.get_total_income_from_people %}
Corporate Spending
${{object.get_total_income_from_corp|default_if_none:"0"|floatformat:2|intcomma}}
Political Committees
${{object.get_total_income_from_comm|default_if_none:"0"|floatformat:2|intcomma}}
Private Individuals
${{object.get_total_income_from_people|default_if_none:"0"|floatformat:2|intcomma}}
{% endif %}
{% if object.spending.all %}
Spending
{% if top_targets %}
Top Spending Targets
Recipient
Total Spent
{% for target in top_targets %}
{{target.t_to__name}}
${{target.amount|floatformat:2|intcomma}}
{% endfor %}
{% endif %}
Spending by Recipient Type
Corporations
${{object.get_total_spending_to_corp|default_if_none:"0"|floatformat:2|intcomma}}
Political Committees
${{object.get_total_spending_to_comm|floatformat:2|intcomma}}
Private Individuals
${{object.get_total_spending_to_people|default_if_none:"0"|floatformat:2|intcomma}}
{% endif %}
{% endblock %}
{% block adminlink %}


Streetwear
Contact
About Me
Dominic Wong
Overated Brands
Supreme
Bape
Palace
Gucci
Anti Social Social Club
Underated classic brands
Stussy
Undefeated
Obey
Huf
Diamond Supply Co.
Thrasher
How to be a fuccboii
Hype Fam


I had 5 medium sized bowl packed hits layed out ready to go. I started with the first and the feeling hit me almost instantly. I remember standing up to blow the smoke out of my window and feeling a bit woosy and light-headed, not uncommon while holding your breath and standing up, so I loaded up another bowl. The second bowl brought me further into the experience. I couldn't even stand up to blow the smoke out the window. It's what's called 'salvia gravity' or so I've read. My body felt like it was being pulled in all directions, but the only comfortable one that I could go was straight down onto my bed.
I then proceeded to load a third bowl and I put on 'Thirteenth Step' by A Perfect Circle. Wow. I remember feeling as though I were drawn into my MP3 player and infused inside the music. Find the song 'Halo' and 'Vanishing' if you can and imagine being thrust inside the music itself. I then took the headphones off not wanting to experience just a good musical trip. I took the third bowl and held it in for a good 40 seconds or so. My entire body began to buzz and vibrate and felt as though my limbs were drifting away from me. Then, I watched as the books on my bookshelf started to breathe and the words on their spines vibrate and move in small circular motions.
Then that's when the Dali-esque visions started to occur. The bookshelf and wall started to melt like wax or paint if you will. I have wood paneling in my room and the grain of the sections started to ripple like water. Have you ever seen the movie 'The Cell' with J. Lo? Well, there's a part where a cow is dissected by glass then stretched apart revealing its sections. That's what the paneling did in my room. The sections all spread apart and dissected the room into about 40 'pieces' with nothing but black space in between. THAT was trippy. I didn't see god or 'Sally' or what have you, but I did feel a presence that I can't quite explain. The shadows of my poem would be the best description I could give of it.
This all lasted about 20 minutes or so. Then there was a time, ~45 minutes or so, that I felt like I was still between reality and whatever place I had come from, but I was aware that I was in my room and all was ok. That's when I decided to write the experience down in an attempt to make sure I remembered it. Here it is:
Salvia Divine
My hands dance upon the ceiling,
as I lie in my bed,
slowly swirling puddles,
cascading in my head.
Iíve become two dimensional,
floating water,
dripping wet,
this feeling - non conventional.
I float among angels,
I listen as they sing,
what horrible thoughts,
do these tones bring.
I witness my body,
as I float above,
I feel my limbs,
beginning to buzz.
the books they laugh -
a concerning defeat,
my legs fall to the sky,
chasing my feet.
I feel this metal,
within my soul,
I watch intently,
as my body, again - becomes whole.
I swallow the air,
it comforts me so,
as my throat clenches,
never to let go.
my heart races -
feel this thump,
goddamn my feet,
resemble a stump.
my arms branch forth,
collecting a cool wind,
my fingertips blistered by the sun,
once again.
Iím pinned to the floor,
circles - stars - blue,
oh, goddamn,
I shouldnít have tried to move.
I dance amongst the shadows,
they caress my skin,
'come...' they whisper,
'come on in...'
I find the path,
I tremble - I fear,
I hope that I donít,
leave myself here.
I drift from reality,
this current of color,
my body in stasis,
above it I hover.
I descend rapidly,
I writhe and spin,
my mind and body,
whole - one, again.
I settle down,
a blank stare on my face,
I did not move,
yet I left this place.

I smoked all 5 bowls within a 35 minute period, but had very minimal effects after the third. It just made the lights and shadows a bit softer around the edges.
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.


We monetize systems!
- monetize efficient eyeballs
- architect wireless models
- deploy cutting-edge relationships
- whiteboard clicks-and-mortar e-business
- deliver synergistic web services
- incubate 24/365 infomediaries
- benchmark seamless channels
- innovate virtual functionalities
- morph integrated e-tailers
- enable virtual partnerships
- architect B2B web services
- engage ubiquitous initiatives
- leverage 24/7 metrics
- synthesize web-enabled technologies


HOW THE SYSTEM AUTO-MATCHES YOUR BUILDINGS:
Your source data file(s) are presented in the table on the left. All buildings where a possible data match exists are presented in a table on the right. The system attempts to auto-match building records using shared unique IDs like: PM Proprty ID, Tax Lot ID, and Custom IDs as well as Address information. Where the system believes a match exists between a record in your source file and an existing building record it will auto-check the 'match' checkbox — effectively making a match between these buildings. A confidence number (0 - 100%) is included to indicate the systems confidence that this match is correct.
FIELDS NEEDED TO MAKE BUILDING MATCHES:
The following is a list of the fields we use to match up buildings between different records. The more data you have in these four (4) fields the better our system will auto-match your buildings.
Tax Lot ID PM Property ID
Custom ID Address Line 1
HOW TO MANUALLY MATCH YOUR BUILDINGS:
You can review and edit each individual match by clicking one of the linked IDs in the table. This will open a new table that shows the source data for the individual building record you are attempting to match. Underneath this building is a searchable list of all potential existing building matches. Use this table to explore all your building records and to select single or multiple building records to match you source data to.
EDIT COLUMNS
You can customize the columns displayed in the table below by clicking the 'Edit Columns' button and then selecting the column headers you want to review from the modal window.


All Events
Concert
Sports
Education
Popular Events
Sports Meet in Galaxy Field
🗓 Jan 12, 2019
📍 Greenfields, Sector 42, Faridabad
Art & Meet in Street Plaza
🗓 Jan 12, 2019
📍 Galaxyfields, Sector 22, Faridabad
Youth Music in Galleria
🗓 Jan 12, 2019
📍 Greenfields, Sector 42, Faridabad


Network Redundancy
With proper permissions, you can manage redundancy protocols.
Protocol Management
On this page, you will find two zones :
- An Add zone
- the list of existing protocols with their informations
Within each line, you could :
- Delete a protocol when you click on . Be careful, it will delete all associated redundancy IP.
- Modify a protocol when you click on
When adding entry, enter informations then click on to validate.
When modifying entry, modify informations then click on to validate.
In both cases, you could click on to cancel and go back to initial values.
A protocol is defined by only one field :
You could only display lines including the string entered in Search field
Redundancy IP Addresse
On this page, you will find two zones :
- An Add zone
- the list of existing protocols with their informations
Within each line, you could :
- Delete a redundancy IP address when you click on
- Modify a redundancy IP address when you click on
When adding entry, enter informations then click on to validate.
When modifying entry, modify informations then click on to validate.
In both cases, you could click on to cancel and go back to initial values.
A redundancy IP address is defined by many fields :
- its protocol
- its ID
- its IP address
IP address is choosed by clicking on , which opens a box allowing you to search by name or IP.
Select the IP address by clicking on
You could only display lines including the string entered in Search field


@(urls: Iterator[(String, java.net.URL)], hostAddress: String)(implicit flash: Flash, messages: Messages)


--- layout: post title: "Our First High School Workshop at Rockefeller University" authors: ["Daniel Chen"] date: 2014-07-07 time: "19:00:00" tags: ["Rockefeller University"] ---
Camille Avestruz, Ivan Gonzalez, Timothy Cerino, and Daniel Chen all had the great opportunity to teach Software Carpentry's first zero-entry workshop to high school students. We were able to teach at Rockefeller thanks to the scientific foresight of Jeanne Garbarino and the rest of the Rockefeller team along with Arliss Collins, Greg Wilson and the SWC team. Lastly, thanks to Gabriel Perez-Giz for volunteering his time to help during the workshop.
The main goal of this workshop was to expose tomorrow's scientists to scientific computing as early as possible. For example, as genomics data for biology continues to grow, we are beginning to see a shift of biologists from the pipetter to the data scientist. Our goal was not to teach everyone all the skills needed so they can dive into retrieving, cleaning, and analyzing genomics or astronomy data the next day, but rather show them what is possible with computers, and expose them for the first time that the GUI may not always be the best tool for the job; and give some foundation of knowledge and concepts for perpetual self learning.
We followed the traditional SWC workshop materials, adapting the pace as needed. Bash, Python, and Git were covered.
Since there was a lot of material to cover in two days, the lessons were given in 90 minute blocks. For the typical NYC high school (I'm now speaking from personal experience), there are 10 blocks of 45 minutes each throughout each day. Some classes may take a 2 period block (90 minutes), but almost never is the entire day solely taught in 90 minute blocks. In higher education a 90 minute class is almost considered the baseline and is very common with many other classes lasting much longer. This difference was echoed to us when we finished our workshop and had a 15 minute open discussion of what worked for the students, and what did not. Many suggested having 4 half-day workshops, each covering 1 topic with many small in-class practice problems and a 'homework'. Reflecting on this point, this makes sense and should be tested the next time we teach high school students.
Teaching these workshops usually has a bimodal distribution of students in terms of proficiency, experience, and familiarity of the materials being covered. In our particular case, we pre-screened the class, but only about 2 students had prior experience with the material.
Sending these students to a site with short challenge exercises so they don't get bored (i.e. Rosalind or Project Euler for Python; Learn Git Branching for Git) would have helped for those few who thought the pace was too slow.
The world cup probably didn't help either :D
The sticky notes (red up for a problem, green up for no problem), Etherpad document, Etherpad chat, and the basic raising of the hand to ask for help were extremely effective. Students were using all means of getting help, although I would have to say most were doing what they were used to in the classroom, which is raising their hands. For those that were shy, the Etherpad chat was a way for the instructor to clarify an idea or answer. Once again, the sticky notes also provided a great means for honest feedback.
We began in Bash with the basic pwd
, cd
,
and ls
commands, eventually moving to mkdir
and touch
.
The helpers realized very quickly that the students were struggling to
keep up. Common questions were:
For those of us who live in Bash, or use the terminal regularly, we
customize the look of the prompt, removing extraneous information,
adding colors, and etc. From the student's point of view, they've
never seen a blinking cursor in its current context. Trying to follow
along while blindly typing what they see on the screen, except what
they see on the presentation screen was not what they saw on their own
monitor; thus confusion arose, even though many of them created and
moved into the correct directory. A possible workaround is to have
all students copy/paste an alias
for ls
that
colors directories (this is not a default in OSX), and to have everyone
(instructors included) export
the same PS1
. The former can be done
right after the ls
command is brought up, and searching through the
man pages for the --color
flag. Experimentation with
when the optimal time to export the PS1 variable would have to be
conducted, but it seems that a black box 'please copy/paste this so
your terminal looks like mine' may be sufficient.
This brings me to my next point, when using the Etherpad, it will
be useful to not copy the $
before the actual
Bash command. Many of the students are still trying to get some idea
of what is going on that they will copy the entire line, then attempt
to copy/paste and when they finally remember the correct terminal
copy/paste commands, the command will error out and will not
understand why. This could be a failure on our part in not properly
explaining the components of a Bash command (e.g., the first 'token'
is always a 'verb'), but at this level, it may be too much information
trying to navigate the file system and the nitty-gritty of Bash all at
once.
The students were very literal, as they should be when exposed to a new concept. However, as literal as they were, spelling mistakes were common, and learning to tab complete was a lesson they were learning the hard way.
When using Bash to navigate and create files, zero-entry
bootcampers do not have a mental image of the directory
structure/hierarchy. A GUI file system window that is shown
simultaneously with the basic navigation and touch
and mkdir
commands solidify and contextualize what
exactly is going on in the file system them that mkdir
and touch
actually create files in the GUI
interface as well. This can be accomplished by running the following
terminal commands for Windows, OSX, and Linux operating systems,
respectively:
explorer .
open .
xdg-open .
(or nautilus .
in Ubuntu) From the first series of feedback, we learned that repetition is
extremely important. For example, when we are teaching
what cd
is and when we say 'cd
into a new
directory' it was important for the instructors to say
'cd
, change directory into your SWC folder'. This
applied to the other topics cover as well and is especially important
since these are new terms for the students and it naturally slows down
the lesson (having tons of spelling mistakes work just as well as a
natural delay).
After reading the first round of feedback, we put up a small exercise on the screen during lunch. This gave the students to read and see what the task was when they return. Additionally, with Gabe's help, we came up with a more practical exercise that show cases the necessity of learning Bash. We created a directory of 48,000 files of mixed names and file types and asked the students how they would move a certain pattern of files (e.g. I want my 2013 pictures that are some form of .jpg into a pics/2013 subfolder). This was a powerful example since the 'usual' way they would have done the task is through the GUI. However with that many files in the directory, the GUI actually had problems drawing all the icons to display.  That also included explaining the problem in Bash, giving them time to come up with the wildcard expression to move the files, and watching the GUI crash a few times. This example really gave them a real world context on why the GUI is bad and we reiterated that a massive file dump like the example shown is not uncommon in science.
We took the feedback regarding pacing in Bash and paced the Python lessons in a much more digestible fashion. We finished off the day covering conditionals, with some feedback about the section on dictionaries to be too long. By the second day I overheard students being excited about their newfound knowledge, as if they are thinking in terms of a logical set of commands to give a computer to accomplish a task. It was inspiring to know that at the same time 'it is just the tip of the iceberg and there's a lot more out there.' We began the second day reviewing everything in the previous day. Go to the SWC work directory, create a folder for today's work, open up a ipython notebook, and review some questions that were brought up in the preview day's feedback. It was fascinating to see that even amongst all the confusion regarding Bash the previous day, filesystem navigation was not an issue on the next day.
We finished the session off with loops, functions, basic file I/O, and we gave them a practical exercise to read in a dataset of animals and their brain mass and body mass. The task was to calculate each animal's brain:body mass ratio and save the information so it can be used later.
Some things we learned teaching Python:
%%bash
to run Bash commands such as ls
and head
Version control is probably one of the more difficult topics to both cover, preach, and attempt to convert non-users into using. We began by mentioning 2 common problems, the first of which is nicely depicted in this PhD Comic on final documents
The second was an example of backing up data while working on a thesis. The biggest barrier to entry, is showing them why it is better than their current workflow: dropbox, track changes, save as with a number or date, collaboration, etc. We began by diagramming Git on an oversize notepad. However, due to the nature of the room, it was difficult to see the drawn figures from the back. We went back and fourth between the Git diagram and the actual committing and checkouts in Git to get a sense of how things are being tracked using 2 files keeping track of guacamole ingredients and instruction on how to make guacamole. We mostly went over version control on a local and individual level. During the final section of the workshop we went over collaboration using the guacamole recipe on GitHub.
Here we also ran into many technical problems regarding the older
versions of OSX, namely Snow Leopard. The problem arises when one
tries to git init
the directory to be tracked. Simply
checking the Git installation by using which git
does not
accurately diagnose the problem. The fix was to use an older version
of Git than the one posted on the main website. However, it seems
that an even more universal and simpler solution is to install the
GitHub application and within preferences, have the program install
the command line tools.
From the student feedback and instructor observations, the workshop was a success. The students asked very good questions about practical use cases for each of the topics covered. The turnaround between Bash proficiency between the 2 days was astounding. We also spent some time throughout the workshop referencing a few good links on where to practice their new found skills, explaining that the problems do not have to seem 100% applicable to your current work (although that may help), practice doing various (unrelated) tasks train the mind to see how a solution can be applied to other problems because of an underlying pattern. Thus, we directed them to a few Python and Git websites to give them practice.
Our goal was to give them enough instruction to get over the big initial learning hurdle into Bash, Python, and Git so that they have the foundation to explore and learn on their own.


Key: = Must support, = QICore-defined extension, = Is-Modifier
| Field | Card. | Type and Description |
|---|---|---|
| category |
0..1
|
Concept
|
| code |
1..1
|
Concept
|
| codedDiagnosis |
0..*
|
List<Concept>
|
| conclusion |
0..1
|
String
|
| effective[x] |
1..1
|
DateTime | interval<DateTime>
|
| encounter |
0..1
|
Encounter
|
| identifier |
0..*
|
List<Identifier>
|
| image |
0..*
|
List<Image>
|
| imagingStudy |
0..*
|
List<ImagingStudy | ImagingManifest>
|
| issued |
1..1
|
DateTime
|
| locationPerformed |
0..1
|
Location
|
| performer |
1..*
|
List<Practitioner | Organization>
|
| presentedForm |
0..*
|
List<Attachment>
|
| request |
0..*
|
List<Diagnosticrequest | ProcedureRequest | ReferralRequest>
|
| result |
0..*
|
List<Observation>
|
| specimen |
0..*
|
List<Specimen>
|
| status |
1..1
|
code
|
| subject |
1..1
|
Patient | Group | Device | Location
|
Key: = Must support, = QICore-defined extension, = Is-Modifier


open_with Transform tool: When a graphic is selected, this tool allows the shape to be re-positioned, rotated, and warped by the handles around the bounding box. This is the default tool. A shape can be de-selected by clicking on an empty area on the map or by pressing the ESC keyboard key.
Reshape tool: Enables editing (move and delete) of individual shape vertices. Vertices can be moved by dragging them around and deleted by selecting and using the DELETE keyboard key.
Point tool: Creates a simple point marker/graphic.
Polyline tool: Creates a line made up of many points. Double click to complete line.
Polygon tool: Creates a completely enclosed freeform polygon. Double click to complete shape.
Rectangle tool: Creates a rectangle/square. Hold CTRL keyboard key while drawing/resizing to lock aspect ratio.
Circle tool: Creates a circle/oval. Hold CTRL keyboard key while drawing/resizing to lock aspect ratio.
Color tool: Sets the color for the selected shape or next drawn shape.
Undo tool: When available, undos the last drawing operation.
Redo tool: When available, redos the last undone drawing operation.


Page title
Save
Cancel
Loading wallabag API...
Delete this article
Deleting removes article from wallabag permanently


Business operations. "We close the loop".
Perfect Circles™ platform empowers businesses to take full control over the day to day running of their operations.
Girls only social networking platform, Girls Helping Girls.
Giggle is a social app for girls/women/females who want a safe & secure social networking experience.
TechNews is your tech related news buddy. Be updated with the latest news in the tech industry.
TechNews is powered by NewsAPI.org.
Features include:
- Swiping between 14 and 24 timers
- Continuous running time when switching between 14 and 24 timers
- +1 sec & -1 sec buttons
- Reset button
- Dark/Light theme
YYY Jobs is an Android app for connecting employers and blue collar workers that makes it easy for employers to post a job and invite workers. We integrate with Urgent Jobs Philippines in facebook to reach over 60,000+ workers. You can download now and apply to jobs on your Android mobile phones.
http://www.addasaveslives.com/
In the Philippines, even using your phone while waiting at a traffic light is already a violation of RA 10913 (Anti-Distracted Driving Act) and is punishable with up to 30,000 pesos in fines.
With ADDA (Anti-Distracted Driving App), you can turn ON safe driving mode to mute notifications, block incoming calls, and auto-send an SMS to incoming calls.


Connect and inspire
Join 100,000 creative coders and follow their work. Add your ideas with forks, and find your inspiration for your next coding challenge.
Explore sketchesNo hassle coding
Code away your ideas in seconds with intuitive editor and p5js, enable common libraries with ease, and share your work with the community.
Create a sketchTeach and learn
Teachers exclusive: Invite your students to study coding, give assignments and collect student work on your class page.
Learn more


{{define "contacts/contacts"}}
if you want to contact me please send me email
<EMAIL_ADDRESS>or contact through social networks buttons at the bottom of the page