ACETIC ACID- acetic acid solution
Rebel Distributors Corp
Acetic Acid Otic Solution, USP is a solution of acetic acid (2%), in a propylene glycol vehicle containing propylene glycol diacetate (3%), benzethonium chloride (0.02%), and sodium acetate (0.015%). The empirical formula for acetic acid is CH3COOH, with a molecular weight of 60.05. The structural formula is:
Acetic Acid is available as a nonaqueous otic solution buffered at pH 3 for use in the external ear canal.
Acetic acid is antibacterial and antifungal; propylene glycol is hydrophilic and provides a low surface tension; benzethonium chloride is a surface active agent that promotes contact of the solution with tissues.
For the treatment of superficial infections of the external auditory canal caused by organisms susceptible to the action of the antimicrobial.
Hypersensitivity to Acetic Acid or any of the ingredients. Perforated tympanic membrane is considered a contraindication to the use of any medication in the external ear canal.
Transient stinging or burning may be noted occasionally when the solution is first instilled into the acutely inflamed ear.
Safety and effectiveness in pediatric patients below the age of 3 years have not been established.
Stinging or burning may be noted occasionally; local irritation has occurred very rarely.
Carefully remove all cerumen and debris to allow Acetic Acid to contact infected surfaces directly. To promote continuous contact, insert a wick of cotton saturated with Acetic Acid into the ear canal; the wick may also be saturated after insertion. Instruct the patient to keep the wick in for at least 24 hours and to keep it moist by adding 3 to 5 drops of Acetic Acid every 4 to 6 hours. The wick may be removed after 24 hours but the patient should continue to instill 5 drops of Acetic Acid 3 or 4 times daily thereafter, for as long as indicated. In pediatric patients, 3 to 4 drops may be sufficient due to the smaller capacity of the ear canal.
Acetic Acid Otic Solution, USP containing 2% acetic acid, is available in 15 mL (NDC 21695-222-15) measured-drop, safety-tip plastic bottles.
|
ACETIC ACID
acetic acid solution | ||||||||||||||||||||
| ||||||||||||||||||||
| ||||||||||||||||||||
| ||||||||||||||||||||
| ||||||||||||||||||||
|
| Labeler - Rebel Distributors Corp (118802834) |
| Establishment | |||
| Name | Address | ID/FEI | Business Operations |
|---|---|---|---|
| Rebel Distributors Corp | 118802834 | RELABEL, REPACK |


Creates an instance of a unittest.TestCase class with the method that contains assertEqual. Modify the method to implement some assertion logic.
unittest.TestCase
assertEqual


[gecode-users] Grey subtrees in Gist
Tommaso Urli
tommaso.urli at uniud.it
Wed Jan 15 11:57:45 CET 2014
> Your brancher has a bug ;-)
Guessed that! :P
> It claims to have a certain number of
> alternatives (as defined by the alternatives() member function of the
> brancher's choice object class) but later alternatives are tried (via the
> commit() function) during search which have a number larger than what
> alternatives() reports.
Ok, that provides an interesting insight. Thanks for the help.
Tommaso
More information about the users
mailing list


[%# vim:ft=html %] [% INCLUDE _page_header.tt %]
| Pogo ID | [% jobid %] |
| User | [% jobinfo.user %] |
| Command | [% jobinfo.command %] |
| Invoked As | [% jobinfo.invoked_as %] |
| Request Host | [% jobinfo.requesthost %] |
| Retry | [% jobinfo.retry %] |
| Job Timeout | [% jobinfo.job_timeout %] |
| Start Time | |
| End Time | |
| Job State | |


Action Mailer Basics
This guide should provide you with all you need to get started in sending and receiving emails from/to your application, and many internals of the ActionMailer class. It will also cover how to test your mailers.
1. Introduction
Action Mailer allows you to send email from your application using a mailer model and views. Yes, that is correct, in Rails, emails are used by creating models that inherit from ActionMailer::Base. They live alongside other models in /app/models BUT they have views just like controllers that appear alongside other views in app/views.
2. Sending Emails
Let’s say you want to send a welcome email to a user after they signup. Here is how you would go about this:
2.1. Walkthrough to generating a Mailer
2.1.1. Create the mailer:
./script/generate mailer UserMailer exists app/models/ create app/views/user_mailer exists test/unit/ create test/fixtures/user_mailer create app/models/user_mailer.rb create test/unit/user_mailer_test.rb
So we got the model, the fixtures, and the tests all created for us
2.1.2. Edit the model:
If you look at app/models/user_mailer.rb, you will see:
class UserMailer < ActionMailer::Base end
Lets add a method called welcome_email, that will send an email to the user’s registered email address:
class UserMailer < ActionMailer::Base def welcome_email(user) recipients user.email from "My Awesome Site<EMAIL_ADDRESS>subject "Welcome to My Awesome Site" sent_on Time.now body {:user => user, :url => "http://example.com/login"} content_type "text/html" end end
So what do we have here?
recipients |
who the recipients are, put in an array for multiple, ie, @recipients =<EMAIL_ADDRESS><EMAIL_ADDRESS>|
from |
Who the email will appear to come from in the recipients' mailbox |
subject |
The subject of the email |
sent_on |
Timestamp for the email |
content_type |
The content type, by default is text/plain |
How about @body[:user]? Well anything you put in the @body hash will appear in the mailer view (more about mailer views below) as an instance variable ready for you to use, ie, in our example the mailer view will have a @user instance variable available for its consumption.
2.1.3. Create the mailer view
The file can look like:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   <meta content='text/html; charset=iso-8859-1' http-equiv='Content-Type' />
Welcome to example.com, <%= @user.first_name %>

 You have successfully signed up to example.com, and your username is: <%= @user.login %>.
 To login to the site, just follow this link: <%= @url %>.

Thanks for joining and have a great day!

2.1.4. Wire it up so that the system sends the email when a user signs up
There are 3 ways to achieve this. One is to send the email from the controller that sends the email, another is to put it in a before_create block in the user model, and the last one is to use an observer on the user model. Whether you use the second or third methods is up to you, but staying away from the first is recommended. Not because it’s wrong, but because it keeps your controller clean, and keeps all logic related to the user model within the user model. This way, whichever way a user is created (from a web form, or from an API call, for example), we are guaranteed that the email will be sent.
Let’s see how we would go about wiring it up using an observer:
In config/environment.rb:
# Code that already exists Rails::Initializer.run do |config| # Code that already exists config.active_record.observers = :user_observer end
There was a bit of a debate on where to put observers. Some people put them in app/models, but a cleaner method may be to create an app/observers folder to store all observers, and add that to your load path. Open config/environment.rb and make it look like:
# Code that already exists Rails::Initializer.run do |config| # Code that already exists config.load_paths += %W(#{RAILS_ROOT}/app/observers) config.active_record.observers = :user_observer end
ALMOST THERE :) Now all we need is that danged observer, and we’re done: Create a file called user_observer in app/models or app/observers depending on where you stored it, and make it look like:
class UserObserver < ActiveRecord::Observer def after_create(user) UserMailer.deliver_welcome_email(user) end end
Notice how we call deliver_welcome_email? Where is that method? Well if you remember, we created a method called welcome_email in UserMailer, right? Well, as part of the "magic" of rails, we deliver the email identified by welcome_email by calling deliver_welcome_email. The next section will go through this in more detail.
That’s it! Now whenever your users signup, they will be greeted with a nice welcome email.
2.2. Action Mailer and dynamic deliver_ methods
So how does Action Mailer understand this deliver_welcome_email call? If you read the documentation (http://api.rubyonrails.org/files/vendor/rails/actionmailer/README.html), you will find this in the "Sending Emails" section:
You never instantiate your mailer class. Rather, your delivery instance methods are automatically wrapped in class methods that start with the word deliver_ followed by the name of the mailer method that you would like to deliver. The signup_notification method defined above is delivered by invoking Notifier.deliver_signup_notification.
So, how exactly does this work?
In ActionMailer:Base, you will find this:
def method_missing(method_symbol, *parameters)#:nodoc: case method_symbol.id2name when /^create_([_a-z]\w*)/ then new($1, *parameters).mail when /^deliver_([_a-z]\w*)/ then new($1, *parameters).deliver! when "new" then nil else super end end
Ah, this makes things so much clearer :) so if the method name starts with deliver_ followed by any combination of lowercase letters or underscore, method missing calls new on your mailer class (UserMailer in our example above), sending the combination of lower case letters or underscore, along with the parameter. The resulting object is then sent the deliver! method, which well... delivers it.
2.3. Complete List of ActionMailer user-settable attributes
bcc |
Specify the BCC addresses for the message |
body |
Define the body of the message. This is either a Hash (in which case it specifies the variables to pass to the template when it is rendered), or a string, in which case it specifies the actual text of the message. |
cc |
Specify the CC addresses for the message. |
charset |
Specify the charset to use for the message. This defaults to the default_charset specified for ActionMailer::Base. |
content_type |
Specify the content type for the message. This defaults to <text/plain in most cases, but can be automatically set in some situations. |
from |
Specify the from address for the message. |
reply_to |
Specify the address (if different than the "from" address) to direct replies to this message. |
headers |
Specify additional headers to be added to the message. |
implicit_parts_order |
Specify the order in which parts should be sorted, based on content-type. This defaults to the value for the default_implicit_parts_order. |
mime_version |
Defaults to "1.0", but may be explicitly given if needed. |
recipient |
The recipient addresses for the message, either as a string (for a single address) or an array (for multiple addresses). |
sent_on |
The date on which the message was sent. If not set (the default), the header will be set by the delivery agent. |
subject |
Specify the subject of the message. |
template |
Specify the template name to use for current message. This is the "base" template name, without the extension or directory, and may be used to have multiple mailer methods share the same template. |
2.4. Mailer Views
Mailer views are located in /app/views/name_of_mailer_class. The specific mailer view is known to the class because it’s name is the same as the mailer method. So for example, in our example from above, our mailer view for the welcome_email method will be in /app/views/user_mailer/welcome_email.html.erb for the html version and welcome_email.txt.erb for the plain text version.
To change the default mailer view for your action you do something like:
class UserMailer < ActionMailer::Base def welcome_email(user) recipients user.email from "My Awesome Site<EMAIL_ADDRESS>subject "Welcome to My Awesome Site" sent_on Time.now body {:user => user, :url => "http://example.com/login"} content_type "text/html" # change the default from welcome_email.[html, txt].erb template "some_other_template" # this will be in app/views/user_mailer/some_other_template.[html, txt].erb end end
2.5. Action Mailer Layouts
Just like controller views, you can also have mailer layouts. The layout name needs to end in _mailer to be automatically recognized by your mailer as a layout. So in our UserMailer example, we need to call our layout user_mailer.[html,txt].erb. In order to use a different file just use:
class UserMailer < ActionMailer::Base layout 'awesome' # will use awesome.html.erb as the layout end
Just like with controller views, use yield to render the view inside the layout.
2.6. Generating URL’s in Action Mailer views
URLs can be generated in mailer views using url_for or named routes. Unlike controllers from Action Pack, the mailer instance doesn’t have any context about the incoming request, so you’ll need to provide all of the details needed to generate a URL.
When using url_for you’ll need to provide the :host, :controller, and :action:
<%= url_for(:host => "example.com", :controller => "welcome", :action => "greeting") %>
When using named routes you only need to supply the :host:
<%= users_url(:host => "example.com") %>
You will want to avoid using the name_of_route_path form of named routes because it doesn’t make sense to generate relative URLs in email messages. The reason that it doesn’t make sense is because the email is opened on a mail client outside of your environment. Since the email is not being served by your server, a URL like "/users/show/1", will have no context. In order for the email client to properly link to a URL on your server it needs something like "http://yourserver.com/users/show/1".
It is also possible to set a default host that will be used in all mailers by setting the :host option in the ActionMailer::Base.default_url_options hash as follows:
ActionMailer::Base.default_url_options[:host] = "example.com"
This can also be set as a configuration option in config/environment.rb:
config.action_mailer.default_url_options = { :host => "example.com" }
If you do decide to set a default :host for your mailers you will want to use the :only_path => false option when using url_for. This will ensure that absolute URLs are generated because the url_for view helper will, by default, generate relative URLs when a :host option isn’t explicitly provided.
2.7. Sending multipart emails
Action Mailer will automatically send multipart emails if you have different templates for the same action. So, for our UserMailer example, if you have welcome_email.txt.erb and welcome_email.html.erb in app/views/user_mailer, Action Mailer will automatically send a multipart email with the html and text versions setup as different parts.
To explicitly specify multipart messages, you can do something like:
class UserMailer < ActionMailer::Base def welcome_email(user) recipients user.email_address subject "New account information" from<EMAIL_ADDRESS>content_type "multipart/alternative" part :content_type => "text/html", :body => "
html content, can also be the name of an action that you call
" part "text/plain" do |p| p.body = "text content, can also be the name of an action that you call" end end end
2.8. Sending emails with attachments
Attachments can be added by using the attachment method:
class UserMailer < ActionMailer::Base def welcome_email(user) recipients user.email_address subject "New account information" from<EMAIL_ADDRESS>content_type "multipart/alternative" attachment :content_type => "image/jpeg", :body => File.read("an-image.jpg") attachment "application/pdf" do |a| a.body = generate_your_pdf_here() end end end
3. Receiving Emails
Receiving and parsing emails with Action Mailer can be a rather complex endeavour. Before your email reaches your Rails app, you would have had to configure your system to somehow forward emails to your app, which needs to be listening for that. So, to receive emails in your Rails app you’ll need:
-
Configure your email server to forward emails from the address(es) you would like your app to receive to /path/to/app/script/runner 'UserMailer.receive(STDIN.read)'
-
Implement a receive method in your mailer
Once a method called receive is defined in any mailer, Action Mailer will parse the raw incoming email into an email object, decode it, instantiate a new mailer, and pass the email object to the mailer object‘s receive method. Here’s an example:
class UserMailer < ActionMailer::Base def receive(email) page = Page.find_by_address(email.to.first) page.emails.create( :subject => email.subject, :body => email.body ) if email.has_attachments? for attachment in email.attachments page.attachments.create({ :file => attachment, :description => email.subject }) end end end end
4. Using Action Mailer Helpers
Action Mailer classes have 4 helper methods available to them:
add_template_helper(helper_module) |
Makes all the (instance) methods in the helper module available to templates rendered through this controller. |
helper(*args, &block) |
Declare a helper: helper :foo requires foo_helper and includes FooHelper in the template class. helper FooHelper includes FooHelper in the template class. evaluates the block in the template class, adding method foo. helper(:three, BlindHelper) { def mice() mice end } does all three. |
helper_method |
Declare a controller method as a helper. For example, helper_method :link_to def link_to(name, options) ... end makes the link_to controller method available in the view. |
helper_attr |
Declare a controller attribute as a helper. For example, helper_attr :name attr_accessor :name makes the name and name= controller methods available in the view. The is a convenience wrapper for helper_method. |
5. Action Mailer Configuration
The following configuration options are best made in one of the environment files (environment.rb, production.rb, etc...)
template_root |
Determines the base from which template references will be made. |
||||||||||||
logger |
the logger is used for generating information on the mailing run if available. Can be set to nil for no logging. Compatible with both Ruby’s own Logger and Log4r loggers. |
||||||||||||
smtp_settings |
Allows detailed configuration for :smtp delivery method:
|
||||||||||||
sendmail_settings |
Allows you to override options for the :sendmail delivery method.
|
||||||||||||
raise_delivery_errors |
Whether or not errors should be raised if the email fails to be delivered. |
||||||||||||
delivery_method |
Defines a delivery method. Possible values are :smtp (default), :sendmail, and :test. |
||||||||||||
perform_deliveries |
Determines whether deliver_* methods are actually carried out. By default they are, but this can be turned off to help functional testing. |
||||||||||||
deliveries |
Keeps an array of all the emails sent out through the Action Mailer with delivery_method :test. Most useful for unit and functional testing. |
||||||||||||
default_charset |
The default charset used for the body and to encode the subject. Defaults to UTF-8. You can also pick a different charset from inside a method with charset. |
||||||||||||
default_content_type |
The default content type used for the main part of the message. Defaults to "text/plain". You can also pick a different content type from inside a method with content_type. |
||||||||||||
default_mime_version |
The default mime version used for the message. Defaults to 1.0. You can also pick a different value from inside a method with mime_version. |
||||||||||||
default_implicit_parts_order |
When a message is built implicitly (i.e. multiple parts are assembled from templates which specify the content type in their filenames) this variable controls how the parts are ordered. Defaults to ["text/html", "text/enriched", "text/plain"]. Items that appear first in the array have higher priority in the mail client and appear last in the mime encoded message. You can also pick a different order from inside a method with implicit_parts_order. |
5.1. Example Action Mailer Configuration
An example would be:
ActionMailer::Base.delivery_method = :sendmail ActionMailer::Base.sendmail_settings = { :location => '/usr/sbin/sendmail', :arguments => '-i -t' } ActionMailer::Base.perform_deliveries = true ActionMailer::Base.raise_delivery_errors = true ActionMailer::Base.default_charset = "iso-8859-1"
5.2. Action Mailer Configuration for GMail
Instructions copied from http://http://www.fromjavatoruby.com/2008/11/actionmailer-with-gmail-must-issue.html
First you must install the action_mailer_tls plugin from http://code.openrain.com/rails/action_mailer_tls/, then all you have to do is configure action mailer.
ActionMailer::Base.smtp_settings = { :address => "smtp.gmail.com", :port => 587, :domain => "domain.com", :user_name =><EMAIL_ADDRESS>:password => "password", :authentication => :plain }
5.3. Configure Action Mailer to recognize HAML templates
In environment.rb, add the following line:
ActionMailer::Base.register_template_extension('haml')
6. Mailer Testing
Testing mailers involves 2 things. One is that the mail was queued and the other that the body contains what we expect it to contain. With that in mind, we could test our example mailer from above like so:
class UserMailerTest < ActionMailer::TestCase tests UserMailer def test_welcome_email user = users(:some_user_in_your_fixtures) # Send the email, then test that it got queued email = UserMailer.deliver_welcome_email(user) assert !ActionMailer::Base.deliveries.empty? # Test the body of the sent email contains what we expect it to assert_equal<EMAIL_ADDRESS>email.to assert_equal "Welcome to My Awesome Site", email.subject assert email.body =~ /Welcome to example.com, #{user.first_name}/ end end
What have we done? Well, we sent the email and stored the returned object in the email variable. We then ensured that it was sent (the first assert), then, in the second batch of assertion, we ensure that the email does indeed contain the values that we expect.
7. Epilogue
This guide presented how to create a mailer and how to test it. In reality, you may find that writing your tests before you actually write your code to be a rewarding experience. It may take some time to get used to TDD (Test Driven Development), but coding this way achieves two major benefits. Firstly, you know that the code does indeed work, because the tests fail (because there’s no code), then they pass, because the code that satisfies the tests was written. Secondly, when you start with the tests, you don’t have to make time AFTER you write the code, to write the tests, then never get around to it. The tests are already there and testing has now become part of your coding regimen.


French Onion Soup
Yields: 2-3
Preparation time: 20 minutes
Cooking time: 6 hours
Ingredients
-
4 onions1/4 cup olive oil6 cups vegetable stokgood breadblock of gruyere
Directions
-
Chop onions and try not to cry.Add olive oil to instapot or slow cooker. If using slower cooker, add onions and stir over the next 6 hours on low.If using instapot, set on saute:low for 30 minutes. Add onions and stir frequently. Turn to keep warm and cover for 5.5 hours.Add soup stock.Slice your bread into 3 large slices. Rub a small amount of olive oil on either side of the bread and turn oven on to broil.Toast on one side of the bread. Flip the bread over and cover with cheese. Broil until cheese it’s crisp. Slice in half.Ladel out broth into bowls. Add grated gruyere and then toasted cheesy bread.
Category: Dinner
Cuisine: French
inspired by Madeline E. Gorchels


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 10
Dietary
These delicious little biscuits can be used as cocktail snacks with a drink or as a biscuit with soup or cheese. Free from: wheat, gluten, soya and nuts; can be dairy and egg free
Pre-heat the oven to 180C/350F/Gas 4.
Rub the butter or margarine into the gluten-free flour, or the gram and rice flour, and add the xanthan gum. Mix to a soft dough with 2-3 tablespoons of water.
Roll out to ½cm thickness then brush with the beaten egg or the extra melted butter or spread.
Sprinkle the squares either with a little salt and the seeds of your choice, or with the parmesan and the seeds of your choice.
Cut into small square or diamond shapes about 3cm/1in across.
Bake for 10-15 minutes until the biscuits are lightly browned, taking care that they don't burn.
Cool on a rack before serving.


Two lecturers abducted in Kaduna escape from kidnappers den
by The Eagle OnlineTwo lecturers, Adamu Chonoko of Ahmadu Bello University Zaria and Umar Chonoko of Kaduna Polytechnic, abducted 10 days ago in Kaduna, have escaped from their kidnappers den.
Spokesperson of Kebbi Indigenes Resident in Kaduna and Garkuwan Wakilin Sarkin Zurun Kaduna, Garba Muhammad, confirmed the development to the News Agency of Nigeria on Sunday.
Garba said: “The two siblings and indigenes of Kebbi State have escaped from their kidnappers and arrived the palace of Wakilin Sarkin Zurun Kaduna and were received by the Wakili around 11:51am today (Sunday).
“We thank Allah for their escape.”
According to him, Umar Chonoko went to deliver the N2 million and a motorcycle ransom to secure the release of his brother, Adamu, but was also held by the kidnappers who demanded for additional N5 million ransom.
Garba said: “N3 million was delivered, making a total of N5 million, but the abductors made another demand of N10 million.
“Their demand could not be met.
“Just this morning, with the assistance of security agents, both of them escaped.
“We thank the media, security agencies and all those who helped us in praying for their freedom.”
The Kaduna State Police Command Public Relations Officer, DSP Yakubu Sabo, also confirmed the story.
He said the Command received the information on the escape of the lecturers from their family.
Sabo said the Commissioner of Police, Ali Janga, while rejoicing with the families and friends of the victims, assured members of the public that the perpetrators would be apprehended and brought to justice.
He said: “The Police will not relent in the ongoing investigation to track down the perpetrators of this and other similar criminal incidents with a view to arresting and prosecuting them in accordance with the laws of the land.”
He enjoined the people of Kaduna State to continue to support the Command in the current battle against criminality in the state.
Previous Post
Police confirm release of abducted Catholic priest
Next Post
Army to conduct Exercise Crocodile Smile IV in Lagos, Ogun


The Hourglass
I gazed with rapt attention at
the object borne to me alas
by fortuity or fate...
Boundless bourns,
wherein constraints
of time did not pertain,
becalmed all force of will within
enchantments cast unknown therein
by lands in sandy waves.
The souls of all who passed before
the turning of this place of yore
from fertileness to waste,
whispered ever nigh across,
and through the weathered hulks of lost
kingdoms in their wake.
One last fortress remained therein
to guard this realm, beset within
by the strifes of ancient folk;
One last bastion yet unchecked
by the turning tides of fate to rest
in lonesome solitude.
The storms that swept across these lands
in days of old, where bells foretold
of prophecies to come and pass,
filled the depths of leafless gutters
and empty streets with arid sands.
Within the age portending such,
where heedless hearts began to clutch
the tempests yet unwoven,
dwelt miracles in gilded halls...
Dreams in waking, never failing
to leave their charges thus enthralled.
These raptures however, in the turning,
could not stand the ever swirling
mists of time, and fearing such,
fled to armored keeps instead;
to be forgotten, one by one,
till all had been undone.
Only the whispering sands can now be heard,
whenever stirred
by the restless wind's caress;
As only the rumble of ancient works
can still be felt, disconcerting from nighted halls,
where great machines run on and on
far beneath the earth.
Could I divine the ages hence,
and beholding fate, determine whence
that time may come again,
I would comply for peace of mind...
Though galaxies may rise and fall
and twilight may descend.
Bryan Garaventa (2003)


Forms
Examples and usage guidelines for form control styles, layout options, and custom components for creating a wide variety of forms.
Overview
Bootstrap’s form controls expand on our Rebooted form styles with classes. Use these classes to opt into their customized displays for a more consistent rendering across browsers and devices.
Be sure to use an appropriate type attribute on all inputs (e.g., email for email address or number for numerical information) to take advantage of newer input controls like email verification, number selection, and more.
Here’s a quick example to demonstrate Bootstrap’s form styles. Keep reading for documentation on required classes, form layout, and more.
Sizing
Set heights using classes like .form-control-lg
and .form-control-sm
.
Readonly
Add the readonly
boolean attribute on an input to prevent modification of the input’s value. Read-only inputs appear lighter (just like disabled inputs), but retain the standard cursor.
Input groups
Easily extend form controls by adding text, buttons, or button groups on either side of textual inputs, custom selects, and custom file inputs.
Validation
Provide valuable, actionable feedback to your users with HTML5 form validation–available in all our supported browsers. Choose from the browser default validation feedback, or implement custom messages with our built-in classes and starter JavaScript.
We highly recommend custom validation styles as native browser defaults are not announced to screen readers.
Custom controls
For even more customization and cross browser consistency, use our completely custom form elements to replace the browser defaults. They’re built on top of semantic and accessible markup, so they’re solid replacements for any default form control.
Collapsible sections
Break big forms into collapsible sections with form-collapsible-section
component.
Nostra fermentum tellus fringilla hendrerit dictumst placerat amet, himenaeos enim etiam maecenas primis dis, porttitor class molestie consequat habitant ridiculus.
Nostra fermentum tellus fringilla hendrerit dictumst placerat amet, himenaeos enim etiam maecenas primis dis, porttitor class molestie consequat habitant ridiculus.


You have 10 questions.For each you have 10 seconds.
If you give correct answer you will get 2 marks and if you give incorrect answer you will loss one marks.
Start


{% extends "base.html" %} {% block content %}
Come to Draw !
Select Group Type
group name
General
Expensive
Cheap
Taste
ALL
{% endblock content %}


Mourinho an 'angry man who will ram words down critics' throats,' says Souness
Jose Mourinho’s anger and frustration at criticism will lead him to be a success as Tottenham manager, believes Graeme Souness.
Mourinho’s appointment as Spurs boss on Wednesday morning was met with mixed reactions from Tottenham fans and the wider football world.
The 56-year-old has been out of management since leaving Manchester United in December last year and came under fire for his spell at Old Trafford, despite winning the Europa League, EFL Cup and finishing second in the Premier League during his two-and-a-half years in charge.
The Portuguese was sacked with United sixth in the table, having been criticised for a negative style of play and getting little return from nearly £400m spent on 11 players.
However, since winning the Portuguese title and UEFA Cup with Porto in 2003, Mourinho has gone on to win trophies with Chelsea, Inter Milan, Real Madrid and Manchester United.
Advertisement Advertisement
It is this consistent success, along with the drive to prove his critics wrong, that will make him a hit at Spurs, believes Souness.
‘He is a guy that has won trophies wherever he has been. I would expect him to do the same at Spurs,’ said the former Liverpool manager.
‘Spurs have won three trophies in 28 years. For a big club that’s just not good enough.
‘Spurs are genuinely a big football club and they need someone that can turn what is perceived to be attacking, attractive football into maybe a slightly more pragmatic approach that will put some silverware in the boardroom, and I think he is the perfect fit for them.
‘He is an angry man, deep inside. He’s a frustrated man, the way it turned out at United. I think Spurs will reap the benefit of that.
‘He knew he was going to go back and he was just waiting for the right one. He loves the English game.
‘I think Spurs are getting the right man at the right time. He feels he has a point to prove to people who doubted him or were critical of him. He will want to ram those words down his critics’ throats.’
Tottenham’s three trophies in 28 years are the 1991 FA Cup and League Cup wins in 1999 and 2008.
They have not won a league title since 1961 or a European competition since the UEFA Cup triumph in 1984.
Advertisement Advertisement


Single Figure Widget
25
%
SINCE Q3
Elevator Figure Widget
25
%
SINCE Q3
Elevator Figure Widget
25
%
SINCE Q3
Elevator Figure Widget
25
%
SINCE Q3
Elevator Figure Widget
25
%
SINCE Q3


.red
{
background-color: #f44336;
}
Button
Colored Button
Custom Ripple Color
Outline Button
Colored Button
Colored Button
Custom Ripple Color
Flat Button
Colored Button
Custom Ripple Color
This is a Dialog.
First Tab
Second tab content.
Third tab contensdst.
Watches


the and captive gut wild bacterial for that were with etal. are from host diversity diet captivity {background Table abundance mammal relative bacteria changes species Supplementary mammals between state this using was associated margin significantly taxa differences not {border-style across mammalian versus each px;} #ffffff;} The all also have reduced samples significant community microbiome [], both had these within communities dataset observed primates (P = .), (e.g., captivity. microbiota type which For captivity, genera increased indicate may their S). Zoo microbial traits Prevotella collection data different family few including many beta-diversity important more patterns per range some studies ungulates (Fig. change decreased did genus higher microbes most our px; sample study trait used {font-family Equus KnightR, This alpha animal animals compared effect examine fermentation font-size health however, into one other performed primate sampled sequencing shifts site taxonomic terms type, variable whether (P = .). (Table DNA Fig. Lemur OTUs Van Zoo, abundant analyses analysis average body can composition decrease demonstrated differed double; even-toed genus, groups human individuals influence large level likely package pattern several those (see African Black Cercopithecus Host However, Mantel Monkey Permanova Sci South These Thus, Wild Within border-color border-width but captive/wild collected consistent diets effects either fecal future how included microbiome. only provided relatively represent represented solid; species, study, such symbiotic taxonomy than two variables zoo {font-style {font-weight (France), (R = ., (University Alouatta Ateles Bacterial Bacteroidales Colobus Comparative Dearing Diet Differences Eulemur Foundation France), Howler Muegge OTU Open Our Proc Results Science:–. University aardvarks, address alpha-diversity among animals. anteaters, any bacteria. bars been beta bold compare comparing comparison condition contact continuous could courier; difference em; environment examined explain facilities, factors families fermenter found grant high hosts increase known mass members microbiomes overall phylum previous provides pt;} related respectively. rhinoceros rumen same see shift showed state, state. test trends values variation well wild. would


The mission of the UCR Stem Cell Center is to advance the stem cell field by fostering basic and translational research and engaging in education and outreach.
Research at the Center focuses on understanding the basic mechanisms that control stem cell function and deciphering how the tremendous potential of stem cells can be used to improve human health.
Researchers at the Center have expertise in many different fields including developmental biology, cancer biology, endocrinology, aging, nanotechnology, neuroscience and bioengineering.
The Center trains the next generation of stem cell scientists and prepares them to be leaders in the health sciences.
The Center provides community outreach to organizations in Southern California interested in learning more about stem cell biology.
Stem cells are fast becoming relevant to all aspects of our society, with medical, scientific, ethical, political, and economic implications. Therefore it is important that scientists and non-scientists alike be provided with accurate information about stem cell biology. The goals of the UCR Stem Cell Center is to provide the members of the community with a better understanding of the science of stem cells so that they have the necessary tools to make reasoned decisions about the related society issues.
The UCR Stem Cell Center has a Speakers Bureau with experts who can explain the scientific aspects of stem cell biology to a wide variety of audiences.
The UCR Stem Cell Center hosts a series of events open to the community that are designed to educate people about stem cell biology.
Education:
UCR has a strong history in training undergraduate and graduate students and is developing a complete training program in stem cell biology.
The Stem Cell Center sponsors a seminar series with invited speakers from around the country.
We offer workshops in Stem Cell Biology.
We draw students from a number of different graduate programs in Engineering, Chemistry, Biomedical Sciences, and the Life Sciences.
Our training program is contributing to the production of the next generation of stem cell researchers.
Translational Research:
Stem cell biology is currently one of the most exciting fields in science with the potential not only to answer basic biological questions but also to provide new therapies and treatments for debilitating diseases. Some of the most important biomedical breakthroughs of this century are likely to come through the use of stem cell technology.
Some diseases have already been treated with stem cell therapy. For example, bone marrow, peripheral blood and umbilical cord stem cell transplants are used to treat leukemia, other cancers, and blood disorders.
Diseases that could in the future be treated by stem cell biology include (but are not limited to) diabetes, Parkinson’s disease, spinal cord injury, Alzheimer’s disease, aging, heart disease, stroke, burns, amputations, and osteoarthritis.
Stem cell biology will form an important component in both the UCR Health Sciences Research Institute and future Medical School, which will work to facilitate translational research.
Web link to UCR Health Sciences Research Initiative: http://www.hsri.ucr.edu/
Web link to Medical School: http://www.medschool.ucr.edu/
Basic Research:
Basic research is needed to understand, control, and use stem cells safely and effectively for therapeutic and environmental purposes.
The UCR Stem Cell Center is making major contributions to stem cell biology by attacking basic biological problems at an interdisciplinary level, enabling translation to the clinical level, and by using stem cells to monitor the effects of the environment on human health.
The center focuses on understanding the basic biology of stem cells, the maintenance of pluripotency, the mechanisms of differentiation, and the use of stem cells to monitor effects of the environment on human health.
The Center has faculty working with various types of stem cells including human embryonic, mouse embryonic, hematopoietic, and human umbilical cord stem cells.
The Center is interdisciplinary with participants from the College of Natural and Agricultural Sciences, the Division of Biomedical Sciences, the College of Engineering, and the College of Humanities and Social Sciences.
Biotechnology:
Stem cells are valuable tools that have the potential not only to treat numerous diseases, but also to study development and evaluate the toxicity of chemicals and drugs.
The UCR Stem Cell Center is making contributions to the development of technology that will facilitate the use of stem cells in therapeutic applications and environmental monitoring.
The Center faculties are developing better culture media for growth of stem cells, “lab-on-a-chip” devices for monitoring differentiation of stem cells, and methods for controlling the differentiation of stem cells.
The Center has affiliations with biotech industries in the area and welcome additional liaisons.


County by County Breakdown of Positive Cases | Department of Health County by County Breakdown of Positive Cases | Department of Health
County by County Breakdown of Positive Cases County by County Breakdown of Positive Cases
| County | Positive Cases |
|---|---|
| Albany | 43 |
| Allegany | 2 |
| Broome | 2 |
| Chenango | 2 |
| Clinton | 2 |
| Delaware | 1 |
| Dutchess | 31 |
| Erie | 28 |
| Essex | 1 |
| Fulton | 1 |
| Genesee | 1 |
| Greene | 2 |
| Hamilton | 2 |
| Herkimer | 1 |
| Jefferson | 1 |
| Monroe | 27 |
| Montgomery | 2 |
| Nassau | 372 |
| Niagara | 1 |
| New York City | 2,469 |
| Oneida | 2 |
| Onondaga | 5 |
| Ontario | 1 |
| Orange | 51 |
| Putnam | 5 |
| Rensselaer | 6 |
| Rockland | 53 |
| Saratoga | 18 |
| Schenectady | 18 |
| Schoharie | 1 |
| Suffolk | 178 |
| Sullivan | 3 |
| Tioga | 1 |
| Tompkins | 6 |
| Ulster | 10 |
| Warren | 1 |
| Washington | 1 |
| Wayne | 1 |
| Westchester | 798 |
| Wyoming | 2 |
| Total Number of Positive Cases | 4,152 |


Class Boxes
Provides utilities for working with "boxes", i.e. square regions within standard Sudokus.
Inheritance
Inherited Members
Namespace: SudokuSpice
Assembly: SudokuSpice.dll
Syntax
public static class Boxes
Methods
| Improve this Doc View SourceCalculateBoxIndex(Coordinate, Int32)
Calculate the zero-based box-index of the given coordinate, starting at the top-left.
Declaration
public static int CalculateBoxIndex(in Coordinate c, int boxSize)
Parameters
| Type | Name | Description |
|---|---|---|
| Coordinate | c | |
| System.Int32 | boxSize |
Returns
| Type | Description |
|---|---|
| System.Int32 |
GetStartingBoxCoordinate(Int32, Int32)
Returns the top-left coordinate for the given box.
Declaration
public static Coordinate GetStartingBoxCoordinate(int box, int boxSize)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | box | |
| System.Int32 | boxSize |
Returns
| Type | Description |
|---|---|
| Coordinate |
IntSquareRoot(Int32)
Calculates the square root of a number. Only works for integers that have integer square roots.
This is useful for determining the standard box-size for a puzzle (i.e.
toRoot
would be the size of the puzzle, and the result would be the
size of each box.
Declaration
public static int IntSquareRoot(int toRoot)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | toRoot |
Returns
| Type | Description |
|---|---|
| System.Int32 |
Exceptions
| Type | Condition |
|---|---|
| System.ArgumentException | Thrown if |
TryIntSquareRoot(Int32, out Int32)
Calculates the square root of a number. Only works for integers that have integer square roots.
This is useful for determining the standard box-size for a puzzle (i.e.
toRoot
would be the size of the puzzle, and
root
would be the size of each box).
Declaration
public static bool TryIntSquareRoot(int toRoot, out int root)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | toRoot | The number to root. Should be the square of another integer. |
| System.Int32 | root | Out parameter: the square root of |
Returns
| Type | Description |
|---|---|
| System.Boolean | False if |
YieldUnsetCoordsForBox(Int32, Int32, IReadOnlyPuzzle)
Yields an enumerable of coordinates for all the unset squares in the given box.
Declaration
public static IEnumerable<Coordinate> YieldUnsetCoordsForBox(int box, int boxSize, IReadOnlyPuzzle puzzle)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | box | |
| System.Int32 | boxSize | |
| IReadOnlyPuzzle | puzzle |
Returns
| Type | Description |
|---|---|
| System.Collections.Generic.IEnumerable<Coordinate> |


We are wedding planners based in Howrah and together with you we can create authentic weddings in Howrah and Kolkata . We provide expert advise for any aspect of your wedding planning in Howrah & Kolkata : such as dealing with the never ending bureaucratic paperwork, sourcing local trustable suppliers (venues, photographers, flowers…) and also giving you creative ideas with an authentic twist!
Getting married in Kolkata is not complicated, but it could be a hassle if you do not know the local vendors or you are not familiar with the Indian culture. For these reasons we can help you in many ways. So do not hesitate to contact us and tell us your wedding idea – we will give you initial suggestions which will reflect your style as well as your budget.


Therese Morin
Unafffiliated
I am a former small business owner that is currently employed as a Project Cost Manager for The CPI Group out of Greenwood Village.
I hold a Bachelors of Science in Chemical Engineering from the South Dakota School of Mines and Technology.
80602
My daughter attends school with the children of the Mayor of Thornton, Jan Kulmann. I donated $200 to her political campaign.
As a business owner, I was the President of the Colorado Association of Dog Daycares. I have volunteered extensively at my daughter's school (Stargate School in Thornton). I am also the chair person of the Architectural Review Committee for my neighborhood HOA.
None. I'm an independent voter that would like to see less bias, fraud, and vitriol in our political process.
I'm an independent voter that would like to see less bias, fraud, and vitriol in our political process.
Since I am unaffiliated, I have no agenda to attempt to create advantages for either major party. I believe the best way forward for this country is to encourage compromise, which cannot happen when one party or the other holds a majority in every branch of government.
As an engineer I have a logical mind. After owning a business for 16 years, solving problems is definitely not a new pass time for me. I had to deal with employees as well as customers and balance the needs of both. In my current position I manage millions of dollars for our clients and have to provide solutions for any financial issues that arise.
Female


Coconut milk, turmeric, nutmeg, cinnamon - Magic!
A great calming drink found in nytimes. It is working. Tested. Recipe by Matilda Goad.
Ingredients
- ½ a turmeric root, grated and chopped
- ½ teaspoon grated nutmeg
- ½ teaspoon dried cinnamon
- ½ teaspoon cardamom
- 1 cup coconut milk
Steps
- Add one cup of coconut milk to a pouring pan. (Goad likes Labour & Wait’s enamel milk pan.) You have 4 free articles remaining. Subscribe to The Times
-
Peel and then grate one small turmeric root, before chopping slightly and adding to the pan.
-
Grate a little nutmeg, and then add it to the pan together with the cinnamon and cardamom.
-
Keep on a low heat stirring regularly for around five minutes until slightly steaming. Do not boil as the milk will burn.
-
Check for taste and add more spice as required.
- Once ready, use a wooden spoon to strain the turmeric from the liquid as you transfer into a cup. For extra comfort, warm the cup with hot water before pouring the liquid from the pan. Makes one serving.
Posted on January 10, 2018


List of all members.
Public Member Functions |
|
(id) | - initWithDBPath: |
|
(BOOL) | - open: |
|
(void) | - close |
|
(NSString *) | - lastErrorMessage |
|
(NSInteger) | - lastErrorCode |
|
(NSArray *) | - executeQuery: |
|
(NSArray *) | - executeQuery:arguments: |
|
(BOOL) | - executeUpdate: |
|
(BOOL) | - executeUpdate:arguments: |
|
(BOOL) | - commit |
|
(BOOL) | - rollback |
|
(BOOL) | - beginTransaction |
|
(BOOL) | - beginDeferredTransaction |
|
(BOOL) | - tableExists: |
|
(BOOL) | - indexExists: |
Protected Attributes |
|
sqlite3 * | db |
Properties |
|
NSInteger | busyRetryTimeout |
|
NSString * | dbPath |
The documentation for this class was generated from the following file:


"Coin Next" don't keep anything secret from you
- "Bitcoin" and "Ethereum", "Coin Next" only keep address which can't harm your account. Please keep secret key yourself
- "Binance" and "Bittrex" accounts you must provice us api token and api key, but please give us read permission only
Remember set Options: "Read info" only
Remember only tick "Read Info"
Swipe down to refresh
If that coin supported by "Binance" or "Bittrex" it will update price live
If don't price update every 4 minute
Calculator using "Binance" or "Bittrex" BTC price and "Poloniex" USD price
Coin events including: rumor and road map
Using CoinCalendar data
Feel free to using support form


Plug in a Gamepad Left Thumbstick to Move Right Thumbstick to Aim Right Trigger to Shoot Left Trigger on a Turret to Teleport Don't get shot by the turrets. Teleport to Regain Health.


DocOnce with English¶
| Authors: |
|
|---|---|
| Date: | Jul 15, 2016 |
Abstract. This document demonstrates DocOnce with English text [Ref1].
First heading: we’re calculating a bit¶
Today’s first training is \(0+0\). It does not give much training...
Note
Actually, \(1 + 1 = 2\). This result can be used without proof.
Question
What is \(1 - 1\)?
Summary
Addition and subtraction are inverse operations.
Box with title
Here comes English text...
Problem 1: Add two numbers¶
Calculate \(1+2\).
Answer. 3.
Solution. Simply count with fingers: one finger, two fingers, count to three fingers alltogether.
Filename: add
.
References¶
| [Ref1] | J. Doe and K. Loe. Something about things that have to be written in English, http://doconce.test.net. |


APC to challenge Tambuwal’s victory at Supreme Court
by Agency ReportThe All Progressives Congress (APC), in Sokoto State says it would approach the Supreme Court to appeal the judgment of the Court of Appeal which upheld the election of Governor Aminu Tambuwal.
Addressing journalists in Sokoto shortly after the judgment on behalf of the APC Legal Team, Bashir Jodi said that the party has very strong reasons to appeal the judgement.
The Court of Appeal on Friday upheld the election of Mr Tambuwal as duly elected Governor of the state.
The four-man panel led by Justice Hussein Mukhtar in a unanimous judgement upheld Mr Tambuwal’s election after dismissing the Appeal filed by the APC and its governorship candidate for lacking in merit.
Mr Jodi said, “Legally, the battle has just begun and there is no cause for alarm. We have very strong reasons to appeal this judgment to the Supreme Court.
“With the help of the Almighty Allah, we are optimistic that, we will in Sha Allahu succeed at the end,” he said.
READ ALSO: After Appeal Court judgements, PDP asks lawmakers to reach out to opponents
Meanwhile, the APC Leader in the state, Aliyu Wamakko, a senator, while addressing the party supporters in the state said the Counsel of the party will study the judgment and advise appropriately.
“As Muslims, with strong faith in God, we should always be grateful to Him in our struggles to seek redress, as such I urge you all to be peaceful, calm, law abiding and faithful, as well as shun violence,” he said.
Mr Wamakko further lauded the people of the state for their sustained confidence, love and support to the APC.
(NAN)


{include file="index/common/head"/}
{include file="index/common/header" /}
{include file="index/common/footer" /}


It all started when I was back in high school(around 1999). One of my close friends(Quite Experinced Drug User) from downstate was coming up to where I lived with a bunch of his friends. Anyways when he came up he told us about so-called tripping from cough medicine. I was pretty skeptical, cause I figured how could that be legal and weed not. Well anyways we picked up some Coricidin Cough & Cold(No the other Coricidin products don't work because they don't contain DXM.) And from many people I've heard that coridin is way more of a potent trip for the dosage.
Well it was my first time taking it. I took 8 pills my first time(Half a box) and we went to a Lynard Skynard concert. It was about an hour and a half before I felt really and effects. I started to feel a little buzz, like I downed half a beer. I turned to my friend greg and told him this. I was getting hungry so I stood up to go to the concession stand, and 'WHAM!' It's like I punched in the mind by the Coricidin. They were in full effect. I felt really good, everthing seem disoriented but didn't matter cause I was at a cool chillin' concert like Skynard. I made my way to the concession stand purchased a hotdog, and I asked where the ketchup was, the lady pointed down. I walked down to the next booth and couldn't find the ketchup, needless to say I did this a few times before I found the ketchup. I made my way back our friends and we all chilled out on DXM the rest of the night.
Well after that night I couldn't believe how much fun it was. It was only $5 for a box of 16, I could get them even though I was 17, and they lasted like 4 hours, it was a win-win situation. Well it turns out me and my friends turned into DXM junkies, we started doing it 3 to 4 times a week. My friends and I continued this pattern for the whole summer or about three months.
After a while though the drug seem to lose it's pizazze, so we were doing it less. And I started to research the drug, I found out that it can do some bad things like cause leisons on your brain. It was then I decided to stop doing them.  I've moved to just smoking weed now just because weed is a great drug too. The drug is fun to try once and or maybe do occusationally, but don't get hooked like me and my friends did. Another side note: The more I was doing DXM the more I started questioning life, things like why am I here, what is the meaning of life, etc.
As for the 'Buzz' here how it goes:
1. I take drugs
2. 30-45min later, get a sort of nausea feeling.
3. 60-75min nausea is gone feel normal
4. ~90min Buzz is in full effect
5. Whole body numb, disoriented, vision seems like 3rd person perspective, visions also seems to move in frames(no not tracers), you want to be left alone or with the people who are on the drug also, music is really good to listen to espically electronic because of the constant beat and hardly any voices which requires less concentration.
6. Last about 4-6hours depending on dosage(I have never exceeded 16 pills or 480mgs)
hope this helps,
xamox
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


CIFAR10 Dataset wrapper for the torchvision CIFAR10 module, Supports albumentations
as well as the torchvision transforms
Args:
data_dir (:obj:str): the root folder for the dataset
train (bool): either you need the train dataset or the test dataset
transform (Callable): the transforms to perform on the images
target_transform (Callable): the transform to perform on the labels
Args:
data_dir (:obj:str): the root folder to store the downloaded dataset
transform: transforms to apply on the dataset
test_transform: transforms to apply on the test dataset,
default will normalize the dataset


Select a song on the left
Note: A whitenoise watermark has been added to your song previews. The noise-free version will be delivered to people who purchase your song.
Price: ${{ song.price }}
Key: {{ song.musical_key }}
Artist: {{ song.performer_known_as }}
Songwriter: {{ song.song_writer }}
Genre: {{ song.genre }}
Mood: {{ song.mood }}
Tags: {{song.tags}}
Recording Date: {{ getRecordingDate(song) }}
Recording Location: {{ song.recording_location }}
{{song.song_title}} - Currently Processing
Please do not reupload your work unless it's been longer than 24 hours and you still see this message.


Identify the needs to have an automated way to open existing doors.
Jun 14 2016An extremely simple prototype and demo to illustrate the key concept. This is done using a old set of standing fan's engine, a clothing clipper and tons of tapes.
Read more Oct 14 2016Lorem ipsum dolor sit amet, consectetur adipisicing elit. Iusto, optio, dolorum provident rerum.
Read more Feb 18This is the content of the last section
Feb 26


please enter your email id if you would like to receive updates from Breast Health website
E-mail:
Phone Number:


Requested by [[requester]]
[[subTier]]
[[version]]
[[title]]
[[artist]]
[[_convertLength(totalLength)]]
[[bpm]]
[[countCircles]]
[[countSliders]]
Circle Size
[[cs]]
HP Drain
[[drain]]
Accuracy
[[accuracy]]
Approach Rate
[[ar]]
Star Difficulty
[[difficultyRating]]


Spring's standard custom tag library. Supports JSP view implementations for Spring's web MVC framework. See i21.tld for descriptions of the various tags.


{% load static%}
Request Orders
SHOPPING LIST
This PDF was created on : {{date}}
ESTIMATED COST :
$ {{totalprice}}
ORDER ITEMS
Descrption
P#
Unit Price
Quantity
Total
Order Date
{% for item in querysetPending %}
{{item.description}}
{{item.part_number}}
$ {{item.unitPrice}}
{{item.order_quantity}}
$ {{item.total}}
{{item.date|date:"M d, Y" }}
{% endfor%}


instanceof
with patterns and suggests converting them to ordinary instanceof
with casts.
This inspection makes it possible to move instanceof
with patterns to a codebase using an earlier Java version
by applying the quick-fix.
Note that the result can be not completely equivalent to the original instanceof
with patterns when
a complex expression before instanceof
is used. In this case this expression will be reevaluated.
Example:
if (object instanceof String txt && txt.length() == 1) {
System.out.println(txt);
} else {
return;
}
System.out.println(txt);
After the quick-fix is applied:
if (object instanceof String && ((String) object).length() ==1) {
String txt = (String) object;
System.out.println(txt);
} else {
return;
}
String txt = (String) object;
System.out.println(txt);
New in 2023.1


back
Login
Logout
Payment and Address
Shipping Address
First name:
Last name:
Address 1:
Address 2:
City:
State:
Country:
Post Code:
Phone:
Billing Address
First name:
Last name:
Address 1:
Address 2:
City:
State:
Country:
Post Code:
Phone:
Payment
Card Number:
Card Holder Name:
Expiration Date:
1
2
3
4
5
6
7
8
9
10
11
12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Proceed to Review Order


You Wanna Pizza Me?
It's pie time you ordered some 'zza!!
Sizes
Small
10"
$6
Medium
14"
$10
Large
16"
$14
The Pizzilla
32"
$32
Meats
Veggies
Add to order
Check out
Your order
Street Address
City
State
Zip Code
Pick Up
Delivery


This site is dedicated first of all to the many ancestors who's blood still runs through our veins. You have blazed trails for us to follow and we have kept the heritage passed down through the years, we honor this volume. Secondly, to the many Rockman relatives with whom we have had the privilege of sharing life's journey. May this record help keep many special memories alive and many special people connected. Finally to our future descendents, those who will be born into a great family. Hopefully this work provides a sense of foundation, a roadmap from whence you came.
A very special "Thank You" to Jerry Rockman for taking the time and effort to research and develop this history. Without your persistence in collecting the necessary information and pictures, this work would not have been completed. The sacrifice of hours and labor are appreciated more than you know!
{% include "personal_info.html" with family_member=oscar marriage=None descendant=1 %}
{% include "personal_info.html" with family_member=helen marriage=None descendant=None %}


--- layout: post title: "Laniakea up and running" subtitle: "The maintenance ended and the service is up and running" date: 2021-06-03 006:00:00 -0400 background: '/img/posts/all_systems_go.jpg' ---
Dear Users,
the service is back online. Thanks a lot for your patience.
The Laniakea team.


~/llvm$ ./configure --enable-pic --enable-optimized
|
»Home
|
llvm-py User Guidellvm-py provides Python bindings for LLVM. This document explains how you can setup and use it. A working knowledge of Python and a basic idea of LLVM is assumed. IntroductionLLVM (Low-Level Virtual Machine) provides enough infrastructure to use it as the backend for your compiled, or JIT-compiled language. It provides extensive optimization support, and static and dynamic (JIT) backends for many platforms. See the website at http://www.llvm.org/ to discover more. Python bindings for LLVM provides a gentler learning curve for working with the LLVM APIs. It should also be easier to create working prototypes and experimental languages using this medium. Together with clang or llvm-gcc it also a provides a means to quickly instrument C and C++ sources. For e.g., llvm-gcc can be used to generate the LLVM assembly for a given C source file, which can then be loaded and manipulated (adding profiling code to every function, say) using a llvm-py based Python script. License Both LLVM and llvm-py are distributed under (different) permissive open source licenses. llvm-py uses the new BSD license. More information is available here. Platforms llvm-py has been built/tested/reported to work on various GNU/Linux flavours, *BSD, Mac OS X; on i386 and amd64 architectures. Windows is not supported, for a variety of reasons. Versions llvm-py 0.6 requires verion 2.7 of LLVM. It will not work with previous versions. llvm-py has been built and tested with Python 2.6. It should work with Python 2.4 and 2.5. It has not been tried with Python 3.x (patches welcome). Installationllvm-py is distributed as a source tarball. You’ll need to build and install it before it can be used. At least the following will be required for this:
On debian-based systems, the first three can be installed with the command sudo apt-get install gcc g++ python python-dev. Ensure that your distro’s respository has the appropriate version of LLVM! It does not matter which compiler LLVM itself was built with (g++, llvm-g++ or any other); llvm-py can be built with any compiler. It has been tried only with gcc/g++ though. LLVM and --enable-picThe result of an LLVM build is a set of static libraries and object files. The llvm-py contains an extension package that is built into a shared object (_core.so) which links to these static libraries and object files. It is therefore required that the LLVM libraries and object files be built with the -fPIC option (generate position independent code). Be sure to use the --enable-pic option while configuring LLVM (default is no PIC), like this: ~/llvm$ ./configure --enable-pic --enable-optimized llvm-configInorder to build llvm-py, it’s build script needs to know from where it can invoke the llvm helper program, llvm-config. If you’ve installed LLVM, then this will be available in your PATH, and nothing further needs to be done. If you’ve built LLVM yourself, or for any reason llvm-config is not in your PATH, you’ll need to pass the full path of llvm-config to the build script. You’ll need to be root to install llvm-py. Remember that your PATH is different from that of root, so even if llvm-config is in your PATH, it may not be available when you do sudo. StepsThe commands illustrated below assume that the LLVM source is available under /home/mdevan/llvm. If you’ve a previous version of llvm-py installed, it is recommended to remove it first, as described below. If you have llvm-config in your path, you can build and install llvm-py this way: $ tar jxvf llvm-py-0.6.tar.bz2 $ cd llvm-py-0.6 $ python setup.py install --user If you need to tell the build script where llvm-config is, do it this way: $ tar jxvf llvm-py-0.6.tar.bz2 $ cd llvm-py-0.6 $ python setup.py install --user --llvm-config=/home/mdevan/llvm/Release/bin/llvm-config To build a debug version of llvm-py, that links against the debug libraries of LLVM, use this: $ tar jxvf llvm-py-0.6.tar.bz2 $ cd llvm-py-0.6 $ python setup.py build -g --llvm-config=/home/mdevan/llvm/Debug/bin/llvm-config $ python setup.py install --user --llvm-config=/home/mdevan/llvm/Debug/bin/llvm-config Be warned that debug binaries will be huge (100MB+) ! They are required only if you need to debug into LLVM also. setup.py is a standard Python distutils script. See the Python documentation regarding Installing Python Modules and Distributing Python Modules for more information on such scripts. UninstallIf you’d installed llvm-py with the --user option, then llvm-py would be present under ~/.local/lib/python2.6/site-packages. Otherwise, it might be under /usr/lib/python2.6/site-packages or /usr/local/lib/python2.6/site-packages. The directory would vary with your Python version and OS flavour. Look around. Once you’ve located the site-packages directory, the modules and the "egg" can be removed like so: $ rm -rf <site-packages>/llvm <site-packages>/llvm_py-0.6-py2.6.egg-info See the Python documentation for more information. LLVM ConceptsThis section explains a few concepts related to LLVM, not specific to llvm-py. Intermediate RepresentationThe intermediate representation, or IR for short, is an in-memory data structure that represents executable code. The IR data structures allow for creation of types, constants, functions, function arguments, instructions, global variables and so on. For example, to create a function sum that takes two integers and returns their sum, we need to follow these steps:
(A basic block is a block of instructions.) LLVM has it’s own instruction set; the instructions used above (add and ret) are from this set. The LLVM instructions are at a higher level than the usual assembly language; for example there are instructions related to variable argument handling, exception handling, and garbage collection. These allow high-level languages to be represented cleanly in the IR. SSA Form and PHI NodesAll LLVM instructions are represented in the Static Single Assignment (SSA) form. Essentially, this means that any variable can be assigned to only once. Such a representation facilitates better optimization, among other benefits. A consequence of single assignment are PHI (Φ) nodes. These are required when a variable can be assigned a different value based on the path of control flow. For example, the value of b at the end of execution of the snippet below: a = 1; if (v < 10) a = 2; b = a; cannot be determined statically. The value of 2 cannot be assigned to the original a, since a can be assigned to only once. There are two a 's in there, and the last assignment has to choose between which version to pick. This is accomplished by adding a PHI node: a1 = 1; if (v < 10) a2 = 2; b = PHI(a1, a2); The PHI node selects a1 or a2, depending on where the control reached the PHI node. The argument a1 of the PHI node is associated with the block "a1 = 1;" and a2 with the block "a2 = 2;". PHI nodes have to be explicitly created in the LLVM IR. Accordingly the LLVM instruction set has an instruction called phi. LLVM Assembly LanguageThe LLVM IR can be represented offline in two formats - a textual, human-readable form, similar to assembly language, called the LLVM assembly language (files with .ll extension) - a binary form, called the LLVM bitcode (files with .bc extension) All three formats (the in-memory IR, the LLVM assembly language and the LLVM bitcode) represent the same information. Each format can be converted into the other two formats (using LLVM APIs). The LLVM demo page lets you type in C or C++ code, converts it into LLVM IR and outputs the IR as LLVM assembly language code. Just to get a feel of the LLVM assembly language, here’s a function in C, and the corresponding LLVM assembly (as generated by the demo page): /* compute sum of 1..n */ unsigned sum(unsigned n) { if (n == 0) return 0; else return n + sum(n-1); } The corresponding LLVM assembly: ; ModuleID = '/tmp/webcompile/_7149_0.bc' target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64" target triple = "x86_64-linux-gnu" define i32 @sum(i32 %n) nounwind readnone { entry: %0 = icmp eq i32 %n, 0 ; <i1> [#uses=1] br i1 %0, label %bb2, label %bb1 bb1: ; preds = %entry %1 = add i32 %n, -1 ; <i32> [#uses=2] %2 = icmp eq i32 %1, 0 ; <i1> [#uses=1] br i1 %2, label %sum.exit, label %bb1.i bb1.i: ; preds = %bb1 %3 = add i32 %n, -2 ; <i32> [#uses=1] %4 = tail call i32 @sum(i32 %3) nounwind ; <i32> [#uses=1] %5 = add i32 %4, %1 ; <i32> [#uses=1] br label %sum.exit sum.exit: ; preds = %bb1.i, %bb1 %6 = phi i32 [ %5, %bb1.i ], [ 0, %bb1 ] ; <i32> [#uses=1] %7 = add i32 %6, %n ; <i32> [#uses=1] ret i32 %7 bb2: ; preds = %entry ret i32 0 } Note the usage of SSA form. The long string called target datalayout is a specification of the platform ABI (like endianness, sizes of types, alignment etc.). The LLVM Language Reference defines the LLVM assembly language including the entire instruction set. ModulesModules, in the LLVM IR, are similar to a single C language source file (.c file). A module contains:
Modules are top-level containers; all executable code representation is contained within modules. Modules may be combined (linked) together to give a bigger resultant module. During this process LLVM attempts to reconcile the references between the combined modules. Optimization and PassesLLVM provides quite a few optimization algorithms that work on the IR. These algorithms are organized as passes. Each pass does something specific, like combining redundant instructions. Passes need not always optimize the IR, it can also do other operations like inserting instrumentation code, or analysing the IR (the result of which can be used by passes that do optimizations) or even printing call graphs. This LLVM documentation page describes all the available passes, and what they do. LLVM does not automatically choose to run any passes, anytime. Passes have to be explicitly selected and run on each module. This gives you the flexibility to choose transformations and optimizations that are most suitable for the code in the module. There is an LLVM binary called opt, which lets you run passes on bitcode files from the command line. You can write your own passes (in C/C++, as a shared library). This can be loaded and executed by opt. (Although llvm-py does not allow you to write your own passes, it does allow you to navigate the entire IR at any stage, and perform any transforms on it as you like.) A "pass manager" is responsible for loading passes, selecting the correct objects to run them on (for example, a pass may work only on functions, individually) and actually runs them. opt is a command-line wrapper for the pass manager. Bit codeTODO Execution Engine, JIT and InterpreterTODO The llvm-py PackageThe llvm-py is a Python package, consisting of 6 modules, that wrap over enough LLVM APIs to allow the implementation of your own compiler/VM backend in pure Python. If you’re come this far, you probably know why this is a good idea. Out of the 6 modules, one is an “extension” module (i.e., it is written in C), and another one is a small private utility module, which leaves 4 public modules. These are:
The modules contain only classes and (integer) constants. Mostly simple Python constructs are used (deliberately) — property() and property decorators are probably the most exotic animals around. All classes are "new style" classes. The APIs are designed to be navigable (and guessable!) once you know a few conventions. These conventions are highlighted in the sections below. Here is a quick overview of the contents of each package: llvm
llvm.core
llvm.ee
llvm.passes
A note on the 'import’ing of these modules Pythonically, modules are imported with the statement "import llvm.core". However, you might find it more convenient to import llvm-py modules thus: from llvm import * from llvm.core import * from llvm.ee import * from llvm.passes import * This avoids quite some typing. Both conventions work, however.
Module (llvm.core)Modules are top-level container objects. You need to create a module object first, before you can add global variables, aliases or functions. Modules are created using the static method Module.new: #!/usr/bin/env python from llvm import * from llvm.core import * # create a module my_module = Module.new('my_module') The constructor of the Module class should not be used to instantiate a Module object. This is a common feature for all llvm-py classes.
The argument my_module is a module identifier (a plain string). A module can also be constructed via deserialization from a bit code file, using the static method from_bitcode. This method takes a file-like object as argument, i.e., it should have a read() method that returns the entire data in a single call, as is the case with the builtin file object. Here is an example: # create a module from a bit code file bcfile = file("test.bc") my_module = Module.from_bitcode(bcfile) There is corresponding serialization method also, called to_bitcode: # write out a bit code file from the module bcfile = file("test.bc", "w") my_module.to_bitcode(bcfile) Modules can also be constructed from LLVM assembly files (.ll files). The static method from_assembly can be used for this. Similar to the from_bitcode method, this one also takes a file-like object as argument: # create a module from an assembly file llfile = file("test.ll") my_module = Module.from_assembly(llfile) Modules can be converted into their assembly representation by stringifying them (see below). llvm.core.Module
Static Constructors
Properties
Methods
Special Methods
Types (llvm.core)Types are what you think they are. A instance of llvm.core.Type, or one of its derived classes, represent a type. llvm-py does not use as many classes to represent types as does LLVM itself. Some types are represented using llvm.core.Type itself and the rest are represented using derived classes of llvm.core.Type. As usual, an instance is created via one of the static methods of Type. These methods return an instance of either llvm.core.Type itself or one of its derived classes. The following table lists all the available types along with the static method which has to be used to construct it and the name of the class whose object is actually returned by the static method.
The class hierarchy is: Type IntegerType FunctionType StructType ArrayType PointerType VectorType The class-level documentation follows: llvm.core.Type
Static Constructors
Properties
Methods
Special Methods
llvm.core.IntegerType
Base Class
Properties
llvm.core.FunctionType
Base Class
Properties
llvm.core.StructType
Base Class
Properties
llvm.core.ArrayType
Base Class
Properties
llvm.core.PointerType
Base Class
Properties
llvm.core.VectorType
Base Class
Properties
Here is an example that demonstrates the creation of types: #!/usr/bin/env python # integers int_ty = Type.int() bool_ty = Type.int(1) int_64bit = Type.int(64) # floats sprec_real = Type.float() dprec_real = Type.double() # arrays and vectors intar_ty = Type.array( int_ty, 10 ) # "typedef int intar_ty[10];" twodim = Type.array( intar_ty , 10 ) # "typedef int twodim[10][10];" vec = Type.array( int_ty, 10 ) # structures s1_ty = Type.struct( [ int_ty, sprec_real ] ) # "struct s1_ty { int v1; float v2; };" # pointers intptr_ty = Type.pointer(int_ty) # "typedef int *intptr_ty;" # functions f1 = Type.function( int_ty, [ int_ty ] ) # functions that take 1 int_ty and return 1 int_ty f2 = Type.function( Type.void(), [ int_ty, int_ty ] ) # functions that take 2 int_tys and return nothing f3 = Type.function( Type.void(), ( int_ty, int_ty ) ) # same as f2; any iterable can be used fnargs = [ Type.pointer( Type.int(8) ) ] printf = Type.function( Type.int(), fnargs, True ) # variadic function TypeHandle (llvm.core)TypeHandle objects are used to create recursive types, like this linked list node structure in C: struct node { int data; struct node *next; }; This can be realized in llvm-py like this: #!/usr/bin/env python from llvm.core import * # create a type handle object th = TypeHandle.new(Type.opaque()) # create the struct with an opaque* instead of self* ts = Type.struct([ Type.int(), Type.pointer(th.type) ]) # unify the types th.type.refine(ts) # create a module, and add a "typedef" m = Module.new('mod1') m.add_type_name("struct.node", th.type) # show what we created print m which gives the output: ; ModuleID = 'mod1' %struct.node = type { i32, %struct.node* } For more details on what is going on here, please refer the LLVM Programmer’s Manual section "LLVM Type Resolution". The TypeHandle class of llvm-py corresponds to llvm::PATypeHolder in C++. The above example is available as test/typehandle.py in the source distribution. llvm.core.TypeHandle
Static Constructors
Properties
Values (llvm.core)llvm.core.Value is the base class of all values computed by a program that may be used as operands to other values. A value has a type associated with it (an object of llvm.core.Type). The class hierarchy is: Value User Constant ConstantExpr ConstantAggregateZero ConstantInt ConstantFP ConstantArray ConstantStruct ConstantVector ConstantPointerNull UndefValue GlobalValue GlobalVariable Function Instruction CallOrInvokeInstruction PHINode SwitchInstruction CompareInstruction Argument BasicBlock The Value class is abstract, it’s not meant to be instantiated. User is a Value that in turn uses (i.e., can refer to) other values (for e.g., a constant expression 1+2 refers to two constant values 1 and 2). Constant-s represent constants that appear within code or as initializers of globals. They are constructed using static methods of Constant. Various types of constants are represented by various subclasses of Constant. However, most of them are empty and do not provide any additional attributes or methods over Constant. The Function object represents an instance of a function type. Such objects contain Argument objects, which represent the actual, local-variable-like arguments of the function (not to be confused with the arguments returned by a function type object — these represent the type of the arguments). The various Instruction-s are created by the Builder class. Most instructions are represented by Instruction itself, but there are a few subclasses that represent interesting instructions. Value objects have a type (read-only), and a name (read-write). llvm.core.Value
Properties
Special Methods
User (llvm.core)User-s are values that refer to other values. The values so refered can be retrived by the properties of User. This is the reverse of the Value.uses. Together these can be used to traverse the use-def chains of the SSA. llvm.core.User
Base Class
Properties
Constants (llvm.core)Constant-s represents constants that appear within the code. The values of such objects are known at creation time. Constants can be created from Python constants. A constant expression is also a constant — given a Constant object, an operation (like addition, subtraction etc) can be specified, to yield a new Constant object. Let’s see some examples: #!/usr/bin/env python ti = Type.int() # a 32-bit int type k1 = Constant.int(ti, 42) # "int k1 = 42;" k2 = k1.add( Constant.int( ti, 10 ) ) # "int k2 = k1 + 10;" tr = Type.float() r1 = Constant.real(tr, "3.141592") # create from a string r2 = Constant.real(tr, 1.61803399) # create from a Python float The following constructors (static methods) can be used to create constants:
The following operations on constants are supported. For more details on any operation, consult the Constant Expressions section of the LLVM Language Reference.
Predicates for use with icmp instruction are listed below. All of these are integer constants defined in the llvm.core module.
Predicates for use with fcmp instruction are listed below. All of these are integer constants defined in the llvm.core module.
llvm.core.Constant
Other Constant* Classes (llvm.core)The following subclasses of Constant do not provide additional methods, they serve only to provide richer type information.
These types are helpful in isinstance checks, like so: ti = Type.int(32) k1 = Constant.int(ti, 42) # int32_t k1 = 42; k2 = Constant.array(ti, [k1, k1]) # int32_t k2[] = { k1, k1 }; assert isinstance(k1, ConstantInt) assert isinstance(k2, ConstantArray) Global Value (llvm.core)The class llvm.core.GlobalValue represents module-scope aliases, variables and functions. Global variables are represented by the sub-class llvm.core.GlobalVariable and functions by llvm.core.Function. Global values have the read-write properties linkage, section, visibility and alignment. Use one of the following constants (from llvm.core) as values for linkage (see LLVM documentaion for details on each):
The section property can be assigned strings (like ".rodata"), which will be used if the target supports it. Visibility property can be set to one of thse constants (from llvm.core, see also LLVM docs):
The alignment property can be 0 (default), or can be set to a power of 2. The read-only property is_declaration can be used to check if the global is a declaration or not. The module to which the global belongs to can be retrieved using the module property (read-only). llvm.core.GlobalValue
Base Class
Properties
Global Variable (llvm.core)Global variables (llvm.core.GlobalVariable) are subclasses of llvm.core.GlobalValue and represent module-level variables. These can have optional initializers and can be marked as constants. Global variables can be created either by using the add_global_variable method of the Module class (see above), or by using the static method GlobalVariable.new. # create a global variable using add_global_variable method gv1 = module_obj.add_global_variable(Type.int(), "gv1") # or equivalently, using a static constructor method gv2 = GlobalVariable.new(module_obj, Type.int(), "gv2") Existing global variables of a module can be accessed by name using module_obj.get_global_variable_named(name) or GlobalVariable.get. All existing global variables can be enumerated via iterating over the property module_obj.global_variables. # retrieve a reference to the global variable gv1, # using the get_global_variable_named method gv1 = module_obj.get_global_variable_named("gv1") # or equivalently, using the static `get` method: gv2 = GlobalVariable.get(module_obj, "gv2") # list all global variables in a module for gv in module_obj.global_variables: print gv.name, "of type", gv.type The initializer for a global variable can be set by assigning to the initializer property of the object. The is_global_constant property can be used to indicate that the variable is a global constant. Global variables can be delete using the delete method. Do not use the object after calling delete on it. # add an initializer 10 (32-bit integer) gv.initializer = Constant.int( Type.int(), 10 ) # delete the global gv.delete() # DO NOT dereference `gv' beyond this point! gv = None llvm.core.GlobalVariable
Base Class
Static Constructors
Properties
Methods
Function (llvm.core)Functions are represented by llvm.core.Function objects. They are contained within modules, and can be created either with the method module_obj.add_function or the static constructor Function.new. References to functions already present in a module can be retrieved via module.get_function_named or by the static constructor method Function.get. All functions in a module can be enumerated by iterating over module_obj.functions. # create a type, representing functions that take an integer and return # a floating point value. ft = Type.function( Type.float(), [ Type.int() ] ) # create a function of this type f1 = module_obj.add_function(ft, "func1") # or equivalently, like this: f2 = Function.new(module_obj, ft, "func2") # get a reference to an existing function f3 = module_obj.get_function_named("func3") # or like this: f4 = Function.get(module_obj, "func4") # list all function names in a module for f in module_obj.functions: print f.name References to intrinsic functions can be got via the static constructor intrinsic. This returns a Function object, calling which is equivalent to invoking the intrinsic. The intrinsic method has to be called with a module object, an instrinic ID (which is a numeric constant) and a list of the types of arguments (which LLVM uses to resolve overloaded intrinsic functions). # get a reference to the llvm.bswap intrinsic bswap = Function.intrinsic(mod, INTR_BSWAP, [Type.int()]) # call it builder.call(bswap, [value]) Here, the constant INTR_BSWAP, available from llvm.core, represents the LLVM intrinsic llvm.bswap. The [Type.int()] selects the version of llvm.bswap that has a single 32-bit integer argument. The list of intrinsic IDs defined as integer constants in llvm.core. These are:
There are also target-specific intrinsics (which correspond to that target’s CPU instructions) available, but are omitted here for brevity. Full list can be seen from _intrinsic_ids.py. See the LLVM Language Reference for more information on the intrinsics, and the test directory in the source distribution for more examples. The intrinsic ID can be retrieved from a function object with the read-only property intrinsic_id. The function’s calling convention can be set using the calling_convention property. The following (integer) constants defined in llvm.core can be used as values:
See the LLVM docs for more information on each. Backend-specific numbered conventions can be directly passed as integers. An arbitrary string identifying which garbage collector to use can be set or got with the property collector. The value objects corresponding to the arguments of a function can be got using the read-only property args. These can be iterated over, and also be indexed via integers. An example: # list all argument names and types for arg in fn.args: print arg.name, "of type", arg.type # change the name of the first argument fn.args[0].name = "objptr" Basic blocks (see later) are contained within functions. When newly created, a function has no basic blocks. They have to be added explicitly, using the append_basic_block method, which adds a new, empty basic block as the last one in the function. The first basic block of the function can be retrieved using the get_entry_basic_block method. The existing basic blocks can be enumerated by iterating over using the read-only property basic_blocks. The number of basic blocks can be got via basic_block_count method. Note that get_entry_basic_block is slightly faster than basic_blocks[0] and so is basic_block_count, over len(f.basic_blocks). # add a basic block b1 = fn.append_basic_block("entry") # get the first one b2 = fn.get_entry_basic_block() b2 = fn.basic_blocks[0] # slower than previous method # print names of all basic blocks for b in fn.basic_blocks: print b.name # get number of basic blocks n = fn.basic_block_count n = len(fn.basic_blocks) # slower than previous method Functions can be deleted using the method delete.  All references to the function object should be dropped after delete has been called. Functions can be verified with the verify method. Note that this may not work properly (aborts on errors). Function attributes, as documented here, can be set on functions using the methods add_attribute and remove_attribute. The following values may be used to refer to the LLVM attributes:
Here is how attributes can be set and removed: # create a function ti = Type.int(32) tf = Type.function(ti, [ti, ti]) m = Module.new('mod') f = m.add_function(tf, 'sum') print f # declare i32 @sum(i32, i32) # add a couple of attributes f.add_attribute(ATTR_NO_UNWIND) f.add_attribute(ATTR_READONLY) print f # declare i32 @sum(i32, i32) nounwind readonly llvm.core.Function
Base Class
Static Constructors
Properties
Methods
Argument (llvm.core)The args property of llvm.core.Function objects yields llvm.core.Argument objects. This allows for setting attributes for functions arguments. Argument objects cannot be constructed from user code, the only way to get a reference to these are from Function objects. The method add_attribute and remove_attribute can be used to add or remove the following attributes:
These method work exactly like the corresponding methods of the Function class above. Refer LLVM docs for information on what each attribute means. The alignment of any argument can be set via the alignment property, to any power of 2. llvm.core.Argument
Base Class
Properties
Methods
Instructions (llvm.core)An llvm.core.Instruction object represents an LLVM instruction. This class is the root of a small hierarchy: Instruction CallOrInvokeInstruction PHINode SwitchInstruction CompareInstruction Instructions are not created directly, but via a builder. The builder both creates instructions and adds them to a basic block at the same time. One way of getting instruction objects are from basic blocks. Being derived from llvm.core.User, the instruction is-a user, i.e., an instruction in turn uses other values. The values an instruction uses are its operands. These may be accessed using operands property from the llvm.core.User base. The name of the instruction (like add, mul etc) can be got via the opcode_name property. The basic_block property gives the basic block to which the instruction belongs to. Note that llvm-py does not allow free-standing instruction objects (i.e., all instructions are created contained within a basic block). Classes of instructions can be got via the properties is_terminator, is_binary_op, is_shift etc. See below for the full list. llvm.core.Instruction
Base Class
Properties
CallOrInvokeInstruction (llvm.core)The llvm.core.CallOrInvokeInstruction is a subclass of llvm.core.Instruction, and represents either a call or an invoke instruction. llvm.core.CallOrInvokeInstruction
Base Class
Properties
Methods
PHINode (llvm.core)The llvm.core.PHINode is a subclass of llvm.core.Instruction, and represents the phi instruction. When created (using Builder.phi) the phi node contains no incoming blocks (nor their corresponding values). To add an incoming arc to the phi node, use the add_incoming method, which takes a source block (llvm.core.BasicBlock object) and a value (object of llvm.core.Value or of a class derived from it) that the phi node will take on if control branches in from that block. llvm.core.PHINode
Base Class
Properties
Methods
SwitchInstruction (llvm.core)(TODO describe) llvm.core.SwitchInstruction
Base Class
Methods
CompareInstruction (llvm.core)(TODO describe) llvm.core.CompareInstruction
Base Class
Properties
Basic Block (llvm.core)TODO Builder (llvm.core)TODO Target Data (llvm.ee)TODO Execution Engine (llvm.ee)TODO. For now, see test/example-jit.py. Pass Manager and Passes (llvm.passes)TODO. For now, see test/passes.py. About the llvm-py Projectllvm-py lives at http://www.mdevan.org/llvm-py/. The code (subversion repository) and the issue tracker are hosted on the Google code hosting service, at http://code.google.com/p/llvm-py/. It is distributed under the new BSD license, the full license text is in the file named LICENSE available in the source distribution. There is an llvm-py mailing list / users group: http://groups.google.com/group/llvm-py. The entire llvm-py website is generated from marked up text files using the tool AsciiDoc. These text files and the (pre-)generated HTML pages are available in the source distribution. llvm-py is an ongoing, live project. Your contributions in any form are most welcome. You can checkout the latest SVN HEAD from here. Mahadevan R wrote llvm-py and works on it in his spare time. He can be reached at<EMAIL_ADDRESS>|


Outline
- Clustering
- Regression
- Classification
- Dimensionality Reduction
- Recommendation systems
When to use it?
- When you want to find similar items
- Depends on your distance metric
- When you have to many items, and you want to aggregate
Examples
- Customer segmentation
- Grouping experiment outcomes
When to use it?
- Present (Identify/Compare) Tendency
- Predict values
Examples
- Stock prices
- Drug response
Classification
When to use it?
- Present (Identify/Compare) Tendency
- Present (Identify/Compare) Groups
- Aggregate
- Predict values
Examples
- Photo categorization
- Sentiment analysis
- Spam filtering
Dimensionality Reduction
When to use it?
- Attribute Filtering
- Categorize Documents (Topic modeling)
When to use it?
- Large catalog, with user preference history
- If you like a, and b, maybe you will like c
Types
- Collaborative filtering
- Content based systems
- Hybrids
Examples
- Amazon
- Facebook
- Google
- Yahoo
- Netflix Prize
How to use the algorithms?


Money Play. How should Red play 32?
pips Red=74 White=70
(CorrectAnswer= 0/0, ErrorScore= 0)
My rule of thumb for such positions is that you should not give up the fifth home point board. Going from six points to five is OK but going from five to four rarely is. This is because it is very difficult to contain a hit checker with only four points (your opponent is favourite to enter).
My instinct here would be to play 9/4 and that is supported by the rollouts where 5/3, 5/2 is quite a bad error. My rule of thumb has stood me in good stead over the years.
However, the converse applies so that if White had a five-point home board (move the spare blot on his 4-pt to his 5-pt) then playing safe is correct by a long way.
My instinct here would be to play 9/4 and that is supported by the rollouts where 5/3, 5/2 is quite a bad error. My rule of thumb has stood me in good stead over the years.
However, the converse applies so that if White had a five-point home board (move the spare blot on his 4-pt to his 5-pt) then playing safe is correct by a long way.
1. Cubeful 2-ply 9/4 Eq.: +0.224 0.577 0.042 0.001 - 0.423 0.010 0.000 2. Cubeful 2-ply 5/3 5/2 Eq.: +0.177 (-0.047) 0.562 0.010 0.000 - 0.438 0.009 0.000 3. Cubeful 2-ply 4/2 4/1 Eq.: +0.150 (-0.073) 0.552 0.009 0.000 - 0.448 0.008 0.000 4. Cubeful 2-ply 12/10 12/9 Eq.: +0.112 (-0.112) 0.533 0.038 0.000 - 0.467 0.007 0.000 5. Cubeful 2-ply 5/3 4/1 Eq.: +0.055 (-0.169) 0.521 0.011 0.000 - 0.479 0.016 0.000


---
layout: post
title: Speech Versus Writing
date: 2012-10-22 14:21:54.000000000 -07:00
categories:
- technical-writing
tags: []
status: draft
type: post
published: false
---
Writing Scripts for Video Tutorials
When you're writing scripts for video tutorials, you must address some of the differences between writing and speech. Copy may be well written, but will it sound natural and conversational when someone reads it into a microphone? Will it sound personal and familiar? To write copy that sounds like natural speech, you have to understand the differences between speech and writing. This dichotomy between speech and writing, fortunately, is a discussion that has been going on since Plato. In this webinar, we'll explore some techniques to make your scripts sound more like natural speech. We'll also explore techniques that voiceover artists often do to make copy sound more natural.


--- component: { name: element-query, package: akyral-element-query, type: utility } page: element-query template: base.html title: Element Query ---
Where as a media query applies to the viewport of a device or page, an element query is affected by its own dimensions.
When a media query is passed into the element query, akyral-element-query
polyfills
element query functionality into its parent. When media query is successfully
matches against the element, the media attribute of the akyral-element-query is updated.
You then can databind or event listeners to reactively use that media attribute for styling.
Your can adjust the slider to visualize the different queries associated with the below element.
{{component.package}} requires its parent css position be set to absolute or relative to work correctly.
Be aware of circular style references with element query styles @see. One style may cause cycling between another and back again. Avoid defining a fixed width in components.
{% raw %}{{media}}{% endraw %}
media query .


Six guests are invited to a forlorn mansion, so frightening that it stops moving cars in it's tracks, for a dinner party by Mr. Boddy. The six guests do not know each other. Nor do they know Mr Boddy directly. The only connection between them is that they are all being blackmailed by him. In a classic Agatha Christie like setup they are all gathered together in the mansion to reach an agreement. What happens when you have six desperate people and their blackmailer under the same roof ? Death. But how?
The first one to die was Mr. Boddy himself. A bullet shot was heard when the light went out but there were no wounds on Mr Boddy's , um, body. The death of the host sent the party into panic. It was clear that the killer was one of them but "Mr. Green did not do it". It was decided that to find the answer they will split and look for clues inside the mansion.
They find their first clue in the kitchen. The cook was stabbed and stacked inside the freezer. To prevent further confusion they take the body inside the library only to find that Mr. Boddy's, body was gone. Was he really dead? According to professor plum he was. But he was a professor in psychology so he wasn't sure.
Before they could compose themselves and decide on the next course of action a doorbell is heard. An unfortunate motorist who has wrecked his vehicle asks to make a few phone calls. The butler takes him to the study and locks the door behind him giving the guests ample time to search the mansion and try to find the murderer.
They inspect every nook and cranny of the mansion and find nothing. However a stray inspector finds them. He insists to come inside and make a few phone calls as well. Once more the butler, unable to come up with any creative solution, locks the inspector inside the library.
The house guests find themselves in a very peculiar situation. Their host is dead. In one room they have a police inspector who must be rid of this castle as soon as possible. In the other room they have an unfortunate motorist who under no circumstances must get out the the room he has been locked in. They are pondering over this dilemma when another blackout occurs. And when the light comes back it is discovered that the inspector is dead! In the other room the motorist is dead! In yet another room the waitress is dead. Out side the mansion the chauffeur is dead!
Six deaths in an evening. Now there is a mystery that would need you to exercise those little grey cells of yours. It is unlikely however that given this complex, layered mystery there could only be one possible solution. No! one solution would not do. It would be great injustice. It would be highly improper. It would be an insult to the mystery to have only one solution. There must be at least three. Yes three is a good number I suppose. Four would be far too many and six would be just preposterous. One has to keep in mind the length of the movie.
And so giving due respect to the complexity of the mystery and a nod to the editors the butler produces three distinct solutions within 15 minutes a feat that remains unparalleled and unchallenged to this day. Reader here is your clue. Go watch this movie