Readme
Pysotope uses a hillclimbing algorithm to unmix spike and sample isotope composition, by calculating mass dependent instrument and natural isotope fractionation from a known standard. This yields sample isotope composition and concentration for the element of interest.
Installing
Get a working installation of python e.g. via the Anaconda python distribution (Used for testing on Windows 10, macOS Mojave, and Manjaro GNU/Linux).
Install the package by downloading/cloning this repository navigating to the cloned folder and running:
To clone (requires git, $
indicates to run as non priveleged user).
$ git clone https://github.com/tarting/pysotope
$ cd pysotope
$ python setup.py install --user
This will install the packages listed in the requirements.txt file as well as the pysotope library and command.
Check that pysotope is installed by importing the pysotope library in
python: Run $ python
in the commandline to launch the python
shell followed by: >>> import pysotope
(the >>>
indicates a python shell). If no errors are reported, pysotope is installed correctly. Type >>> exit()
to
exit the python shell.
To get a list of available commands run:
$ pysotope --help
Subcommands also yield help texts e.g.:
$ pysotope init --help
Using the command-line tools
These tools are specifically made for the instruments, naming-convention and workflow at the UCPH labs.
Pysotope requires a specific directory structure, and works best if
a separate folder is used per sample-set or project. The data_root
directory
must contain one appropriate .json
specification file and a folder
containing the data as .xls files or .raw folders from the IsoWorks
software.
| project_root/
| Cd_data_root/
| Cd_spec_file.json
| data_dir/
| run1 2189.xls
| run2 2190.xls
...
| Cr_data_root/
| Cr_spec_file.json
| data_dir/
| run1.raw/
| run1 2191.xls
| run2.raw/
| run2 2192.xls
...
Running pysotope is then a matter of opening a console, e.g. anaconda prompt on Windows, or a terminal on macOS and Linux.
Navigate to the data_root
directory using the cd
commmand and launch the
pysotope command in the following order.
$ pysotope init 'data_dir'
This command generates a list of datafiles saved as external_variables.xlsx. Now modify this file to include sample weight, spike weight, and spike concentration. The existing columns can be edited to exclude parts of the recorded data e.g. in case of missing signal, to exclude entire runs without signal etc. Any data in columns added to the right of the initial rows will be carried on to the final results file. Any modifications made to the list persist through reruns of the init command. In this way you can add more data file by simply dropping them into the data directory a re-running the pysotope init command.
$ pysotope invert 'external_variables.xlsx'
This command uses the list generated by the init command and the specification file to invert the double spike data, and produces a results.xlsx with summarized data for each run, and a results_cycles.csv containing each collected cycle for every run.
$ pysotope plot results.xlsx
This command creates summary diagrams for each bead, and collected summary for all runs. These are put as png files in a GFX folder. The summary diagrams display each run in separate colors, cycles excluded from mean calculation as red crosses, as well as 2 standard deviation and standard error fields, for both individual runs and summarized across a bead run.
Using as a python module
Import pysotope:
>>> import pysotope as pst
You still need to provide a specification file (described in previous section), to provide data external to the measurement.
>>> spec = pst.read_json('pysotope/spec/Cr-reduction-scheme-data_only.json')
Read the data such that each cycle represented as a list, numpy.array, or pd.Series of float values in a dictionary containing the key ‘CYCLES’. Given an excel-sheet, csv or pandas dataframe of the format:
| Index | m49 | m50 | m51 | m52 | m53 | m54 | m56 |
|---|---|---|---|---|---|---|---|
| 0 | 0.0 | 0.2 | 0.0 | 0.5 | 0.3 | 0.2 | 0.0 |
| 1 | 0.0 | 0.3 | 0.0 | 0.6 | 0.4 | 0.3 | 0.0 |
| 2 | 0.0 | 0.2 | 0.0 | 0.5 | 0.3 | 0.2 | 0.0 |
| … | … | … | … | … | … | … | … |
| 120 | 0.0 | 0.2 | 0.0 | 0.5 | 0.3 | 0.2 | 0.0 |
Where the index of the data columns is specified in the spec-file, in
this case with pd.read_[filetype](<file>, index_col=0)
index of m49
is 0 and m56 is 6. There can be any number of columns in the datafile as
long as it is indexed correctly.
>>> import pandas as pd
# sample-ID note Date-ISO no-serial number
>>> df = pd.read(
'datadir/subdir/SPLID-015 500mV 2019-09-01 01-9999.xls',
index_col=0
)
Invert the data:
>>> reduced_cycles = pst.invert_data(df.values, spec)
Where reduced_cycles
is an OrderedDict with string index and
numpy.ndarray[float] values.
And summarise:
>>> summary_statistics = pst.summarise_data(reduced_cycles, spec)
Which is an OrderedDict with string index and float values. These can e.g. be joined into a pandas dataframe, or be written to a csv file.


Smart Playlists
The "smart playlist" feature of iTunes allows you to construct playlists, based on search results for the tags added from QuickTag:
Refer to the iTunes documentation for more detailed information on smart playlists.
The "smart playlist" feature of iTunes allows you to construct playlists, based on search results for the tags added from QuickTag:
Refer to the iTunes documentation for more detailed information on smart playlists.


Guns, warring gangs, lavish parties, blue crucifixes, a black transvestite, an MTV soundtrack and, oh yes, a love story. What is this, a Godard film? A remake of "West Side Story"? No, it's "William Shakespeare's Romeo and Juliet." What? Yes, it's a modern-day variation of the Bard amidst Verona Beach, actually Mexico City.
Leonardo DiCaprio is the brooding Romeo. Claire Danes is the weeping Juliet. Harold Perrineau, Jr. is Mercutio. The over-the-top Paul Sorvino is Juliet's father of the Capulet family. Romeo is from the Montague family, and he desperately falls in love with Juliet when he sees her through a fish tank. They play around in pools and in big beds, but there's not much in the way of romance. Silly? Most definitely.
"Romeo and Juliet" wants to be an MTV version of the oft-told Bard tale albeit with dazzling visuals and milisecond cuts - it's "Natural Born Killers" crossed with "West Side Story." The problem is that all the poetry of the Bard's text is lost in the translation to a modern-day setting. The soundtrack pumps out more songs per minute than I could stand and practically drowns out all the dialogue. DiCaprio emotes but doesn't exactly do more than that. Claire Danes giggles for an eternity - she's like a loving puppy with big startling eyes, but is miles away from her strong work in "Little Women." Everyone else overacts to the hilt, including the annoying Paul Sorvino, the high-pitched Miriam Margoyles as the Latina housekeeper, and the endless stares supplied by Diane Venora ("Heat"). The best performance, in terms of appropriate tone and inflection, is Pete Postlethwaite (In the Name of the Father) as Friar Lawrence.
The biggest mistake was in making "Romeo and Juliet" an MTV cartoon with the original, antiquated text making the whole film as incongruous and anachronistic as you might expect. Stick with the Franco Zeffirelli version instead.
For more reviews, check out JERRY AT THE MOVIES at http://buffs.moviething.com/buffs/faust/
E-mail me with any questions, concerns or general complaints at<EMAIL_ADDRESS>or at<EMAIL_ADDRESS>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


BLUE STREAK (M). (Columbia Tristar) Director: Les Mayfield Stars: Martin Lawrence, Luke Wilson, William Forsythe, Peter Greene, Nicole Ari Parker Running time: 93 minutes.
Martin Lawrence (Bad Boys, etc) has always been something of a second rate Eddie Murphy wannabe, lacking charm, charisma and the same assured style. His latest film, the tailor-made action comedy Blue Streak, is his second rate Beverly Hills Cop try hard.
Lawrence plays Miles Logan, a thief, who hides a valuable diamond in a building site after a carefully planned robbery goes wrong when one of his team gets greedy. After two years in prison, Logan returns to the construction site hoping to recover the diamond. Unfortunately the building is now the home of a new LAPD precinct. As Logan discovers to his dismay, there are only two types of people who enter beyond its high tech security - those wearing handcuffs or those carrying them.
In a desperate attempt to get inside the building and recover the diamond Logan poses as a detective. But due to a misunderstanding he is accepted as the new lead detective for the department, and becomes a reluctant cop. His maverick attitude and street smarts, shaped by years of criminal experience, make him a good cop, and he quickly impresses his superiors and his dim-witted, rookie partner (Luke Wilson).
Blue Streak becomes merely another formulaic odd couple, buddy cop pairing, which relies heavily upon Lawrence's irreverent talents to carry its uninspired scenario along. However, director Les Mayfield (Encino Man, the recent Flubber, etc) has little control over the antics of his narcissistic star, and seems to have little idea of the demands of this overworked genre. Lawrence's unfunny mugging and raucous routines are overbearing, dull, and at times a little excessive, particularly in the scene in which he does a two minute rap dance.
The film moves between slapstick comedy and fast paced action, with lots of chases and shoot-outs, little of which is entirely believable or particularly original. Blue Streak is something of an uneven mess, a result of the unsatisfactory fusion of the three distinct styles of its different writers. The basic premise itself is full of holes, and not even Lawrence's irritating presence can distract from its ludicrous nature.
The ending itself makes little sense, dramatically or logically. Many in the audience may have a problem with the film's message that crime does sometimes pay. While this device may sometimes work (especially when the criminal is played by a likeable and charismatic actor), here it merely grates because of Lawrence's overbearing and basically unlikeable persona and our lack of empathy for him.
Nonetheless, there are plenty of fans out there who will undoubtedly lap up this substandard effort!
** greg king http://www.netau.com.au/gregking
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


Chicago is getting the world’s largest Starbucks
by Joel Franco(WSVN) - Starbucks is preparing to open its largest store yet in Chicago on Friday.
Dubbed Starbucks Reserve Roastery, the 35,000-square-foot coffee shop will feature a unique menu, boutique Milanese Princi bakery and Arriviamo Bar that serves coffee cocktails.
Starbucks says it’ll be an immersive coffee experience spread throughout five floors.
The first floor has a traditional bar that serves classic espresso beverages like cappuccinos, lattes and cortados.
Over on the third floor, things start getting more complex.
The Experiential Coffee Bar gives customers an immersive dive into the “art, science and theatre” of coffee.
The fourth floor has the Barrel-Aged Coffee Bar.
It serves coffee beverages whose beans have been aged in barrels.
This is where customers get try out cocktail-inspired coffees.
There’s also sweet treats at the massive store.
The first on-demand liquid nitrogen gelato at a Starbucks location in the US will also be served.
Merchandise and artwork from local artists are going to be scattered throughout the building.
“The design of the Chicago Roastery was inspired by the iconic Chicago landmark, and the city itself,” said Jill Enomoto, vice president of Roastery Design & Concept at Starbucks.
Although it’s the biggest in the world, this isn’t the chain’s first Roastery.
Other locations are in Seattle, Shanghai, Mila, New York and Tokyo.
The Chicago location employs almost 200 people, including roasters, baristas, commessas, bakers and mixologists, the company said.
For more information, click here.


{% extends "_base.html" %} {% block content %}
There is no track with ID {{ track_id }} in the AcoustID database.


I just started with the installation of the software on my ubuntu 12.04 LTS machine to get the energymonitor connected to my HD ready TV with HDMI. I have a couple of sites running on the machine so i would like to have the current setup to monitor my network but I keep failing with installing a new username and gives a red curved box without any message whats wrong. I can access the error logs as well as my access logs on my machine, already put the DEBUG option in Apache but still doesn't work properly.
My system runs Ubuntu 12.04 but its an Zentyal install essentialy, with an system to rewrite www.domain.nl to /var/www/nl/domain.nl/www and i think the problem lies somewhere in this setup so I tryed adding an extra alias option in sites-enabled/000-default like this but did not work also but the page is showing the login page :
ServerName www.greenone.nl
<VirtualHost *:80>
ServerAdmin webmaster@localhost
VirtualDocumentRoot /var/www/%3/%2+/%1/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options -indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel debug
CustomLog /var/log/apache2/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from <IP_ADDRESS>/<IP_ADDRESS> ::1/128
</Directory>
Alias /emoncms/ "/var/www/nl/greenone.nl/emoncms/"
<Directory "/var/www/nl/greenone.nl/emoncms/">
Options Indexes MultiViews FollowSymLinks
AllowOverride all
Order deny,allow
Deny from all
Allow from 192.168.
</Directory>
</VirtualHost>
This will be translated to a subdomain like http://emoncms.greenone.nl on the Ubuntu 12.04 LTS server.
This is an small setup for an shared hosting solution so i think it should work with the software, as my websites are correctly served to the visitors. (like http://www.greenone.nl) but http://emoncms.greenone.nl will not login or register new users with no error message only a red box at the login screen.
I tryed downloading the software as well as a regular git clone from the repository but still can't login, I just have ordered my EmonTX v3 so there is no data at the moment, but i would like to add some interfaces already to have a look around in the software.
The user isn't created from within the setup after following the steps at http://emoncms.org/site/docs/installlinux .
I tryed the install procedure Emoncms v7 (redis) where the redis server and packages where installed like a charm, but it still would not work properly, the timestore is running correctly. I did try some variables with changing $path = "/"; in the index.php but that did not help either.
Also tryed some tricks with showing the path in php and this gives my the full path to the files and looks correctly:
<?php
echo getcwd();
?>
Is it possible to create a username and password with an query within PHPmyAdmin or just a plain importable SQL file so i can login and create the admin user ?
Kind regards,
Greenone.
Re: EmonCMS Installing on Ubuntu 12.04 LTS with automatic subdomains
Hello Greenone, it looks like a modrewrite error to me as that login page makes a login request via AJAX to:
http://emoncms.greenone.nl/user/login.json but that returns a server error in your case.
I see you have AllowOverride all which should do it, but there must be something else that's stopping it.
Usually the top entry:
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
would be All too but im not sure in your case.
Re: EmonCMS Installing on Ubuntu 12.04 LTS with automatic subdomains
Hmm did try that in the config but did not help, will be trying to see if I can get the rewrite logging active maybe somethings wrong there but my wordpress sites are running correctly and also having an rewrite enabled with a .htaccess file. I think this would be usefull for the community to get solved so running an Ubuntu as "BaseStation" is also possible.
Re: EmonCMS Installing on Ubuntu 12.04 LTS with automatic subdomains
I changed a couple of settings in the original .htaccess file as following:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>
I did have another wordpress which also uses mod_rewrite and I tryed it, and this seems to solve my problem. Cheers! Now lets wait on the EmonTX v3 :-)
Re: EmonCMS Installing on Ubuntu 12.04 LTS with automatic subdomains
In my case i did not have to have the first entry in apache2/sites-enabled/000-default set to all and it still works btw
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
I also changed settings in the index.php file to correspond with my domainname, I tryed this after I saw some errors in the source code after opening the site which pointed to a local location like /var/www/ and instead should be the domainname :
$path = "http://emoncms.greenone.nl/";
Thanks for the support and have a great time!
Re: EmonCMS Installing on Ubuntu 12.04 LTS with automatic subdomains
I got myself an Jeelink v3 for the communication with EmonCMS , running the simple python script with some little adjustments. Will attach the python file i used for this which I found after some troubles with the original EmoncmsPythonLink . I used EmonCMS v7 at the first install point but im using the git version now which seems to work better on some points, and is easy to upgrade with the "git pull" command.
Re: EmonCMS Installing on Ubuntu 12.04 LTS with automatic subdomains
Rather than running under the default config, you could install emoncms separately (i.e. to /usr/share/emoncms/ ) and use a standalone apache config file:
Stick this file in sites-enabled, edit it as you please and apache should serve emoncms from an arbitrary directory for you.
Re: EmonCMS Installing on Ubuntu 12.04 LTS with automatic subdomains
I did convert the config file to an separate file in sites-available and did an a2enmod emoncms to get the symlinks correctly setup. Did work for me in my current apache setup. Thanks! Have fun packaging the emoncms debs, that makes it alot simpler for the basic users.


Beta This is a test version of the layout of this page. Take the survey to help us improve it
Guidance
Information on baseline designs for schools.
In this section you will find information on baseline designs for schools. These demonstrate good practice that can be achieved within the set cost and area allowances. The details of the baseline designs are set out, together with associated drawings and technical analyses.
This information is for contractors, members of school building project teams, local authorities and promoters of schools. It will also be of interest to the leaders and governing bodies of schools.


Wireless Email FAQ [ Help Index ]
How do I access @Mail using my Wireless device?
You can access your Wireless Interface using http://yourserver.com/xhtml.php for WAP-2 compatible mobile devices and XHTML compatible browsers and devices.
Login page does not work on my device or browser
Check that you have an xhtml compatible device
I cannot log into my account
You may need to review your Username / domain and Mail-Server fields


CORICIDIN HBP DAY AND NIGHT- dextromethorphan hydrobromide, guaifenesin, acetaminophen, chlorpheniramine maleate
MSD Consumer Care, Inc.
Disclaimer: Most OTC drugs are not reviewed and approved by FDA, however they may be marketed if they comply with applicable regulations and policies. FDA has not evaluated whether this product complies.
Coricidin HBP Day
Drug Facts
| Active ingredients (in each softgel) |
Purpose |
| Dextromethorphan hydrobromide 10 mg |
Cough Suppressant |
| Guaifenesin 200 mg |
Expectorant |
Uses
- temporarily relieves cough due to minor throat and bronchial irritation as may occur with a cold
- helps loosen phlegm (mucus) and thin bronchial secretions to make coughs more productive
Warnings
Do not use if you are now taking a prescription monoamine oxidase inhibitor (MAOI) (certain drugs for depression, psychiatric or emotional conditions, or Parkinson's disease), or for 2 weeks after stopping the MAOI drug. If you do not know if your prescription drug contains an MAOI, ask a doctor or pharmacist before taking this product.
Ask a doctor before use if you have
- cough that occurs with excessive phlegm (mucus)
- persistent or chronic cough as occurs with smoking, asthma, chronic bronchitis, or emphysema
Stop use and ask a doctor if cough lasts more than 7 days, reoccurs, or occurs with fever, rash or persistent headache. These could be signs of a serious condition.
If pregnant or breast-feeding, ask a health professional before use.
Keep out of reach of children. In case of overdose, get medical help or contact a Poison Control Center right away. Abuse of this product can lead to serious injury.
Directions
- do not exceed recommended dose
- do not take the Day and Night products at the same time; wait 4 hours after the last Night dose before starting Day product
- adults and children 12 years and over: 1 or 2 softgels every 4 hours, not more than 6 softgels in 12 hours
- children under 12 years of age: ask a doctor
Other Information
- store between 20° to 25°C (68° to 77°F)
- protect from freezing
- protect from excessive moisture
Inactive Ingredients
FD&C blue no. 1, FD&C red no. 40, gelatin, glycerin, pharmaceutical ink, polyethylene glycol 400, povidone, propylene glycol, sorbitol
Coricidin HBP Night
Drug Facts
| Active ingredients (in each tablet) |
Purpose |
| Acetaminophen 500 mg |
Pain reliever/fever reducer |
| Chlorpheniramine maleate 2 mg |
Antihistamine |
| Dextromethorphan hydrobromide 15 mg |
Cough Suppressant |
Uses
- temporarily relieves
- minor aches and pains
- headache
- cough
- runny nose
- sneezing
- temporarily reduces fever
Warnings
Liver Warning
This product contains acetaminophen.
Sever liver damage may occur if you take
- more than 4 tablets in 12 hours
- with other drugs containing acetaminophen
- 3 or more alcoholic drinks every day while using this product
Do not use
- with any other drug containing acetaminophen (prescription or non prescription). If you are not sure whether a drug contains acetaminophen, ask a doctor or pharmacist.
- if you are now taking a prescription monoamine oxidase inhibitor (MAOI) (certain drugs for depression, psychiatric or emotional conditions, or Parkinson's disease), or for 2 weeks after stopping the MAOI drug. If you do not know if your prescription drug contains a MAOI, ask a doctor or pharmacist before taking this product.
Ask a doctor before use if you have
- liver disease
- glaucoma
- trouble urinating due to an enlarged prostate gland
- cough that occurs with excessive phlegm (mucus)
- a breathing problem or persistent or chronic cough as occurs with smoking, asthma, chronic bronchitis, or emphysema
Ask a doctor or pharmacist before use if you are
- taking the blood thinning drug warfarin
- taking sedatives or tranquilizers
When using this product
- excitability may occur, especially in children
- marked drowsiness may occur
- avoid alcoholic beverages
- alcohol, sedatives and tranquilizers may increase drowsiness
- use caution when driving a motor vehicle or operating machinery
Stop use and ask a doctor if
- pain or cough gets worse or lasts more than 7 days
- fever gets worse or lasts more than 3 days
- redness or swelling is present
- new symptoms occur
- cough comes back or occurs with a rash or headache that lasts. These could be signs of a serious condition.
If pregnant or breast-feeding, ask a health professional before use.
Keep out of reach of children. Abuse of this product can lead to serious injury.
Overdose Warning
Taking more than the recommended dose may cause liver damage. In case of overdose, get medical help or contact a Poison Control Center right away. Quick medical attention is critical for adults as well as children even if you do not notice any signs or symptoms.
Directions
- do not use more than directed (see overdose warning)
- do not take the Day and Night products at the same time; wait 4 hours after the last Day dose before starting Night product
- adults and children 12 years and over: 2 tablets at bedtime and every 6 hours if needed, while symptoms persist, not more than 4 tablets in a 12 hour period
- children under 12 years of age: ask a doctor
Other Information
- store between 20° to 25°C (68° to 77°F)
- protect from excessive moisture
- this product meets the requirements of USP Dissolution Test 2
Inactive Ingredients
carnauba wax, FD&C red No. 40 aluminum lake, hypromellose, lactose, magnesium stearate, microcrystalline cellulose, polyethylene glycol, povidone, pregelatinized starch, stearic acid, titanium dioxide
Questions or comments?
Call 1-800-317-2165 between 8:00 AM and 5:00 PM Central Standard Time, Monday through Friday
Distributed by
MSD Consumer Care, Inc.,
PO Box 377, Memphis, TN 38151 USA,
a subsidiary of Merck & Co., Inc.,
Whitehouse Station, NJ USA.
PRINCIPAL DISPLAY PANEL - Kit Carton
NDC 11523-4765-1
DUAL FORMULA PACK
Coricidin®
HBP
Decongestant-free COLD RELIEF for people
with HIGH BLOOD PRESSURE
DAY
MULTI-SYMPTOM COLD
Guaifenesin - Expectorant
Dextromethorphan HBr - Cough Suppressant
Day Relieves:
• Chest Congestion
• Cough
16 DAY SOFTGELS
NIGHT
Chlorpheniramine Maleate - Antihistamine,
Dextromethorphan HBr - Cough Suppressant,
Acetaminophen - Pain Reliever/Fever Reducer
See New Warnings Information
Night Relieves:
• Runny Nose & Sneezing
• Cough • Body Aches • Fever
8 NIGHT TABLETS
MSD Consumer Care, Inc.


☰
home
HOME
hourglass_empty
PRACTICE
notifications_none
MOCK TEST
edit
QUIZ MANIA
textsms
DISCUSS
event
DAILY DOSE
settings
PROFILE
monetization_on
MANAGE COINS
Each round is 10 questions. you can host as many rounds you want
☰
Host Game
Join Game
Leaderboard
History


{%- comment -%} We retrieve the quotes of the author, order them per book, then show them by calling quotes.html {%- endcomment -%} {%- assign page_path = page.path | replace: '/index.html','' -%} {%- assign trunc = page_path | size -%} {%- assign books = "" | split: "|" -%} {%- assign order = "" | split: "|" -%} {%- assign last_id = "" -%} {%- assign index = 0 -%} {% capture content %} {%- for book in site[include.collection] -%}{%- unless book.index -%} {%- assign start = book.path | slice: 0,trunc -%} {%- if start == page_path -%} {%- assign id = book.path | slice: trunc,999 | split: '/' | shift | first -%} {%- if id != last_id -%} {%- assign order = order | sort -%} {% include quotes.html %} {%- assign books = "" | split: "|" -%} {%- assign order = "" | split: "|" -%} {%- assign last_id = id %} {% endif %} {%- assign idx = books | size -%} {%- assign books = books | push: book -%} {%- assign slug = book.slug | to_integer -%} {%- assign position = "" | split: "|" | push: slug | push: idx -%} {%- assign order = order | push: position -%} {%- elsif books != empty -%} {%- break -%} {%- endif -%} {%- endunless -%}{%- endfor -%} {%- assign order = order | sort -%} {% include quotes.html %} {% endcapture %}


Dashboard
User Profile
Online Evaluation System
Analytics
Result
Notifications
Settings
Some Actions
Account


Alexa-rails¶ ↑
alexa-rails
is a ruby gem which is a mountable rails engine
that will add abilities to your Ruby on Rails application to handle Amazon
alexa requests and responses.
Intallation/Usage¶ ↑
Do the usual by adding the following to your Gemfile
:
gem 'alexa-rails'
Migrations¶ ↑
The gem provides migrations that are needed to use few features of the gem. For example: Saving or reading the user's skill usage count. To generate the migrations, run the following
$ rails generate alexa:migrations $ rake db:migrate
Configuration¶ ↑
Set alexa skill IDs in environment config (ex: config/environments/development.rb).
# config/environments/development.rb # For request validation config.x.alexa.skill_ids = [ "amzn1.ask.skill.xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx" ] config.x.alexa.default_card_title = "Alexa rails"
Mount the engine for routes handling in your routes
# config/routes.rb Rails.application.routes.draw do ... mount Alexa::Engine, at: "/alexa" end
This will make you Rails app accept POST
requests from Alexa at
https://
This has to be provided
as the HTTPS endpoint URL for the skill.
Request handling¶ ↑
To handle an intent, you will have to create an intent handler class. For
example, if your intent is named PlaceOrder
, you will have to
create the following file under you
app/lib/alexa/intent_handlers
directory.
module Alexa module IntentHandlers class PlaceOrder < Alexa::IntentHandlers::Base def handle ... response # intent handlers should always return the +response+ object end end end end
All intent handlers should contain a #handle
method that has
required logic as to how to handle the intent request. For example, adding
session variables, setting response to elicit slots, delegate etc.
Note: #handle
method should always return the
response
object. response
object in available in
the scope of #handle
.
See [Handling Amazon's Built-in Intents / Other request types] section to see how to handle Amazon's built-in intent and other requests types.
Adding session variable:¶ ↑
session.merge!(my_var: value) # Accesssing session variable session[:my_var]
Slot elicitations¶ ↑
Depending on your conditions, you can set the reponse to elicit a specific slot and the respecitve views are used.
response.elicit_slot!(:SlotName)
Delegate response¶ ↑
#handle
is expected to return an instance of
Alexa::Response
or its subclasses. In normal cases, the
response
object is returned. In cases where the slots
elicitation is delegated to alexa, an instance of
Alexa::Responses::Delegate
has to be returned.
def handle ... return Alexa::Responses::Delegate.new end
Views¶ ↑
The content for SSML and display cards is not set in the intent handler
classes. We follow rails convention and expect all response content for
intents to be in their respective default
view files.
Also, the views are context locale dependant.
Given an intent named PlaceOrder
, you view files would be
-
SSML:
views/alexa/en_us/intent_handlers/place_order/default.ssml.erb
-
Card:
views/alexa/en_us/intent_handlers/place_order/default.text.erb
In case of slot elicitations, follow a similar convention but make sure you
name the ssml
and text
files with the same name
as the slot that is being elicited. For example, in the
PlaceOrder
intent, the elicatation for Address
slot would have the following views
-
SSML:
views/alexa/en_us/intent_handlers/place_order/elicitations/address.ssml.erb
-
Card:
views/alexa/en_us/intent_handlers/place_order/elicitations/address.text.erb
Render custom template instead of default¶ ↑
If you wish to force the response
object to take contents from
a different template file instead of default.*.erb
, pass the
custom filename with Alexa::Response#with(template: )
.
For example: Instead of default
, if you wish to render the
contents of no_results.ssml.erb
and
no_results.text.erb
, return the response by forcing the
template with the following:
def handle ... return response.with(template: :no_results) end
and make sure you add your contents in the no_results.*.erb
files in your intent handlers' views' directory.
SSML¶ ↑
Re-prompts¶ ↑
By default, there is no re-prompt SSML is added to the response. However,
re-prompt SSML can be set in the ssml view of the intent response or a slot
elicitation view with a content_for :repromt_ssml
like this:
What is your address? <% content_for :repromt_ssml do %> Where would you like the pizza to be delivered? <% end %>
Cards¶ ↑
Type & Title¶ ↑
By default, the card type is set to Simple
. To change the card
type and title, use the content_for
blocks in the
text
view file for the response as follows:
<% content_for :card_type do %> Simple <% end %> <% content_for :card_title do %> Get your pizza <% end %>
Permission cards¶ ↑
To render a permission card. Use ask_for_permissions_consent
as the card_type
and provide the scope in
permissions_scope
content_for block. Following is an example
for Device address permission card.
<% content_for :card_type do %> ask_for_permissions_consent <% end %> <% content_for :permissions_scope do %> read::alexa:device:all:address <% end %>
Note: The permission card should not have any other content other
than the content for card_type
and
permissions_scope
.
Handling Amazon's Built-in Intents / Other request types¶ ↑
Requests for Amazon's built-in intents and other request types are also handled with intent handlers. Below is the mapping for every request type and respective intent handler classes. These intent handlers are not included in the gem as they are a but specific to the application. Refer to the table below and implement the intent handlers.
Built-in Intents:
| Intent name | Handler class | | ————- | ————- | | AMAZON.CancelIntent |
Alexa::IntentHandlers::GoodBye
| | AMAZON.StopIntent |
Alexa::IntentHandlers::GoodBye
| | AMAZON.HelpIntent |
Alexa::IntentHandlers::Help
|
Other request types:
| Request type | Handler class | | ————- | ————- | | Launch request |
Alexa::IntentHandlers::LaunchApp
| | Session end request |
Alexa::IntentHandlers::SessionEnd
|
Installation¶ ↑
Add this line to your application's Gemfile:
gem 'alexa'
And then execute: bash $ bundle
Or install it yourself as: bash $ gem install alexa
Contributing¶ ↑
Contribution directions go here.
License¶ ↑
The gem is available as open source under the terms of the MIT License.


--- layout: post title: no title date: '2014-09-10T07:30:32+02:00' categories: - Atoleiros Battle - Storyboards - Horses picture_url: https://film-Storyboards.tumblr.com/post/97134209840 ---


Group Members
We are looking for new PhD students, Postdocs, and Master students to join the team (see openings) !
Jump to PI, Graduate Students, Undergraduate Students, alumni, lab visitors.
PI
Dennis Lavrov
Associate Professor, started Jan 2004
email<EMAIL_ADDRESS>- Diploma in Biology/Zoology, St. Petersburg State University, Russia
- PhD University of Michigan, USA
- Postdoc Universite de Montreal, Canada
Graduate Students
Viraj Muthye
PhD Student, started Sep 2012
email<EMAIL_ADDRESS>- Bachelor in Biotechnology from Mumbai University
- Master in Biotechnology from Northwestern University with Dr. Cianciotto
Axelle Weeger
PhD Student, started May 2019
email<EMAIL_ADDRESS>- Bachelor in Animal Biology, University of California at Davis
- Master in Genetics and Genomics, Iowa State University
Merritt Polomsky
PhD Student, started May 2019
email<EMAIL_ADDRESS>- Bachelor in Genetics, Iowa State University
Undergraduate Students


An HTTP client. A client maintains a pool of connections to a specific
host, at a specific port. The HTTP connections can act as pipelines for
HTTP requests. It is used as a factory for HttpClientRequest instances
which encapsulate the actual HTTP requests. It is also used as a factory
for HTML5 WebSocket websockets.
|
|
|
|
|
|
|
|
get_max_pool_size(self)
The maxium number of connections this client will pool. |
source code
|
|
|
|
|
|
|
get_keep_alive(self)
Return if the client use keep alive. |
source code
|
|
|
|
set_keep_alive(self,
val)
If val is true then, after the request has ended the connection will
be returned to the pool where it can be used by another request. |
source code
|
|
|
|
get_port(self)
Return the port the client will attempt to . |
source code
|
|
|
|
set_port(self,
val)
Set the port that the client will attempt to connect to on the server
on. |
source code
|
|
|
|
|
|
|
set_host(self,
val)
Set the host name or ip address that the client will attempt to
connect to on the server on. |
source code
|
|
|
|
|
|
|
set_verify_host(self,
val)
If set then the client will try to validate the remote server's certificate
hostname against the requested host. |
source code
|
|
|
|
|
|
|
get_now(self,
uri,
handler,
**headers)
This is a quick version of the get method where you do not want to do
anything with the request before sing. |
source code
|
|
|
|
options(self,
uri,
handler)
This method returns an HttpClientRequest instance which represents an
HTTP OPTIONS request with the specified uri. |
source code
|
|
|
|
get(self,
uri,
handler)
This method returns an HttpClientRequest instance which represents an
HTTP GET request with the specified uri. |
source code
|
|
|
|
head(self,
uri,
handler)
This method returns an HttpClientRequest instance which represents an
HTTP HEAD request with the specified uri. |
source code
|
|
|
|
post(self,
uri,
handler)
This method returns an HttpClientRequest instance which represents an
HTTP POST request with the specified uri. |
source code
|
|
|
|
put(self,
uri,
handler)
This method returns an HttpClientRequest instance which represents an
HTTP PUT request with the specified uri. |
source code
|
|
|
|
delete(self,
uri,
handler)
This method returns an HttpClientRequest instance which represents an
HTTP DELETE request with the specified uri. |
source code
|
|
|
|
trace(self,
uri,
handler)
This method returns an HttpClientRequest instance which represents an
HTTP TRACE request with the specified uri. |
source code
|
|
|
|
connect(self,
uri,
handler)
This method returns an HttpClientRequest instance which represents an
HTTP CONNECT request with the specified uri. |
source code
|
|
|
|
patch(self,
uri,
handler)
This method returns an HttpClientRequest instance which represents an
HTTP PATCH request with the specified uri. |
source code
|
|
|
|
request(self,
method,
uri,
handler)
This method returns an HttpClientRequest instance which represents an
HTTP request with the specified method and uri. |
source code
|
|
|
|
|
|
Inherited from ssl_support.ClientSSLSupport :
get_trust_all ,
set_trust_all
Inherited from ssl_support.SSLSupport :
get_key_store_password ,
get_key_store_path ,
get_ssl ,
get_trust_store_password ,
get_trust_store_path ,
set_key_store_password ,
set_key_store_path ,
set_ssl ,
set_trust_store_password ,
set_trust_store_path
Inherited from tcp_support.TCPSupport :
get_receive_buffer_size ,
get_reuse_address ,
get_send_buffer_size ,
get_so_linger ,
get_tcp_keep_alive ,
get_tcp_no_delay ,
get_traffic_class ,
get_use_pooled_buffers ,
set_receive_buffer_size ,
set_reuse_address ,
set_send_buffer_size ,
set_so_linger ,
set_tcp_keep_alive ,
set_tcp_no_delay ,
set_traffic_class ,
set_use_pooled_buffers
|


By day, Anna Bates is a third-year Economics undergraduate at Newnham College, Cambridge. By night (and indeed in any other moment of spare time she has), Anna is a baker extraordinaire. Inspired almost a decade ago by popular US baking show Cake Boss, Anna began making birthday cakes for friends and family. Fast forward to 2019 and Bates' Bakes are in popular demand. In 2018, she was approached to design and bake the cake for the prestigious Trinity May Ball. The fabulous outcome is pictured here. This year, she has been asked back, and is hoping to challenge her artistry even further with her 2019 design.
Anna's passion for baking intersects directly with her interest in events organisation and management. In 2018, Anna curated a three-tier cake for her own Twenty-First birthday party. This took place in Newnham college and did not disappoint. Not only was the cake delicious, but the event was immaculately arranged, with balloons, fairy lights and a mini-pop up bar. After the success of her own party, Anna is now offering her services as a boutique events manager, cake included!
Anna understands the importance of maintaining authenticity in all that she does. For this reason, as well as offering standard designs and packages, Anna also accepts custom requests. Anna works closely with all of her clients to ensure that visions and ideas for cake are successfully transformed into edible reality. Whatever the celebration, Bates' Bakes will have you covered!


While there exist several c++ unit test frameworks, at times it is best to develop a quick method to unit test a class in c++. This method saves the time required to setup and learn a new framework. It is quick and dirty and should not be implemented on larger projects.
The code below is an example of a c++ class that needs to be tested.
To test the unit functionality a console application is created, shown below. This application creates an object of class FooAdderUnitTest, which is constructed to hold all of the tests for the class FooAdder. Once created the Run method is invoked and returns a string holding all of the test results, which are sent to the console.
The FooAdderUnitTest (shown below) holds all of the individual tests and inherits UnitTest. The class has a single public method Run(), which invokes a series of three private methods, which hold each unit test. All of the unit test functions have the same template, following the typical "arrange, act, assert" methodology of unit testing.
The first test, CanCreateFooAdder(), invokes for the TestInitialize() method, which sets up the test by initializing fooAdder. Because it is the constructor that is being tested, the Arrange and Act are one in the same. Next an Assert() method is invoked, which is part of the base class UnitTest. Finally the test is disposed.
The UnitTest base class holds the results and processes the Assert() methods. The code is not very elegant, but is quick to code, and gets the job done.
Running the console application produces the following results. The results contain the name of the class tested, a list of tests, PASS or FAIL for each test, and a set of totals at the end.
Unit Tests for FooAdder 1. CanCreateFooAdder PASS 2. FooAdderHasZeroResultOnCreate PASS 3. FooAdderCanAdd PASS Totals for FooAdder Tests Failed: 0 Tests Passed: 3 Total Tests: 3
Please leave some thoughts below and thanks for the read.


--- toc: False title: Fasterai keywords: fastai sidebar: home_sidebar nb_path: "nbs/index.ipynb" ---
fasterai
is a library created to make neural network smaller and faster. It essentially relies on common compression techniques for networks such as pruning, knowledge distillation, ...
Visit Read The Docs Project Page or read following README to know more about using Fasterai
Make your model sparse (i.e. prune it) according to a:
Distill the knowledge acquired by a big model into a smaller one.
Find the winning ticket in you network, i.e. the initial subnetwork able to attain at least similar performances than the network as a whole.
learn = cnn_learner(dls, model)
sp_cb=SparsifyCallback(end_sparsity, granularity, method, criteria, sched_func)
learn.fit_one_cycle(n_epochs, cbs=sp_cb)
More about other methods in the tutorials section
pip install git+https://github.com/nathanhubens/fasterai.git
or
pip install fasterai


Las Vegas “SYTYCD” alum dreams of touring with Chris Brown
by Christopher LawrenceAnna Linstruth gets emotional every night on the “So You Think You Can Dance” tour.
The 20-year-old Las Vegan is still taken by the modern dance piece that Emmy winner Travis Wall choreographed to Harry Styles’ “Sign of the Times” as a way to confront the gun violence epidemic.
The number is met with standing ovations at every stop, Linstruth says, and the few seconds before the lights fade to black are the hardest.
“I’m always the one on the end of the line crying a little,” she says. “It hits home for sure. The Vegas shooting, really — it’s different when it’s your hometown.”
Born and raised in Lancaster, California, Linstruth moved to Las Vegas in 2010. After two years at Las Vegas Academy of the Arts — one of which overlapped with this season’s winner, Bailey Munoz — she graduated from Palo Verde.
The hip-hop dancer and former Jamba Juice employee didn’t train in any of the other styles required by the show, mostly because those lessons can be overwhelmingly expensive.
“I was just kind of hoping for the best,” she reveals. “Then when I made it through (The Academy Rounds), I was like, ‘Crap, this is more difficult than I thought it was going to be.’ ”
Linstruth was the second female finalist eliminated, placing her in the show’s top eight. Once the “So You Think You Can Dance” tour ends, she’s planning to relocate to L.A. to pursue her dance career and additional tours. Her dream job: touring with Chris Brown.
“Mostly because he’s a dancer himself, so his show is based around his dancers rather than other shows where the dancers are in the background.”
If that doesn’t work out, she isn’t terribly picky.
“I would also like to be on anybody’s tour,” Linstruth says, laughing. “Doesn’t really matter. But the dream is Chris Brown.”


{{ result.message }}
IPAddress: {{ result.ipAddress }}
Cloud: {{ result.cloud }}
Region: {{ result.region }}
Location: {{ result.location }}
Restful api is available via https://www.azurespeed.com/api/region, this api returns returns resolved Azure datacenter region information. If the resolved ip address can not be found in azure datacenter ip ranges, returns region not found.


Crownstack Node.js Training
Fetch Data
Populate DOM
Employee list
Student list
This is target id:
Head is just waiting to be scraped!
This is 1st item
This is 2nd item
This is 3rd item
This a heading with id "heading".


Before Change
output_path = AbstractGuesser.guess_path(guesser_directory, fold)
df = pd.read_pickle(output_path)
// group by qnum, sort by word position, then list of vectors and labels
df_grouped = df.groupby("qnum")
for qid, q_group in df_grouped.groups.items():
vectors = []
labels = []
answer = questions[qid].page
After Change
vectors = []
labels = []
answer = questions[qid].page
q_group = sorted(q_group.items(), key=lambda x: x[0])
for _, (probs, guess) in q_group:
vectors.append(probs)
labels.append(guess == answer)
vectors = np.asarray(vectors, dtype=np.float32)


Antic Slab
Santiago Orozco
+
Almost before we knew it, we had left the ground.
Rowdies
Jaikishan Patel
+
Almost before we knew it, we had left the ground.
Lato
Lukasz Dziedic
+
Almost before we knew it, we had left the ground.
Lemonada
Multiple Designers
+
Almost before we knew it, we had left the ground.
Sriracha
Cadson Demak
+
Almost before we knew it, we had left the ground.
Noto Sans JP
+
Almost before we knew it, we had left the ground.
Open Sans
Steve Matteson
+
Almost before we knew it, we had left the ground.
Recursive
Stephen Nixon
+
Almost before we knew it, we had left the ground.
Red Rose
Jaikishan Patel
+
Almost before we knew it, we had left the ground.
Roboto
Christian Robertson
+
Almost before we knew it, we had left the ground.


| Library | Compatibility Versions | Maven Repo Search | |||||||
|---|---|---|---|---|---|---|---|---|---|
| ppw-test | I | II | III | IV | V | VI | VII | VIII |
Courtesy of Ozacc |
| ppw-i18n | I | II | III | IV | V | VI | VII | VIII | |
| ppw-exception | I | II | III | IV | V | VI | VII | VIII | |
| ppw-bean | I | II | III | IV | V | VI | VII | VIII | |
| ppw-value | I | II | III | IV | V | VI | VII | VIII | |
| ppw-value-hibernate | I | deprecated | |||||||
| ppw-servlet | I | II | III | IV | V | VI | VII | VIII | |
| ppw-jsp | I | II | III | IV | V | VI | VII | VIII | |
| ppw-struts | I | II | III | IV | V | VI | VII | VIII | |
| ppw-persistence | I | II | III | IV | V | VI | VII | VIII | |
| ppw-jsf | I | II | II | III | IV | V | VI | VII | VIII |
| Toryt | I | II | III | IV | V | VI | VII | VIII |
Dependencies are mandatory for development, but not necessarily for use of a library.
To keep the number of libraries manageable, we have choosen
to add specific implementations of an API in subpackages that are distributed
together with the API. E.g., there is a API in ppw-bean
that
covers persistency in a persistency-technology agnostic way. Implementations
are made, or can be made, of this API, for Hibernate, JDO, EJB 2, EJB
3, pure JDBC, etcetara. All these implementations are, or will be, gathered
in specific subpackages of the API, and included in the library that
carries
the API.
This means that, for compilation of those subpackages, the external libraries
this code depends on (in casu, hibernate.jar, the jars for JDO
and J2EE, etcetera), are needed in the classpath. The project maven settings
take care of this.
It would be bad however if a developer would need to provide the J2EE jars
in finished application that uses the Hibernate persistence technology,
and doesn't use J2EE at all. But luckily, through the magic of dynamic
loading, this is not necessary in Java. The class loaders will only try
to load the J2EE classes, and thus will look for the jar in the CLASSPATH,
if a class is loaded that refers to this external library. If these classes
that depend on a particular external library are never used in you application,
the external library will never be needed.
In the graph below, such optional dependencies are colored blue. The mandatory dependencies are colored black. Dependencies that are only needed for the unit testing, are colored chocolate.
Click for the full-size version.


Can you think of an analogy to describe HTML, CSS and the
DOM? How would you describe it to your non-technical
friend?
HTML 'hyper text markup
language' is a language of the web. It is used to define the
basic structure and content of a webpage. CSS 'cascading
style sheets' is a language used to define the style of a
webpage eg. colours,borders, backgrounds etc. DOM or Document
Object Model is a language independent convention which
represents and interacts with the objects in HTML. It helps
other languages like Javascript and CSS to interact with the
HTML.
What is meant by boxifying design?
Breaking down the page design
into multiple boxes which include the header, body, images,
url's etc. This process is undertaken before one starts
writing the HTML code and helps in planning the layout of the
page.
What is the box model?
All HTML elements can be
considered as boxes. In CSS, the term "box model" is used
when talking about design and layout. The CSS box model is
essentially a box that wraps around every HTML element. It
consists of: margins, borders, padding, and the actual
content. Content is the nucleus and sits in the centre.
Margins, borders and padding surround the actual content.


|
libevent
|
Go to the source code of this file.
Macros | |
| #define | DNS_ERR_CANCEL 69 |
| The request was canceled via a call to evdns_cancel_request. | |
| #define | DNS_ERR_FORMAT 1 |
| The name server was unable to interpret the query. | |
| #define | DNS_ERR_NODATA 70 |
| There were no answers and no error condition in the DNS packet. More... | |
| #define | DNS_ERR_NONE 0 |
| Error codes 0-5 are as described in RFC 1035. | |
| #define | DNS_ERR_NOTEXIST 3 |
| The domain name does not exist. | |
| #define | DNS_ERR_NOTIMPL 4 |
| The name server does not support the requested kind of query. | |
| #define | DNS_ERR_REFUSED 5 |
| The name server refuses to reform the specified operation for policy reasons. | |
| #define | DNS_ERR_SERVERFAILED 2 |
| The name server was unable to process this query due to a problem with the name server. | |
| #define | DNS_ERR_SHUTDOWN 68 |
| The request was canceled because the DNS subsystem was shut down. | |
| #define | DNS_ERR_TIMEOUT 67 |
| Communication with the server timed out. | |
| #define | DNS_ERR_TRUNCATED 65 |
| The reply was truncated or ill-formatted. | |
| #define | DNS_ERR_UNKNOWN 66 |
| An unknown error occurred. | |
| #define | DNS_IPv4_A 1 |
| #define | DNS_IPv6_AAAA 3 |
| #define | DNS_NO_SEARCH DNS_QUERY_NO_SEARCH |
| #define | DNS_OPTION_HOSTSFILE 8 |
| #define | DNS_OPTION_MISC 4 |
| #define | DNS_OPTION_NAMESERVERS 2 |
| #define | DNS_OPTION_NAMESERVERS_NO_DEFAULT 16 |
| #define | DNS_OPTION_SEARCH 1 |
| #define | DNS_OPTIONS_ALL |
| All above: More... | |
| #define | DNS_PTR 2 |
| #define | DNS_QUERY_NO_SEARCH 1 |
| #define | EVDNS_ADDITIONAL_SECTION 2 |
| #define | EVDNS_ANSWER_SECTION 0 |
| #define | EVDNS_AUTHORITY_SECTION 1 |
| #define | EVDNS_BASE_CONFIG_WINDOWS_NAMESERVERS_IMPLEMENTED |
| #define | EVDNS_BASE_DISABLE_WHEN_INACTIVE 0x8000 |
| Flag for evdns_base_new: Do not prevent the libevent event loop from exiting when we have no active dns requests. | |
| #define | EVDNS_BASE_INITIALIZE_NAMESERVERS 1 |
| Flag for evdns_base_new: process resolv.conf. More... | |
| #define | EVDNS_BASE_NAMESERVERS_NO_DEFAULT 0x10000 |
| Flag for evdns_base_new: If EVDNS_BASE_INITIALIZE_NAMESERVERS isset, do not add default nameserver if there are no nameservers in resolv.conf. More... | |
| #define | EVDNS_CLASS_INET 1 |
| #define | EVDNS_FLAGS_AA 0x400 |
| #define | EVDNS_FLAGS_RD 0x080 |
| #define | EVDNS_QTYPE_ALL 255 |
| #define | EVDNS_QTYPE_AXFR 252 |
| #define | EVDNS_TYPE_A 1 |
| #define | EVDNS_TYPE_AAAA 28 |
| #define | EVDNS_TYPE_CNAME 5 |
| #define | EVDNS_TYPE_MX 15 |
| #define | EVDNS_TYPE_NS 2 |
| #define | EVDNS_TYPE_PTR 12 |
| #define | EVDNS_TYPE_SOA 6 |
| #define | EVDNS_TYPE_TXT 16 |
Typedefs | |
| typedef void(* | evdns_callback_type) (int result, char type, int count, int ttl, void *addresses, void *arg) |
| The callback that contains the results from a lookup. More... | |
| typedef void(* | evdns_debug_log_fn_type) (int is_warning, const char *msg) |
| A callback that is invoked when a log message is generated. More... | |
| typedef void(* | evdns_getaddrinfo_cb) (int result, struct evutil_addrinfo *res, void *arg) |
| Callback for evdns_getaddrinfo. | |
| typedef void(* | evdns_request_callback_fn_type) (struct evdns_server_request *, void *) |
| A callback to implement a DNS server. More... | |
Functions | |
| EVENT2_EXPORT_SYMBOL struct evdns_server_port * | evdns_add_server_port_with_base (struct event_base *base, evutil_socket_t socket, int flags, evdns_request_callback_fn_type callback, void *user_data) |
| Create a new DNS server port. More... | |
| EVENT2_EXPORT_SYMBOL void | evdns_base_clear_host_addresses (struct evdns_base *base) |
| Remove all hosts entries that have been loaded into the event_base via evdns_base_load_hosts or via event_base_resolv_conf_parse. More... | |
| EVENT2_EXPORT_SYMBOL int | evdns_base_clear_nameservers_and_suspend (struct evdns_base *base) |
| Remove all configured nameservers, and suspend all pending resolves. More... | |
| EVENT2_EXPORT_SYMBOL int | evdns_base_config_windows_nameservers (struct evdns_base *) |
| Obtain nameserver information using the Windows API. More... | |
| EVENT2_EXPORT_SYMBOL int | evdns_base_count_nameservers (struct evdns_base *base) |
| Get the number of configured nameservers.  More... | |
| EVENT2_EXPORT_SYMBOL int | evdns_base_get_nameserver_addr (struct evdns_base *base, int idx, struct sockaddr *sa, ev_socklen_t len) |
| Retrieve the address of the 'idx'th configured nameserver. More... | |
| EVENT2_EXPORT_SYMBOL int | evdns_base_load_hosts (struct evdns_base *base, const char *hosts_fname) |
| Load an /etc/hosts-style file from 'hosts_fname' into 'base'. More... | |
| EVENT2_EXPORT_SYMBOL int | evdns_base_nameserver_add (struct evdns_base *base, unsigned long int address) |
| Add a nameserver. More... | |
| EVENT2_EXPORT_SYMBOL int | evdns_base_nameserver_ip_add (struct evdns_base *base, const char *ip_as_string) |
| Add a nameserver by string address. More... | |
| EVENT2_EXPORT_SYMBOL int | evdns_base_nameserver_sockaddr_add (struct evdns_base *base, const struct sockaddr *sa, ev_socklen_t len, unsigned flags) |
| Add a nameserver by sockaddr. | |
| EVENT2_EXPORT_SYMBOL struct evdns_base * | evdns_base_new (struct event_base *event_base, int initialize_nameservers) |
| Initialize the asynchronous DNS library. More... | |
| EVENT2_EXPORT_SYMBOL int | evdns_base_resolv_conf_parse (struct evdns_base *base, int flags, const char *const filename) |
| Parse a resolv.conf file. More... | |
| EVENT2_EXPORT_SYMBOL struct evdns_request * | evdns_base_resolve_ipv4 (struct evdns_base *base, const char *name, int flags, evdns_callback_type callback, void *ptr) |
| Lookup an A record for a given name. More... | |
| EVENT2_EXPORT_SYMBOL struct evdns_request * | evdns_base_resolve_ipv6 (struct evdns_base *base, const char *name, int flags, evdns_callback_type callback, void *ptr) |
| Lookup an AAAA record for a given name. More... | |
| EVENT2_EXPORT_SYMBOL struct evdns_request * | evdns_base_resolve_reverse (struct evdns_base *base, const struct in_addr *in, int flags, evdns_callback_type callback, void *ptr) |
| Lookup a PTR record for a given IP address. More... | |
| EVENT2_EXPORT_SYMBOL struct evdns_request * | evdns_base_resolve_reverse_ipv6 (struct evdns_base *base, const struct in6_addr *in, int flags, evdns_callback_type callback, void *ptr) |
| Lookup a PTR record for a given IPv6 address. More... | |
| EVENT2_EXPORT_SYMBOL int | evdns_base_resume (struct evdns_base *base) |
| Resume normal operation and continue any suspended resolve requests. More... | |
| EVENT2_EXPORT_SYMBOL void | evdns_base_search_add (struct evdns_base *base, const char *domain) |
| Add a domain to the list of search domains. More... | |
| EVENT2_EXPORT_SYMBOL void | evdns_base_search_clear (struct evdns_base *base) |
| Clear the list of search domains. | |
| EVENT2_EXPORT_SYMBOL void | evdns_base_search_ndots_set (struct evdns_base *base, const int ndots) |
| Set the 'ndots' parameter for searches. More... | |
| EVENT2_EXPORT_SYMBOL int | evdns_base_set_option (struct evdns_base *base, const char *option, const char *val) |
| Set the value of a configuration option. More... | |
| EVENT2_EXPORT_SYMBOL void | evdns_cancel_request (struct evdns_base *base, struct evdns_request *req) |
| Cancels a pending DNS resolution request. More... | |
| EVENT2_EXPORT_SYMBOL void | evdns_close_server_port (struct evdns_server_port *port) |
| Close down a DNS server port, and free associated structures. | |
| const EVENT2_EXPORT_SYMBOL char * | evdns_err_to_string (int err) |
| Convert a DNS error code to a string. More... | |
| EVENT2_EXPORT_SYMBOL struct evdns_getaddrinfo_request * | evdns_getaddrinfo (struct evdns_base *dns_base, const char *nodename, const char *servname, const struct evutil_addrinfo *hints_in, evdns_getaddrinfo_cb cb, void *arg) |
| Make a non-blocking getaddrinfo request using the dns_base in 'dns_base'. More... | |
| EVENT2_EXPORT_SYMBOL void | evdns_getaddrinfo_cancel (struct evdns_getaddrinfo_request *req) |
| EVENT2_EXPORT_SYMBOL int | evdns_server_request_add_a_reply (struct evdns_server_request *req, const char *name, int n, const void *addrs, int ttl) |
| EVENT2_EXPORT_SYMBOL int | evdns_server_request_add_aaaa_reply (struct evdns_server_request *req, const char *name, int n, const void *addrs, int ttl) |
| EVENT2_EXPORT_SYMBOL int | evdns_server_request_add_cname_reply (struct evdns_server_request *req, const char *name, const char *cname, int ttl) |
| EVENT2_EXPORT_SYMBOL int | evdns_server_request_add_ptr_reply (struct evdns_server_request *req, struct in_addr *in, const char *inaddr_name, const char *hostname, int ttl) |
| EVENT2_EXPORT_SYMBOL int | evdns_server_request_add_reply (struct evdns_server_request *req, int section, const char *name, int type, int dns_class, int ttl, int datalen, int is_name, const char *data) |
| EVENT2_EXPORT_SYMBOL int | evdns_server_request_drop (struct evdns_server_request *req) |
| Free a DNS request without sending back a reply. | |
| EVENT2_EXPORT_SYMBOL int | evdns_server_request_get_requesting_addr (struct evdns_server_request *req, struct sockaddr *sa, int addr_len) |
| Get the address that made a DNS request. | |
| EVENT2_EXPORT_SYMBOL int | evdns_server_request_respond (struct evdns_server_request *req, int err) |
| Send back a response to a DNS request, and free the request structure. | |
| EVENT2_EXPORT_SYMBOL void | evdns_server_request_set_flags (struct evdns_server_request *req, int flags) |
| Sets some flags in a reply we're building. More... | |
| EVENT2_EXPORT_SYMBOL void | evdns_set_log_fn (evdns_debug_log_fn_type fn) |
| Set the callback function to handle DNS log messages. More... | |
| EVENT2_EXPORT_SYMBOL void | evdns_set_random_bytes_fn (void(*fn)(char *, size_t)) |
| Set a callback used to generate random bytes. More... | |
| EVENT2_EXPORT_SYMBOL void | evdns_set_transaction_id_fn (ev_uint16_t(*fn)(void)) |
| Set a callback that will be invoked to generate transaction IDs. More... | |
Welcome, gentle reader
Async DNS lookups are really a whole lot harder than they should be, mostly stemming from the fact that the libc resolver has never been very good at them. Before you use this library you should see if libc can do the job for you with the modern async call getaddrinfo_a (see http://www.imperialviolet.org/page25.html#e498). Otherwise, please continue.
The library keeps track of the state of nameservers and will avoid them when they go down. Otherwise it will round robin between them.
Quick start guide: #include "evdns.h" void callback(int result, char type, int count, int ttl, void *addresses, void *arg); evdns_resolv_conf_parse(DNS_OPTIONS_ALL, "/etc/resolv.conf"); evdns_resolve("www.hostname.com", 0, callback, NULL);
When the lookup is complete the callback function is called. The first argument will be one of the DNS_ERR_* defines in evdns.h. Hopefully it will be DNS_ERR_NONE, in which case type will be DNS_IPv4_A, count will be the number of IP addresses, ttl is the time which the data can be cached for (in seconds), addresses will point to an array of uint32_t's and arg will be whatever you passed to evdns_resolve.
Searching:
In order for this library to be a good replacement for glibc's resolver it supports searching. This involves setting a list of default domains, in which names will be queried for. The number of dots in the query name determines the order in which this list is used.
Searching appears to be a single lookup from the point of view of the API, although many DNS queries may be generated from a single call to evdns_resolve. Searching can also drastically slow down the resolution of names.
To disable searching:
The order of searches depends on the number of dots in the name. If the number is greater than the ndots setting then the names is first tried globally. Otherwise each search domain is appended in turn.
The ndots setting can either be set from a resolv.conf, or by calling evdns_search_ndots_set.
For example, with ndots set to 1 (the default) and a search domain list of ["myhome.net"]: Query: www Order: www.myhome.net, www.
Query: www.abc Order: www.abc., www.abc.myhome.net
Internals:
Requests are kept in two queues. The first is the inflight queue. In this queue requests have an allocated transaction id and nameserver. They will soon be transmitted if they haven't already been.
The second is the waiting queue. The size of the inflight ring is limited and all other requests wait in waiting queue for space. This bounds the number of concurrent requests so that we don't flood the nameserver. Several algorithms require a full walk of the inflight queue and so bounding its size keeps thing going nicely under huge (many thousands of requests) loads.
If a nameserver loses too many requests it is considered down and we try not to use it. After a while we send a probe to that nameserver (a lookup for google.com) and, if it replies, we consider it working again. If the nameserver fails a probe we wait longer to try again with the next probe.
| #define DNS_ERR_NODATA 70 |
There were no answers and no error condition in the DNS packet.
This can happen when you ask for an address that exists, but a record type that doesn't.
| #define DNS_OPTIONS_ALL |
All above:
| #define EVDNS_BASE_INITIALIZE_NAMESERVERS 1 |
Flag for evdns_base_new: process resolv.conf.
| #define EVDNS_BASE_NAMESERVERS_NO_DEFAULT 0x10000 |
Flag for evdns_base_new: If EVDNS_BASE_INITIALIZE_NAMESERVERS isset, do not add default nameserver if there are no nameservers in resolv.conf.
| typedef void(* evdns_callback_type) (int result, char type, int count, int ttl, void *addresses, void *arg) |
The callback that contains the results from a lookup.
| typedef void(* evdns_debug_log_fn_type) (int is_warning, const char *msg) |
A callback that is invoked when a log message is generated.
| is_warning | indicates if the log message is a 'warning' |
| msg | the content of the log message |
| typedef void(* evdns_request_callback_fn_type) (struct evdns_server_request *, void *) |
A callback to implement a DNS server.
The callback function receives a DNS request. It should then optionally add a number of answers to the reply using the evdns_server_request_add_*_reply functions, before calling either evdns_server_request_respond to send the reply back, or evdns_server_request_drop to decline to answer the request.
| req | A newly received request |
| user_data | A pointer that was passed to evdns_add_server_port_with_base(). |
| EVENT2_EXPORT_SYMBOL struct evdns_server_port* evdns_add_server_port_with_base | ( | struct event_base * | base, |
| evutil_socket_t | socket, | ||
| int | flags, | ||
| evdns_request_callback_fn_type | callback, | ||
| void * | user_data | ||
| ) |
Create a new DNS server port.
| base | The event base to handle events for the server port. |
| socket | A UDP socket to accept DNS requests. |
| flags | Always 0 for now. |
| callback | A function to invoke whenever we get a DNS request on the socket. |
| user_data | Data to pass to the callback. |
| EVENT2_EXPORT_SYMBOL void evdns_base_clear_host_addresses | ( | struct evdns_base * | base | ) |
Remove all hosts entries that have been loaded into the event_base via evdns_base_load_hosts or via event_base_resolv_conf_parse.
| evdns_base | the evdns base to remove outdated host addresses from |
| EVENT2_EXPORT_SYMBOL int evdns_base_clear_nameservers_and_suspend | ( | struct evdns_base * | base | ) |
Remove all configured nameservers, and suspend all pending resolves.
Resolves will not necessarily be re-attempted until evdns_base_resume() is called.
| base | the evdns_base to which to apply this operation |
| EVENT2_EXPORT_SYMBOL int evdns_base_config_windows_nameservers | ( | struct evdns_base * | ) |
Obtain nameserver information using the Windows API.
Attempt to configure a set of nameservers based on platform settings on a win32 host. Preferentially tries to use GetNetworkParams; if that fails, looks in the registry.
| EVENT2_EXPORT_SYMBOL int evdns_base_count_nameservers | ( | struct evdns_base * | base | ) |
Get the number of configured nameservers.
This returns the number of configured nameservers (not necessarily the number of running nameservers). This is useful for double-checking whether our calls to the various nameserver configuration functions have been successful.
| base | the evdns_base to which to apply this operation |
| EVENT2_EXPORT_SYMBOL void evdns_base_free | ( | struct evdns_base * | base, |
| int | fail_requests | ||
| ) |
Shut down the asynchronous DNS resolver and terminate all active requests.
If the 'fail_requests' option is enabled, all active requests will return an empty result with the error flag set to DNS_ERR_SHUTDOWN. Otherwise, the requests will be silently discarded.
| evdns_base | the evdns base to free |
| fail_requests | if zero, active requests will be aborted; if non-zero, active requests will return DNS_ERR_SHUTDOWN. |
| EVENT2_EXPORT_SYMBOL int evdns_base_get_nameserver_addr | ( | struct evdns_base * | base, |
| int | idx, | ||
| struct sockaddr * | sa, | ||
| ev_socklen_t | len | ||
| ) |
Retrieve the address of the 'idx'th configured nameserver.
| base | The evdns_base to examine. |
| idx | The index of the nameserver to get the address of. |
| sa | A location to receive the server's address. |
| len | The number of bytes available at sa. |
| EVENT2_EXPORT_SYMBOL int evdns_base_load_hosts | ( | struct evdns_base * | base, |
| const char * | hosts_fname | ||
| ) |
Load an /etc/hosts-style file from 'hosts_fname' into 'base'.
If hosts_fname is NULL, add minimal entries for localhost, and nothing else.
Note that only evdns_getaddrinfo uses the /etc/hosts entries.
This function does not replace previously loaded hosts entries; to do that, call evdns_base_clear_host_addresses first.
Return 0 on success, negative on failure.
| EVENT2_EXPORT_SYMBOL int evdns_base_nameserver_add | ( | struct evdns_base * | base, |
| unsigned long int | address | ||
| ) |
Add a nameserver.
The address should be an IPv4 address in network byte order. The type of address is chosen so that it matches in_addr.s_addr.
| base | the evdns_base to which to add the name server |
| address | an IP address in network byte order |
| EVENT2_EXPORT_SYMBOL int evdns_base_nameserver_ip_add | ( | struct evdns_base * | base, |
| const char * | ip_as_string | ||
| ) |
Add a nameserver by string address.
This function parses a n IPv4 or IPv6 address from a string and adds it as a nameserver. It supports the following formats:
If no port is specified, it defaults to 53.
| base | the evdns_base to which to apply this operation |
| EVENT2_EXPORT_SYMBOL struct evdns_base* evdns_base_new | ( | struct event_base * | event_base, |
| int | initialize_nameservers | ||
| ) |
Initialize the asynchronous DNS library.
This function initializes support for non-blocking name resolution by calling evdns_resolv_conf_parse() on UNIX and evdns_config_windows_nameservers() on Windows.
| event_base | the event base to associate the dns client with |
| flags | any of EVDNS_BASE_INITIALIZE_NAMESERVERS| EVDNS_BASE_DISABLE_WHEN_INACTIVE|EVDNS_BASE_NAMESERVERS_NO_DEFAULT |
| EVENT2_EXPORT_SYMBOL int evdns_base_resolv_conf_parse | ( | struct evdns_base * | base, |
| int | flags, | ||
| const char *const | filename | ||
| ) |
Parse a resolv.conf file.
The 'flags' parameter determines what information is parsed from the resolv.conf file. See the man page for resolv.conf for the format of this file.
The following directives are not parsed from the file: sortlist, rotate, no-check-names, inet6, debug.
If this function encounters an error, the possible return values are: 1 = failed to open file, 2 = failed to stat file, 3 = file too large, 4 = out of memory, 5 = short read from file, 6 = no nameservers listed in the file
| base | the evdns_base to which to apply this operation |
| flags | any of DNS_OPTION_NAMESERVERS|DNS_OPTION_SEARCH|DNS_OPTION_MISC| DNS_OPTION_HOSTSFILE|DNS_OPTIONS_ALL|DNS_OPTION_NAMESERVERS_NO_DEFAULT |
| filename | the path to the resolv.conf file |
| EVENT2_EXPORT_SYMBOL struct evdns_request* evdns_base_resolve_ipv4 | ( | struct evdns_base * | base, |
| const char * | name, | ||
| int | flags, | ||
| evdns_callback_type | callback, | ||
| void * | ptr | ||
| ) |
Lookup an A record for a given name.
| base | the evdns_base to which to apply this operation |
| name | a DNS hostname |
| flags | either 0, or DNS_QUERY_NO_SEARCH to disable searching for this query. |
| callback | a callback function to invoke when the request is completed |
| ptr | an argument to pass to the callback function |
| EVENT2_EXPORT_SYMBOL struct evdns_request* evdns_base_resolve_ipv6 | ( | struct evdns_base * | base, |
| const char * | name, | ||
| int | flags, | ||
| evdns_callback_type | callback, | ||
| void * | ptr | ||
| ) |
Lookup an AAAA record for a given name.
| base | the evdns_base to which to apply this operation |
| name | a DNS hostname |
| flags | either 0, or DNS_QUERY_NO_SEARCH to disable searching for this query. |
| callback | a callback function to invoke when the request is completed |
| ptr | an argument to pass to the callback function |
| EVENT2_EXPORT_SYMBOL struct evdns_request* evdns_base_resolve_reverse | ( | struct evdns_base * | base, |
| const struct in_addr * | in, | ||
| int | flags, | ||
| evdns_callback_type | callback, | ||
| void * | ptr | ||
| ) |
Lookup a PTR record for a given IP address.
| base | the evdns_base to which to apply this operation |
| in | an IPv4 address |
| flags | either 0, or DNS_QUERY_NO_SEARCH to disable searching for this query. |
| callback | a callback function to invoke when the request is completed |
| ptr | an argument to pass to the callback function |
| EVENT2_EXPORT_SYMBOL struct evdns_request* evdns_base_resolve_reverse_ipv6 | ( | struct evdns_base * | base, |
| const struct in6_addr * | in, | ||
| int | flags, | ||
| evdns_callback_type | callback, | ||
| void * | ptr | ||
| ) |
Lookup a PTR record for a given IPv6 address.
| base | the evdns_base to which to apply this operation |
| in | an IPv6 address |
| flags | either 0, or DNS_QUERY_NO_SEARCH to disable searching for this query. |
| callback | a callback function to invoke when the request is completed |
| ptr | an argument to pass to the callback function |
| EVENT2_EXPORT_SYMBOL int evdns_base_resume | ( | struct evdns_base * | base | ) |
Resume normal operation and continue any suspended resolve requests.
Re-attempt resolves left in limbo after an earlier call to evdns_base_clear_nameservers_and_suspend().
| base | the evdns_base to which to apply this operation |
| EVENT2_EXPORT_SYMBOL void evdns_base_search_add | ( | struct evdns_base * | base, |
| const char * | domain | ||
| ) |
Add a domain to the list of search domains.
| domain | the domain to be added to the search list |
| EVENT2_EXPORT_SYMBOL void evdns_base_search_ndots_set | ( | struct evdns_base * | base, |
| const int | ndots | ||
| ) |
Set the 'ndots' parameter for searches.
Sets the number of dots which, when found in a name, causes the first query to be without any search domain.
| ndots | the new ndots parameter |
| EVENT2_EXPORT_SYMBOL int evdns_base_set_option | ( | struct evdns_base * | base, |
| const char * | option, | ||
| const char * | val | ||
| ) |
Set the value of a configuration option.
The currently available configuration options are:
ndots, timeout, max-timeouts, max-inflight, attempts, randomize-case, bind-to, initial-probe-timeout, getaddrinfo-allow-skew, so-rcvbuf, so-sndbuf.
In versions before Libevent 2.0.3-alpha, the option name needed to end with a colon.
| base | the evdns_base to which to apply this operation |
| option | the name of the configuration option to be modified |
| val | the value to be set |
| EVENT2_EXPORT_SYMBOL void evdns_cancel_request | ( | struct evdns_base * | base, |
| struct evdns_request * | req | ||
| ) |
Cancels a pending DNS resolution request.
| base | the evdns_base that was used to make the request |
| req | the evdns_request that was returned by calling a resolve function |
| const EVENT2_EXPORT_SYMBOL char* evdns_err_to_string | ( | int | err | ) |
Convert a DNS error code to a string.
| err | the DNS error code |
| EVENT2_EXPORT_SYMBOL struct evdns_getaddrinfo_request* evdns_getaddrinfo | ( | struct evdns_base * | dns_base, |
| const char * | nodename, | ||
| const char * | servname, | ||
| const struct evutil_addrinfo * | hints_in, | ||
| evdns_getaddrinfo_cb | cb, | ||
| void * | arg | ||
| ) |
Make a non-blocking getaddrinfo request using the dns_base in 'dns_base'.
If we can answer the request immediately (with an error or not!), then we invoke cb immediately and return NULL. Otherwise we return an evdns_getaddrinfo_request and invoke cb later.
When the callback is invoked, we pass as its first argument the error code that getaddrinfo would return (or 0 for no error). As its second argument, we pass the evutil_addrinfo structures we found (or NULL on error). We pass 'arg' as the third argument.
Limitations:
| EVENT2_EXPORT_SYMBOL void evdns_server_request_set_flags | ( | struct evdns_server_request * | req, |
| int | flags | ||
| ) |
Sets some flags in a reply we're building.
Allows setting of the AA or RD flags
| EVENT2_EXPORT_SYMBOL void evdns_set_log_fn | ( | evdns_debug_log_fn_type | fn | ) |
Set the callback function to handle DNS log messages.
If this callback is not set, evdns log messages are handled with the regular Libevent logging system.
| fn | the callback to be invoked when a log message is generated |
| EVENT2_EXPORT_SYMBOL void evdns_set_random_bytes_fn | ( | void(*)(char *, size_t) | fn | ) |
Set a callback used to generate random bytes.
By default, we use the same function as passed to evdns_set_transaction_id_fn to generate bytes two at a time. If a function is provided here, it's also used to generate transaction IDs.
NOTE: This function has no effect in Libevent 2.0.4-alpha and later, since Libevent now provides its own secure RNG.
| EVENT2_EXPORT_SYMBOL void evdns_set_transaction_id_fn | ( | ev_uint16_t(*)(void) | fn | ) |
Set a callback that will be invoked to generate transaction IDs.
By default, we pick transaction IDs based on the current clock time, which is bad for security.
| fn | the new callback, or NULL to use the default. |
NOTE: This function has no effect in Libevent 2.0.4-alpha and later, since Libevent now provides its own secure RNG.


Billy Kemper, Finn McGill, Eli Hanneman advance in Hawaiian Pro surfing contest | Honolulu Star-Advertiser
Three Hawaii surfers kept their dreams of a Hawaiian Pro championship alive Sunday at Alii Beach Park in Haleiwa. Read more
Mahalo for reading the Honolulu Star-Advertiser!
You're reading a premium story. Read the full story with our Print & Digital Subscription.
Already a subscriber? Log in now to continue reading this story.
Print subscriber but without online access? Activate your Digital Account now.


Home
Dashboard
About
San Jose Employment
A look at San Jose Employment, based on open data
(Note: Graphed results are approximations and have not yet been reviewed)
Overall Employment
More info
Source:
San Jose Unemployment data
| Status:
TBD
Unemployment Rate
More info
Source:
San Jose Unemployment data
| Status:
TBD


Emu is a language for programming GPUs from Rust. Emu provides the emu!
macro for compiling functions written in the Emu language to an intermediate code which gets stored in the EMU
global constant. You can then run your code using a binding to OpenCL such as ocl or rust-opencl or use the build!
macro which generates Rust functions that can be called to run your Emu functions.
extern crate em; use em::emu; emu! { // more particles more_particles(num_particles u32, num_moles u32) u32 { return num_particles + num_moles * L; } // moves particles move_particles(global_particles_x [f32], global_particles_y f32, global_particles_z f32) { global_particles_z[get_global_id(0)] += 7.3e1 as nm; global_particles_x[get_global_id(0)] += 2 as cm; global_particles_y[get_global_id(0)] += 6 as cm; } // moves particles in circle rotate_particles(global_particles_r [f32]) { global_particles_r[get_global_id(0)] += 7.5 * TAU; } // multiplies 2 matrices // n is the dimension of the matrices // a and b are the matrices to be multiplied, c is the result multiply_matrices(n i32, global_a [f32], global_b [f32], global_c [f32]) { // indices of cells to multiply let i: i32 = get_global_id(0); let j: i32 = get_global_id(1); // execute step of multiplication for k in 0..n { global_c[i * n + j] += global_a[i * n + k] * global_b[k * n + j]; } } }
To start writing Emu functions embedded in your Rust code, simply add the following to your Cargo.toml
file and import the macro as shown above.
[dependencies] em = "0.1.2"


Painted in 1931 by yet another Spanish artist, Salvador Dali's The Persistance of Memory is one of the most recognizable and individual pieces in art history. Depicting a dismal shoreline draped with melting clocks, it is thought that Albert Einstein's Theory of Relativity inspired this bizarre piece.
At first glance it might look like a collage but Pablo Picasso's famous painting, Three Musicians is actually an oil painting. Completed in 1921, he painted two very similar paintings that are mutually referred to as Three Musicians and can be found in the New York MoMA and the Philadelphia Museum of Art.
Dogs Playing Poker refers collectively to an 1894 painting, a series of sixteen oil paintings, and a 1910 painting by Cassius Marcellus Coolidge. Brown & Bigelow commissioned the 16 painting series in 1903 to advertise cigars.
Ivan Ivanovich (Ива́н Иванович) (28 March 1554 – 19 November 1581) of the House of Rurik, was Tsarevich - the heir apparent - of the Tsardom of Russia, being the second son of Ivan the Terrible by his first wife Anastasia Romanovna. He was thus an elder brother of Feodor.
Bal du moulin de la Galette (commonly known as Dance at Le moulin de la Galette) is an 1876 painting by French artist Pierre-Auguste Renoir. It is housed at the Musée d'Orsay in Paris and is one of Impressionism's most celebrated masterpieces.


Create New Assignment
Select Class
You have assigned for: {{ project.class ? project.class.prefix+" "+project.class.name : 'No class yet' }}
Or


It's been a great ride, but it's time to say goodbye. npm addict has been sunsetted on May 31st, 2023.
The project began seven years ago and, unfortunately, has not undergone significant improvements since then. As a result, it has incurred numerous technical debts.
Also, the operation cost has been rising gradually due to the significant increase in the number of npm packages released daily. Just to provide some insight, the database currently contains 67 GB of data, and the overall expense of hosting is roughly $100 per month.
Regrettably, I cannot allocate sufficient time to address the technical debts or explore options to cover the expenses associated with hosting.
Therefore, I've decided to close npm addict and genuinely apologize to the few people who use it.
I still dedicate a significant portion of my time to working on open-source projects. For those who are interested, you can take a look at:
I want to express my gratitude to all the individuals who have generously provided their assistance to me throughout the years.
Thank you very much. 🙏
Happy coding,
Manuel Vila


Blog Comments?
A big question when it comes to static site genorators is blog comments. Many peoples go to comment plug-in is Disqus. That is how I started out.
Enter Utterances - A lightweight comments widget built on GitHub issues.
Why you should use Utterances:
From utteranc.es:
Open source. No tracking, no ads, always free. No lock-in. All data stored in GitHub issues. Styled with Primer, the css toolkit that powers GitHub. Dark theme. Lightweight. Vanilla TypeScript. No font downloads, JavaScript frameworks or polyfills for evergreen browsers.
How it works
When Utterances loads, the GitHub issue search API is used to find the issue associated with the page based on url, pathname or title. If we cannot find an issue that matches the page, no problem, utterances-bot will automatically create an issue the first time someone comments. To comment, users must authorize the utterances app to post on their behalf using the GitHub OAuth flow. Alternatively, users can comment on the GitHub issue directly.
Usage
Simply paste this code where you want your comments to appear. Then just let the magic happen!
<script
src="https://utteranc.es/client.js"
repo="[ENTER REPO HERE]"
issue-term="pathname"
theme="[YOUR THEME HERE]"
crossorigin="anonymous"
async>
</script>
Simple as that.


1001745502
Aditee Dakhane
Show Pie Chart for Population Range Eleveation Range1 (Lowest)
Elevation Range2 (Highest)
Number of Slices
{{countarr}}


Snowball is a small string processing language designed for creating stemming
algorithms for use in Information Retrieval. This site describes Snowball, and presents
several useful stemmers which have been implemented using it.
The Snowball compiler translates a Snowball script into another language -
currently ISO C, Java, Python, Rust and Go are supported.
Since it effectively provides a ‘suffix STRIPPER GRAMmar’, I had toyed with the
idea of calling it ‘strippergram’, but good sense has prevailed, and so it is
‘Snowball’ named as a tribute to SNOBOL, the excellent string handling language
of Messrs Farber, Griswold, Poage and Polonsky from the 1960s.
Please address all Snowball-related mail to the snowball-discuss mailing list.
Any such mail sent directly to individual developers may be answered less
speedily, and in any case they reserve the right to post their answers on snowball-discuss.

-
Mar 2017 - Rust backend contributed by Jakob Demler.
-
Jan 2016 - Arabic stemming algorithm contributed by Assem Chelli.
-
Oct 2015 - Tamil stemming algorithm contributed by Damodharan Rajalingam.
-
Sep 2015 - New home for snowball on snowballstem.org.
-
Sep 2014 - Martin Porter retires from snowball development.
-
May 2012 - Contributed stemmers for Irish and Czech.
-
Jul 2010 - Contributed stemmers for Armenian, Basque, Catalan.
-
Mar 2007 - Romanian stemmer.
-
Jan 2007 - Turkish stemmer. Contributed by Evren (Kapusuz) Cilden.
-
Sep 2006 - Hungarian stemmer. Contributed by Anna Tordai.
-
Jun 2006 - Supported and updated Python bindings.
-
May 2005 - UTF-8 Unicode support.
-
Sep 2002 - Finnish stemmer.
-
Jul 2002 - ISO Latin I as default
The use of MS DOS Latin I is now history, but the old versions of the
Snowball stemmers are still accessible on the site.
-
May 2002 - Unicode support
-
Feb 2002 - Java support
Richard has modified the snowball code generator to produce Java output as
well as ANSI C output. This means that pure Java systems can now use the
snowball stemmers.


func CombinationsExceed(n, k, threshold int) bool
CombinationsExceed computes the number of combinations of choosing K elements from N elements, and returns whether the number of combinations exceeds a given threshold. If n < k then it returns false.
Iterator defines an iterator that can be used to traverse vertices of a graph
type Iterator interface { // Next returns the next element in the iteration order, // or nil if there is no such an element Next() *TreeVertex }
Tree defines a Tree of vertices of type TreeVertex
type Tree struct { Root *TreeVertex }
func (t *Tree) BFS() Iterator
BFS returns an iterator that iterates the vertices in a Breadth-First-Search order
func (t *Tree) Permute(combinationUpperBound int) []*Tree
Permute returns Trees that their vertices and edges all exist in the original tree. The permutations are calculated according to the thresholds of all vertices. The combinationUpperBound is an upper bound of possible combinations of direct descendants of a vertex. If the vertex has a threshold and descendants that result a number of combinations that exceeds the given combinationUpperBound, the descendants are pruned until the number of combinations is lower than the combinationUpperBound. This is done in order to cap the memory usage of the computed result.
TreeVertex defines a vertex of a tree
type TreeVertex struct { Id string // id identifies uniquely the TreeVertex in the Tree Data interface{} // data holds arbitrary data, to be used by the user of the package Descendants []*TreeVertex // descendants are the vertices that this TreeVertex is their parent in the tree Threshold int // threshold symbols the count of sub-trees / leaves to pick when creating tree permutations }
func NewTreeVertex(id string, data interface{}, descendants ...*TreeVertex) *TreeVertex
NewTreeVertex creates a new vertex with a given unique id and a given arbitrary data
func (v *TreeVertex) AddDescendant(u *TreeVertex) *TreeVertex
AddDescendant creates a new vertex who's parent is the invoker vertex, with a given id and data. Returns the new vertex
func (v *TreeVertex) Clone() *TreeVertex
Clone clones the tree who's root vertex is the current vertex.
func (v *TreeVertex) Exists(id string) bool
Exists searches for a vertex who's id is the given id, and returns whether such a vertex was found or not.
func (v *TreeVertex) Find(id string) *TreeVertex
Find searches for a vertex who's id is the given id. Returns the first vertex it finds with such an Id, or nil if not found
func (v *TreeVertex) IsLeaf() bool
IsLeaf returns whether the given vertex is a leaf
func (v *TreeVertex) ToTree() *Tree
ToTree creates a Tree who's root vertex is the current vertex
Vertex defines a vertex of a graph
type Vertex struct { Id string Data interface{} // contains filtered or unexported fields }
func NewVertex(id string, data interface{}) *Vertex
NewVertex creates a new vertex with given id and data
func (v *Vertex) AddNeighbor(u *Vertex)
AddNeighbor adds the given vertex as a neighbor of the vertex
func (v *Vertex) NeighborById(id string) *Vertex
NeighborById returns a neighbor vertex with the given id, or nil if no vertex with such an id is a neighbor
func (v *Vertex) Neighbors() []*Vertex
Neighbors returns the neighbors of the vertex


Random Quote Machine
Welcome! Enjoy these cool random quotes below - using the Forismatic API.
Always be yourself, express yourself, have faith in yourself, do not go out and look for a successful personality and duplicate it.
New quote
Welcome! Enjoy these cool random quotes below - using the Forismatic API.
Always be yourself, express yourself, have faith in yourself, do not go out and look for a successful personality and duplicate it.


Perform a listObjects() operation on a Coordinating Node.
Select the environment and specify optional slicing parameters. Note that the date fields accept entries like "-1 month" to specify a date 1 month ago.
Hit <Enter> or click on the green URL to invoke the call.
Environment:
Base URL:
Start:
Count:
FormatID:
From Date:
To Date:
Request:
URL:
cURL:
Server Response


@css.file.items@ @js.file.items@
Forgot Password Sign-in Help
About @server_short_name@
Learn more from our Documentation


Add or edit a shower
Temperatures
Warm water temperature
Cold water temperature
Meter readings before shower
Warm water before shower
Cold water before shower
Start and stop
Start
Stop
Time started
Time stopped
Meter readings after shower
Warm water after shower
Cold water after shower
Submit


Recent ships
Overview
Teams are there to accomplish something. Nothing is worse than people doing something without telling their peers in the company. This leads to miscommunication, doubt and sometimes suspicion. OfficeLife wants to encourage collaboration and communication throughout the entire company. This is where the Recent ships feature comes into play.
When a team accomplishes something, for instance finalize a big project or ship a great feature, it should tell the entire company about it. We call it Recent ships
.
Anyone in the team can create an entry in the Recent ships log. When an entry is created, it will be public for the entire company to see and will appear in those places:
- on the team page itself,
- on the main Company tab accessible from the header of the application,
- on the Team tab on the dashboard,
- on the Company tab on the dashboard.
When an entry is associated to specific people, it will also appear on the Employee profile page as well.
This is how the details of an entry looks like:
Creating an entry
Creating a Recent ship entry takes place on the Team page itself. Anyone in the team can create an entry. The entry will be visible by the entire company and can always be edited or deleted anytime.
When creating an entry, you can choose to associate specific people in the team with this entry. If specific people are provided, this entry will also appear on the profile page of each one of these employees. Each employee associated with an entry will also get a notification so he’s aware that he’s been flagged as someone who contributed to something great.
You can associate employees from another team as well if you so desire, as sometimes, people from other teams can contribute to ship features. In that case, the entry will still be associated with the original team.
Rules
- An entry can be created by someone with either the HR or administrator role, or someone who is part of the team.
- The title of the entry is mandatory and limited to 255 characters.
- The description is optional, supports Markdown and is to 65555 characters.
- Associating an entry to a specific employee is optional.
Deleting an entry
HR and administrators can delete an entry that was previously created.
When an entry is deleted, notifications that employees received if they were associated with it will not be removed from their notifications center.
Rules
- An entry can be deleted by someone with either the HR or administrator role.
Recent ships on the employee profile page
The recent ship entries will be displayed on the employee’s profile page when the employee is associated with this entry.
For now, all entries are displayed - we don't limit the number of entries that should appear here. We might revisit this in the future to include a "View all" so we can display something like 3 entries.
Recent ships on the dashboard’s team page
When an employee belongs to a team, he has access to a Team dashboard. On this dashboard, amongst other things, the employee can see the list of recent ship entries for this team. This list only shows the 3 latest entries.
⏰ This document was last changed on Wednesday, 25-Nov-2020 02:59:35 UTC.
- If you spot an error or a need for improvement and would like to fix it yourself in a pull request, edit this page on Github.
- If you like to suggest an improvement to this doc, create an issue on the repository on Github.


Shipped my first Ember production app in a month
24 Feb 2015Today we shipped Crowdfire which we’ve been working on since a month. The dashboard is completely written in Ember using Ember CLI and deployed to Amazon S3 keeping it totally independent of the backend.
To give you more context, I joined Crowdfire (formerly JustUnfollow) team in the mid December last year. Our immediate goal for 2015 was to rebrand and more importantly to rewrite the existing web interface which was serving our users since past 5 years.
Ember is not so common in JavaScript dev community here in Mumbai or Bangalore. There’s quite a buzz around ReactJS. However, Ember was on my list since long and their roadmap is pretty concrete in terms of guideline, improvements, release cycle etc. I’ve done production apps on Backbone and AngularJS as well where latter seems to be very flaky in their future roadmap and former is way too basic in its offering respectively. Also, Our team had few months of experience in AngularJS and we already did some of the ground work for kick starting the project. But, finally after some convincing we took a decision to go with Ember rather than sticking around with AngularJS.
While starting up with Ember there are bunch of resources on the internet which gets you started with the framework but most of them share only half-truth and can be really painful in learning phase. Ember has a steep learning curve which can drive you crazy while building your real world web application. I would suggest, better grab Ember-CLI 101 ebook and RTFM. These two resource definitely turned out to be great companion while getting my head around the framework.
I’m glad we chose Ember. Our team is having a good time so far.
Ember is a solid and robust for building web applications. Moreover, if you’re a Ruby and Rails fan like me then you will completely fall in love again with frontend development while using the framework. It has all the goodness of both with some extra sugar which takes the whole web application development at another level of fun and it does get better with every release. Thanks to the amazing team behind it and the awesome community, IMO Ember is changing the way web applications are built.
One of the mistake I’ve seen new devs in Ember make is they still think in “previously used framework” or “Plain JavaScript” way. This should not be the case while writing in Ember. Ember solves the problem is its own way. Unless you embrace “think in Ember” philosophy you won’t be able to reach the zen of it.
Good luck. Ping me on @BilalBudhani if you’ve any questions for me.
P.S: I wrote a small plugin on Ember-CLI for oh-my-zsh here.
EDIT: If you're interested in learning EmberJS or want to get a brief overview about the framework then, I would strongly suggest Ember 101 EBook by Adolfo Builes. I've personally started with this one and it was really helpful.


Keyword
Title
Author
Subject
Numbers
Reserves
Databases
Alphabetical list of database titles
A
|
B
|
C
|
D
|
E
|
F
|
G
|
H
|
I
|
J
|
K
|
L
|
M
|
N
|
O
|
P
| Q |
R
|
S
|
T
|
U
|
V
|
W
| X |
Y
| Z |
Search databases by subject
Arts and Humanities
Architecture
Art
Literature and Language
Music
Philosophy
Religion
Business
Business and Economics
Communication
Company & Industry
Education
Education
Classroom Databases
General/Multidisciplinary
General
Reference Resources
Career Information
Health and Medicine
Health Sciences and Medicine
Physical Therapy
History
History
History European
History Reference
History United States
Science and Engineering
Biology
Chemistry
Computer Science
Engineering
Geology
Health and Sport Science
Mathematics
Physics
Science and Technology
Social Science
Anthropology
Criminal Justice
Ethnic Studies
Political Science
Psychology
Sociology
Womens and Gender Studies
Library Science
Browse Database types
Biography
Book Reviews
Conference Proceedings
Government Documents
Legislative
Movie Reviews
Newspapers
Primary Sources
Search databases by name
Type the name of the database you want, then click
Submit Button
.
Your Library Info
Ask A Librarian
InterLibrary Loan
New Books List
Leisure Reading
Roesch Library
Marian Library
CMC Library
Zimmerman Law Library
OhioLINK
WorldCat
Libraries
|
Help