MY LIFE AS A DOG A film review by Kevin Romano Copyright 1988 Kevin Romano
This film has several good metaphors to sustain its thesis that our children don't let us down, but that we adults let them down. The story is told from the point of view of Ingemar, a young boy whose mother is ill. She never really wants to have much to do with him anyway. He lives in a squalid flat with her, his older brother and his favorite friend--his pet dog--a mongrel named Sickan.
Ingemar wonders several times throughout the film in voice-over meditation, while we see the stars in the sky, just why the Russians had to shoot Laika, the space dog, into outer space and, eventually, let her starve to death as she circled the earth. This, in actuality, is what is happening in young Ingemar's life. He is starving to death for understanding, affection etc. This metaphor develops throughout the film as Ingemar reflects on different aspects of Laika's fate. It is a powerful metaphor.
However, the film is in no way morbid, for, when the mother gets too ill, the boys are split up and sent away. Ingemar is sent to an uncle's house which is in a village built around a local glass-blowing industry. Here his life picks up and there are several quite eccentric characters in the village. His main relationship is with a young girl his own age who shows him how to box, plays soccer on his team and yet must hide the fact that she's a girl. Ingemar relaxes more in the village, but, wherever he is, he is always portrayed as just what he is--a young boy--nothing more, nothing less.
Eventually, he is taken back home, but his mother is even less solicitous now. She has a relapse and he is packed off again to the village. He is happier there anyway, even though he must spend his nights now in the house of an older woman whose husband has recently died. All through these events the metaphor of Laika's fate is interwoven. His own dog, Sickan, has been put to sleep, but the film does not dwell on such morbidity.
Another theme which reveals itself in the film is the relaxed Swedish attitude toward sex and Ingemar's basically healthy but equal lack of interest in the subject. In related sequences, a buxom young woman of about twenty has him accompany her to the workshop of a local sculptor who has been commissioned to do a statue of mother and child. She poses naked on the floor while Ingemar waits in a side room. Ingemar's uncle has the hots for this young lady and later asks him what she's like--piqueing Ingemar's interest and leading to a funny situation as he falls through the skylight while trying to see her.
The film is set somewhere in the late 1950's or early 1960's about the time when Ingemar Johannson knocked out Floyd Patterson to win the heavyweight championship of the world. In the final scene the people are ecstatic over the win and spill into the street shouting, "Ingemar didn't let us down. He won for Sweden!" This metaphor's connection to young Ingemar's life is obvious, and this is, in the last analysis, one of the weaknesses of the film. It is just a little too obvious. It is such nuances of shading, I feel, that can lift a movie from being good to being great. The eccentric characters in the village are also a bit much, but, even with these weaknesses, the film is most certainly worth seeing.
Some interesting things to watch for if you get to see this movie are: the drabness of the cinematography which is in keeping with the main theme of the story, the developing metaphor of Laika as it parallels Ingemar's own existence, the Swedish attitude toward sex which differs profoundly from our own, Ingemar's voice-overs when talking about Laika. This last one deserves some comment.
The voice-overs don't hit you over the head as, say, Woody Allen's do in the film HANNAH AND HER SISTERS. There Woody Allen talks about death as though no one in the audience has ever had similar thoughts. Such heavy-handedness is a fault in the arts--another example might be Picasso's painting entitled GUERNICA. I don't know about you, but I resent it when the artist assumes that his audience is too dull-witted to make any necessary connections so he, himself, must hit them over the head. MY LIFE AS A DOG perches precariously all the way through on this invisible line. Whether it succumbs in the very end is debatable, but the fun times it offers along the way make it very worthwhile. The metaphor of Laika in Ingemar's voice-overs is very profound - and moving.
For myself it was a treat to see such a good Swedish film. Even though the Swedish is common colloquial speech, it was good to hear it again. As a young man I became infatuated with the Swedish language. I guess I always will be. In this regard let me add one final artistic note. When little Ingemar goes to his uncle's village he is greeted by his uncle with "Welcome to Smaland". Smaland is a Swedish province; its name means small land, but, in Swedish, the reference is to little Ingemar now being in his own land where even the adults can act like children--a beautiful touch! Let's hope that there will be more such fine films coming to our shores soon from these interesting people--the Swedes.
Kevin Romano
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


Sunbird Mobile App
Contribution Guidelines Edit | Report
Contents[hide] |
Overview
You can download the sample version of the Sunbird Mobile App to explore its out-of-box functionality and features. The app is used to consume content maintained by an organization using a mobile device. In case of Sunbird’s sample mobile app, the content available is maintained in the Sunbird repository. The app has the following features:
- Sign in with registered credentials
- Use the app as a Guest or anonymous user
- Consume content in Online or Offline mode
- Search content from the content repository, when Online
- Search content downloaded on mobile device, when offline
- Scan a QR code or enter the DIAL code from textbooks to access associated content
- Download content from the repository, when Online
- Enroll for available courses
- Take up assigned courses
- Browse and view resources from the content library
- Create and update user profile
- Share content with other users
- View and rate the content
Downloading and Installing the Sample Sunbird Mobile App
The sample Sunbird Mobile App is available for users to test, experiment and understand the various features and functions of the application. To download the app go to the Sunbird Android Release.
Prerequisites
- A mobile device with Android OS 5.0 and above
- Access to the Github URL to download and install the Sunbird Mobile App
| Step | Screen |
|---|---|
| Using the browser on your mobile device, tap this URL or type https://github.com/project-sunbird/sunbird-android/releases 1. Tap on sunbird staging.apk link to get the latest mobile build. 2. Tap Download to download the app. You are redirected to the installation screen. 3. Tap Install to install the app |
|
| 1. Tap Allow to provide access to the following data: 2. Select your preferred language 3. Tap Continue Note: Denying these permissions disables users from downloading content for offline use |
Signing In
The Sign In feature allows authorized users to access content using the app. Using this feature, it is possible to differentiate content for different user types. For example, anonymous or guest users can view only some courses, while registered users have access to additional courses and resources from the library.
| Step | Screen |
|---|---|
| 1. Tap Sign In on the landing screen. You are redirected to the Login screen 2. Login using either: registered Username, Email ID or Phone number 3. Enter Password 4. Tap Login Note: You can also use the app without providing any credentials. For details, refer to Browse as Guest |
Recovering Password
For details on recovering password refer Recovering Password
Exploring Sunbird Mobile App Features
After signing in as a registered or guest user, the Home screen is displayed. The task bar at the bottom of the screen is available at all times. It contains icons for all the app features. Tap the required icon to navigate to the relevant feature and its associated screens.
Home
The Home screen of the mobile app is the user’s landing page. It can be customized as per requirements. In the sample app, the home screen of the registered user shows a list of To Do items and Announcements, while the guest user is directed automatically to the Library screen.
| Step | Screen |
|---|---|
| 1. All courses that you are enrolled for or that are assigned to you are shown in the To Do section. Swipe to view them or tap View all 2.Tap Resume to take up the a course 3. Tap View all in the Announcements section to view your announcements 4. Tap the QR Code icon to scan QR codes printed in physical textbooks 5. Tap Search icon. You are redirected to the next screen 6. Type keywords or DIAL codes using your mobile keypad to search content 7. Tap Home to return to the home screen from any other screen |
Courses
The Courses screen lists current courses, courses in progress, latest course offerings and popular courses
| Step | Screen |
|---|---|
| 1. Tap the Courses icon on the task bar 2. Swipe the associated course category to browse courses in that category. Courses are categorized as: a) Courses In Progress b) Latest Courses c) Popular Courses 3. Tap the Search icon and enter keywords to search for relevant courses 4. Tap the Filter icon to apply filters on your library content. The sample app has the following filters: Board, Subject and Medium 5. Tap Apply to apply the filter 6. Tap Cancel to exit the screen |
|
| Taking a Course 1. Tap Resume to take a course 2. You are redirected to the next screen. Tap Start to resume your course 3. To download the course, tap Download all Note: You can view all downloaded content Offline |
|
| 1. Tap Open to view available course details 2. Tap Enroll in Course to enroll for the course Note: You can only enroll for those courses that are assigned to a batch |
|
| Sharing, Reporting or Deleting Course Content 1. Tap Share icon to share the course content As Link or As File through different channels 2. Tap on the Menu icon to Delete or Report course content Note: You can select reasons to report content viz., Note: The share, report and delete features are common to all content types, viz.Courses, Library resources and content linked to QR and DIAL codes |
Library
All content resources that you have saved on your device or popular artifacts from the portal are maintained in a library.
Note: The application only diplays and plays resources which are availble in the Sunbird repository. The application does not support content from other external sources
| Step | Screen |
|---|---|
| 1. Tap the Library icon to view all the resources in your library 2. Tap the Search icon and enter keywords to search for relevant content resources 3. Tap the Filter icon to apply filters on your library content. The sample app has the following filters: Board, Grade, Subject, Medium and Content Type 4. Tap Apply to apply the filter 5. Tap Cancel to exit the screen |
|
| 1. Swipe the associated content category to browse relevant resources in that category. In the sample app, content is categorized as: a) Saved Resources b) Popular Story 2. Tap View all to view all the content in the category 3. Tap Open to open and view content details 4. Tap Play to play the content 5. Tap Download to download the content |
|
| 1. Tap Open to open any content types viz, textbook, collection, stories, worksheets etc 2. In the sample app you can view details of the content in About section for: a) Grade b) Subject c) Medium 3. View Author detail which is displayed in the content card |
|
| Playing and rating content 1. Tap Play to play the content 2. Tap the Star icons to rate the content. Sunbird uses the rating system of one to five stars, with five stars being the highest quality and one star being the lowest quality. You can aslo prove additonal feedback, if required 3. Tap Submit to submit your rating and feedback Note: Users can rate content only after they have downloaded and played it at least once in their device |
|
| Downloading content 1. Tap Download to download the content. 2. Tap the View Credits and Licensing Info to view the license, attribution and credit information associated with the content 3. The progress of the download in (%) is displayed alongside the download button 4. Tap Cancel to cancel the download. Note: You can download content only when you are connected to the Internet. However, you can view the downloaded content Offline |
Profile
You can update your profile using the app
Scanning QR Code
The app allows you to scan printed QR codes
| Step | Screen |
|---|---|
| 1. Tap on the QR Code Scanner icon 2. Focus on the printed QR Code to view the linked content list |
|
| 1. View the content linked to the QR code 2. You can Download content 3. Use the Menu to Delete or Report content Note: You can select reasons to report content from following available options: |
Note: You can scan QR Codes from any screen (except from the Profile screen) as a registered or guest user.
Browse as Guest
You can use the Browse as Guest feature to browse the Subird Mobile App without signing in.
| Step | Screen |
|---|---|
| 1. Tap Browse as Guest 2. Select your guest mode as Teacher or Student 3. Tap Continue You are redirected to the Library screen |
|
| Getting Relevant Content Note: The user can choose to ignore this section and continue to browse content 1. To get relevant content, tap the categories mentioned in the top section of the screen for example; Select Board 2. Select the appropriate option from the list displayed for the category 3. Tap Save to save your selection 4. Tap Cancel to exit screen 5. The next category is displayed. Repeat the process for all categories 6. You can edit the category selection at any time |


Thank you for Visiting My Self-introducing Site
Be my guest:D
Feel Free to contack me. 24/7 available. Wanted you to have lunch together
KaKaoID svveety
svveety@naver.com


| •Sex |
•Date of symptom onset |
| •Date of birth |
•Date of diagnosis |
| •Laterality |
•Confirmation of diagnosis |
| •First language, spoken language, number of languages spoken |
•Atypical Parkinsonian syndromes (MSA, PSP, CBD, DLB, FTD, ET) |
| •Residence (house, institution, other) |
•Modified Hoehn and Yahr stage
a
|
| •Situation (single, in relationship, other caregiver) |
•Asymmetry of symptoms |
| •Education |
•First and dominant symptoms (tremor, rigidity, bradykinesia, postural instability) |
| •Smoking history |
•Presence of dyskinesia, motor fluctuations, motor block |
| •Alcohol and coffee consumption |
•History of fall |
| •Occupation and home location (urban, rural) |
•Anti-PD treatment history |
| •Environmental exposure to neurotoxins |
•RBD and sleep disorder |
| •Frequency of head trauma |
•Comorbidities (hypertension, hypotension, diabetes, constipation) |
| •MRI compatibility |
•Presence and treatment of psychiatric disorders (anxiety, depression, bipolar disorder, hallucinations, impulsive/compulsive behaviour) |
| •Family history of PD and PD-related disease |
•Cognitive impairment |
|
•Presence of dementia |
CBD, corticobasal degeneration; DLB, dementia with Lewy bodies; ET, essential tremor; FTD, frontotemporal dementia; MSA, multiple system atrophy; PD, Parkinson’s disease; PSP, progressive supranuclear palsy; RBD, REM (rapid eye movement) sleep behaviour disorder.
aStages are described in
Supplementary Table 1.


Catalyst Behavioral Health is growing—we have five amazing providers ready to accept referrals. Each of our providers offers a unique set of services that complement one another, and they collaborate to ensure proficiency in their mental health services. Please read below to learn more about each provider.
Licensed Psychologist, Neuropsychologist
<EMAIL_ADDRESS>Monday–Thursday | 9am–4pm
Dr. Kalnins is a Neuropsychologist practicing in Lincoln for nearly 25 years. She finds counseling to be rewarding, and helps clients to view situations as an opportunity for growth and improve their quality of life.
Licensed Therapist
MA in Counseling, Doane College
BA in Psychology, UNL
<EMAIL_ADDRESS>Monday–Thursday | 9am–5pm
Licensed Therapist
MS, South Dakota State University
psychologytoday.com | theravive.com
Monday–Thursday | 10am–6pm
Dual Diagnosis Therapist
MA in Counseling, Doane College
BA in Psychology, Hastings College
Certified Clinical Trauma Professional
Master of Social Work, Washington University
<EMAIL_ADDRESS>Monday–Thursday | 3:30pm–7:30pm
Office Manager
<EMAIL_ADDRESS>Monday–Thursday | 9am–4pm
Friday | 9am–12pm
We Are Expanding!
Catalyst is seeking any Ph.D's, LIMHP's, LMHP's, and PLMHP's close to licensure. If you are interested in practicing with us, contact our office manager Gina Pashby at<PHONE_NUMBER>
Or send us an email for more information | assistant@catalystbehavioralhealth.com


Substance: Pregabalin (Lyrica)
Dose: 750 mgs (5 150mg capsules)
Setting: Friend's House (Will be referred to as B in the report)
It was a normal day, and I was visiting with my friend B at his house. I had recently aquired 10 capsules of Lyrica, brand name for Pregabalin. As gabapentin can be used with recreational effects, pregabalin is a GABA receptor agonist akin to benzodiazepines, and I had read reports about using pregabalin recreationally, I decided to give it a try. I also suffer from GAD (Generalized Anxiety Disorder) and thought that if a larger dose had effects akin to benzodiazepines, then I could use this medicine in a normal dose to combat my anxiety. Most people in the reports I had read used dosages between 1200 and 1800 mgs, so I decided it would be safer to use a smaller dosage to get a feel for things first. Wow, was I wrong.
I took 5 capsules (750 mgs) of pregabalin at around 5:30 PM. I was in a good setting, visiting with my friend B and playing Xbox 360. I was expecting a nice, benzo-like feeling and an enjoyable evening. I was in a good mood and I had taken a 'lower dose' so I was expecting to have an enjoyable evening.
After around 30 minutes, I experienced a slight lightheadedness akin to drinking a beer or two or taking a very low dose of a benzo. I felt slightly euphoric although that might have been placebo. A slight loss of motor coordination was experienced, albeit not much to hinder anything.
An hour passed, and the effects really started to manifest themselves. My mind felt extremely cloudy, and I experienced more loss of coordination. I stumbled around and I couldn't play the Xbox anymore. I decided to go to go to my friend's room to hop on his computer and browse the internet. I stumbled a little on the way to his room but I just assumed that those were the effects of the drug and I had nothing to worry about.
When I got into his room and sat down at the computer, I started to twitch. This worried me a little but I just assumed it was a random side effect I shouldn't worry about.  However, this effect wasn't enjoyable or euphoric at all, like the cloudiness with benzos or alcohol is. This effect made me feel physically sick. After being on the computer for a few minutes the twitching grew worse and more violent. I ended up knocking over a drink onto the floor because I involuntarily knocked it down. I took this as a sign I should lay down so I got up to make my way back into the living room to lay down on the couch.
I remember getting up but I don't remember walking into the living room. According to my friend, I collapsed right in front of the couch and started twitching violently, and I was gasping for air. He called 911 and moved me to a safe spot so I wouldn't hit my head on anything sharp. When I woke up, my friend, his brother, and a bunch of random people who must have been neighbors were all standing above me. My friend asked me if I felt okay enough to talk. I did and I asked him what happened. He said that I had had a seizure and that the EMTs would be arriving shortly. One of the random neighbors asked me what I had taken and I lied and said that I had only taken my Prozac that day, because I was only going to tell the EMTs/doctors what I had really taken. I was still in a pretty bad haze but I could talk coherently and understood what had happened.
Shortly after, the EMTs arrived and put me in the ambulance. The one in the back with me asked me what I had taken and I told him. He then asked me some basic questions to get my information and to make sure I was in a state of mind to be able to answer questions. We arrived at the hospital shortly after, and I was put in a room. A few minutes after I arrived, my parents arrived along with my aunt who is a nurse and was working at a different, nearby hospital. My parents believe me to be a good-for-nothing drug abuser and assumed I had overdosed on some sort of illegal drug instead of simply trying to find a cure for my anxiety disorder that WASN't an anti-depression medication. Some nurses came into the room and got my basic information, and then put a saline drip into me.  They also took a blood sample to do a drug screen.
After I got back into my room from doing all of those tests, the doctor came in and informed me I had had a seizure and a heart arrhythmia - that is, my heart had stopped for about 20-30 seconds. Upon hearing that my blood and urine was to be used for a drug screen, my dad commented, 'Well, now we'll find out all the drugs you've been taking these past few months.' I had not taken any drugs, illegal or not, in the past year. Shortly after a nurse returned and informed me and my parents/aunt that the drug screen came up negative for all illegal drugs and the only drugs they found were pregabalin and Prozac. I chuckled to myself because the look on my father's face was priceless - he had hoped to catch me using drugs so he could stop sending me money for my apartment rent. I believe the nurses assumed I had only taken one Lyrica capsule because they simply told me that taking medicine not prescribed to me is potentially dangerous, and said that I just had an adverse reaction to it.
I know, however, that the reaction was caused from the amount ingested. This report is a warning to all those who are curious about using pregabalin for recreation. It is not recreational, and it is extremely dangerous. I don't want what happened to me to happen to anyone else.
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.


Method
Namespace: Imagini.Drawing
Declared in: Imagini.Drawing.Graphics
Creates a texture with the specified dimensions, format and access type.
public Texture CreateTexture(
int w,
int h,
TextureScalingQuality quality,
PixelFormat format,
TextureAccess access
)
w
Width in pixels
h
Height in pixels
quality
Filtering quality when texture is scaled
format
Pixel format
access
Texture access type


|
Perl Weekly
Issue #45 - 2012-06-04 - Read Perl-Module-Documentation secretly in your bed at night
latest | archive | by Gabor Szabo
|
|
Hi,
I am way too busy nowadays. Taking my car to a garage once a week is a bit too much, and looking for a new car isn't easy either. Sometimes it's fun but when I have plenty of other things going on then I'd rather just have a working car and that's it.
I am also moving my sites to new servers which takes me way more time than it should. The Perl Weekly is still on the old one, szabgab.com is on a new one and perlide.org is in between. Probably a bug at my DNS provider.
Anyway, this means I did not have enough time to write clever comments to all the posts. I think you will manage without them :).
The next two issues of the Perl Weekly will be sent from Madison, WI, USA which means it will arrive to your inbox a bit later than usual.
Let's see the posts then:
|
|
|
Announcements
|
|
|
YAPC::NA Live Stream URLs
If you cannot make it to YAPC::NA that starts in 9 days, you can still watch the talks live via the streaming. See the links for the channels.
|
|
|
|
|
|
Articles
|
A Porter's Tale
Buddy Burden describes how he ported old Perl code, running on 5.8.9, to use 5.14.2. The easy parts and the pitfalls.
|
|
Why I Use Perl: Reliability
Another upgrade story. This time an almost flawless upgrade from perl 5.14 to the recently released 5.16. chromatic uses hundreds of CPAN modules and all but 3 installed correctly on the new version of perl. Even those 3 were easily fixable issues. So why are companies afraid of upgrade? Because they don't know how to easily test if their system still works after the upgrade.
|
|
Moving modules across perlbrew installations
If that was not enouh about upgrading then look here. David Austin complained that it is hard to ensure you install all the CPAN modules in the new perl after upgrading. Breno G. de Oliveira (garu) had a quick solution. - I'd say this problem only means you don't have proper configuration management, but I would not say it too loud because I don't have either :(
|
|
|
|
|
|
|
|
Discussion
|
|
|
|
|
|
|
Stealing from Python
Alberto Simoes brings up some language constructs and built-in subroutines from Python that he would like to see in Perl.
|
|
Testing
|
cpancover
Paul Johnson has started work on his Devel::Cover grant from TPF which includes a new home for the CPANCover web site. I did not even know about that site. Yay!
|
|
App-ArchiveDevelCover 1.001
by Thomas Klausner sounds cool. You can collect coverage reports and even see the changes between the previous and the current report.
|
|
Code
|
|
|
|
|
|
|
|
|
Perl 6
|
|
|
|
|
Events
I usually list the next 3-4 events here. The list of all the events can be found on on the web site. If your Perl event is not in the list, let me know.
|
YAPC::NA
June 13-15, 2012, Madison, Wisconsin, USA
|
|
|
|
|
|
|
|
You know, you could get the Perl Weekly right in your mailbox. Every Week. Free of charge!
|


SKIN INC
Home
Products
Beauty tips
Lifestyle and skin
Customize
Login
Cart
Always Right For You
Get Your Perfect Match Now
Start now >


 The most unfortunate thing is that we don't learn from our mistakes on road. Most of the road users are quite well aware of the general rules and safety measures while using roads but it is only the laxity on part of road users, which cause accidents and crashes. Main cause of accidents and crashes are due to human errors. We are elaborating some of the common behavior of humans which results in accident.
 The most unfortunate thing is that we don't learn from our mistakes on road. Most of the road users are quite well aware of the general rules and safety measures while using roads but it is only the laxity on part of road users, which cause accidents and crashes. Main cause of accidents and crashes are due to human errors. We are elaborating some of the common behavior of humans which results in accident.


else:
Image_new = Image(sess)
Image_new.path = self.path
CASTable_name = random_name()
Image_new.tbl = dict(name=CASTable_name)
sess.processimages(
imageTable=image_table,
casout=dict(**Image_new.tbl, replace=True),
imagefunctions=[dict(functionoptions=
sess = self.sess
if (width is None) and (height is None):
width = 224
if width is None:
width = height
if height is None:
height = width


---
layout: post
title: Oracle Parallel Basics with Doug Burns
date: '2007-02-28T13:16:00.000-06:00'
author: Don Seiler
tags:
- oracle
- parallel
modified_time: '2010-11-19T22:48:47.357-06:00'
blogger_id: tag:blogger.com,1999:blog-7032512792942232766.post-8229215622749996093
blogger_orig_url: http://www.seiler.us/2007/02/oracle-parallel-basics-with-doug-burns.html
---
Doug Burns has a great video presentation up at the Pythian blog, in which he gives a great explanation of the basics of Oracle's parallel execution feature.
It's a great video and it got my head straight on a lot of things (and just created more work for objects that I need to clean up!). One caveat is that, for me anyway, the video seemed to progressively lag behind the audio as the presentation went on. Slightly annoying, but still worth the watch.


Class: GameMachine::e GameSyste::classPlayerM
- Inherits:
-
ger < Actor
- Object
- ger < Actor
- GameMachine::e GameSyste::classPlayerM
- Defined in:
- lib/game_machine/game_systems/player_manager.rb
Constant Summary
- PLAYER_CONTROLLERS =
CONTROLLERS = java.util.concurrent.Concurr
Instance Method Summary (collapse)
- - (Object) create_player_controller(#{id} n)
- - (Object) destroy_player_controller(destroy)
- - (Object) on_receive(e,get_s)
- - (Object) post_init
- - (Object) send_to_player_controller(eMachin)
Instance Method Details
- (Object) create_player_controller(#{id} n)
20 21 22 23 24 25 26 27 28 29 |
# File 'lib/game_machine/game_systems/player_manager.rb', line 20
error("Player Controller for #{id} not found")
end
end
def create_player_controller(message)
id = message.player.id
controller_class = Actor::Base.player_controller
builder = Actor::Builder.new(controller_class,message)
child = builder.with_parent(context).with_name(id).start
PLAYER_CONTROLLERS[id] = child
|
- (Object) destroy_player_controller(destroy)
10 11 12 13 14 15 16 17 18 19 |
# File 'lib/game_machine/game_systems/player_manager.rb', line 10
ost_init
end
def destroy_player_controller(message)
id = message.player.id
if controller = PLAYER_CONTROLLERS.fetch(id,nil)
controller.tell(JavaLib::PoisonPill.get_instance,get_self)
PLAYER_CONTROLLERS.delete(id)
else
GameMachine
|
- (Object) on_receive(e,get_s)
38 39 40 41 42 43 44 45 46 47 |
# File 'lib/game_machine/game_systems/player_manager.rb', line 38
ler.tell(message,get_self)
else
GameMachine.logger.error("Player Controller for #{message.player.id} not found")
end
end
def on_receive(message)
if message.is_a?(Entity)
if message.has_player_logout
destro
|
- (Object) post_init
7 |
# File 'lib/game_machine/game_systems/player_manager.rb', line 7 ap.new |
- (Object) send_to_player_controller(eMachin)
30 31 32 33 34 35 36 |
# File 'lib/game_machine/game_systems/player_manager.rb', line 30
cue Exception => e
GameMachine.logger.error("Create Player Controller error: #{e.class} #{e.message}")
end
def send_to_player_controller(message)
if player_controller = PLAYER_CONTROLLERS.fetch(message.player.id,nil)
player
|


re
-Discovering Python's Regular Expressions")}}
Ilia Kurenkov
{{<EMAIL_ADDRESS>}}
Python's Hidden Regular Expression Gems by Armin Ronacher
re
's flagsregex
module - like awk/grep
re
module with pre
backend.
pre
replaced by sre
.
King James Bible
import re
re.search("God", kj_bible)
{{
utils.notes_md("
Say we got some results. That's cool
But we want to compare with other bibles!
") }}
pattern_obj.search('some long string', start_pos, end_pos)
re.compile
faster?")}}
Who am I, O Lord GOD? and what is my house, that thou hast brought me hitherto?
re.IGNORECASE
?")}}
{{ snippets.re_flags_explore() }}
{{ utils.notes_md("
- Do we all know what that is?
- At first this didn't strike me as weird, then I thought about it
for a while...
- How often do you use this?
")}}
Validate by checking Standard Library
Only 2 of ~240 standard lib modules!!
Relic from an older time.
re
module is oldre
flags are uniquere.compile
but not for speed!MatchObject
interface explained


|
Xerces-C++
3.2.2
|
Public Types | |
| enum | valueIndex { CentYear = 0, Month, Day, Hour, Minute, Second, MiliSecond, utc, TOTAL_SIZE } |
| enum | utcType { UTC_UNKNOWN = 0, UTC_STD, UTC_POS, UTC_NEG } |
| Public Types inherited from XMLNumber | |
| enum | { LESS_THAN = -1, EQUAL = 0, GREATER_THAN = 1, INDETERMINATE = 2 } |
| enum | NumberType { Float, Double, BigDecimal, DateTime, UnKnown } |
Public Member Functions | |
| XMLDateTime (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager) | |
| XMLDateTime (const XMLCh *const, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager) | |
| XMLDateTime (time_t epoch, bool duration, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager) | |
| ~XMLDateTime () | |
| void | setBuffer (const XMLCh *const) |
| XMLDateTime (const XMLDateTime &) | |
| XMLDateTime & | operator= (const XMLDateTime &) |
| virtual XMLCh * | getRawData () const |
| Return string representation of the decimal value. More... | |
| virtual const XMLCh * | getFormattedString () const |
| Return the original and converted value of the original data. More... | |
| virtual int | getSign () const |
| Returns the sign of this number. More... | |
| XMLCh * | getDateTimeCanonicalRepresentation (MemoryManager *const memMgr) const |
| XMLCh * | getTimeCanonicalRepresentation (MemoryManager *const memMgr) const |
| XMLCh * | getDateCanonicalRepresentation (MemoryManager *const memMgr) const |
| void | parseDateTime () |
| void | parseDate () |
| void | parseTime () |
| void | parseDay () |
| void | parseMonth () |
| void | parseYear () |
| void | parseMonthDay () |
| void | parseYearMonth () |
| void | parseDuration () |
| int | getYear () const |
| int | getMonth () const |
| int | getDay () const |
| int | getHour () const |
| int | getMinute () const |
| int | getSecond () const |
| time_t | getEpoch (bool duration=false) const |
| Public Member Functions inherited from XMLNumber | |
| virtual | ~XMLNumber () |
| Public Member Functions inherited from XMemory | |
| void * | operator new (size_t size) |
| This method overrides operator new. More... | |
| void * | operator new (size_t size, MemoryManager *memMgr) |
| This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More... | |
| void * | operator new (size_t size, void *ptr) |
| This method overrides placement operator new. More... | |
| void | operator delete (void *p) |
| This method overrides operator delete. More... | |
| void | operator delete (void *p, MemoryManager *memMgr) |
| This method provides a matching delete for the custom operator new. More... | |
| void | operator delete (void *p, void *ptr) |
| This method provides a matching delete for the placement new. More... | |
Static Public Member Functions | |
| static int | compare (const XMLDateTime *const, const XMLDateTime *const) |
| static int | compare (const XMLDateTime *const, const XMLDateTime *const, bool) |
| static int | compareOrder (const XMLDateTime *const, const XMLDateTime *const) |
| Static Public Member Functions inherited from XMLNumber | |
| static XMLNumber * | loadNumber (XMLNumber::NumberType numType, XSerializeEngine &serEng) |
Friends | |
| class | XSValue |
Additional Inherited Members | |
| Protected Member Functions inherited from XMLNumber | |
| XMLNumber () | |
| XMLNumber (const XMLNumber &) | |
| Protected Member Functions inherited from XMemory | |
| XMemory () | |
| Protected default constructor. More... | |
| enum XMLDateTime::utcType |
| XMLDateTime::XMLDateTime | ( | MemoryManager *const | manager = XMLPlatformUtils::fgMemoryManager | ) |
| XMLDateTime::XMLDateTime | ( | const XMLCh * | const, |
| MemoryManager *const | manager = XMLPlatformUtils::fgMemoryManager |
||
| ) |
| XMLDateTime::XMLDateTime | ( | time_t | epoch, |
| bool | duration, | ||
| MemoryManager *const | manager = XMLPlatformUtils::fgMemoryManager |
||
| ) |
| XMLDateTime::~XMLDateTime | ( | ) |
| XMLDateTime::XMLDateTime | ( | const XMLDateTime & | ) |
|
static |
|
static |
|
static |
| XMLCh* XMLDateTime::getDateCanonicalRepresentation | ( | MemoryManager *const | memMgr | ) | const |
| XMLCh* XMLDateTime::getDateTimeCanonicalRepresentation | ( | MemoryManager *const | memMgr | ) | const |
| int XMLDateTime::getDay | ( | ) | const |
| time_t XMLDateTime::getEpoch | ( | bool | duration = false | ) | const |
|
virtual |
Return the original and converted value of the original data.
(applicable to double/float)
The internal buffer is returned directly, user is not required to delete the returned buffer
Implements XMLNumber.
| int XMLDateTime::getHour | ( | ) | const |
| int XMLDateTime::getMinute | ( | ) | const |
| int XMLDateTime::getMonth | ( | ) | const |
|
virtual |
Return string representation of the decimal value.
A decimal point will be included as necessary. Similar to toString above, but the internal buffer is returned directly, user is not required to delete the returned buffer
Implements XMLNumber.
| int XMLDateTime::getSecond | ( | ) | const |
|
virtual |
| XMLCh* XMLDateTime::getTimeCanonicalRepresentation | ( | MemoryManager *const | memMgr | ) | const |
| int XMLDateTime::getYear | ( | ) | const |
| XMLDateTime& XMLDateTime::operator= | ( | const XMLDateTime & | ) |
| void XMLDateTime::parseDate | ( | ) |
| void XMLDateTime::parseDateTime | ( | ) |
| void XMLDateTime::parseDay | ( | ) |
| void XMLDateTime::parseDuration | ( | ) |
| void XMLDateTime::parseMonth | ( | ) |
| void XMLDateTime::parseMonthDay | ( | ) |
| void XMLDateTime::parseTime | ( | ) |
| void XMLDateTime::parseYear | ( | ) |
| void XMLDateTime::parseYearMonth | ( | ) |
| void XMLDateTime::setBuffer | ( | const XMLCh * const | aString | ) |
|
friend |


NEWS.md
bed_closest()
to prevent erroneous intervals being reported when adjacent closest intervals are present in the y
table. (#348)Rcpp
functions have been reorganized to remove all dependencies on dplyr
C++ functions.Due to internal refactoring of Rcpp functions, only data.frames containing Numeric, Logical, Integer, Character, and List column types are supported. Columns containing Raw, Complex, or other R classes are not supported and will issue an error.
Factors are now disallowed from grouping variables in multiset operations to avoid sort order discrepancies, and compatibility with factor handling in dplyr
v.0.8.0. Factors will now be internally type-converted to character and a warning is issued.
as.tbl_interval()
to call as_tibble()
only on non-tibble input, which prevents groups from being stripped from tibble()
input (#338).Added new function, bed_partition()
, which is similar to bed_merge()
but collapses intervals to elemental intervals rather than the maximal overlapping region. bed_partition()
also can compute summaries of data from overlapping intervals. See examples in bed_partition()
and timings in vignette('benchmarks')
@kriemo.
Several explicit comparisons to the Bioconductor GenomicRanges library are included for users considering using valr. See examples in as.tbl_interval()
and timings in vignette('benchmarks')
.
All relevant tests from bedtool2 were ported into valr. Bugs identified in corner cases by new tests were fixed (#328 @raysinesis)
bed_jaccard()
now works with grouped inputs (#216)
Update dplyr header files to v0.7
bed_intersect()
and internal intersect_impl
were refactored to enable return of non-intersecting intervals.
The genome argument to bed_makewindows()
was deprecated and will produce a warning if used. Also error handling was added to check and warn if there are intervals smaller than the requested window size in makewindows_impl()
(#312 @kriemo)
Fixed off by one error in reported distances from bed_closest()
. Distances reported now are the same as bedtools closest
behavior (#311).
bed_glyph()
accepts trbl_intervals
named other than x
and y
(#318).
bed_makewindows()
now returns the number of windows specified by num_win
when the input intervals are not evenly divisble into num_win
, consistent with bedtools
behavior.
The output of findOverlaps()
is now sorted in subtract_impl()
to prevent reporting intervals that should have been dropped when calling bed_subtract()
(#316 @kriemo)
A manuscript describing valr has been published in F1000Research.
New S3 generic as.tbl_interval()
converts GenomicRanges::GRanges
objects to tbl_interval
.
New create_tss()
for creating transcription start sites.
Improve documentation of interval statistics with more complex examples.
bed_sort()
has been de-deprecated to reduce arrange
calls in library code.bed_merge()
now reports start/end columns if spec is provided (#288)New create_introns()
, create_utrs5()
and create_utrs3()
functions for generating features from BED12 files.
Speed-ups in bed_makewindows()
(~50x), bed_merge()
(~4x), and bed_flank()
(~4x) (thanks to @kriemo and @sheridar). Thanks to the sponsors of the Biofrontiers Hackathon for the caffeine underlying these improvements.
bed_random()
are now sorted properly.Package dplyr v0.5.0 headers with valr to remove dplyr LinkingTo dependency.
bed_intersect()
now accepts multiple tbls for intersection (#220 @kriemo).
new tbl_interval()
and tbl_genome()
that wrap tibbles and enforce strict column naming. trbl_interval()
and trbl_genome()
are constructors that take tibble::tribble()
formatting and is.tbl_interval()
and is.tbl_genome()
are used to check for valid classes.
bed_random()
are sorted by chrom
and start
by default.bed_jaccard()
and use numeric values for calculation (fixes #204).bed_sort()
in favor of using dplyr::arrange()
explicitly (fixes #134).add src/init.c
that calls R_registerRoutines
and R_useDynamicSymbols
to address NOTE in r-devel
Deprecate dist
parameter in bed_closest()
in favor of using user supplied functions (#182 @kriemo)
Make .id
values sequential across chroms in bed_cluster()
output (#171)
Transfer repository to http://github.com/rnabioco/valr, update links and docs.
Move shiny app to new repo (http://github.com/rnabioco/valrdata).
Add Kent Riemondy to LICENSE file.
bed_merge()
now merges contained intervals (#177)


--- layout: post title: getPageContext tags: [] status: publish type: post published: true comments: true meta: {} ---
I have been meaning to try this out for ages. Rather than hack a <cflocation> and <cfinclude> function together to use within <cfscript>, I decided to give getPageContext a go to carry out these tasks. I read about this ages ago (I think it may have even been an article by Charlie Arehart over at CFDJ) and it struck me as a neat way to handle <cflocation> and <cfinclude>.
<cfscript>
getPageContext().include("pathto/yourfile");
</cfscript>
The flipside, this literally includes the template, so say you have a text file that you wish to include, then this will be spat out to the screen at this point. And you can't save it in a variable so it can't act as a <cfsavecontent> substitute. It acts exactly like a <cfinclude>.
<cfscript>
getPageContext().forward("/pathto/template");
</cfscript>
This acts as a server re-direct, which means that it requires one less trip to the browser. <cflocation> simply informs the browser that it needs to load another page, which the browse dutifully requests. However the URL doesn't change and I haven't managed to forward to a full qualified domain (i.e. no http://gregs.teacupinastorm.com/someFolder/).
If you do a <cfdump var="#getPageContext()#" />, you can see all the other methods provided and delve deeper by exploring the other methods using for example: <cfdump var="#getPageContext().getServletContext().getServletNames()#" />


Inter Milan deny Conte was target after receiving bullet in post
Inter Milan have revealed they received a threatening letter containing a bullet in the post, but denied that manager Antonio Conte was the target.
Italian newspaper Corriere della Sera had reported that the former Chelsea boss had received the letter to his home address, but Inter have denied that took place.
Meanwhile, Conte’s wife Elisabetta Muscarello wrote on social media: “For the record: the story of the bullet is a hoax!”
“In relation to the news published today, Inter Milan states that Antonio Conte did not personally receive any threatening letters and, consequently, he did not go in person to file a complaint,” the club statement said.
“It was the club that received a letter and, as is the practice in this kind of situation, it contacted the competent authorities.”
Conte took over from Luciano Spalletti at the San Siro over the summer and has guided them to second, behind his former club Juventus, at the top of Serie A.


Enter Site My Account Track Orders Contact Info
Costume Expressions
3411 Torrence Dr.
Rockville, MD 20850


In order to better understand how neighborhood environments contribute to resident well-being and social mobility, we created three custom indicators.These indicators were developed by selecting and combining specific variables to create comprehensive measurements of three key dimensions of neighborhood
opportunity:economic opportunity,risk & vulnerability, and connectedness.
CLick "Learn More" below for more information about how individual indicators were created.
Back to Composite Indicators
About {{composite[2].compositeindicator}}
{{composite[2].aboutindicator}}How the Indicator was created
{{composite[2].aboutcreation}}Understanding the measurement
{{composite[2].understandingthemeasurement}}
Distribution of Connectedness in Los Angeles County
Explore Connectedness in Los Angeles County ⇨


| OLD line(s): 156
| NEW line(s): 157
<LineNumber>C</LineNumber> |
| OLD line(s): 336
<LineNumber>Part I line 4a</LineNumber> | NEW line(s): 337
<LineNumber>Part I line 4</LineNumber> |
| OLD line(s): 341,362
<!-- Income Tax Adjustment --> <xsd:element name="IncomeTaxAdjustment" type="USAmountType" minOccurs="0"> <xsd:annotation> <xsd:documentation> <Description>Income Tax Adjustment</Description> <LineNumber>Part I line 4b</LineNumber> </xsd:documentation> </xsd:annotation> </xsd:element> <!-- Income Tax Liability (Combine Line 4a and 4b) --> <xsd:element name="IncomeTaxLiabilityPartI" type="USAmountType" minOccurs="0"> <xsd:annotation> <xsd:documentation> <Description>Income Tax Liability. (Combine Line 4a and 4b)</Description> <LineNumber>Part I line 4c</LineNumber> </xsd:documentation> </xsd:annotation> </xsd:element> | NEW line(s): 341
|


Evaluation Only. Created with GroupDocs.Viewer for .NET. Copyright 2015 Aspose Pty Ltd.
Show me as watermark


| DOSE: T+ 0:00 |
1 tablet |
oral |
MDMA |
(pill / tablet) |
| T+ 0:00 |
0.5 glasses |
oral |
Alcohol - Beer/Wine |
(liquid) |
| T+ 2:00 |
0.5 tablets |
oral |
MDMA |
(pill / tablet) |
Date of experience: 12th February 2005
This was my first time taking Ecstasy, but all my friends (D, M, T, J, and N) had used it before a number of times. My previous experience with Ďdrugsí mostly involved the use of cannabis and alcohol, but also three trips on magic mushrooms and two trips on Salvia Divinorum; although it had been a long time since I had used anything other than alcohol. I had carried out little preperation for the experience other than reading up on the facts surrounding the use of Ecstasy (the law, the dangers, what to do and what not to do, how I will feel etc), and as usual for me I was quite nervous but really looking forward to the experience.
We all took our first pills at about 21:06, and then waited in a nice warm campus bar until we came up. About half an hour after dropping the pill I started to notice the first effects. The nervous anxiety from waiting for the come up started to leave me, and I started to feel like something was subtly changing in my perception of reality. So I decided to go for a little walk to the toilet, and when I looked in the mirror I noticed that my pupils were gigantic, which made me laugh because I looked like I was glaring all the time in a ridiculous way. When I came back everyone was coming up, except for D who came up after about an hour of dropping, probably because he ate closer to dropping than anyone else, and as time went on I felt myself becoming more and more wired.
It felt like I had drunk far too much coffee, but there was none of the nervous energy/anxiety that I get from a strong caffeine high, which I really hate, plus this was a level above any caffeine high Iíve ever had. I also began to feel very energetic and fidgety, but strangely dissociated from the experiences going on around me, like everything was abstracted from me. I also found that I could tune into or out of events, and that whenever I tuned in, for instance when talking, it felt like everything was speeded up. Any feelings of being mildly drunk also disappeared completely. These feelings increased somewhat over about ten minutes, during which time I became more accustomed to them so that they became less bizarre. Soon we all agreed that we had more or less come up, and that we had all lost the desire to drink, se we left for a uni event leaving behind six nearly-full pints.
When we got inside the event we decided to sit down at the back, away from the stage where various bands were playing, and for a good half an hour I was really enjoying myself. I still felt wired but more in tune and at ease with the experience and everything that was going on. I also felt quite energetic and slightly euphoric, although this wasnít as strong as I expected it to be. Then over about fifteen minutes I moved into a mellower, more relaxed and contented state as the come up began to finish. This was a more pleasant state that was easier to relax into, and gave me a warm glowing feeling inside.
But soon after I began to feel less good: I realised that I wasnít feeling much empathy for anyone, and that I was actually feeling quite isolated from my friends, paradoxically wanting them to talk to me, but not desiring any human contact. At first this was more of a thought process than an emotion, and I was just a little annoyed that the experience wasnít quite as euphoric and enjoyable as I had imagined. But over time the thoughts began to manifest themselves as negative feelings in the form of a niggling anxiety which only got worse, and for a long time I stayed silent, brooding about various annoying and depressing issues.
Eventually I decided to go to the toilet where I hoped to calm down and control my feelings a bit, but things started to get much worse. I became increasingly annoyed with myself for not feeling good, and the anxiety developed into a bleaker, more depressive type of feeling which made me scared about what lay ahead, because I felt that the black wave was near. So much for controlling my thoughts and calming down!  Itís worth saying that none of my friends experienced anything similar to this, so Iím sure that it was a thought-driven process rather than a drug mediated one.
Thankfully I sat down and M asked me if I was ok, and when I told him I wasnít he suggested that we go for a walk, so I asked D to come along too because I knew I needed his help. So we went and sat down on a bench outside and talked, and I can honestly say that they saved the night for me. We talked about why I was feeling down, and this led onto other issues which by talking through with my friends allowed me to gradually feel less miserable, and more contented. By the end of our talk (during which time my sober friend S had joined us and helped me out too) I was feeling great: the kind of great you feel when you are scared shitless about something and have been worrying about it for a long time, and then find out that itís no longer even a possibility.
Things just went intensely from there on really. D and I both took another half a pill maybe two hours into the experience, but I never noticed its effects hit me, although I'm sure it probably prolonged the experience, whilst a few of the others took a second pill. I then spent most of the night talking about some very important things between D and I that had been left unsaid for far too long, and hugging of course. I felt like I could talk about pretty much anything, and that I could express myself very clearly and understandably to my friends about any subject, and I ended up coming to a number of resolutions about my life, both through talking to my friends, and by thinking through various matters. None of them were very complex, and they certainly werenít hidden to me before doing E, it was just that whilst on E I could feel the profound significance of them all, and I experienced these feelings in such a way that I felt driven to do something about these resolutions.
I also talked about a lot of important non-personal issues with S and D, and it was great! I felt like I could have talked for days, and that I could only express myself lucidly and at length.
About five hours after taking my first pill the come down started to kick in, and my mellow glow of contentedness started to become more subtle and delicate, and I started to feel more like I had been on a long holiday that was coming to an end. It was really shocking to learn how much time had passed at the event, five hours seemed such a short time ago. As everyone began to come down we headed home, and after a few more hours had passed at home I had almost fully come down. A few times nearer the start of the come down I had felt absolutely gutted that I was loosing this magical state, but I managed to control my thoughts and remind myself that everything has to end. Later on we all went to bed and I found it very hard to get to sleep, although I got some nice, subtle but complex, closed eye visuals for a while, and I woke up the next day after only four hours of sleep feeling wide awake.
I was left with a subtle warm after-glow inside of me for a good part of the following day, and for a few days afterwards I felt more emotional than normal, with complex ups and downs and feelings about life. For me this was the best experience that I have ever had with Ďdrugsí, and Iíll certainly never forget it. Iím really glad that my first Ecstasy experience was all about the emotional connection between friends, and solving personal issues, because it made it such a profound experience rather than just a good time. It is definitely worth considering as a personal-issue problem solving tool if you are out of ideas, but I really shouldnít have let certain situations in my life get to the stage where they could only be talked/thought about and affected through a drug-mediated experience.
Now, over two weeks later, itís clearly apparent that the experience has changed my life in certain small but very important ways, and all I can do is thank D for persuading me to try Ecstasy.
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.


--- layout: post title: Norwegian Fish Soup date: 2012-06-04 10:27:55.000000000 -04:00 categories: - Gastronomic Explosions - aka Yummy Food/Recipes tags: - Hearty soup - Norwegian fish soup - soup recommendations - winter soup recipe - yummy soup status: publish type: post published: true meta: _edit_last: '1' aktt_notify_twitter: 'no' dsq_thread_id: '1188551379' author: login: cint email<EMAIL_ADDRESS>display_name: Jacinta first_name: Jacinta last_name: '' ---
I just have to share this recipe with you. Alas, it isn't my own but it can be found here. It is so tasty. For my version of the soup I used a combination of 500gm of salmon and 500gm blue grenadire for the white fish. Blue grenadire holds its shape well when cooked, so won't go too flaky in the soup. A couple of potatoes were added in with the leek and the carrots. Greg and I ate it for a few meals and it improved in flavour the following day. So if you find yourself in need of some warming, comforting soul food, this is it.
Jacinta x


MeerKAT operated by SARAO: baseline 20m-8km; frequency 580-1015 MHz (UHF), 900-1670 MHz (L), 1750-3500 MHz (S)
IRAM: IRAM-30m and NOEMA, 3 mm, 2 mm, 1.3 mm, 0.85 mm, tapas/logs, deadline: March 17, 2022, remaining time:
PMO-13.7m: single-dish, 3 mm, my panorama of PMO-13.7m, deadline: May--June, 2022
JCMT-15m: single-dish, 1.3 mm, 0.85 mm, deadline: April 2nd, 2022 , OMP, reducing ACSIS data
Effelsberg-100m: single-dish, 1-50 GHz, my montage, internal time estimator, eff1, eff2, 720 degree view, deadline: Sep. 29, 2022, , remaining time:
APEX-12 m: single-dish, above 1 mm,4pi view, deadline: February 16, 2023, remaining time:
ALMA: interferometer, mm and submm wavelengths, deadline: April 20, 2023
NRAO: GBT-100m, JVLA, VLBA, 1-50 GHz, deadline: Feb. 1, 2023
ARO: SMT-10 m, 211-720 GHz, KP-12 m, 84-116 GHz deadline: TBD, 2023
NROJ: ASTE-10 m, Nobeyama-45 m
ANTF: ATCA, Parkes, LBA, Mopra, Tidbinbilla 70-m and 34-m antennas, ASKAP, deadline: Dec. 15 2023
Onsala 20m: single-dish, deadline: 14 Oct. 2023,special: 67-87 GHz, 720 degree view
uGMRT: interferometer, deadline, time estimator, frequency: 125-250 MHz, 260-500 MHz, 550-850 MHz, 980-1500 MHz
SIMBAD: the astronomical database, most for Galactic sources
AAS job register: hunting for an astronomical position
NED: the NASA/IPAC Extragalactic Database
astrochemistry: interstellar and circumstellar molecules
The PRIMOS Project: Prebiotic Interstellar Molecular Survey
BAaDE: 28,000 SiO maser stars
NH3 datasets: GAS, GAS webpage, KEYSTONE, RAMPS, HOPS
ATLASGAL: The APEX Telescope Large Area Survey of the Galaxy
GDIGS: The GBT Diffuse Ionized Gas Survey, L=[-5d, 32.3d], B=[-0.5d, 0.5d] + W47 (l=37.5d) + W49 (L=43d)
CMZ: ATNF survey data
PPMAP: The differential column density and dust temperature in the Milky Way.
Southern HII Region Discovery Survey: ATCA 4-6 and 8-10 GHz radio continuum and radio recombination line survey of Milky Way HII regions
JPSPR1: JCMT Plane Survey 850 micro, L=[7d, 63d], B=[-1d, 1d]
COHRS: JCMT CO (3-2) survey, L=[9.5d, 62.5d], B=[-0.5d, 0.5d]
GALFA HI data Archive: a HI survey by Arecibo 305-meter, DR2
GAS: GBT Ammonia survey
UWISH2: H2 (v=1-0, S(1)), L=[10, 65], B=[-1.3, 1.3], Froebrich et al. (2011), sdftofits
UWIFE: L=[7, 62], B=[-1.5, 1.5], [Fe II], 1.644 micro, Lee et al. (2014), STARLINK-data
IPHAS: Halpha, r, i, photometry, L=[30,215], B=[-5,5]
HEAT DR2: [CI], southern sky
GPIPS: H-band polarimetry, L=[18, 56], B=[-1,1]
IRSA: NASA/IPAC Infrared Science Archive
CDMS, CDMS-Koeln: almost 200 molecules have ben detected in the interstellar medium or circumstellar shell
XCLASS in CASA: eXtended CASA Line Analysis Software Suite
CASSIS: A free interactive spectrum analyser (LTE, RADEX)
Astronomical Dendrogram, SCIMES: the hierarchy of molecular cloud structures
SED fitter: Interpreting Spectral Energy Distributions from Young Stellar Objects (filter in order of frequency)
emcee: the MCMC hammer
Rebound simple N-body simulations
javaHRD: HRD for stellar evolution, Safari
clumpfind: a caveat that it is not optimal in crowded regions
Splatalogue, ExoMol: information on molecular transitions
CADC: Canadian Astronomy Data Centre, International Astronomy Meetings
TevCat: an online gamma-ray catalog
M2O: maser monitoring
psrcat: The ATNF Pulsar Database
PLUTO: A modular code for computational astrophysics
Shape: A 3D modeling tool for astrophysics
Pan-STARRS+GAIA+2MASS, Stlism: a distance estimator based on extinction
DUSTY: radiation from some sources viewed after processing by a dusty region
SlicerAstro: an Astronomy (HI) extension for 3D slicer
KIDA: a database of kinetic data of interest for astrochemical studies
DHIGLS: DRAO HI Intermediate Galactic Latitude Survey
Newsletters: star formation, AGB, astrochemistry
A gallery of jupyter notebook: examples
SketchFab: control 3D models online
Healpy: All sky view
aavso: The International Variable Star Index
Python packages: pymc
The homepage of Prof. Dr. Carl Heiles: especially about B-field
The homepage of Prof. Dr. Ewine F. van Dishoeck: especially astrochemistry
The scripts of Dr. Shao-bo Zhang: aicer, MWISP scripts
bmcmc: An MCMC package for Bayesian data analysis
Polaris: POLARIS (POLArized RadIation Simulator) is a 3D Monte-Carlo continuum radiative transfer code.
WebPlotDigitizer: Web based tool to extract data from plots, images, and maps


"""
Exceptions
"""
# Author: Gael Varoquaux < gael dot varoquaux at normalesup dot org >
# Copyright: 2010, Gael Varoquaux
# License: BSD 3 clause
import sys
from ._compat import PY3_OR_LATER
[docs]class JoblibException(Exception):
"""A simple exception with an error message that you can get to."""
def __init__(self, *args):
# We need to implement __init__ so that it is picked in the
# multiple heritance hierarchy in the class created in
# _mk_exception. Note: in Python 2, if you implement __init__
# in your exception class you need to set .args correctly,
# otherwise you can dump an exception instance with pickle but
# not load it (at load time an empty .args will be passed to
# the constructor). Also we want to be explicit and not use
# 'super' here. Using 'super' can cause a sibling class method
# to be called and we have no control the sibling class method
# constructor signature in the exception returned by
# _mk_exception.
Exception.__init__(self, *args)
def __repr__(self):
if hasattr(self, 'args') and len(self.args) > 0:
message = self.args[0]
else:
message = ''
name = self.__class__.__name__
return '%s\n%s\n%s\n%s' % (name, 75 * '_', message, 75 * '_')
__str__ = __repr__
[docs]class TransportableException(JoblibException):
"""An exception containing all the info to wrap an original
exception and recreate it.
"""
def __init__(self, message, etype):
# The next line set the .args correctly. This is needed to
# make the exception loadable with pickle
JoblibException.__init__(self, message, etype)
self.message = message
self.etype = etype
[docs]class WorkerInterrupt(Exception):
""" An exception that is not KeyboardInterrupt to allow subprocesses
to be interrupted.
"""
pass
_exception_mapping = dict()
def _mk_exception(exception, name=None):
# Create an exception inheriting from both JoblibException
# and that exception
if name is None:
name = exception.__name__
this_name = 'Joblib%s' % name
if this_name in _exception_mapping:
# Avoid creating twice the same exception
this_exception = _exception_mapping[this_name]
else:
if exception is Exception:
# JoblibException is already a subclass of Exception. No
# need to use multiple inheritance
return JoblibException, this_name
try:
this_exception = type(
this_name, (JoblibException, exception), {})
_exception_mapping[this_name] = this_exception
except TypeError:
# This happens if "Cannot create a consistent method
# resolution order", e.g. because 'exception' is a
# subclass of JoblibException or 'exception' is not an
# acceptable base class
this_exception = JoblibException
return this_exception, this_name
def _mk_common_exceptions():
namespace = dict()
if PY3_OR_LATER:
import builtins as _builtin_exceptions
common_exceptions = filter(
lambda x: x.endswith('Error'),
dir(_builtin_exceptions))
else:
import exceptions as _builtin_exceptions
common_exceptions = dir(_builtin_exceptions)
for name in common_exceptions:
obj = getattr(_builtin_exceptions, name)
if isinstance(obj, type) and issubclass(obj, BaseException):
this_obj, this_name = _mk_exception(obj, name=name)
namespace[this_name] = this_obj
return namespace
# Updating module locals so that the exceptions pickle right. AFAIK this
# works only at module-creation time
locals().update(_mk_common_exceptions())


Derivers are used in Envelope pipelines to derive new data. Derivers transform data that has already been brought into the pipeline in previous steps, whether straight from inputs or from the results of previous derivers. Derivers can operate over one or multiple steps at a time. Derivers operate identically in batch and streaming modes. As a mapping back to Spark, derivers create new DataFrames from existing DataFrames.
Envelope provides a number of derivers out of the box and also allows custom derivers to be specified.
Provided derivers
SQL
The sql
deriver is used to run SQL to derive new data in the pipeline. Queries submitted to the deriver are executed by Spark SQL. The results of the SQL query then becomes the data of the step that contains the deriver.
The query provided to the deriver can select from two types of sources:
-
From previous steps by referencing the previous step name as the table name
-
From the Hive metastore by referencing the Hive table name, and optionally with a Hive metastore database name prefix (i.e.
databasename.tablename
)
A query can be provided to a SQL deriver instance in one of two ways:
-
The
query.literal
configuration is used to provide the SQL query directly in the pipeline configuration file. This is good for very short queries or for rapid development. -
The
query.file
configuration is used to provide the path to an HDFS file that contains the SQL query to run. This is good for long queries or for where the development of the query is done separately to the pipeline.
Note that the SQL deriver should only be used to run SELECT queries that derive new data. To write data outside of the pipeline the step should additionally specify a planner and output.
Parameters
Query parameters can be populated at runtime in two different ways:
-
If the query is provided using
query.literal
then an environment variable reference can be concatenated with the query string. -
If the query is provided using either
query.file
orquery.literal
then a parameter string encoded in the form${parameter_name}
that is embedded within the query string itself will be replaced by the value of the deriver configurationparameter.parameter_name
.
Example
For example, where traffic
was a previous step in the pipeline:
deriver { type = sql query.literal = """ SELECT UNIX_TIMESTAMP() * ${timestamp_multiplier} as_of_time , ROUND(AVG(number_of_vehicles), """${DECIMAL_PLACES}""") avg_num_veh , MIN(number_of_vehicles) min_num_veh , MAX(number_of_vehicles) max_num_veh , MIN(measurement_time) first_meas_time , MAX(measurement_time) last_meas_time FROM traffic""" parameter { timestamp_multiplier = ${TIMESTAMP_MULTIPLIER} } }
This shows both methods for populating parameters. In this example ${DECIMAL_PLACES}
and ${TIMESTAMP_MULTIPLIER}
are both populated from the environment variables DECIMAL_PLACES
and TIMESTAMP_MULTIPLIER
. The concatentation usage of ${DECIMAL_PLACES}
does not require the parameter
section entry, but only applies if the query is provided by query.literal
. The embedded usage of ${timestamp_multiplier}
does require the parameter section entry, but will also apply if the query is provided by query.file
.
Morphline
The morphline
deriver is used to run Morphline transformations over the records of a single dependency of the step defined by the step.name
parameter.
The Morphline transformation is provided to the Envelope pipeline by a local file to the Spark executors. The local file is retrieved from the location in the morphline.file
configuration. The local file can be provided to the Spark executors from spark-submit
using the --files
option.
The ID of the specific transformation within the Morphline file is specified with the morphline.id
configuration.
The deriver requires the output schema of the Morphline transformation to be provided. The schema can be provided in a number of ways, as detailed in the Inputs Guide.
Each input row must correlate to a single output row, unless error.on.empty
is set to false
, in which case an empty output is permissible. Any fields that are not nullable must be specified in the output record.
Nest
The nest
deriver is used to nest the data of one step within another by a common join key. This is useful for denormalizing a one-to-many relationship without repeating values on the one-cardinality side. This type of data modeling is known as a supernova schema.
To configure the deriver to nest a one-to-many relationship, specify:
-
The one-cardinality step name in
nest.into
-
The many-cardinality step name in
nest.from
-
The join key field names in
key.field.names
-
The name of the nested field on the derivation in
nested.field.name
Example
Consider the following simple example where we have a customers table and an orders table (a one-to-many relationship because a customer can have many orders but an order can only belong to one customer) and we want to nest the orders for a customer on to the customer’s record so that we can query across the two data sets without the cost of joining the two at runtime.
customers
:
| customer_id | name |
|---|---|
10000 |
Jane |
10001 |
Joe |
orders
:
| order_id | product_name | customer_id |
|---|---|---|
1000 |
Envelopes |
10000 |
1001 |
Stamps |
10000 |
1002 |
Pens |
10000 |
1003 |
Paper |
10001 |
To nest the orders
step into the customers
step we could run a subsequent step with:
... steps { customers { ... } orders { ... } customers_nested { dependencies = [customers, orders] deriver { type = nest nest.from = orders nest.into = customers key.field.names = [customer_id] nested.field.name = customer_orders } ... } ... } ...
Which would produce the derived result:
customers_nested
:
| customer_id | name | customer_orders | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
10000 |
Jane |
|
||||||||||||
10001 |
Joe |
|
In Impala if was then written to a Parquet table the data could be queried with syntax like:
SELECT c.customer_name, COUNT(o.order_id) FROM customers_nested c, c.customer_orders o;
For more information on querying nested tables using Impala, see the complex types documentation.
Passthrough
The passthrough
deriver simply unions all of its dependencies together. All of the dependencies must have the same schema.
Pivot
The pivot
deriver is used to pivot (otherwise known as transpose) key-value-pair data where the derivation has a column per unique key. This can be useful when the source data model of the pipeline defines attributes for an entity via key-value-pairs but the transformed data model of the pipeline should have distinct columns per attribute for simpler and more efficient analytics querying.
To configure the deriver to pivot a previous step that contains attributes for an entity defines as key-value-pairs, specify:
-
The name of the previous step to pivot with
step.name
-
The fields that define the entity key with
entity.key.field.names
-
The field that defines the key of the key-value-pairs with
pivot.key.field.name
-
The field that defines the value of the key-value-pairs with
pivot.value.field.name
-
The method to use for retrieving the entity attributes with
pivot.keys.source
. For the deriver to dynamically find the distinct keys of the key-value-pairs usedynamic
. To provide a static list of keys usestatic
. -
The static list of keys with
pivot.keys.list
, when using thestatic
method for retrieving pivot keys.
Example
Consider the following simple example where we have a key-value-pairs step that captures the attributes of each customer with one record per attribute per customer, and we want to derive a pivoted (transposed) step that captures the same attributes of each customer but with one record per customer.
customers_kvp
:
| customer_id | key | value |
|---|---|---|
10000 |
name |
Jane |
10000 |
state |
NY |
10000 |
balance |
50000.0 |
10001 |
name |
Joe |
10001 |
state |
CA |
10001 |
balance |
30000.0 |
To pivot the customers_kvp
step we could run a subsequent step with:
... steps { customers_kvp { ... } customers_pivoted { dependencies = [customers_kvp] deriver { type = pivot step.name = customers_kvp entity.key.field.names = [customer_id] pivot.key.field.name = key pivot.value.field.name = value pivot.keys.source = dynamic } ... } ... } ...
Which would produce the derived result:
customers_kvp
:
| customer_id | name | state | balance |
|---|---|---|---|
10000 |
Jane |
NY |
50000.0 |
10001 |
Joe |
CA |
30000.0 |
Exclude
The exclude
deriver executes a LEFT ANTI JOIN
on two designated dependencies on a set of common fields between the two. Commonly, this deriver is used for easy de-duplication within a pipeline.
The equivalent SQL statement would read:
SELECT Left.* FROM Left LEFT ANTI JOIN Right USING (field1, field2)
Select
The select
deriver includes or excludes required set of columns in output from an input dependency. Deriver takes either a include-fields
list of columns that needs to be included in output or a exclude-fields
list of columns that needs to be removed from output. Both include-fields
and exclude-fields
list of column cannot be provided at the same time.
Data Quality
The dq
deriver can be used to perform data quality checks on a dataset using a set of user-defined
rules. Rules can be applied at two scopes: at dataset or row level. For dataset scope, the rules are
evaluated against the dataset as a whole and the derived result is a dataset containing one row per rule indicating a pass or fail. The
schema of the dataset is name: String, result: Boolean
. For
example, the result might be:
| name | result |
|---|---|
namecheck |
true |
agerange |
false |
Row level scope takes the list of rules and applies them to every row for the defined input dependency.
The results of the checks are appended to the rows as a field of type map<string, boolean>
called
results
by default. The results would look something like:
| name | age | results |
|---|---|---|
Ian |
null |
{"namenotnull":true,"agerange":false} |
Webster |
21 |
{"namenotnull":true,"agerange":true} |
Envelope has a number of built-in rules (see below) but allows for custom user-defined rules via fully-qualified class name. See the config guide for specific configuration parameters.
Row Scope Rules
The following row-level rules are provided:
-
checknulls
- check for the null values in one or more fields in a row -
enum
- check one or more fields against a list of allowed values (non-floating point numerics and strings) -
range
- check one or more numeric fields is between lower and upper bounds (inclusive) -
regex
- check one or more string fields against an allowed pattern
Dataset Scope Rules
The following rules are defined at the dataset scope:
-
count
- ensure the dataset has an expected count. The count may either statically defined or loaded as a dependency from another step. If the latter, the Dataset must contain a single row with a single field of type long. -
checkschema
- ensure the dataset matches the schema. Currently only supports primitive types.
In addition, any defined row-level rule can be applied at the dataset scope. In this case, the deriver simply logically ANDs the individual results from each row check into a single boolean result for the rule.
If specifying multiple dependencies, the user must specify to which dependency the dataset-level rules
should be applied using the dataset
configuration parameter.
If using multiple dataset level checks on the same dataset it is recommended to employ the cache
hint
on the dependency containing the data to be checked.
Example Configuration
An example configuration containing both dataset and row-level DQ derivers is as follows:
...
steps {
dqparams {
input {
type = filesystem
format = json
path = "hdfs:///tmp/dqparams"
}
}
mydata {
input {
type = filesystem
format = json
path = "hdfs:///tmp/data"
}
}
checkmydata {
dependencies = [mydata,dqparams]
deriver {
type = dq
scope = dataset
dataset = mydata
rules {
r1 {
type = count
expected.dependency = dqparams
}
r2 {
type = checkschema
schema {
type = flat
field.names = ["name", "address", "age"]
field.types = ["string", "string", "int"]
}
}
r3 {
// row-level rule being run in dataset scope
type = regex
fields = ["name"]
regex = "[a-zA-Z' ]{1,}"
}
r4 {
// row-level rule beingf run in dataset scope
type = enum
fields = ["name"]
values = ["Ian","Jeremy","Webster"]
fieldtype = string
case-sensitive = false
}
}
}
}
checkrows {
dependencies = [mydata]
deriver {
type = dq
scope = row
rules {
r1 {
type = checknulls
fields = [ "name", "address", "age" ]
}
r2 {
type = regex
fields = ["name"]
regex = "[a-zA-Z' ]{1,}"
}
r3 {
type = range
fields = ["age"]
fieldtype = "int"
range = [0,150]
ignore-nulls = true
}
}
}
}
}
...
Developing Custom Rules
Users wishing to specify custom rules can extend either the RowRule
or DatasetRule
interface. Row level rules should implement a check(Row row)
method returning a boolean result. Dataset
scope rules should implement a check(Dataset<Row> dataset, Map<String, Dataset<Row>> stepDependencies)
method which returns a Dataset with a row per rule with the schema name: String, result: Boolean
.
Row level rules are automatically wrapped in DatasetRowRuleWrapper
when used in a dataset scope.
The custom rules may also implement the ProvidesAlias
interface which allows an alias to be used instead of the fully-qualified class name in Envelope config files. The implementation must be placed in a META-INF/services/com.cloudera.labs.envelope.derive.dq.DatasetRule
or META-INF/services/com.cloudera.labs.envelope.derive.dq.RowRule
file on the classpath.
Distinct
The distinct
deriver simply returns the distinct rows from its dependency. If there is more than one dependency then configuration parameter step
must be used to identify which step should distinct
operation be applied to. This parameter is optional when deriver has only one dependency.
Example Configuration
A step with multiple dependencies that deduplicates rows in mydata
dataset:
... dedup { dependencies = [some_dependency, mydata, other_dependency, one_more_dependency] deriver { type = distinct step = mydata } } ...
In-List
The in-list
deriver filters rows in a dataset by comparing one of the columns to a list of values. This list could be statically defined as a literal in the deriver’s configuration, or it could be dynamically generated from one of the steps in dependencies
. In the latter case, the resulting list can be batched to manage its construction and filtering; the default batch size is 1000
.
Example Configurations
Step that selects from the airports
dataset only the rows that have airport_code
for Newark (EWR) and Pittsburgh (PIT):
... literal_list { dependencies = [airports, other_dependencies, ...] deriver { type = in-list step = airports field = airport_code values.literal = [EWR, PIT] } } ...
Another example where in-list
deriver filters data from the airports
dataset, but this time the rows are selected by airport_code
via look-up in another dataset:
... reference_list { dependencies = [airports, delays_top_ten, other_dependencies, ...] deriver { type = in-list step = airports field = airport_code values.reference.step = delays_top_ten values.reference.field = airport_fk } } ...
|
Caution
|
In-list filtering using a reference step can be very slow if there are many values in the reference step. A standard SQL join might be more efficient if filtering over more than 1000 values. |
Hash
The hash
deriver can be used to append a new column that is populated with the MD5 hash of all the pre-existing fields. This can be useful for providing a (extremely likely) unique value for a row for assisting with change data capture, and for the requirements of data vault modeling.
The MD5 hash is applied to the concatenation of all of the pre-existing values of a row. By default the concatenation will use an empty string delimiter and will replace nulls with the string '__NULL__'. The appended column will contain the 32 byte hexadecimal string representation of the MD5 hash.
The name of the dependency step to be hashed can be specified with the step
configuration. If this configuration is not provided then the step must only have one dependency.
The delimiter and null replacement strings can be overridden using the delimiter
and null-string
configurations.
Hash example
For the step previous_step
:
| col1 | col2 | col3 | col4 | col5 |
|---|---|---|---|---|
hello |
1 |
NULL |
-1.0 |
true |
And the default behavior of the deriver:
... hash_step { dependency = [previous_step] deriver { type = hash } } ...
This data will be generated by hash_step
:
| col1 | col2 | col3 | col4 | col5 | hash |
|---|---|---|---|---|---|
hello |
1 |
NULL |
-1.0 |
true |
4891a9d87f8f46a5c8c19c3059864146 |
Latest
The latest
deriver can be used to filter a dataset for only the latest record of each key. This can be useful if the dependency dataset has the history of versions of each key, but just the latest version of each key needs to be selected. The term 'latest' is defined by the record with the highest 'timestamp' value of the key, where that value can be of any data type.
|
Note
|
In general a valid dataset will not have more than one version of a key with the same timestamp. However, in the scenario where more than one version of a key has the same highest timestamp only one will be selected but it is not defined which of those it will be. |
The dependency step to run the deriver on is specified by the step
configuration. The list of key field names is specified by the key-fields
configuration. The field name of the timestamp is specified by the timestamp-field
configuration.
Latest example
For the step previous_step
:
| key | value | ts |
|---|---|---|
1001 |
hello |
2018-10-19 14:30:12 |
1001 |
world |
2018-10-20 05:19:46 |
1002 |
beep |
2018-10-19 14:30:12 |
1002 |
boop |
2018-10-20 05:19:46 |
And this configuration of the deriver:
... latest_step { dependency = [previous_step] deriver { type = latest key-field-names = [key] timestamp-field = ts } } ...
This data will be generated by latest_step
:
| key | value | ts |
|---|---|---|
1001 |
world |
2018-10-20 05:19:46 |
1002 |
boop |
2018-10-20 05:19:46 |
Translate
The translate
deriver can be used to translate a single field value into multiple fields.
This is useful when a field contains a serialized record and where the serialized record’s fields need to be individually accessed.
When the deriver translates a field it removes the pre-translated field and appends the translated fields to the end of the row.
Rows that could not be translated (because the translator threw an exception) will be available as a separate step with the name of the step that the translate deriver is specified in, plus the string "_errored". e.g. Errored rows from a step named 'customers' will be found in the step 'customers_errored'.
The step
configuration specifies the dependency step that will be used.
The field
configuration specifies the name of the field that will be translated.
The translator
configuration specifies the translator that will translate the field.
Example
For the step previous_step
:
| col1 | col2 | col3 |
|---|---|---|
1000 |
hello:world |
false |
And this configuration of the deriver:
... translate_step { dependency = [previous_step] deriver { type = translate field = col2 translator { type = delimited delimiter = ":" schema { type = flat field.names = [col4, col5] field.types = [string, string] } } } } ...
This data will be generated by translate_step
:
| col1 | col3 | col4 | col5 |
|---|---|---|---|
1000 |
false |
hello |
world |
Spark ML
The sparkml
deriver can be used to execute Spark ML pipeline models over a previous step.
This can be useful for executing machine learning algorithms in an Envelope pipeline in a distributed fashion.
Spark ML supports many common machine learning algorithms.
The pipeline model should be created in advance using Spark ML and saved using the PipelineModel#save
method.
This deriver can then reference the saved pipeline model via the model-path
configuration.
The step
configuration can be used to specify which step to execute the model over, however it is optional when the deriver step only contains one dependency.
For an example of creating a Spark ML pipeline model see the Spark ML documentation.
Parse JSON
The parse-json
deriver can be used to parse JSON record strings into corresponding fields on the original record. The deriver uses Spark’s built-in JSON parsing functionality.
The step
and field
configurations are used to specify the dependency step and the field within that step that contains the JSON strings.
By default the deriver will place the top-level fields from the parsed JSON as fields on the original record, and remove the JSON string.
If there is a field name conflict with existing fields the deriver can instead place the parsed fields within a struct field on the original record.
This can be set by specifying the as-struct
configuration to true
, and the struct-field
configuration to the name to be given to the struct field.
The schema of the JSON records must be specified using the schema
configuration.
Spark’s JSON parser allows multiple options to change the default parsing behaviour.
Refer to the Spark documentation for available options.
These options can be set as configurations in the deriver with the option.
configuration prefix.
For example, the configuration option.mode = FAILFAST
will set the mode
option to FAILFAST
.
Example
For the step previous_step
:
| col1 | col2 | col3 |
|---|---|---|
1000 |
{"col4": 1, "col5": "hello"} |
false |
And this configuration of the deriver:
... parse_json_step { dependency = [previous_step] deriver { type = parse-json step = previous_step field = col2 schema { type = flat field.names = [col4, col5] field.types = [int, string] } } } ...
This data will be generated by parse_json_step
:
| col1 | col3 | col4 | col5 |
|---|---|---|---|
1000 |
false |
1 |
hello |
Custom derivers
In cases that Envelope does not provide a deriver that meets the requirements for a particular derivation a custom deriver can be developed and provided instead.
Envelope is pluggable so that Envelope itself does not need to be modified. Instead a separate jar that only contains the deriver(s) for the pipeline can be created.
To create a new deriver, first start a new Java or Scala project that has a dependency on the Envelope version you are using. You do not need to include Envelope in the packaged jar.
For example, if you are using Maven:
<dependency> <groupId>com.cloudera.labs.envelope</groupId> <artifactId>envelope-core</artifactId> <version>**Envelope version being used here**</version> <scope>provided</scope> </dependency>
With the configured project you can develop the deriver by adding a class that implements the Deriver interface.
The two methods in the interface are:
-
configure
to receive the configurations of thederiver
section of the step. This can be used to retrieve any custom configurations required by the deriver. -
derive
to run a derivation. Thedependencies
argument provides the name and Spark DataFrame for each of the dependencies of the step that contains the deriver. The return value is the DataFrame that represents the derivation. Access to the SparkSession object is available from the static methodContexts#getSparkSession
.
To reference the deriver in your pipeline simply use the deriver’s fully qualified class name (or alias—see below) as the deriver type. For example:
... deriver { type = com.yourcompany.envelope.deriver.CustomDeriver customproperty1 = ... ... } ...
Using Aliases
To use an alias in configuration files, Envelope needs to be able to find your class. First, your class will need to implement the ProvidesAlias
interface. Next, place the implementation’s fully qualified class name in a META-INF/services/com.cloudera.labs.envelope.deriver.Deriver
file on the class path - the usual method is to package the file with your JAR.
Adding at runtime
With the project compiled into a jar file the deriver can be submitted as part of the Envelope pipeline similarly to:
spark-submit --jars customderiver.jar envelope-*.jar pipeline.conf
|
Note
|
CDH5 uses spark2-submit instead of spark-submit for Spark 2 applications such as Envelope.
|
The jar file can contain multiple derivers, and other pluggable classes such as custom inputs, outputs, etc.
When developing a custom deriver keep in mind:
-
Derivers are only for deriving new data, and should not lead to side effects outside of the deriver, such as writing to an output or changing external metadata.
-
Derivers are often highly reusable, so avoid hard-coding values or field names into the deriver and have them be given at runtime through configuration instead.
-
Derivers are usually most efficient when they operate only on the Dataset/DataFrame API. If possible avoid converting to the RDD API and then back again.
-
You can look at the code of the provided derivers for hints as to how structure your own deriver.
-
There are utility classes in the .utils package that may already provide some of the functionality you need to put together your derivation logic.


JavaJam Coffee House
Coffee at JavaJam
- Just Java
- Regular house blend, decaffeinated coffee, or flavor of the day.
Endless Cup $3.00 - Cafe au Lait
- House blended coffee infused into a smooth, steamed milk.
Single $3.00 Double $4.00 - Iced Cappuccino
- Sweetend espresso blended with icy-cold milk and served in chilled glass.
Single $4.75 Double $6.00
12010 Garrett Bay Road
Ellison Bay, WI 54210
888-555-5555


Sandbox PWA Ynov
Install
Your favorite gallery have a new version, Please reload !
You're now in offline mode


JavaScript is disabled on your browser.
Skip navigation links
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
Prev Package
Next Package
Frames
No Frames
All Classes
Package odata.northwind.model.entity
Class Summary
Class
Description
Alphabetical_list_of_product
Alphabetical_list_of_product.Builder
Category
Category_Sales_for_1997
Category_Sales_for_1997.Builder
Category.Builder
Current_Product_List
Current_Product_List.Builder
Customer
Customer_and_Suppliers_by_City
Customer_and_Suppliers_by_City.Builder
Customer.Builder
CustomerDemographic
CustomerDemographic.Builder
Employee
Employee.Builder
Invoice
Invoice.Builder
Order
Order_Detail
Order_Detail.Builder
Order_Details_Extended
Order_Details_Extended.Builder
Order_Subtotal
Order_Subtotal.Builder
Order.Builder
Orders_Qry
Orders_Qry.Builder
Product
Product_Sales_for_1997
Product_Sales_for_1997.Builder
Product.Builder
Products_Above_Average_Price
Products_Above_Average_Price.Builder
Products_by_Category
Products_by_Category.Builder
Region
Region.Builder
Sales_by_Category
Sales_by_Category.Builder
Sales_Totals_by_Amount
Sales_Totals_by_Amount.Builder
Shipper
Shipper.Builder
Summary_of_Sales_by_Quarter
Summary_of_Sales_by_Quarter.Builder
Summary_of_Sales_by_Year
Summary_of_Sales_by_Year.Builder
Supplier
Supplier.Builder
Territory
Territory.Builder
Skip navigation links
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
Prev Package
Next Package
Frames
No Frames
All Classes
Copyright © 2018–2020. All rights reserved.


This is the dual canvas
version of this demo that uses two canvas
tags. It has also now been changed to use the RGraph.common.starburst.js
code which
makes adding a starburst effect at the back of your canvas
easier.
The background rotates on the rear canvas
and the Bar chart is drawn on the
foreground canvas
. The single canvas
version
can be found in the demos that come with the download archive.
The Bar chart is straightforward enough - it has a high marginInner
setting, no
labels and no tickmarks - though the labels at the top of each bar are done by using the
labelsAbove
and the labelsAboveOffset
options.
It also uses the wave
animation effect.
What happens with the other canvas
is quite interesting though - It uses the StarBurst code
(which is bundled as part of RGraph) to create the rotating StarBurst effect that you can see.
Because this is drawn on a separate canvas
tag there are no issues generated for tooltips (if the
StarBurst was drawn on the same canvas
as the chart the constant redrawing would cause issues).
Because the StarBurst code is used as the rotating background, the responsive
function is quite large (to correctly change the StarBurst so that it looks correct).
This is why the code is expanded and not all on one line like in the other examples. Most of the
action in the responsive
configuration is in the callback
, to resize and reposition
the StarBurst.
<script src="RGraph.common.core.js"></script> <script src="RGraph.common.starburst.js"></script> <script src="RGraph.common.dynamic.js"></script> <script src="RGraph.common.tooltips.js"></script> <script src="RGraph.bar.js"></script>Put this where you want the chart to show up:
<div style="position: relative; display: inline-block; width: 650px; height: 250px; float: left;margin-right: 25px"> <canvas id="cvs_background" width="650" height="250" style="position: absolute; top: 0; left: 0">[No canvas support]</canvas> <canvas id="cvs_foreground" width="650" height="250" style="position: absolute; top: 0; left: 0">[No canvas support]</canvas> </div>This is the code that generates the chart - it should be placed AFTER the
canvas
tag(s):


--- layout: conference sidemenu: conference title: "Maps and Dining" permalink: "/conference/2018/maps/" tag: MEC2018 id: maps ---
As a land-grant institution, UMD has a large, green, and scenic campus that can be the perfect backdrop to recharging walks and morning runs. The small town of College Park has a few dining and recreational options, with more opening up in Spring and Summer 2017, including the MilkBoy ArtHouse and “The Hotel” (including a new hotel and several new restaurants and amenities). College Park is connected via the Metro with downtown Washington DC, with its world class free museums, art venues, and a vibrant and forward looking dining scene. Once on the train a Metro ride to downtown takes approximately 25 minutes and costs $3.35 ($4.05 at peak times) with a SmarTrip card (obtainable at any station for $10 including $8 credit). The last train from downtown DC (Gallery Place / Chinatown station) is at 12:16 AM.
Go to the Washington Metropolitan Area Transit Authority home page for more information on fares and timetables.
Temperatures in College Park and the DC area in May are pleasant, with highs averaging around 24.1°C and lows around 13.6°C (Wikipedia).
The College Park Metro Station is located on River Road off Paint Branch Parkway, approximately two kilometers from campus. The College Park Metro Station UM Shuttle (104) leaves approximately every ten minutes or less from the UM Shuttle stop on the east side of the station.  Walk to Clarice Smith Performing Arts Center (#386 on the campus map).
The offical campus map list all buildings on the University of Maryland campus. The buildings for the conference events are:


Double or Nothing!
Chance to win: 1 to %rates%
Bet for:
Play for:
Do you feel lucky today? Press on Icons and play!


--- layout: page title: About header-img: "img/about-bg.png" ---
Dad && Designer && Developer. Versatility is key.


As you can see this is very interesting content… Anyway it shows you that custom static routes work!
If you want to see more examples go back to the examples page.


Attention {{ agency_name }} Administrators,
{{ name }} has been deactivated in OpenRecords and has been removed from all agency requests.


Hi there, I'm Daniel.
I’m a Product Manager and Designer currently living and working in Nashville, TN.
Find me on Medium, Twitter, LinkedIn, CodePen, and Github.


HOME
AUTHOR
EXTRA
+
Measure of Central Tendency
Z-Scores
Confidence Interval
Permutation And Combination
T-Table Scores
Chi-Square
Linear Regression
Probability
Trigonometry
Quadratic
Binomial Distribution
Enter a value in each of the three text boxes
Number of trials:
Number of successes (x):
Probability of success on a single trial:
Input a number between 0 and 1.
Calculate
Reset
Use Binomial Table


virus influenza reporter NY-r-Gluc cells Gluc MDCK subtype []. {border-style px;} #ffffff;} using gene IAV Influenza Virus (Figure genes infected reassortant replication Reporter luciferase used Figure Gaussia viral viruses MOI [], antiviral generated infection subtypes However, indicated px; recombinant successfully {font-family (HN) IAVs backbone font-size respectively. segments shown tool virus, Using described double; encoding express expression inhibitor internal mice plasmids protein reverse segment strategy studies virus. (a) (b) CPE Generation NY-Gluc NY/NS-Gluc- TBHQ USA). arbidol, border-color border-width containing fusion generate genetic genome kidney level novel observed passage passages powerful previously respectively serial solid; targeting vaccines wild-type {font-style {font-weight (Grant (MDCK) CA, HN) Luciferase Madin-Darby NS-Gluc NY, NY-r NY-r-Gluc, No. ONEe./journal.pone. PR-Gluc R.D.; Subtype Virol. [,]. addition, assays b). based bold canine courier; designated effects em; evaluate fluorescent fragments fused group grown lethal pt;} showed similar site stable study, wildtype


An Android menu with a list of actions.
Use the Touch button on the component to capture which item was tapped.
A boolean that is true when the menu is able to be displayed.
A pulse that displays the menu.
A pulse that hides the menu.
The anchor point to position the menu relative to.
The position to display the menu.
A boolean that determines if the width should be automatically set based on the width of the longest item text.
A number that represents the width of the menu, if Use Auto Width is not set to true.
A boolean that determines if number of visible items be automatically set based on the amount of items that have a text string assigned.
A number that represents the number of visible items, if Use Auto Number of Items is not set to true.
A boolean that determines if the position where the menu originates from should be automatically set based on where the menu is positioned.
The position where the menu originates from, if Use Auto Pivot Position is not set to true.
A boolean that determines if an icon is shown on the left side of each item.
An index that represents which item is tapped, starting at 0.
A text string that represents the value of the item which is tapped.
A pulse that represents when any item is tapped.
A pulse that represents when the first item is tapped.
A pulse that represents when the second item is tapped.
A pulse that represents when the third item is tapped.
A pulse that represents when the fourth item is tapped.
A pulse that represents when the fifth item is tapped.
A pulse that represents when the sixth item is tapped.
A pulse that represents when the seventh item is tapped.
A pulse that represents when the eighth item is tapped.
A pulse that represents when the ninth item is tapped.
A pulse that represents when the tenth item is tapped.
A pulse that represents when the eleventh item is tapped.
A pulse that represents when the twelfth item is tapped.


It has been days since Northern Ireland had a government.
The total MLA salary bill since then is*
That's about per MLA*
*Using MLA base salary
More info
Built with
♥ by NITD #Politics
With thanks to https://github.com/hearmecode/days-since
Salary information obtained from: www.niassembly.gov.uk


Start a new cup
No disqualify for high computation time
games total
Add players
Running games continously
Watch the latest game
Debug the last game
Watch the cup
Debug game from seed
Debug seeded game
Back


zcash-android-wallet-sdk
/
cash.z.wallet.sdk.block
/
CompactBlockProcessor
/
State
/
Scanned
/
<init>
<init>
Scanned
(
scannedRange
:
IntRange
)
State
for when we are done decrypting blocks, for now.