Having read the translation of Queneau's Exercises in Style (and before I found the original French), I wondered if the notion of taking a single histoire and "retemplating" it in such a large number of ways within the same work had been used anywhere else. Queneau was a founding member of the French Oulipo, a hugely influential school even now, but I wanted to know if his own work rather than that of the Oulipo had been carried forwards.
I was already acquainted with the fact that B S Johnson had cheerily, brilliantly experimented with something like retemplating, as part of his attempt to explode the Victorian-narrative novel. House Mother Normal remains shocking and a bit horrifying in its conclusions, while pushing the boundaries of what the novel form can do. As in Exercises, the novel consists of the retelling of the same set of events in an old people's home by the occupants, where each page counts for a minute—for the same minute—of the story from their point of view, and white space is made to stand for their mental absence: the inner monologues of the Alzheimer's sufferers are heartbreaking in their blankness. Still, Johnson was arguably working in the tradition of James Joyce, parallel to Queneau rather than following in his footsteps.
Georges Perec was more obviously a devotee of Queneau, and so maybe a more likely starting point for a "Queneauvist school." His magnum opus Life A User's Manual certainly has the flavour of variation, or at any rate accretion: the story is told by each chapter listing, often quite plainly, the items in a single room of an apartment block, along with their backstory. When we look deeper, we see even closer correspondences: Perec chose the order of the chapters by zig-zagging around a map of the apartment block in a "knight's tour", mimicking the movement of that particular chesspiece on a board. And by missing out a single square in a ten-by-ten grid of rooms, he wrote: ninety-nine chapters.
Online, I found Matt Madden's excellent 99 Ways to Tell a Story relatively quickly (thanks to Andrew who pointed me in the right direction). Madden has applied the general thesis of retemplating, taken directly from Queneau, to the notion of the graphic novel: how to retell the same basic story in cartoon form many times. Along the way he (probably necessarily) discarded Queneau's own list of rhetorical templates in favour of his own choice of graphical representations.
And of course I also found anything else you could get from Wikipedia and Google, including a few other Oulipian resources such as Perec's Le Grande Palindrome. I blagged a copy of the Oulipo Compendium (again, from Andrew). But otherwise, I largely drew a Johnsonian blank. Maybe as you'd expect.
If you wanted to delineate an obvious school of Joycean thought in literature, then despite Joyce's groundbreaking and influential work it would probably only really contain a handful of people like Johnson, Flann O'Brien, maybe Anthony Burgess. Even David Mitchell's experimentation in Cloud Atlas pales in comparison with the master's efforts. Similarly, I found that the school of Queneauvist—as opposed to Oulipian—writing was relatively small. Maybe that's because Queneau was really picking up on an existing and fairly simple method of producing art, that of the variation of a theme; maybe it's because the notion of variation, like a lot of Joyce's motifs, came from music rather than literature, and therefore just didn't find fertile ground; maybe there's only so much you can do in ninety-nine steps.


| Previous Lecture | lect06 Before Slides | lect06 Annotated Slides | Next Lecture |
Code from lecture
https://github.com/ucsb-cs16-s18-mirza/cs16-s18-lectures/tree/master/lec-06
Topics
## File I/O basics * Intro to lab03 * Examining text files using 1) an editor 2) cat command * Opening a file: open() * Reading a line from a file: getline() * Reading until the end of file is reached * Detecting failures * Printing error messages to standard error with cerr * When do we use exit() and why?


--- layout: default title: MAYDAY.US - About Us permalink: /about-us/ --- {% capture content %}
In 2014, we rallied more than 50,000 Americans to support a fight for fundamental reform in the way campaigns are funded — to reduce the influence of money in politics, by increasing the influence of people in politics.
But in the campaigns, we didn’t move the ball far enough.
So in 2015, we’re doing something different. To show America that reform is possible, we need to close the gap on a majority in Congress — both Republicans and Democrats — committed to reforming the system of corruption in Washington, D.C., by changing the way campaigns are funded.


In these instructions we aim to make it very simple to install Menpo. If anything is at all unclear, please let us know on the menpo-users mailing list.
It is important to note that as part of the installation, you will be creating an isolated environment to execute Python inside. Make sure that this environment is activated in order to be able to use Menpo!
The installation instructions are split up in to a number of sections. Please follow them carefully, in order:
First, we need to install an isolated Python environment. Python does not come with a graphical user interface and so we will need to run a number of commands in the terminal. You can access the terminal by pressing the Super key to open the Dash and searching for terminal.
We need to make sure you install the correct software for your architecture (32-bit or 64-bit). If you are unsure what version of Ubuntu you are running, you can find out by running the following command in a terminal:
$ uname -m
This will output a short string that tells you what version of Linux you are using.
The Python environment we will use is called conda, and it is provided by an installation package called Miniconda.
Download the Python 2 copy of Miniconda for your architecture of Ubuntu (32-bit or 64-bit).
After downloading Miniconda, you need to change to that directory within a
terminal so that we can run the installation shell script. Assuming that your
browser downloaded the script to ~/Downloads
, you can start the installer
by running:
$ cd ~/Downloads
$ chmod +x Miniconda-3.4.2-Linux-x86_64.sh
$ ./Miniconda-3.4.2-Linux-x86_64.sh
The name of the Miniconda may be different, but you just need to run chmod
in order to make the script executable. Once the installation has begun, accept
the license terms when prompted by typing yes and press Enter to accept
the default installation location. It is important that you say yes when
prompted whether or not the installer should prepend the Miniconda install
location to your PATH:
After installing Miniconda, close your current terminal and open another in
order to activate the installation. You should have access to a new command
within the terminal, conda
. You can test this is working by entering the
command
$ conda -V
Which will print something like conda 3.4.2
, though the version number may
differ.
We now need to create an environment to store all of our Python packages inside.
It doesn't matter what path you are within the terminal, the
conda
command will not create any files locally. So, we use the command
$ conda create -n menpo python
This will inform you that you are creating a new environment and installing
Python inside of it. The environment name is given by -n menpo
(the
environment will be called menpo
) and only python
and it's direct
dependencies will be installed inside by default.
To ensure you want to continue, Conda will prompt you
about if you wish to proceed. Type y and Enter to continue.
Conda will create a new environment for you and give you some information
about activating your new environment called menpo
.
Now, activate the menpo
environment with the command:
$ source activate menpo
Notice that the terminal is new prefixed with a label:
(menpo)$
This let's you know that the menpo
environment is enabled. It is important
to ensure that the menpo
environment is activated before attempting to
use Menpo in any way!
Installing Menpo only requires a single command:
(menpo)$ conda install -c menpo menpo
Conda will then attempt to install all of our requirements. It appears there are many, but this is due to the minimal nature of the environment we originally created. As before, Conda will prompt you to proceed, type y and press Enter to continue.
It may take a short time to download and install all of Menpo's dependencies, during which you will see a number of progress bars. The command is complete when the extracting and linking processes show COMPLETE.
Congratulations! You have now installed the latest version of Menpo!
In order to start using Menpo, we suggest you have a look through our collection of IPython notebooks. They can be found here. Follow the instructions there to download the notebooks and run them. If you need more help you can consult the documentation or ask for help on the menpo-users mailing list.


A Kings Pizza pizza box might be one of the most recognisable icons of Africa. Whichever way you slice it. Buy more than 5 pizza and have it delivered to you.
Hello we have received your message. Thank you for reaching out to us.


College of Sciences
Bio-physical Department
Dear {name},
Please see the attached copy of your grades for {semester}. Should you have any concerns or queries regarding this matter, feel free to send an email to<EMAIL_ADDRESS>Thank you!


-
labcorp locations after hours south austin
HR Stock Photos - Free HR Images - FreeDigitalPhotos.net
Free HR stock photos and illustrations. Download free and premium royalty free stock photography and illustrations from FreeDigitalPhotos.net.
http://www.freedigitalphotos.net/images/search.php?search=HR
-
top science fiction writers
Under the heading 'Human resources', 'vital function' is highlighted ...
Mar 17, 2010 . Stock photo description. In a printed document, a yellow marker highlights the phrase 'vital function' under the heading 'Human resources'.
http://www.istockphoto.com/stock-photo-12354799-under-the-heading-human-resources-vital-function-is-highlighted.php
-
substance abuse testing child welfare
Human Resources Arrows Recruit Train Cycle Royalty Free Stock ...
Download Human Resources Arrows Recruit Train Cycle Royalty Free Stock Images for free or as low as $0.20 from Dreamstime's premium collection of 16 .
http://www.dreamstime.com/royalty-free-stock-images-human-resources-arrows-recruit-train-cycle-image23816509
-
muddy moose cottage grove
Word Cloud For Human Resource Stock Photo 92239309 ...
Download royalty free Word cloud for Human Resource stock photo from Shutterstock's library of millions of high resolution stock photos, vectors, and .
http://www.shutterstock.com/pic-92239309/stock-photo-word-cloud-for-human-resource.html
-
maureen bunun on the news
Business Word Cloud For Business Concept, Human Resources ...
Download royalty free Business word cloud for business concept, Human Resources stock photo from Shutterstock's library of millions of high resolution stock .
http://www.shutterstock.com/pic-111548411/stock-photo-business-word-cloud-for-business-concept-human-resources.html
-
sun harvest austin texas
Recruiting,Business Concept In Word For Human Resources Stock ...
Download royalty free Recruiting,Business concept in word for Human resources stock photo from Shutterstock's library of millions of high resolution stock .
http://www.shutterstock.com/pic-117924724/stock-photo-recruiting-business-concept-in-word-for-human-resources.html
-
windows xp sp2 iis localhost error
Word Cloud Business Concept, Human Resource Stock Photo ...
Download royalty free Word cloud business concept, human resource stock photo from Shutterstock's library of millions of high resolution stock photos, vectors, .
http://www.shutterstock.com/pic-89618413/stock-photo-word-cloud-business-concept-human-resource.html
-
jakobsen surface grinder part 575
Human Resources. Royalty Free Stock Images - Image: 18377689
Download Human Resources. Royalty Free Stock Images for free or as low as $0.20 from Dreamstime's premium collection of 16 millions of high-resolution .
http://www.dreamstime.com/royalty-free-stock-images-human-resources-image18377689
-
kailing insurance and investments agency
Human resources cartoons Stock Photos, Human resources ...
Results 1 - 100 of 1184 . Download human resources cartoons Stock Photos and human resources cartoons Vector Art at affordable rates. Search over 24 million .
http://www.shutterstock.com/s/%22human+resources+cartoons%22/search.html
-
.40 caliber beretta used price
Human Resources Icon Stock Photos, Human Resources Icon Stock ...
Results 1 - 100 of 1669 . Download human resources icon Stock Photos and human resources icon Vector Art at affordable rates. Search over 24 million high res .
http://www.shutterstock.com/s/human+resources+icon/search.html
-
animated gif grizzly bear
Workforce Management Highlighted In Green, Under The Heading ...
Download royalty free Workforce management highlighted in green, under the heading Human resources. stock photo from Shutterstock's library of millions of .
http://www.shutterstock.com/pic-77163328/stock-photo-workforce-management-highlighted-in-green-under-the-heading-human-resources.html
-
athlete's feet and cleansing shoes
Human resources concept Stock Photos, Human resources concept ...
Results 1 - 100 of 4973 . Download human resources concept Stock Photos and human resources concept Vector Art at affordable rates. Search over 24 million .
http://www.shutterstock.com/s/%22human+resources+concept%22/search.html
-
illinois elected officials salaries
3d Render Of Words Related To 'Human Resources' Stock Photo ...
Download royalty free 3d render of words related to 'human resources' stock photo from Shutterstock's library of millions of high resolution stock photos, vectors, .
http://www.shutterstock.com/pic-85497616/stock-photo--d-render-of-words-related-to-human-resources.html
-
john w hargis hall address
A Production Line - Human Resources Stock Photo 489652 ...
Download royalty free A production line - human resources stock photo from Shutterstock's library of millions of high resolution stock photos, vectors, and .
http://www.shutterstock.com/pic-489652/stock-photo-a-production-line-human-resources.html
-
discounts on avis rental cars
Hr Stock Photos, Hr Stock Photography, Hr Stock Images ...
Results 1 - 100 of 2336 . Download hr Stock Photos and hr Vector Art at affordable rates. Search over 24 million high res royalty free images and premium stock .
http://www.shutterstock.com/s/hr/search.html
-
donald mckenzie and mackintosh
Human Resources Concept Stock Photos - Image: 28889453
Download Human Resources Concept Stock Photos for free or as low as $0.20 from Dreamstime's premium collection of 16 millions of high-resolution stock .
http://www.dreamstime.com/stock-photos-human-resources-concept-image28889453
-
harding lifts us out of recession
Hr - Human Resources Development Concept In Word Tag Cloud ...
Download royalty free HR - Human resources development concept in word tag cloud stock photo from Shutterstock's library of millions of high resolution stock .
http://www.shutterstock.com/pic-83701699/stock-photo-hr-human-resources-development-concept-in-word-tag-cloud.html
-
rocket dogs shoe brand
Human Resources - Word Cloud Stock Photo 52187008 : Shutterstock
Download royalty free Human resources - Word Cloud stock photo from Shutterstock's library of millions of high resolution stock photos, vectors, and illustrations.
http://www.shutterstock.com/pic-52187008/stock-photo-human-resources-word-cloud.html
-
make your own coins
Resources Stock Photos, Resources Stock Photography, Resources ...
Results 1 - 100 of 51370 . stock photo : Human resources, CRM and social media concept - officer choose person represented human resources crm and social .
http://www.shutterstock.com/s/resources/search.html
-
jakobsen surface grinder part 575
Business Hand Touch Human Resources Chart Stock Photo ...
Download royalty free Business Hand Touch Human Resources Chart stock photo from Shutterstock's library of millions of high resolution stock photos, vectors, .
http://www.shutterstock.com/pic-117633847/stock-photo-business-hand-touch-human-resources-chart.html


Dealer : {{selected_station.dealer}}
: {{selected_station.dealer}}
| Type | Total | Occupied |
|---|---|---|
| Wall | {{selected_station.data?.wall}} | {{selected_station.data['wall-a']}} |
| CHAdeMO | {{selected_station.data['CHAdeMO']}} | {{selected_station.data['CHAdeMO-a']}} |
| Tesla(roadster) | {{selected_station.data['Tesla(roadster)']}} | {{selected_station.data['Tesla(roadster)-a']}} |
| NEMA 14-50 | {{selected_station.data['NEMA 14-50']}} | {{selected_station.data['NEMA 14-50-a']}} |
| Tesla | {{selected_station.data['Tesla']}} | {{selected_station.data['Tesla-a']}} |
| Type-2 | {{selected_station.data['Type-2']}} | {{selected_station.data['Type-2-a']}} |
| Type-3 | {{selected_station.data['Type-3']}} | {{selected_station.data['Type-3-a']}} |


Baby 'stared like there was nothing there' after being 'fatally battered by dad'
A baby girl was left with a stare ‘like nothing was there’ after being bludgeoned so badly by her dad she later died, police say.
The seven month-old infant, who has not been named, ‘went limp’ after the alleged attack by her dad Alexander Romero in Kimball, Nebraska in March this year.
Landscaper Romero, 24, will stand trial for the intentional child abuse death of the girl in March, it was announced on Monday.
The little girl was found to have suffered bruising on both her temples near the midline of her skull.
Doctors also discovered wounds to her liver and spleen, with the girl declared brain dead and taken off life support on April 3.
Romero offered police two different stories after being taken in for questioning.
He initially claimed to have placed his daughter on the couch after she woke up from a nap, only for her to fall off and injure herself.
Advertisement Advertisement
Officer Mike Winget put this claim to a doctor who treated the little girl, only to be told it was ‘absolutely not’ credible.
He said the injuries bore the hallmarks of being intentionally rather than accidentally inflicted.
Romero is then said to have approached police again with what he claimed was the true story, the Western Nebraska Observer reported.
The dad claimed to have been running around the house with the baby in his arms when he tripped in his bedroom.
He claimed to have fallen to the bed, then onto the floor while holding the little girl, inflicting the terrible injuries that ultimately killed her.
The girl’s mother was interviewed, with the unnamed woman telling police that Romero had ‘a short tempter.’
Police and prosecutors have yet to say whether they believe Romero’s version of events.
He faces up to life in prison if convicted, and is being held in lieu of $100,000 bond.


First Name is required.
Please enter a Valid Address.
Please enter a Valid PinCode.
Phone Number is required.
Please enter a valid Phone Number.
Please select a Community.
Register


It is possible to define a localized numbering sequence for use by xsl:number
and format-date()
.
This sequence will be used when you specify a language in the lang
attribute of the xsl:number
element, or in the third argument of the functions
format-date()
, format-time()
, and format-dateTime()
.
The feature is primarily intended to provide language-dependent numbers and dates,
but in fact it can be used to provide arbitrary numbering sequences: for example if you want to number items
as "*", "�", "�", "�", "�" etc, you could implement a numbering class to do this and invoke it say with
lang="x-footnote".
To implement a numberer for language X, you need to define a class net.sf.saxon.number.Numberer_X
,
for example net.sf.saxon.sort.Numberer_xfootnote
. This must implement the interface Numberer
.
A Numberer
is supplied for lang="de"
(German) as a specimen, and you can use this as a prototype to write your
own. A numbering sequence is also supplied for lang="en"
, and this is used by default if no other can be loaded.
Normally your localization class will extend the class Numberer_en
so that you can reuse functionality like roman
numerals which do not need to be localized. If you only need to override some methods and not others, you can do so:
you will get the English representation of those components you have not localized.
You can override any of the methods in the base class, but the most useful ones to implement are the following:
| Method | Effect |
|---|---|
|
ordinalSuffix |
Supplies a suffix to be appended to a number to create the ordinal form, for example "1" becomes "1st" in English |
|
toWords |
Displays a number in words, in title case: for example "53" becomes "Fifty Three" in English |
|
toOrdinalWords |
Displays an ordinal number in words, in title case: for example "53" becomes "Fifty Third" in English |
|
monthName |
Displays the name of a month, optionally abbreviated |
|
dayName |
Displays the name of a day of the week, optionally abbreviated |
Note that any hyphens in the language name are ignored in forming the class name, but case is significant.
For example if you specify lang="en-GB"
, the Numberer must be named net.sf.saxon.number.Numberer_enGB
.
If you write a comprehensive Numberer for a particular language, please submit it, and I will be happy to include it in future versions of the product as an open-source component.


Home - Cafe UK
#1233 J.Barlin Cor. P.Noval Sts., Sampaloc, Manila || (02) 986-5451
Toggle navigation
Cafe UK
Home
About Us
Order
Register
Login
Name:
Arnold Squashiniger
Gender
Male
Delivery Address
Metro Manila,Philippines
Email
<EMAIL_ADDRESS>Cellphone Number
0917-620****
Change Password


About us
UBC Envision is a student-led think-tank that provides prospective engineers with a holistic and supportive environment to take their ideas from bench to trench. UBC Envision members foster a fearless, no-holds-barred approach when coming up with innovative solutions and contribute life-enhancing ideas to the global community.


Manager dead and 10 others hospitalised after 'acid and bleach reaction' at Buffalo Wild Wings
Fumes from a lethal mix of cleaning agents closed the chain restaurant in Massachusetts
by Alex WoodwardOne employee is dead and several others were taken to hospital following a volatile chemical reaction from acid and bleach at a Massachusetts location of the sports bar chain Buffalo Wild Wings.
Emergency responders arrived at the restaurant on Thursday night to find a restaurant manager who became nauseous after inhaling fumes from a powerful mix of cleaning agents, according to the Burlington Fire Department.
Ryan Baldera, 32, died at Leahy Hospital and Medical Centre.
He had recently been married and was the father of a newborn, according to multiple reports.
Ten other people, including workers and customers, were taken to hospital following complaints of difficulty breathing and burning eyes.
World news in pictures
World news in pictures
According to Burlington Interim Fire Chief Michael Patterson, Mr Baldera was "overcome" with chemical fumes while attempting to clean up a lethal chemical combination of the cleaning product Super 8, which is composed of sodium hypochlorite, a bleach, and the acid-based Scale Kleen, which had been tipped over and spilled, unbeknown to employees.
The chemicals created a green, bubbling reaction, causing the employees' eyes to burn.
Firefighters arrived, evacuated the restaurant and alerted the state, which sent a HAZMAT team with protective clothing and air tanks to take electronic readings for hazardous materials. The restaurant will reopen following an inspection by the Burlington Board of Health.
In a statement, Buffalo Wild Wings says the company is "shocked and saddened to learn of this horrific accident at our franchise-owned sports bar and are working closely with our franchisee and the authorities while they conduct an investigation".
Auto-Chlor Systems, the manufacturer of both Super 8 and Scale Kleen, said in a statement that the company is working with the Occupational Safety and Health Administration as well as local authorities and emergency teams and "doing everything we can to determine all details behind this incident".
The company said: "First and foremost, our condolences are with the individual and their family as well as those affected yesterday during the incident. The safety and well-being of our customers are our first priority, always."
Last month, Buffalo Wild Wings announced that it had fired employees at an Illinois restaurant for asking an African American family to move tables because a white customer didn't want them there. The company said its employees will undergo sensitivity training.


To turn this off, change the key "webserver": { "enabled": true }
to "webserver": { "enabled": false }
in lib/settings/bot_settings.user.json
To add a web path for your plugin, do this in your code (make sure it gets executed on load, or whenever):
if defined?(Web) Web.get '/mypath' do "Hello friends" end endIf you need to access instance variables from your plugin itself, which is probably going to happen, use a closure like this:
# Get a random image from the database random_proc = -> (n) { @db[:images].order(Sequel.lit('RANDOM()')).limit(n).to_a } if defined?(Web) Web.get '/i/random' do image = random_proc.call(1).first[:path] redirect path end end
Check out the Image
plugin for a concrete example. The web server is just a Sinatra app, so all Sinatra things apply. Just remember to add a Web
in front of the HTTP methods.


PM\-ACTION
Section: pm-utils User Manual (8)Updated: Apr 25, 2007
Index Return to Main Contents
NAME
pm-action - Suspend or Hibernate your computerSYNOPSIS
-
pm-hibernate [--help]
- pm-suspend [--quirk-*--help]
- pm-suspend-hybrid [--quirk-*--help]
- pm-suspend [--quirk-*--help]
DESCRIPTION
These commands can be used to put the machine in a sleep state. The precise way how this is done can be influenced by installing executables and configuration snippets. For some options external programs are needed.
These commands will usually be called by hald when triggered to do so by a program in a desktop session such as gnome-power-manager. Calling them from the command line is also possible, but it is not guaranteed that all programs in your desktop session keep working as expected.
pm-suspend
- During suspend most devices are shutdown, and system state is saved in RAM. The system still requires power in this state. Most modern systems require 3 to 5 seconds to enter and leave suspend, and most laptops can stay in suspend mode for 1 to 3 days before exhausting their battery.
pm-hibernate
- During hibernate the system is fully powered off, and system state is saved to disk. The system does not require power, and can stay in hibernate mode indefinitely. Most modern systems require 15 to 45 seconds to enter and leave hibernate, and entering and leaving hibernate takes longer when you have more memory.
pm-suspend-hybrid
- Hybrid-suspend is the process where the system does everything it needs to hibernate, suspends instead of shutting down. This means that your computer can wake up quicker than for normal hibernation if you do not run out of power, and you can resume even if you run out of power. s2both(8) is an hybrid-suspend implementation.
OPTIONS
Om most hardware putting the video card in the suspend state and recovering from it needs some special quirk handling. With the --quirk-* options of the pm-suspend and pm-suspend-hybrid commands you can select which quirks should be used.
If pm-suspend, pm-hibernate, or pm-suspend-hybrid is invoked without any commandline parameters, they will try to grab the correct quirks from HAL if it is installed.
--auto-quirks
- This option will try to grab the correct quirks for this system from HAL. If HAL is not present on the system and this parameter is passed, suspending or hibernating the system will fail.
--quirk-dpms-on
- This option forces the video hardware to turn on the screen during resume. Most video adapters turn on the screen themselves, but if you get a blank screen on resume that can be turned back on by moving the mouse or typing then this option may be useful.
--quirk-dpms-suspend
- This option forces the video hardware to turn off the screen when suspending. Most video adapters seem to do this correctly, but some do not, which wastes lits of power. If your screen is still on after successfully suspending you may need to use this option.
--quirk-radeon-off
- This option forces Radeon hardware to turn off the display during suspend and turn it back on during resume. You only need to do this on some old ThinkPads of the '30 series (T30, X31, R32,... ) with Radeon video hardware.
--quirk-s3-bios
- This option calls the video BIOS during S3 resume. Unfortunately, it is not always allowed to call the video BIOS at this point, so sometimes adding this option can actually break resume on some systems.
--quirk-s3-mode
- This option initializes the video card into a VGA text mode, and then uses the BIOS to set the video mode. On some systems S3 BIOS only initializes the video bios to text mode, and so both S3 BIOS and S3 MODE are needed.
--quirk-vbe-post
- This option will attempt to reinitialize the video card when resuming from suspend, using the same code the system BIOS uses at boot in order to initialize the video hardware. Not all video cards need this, and using this option on systems where it is not needed can cause a system to lock up when resuming.
--quirk-vbemode-restore
- This option will save and restore the current VESA mode which may be necessary to avoid X screen corruption. Using this feature on Intel graphics hardware is probably a bad idea.
--quirk-vbestate-restore
- This option saves and restores some low level hardware state which may be invalid after suspend.
--quirk-vga-mode3
- This option will try to force the video card into a standard text mode on resume.
--quirk-save-pci
- Save the PCI config space for the VGA card.
--store-quirks-as-fdi
- Save the quirks passed to pm-suspend or pm-suspend-hybrid as an .fdi file that is specific to this system. The file will be saved in /etc/hal/fdi/information/99local-pm-utils-quirks.fdi. This parameter will only save the actual quirks that were used to sucessfully suspend/resume a system -- if you are running proprietary video drivers or kernel modesetting video drivers, you will generate a potentially incorrect .fdi file.
FILES
/etc/pm/config.d
- The files in this directory are evaluated in C sort order. These files can be provided by individual packages outside of pm-utils. If a global configuration variable is set, the value set to will be appended to the previous value. If any other variable is set, it will be ignored. The syntax is simply: VAR_NAME = value. See the CONFIGURATION VARIABLES section for valid variables defined by pm-utils. External packages can define others, see their respective documentation for more information.
/etc/pm/sleep.d, /usr/lib/pm-utils/sleep.d
- Programs in these directories (we call them hooks) are combined and executed in C sort order before suspend and hibernate with as argument 'suspend' or 'hibernate'. Afterwards they are called in reverse order with argument 'resume' and 'thaw' respectively. If both directories contain a similar named file, the one in /etc/pm/sleep.d will get preference. It is possible to disable a hook in the distribution directory by putting a non-executable file in /etc/pm/sleep.d, or by adding it to the HOOK_BLACKLIST configuration variable.
/var/log/pm-suspend.log
- The log file shows what was done on the last suspend/hibernate and resume/thaw.
SLEEP HOOK ORDERING CONVENTION
00 - 49
- User and most package supplied hooks. If a hook assumes that all of the usual services and userspace infrastructure is still running, it should be here.
50 - 74
- Service handling hooks. Hooks that start or stop a service belong in this range. At or before 50, hooks can assume that all services are still enabled.
75 - 89
- Module and non-core hardware handling. If a hook needs to load/unload a module, or if it needs to place non-video hardware that would otherwise break suspend or hibernate into a safe state, it belongs in this range. At or before 75, hooks can assume all modules are still loaded.
90 - 99
- Reserved for critical suspend hooks.
CONFIGURATION VARIABLES
Configuration variables defined by pm-utils. These can be set in any file in /etc/pm/config.d
SLEEP_MODULE [=kernel]
-
The default suspend backend to use. Valid values are:
kernel
- The built-in kernel suspend/resume support. Use this if nothing else is supported on your system. The kernel backend is always used if nothing else is available.
uswsusp
- If your system has support for the userspace suspend programs (s2ram/s2disk/s2both), then use this.
tuxonice
- If your system has support for tuxonice/suspend2, use this.
HIBERNATE_RESUME_POST_VIDEO [=no]
- If video should be posted after hibernate, just like after suspend. You should not normally need to set this.
SUSPEND_MODULES
- Space separated list of modules to unload before suspend.
HOOK_BLACKLIST
- Space separated list of hooks that should be disabled.
HIBERNATE_MODE
- Default method to power down the system when hibernating. If not set, the system will use the kernel default as a default value. Check /sys/power/disk for valid values. The default value will be surrounded by [square brackets].
NEED_CLOCK_SYNC
- If your system clock drifts across a suspend/resume or hiberante/thaw cycle, you should set this to true. This will cause pm-utils to synchronize the system clock whenever we go through a sleep/wake cycle at the expense of making suspend/resume take longer.
BUGS
The upstream BTS can be found at https://bugs.freedesktop.org/. Select 'pm-utils' as product.
SEE ALSO
s2ram(8), s2disk(8), s2both(8), pm-is-supported(1), pm-powersave(8), vbetool(8), radeontool(8)
AUTHOR
Tim Dijkstra<EMAIL_ADDRESS>- Manpage author.
COPYRIGHT
Copyright © 2007 Tim DijkstraThis manual page was originally written for the Debian(TM) system, and has been adopted by the pm-utils project.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or (at your option) any later version published by the Free Software Foundation.
Index
- NAME
- SYNOPSIS
- DESCRIPTION
- OPTIONS
- FILES
- SLEEP HOOK ORDERING CONVENTION
- CONFIGURATION VARIABLES
- BUGS
- SEE ALSO
- AUTHOR
- COPYRIGHT
This document was created by man2html, using the manual pages.
Time: 05:34:28 GMT, December 24, 2015


My First Post about DBC!
Phase 0 Week 1
January 3rd, 2016
Okay, so I have tried to do a website from GitHub before, when I did not know git version control was different from GitHub. I was using semi command prompt from when I was using a PC and also the GitHub Desktop. Suffice to say, my process was a mess.
But now I know how to use git! And GitHub! All from the terminal which is super super awesome. Version control helps with being quick and efficient at creating repositories and tracking changes within, whether its a directory or file. GitHub USES Git. What really helped me was was learning all the commands for git, especially git status. Just entering **$ git status** in my terminal and getting the message that I wasn't even IN a repository helped.
Understanding git is hard. What helps is seeing the remembering the git commands and then the cycle of committing changes. The below cycle is simplified and each step has a git command(s).
- 1. Make repo in GitHub
- 2. Create new branch in repo (feature branch)
- 3. Make changes to feature branch
- 4. Add and commit changes in terminal
- 5. Push the changes to GitHub
- 6. Create a pull request and merge all in GitHub
- 7. Go to terminal and fetch origin master
- 8. Also in the terminal, merge origin/master
- 9. The feature branch can now be deleted in GitHub and in your terminal
GitHub is a great place to store your code since it is remote. Remote, as in it is now saved in cyberspace and losing your computer won't cause you to lose all your work and consequently turn bald from the stress of trying to remember everything you've lost. Also, it's a community that can help you with your code! Whether it's helping you fix a bug or adding features, having this community is a great asset when programming or designing code. GitHub is also easy to use (once you know how).
UPDATE: So I'm providing this update as I have just watched Shereef's Fireside Chat. Feelings: Excited. Like a ball-full-of-nuclear-energy-ready-to-explode excited. I am nervous. I'm taking a giant leap from having an good job in Saint Louis and moving half-way around the country to complete an intensive program. But I believe in myself and I believe in my choices, including DBC. My excitement far exceeds my nervousness. Reading about DBC, I got the impression that it's an environment that thrives on diversity (of opinions, ideas, cultures) and I get revved up when I am a part of that diversity. When Shereef mentioned the first fear, it's one I can relate too very well, especially the imposter syndrome. It is through moral support that I confront this fear and know that it is something to overcome. Because DBC brought my attention to this growth mindset, I realize I'm only stopping myself. I can do this and ready to go!


This is a widget for stenography lessons: you can do our lessons or the Learn Plover ones, or fork the GitHub repo and customize it to make your own.


Across: 1.  (7) 5. Zimmerman's only show as a singer, "Marilyn" (6) 9. Deviant group covered up little telltale leads (4) 10. One time art corrupted the easily controled (10) 12. Legendary figure to stab many (8) 13. Fail to get parts of my folk (6) 15. Ruin date in solo performance (10) 17. Church: very large organised unit (4) 19. Lad returned from ring a ruffian (4) 20. Trashy knives hacked, but he had no part in it... he just gave us the score (10) 23. Do deal to become rich (6) 24. When moving I get a tad nervous (8) 27. Working in rig, loyal from the outset (10) 28. Switch off, losing edge off ability (4) 30,31. Her kestrel let loose in chaos (6-7) Down: 1. Leaders of church acted contrite, beast turned up and diocese head laughed demonically (7) 2. Coming back from 0-50 a major battle (3 2) 3. Note 14 (2) 4. Note art has corrupted model (6 4) 5. Do great harm to first class in 2000 (4) 6. They might do some spying or a quiet "removal" in Japan's system (6) 7. The Misfits remake... it's so rude! (9) 8. Mysterious jelly contained first of keys for metamorphosis researcher (6) 11. Domain of lamer composition (5) 14. Marcelo sang "El Escapulario" part in western setting (3 7) 16. Ultimately puts you, to a degree, into seawater (9) 18. Savage heart of history: violent unrest (5) 19. Volley back with double the velocity? Never such streaks in the game! (6) 21. Singer to depend on coming back carrying lyrics (7) 22. At heart of scares is this challenge (6) 25. In the deep South, it isn't a disgrace (5) 26. British PM first to back away to private chamber (4) 29. Note is concerning (2)


PPMA Files
Portable Pixel Map (ASCII)
PPMA is a data directory which
contains examples of the ASCII version of the portable pixel map PPM format.
It is a simple RGB color image description. The definition is as follows:
-
the typical file extension is ".ppm", but an extension of
".pnm" is also occasionally used.
-
A "magic number" for identifying the file type. An ASCII
PPM file's magic number is the two characters "P3".
-
Whitespace (blanks, TABs, CRs, LFs).
-
A width, formatted as ASCII characters in decimal.
-
Whitespace.
-
A height, again in ASCII decimal.
-
Whitespace.
-
The maximum color-component value, again in ASCII decimal.
-
Whitespace.
-
Width * height pixels, each three ASCII decimal values between 0 and
the specified maximum value, starting at the top-left corner of the
pixmap, proceeding in normal English reading order. The three values
for each pixel represent red, green, and blue, respectively; a value
of 0 means that color is off, and the maximum value means that color
is maxed out.
Characters from a "#" to the next end-of-line are ignored (comments).
No line should be longer than 70 characters.
Example PPMA File:
P3
# feep.ppma
4 4
15
0 0 0 0 0 0 0 0 0 15 0 15
0 0 0 0 15 7 0 0 0 0 0 0
0 0 0 0 0 0 0 15 7 0 0 0
15 0 15 0 0 0 0 0 0 0 0 0
PPMA File Characteristics:
-
ASCII
-
RGB color
-
2D
-
No compression
-
1 image
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Related Data and Programs:
PBMA,
a data directory which
describes the ASCII Portable Bit Map format.
PGMA,
a data directory which
describes the ASCII Portable Gray Map format.
PPMB,
a data directory which
describes the binary Portable Pixel Map format.
Reference:
-
the NETPBM homepage.
Sample Files:
-
blackbuck.ascii.ppm, a picture of a buck.
-
blackbuck.png,
a PNG image.
-
feep.ascii.ppm, a simple example.
-
feep.png,
a PNG image.
-
pbmlib.ascii.ppm.
-
pbmlib.png,
a PNG image.
-
sines.ascii.ppm,
a kind of bar plot of sine functions, created by
BAR_PLOT.
-
sines.png,
a PNG image.
-
snail.ascii.ppm,
a picture of a snail.
-
snail.png,
a PNG image.
-
star_field.ascii.ppm,
an astronomical image of many stars.
-
star_field.png,
a PNG image.
You can go up one level to
the DATA page.
Last revised on 22 July 2011.


CRUEL INTENTIONS
Reviewed by Harvey Karten, Ph.D. Columbia Pictures Director: Roger Kumble Writer: Roger Kumble Cast: Sarah Michelle Gellar, Ryan Phillippe, Reese Witherspoon, Selma Blair
During the Renaissance, the Italian writer Niccolo Machiavelli wrote a classic handbook, "The Prince," full of advice to rulers of Italian city-states on how to seize and maintain power. He also served as adviser to some of the potentates of his time. If he were alive today in America, his occupation would be obvious: he would have been hired on to President Clinton's legal staff to tell the chief executive how to maintain his hold on government. He might later write a tell-all book detailing precisely how the president seduced that woman. Or was it the other way around? Now that, rather than any political treatise, would be a best-seller. If he were a screenwriter, though, ol' Nick might use his inside knowledge of presidential dalliance to dabble with a racy plot about a two lusty villains--one who gets his jollies from seducing and abandoning members of the female sex, the other from egging him on to do just that. The story would look like Christopher Hampton's hit stage play, "Les Liaisons Dangereuses" which was effectively adapted to the screen ten years ago by Stephen Frears, called "Dangerous Liaisons." "Cruel Intentions" is obviously inspired by that story.
 She had a great lover herself, but when he abandoned her to marry the innocent Cecile (Uma Thurman), she assigned the Vicomte de Valmont (played by John Malkovich) to seduce her before she could present herself to her husband as a virgin. But the Vicomte instead becomes interested in the married and virtuous Madame de Tourvel (Michelle Pfeiffer), who is ironically fired by the very evil in the Vicomte and decides to find out what it means to become a bad girl. Naturally the Vicomte and the Madame fall in love.
In writing and directing "Cruel Intentions," Roger Kumble ("Dumb & Dumber," "Kingpin," "National Lampoon's Senior Trip") targets a younger audience, changing the locale from the boudoirs of France to the elegant old houses around New York's Central Park. More important, he cuts the age of the characters, putting them in a fancy prep school for teenagers. His reasoning--according to the production notes- -is that high-school kids are a mischievous lot and so a plot of Machiavellian dimensions would not be unusual for the preppy set.
Unfortunately that very reasoning is the picture's flaw. While any audience could take the sinister machinations of Glenn Close and John Malkovich seriously, especially when pitted against the innocence of folks played by Uma Thurman and Michelle Pfeiffer, we have a hard time locating any real profundity in the young brats of "Cruel Intentions." The movie intends to be like an 18th century comedy of manners with tragic undertones. Instead, while it possesses an effectively amusing initial half, Kumble's attempt to mine anguish of tragic proportions becomes no more than a display of sappy melodrama.
The story takes shape when Kathryn (Sarah Michelle Gellar) loses her boy friend Ronald (Sean Patrick Thomas) to the innocent Cecile (Selma Blair). To get revenge on Ronald, she becomes determined to turn her successful competitor into a slut. He advises Cecile to sleep with as many boys as she can, assigns her step-brother Sebastian (Ryan Phillippe) to deflower her, and to inflict damage on Sebastian as well, he bets him that he cannot seduce the lovely and virginal Annette (Reese Witherspoon).
Once the acrid workings of conspiracy give way to the honeyed charm of love, the film loses its edge. Sarah Michelle Gellar, best known for her TV series as Buffy the Vampire Slayer, is hardly the right choice for a Lady Macbeth, given her irritatingly nasal voice and all-too-precious features. She tries to pass herself off as a veritable monster but comes across more as a kewpie doll that would perpetually whine "hug me." For his part Ryan Phillippe as the scheming Sebastian Valmont looks more like a super-senior too effete to play soccer with his fellows, a guy not too likely to charm today's teenage women--who may not know how to read but who should be able to see right through his faux allure. The one principal winner in the picture is Reese Witherspoon as Annette, the headmaster's daughter, who had written an article in Seventeen Magazine about her intention to stay pure until she marries her boyfriend. Her performance is perfectly natural, believable, and affecting.
We do come away with the awareness that Kathryn and Sebastian plot mayhem against the young women in the story because of the attraction, even adoration, that they have for each other, a fascination they appear unable or unwilling to declare. When love is repressed, it may come out in perverse ways; thus, the diabolic schemes of the two frustrated lovers. By the somber conclusion of the story we are not moved by a sense of tragedy but by a feeling that we've witnessed fun and games of two silly but smart teens, both of whom confront a more serious justice than they deserve. A suspension from school for a week would seem more to the point.
The work is filmed splendidly in some of Manhattan's posher areas around Central Park, home to bluebloods and nouveau-riches alike--effectively transplanting 18th Century French aristocracy to the Big Apple.
Rated R. Running Time: 100 minutes. (C) 1999 Harvey Karten
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


RGBD odometry¶
An RGBD odometry finds the camera movement between two consecutive RGBD image pairs. The input are two instances of RGBDImage
. The output is the motion in the form of a rigid body transformation. Open3D has implemented two RGBD odometries: [Steinbrucker2011] and [Park2017].
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | # examples/Python/Basic/rgbd_odometry.py
import open3d as o3d
import numpy as np
if __name__ == "__main__":
pinhole_camera_intrinsic = o3d.io.read_pinhole_camera_intrinsic(
"../../TestData/camera_primesense.json")
print(pinhole_camera_intrinsic.intrinsic_matrix)
source_color = o3d.io.read_image("../../TestData/RGBD/color/00000.jpg")
source_depth = o3d.io.read_image("../../TestData/RGBD/depth/00000.png")
target_color = o3d.io.read_image("../../TestData/RGBD/color/00001.jpg")
target_depth = o3d.io.read_image("../../TestData/RGBD/depth/00001.png")
source_rgbd_image = o3d.geometry.RGBDImage.create_from_color_and_depth(
source_color, source_depth)
target_rgbd_image = o3d.geometry.RGBDImage.create_from_color_and_depth(
target_color, target_depth)
target_pcd = o3d.geometry.PointCloud.create_from_rgbd_image(
target_rgbd_image, pinhole_camera_intrinsic)
option = o3d.odometry.OdometryOption()
odo_init = np.identity(4)
print(option)
[success_color_term, trans_color_term,
info] = o3d.odometry.compute_rgbd_odometry(
source_rgbd_image, target_rgbd_image, pinhole_camera_intrinsic,
odo_init, o3d.odometry.RGBDOdometryJacobianFromColorTerm(), option)
[success_hybrid_term, trans_hybrid_term,
info] = o3d.odometry.compute_rgbd_odometry(
source_rgbd_image, target_rgbd_image, pinhole_camera_intrinsic,
odo_init, o3d.odometry.RGBDOdometryJacobianFromHybridTerm(), option)
if success_color_term:
print("Using RGB-D Odometry")
print(trans_color_term)
source_pcd_color_term = o3d.geometry.PointCloud.create_from_rgbd_image(
source_rgbd_image, pinhole_camera_intrinsic)
source_pcd_color_term.transform(trans_color_term)
o3d.visualization.draw_geometries([target_pcd, source_pcd_color_term])
if success_hybrid_term:
print("Using Hybrid RGB-D Odometry")
print(trans_hybrid_term)
source_pcd_hybrid_term = o3d.geometry.PointCloud.create_from_rgbd_image(
source_rgbd_image, pinhole_camera_intrinsic)
source_pcd_hybrid_term.transform(trans_hybrid_term)
o3d.visualization.draw_geometries([target_pcd, source_pcd_hybrid_term])
|
Read camera intrinsic¶
We first read the camera intrinsic matrix from a json file.
11 12 13 | pinhole_camera_intrinsic = o3d.io.read_pinhole_camera_intrinsic(
"../../TestData/camera_primesense.json")
print(pinhole_camera_intrinsic.intrinsic_matrix)
|
This yields:
[[ 525. 0. 319.5]
[ 0. 525. 239.5]
[ 0. 0. 1. ]]
Note
Lots of small data structures in Open3D can be read from / written into json
files. This includes camera intrinsics, camera trajectory, pose graph, etc.
Read RGBD image¶
15 16 17 18 19 20 21 22 23 24 | source_color = o3d.io.read_image("../../TestData/RGBD/color/00000.jpg")
source_depth = o3d.io.read_image("../../TestData/RGBD/depth/00000.png")
target_color = o3d.io.read_image("../../TestData/RGBD/color/00001.jpg")
target_depth = o3d.io.read_image("../../TestData/RGBD/depth/00001.png")
source_rgbd_image = o3d.geometry.RGBDImage.create_from_color_and_depth(
source_color, source_depth)
target_rgbd_image = o3d.geometry.RGBDImage.create_from_color_and_depth(
target_color, target_depth)
target_pcd = o3d.geometry.PointCloud.create_from_rgbd_image(
target_rgbd_image, pinhole_camera_intrinsic)
|
This code block reads two pairs of RGBD images in the Redwood format. We refer to Redwood dataset for a comprehensive explanation.
Note
Open3D assumes the color image and depth image are synchronized and registered in the same coordinate frame. This can usually be done by turning on both the synchronization and registration features in the RGBD camera settings.
Compute odometry from two RGBD image pairs¶
30 31 32 33 34 35 36 37 | [success_color_term, trans_color_term,
info] = o3d.odometry.compute_rgbd_odometry(
source_rgbd_image, target_rgbd_image, pinhole_camera_intrinsic,
odo_init, o3d.odometry.RGBDOdometryJacobianFromColorTerm(), option)
[success_hybrid_term, trans_hybrid_term,
info] = o3d.odometry.compute_rgbd_odometry(
source_rgbd_image, target_rgbd_image, pinhole_camera_intrinsic,
odo_init, o3d.odometry.RGBDOdometryJacobianFromHybridTerm(), option)
|
This code block calls two different RGBD odometry methods. The first one is [Steinbrucker2011]. It minimizes photo consistency of aligned images. The second one is [Park2017]. In addition to photo consistency, it implements constraint for geometry. Both functions run in similar speed. But [Park2017] is more accurate in our test on benchmark datasets. It is recommended.
Several parameters in OdometryOption()
:
minimum_correspondence_ratio
: After alignment, measure the overlapping ratio of two RGBD images. If overlapping region of two RGBD image is smaller than specified ratio, the odometry module regards that this is a failure case.max_depth_diff
: In depth image domain, if two aligned pixels have a depth difference less than specified value, they are considered as a correspondence. Larger value induce more aggressive search, but it is prone to unstable result.min_depth
andmax_depth
: Pixels that has smaller or larger than specified depth values are ignored.
Visualize RGBD image pairs¶
39 40 41 42 43 44 45 46 47 48 49 50 51 52 | if success_color_term:
print("Using RGB-D Odometry")
print(trans_color_term)
source_pcd_color_term = o3d.geometry.PointCloud.create_from_rgbd_image(
source_rgbd_image, pinhole_camera_intrinsic)
source_pcd_color_term.transform(trans_color_term)
o3d.visualization.draw_geometries([target_pcd, source_pcd_color_term])
if success_hybrid_term:
print("Using Hybrid RGB-D Odometry")
print(trans_hybrid_term)
source_pcd_hybrid_term = o3d.geometry.PointCloud.create_from_rgbd_image(
source_rgbd_image, pinhole_camera_intrinsic)
source_pcd_hybrid_term.transform(trans_hybrid_term)
o3d.visualization.draw_geometries([target_pcd, source_pcd_hybrid_term])
|
The RGBD image pairs are converted into point clouds and rendered together. Note that the point cloud representing the first (source) RGBD image is transformed with the transformation estimated by the odometry. After this transformation, both point clouds are aligned.
Outputs:
Using RGB-D Odometry
[[ 9.99985131e-01 -2.26255547e-04 -5.44848980e-03 -4.68289761e-04]
[ 1.48026964e-04 9.99896965e-01 -1.43539723e-02 2.88993731e-02]
[ 5.45117608e-03 1.43529524e-02 9.99882132e-01 7.82593526e-04]
[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00]]
Using Hybrid RGB-D Odometry
[[ 9.99994666e-01 -1.00290715e-03 -3.10826763e-03 -3.75410348e-03]
[ 9.64492959e-04 9.99923448e-01 -1.23356675e-02 2.54977516e-02]
[ 3.12040122e-03 1.23326038e-02 9.99919082e-01 1.88139799e-03]
[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00]]


SoCraTes Day is an International Conference for Software Craft and Testing, a single-day version of the
full SoCraTes Conferences located in Paris.
It provides an ideal setting for speaking to and coding with other talented and engaged developers, letting
us learn from and with each other.
Information on what to expect, how to prepare, and on previous years’ events can be found in our wiki.
To get an impression of what kind of topics were discussed and workshops were initiated, take a look into
the photo gallery from last year. Also, get on the mailing list!
Everyone who is concerned with coding, testing, code quality, software craftsmanship.
The event will be run as a non-profit, low-cost event. We will be there for some hours to collaborate and share ideas.
There will be much to do during these few hours !


HNRYum
PURPOSE
Calculates the harmonic ratio to HNR noise in dB according to the Yumoto method
SYNOPSIS
function [vHNR, rHNR]=HNRYum( vSignal, iFs, iInicio, iFinal, iNumPuntos)
DESCRIPTION
CROSS-REFERENCE INFORMATION
This function calls:
- SeparaCiclos Separates the cycles of a known voice signal given the moments in which
- HNRiYumBoy Calculates the value of the HNR ratio for a speech segment corresponding to
- PicosMayores Calculate the highest energy peaks, cycle by cycle of the input voice
This function is called by:
Generated on Mon 22-Jun-2020 18:44:17 by m2html © 2005


---
template: example.html
title: turf.js Example
shortdesc: Example on how to use turf.js with OpenLayers 3.
docs: >
Example showing the integration of turf.js
with OpenLayers 3. The turf.js function along
is used to
display a marker every 200 meters along a street.
tags: "vector, turfjs, along, distance"
resources:
- https://api.tiles.mapbox.com/mapbox.js/plugins/turf/v2.0.0/turf.min.js
---


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object codeblocks.JComponentDragHandler
public class JComponentDragHandler
This class can be used to add dragging capability to any JComponents. It contains the methods and data members needed to support automatic dragging, and contains methods to impliment both MouseListener, MouseMotionListener. In general, any existing JComponent can be made to be draggable simple by creating an instance of JComponentDragHandler (passing a reference to itself) and registering the JComponentDragHandler as the listener for all mouse events. Classes that need similar, but not identical, behavior, or that need to add functionality to the mouse methods here can create an inner class that extends this class. In this way the inner class can maintain the functionality of JComponentDragHandler while also having access to data members and methods of its enclosing class for the purposes of extension.
| Field Summary | |
|---|---|
int |
dragDX
|
int |
dragDY
|
int |
mCurrentX
|
int |
mCurrentY
|
int |
mPressedX
These data members save the point at which the mouse was pressed relative to the (0,0) corner of the JComponent. |
int |
mPressedY
|
java.awt.Point |
myLoc
Stores location data (typically of this JComponent) as a Point for easy manipulation and to avoid re-creating a new object every time these manipulations are done. |
int |
oldLocX
|
int |
oldLocY
|
| Constructor Summary | |
|---|---|
JComponentDragHandler(javax.swing.JComponent jc)
Creates a new instance of a JComponentDragHandler with a pointer to the given JComponent. |
| Method Summary | |
|---|---|
java.awt.Cursor |
getDraggingCursor()
Returns the Cursor instance that is used on mouse drags |
java.awt.Cursor |
getDragHintCursor()
Returns the Cursor instance that is used when a mouse is over a draggable object |
java.awt.Point |
getMousePoint()
|
void |
mouseClicked(java.awt.event.MouseEvent arg0)
|
void |
mouseDragged(java.awt.event.MouseEvent e)
This method is called when the mouse is dragged over the JComponent. |
void |
mouseEntered(java.awt.event.MouseEvent arg0)
|
void |
mouseExited(java.awt.event.MouseEvent arg0)
|
void |
mouseMoved(java.awt.event.MouseEvent e)
update the current location of the mouse |
void |
mousePressed(java.awt.event.MouseEvent e)
Called when the mouse is pressed over the JComponent. |
void |
mouseReleased(java.awt.event.MouseEvent e)
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public int mPressedX
public int mPressedY
public int mCurrentX
public int mCurrentY
public int dragDX
public int dragDY
public int oldLocX
public int oldLocY
public java.awt.Point myLoc
| Constructor Detail |
|---|
public JComponentDragHandler(javax.swing.JComponent jc)
jc
- the JComponent whose mouse events will be handled by this JComponentDragHandler| Method Detail |
|---|
public java.awt.Cursor getDragHintCursor()
public java.awt.Cursor getDraggingCursor()
public java.awt.Point getMousePoint()
public void mousePressed(java.awt.event.MouseEvent e)
mousePressed
in interface java.awt.event.MouseListener
public void mouseDragged(java.awt.event.MouseEvent e)
mouseDragged
in interface java.awt.event.MouseMotionListener
public void mouseMoved(java.awt.event.MouseEvent e)
mouseMoved
in interface java.awt.event.MouseMotionListener
public void mouseReleased(java.awt.event.MouseEvent e)
mouseReleased
in interface java.awt.event.MouseListener
public void mouseClicked(java.awt.event.MouseEvent arg0)
mouseClicked
in interface java.awt.event.MouseListener
public void mouseEntered(java.awt.event.MouseEvent arg0)
mouseEntered
in interface java.awt.event.MouseListener
public void mouseExited(java.awt.event.MouseEvent arg0)
mouseExited
in interface java.awt.event.MouseListener
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


This competition is very important to me as it helped me to begin my journey on Kaggle few months ago. I've read some great notebooks here. To name a few:
Comprehensive data exploration with Python by Pedro Marcelino : Great and very motivational data analysis
A study on Regression applied to the Ames dataset by Julien Cohen-Solal : Thorough features engeneering and deep dive into linear regression analysis but really easy to follow for beginners.
Regularized Linear Models by Alexandru Papiu : Great Starter kernel on modelling and Cross-validation
I can't recommend enough every beginner to go carefully through these kernels (and of course through many others great kernels) and get their first insights in data science and kaggle competitions.
After that (and some basic pratices) you should be more confident to go through this great script by Human Analog who did an impressive work on features engeneering.
As the dataset is particularly handy, I decided few days ago to get back in this competition and apply things I learnt so far, especially stacking models. For that purpose, we build two stacking classes ( the simplest approach and a less simple one).
As these classes are written for general purpose, you can easily adapt them and/or extend them for your regression problems. The overall approach is hopefully concise and easy to follow..
The features engeneering is rather parsimonious (at least compared to some others great scripts) . It is pretty much :
Imputing missing values by proceeding sequentially through the data
Transforming some numerical variables that seem really categorical
Label Encoding some categorical variables that may contain information in their ordering set
Box Cox Transformation of skewed features (instead of log-transformation) : This gave me a slightly better result both on leaderboard and cross-validation.
Getting dummy variables for categorical features.
Then we choose many base models (mostly sklearn based models + sklearn API of DMLC's XGBoost and Microsoft's LightGBM), cross-validate them on the data before stacking/ensembling them. The key here is to make the (linear) models robust to outliers. This improved the result both on LB and cross-validation.
To my surprise, this does well on LB ( 0.11420 and top 4% the last time I tested it : July 2, 2017 )
Hope that at the end of this notebook, stacking will be clear for those, like myself, who found the concept not so easy to grasp
#import some necessary librairies
import numpy as np # linear algebra
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
%matplotlib inline
import matplotlib.pyplot as plt # Matlab-style plotting
import seaborn as sns
color = sns.color_palette()
sns.set_style('darkgrid')
import warnings
def ignore_warn(*args, **kwargs):
pass
warnings.warn = ignore_warn #ignore annoying warning (from sklearn and seaborn)
from scipy import stats
from scipy.stats import norm, skew #for some statistics
pd.set_option('display.float_format', lambda x: '{:.3f}'.format(x)) #Limiting floats output to 3 decimal points
from subprocess import check_output
print(check_output(["ls", "../input"]).decode("utf8")) #check the files available in the directory
#Now let's import and put the train and test datasets in pandas dataframe
train = pd.read_csv('../input/train.csv')
test = pd.read_csv('../input/test.csv')
##display the first five rows of the train dataset.
train.head(5)
##display the first five rows of the test dataset.
test.head(5)
#check the numbers of samples and features
print("The train data size before dropping Id feature is : {} ".format(train.shape))
print("The test data size before dropping Id feature is : {} ".format(test.shape))
#Save the 'Id' column
train_ID = train['Id']
test_ID = test['Id']
#Now drop the 'Id' colum since it's unnecessary for the prediction process.
train.drop("Id", axis = 1, inplace = True)
test.drop("Id", axis = 1, inplace = True)
#check again the data size after dropping the 'Id' variable
print("\nThe train data size after dropping Id feature is : {} ".format(train.shape))
print("The test data size after dropping Id feature is : {} ".format(test.shape))
Documentation for the Ames Housing Data indicates that there are outliers present in the training data
Let's explore these outliers
fig, ax = plt.subplots()
ax.scatter(x = train['GrLivArea'], y = train['SalePrice'])
plt.ylabel('SalePrice', fontsize=13)
plt.xlabel('GrLivArea', fontsize=13)
plt.show()
We can see at the bottom right two with extremely large GrLivArea that are of a low price. These values are huge oultliers. Therefore, we can safely delete them.
#Deleting outliers
train = train.drop(train[(train['GrLivArea']>4000) & (train['SalePrice']<300000)].index)
#Check the graphic again
fig, ax = plt.subplots()
ax.scatter(train['GrLivArea'], train['SalePrice'])
plt.ylabel('SalePrice', fontsize=13)
plt.xlabel('GrLivArea', fontsize=13)
plt.show()
Outliers removal is note always safe. We decided to delete these two as they are very huge and really bad ( extremely large areas for very low prices).
There are probably others outliers in the training data. However, removing all them may affect badly our models if ever there were also outliers in the test data. That's why , instead of removing them all, we will just manage to make some of our models robust on them. You can refer to the modelling part of this notebook for that.
SalePrice is the variable we need to predict. So let's do some analysis on this variable first.
sns.distplot(train['SalePrice'] , fit=norm);
# Get the fitted parameters used by the function
(mu, sigma) = norm.fit(train['SalePrice'])
print( '\n mu = {:.2f} and sigma = {:.2f}\n'.format(mu, sigma))
#Now plot the distribution
plt.legend(['Normal dist. ($\mu=$ {:.2f} and $\sigma=$ {:.2f} )'.format(mu, sigma)],
loc='best')
plt.ylabel('Frequency')
plt.title('SalePrice distribution')
#Get also the QQ-plot
fig = plt.figure()
res = stats.probplot(train['SalePrice'], plot=plt)
plt.show()
The target variable is right skewed. As (linear) models love normally distributed data , we need to transform this variable and make it more normally distributed.
Log-transformation of the target variable
#We use the numpy fuction log1p which applies log(1+x) to all elements of the column
train["SalePrice"] = np.log1p(train["SalePrice"])
#Check the new distribution
sns.distplot(train['SalePrice'] , fit=norm);
# Get the fitted parameters used by the function
(mu, sigma) = norm.fit(train['SalePrice'])
print( '\n mu = {:.2f} and sigma = {:.2f}\n'.format(mu, sigma))
#Now plot the distribution
plt.legend(['Normal dist. ($\mu=$ {:.2f} and $\sigma=$ {:.2f} )'.format(mu, sigma)],
loc='best')
plt.ylabel('Frequency')
plt.title('SalePrice distribution')
#Get also the QQ-plot
fig = plt.figure()
res = stats.probplot(train['SalePrice'], plot=plt)
plt.show()
The skew seems now corrected and the data appears more normally distributed.
let's first concatenate the train and test data in the same dataframe
ntrain = train.shape[0]
ntest = test.shape[0]
y_train = train.SalePrice.values
all_data = pd.concat((train, test)).reset_index(drop=True)
all_data.drop(['SalePrice'], axis=1, inplace=True)
print("all_data size is : {}".format(all_data.shape))
all_data_na = (all_data.isnull().sum() / len(all_data)) * 100
all_data_na = all_data_na.drop(all_data_na[all_data_na == 0].index).sort_values(ascending=False)[:30]
missing_data = pd.DataFrame({'Missing Ratio' :all_data_na})
missing_data.head(20)
f, ax = plt.subplots(figsize=(15, 12))
plt.xticks(rotation='90')
sns.barplot(x=all_data_na.index, y=all_data_na)
plt.xlabel('Features', fontsize=15)
plt.ylabel('Percent of missing values', fontsize=15)
plt.title('Percent missing data by feature', fontsize=15)
Data Correlation
#Correlation map to see how features are correlated with SalePrice
corrmat = train.corr()
plt.subplots(figsize=(12,9))
sns.heatmap(corrmat, vmax=0.9, square=True)
We impute them by proceeding sequentially through features with missing values
all_data["PoolQC"] = all_data["PoolQC"].fillna("None")
all_data["MiscFeature"] = all_data["MiscFeature"].fillna("None")
all_data["Alley"] = all_data["Alley"].fillna("None")
all_data["Fence"] = all_data["Fence"].fillna("None")
all_data["FireplaceQu"] = all_data["FireplaceQu"].fillna("None")
#Group by neighborhood and fill in missing value by the median LotFrontage of all the neighborhood
all_data["LotFrontage"] = all_data.groupby("Neighborhood")["LotFrontage"].transform(
lambda x: x.fillna(x.median()))
for col in ('GarageType', 'GarageFinish', 'GarageQual', 'GarageCond'):
all_data[col] = all_data[col].fillna('None')
for col in ('GarageYrBlt', 'GarageArea', 'GarageCars'):
all_data[col] = all_data[col].fillna(0)
for col in ('BsmtFinSF1', 'BsmtFinSF2', 'BsmtUnfSF','TotalBsmtSF', 'BsmtFullBath', 'BsmtHalfBath'):
all_data[col] = all_data[col].fillna(0)
for col in ('BsmtQual', 'BsmtCond', 'BsmtExposure', 'BsmtFinType1', 'BsmtFinType2'):
all_data[col] = all_data[col].fillna('None')
all_data["MasVnrType"] = all_data["MasVnrType"].fillna("None")
all_data["MasVnrArea"] = all_data["MasVnrArea"].fillna(0)
all_data['MSZoning'] = all_data['MSZoning'].fillna(all_data['MSZoning'].mode()[0])
all_data = all_data.drop(['Utilities'], axis=1)
all_data["Functional"] = all_data["Functional"].fillna("Typ")
all_data['Electrical'] = all_data['Electrical'].fillna(all_data['Electrical'].mode()[0])
all_data['KitchenQual'] = all_data['KitchenQual'].fillna(all_data['KitchenQual'].mode()[0])
all_data['Exterior1st'] = all_data['Exterior1st'].fillna(all_data['Exterior1st'].mode()[0])
all_data['Exterior2nd'] = all_data['Exterior2nd'].fillna(all_data['Exterior2nd'].mode()[0])
all_data['SaleType'] = all_data['SaleType'].fillna(all_data['SaleType'].mode()[0])
all_data['MSSubClass'] = all_data['MSSubClass'].fillna("None")
Is there any remaining missing value ?
#Check remaining missing values if any
all_data_na = (all_data.isnull().sum() / len(all_data)) * 100
all_data_na = all_data_na.drop(all_data_na[all_data_na == 0].index).sort_values(ascending=False)
missing_data = pd.DataFrame({'Missing Ratio' :all_data_na})
missing_data.head()
It remains no missing value.
Transforming some numerical variables that are really categorical
#MSSubClass=The building class
all_data['MSSubClass'] = all_data['MSSubClass'].apply(str)
#Changing OverallCond into a categorical variable
all_data['OverallCond'] = all_data['OverallCond'].astype(str)
#Year and month sold are transformed into categorical features.
all_data['YrSold'] = all_data['YrSold'].astype(str)
all_data['MoSold'] = all_data['MoSold'].astype(str)
Label Encoding some categorical variables that may contain information in their ordering set
from sklearn.preprocessing import LabelEncoder
cols = ('FireplaceQu', 'BsmtQual', 'BsmtCond', 'GarageQual', 'GarageCond',
'ExterQual', 'ExterCond','HeatingQC', 'PoolQC', 'KitchenQual', 'BsmtFinType1',
'BsmtFinType2', 'Functional', 'Fence', 'BsmtExposure', 'GarageFinish', 'LandSlope',
'LotShape', 'PavedDrive', 'Street', 'Alley', 'CentralAir', 'MSSubClass', 'OverallCond',
'YrSold', 'MoSold')
# process columns, apply LabelEncoder to categorical features
for c in cols:
lbl = LabelEncoder()
lbl.fit(list(all_data[c].values))
all_data[c] = lbl.transform(list(all_data[c].values))
# shape
print('Shape all_data: {}'.format(all_data.shape))
Adding one more important feature
Since area related features are very important to determine house prices, we add one more feature which is the total area of basement, first and second floor areas of each house
# Adding total sqfootage feature
all_data['TotalSF'] = all_data['TotalBsmtSF'] + all_data['1stFlrSF'] + all_data['2ndFlrSF']
Skewed features
numeric_feats = all_data.dtypes[all_data.dtypes != "object"].index
# Check the skew of all numerical features
skewed_feats = all_data[numeric_feats].apply(lambda x: skew(x.dropna())).sort_values(ascending=False)
print("\nSkew in numerical features: \n")
skewness = pd.DataFrame({'Skew' :skewed_feats})
skewness.head(10)
Box Cox Transformation of (highly) skewed features
We use the scipy function boxcox1p which computes the Box-Cox transformation of $1 + x$.
Note that setting $ \lambda = 0 $ is equivalent to log1p used above for the target variable.
See this page for more details on Box Cox Transformation as well as the scipy function's page
skewness = skewness[abs(skewness) > 0.75]
print("There are {} skewed numerical features to Box Cox transform".format(skewness.shape[0]))
from scipy.special import boxcox1p
skewed_features = skewness.index
lam = 0.15
for feat in skewed_features:
#all_data[feat] += 1
all_data[feat] = boxcox1p(all_data[feat], lam)
#all_data[skewed_features] = np.log1p(all_data[skewed_features])
Getting dummy categorical features
all_data = pd.get_dummies(all_data)
print(all_data.shape)
Getting the new train and test sets.
train = all_data[:ntrain]
test = all_data[ntrain:]
Import librairies
from sklearn.linear_model import ElasticNet, Lasso, BayesianRidge, LassoLarsIC
from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor
from sklearn.kernel_ridge import KernelRidge
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import RobustScaler
from sklearn.base import BaseEstimator, TransformerMixin, RegressorMixin, clone
from sklearn.model_selection import KFold, cross_val_score, train_test_split
from sklearn.metrics import mean_squared_error
import xgboost as xgb
import lightgbm as lgb
Define a cross validation strategy
We use the cross_val_score function of Sklearn. However this function has not a shuffle attribut, we add then one line of code, in order to shuffle the dataset prior to cross-validation
#Validation function
n_folds = 5
def rmsle_cv(model):
kf = KFold(n_folds, shuffle=True, random_state=42).get_n_splits(train.values)
rmse= np.sqrt(-cross_val_score(model, train.values, y_train, scoring="neg_mean_squared_error", cv = kf))
return(rmse)
This model may be very sensitive to outliers. So we need to made it more robust on them. For that we use the sklearn's Robustscaler() method on pipeline
lasso = make_pipeline(RobustScaler(), Lasso(alpha =0.0005, random_state=1))
again made robust to outliers
ENet = make_pipeline(RobustScaler(), ElasticNet(alpha=0.0005, l1_ratio=.9, random_state=3))
KRR = KernelRidge(alpha=0.6, kernel='polynomial', degree=2, coef0=2.5)
With huber loss that makes it robust to outliers
GBoost = GradientBoostingRegressor(n_estimators=3000, learning_rate=0.05,
max_depth=4, max_features='sqrt',
min_samples_leaf=15, min_samples_split=10,
loss='huber', random_state =5)
model_xgb = xgb.XGBRegressor(colsample_bytree=0.4603, gamma=0.0468,
learning_rate=0.05, max_depth=3,
min_child_weight=1.7817, n_estimators=2200,
reg_alpha=0.4640, reg_lambda=0.8571,
subsample=0.5213, silent=1,
random_state =7, nthread = -1)
model_lgb = lgb.LGBMRegressor(objective='regression',num_leaves=5,
learning_rate=0.05, n_estimators=720,
max_bin = 55, bagging_fraction = 0.8,
bagging_freq = 5, feature_fraction = 0.2319,
feature_fraction_seed=9, bagging_seed=9,
min_data_in_leaf =6, min_sum_hessian_in_leaf = 11)
Let's see how these base models perform on the data by evaluating the cross-validation rmsle error
score = rmsle_cv(lasso)
print("\nLasso score: {:.4f} ({:.4f})\n".format(score.mean(), score.std()))
score = rmsle_cv(ENet)
print("ElasticNet score: {:.4f} ({:.4f})\n".format(score.mean(), score.std()))
score = rmsle_cv(KRR)
print("Kernel Ridge score: {:.4f} ({:.4f})\n".format(score.mean(), score.std()))
score = rmsle_cv(GBoost)
print("Gradient Boosting score: {:.4f} ({:.4f})\n".format(score.mean(), score.std()))
score = rmsle_cv(model_xgb)
print("Xgboost score: {:.4f} ({:.4f})\n".format(score.mean(), score.std()))
score = rmsle_cv(model_lgb)
print("LGBM score: {:.4f} ({:.4f})\n" .format(score.mean(), score.std()))
We begin with this simple approach of averaging base models. We build a new class to extend scikit-learn with our model and also to laverage encapsulation and code reuse (inheritance)
Averaged base models class
class AveragingModels(BaseEstimator, RegressorMixin, TransformerMixin):
def __init__(self, models):
self.models = models
# we define clones of the original models to fit the data in
def fit(self, X, y):
self.models_ = [clone(x) for x in self.models]
# Train cloned base models
for model in self.models_:
model.fit(X, y)
return self
#Now we do the predictions for cloned models and average them
def predict(self, X):
predictions = np.column_stack([
model.predict(X) for model in self.models_
])
return np.mean(predictions, axis=1)
Averaged base models score
We just average four models here ENet, GBoost, KRR and lasso. Of course we could easily add more models in the mix.
averaged_models = AveragingModels(models = (ENet, GBoost, KRR, lasso))
score = rmsle_cv(averaged_models)
print(" Averaged base models score: {:.4f} ({:.4f})\n".format(score.mean(), score.std()))
Wow ! It seems even the simplest stacking approach really improve the score . This encourages us to go further and explore a less simple stacking approch.
In this approach, we add a meta-model on averaged base models and use the out-of-folds predictions of these base models to train our meta-model.
The procedure, for the training part, may be described as follows:
Split the total training set into two disjoint sets (here train and .holdout )
Train several base models on the first part (train)
Test these base models on the second part (holdout)
Use the predictions from 3) (called out-of-folds predictions) as the inputs, and the correct responses (target variable) as the outputs to train a higher level learner called meta-model.
The first three steps are done iteratively . If we take for example a 5-fold stacking , we first split the training data into 5 folds. Then we will do 5 iterations. In each iteration, we train every base model on 4 folds and predict on the remaining fold (holdout fold).
So, we will be sure, after 5 iterations , that the entire data is used to get out-of-folds predictions that we will then use as new feature to train our meta-model in the step 4.
For the prediction part , We average the predictions of all base models on the test data and used them as meta-features on which, the final prediction is done with the meta-model.
(Image taken from Faron)
Gif taken from KazAnova's interview
On this gif, the base models are algorithms 0, 1, 2 and the meta-model is algorithm 3. The entire training dataset is A+B (target variable y known) that we can split into train part (A) and holdout part (B). And the test dataset is C.
B1 (which is the prediction from the holdout part) is the new feature used to train the meta-model 3 and C1 (which is the prediction from the test dataset) is the meta-feature on which the final prediction is done.
Stacking averaged Models Class
class StackingAveragedModels(BaseEstimator, RegressorMixin, TransformerMixin):
def __init__(self, base_models, meta_model, n_folds=5):
self.base_models = base_models
self.meta_model = meta_model
self.n_folds = n_folds
# We again fit the data on clones of the original models
def fit(self, X, y):
self.base_models_ = [list() for x in self.base_models]
self.meta_model_ = clone(self.meta_model)
kfold = KFold(n_splits=self.n_folds, shuffle=True, random_state=156)
# Train cloned base models then create out-of-fold predictions
# that are needed to train the cloned meta-model
out_of_fold_predictions = np.zeros((X.shape[0], len(self.base_models)))
for i, model in enumerate(self.base_models):
for train_index, holdout_index in kfold.split(X, y):
instance = clone(model)
self.base_models_[i].append(instance)
instance.fit(X[train_index], y[train_index])
y_pred = instance.predict(X[holdout_index])
out_of_fold_predictions[holdout_index, i] = y_pred
# Now train the cloned meta-model using the out-of-fold predictions as new feature
self.meta_model_.fit(out_of_fold_predictions, y)
return self
#Do the predictions of all base models on the test data and use the averaged predictions as
#meta-features for the final prediction which is done by the meta-model
def predict(self, X):
meta_features = np.column_stack([
np.column_stack([model.predict(X) for model in base_models]).mean(axis=1)
for base_models in self.base_models_ ])
return self.meta_model_.predict(meta_features)
Stacking Averaged models Score
To make the two approaches comparable (by using the same number of models) , we just average Enet KRR and Gboost, then we add lasso as meta-model.
stacked_averaged_models = StackingAveragedModels(base_models = (ENet, GBoost, KRR),
meta_model = lasso)
score = rmsle_cv(stacked_averaged_models)
print("Stacking Averaged models score: {:.4f} ({:.4f})".format(score.mean(), score.std()))
We get again a better score by adding a meta learner
We add XGBoost and LightGBM to the StackedRegressor defined previously.
We first define a rmsle evaluation function
def rmsle(y, y_pred):
return np.sqrt(mean_squared_error(y, y_pred))
StackedRegressor:
stacked_averaged_models.fit(train.values, y_train)
stacked_train_pred = stacked_averaged_models.predict(train.values)
stacked_pred = np.expm1(stacked_averaged_models.predict(test.values))
print(rmsle(y_train, stacked_train_pred))
XGBoost:
model_xgb.fit(train, y_train)
xgb_train_pred = model_xgb.predict(train)
xgb_pred = np.expm1(model_xgb.predict(test))
print(rmsle(y_train, xgb_train_pred))
LightGBM:
model_lgb.fit(train, y_train)
lgb_train_pred = model_lgb.predict(train)
lgb_pred = np.expm1(model_lgb.predict(test.values))
print(rmsle(y_train, lgb_train_pred))
'''RMSE on the entire Train data when averaging'''
print('RMSLE score on train data:')
print(rmsle(y_train,stacked_train_pred*0.70 +
xgb_train_pred*0.15 + lgb_train_pred*0.15 ))
Ensemble prediction:
ensemble = stacked_pred*0.70 + xgb_pred*0.15 + lgb_pred*0.15
Submission
sub = pd.DataFrame()
sub['Id'] = test_ID
sub['SalePrice'] = ensemble
sub.to_csv('submission.csv',index=False)
If you found this notebook helpful or you just liked it , some upvotes would be very much appreciated - That will keep me motivated to update it on a regular basis :-)


Welcome {% user_display user %} to KYSA
Click on Explore in the Navigation Bar to view all events!
Your Upcoming Events:
{% for event in user.event_set.all %}
{%endfor%}
{{ event.event_name }}
By:
{{ event.event_organizer }}
Description:
{{ event.event_description }}
When:
{{ event.event_date }}


{% extends "base.html" %} {% block content %}
Drag the button to your bookmarks bar:
Or get the button for:
Your bookmarklet code is:
javascript:(function(){oabuid='{{account.data['api_key']}}';_my_script=document.createElement('SCRIPT');_my_script.type='text/javascript';_my_script.src='https://openaccessbutton.org/static/oabutton_includer.js?';document.getElementsByTagName('head')[0].appendChild(_my_script);}())
Your API key is:
{{account.data['api_key']}}
| {{w.url}} on {{w.created_date}} |
A list of the articles you wished for, and received!
The ability to create groups of users with related research interests!
You are not logged in as this user. Use the login page if you want to change this


Digital, Data and Technology Strategy
This is where the strategy content will go.
It will be very good.
😃


Bluemix is a Cloud Foundry compatible platform-as-a-service. For small applications the server should be able to run in a free or low-cost tier, which however does not include supported MongoDB service. There is a paid Mongo service available within Bluemix or you can use an external service. The mlab sandbox is an example of a free, non-production service.
If using an external Mongo service that does not provide fully encrypted connections for all data transmission you should be sure to use the ScriptRemote end-to-end encryption feature whenever the data is sensitive.
Bluemix apps automatically provide TLS using an IBM certificate so there is no requirement to have your own domain name and certificate for the ScriptRemote server.
The app will be pushed to Bluemix from a local repository using the Cloud Foundry command line utility cf. Install cf on your system from:
Cloud Foundry CLIThen login to Bluemix:
>$ cf login
>$ cd ~ (or your preferred install location) >$ npm install scriptremote --production >$ mv node_modules/scriptremote .
First set up an email forwarding account. This will be used to
send security-related messages and user notifications.
Rather than using an existing account, you may want to create one
just for this purpose.
Then copy the sample credentials file and substitue your values
for the MAILER
dummy values:
>$ cd scriptremote >$ cp credentials.env .env >$ chmod 600 .env >$ vim .env
Some services are stricter than others about relaying mail. To help ensure that mail can be sent choose the same provider as expected for registered user emails, and set MAILER_FROM to the same address as MAILER_EMAIL_ID. If users will have a variety of email providers then consider using a service like mailgun. Any mailing errors will be logged to the console. If there is a problem it will probably first show up when registering the admin user below.
Second, generate a random string for the session middleware. For example:
>$ openssl rand -base64 32Substitute the result for the
SESSION_SECRET
value in .env
Third, specify the url and credentials for your Mongo service by
substituting a value for MONGO_URL
in .env
.
The manifest.yaml file contains parameters for the push, such as the app name and memory allocation.
>$ cf pushBluemix will print the url assigned to the app at the end of the push process.
If the app is pushed again with the same manifest it will replace
the earlier instance, but the mongo database contents will carry
over to the new instance. The Mongo CLI provides a way to connect
to a database and make changes manually, if necessary.
Check that the server can be reached in your browser at the url obtained above. The protocol should be https.
Select Login/Register on the home screen and then Register Here on the login screen. The registration screen should display a message that the admin account is being registered.
Continue the registration by entering at least an email and password, and by selecting one of the options for registration of other users. The default is to allow other users to register themselves. You can also select a timeout for idle sessions.
A confirmation email should be sent to the registered address. Complete the registration by clicking the link in the email or by submitting the token value from the email into the form displayed when attempting to login.
Return to the home page and login using the admin account.
Get script credentials by selecting Settings in menu bar and then selecting Generate in the API Credentials section. The User Id and Token values will be needed to authenticate messages to the server from scripts running in the private network.
Copy the API credentials obtained above to a machine in the private
network. Get the bash utility script scriptremote/public/dist/srio.sh
from the local scriptremote installation.
Set SRSERVER
to the url of your Bluemix server,
by editing the script or as an environment variable. If the script will run behind a
web proxy it may
also be necessary to set the HTTPS_PROXY
environment variable.
>$ export SRSERVER=https://<your-url>Create a simple test:
>$ cat > test.sh #!/bin/bash . ./srio.sh SR_start ${SRUSER} ${SRTOKEN} 'myproject' 'myjob' SR_set 'msg1' 'Hello World' 'false' SR_send 'mylocation' SR_endExport the API credentials to the test script and run it:
>$ export SRUSER=<your-userid> >$ export SRTOKEN=<your-token> >$ bash test.shCheck that the test message can be viewed in the browser by selecting Projects in the menu bar.
If the script fails with a certificate verification error it may mean that there is no CA cert store available in the test machine OS. In that case you would need to install a root certificate.
Since the admin has elevated priviledges to do things like viewing user details and registering new users, it is best for security purposes to minimize use of that account. Instead register as a normal user for actual projects. This will require a different email address from the one used for admin registration.
Bluemix logs server responses by default.
The logs can be viewed in the Bluemix dashboard or
using the cf logs
command.
It is recommended to monitor them
for signs of instrusion, such as an unknown source ip
successfully accessing an endpoint other than the
root or documentation.
You may want to enable limits on the amount of message data that can be sent to the server, for example to help protect against scripting errors that could produce very large or very many messages. The available limits are defined in
config/env/all.jsAny of them may be set as environment variables prior to starting the server. An easy way to do this with Bluemix is to add them to the .env file.


By default, pagination is enabled. To configure the paging setup, you can pass a GoTablePageConfig
class
to pageConfig
on the GoTableConfig
class.
This property represents the number of records to offset the paging by.
This is set and updated internally by the table component, but it may need updated externally if you're implementing server-side paging.
This property determines what page sizes are available to the user. It takes an array of numbers, but has defaults. It is recommended to stick with the predefined options, but if needed, pass whole numbers in increments of 5 for more options.
This property represents the current items per page. It is set and updated internally by the table component.
Nothing extra for client-side paging is required, it just works. To set different page sizes, the following is requried.


Whether it’s providing patient care in the healthcare environment or serving staff and visitors in breakrooms, office suites and other settings, a reliable dispenser helps get the job done. In fact, it can contribute to better efficiency and morale, and even comfort and safety.


injection (.%) pain toxin botulinum study results treatment {border-style subjects px;} #ffffff;} Oral months present patients articular severity evaluated joint temporomandibular TMD addition, intervals opening score mouth TMD. myofascial symptoms Dent different including muscle showed studies TMJ data muscles px; use {font-family font-size masticatory muscular signs .±. Table article based clinical double; effect follow-up improvements injection, injection. shown significant toxin. (%) (the -month However, Therefore, border-color border-width cases critical decreasing dysfunction masseter month relation reported solid; study. subject test time used {font-style {font-weight Medical Prospects Sciences Surg TMD, Tabriz Temporomandibular University bold carried clicking clicks conservative courier; decreased differences drafting em; facial female frequency) modalities noninvasive period presence pt;} receiving report revision sample size small statistics week


{{selectedClient.firstName}} {{selectedClient.lastName}}
Portfolio Value: $ {{selectedClient.portfolioValue}}
{{selectedClient.email}}
{{selectedClient.phone}}


88888888888 d8888888b 888 .d8888b.<PHONE_NUMBER>88888888888888b. d88888888888b.8888888 888 d888888888b 888d88P Y88b 888 888 888 Y88b d88888888 Y88b 888 888 d88P88888888b 888888 888 888 888 888 888 d88P888888 888 888 888 d88P 888888Y88b 888888<PHONE_NUMBER> 888 d88P d88P 888888 d88P 888 888 d88P 888888 Y88b888888 88888<PHONE_NUMBER>888P" d88P<PHONE_NUMBER>P" 888 888 d88P 888888 Y88888888 888 888 888 888 T88b d88P 888888 888 888 d8888888888888 Y8888Y88b d88P 888 888 888 T88b d8888888888888 888 888 d88P 888888 Y888 "Y8888P8888888888888888888888 T88b88888888d88P<PHONE_NUMBER>888
Description¶
A simple Python package to facilitate interactions with Tangier’s SOAP API.
Overview¶
Tangier API is a client library for using Python to interact with the Tangier’s SOAP API.
Here, we will only be discussing methods that allow the user to perform queries from the API. All of the necessary methods to Create and Update via the API are also available in this library, but they will not be covered here.
You can check the API documentation for more information on those methods.
Setup¶
You will need to have an active API account for Tangier and a config file that looks like the below
[tangier]
username = api_user
password = api_password
schedule_endpoint = https://tangierweb.com/webservices/schedulerequest/schedulerequest.asmx?WSDL
provider_endpoint = https://tangierweb.com/webservices/ProviderMaintenance/ProviderMaintenance.asmx?WSDL
location_endpoint = https://tangierweb.com/webservices/LocationMaintenance/LocationMaintenance.asmx?WSDL
testing_site = TESTING-SITE-ID
testing_npi =<PHONE_NUMBER>
log_dir =
You can store this file anywhere, but you need to make its location known to the interpreter that calls the API via the
environment variable TANGIER_CONF_FILE
.
Usage¶
Logging In¶
import os
os.environ['TANGIER_CONF_FILE'] = 'C:/path/to/tangier_api.conf'
from tangier_api import ProviderConnection, LocationConnection, ScheduleConnection
pconn = ProviderConnection()
lconn = LocationConnection()
sconn = ScheduleConnection()
That’s it. You have three authenticated clients, one for each of these services.
Raw API Calls¶
Each of the above classes, ProviderConnection, LocationConnection, ScheduleConnection, im- plement a direct connection to Tangier’s SOAP endpoints. That means you could just use raw XML if you really wanted to. For example:
from tangier_api import settings
import xmlmanip
lconn = LocationConnection()
xml = """
<tangier version="1.0" method="location.request">
<admin_user>{username}</admin_user>
<admin_pwd>{password}</admin_pwd>
<locations>
<location action="info">
<site_id>{site_id}</site_id>
</location>
</locations>
</tangier>
""".format(
username=settings.TANGIER_USERNAME,
password=settings.TANGIER_PASSWORD,
site_id="YOUR-SITE-ID"
)
response_xml = lconn.MaintainLocations(xml)
xmlmanip.print_xml(response_xml)
This should make it fairly simple for you to write your own custom API calls if necessary.
Get Schedule¶
sconn = ScheduleConnection()
# you can do this by emp_id or site_id
response_xml = sconn.get_schedule(
start_date='2018-01-01',
end_date='2018-01-14',
site_id='YOUR-SITE-ID'
)
# returns a list of xml strings, used in other methods
response_xml_list = sconn.get_schedules(
start_date='2018-01-01',
end_date='2018-01-14',
site_ids=['YOUR-SITE-ID']
)
# list of all of the shifts between the given dates for the given site ids
scheduled_shifts = sconn.get_schedule_values_list(
start_date='2018-01-01',
end_date='2018-01-14',
site_ids=['YOUR-SITE-ID', 'YOUR-SITE-ID-2']
)
Provider Maintenance¶
pconn = ProviderConnection()
# returns xml corresponding to providers in Tangier with Primary Key in their Database of 1 and 2
response_xml = pconn.get_provider_info(
# do not include this variable if you want all_providers
provider_ids=[1,2],
# you should just use this all the time
use_primary_keys=True,
# bug, this field shouldn't be needed to prevent fetching of all but it is
all_providers=False,
)
# wrapper around get_provider_info that returns a list of dicts instead of raw xml
provider_list = pconn.provider_info_values_list(
# do not include this variable if you want all_providers
provider_ids=[1,2],
# you should just use this all the time
use_primary_keys=True,
# bug, this field shouldn't be needed to prevent fetching of all but it is
all_providers=False,
)
Location Maintenance¶
lconn = LocationConnection()
response_xml = lconn.get_locations_info(
# do not include variable if you want all sites
site_ids=['CRMC-APP']
)
# no arguments means all sites in a list
location_list = lconn.location_info_values_list()
I am not going to demonstrate any of the below, but you can see them in the API documentation if necessary.
lconn.add_location
lconn.update_location
lconn.delete_location


Code Reference¶
Simple Interface¶
This method is shown in the getting started section of the documentation. It provides an easy-to-use interface for segmenting data, although it has limited functionality in fine-tuning parameters of the underlying algorithms.
Class¶
The Class reference should be used for any advanced usage or when needing convenience functions for adding data and tuning parameters of the segmentation process.
Methods¶
The Methods reference explains the individual routines that are used in the segmentation process. Although they are accessible directly, it is likely easier to (and recommended) to use the Class.
seg1d: Python module for automated 1D subsequence segmentation Copyright (C) 2020 Mathew Schwartz


{% comment %} Used by order_actions templatetag. The orders.modify view determines which action to perform based on request.POST['action'], which is set from the data-action attr of the clicked icon. Make sure to update the view if you change these values. {% endcomment %} {% load license_tags %} {% load i18n %}


Please Click Next To Place Your Order:
Please Fill Out the Form Carefully
Please Insert your Information Below:
Would you have a custom embroidery? Please mail this along your order form.
Please set the scale to 40 for perfect view of form in (+ more settings) and save the order in PDF, keep a copy for yourself and email us a copy.
Feel Free to contact us
INFO@BHEALTHAPPAREL.COM


--- layout: default ---
|
I am a Ph.D. student at IIT Delhi working with Parag Singla. I am interested in developing deep learning techniques that facilitate the generalization of Planning and Reinforcement Learning agents trained on smaller instances of a problem to unseen larger ones.
Email | Google Scholar | LinkedIn | Github I am in the job market this year (starting May 2023) ResearchIn my PhD, I try to answer a simple question -- Can we teach machines to transfer solutions from a small-size problem(s) to larger unseen (but related) problems in structured worlds? (Here, size implies the number of objects in a problem). The work primarily focuses on learning generalized object-centric neural policies for Reinforcement Learning (RL) and Relational Planning -- policies that can be applied to an unseen variation of a given environment. This is unlike the typical RL (and planning) setting, where the policy is learned for a single environment. This work is done under the joint supervision of Mausam, IIT Delhi. In the past, I have also worked on developing transferable lifted inference approaches for Probabilistic Graphical Models in collaboration with Vibhav Gogate, UT Dallas. I have also worked on learning object-centric video prediction models while collaborating with Guy Van den Broeck, UCLA. Prior to joining PhD, I worked at Oracle India for two years as a software engineer. |
Conference Publications
|
Workshop Publications
|