--- layout: post title: Sunset Years date: 2009-04-05 18:53:40.000000000 +05:30 categories: - EOS 1000D - raxeffect tags: - B & W - Black and white - Old-age home - People status: publish type: post published: true meta: _edit_last: '3' author: login: raxeffect email<EMAIL_ADDRESS>display_name: raxeffect first_name: Rakshith last_name: Prasad ---
Av: F/5.6; Tv: 0.040s (1/25); f: 55mm (35mm-equiv:89 mm); ISO: 100
This is a photo I took on my visit to an old-age home. I just loved the way it came out as soon as I took it.
Highlights of the photo would be the Soft Focus with 1 person in full focus and others in varying degrees of lens blur. The expression on the face of the old man is a good catch. With the subject looking directly into the camera, it helps to relate well with viewer of the photo conveying a lot of emotions.
The black and white mode of the photo adds more to the emotions and brings in a hint of classicism. The angle of the photo is also a little different than the usual ones we see. It has got a good upward inclination.
I did not have to resort to much post processin. However, I added the Vignette effect using Photoshop. The Vignette effect is a sort of Lens Distortion which adds the Blackish touch to the edges of the photo. I love that effect as I find that it adds a lot more emphasis to the centre of the image.
I also added a thin border to just try out the framing effect.


Ocean [bb52], ocean, in Crystal Sea
Last updated Turn #136
Ocean [bb52], ocean, in Crystal Sea
------------------------------------------------------------------------
1: Pleasure Sloop [v5n], ship, 30 hulls, 1 rowing port, 90 sails, arrived
1: from Black Forest [bc52], owner:
1: Dorothy [v1b], Pen, with one worker, 94 sailors
1: Apollo [b5e], Imperial Empire, with 11 workers, 63 lt. xbowmen,
1: accompanied by:
1: Lutra [a4w], Imperial Empire, with 13 paladins, 40 pikemen
1: Hera [g3f], Imperial Empire, with 20 soldiers, 40 pikemen
1: Thor [r4g], Imperial Empire, with nine soldiers, 40 pikemen
1: Eos [a2t], Imperial Empire, with ten workers, 48 lt. xbowmen
1: Khaki Blazer [w4j], Imperial Empire, with 17 soldiers,
1: seven pikemen, 35 lt. foot
1: Banian [e7n], Imperial Empire, duke, the High Priest of the
1: Church of Eres [151], with five soldiers, ten angels
1: Dunlop [j5s], Mandor Confederacy, prisoner
2: Pleasure Sloop [v5n], ship, 30 hulls, 1 rowing port, 90 sails,
2: departed for Tiny Wood [ba52].
30: It has stopped raining.
Routes leaving Ocean:
North, forest, to Tiny Wood [ba52], Tenka, 2 days
East, mountain, to Dragonrock [bb53], Tenka, impassable
South, forest, to Black Forest [bc52], Tenka, 2 days
Garrison [fk3t], garrison, uncontrolled, with six peasants
West, to Ocean [bb51], 6 days
Inner locations:
Island [aa5s], island, 1 day, owner:
Cyclops [je2c], cyclops, number: 21


Pari/GP for the evaluation of the logarithmic integral
Pari/GP is an open source computer algebra system (CAS),
that offers very fast implementations of arithmetic functions.
It evaluates the logarithmic integral with much more precision than using Simpson's rule.
Pari/GP can be downloaded from the webite of the University of Bordeaux.
Activate the checkbox "Pari/GP" for using Pari for the evaluation of the logarithmic integral and select the program "gp.exe" in the file dialog. The program is in included the Pari/GP installation folder.
The CrypTool script
describes in chapter "3.13 Appendix: Visualization of the quantity of primes in higher ranges" functions for estimating the
number of primes in more detail, and how they can be calculated with the CAS Sage.
In the meantime, Pari/GP is part of Sage.


| Class | Description |
|---|---|
| ElasticsearchController |
ElasticsearchController enables a user to communicate with the ElasticSearch database for the purposes of storing and accessing users.
|
| ElasticsearchController.AddCareProvider |
Add a CareProvider to server using elastic search.
|
| ElasticsearchController.AddComment | |
| ElasticsearchController.AddPatient |
Add a patient to server using elastic search.
|
| ElasticsearchController.AddProblem | |
| ElasticsearchController.AddRecord | |
| ElasticsearchController.getAllPatients |
Get all of the patients on the server.
|
| ElasticsearchController.GetCareProvider |
Get CareProvider object from server using elastic search.
|
| ElasticsearchController.GetPatient |
Get Patient object from server using elastic search.
|
| ElasticsearchController.SearchByBodyLocations | |
| ElasticsearchController.SearchByGeoLocations | |
| ElasticsearchController.SearchByKeyword | |
| ElasticsearchController.SearchForPatient | |
| PhotoController |
PhotoController handles saving images taken or selected by the Patient to both local and remote storage.
|
| UserDataController<E> |
Used to load data from server or local cache as well as save to server and local cache.
|
| ViewPageAdapterActivity |
ViewPageAdapterActivity handles loading the arrayList containing the images to be displayed when a problem's
slideshow is desired to be seen.
|


Delete deckDownload decks to fileLoad decks from fileClear local storage
DECKS
{{ deck.name }}
STATS
CREATE NEW DECK
Invalid json file!
{{ copied_msg }}
I'm using HTML5 Local Storage to save your decks between sessions and whatnot. It's like cookies, but even less than that.
AcceptDismiss


Work.
Unplugged Retreat
Tools:
- HTML5
- CSS3
- Flexbox
- Media Queries
- Git & Github
- Photoshop
This project is a fictional team building retreat for those working in the technology field. It was a project used to practice Flexbox as well as Media Queries to create a responsive site. Click the image above to browse the site!
Jubilee Austen
Tools:
- HTML5
- CSS3
- Photoshop
- Media Queries
- Git & Github
- Photoshop
This is a simple and clean one page Front-end Developer portfolio site. It was converted from a static desktop design to a fully responsive website using flexbox and media queries. Click the image above to browse the site!
Let's Chat
So now you know what I've done and you're curious as to what I'm up to now? Great! I'd love to share what I'm currently working on. Just wanna chat? That's cool too!


This is a sample option for a hotel and would inlcude:
Here would be a short description of what the hotel has and some positive things regarding the hotel that we want to showcase


Your privacy is very important to Chessgames.com. While we gather information about our users
to help provide the best service possible,
we adhere to strict policies to safeguard your privacy
at all times. This page states, in plain language, our privacy policy,
so that there may be no misunderstandings about what information we gather,
and why we gather it.
Information gathered: When you register an account with chessgames.com,
you will have access to a preferences page
which allows you to provide various information, including your email address.
All information you submit on this page, with the exception of your "username" and your "bio,"
is completely confidential. We will never give or sell your email address
to any third party. We will never reveal your address to other users.
| |
We will occasionally email all registered members
with newsletters that announce new features, games and puzzles,
and special promotions. If you prefer not to receive
our emails, either check the option that reads "Do not send me emails, newsletters, etc."
on your preferences
page or email<EMAIL_ADDRESS>with your request.
|
Chessgames.com uses standard web logfiles, which automatically record all requests made of
the chessgames.com servers. Such information includes I.P. addresses, the chessgames.com
pages requested, the type of browser you use, etc. We study these data in aggregate in order
to try to understand our customers' preferences better and to improve our site.
Your "Bio": Your preferences page has an area we
call the "bio" where you may voluntarily provide information about yourself. The purpose of
this feature is to introduce yourself to other members. You are not obligated to write
anything in this area. Whatever information you volunteer in your "bio" will be visible
to all other members of the site.
We caution against including your email address in your bio, because email-harvesting
spiders (a.k.a. "spambots") may extract your email from this page for the purpose of sending
you junk email.
Cookies: "Cookies" are small files of data that reside on your computer and allow us
to recognize you.  This cookie allows us to customize the site's behavior
and appearance to fit your tastes. We do not use the cookie for any other purpose. You are
able to erase your cookie at any time by visiting the logout
page which will wipe out our chessgames cookie until you choose to sign-in again.
Children: Chessgames.com is proud to maintain a decorum suitable for children, and
children of all ages are very much welcomed here. However, when a child under age 13
registers with chessgames.com, we suggest that a parent is present to prevent the child from
inadvertently volunteering sensitive information.
Information Security: Chessgames.com is committed to
handling your customer billing information with the highest possible
standards of information security. All credit card information is
transmitted through the industry standard SSL-encrypted secure channel.
If you send us credit card information to register for
premium membership, that information is stored only in
the server's RAM memory, and not on the permanent storage device.
Once the transaction is completed, that area of our server's
RAM is intentionally wiped out. Therefore, it is
impossible for a criminal to steal your credit
card number from us, because we don't have it.
We do, however,
retain the last 4 digits of your credit card number in the event
that it may be required for proof of identification.
We will never automatically rebill you for services; we
will however email you 30 days prior to the expiration
of your account and encourage you to renew your
subscription. If you choose to renew, you will have to
enter your credit card information again.
Chessgames will never ask you for your password, your credit card, or any other sensitive
information via email. If you receive an email apparently from us requesting sensitive information,
it is a forgery. In such an event, we suggest you do not
reply to the email, but instead forward it to<EMAIL_ADDRESS>for investigation.
More Information: If you have any other questions
about chessgames.com's privacy policy, feel
free to write us at<EMAIL_ADDRESS>and we will be happy to address whatever concerns you have.


TOO MUCH SLEEP A film review by David N. Butterworth Copyright 2001 David N. Butterworth
** (out of ****)
The most striking revelation about the indie comedy-drama "Too Much Sleep" is just how much it highlights the schizophrenic tendencies of its fledgling director, David Maquiling.
Now Maquiling, a graduate of NYU's Tisch School of the Arts, can set up a shot well enough, from the sleepy suburban opener of a young boy playing with his Tonka trucks in the grass, to a Deli-ful of old duffers who sit around waxing idiotic. But often the scenarios that play out within Maquiling's excellent frame are scattershot and self-consciously told.
Likewise Maquiling has a perceptive eye for character; his film is populated with colorful brethren indeed. There's our hero, Jack Crawford (Marc Palmieri), the security guard who's distracted by a beautiful woman on a bus, loses his gun, and spends the rest of the movie trying to find it in the heat and the hostility of northern New Jersey. There's the beautiful woman herself (Nicol Zanzarella), a slight, diaphanous creature who appears as if from out of nowhere, haloed by the blazing midday sun. There's a funny guy with "connections" who helps Jack retrieve his missing piece (as played by Pasquale Gaeta, Eddie's a character with a capital C). And then there's Jack's mother, just a voice off-screen.
These are all finely written roles, all shapely individuals in one way or another.
But the director's ability to create unique characterizations is undone by his failure to cast competent performers in the roles; there's amateurism run rampant here I'm afraid. A lot is asked of Palmieri and frankly he doesn't have the presence to be on-screen as long as he is (and this is a short movie, relatively speaking: 86 minute's worth). Kate (Zanzarella) is really only asked to look good and with that she complies. Gaeta is amusing though. He's no De Niro (although a lot of the time he sounds like him) and his constant profanity--"if you pardon my profanity"--soon develops a comforting, lyrical quality. He's clearly the best of the bunch and well utilized by the director. Think Joe Pesci's funny uncle.
Maquiling, too, has an ear for dialogue. Unfortunately it's a tone-deaf one for the most part. He can create manic, "After Hours"-styled pandemoniums populated by complex and witty individuals but he has the hardest time coming up with a line of dialogue that doesn't sound forced or just plain awkward. At times he seems to be trying too hard. Some improvisation might have helped the film considerably rather than having the actors constantly forced to reel off the director's stilted conversations.
You would think that this schizophrenic style--everything coming together at one point, everything falling apart the next--would tend to even itself out after a while but it doesn't. Both scenarios are frustrating because they speak to what might have been. "Too Much Sleep" has potential written all over it; Maquiling knows what he's about and, with a little maturation in the writing and casting departments, he's going to impress soon enough.
Not this time though. "Too Much Sleep" is an unsatisfying mix that just leaves one feeling overtired.
-- David N. Butterworth<EMAIL_ADDRESS>Got beef? Visit "La Movie Boeuf" online at http://members.dca.net/dnb
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


fun print(text: String, error: Boolean): Unit
Overrides CliktConsole.print
Show some text to the user.
text
- The text to display. May or may not contain a tailing newline.
error
- If true, the text is an error message, and should be printed in an alternate stream or
format, if applicable.


Account:
Main properties |
Smart-code |
HTML-code |
Sandbox |
Upload to blockchain |
|---|
| Token name: | The name must start with the big characters A-Z and can have the characters: 0-9, "_", "-" | |
| Cent name: | The name must start with the small characters a-z and can have the characters: 0-9, "_", "-" | |
| Precision: | ||
| ISIN: |
A you sure?
Wait a few seconds, pls...


[continued]
+Casting with copper alloyed with ☾, which is like very low solder and ard…es and old K and some Re out of xii
I have cast the cleanest I have ever seen, making very small figures as thin as paper. I have cast extremely hot in the very red mold, and have put into the melted mixture the two compositions which makes silver runny, and have done as if I wanted to throw with pure silver. This league is white when it boils, as with every other alloy which contains even just a small bit of silver. To cast something very delicate, use this.
Lute
There is none better than the one you have used to mold, that is to say lumps from your molds. But you need to choose some of the better recooked ones.
Crucible
Beware that it should be three fingers away from the mouth of the bellows and that the aforesaid bellows is positioned underneath the bottom of the crucible, otherwise it will cool it down.
Latten casting
I have taken the one you find in latten skillets, which have been beaten and forged quite thinly. Having well—heated it, I threw in two or three grains, like beads of sal ammonicac. This will clarify it like a mirror, having turned very white from all the heating, I threw in it some crushed raw and pure calamine. The I casted it in its very red mold. Il cast cleanly and thin like paper, and hollow on the back. Because it has become crusty I cooked it again, which to means to say, I reddened it, and left it to cool, then put it in bleach, made partly with raw tartar and half of common salt. Having boiled it well, I brushed it in clear water, because the first time it was
at left bottom margin
Do not let it cool down when melting. It always makes into filaments, as you would find with melted glass, because of the calamine. Usually, the soft letten of skillets, becomes red from casting, even when it has been in the fire for a longtime, because the calamine evaporates. But the brittle letten of candleholders becomes yellow, as well as the filings made of needles.
[continued]


tomdoc
-- TomDoc for Ruby - Version 0.9.0
TomDoc is a code documentation specification that helps you write precise documentation that is nice to read in plain text, yet structured enough to be automatically extracted and processed by a machine.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.
TomDoc for classes and modules consists of a block of single comment markers (#) that appear directly above the class/module definition. Lines SHOULD be wrapped at 80 characters. Lines that contain text MUST be separated from the comment marker by a single space. Lines that do not contain text SHOULD consist of just a comment marker (no trailing spaces).
Code examples SHOULD be indented two spaces (three spaces from the comment marker).
# Various methods useful for performing mathematical operations. All
# methods are module methods and should be called on the Math module.
# For example:
#
# Math.square_root(9)
# # => 3
#
module Math
...
end
A quick example will serve to best illustrate the TomDoc method documentation format:
# Duplicate some text an abitrary number of times.
#
# text - The String to be duplicated.
# count - The Integer number of times to duplicate the text.
#
# Examples
#
# multiplex('Tom', 4)
# # => 'TomTomTomTom'
#
# Returns the duplicated String.
def multiplex(text, count)
text * count
end
TomDoc for a specific method consists of a block of single comment markers (#) that appears directly above the method. There MUST NOT be a blank line between the comment block and the method definition. A TomDoc method block consists of a description section (required), an arguments section (required if the method takes any arguments), an examples section (optional), and a returns section (required). Lines that contain text MUST be separated from the comment marker by a single space. Lines that do not contain text SHOULD consist of just a comment marker (no trailing spaces).
The description section SHOULD be in plain sentences. Each sentence SHOULD end with a period. Good descriptions explain what the code does at a high level. Make sure to explain any unexpected behavior that the method may have, or any pitfalls that the user may experience. Lines SHOULD be wrapped at 80 characters.
If a method's description begins with "Public:" then that method will be considered part of the project's public API. For example:
# Public: Initialize a new Widget.
This annotation is designed to let developers know which methods are considered stable. You SHOULD use this to document the public API of your project. This information can then be used along with Semantic Versioning to inform decisions on when major, minor, and patch versions should be incremented.
If a method's description begins with "Deprecated:" then that method will be considered as deprecated and users will know that it will be removed in a future version.
The arguments section consists of a list of arguments. Each list item MUST be comprised of the name of the argument, a dash, and an explanation of the argument in plain sentences. The expected type (or types) of each argument SHOULD be clearly indicated in the explanation. When you specify a type, use the proper classname of the type (for instance, use 'String' instead of 'string' to refer to a String type). The dashes following each argument name should be lined up in a single column. Lines SHOULD be wrapped at 80 columns. If an explanation is longer than that, additional lines MUST be indented at least two spaces but SHOULD be indented to match the indentation of the explanation. For example:
# element - The Symbol representation of the element. The Symbol should
# contain only lowercase ASCII alpha characters.
All arguments are assumed to be required. If an argument is optional, you MUST specify the default value:
# host - The String hostname to bind (default: '<IP_ADDRESS>').
For hash arguments, you SHOULD enumerate each valid option in a way similar to how normal arguments are defined:
# options - The Hash options used to refine the selection (default: {}):
# :color - The String color to restrict by (optional).
# :weight - The Float weight to restrict by. The weight should
# be specified in grams (optional).
The examples section MUST start with the word "Examples" on a line by itself. The next line SHOULD be blank. The following lines SHOULD be indented by two spaces (three spaces from the initial comment marker) and contain code that shows off how to call the method and (optional) examples of what it returns. Everything under the "Examples" line should be considered code, so make sure you comment out lines that show return values. Separate examples should be separated by a blank line. For example:
# Examples
#
# multiplex('x', 4)
# # => 'xxxx'
#
# multiplex('apple', 2)
# # => 'appleapple'
The returns section should explain in plain sentences what is returned from the method. The line MUST begin with "Returns". If only a single thing is returned, state the nature and type of the value. For example:
# Returns the duplicated String.
If several different types may be returned, list all of them. For example:
# Returns the given element Symbol or nil if none was found.
If the return value of the method is not intended to be used, then you should simply state:
# Returns nothing.
If the method raises exceptions that the caller may be interested in, add additional lines that explain each exception and under what conditions it may be encountered. The lines MUST begin with "Raises". For example:
# Returns nothing.
# Raises Errno::ENOENT if the file cannot be found.
# Raises Errno::EACCES if the file cannot be accessed.
Lines SHOULD be wrapped at 80 columns. Wrapped lines MUST be indented under the above line by at least two spaces. For example:
# Returns the atomic mass of the element as a Float. The value is in
# unified atomic mass units.
Ruby's built in attr_reader
, attr_writer
, and attr_accessor
require a
bit more consideration. With TomDoc you SHOULD NOT use attr_access
since it
represents two methods with different signatures. Restricting yourself in this
way also makes you think more carefully about the read vs. write behavior and
whether each should be part of the Public API.
Here is an example TomDoc for attr_reader
.
# Public: Get the user's name.
#
# Returns the String name of the user.
attr_reader :name
Here is an example TomDoc for attr_writer
. The parameter name should be the
same as the attribute name.
# Set the user's name.
#
# name - The String name of the user.
#
# Returns nothing.
attr_writer :name
While this approach certainly takes up more space than listing dozens of attributes on a single line, it allows for individual documentation of each attribute. Attributes are an extremely important part of a class and should be treated with the same care as any other methods.


Shahzeb Ihsan
{% unless site.git == "" %}
{% endunless %}
{% unless site.google-plus == "" %}
{% endunless %}
{% unless site.linkedin == "" %}
{% endunless %}
{% unless site.flickr == "" %}
{% endunless %}
{% unless site.twitter == "" %}
{% endunless %}
"The reasonable man adapts himself to the world; the unreasonable man persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw
{% include nav-links.html %}


infesim
Simulation of infectious diseases
Using mathematical models
Parameters
Simulation
SIR model
The SIR model is an epidemiological model that computes the theoretical number of people infected with a contagious illness in a closed population over time.
Population
The model consists of three compartments:
- Susceptible individuals (\(S\))
- Infectious individuals (\(I\))
- Recovered individuals (\(R\))
The total population consists of \(N = S(t) + I(t) + R(t)\) individuals. Moreover, the model defines a transmission rate \(\beta\) and a recovery rate \(\gamma\).
Evolution
The dynamics of the epidemic can be summarized in the following diagram: \[\text{Susceptible} \xrightarrow{\beta SI / N} \text{Infectious} \xrightarrow{\gamma I} \text{Recovered}\] Or, equivalently, they can be described by the following set of ordinary differential equations:
- \(\displaystyle \frac{dS}{dt} = -\frac{\beta SI}{N}\)
- \(\displaystyle \frac{dI}{dt} = \frac{\beta SI}{N} - \gamma I\)
- \(\displaystyle \frac{dR}{dt} = \gamma I\)
Simulation
The simulation is reduced to solving the previous set of equations.
Since it's an ODE, it can be easily solved using the Euler method.
This method consists of taking small steps, and repeatedly adding the slope:
- \(\displaystyle S(t + \Delta t) \approx S(t) + \frac{dS}{dt}(t) \Delta t\)
- \(\displaystyle I(t + \Delta t) \approx I(t) + \frac{dI}{dt}(t) \Delta t\)
- \(\displaystyle R(t + \Delta t) \approx I(t) + \frac{dR}{dt}(t) \Delta t\)


Dashday//home
Next scheduled run: ${nextRun}
×
Woot!
Dashday configuration updated successfully.
×
Woot!
Dashday reloaded successfully.
Dashday is
active
Reload
Dashday


Custom built portfolio, made from scratch. I used the latest versions of Bootstrap, HTML 5, and CSS 3.
Bio-Project
Group project, learned how to use git, and embeded 3 different APIs
Cynical Traverler's Guide
I created a Daily planner utilizing local storage, and a color scheme based on the time of day.
Daily Planner
Made a Resume - Created this using a template.


Privacy, simplified.
- ✔ We don't store your personal info.
- ✔ We don't follow you around with ads.
- ✔ We don't track you. Ever.
Trusted by millons worldwide
Trusted by millons worldwide
Our privacy policy is simple: we don't collect
or share any of your personal information.
We don't store your search history. We therefore have nothing
to sell to advertisers that track you across the Internet.
Other search engines track your searches even when you’re
in private browsing mode. We don’t track you — period.
No traking, no ad targeting, just searching.


Welcome to Kizura's Art Commissions!
I will not be drawing anything NSFW, mecha and furries. Feel free to use the "More Details" section to specify your requirements.
The prices of the backgrounds could vary, the solid colour would be free, a simple one similar to the examples below would be £10 and a Detailed/Complexed background would go for £50.
The maximum number of characters times the drawing style, plus the background determines the overall price of the commission.


{% extends "base.html" %} {% block left_content %}
{% endblock %} {% block main_content %}There is a lot of work to be done on this project. We welcome all donations, whatever their value. Every penny we receive helps to further our research and development in cyber intelligence operations.
This research benefits IT professionals and offers awareness that ads in defending against cyber attacks. It also helps educate the public in the technologies that threaten their privacy. Knowing how things work allows us to exercise privacy.
{% endblock %}


| Account 1 | ||
|---|---|---|
| Account Number : | ||
| Customer ID : | ||
| Account Type | ||
| Balance |
You can add account here
You Lodge money into one of your account
You can transfer money from one account to another!
Withdraw Money
Get the balance of one of your accounts
| Requested Balance | ||
|---|---|---|
| Account Number you requested from : | ||
| Balance : |


Coarse has all the features you'd expect (like swiping, wrapping, and dot navigation), without the overhead of a massive carousel library.
While some carousel libraries are extremely robust, they can weigh a lot - some even 60kb+! Coarse is ~1kb minfied and gzipped.
Components need to match your brand and fit in stylistically. Coarse only ever modifies HTML attributes, so you never have to worry about CSS conflicts.
Coarse uses event bubbling to minimize the number of event listeners used per carousel, so your DOM won't get bogged down. Carousels are moved using a simple 3D transform, and styles are computed ahead of time.
Coarse doesn't interrupt focus states or tab order, and controls are given appropriate attributes like title
.


Simple form builder demo (Part 2)
Simple input
Radio/Checkbox/List
Buttons
Comments
Text Input
Password
Combobox
Option 1
Option 2
Option 3
Radio buttons
Option 1
Option 2
Option 3
Checkboxes
Option 1
Option 2
Option 3
Select multiple
Option 1
Option 2
Option 3
Simple Button
Primary Button
Save Button
Delete Button
Usage:
Drag drop fields from left
Click on the fields to customize
Click Preview to see the rendered form and code
Learn more about this code
Please enable JavaScript to view the
comments powered by Disqus.
comments powered by
Disqus


--- layout: page title: "About" description: "This is what I do." header-img: "img/about-bg.jpg" ---
Hi, I'm Trung, an iOS developer from Hanoi, Vietnam
Hire me!


public interface AudioNodeEntry
AudioNode
with configuration options.
This class can be constructed with an AudioNodeEntryBuilder
.| Modifier and Type | Method and Description |
|---|---|
long |
getBaseReconnectInterval()
Returns a user-specified (or default) "base" interval used for reconnection purposes.
|
LavaClient |
getClient()
Fetches the
LavaClient instance associated with this entry. |
SocketHandler |
getHandlerByName(java.lang.String name)
Attempts to fetch a
SocketHandler registered to this entry associated with a given name. |
java.util.Map<java.lang.String,SocketHandler> |
getHandlerMap()
Fetches an unmodifiable view of the internal
SocketHandler map. |
java.util.List<SocketHandler> |
getHandlers()
Fetches an unmodifiable list containing all the
SocketHandlers registered to this entry. |
java.lang.String |
getHttpAddress()
Fetches the HTTP address of the
AudioNode this entry represents, as used by the LavaHttpManager class. |
ReconnectIntervalFunction |
getIntervalExpander()
Returns a user-specified (or default)
ReconnectIntervalFunction used to
change the next interval for the next reconnect attempt. |
java.util.concurrent.TimeUnit |
getIntervalTimeUnit()
Returns a user-specified (or default) TimeUnit needed for LavaClient to know how long to wait for.
|
long |
getMaximumReconnectInterval()
Returns a user-specified (or default) maximum interval used for reconnection purposes.
|
java.lang.String |
getPassword()
Fetches the password of the associated
AudioNode . |
java.lang.String |
getRawAddress()
Fetches the server address of the
AudioNode this entry represents,
as provided by the user through an AudioNodeEntryBuilder . |
int |
getRestPort()
Fetches the REST API port of the associated
AudioNode . |
SocketInitializer |
getSocketInitializer()
Fetches the possibly-null
SocketInitializer used to "initialize" a LavaClient WebSocket connection. |
java.lang.String |
getWebSocketAddress()
Fetches the WebSocket address (with the
'ws://' scheme) of the AudioNode this entry represents. |
com.neovisionaries.ws.client.WebSocketFactory |
getWebSocketFactory()
Returns a user-specified (or default) WebSocketFactory used to create the sockets needed to connect to nodes.
|
int |
getWebSocketPort()
Fetches the WebSocket port of the associated
AudioNode . |
@Nonnull LavaClient getClient()
LavaClient
instance associated with this entry.
Note: This entry gets its default values from the client.
LavaClient
instance from which the entry gets its default values.@Nonnull java.lang.String getRawAddress()
AudioNode
this entry represents,
as provided by the user through an AudioNodeEntryBuilder
.AudioNode
this entry represents.@Nonnull java.lang.String getHttpAddress()
AudioNode
this entry represents, as used by the LavaHttpManager
class.AudioNode
this entry represents, with a default 'http://'
scheme if not already provided.@Nonnull java.lang.String getWebSocketAddress()
'ws://'
scheme) of the AudioNode
this entry represents.
This value cannot be specified manually -- it is constructed from the original server address passed to LavaClient.
AudioNode
this entry represents.@Nonnull java.lang.String getPassword()
AudioNode
.
The password of this entry will be replaced with the default password if one isn't specified during construction of this entry.
AudioNode
this entry represents.@Nonnegative int getWebSocketPort()
AudioNode
.
The WebSocket port of this entry will be replaced with the default WebSocket port if one isn't specified during construction of this entry.
AudioNode
this entry represents.@Nonnegative int getRestPort()
AudioNode
.
The REST API port of this entry will be replaced with the default REST API port if one isn't specified during construction of this entry.
AudioNode
this entry represents.@Nullable SocketInitializer getSocketInitializer()
SocketInitializer
used to "initialize" a LavaClient WebSocket connection.SocketInitializer
attached to this node entry.@Nonnull com.neovisionaries.ws.client.WebSocketFactory getWebSocketFactory()
ReconnectIntervalFunction getIntervalExpander()
ReconnectIntervalFunction
used to
change the next interval for the next reconnect attempt.ReconnectIntervalFunction
.@Nonnull java.util.concurrent.TimeUnit getIntervalTimeUnit()
long getBaseReconnectInterval()
This value is basically the default interval, and it's used to reset old intervals as well as during initialization. This value CAN be negative.
@Nonnegative long getMaximumReconnectInterval()
Users should not cap the values in their expanders themselves, but instead set the maximum value here. LavaClient will automatically cap the produced value so it doesn't exceed this number.
@Nonnull java.util.Map<java.lang.String,SocketHandler> getHandlerMap()
SocketHandler
map.@Nonnull java.util.List<SocketHandler> getHandlers()
SocketHandlers
registered to this entry.SocketHandlers
.@Nullable SocketHandler getHandlerByName(@Nonnull java.lang.String name)
SocketHandler
registered to this entry associated with a given name.name
- The not-null name to look-up.SocketHandler
instance.


Hidden
Hidden when printed
Invisible
Invisible when printed
Visible only when printed
Visible only to screen readers
Hidden on small screens and above
Hidden on medium screens and above
Hidden on large screens and above
Hidden on extra-small screens
Hidden on small screens and under
Hidden on medium screens and under


PrimerFinder
What does it do?
The PrimerFinder performs in silico PCR analyses on FASTA and FASTQ formatted files.
There are two different modules:
PrimerFinder Legacy computes primer binding and amplicon statistics on FASTA formatted files using the now retired ePCR suite of tools from NCBI.
PrimerFinder Supremacy is able to process FASTA- and FASTQ-formatted files. If using FASTQ files, BBMap is employed to bait out reads containing primer sequences. A second round of baiting is performed using the previously-baited reads. Contigs are assembled by SPAdes with only the baited reads.
For both FASTA-formatted files and contigs assembled from FASTQ-formatted files, primers are BLASTed against contigs, and outputs are parsed to determine primer binding, and amplicon statistics
How do I use it?
Subject
In the Subject
field, put primer_finder
. Spelling counts, but case sensitivity does not.
Description
In the Description
field, you must provide:
Required Components
-
program=requested_program
- acceptable programs are
legacy
andsupremacy
- acceptable programs are
-
analysis=requested_analysis
-
acceptable analyses are
custom
andvtyper
-
custom
analyses require a FASTA-formatted file of primers you wish to use (see Attachments section for additional details) -
vtyper
analyses will use the primer set from the vtyper tool
-
-
-
a list of SEQIDs (one per line)
Optional Components
In order to customise your PrimerFinder analyses, several settings can be optionally modified
- Number of mismatches allowed.
- default is
2
- options are
0
,1
,2
,3
. Anything else will return an error - modify as follows:
mismatches=1
- default is
- Format of sequence files to use (note that PrimerFinder legacy will still use FASTA-formatted files even if you try
to specify FASTQ)
- default is
fasta
- options are:
fasta
andfastq
- modify as follows:
format=fastq
- default is
- K-mer size to use for SPAdes assembly
- default is
55,77,99,127
- either provide and integer, e.g.
33
, or a comma-separated list, e.g.21,33,55
- modify as follows:
kmersize=33
ORkmersize=21,33,55
- default is
- Export amplicons in PrimerFinder Legacy (amplicons are created by default by PrimerFinder Supremacy)
- default is
False
- modify as follows:
exportamplicons
- default is
Attachments
For custom
analyses, you are required to attach a FASTA-formatted file containing the primer set(s) you wish analysed.
The file must have the following format:
>gene1-F
seq
>gene1-R
seq
>gene2-F1
seq
>gene2-R1
seq
>gene2-F2
seq
>gene2-R2
seq
.....
You are allowed to use IUPAC degenerate bases in this file. Please don't add too many degenerate bases, as the number of primers combinations can increase quickly.
# Dictionary of degenerate IUPAC codes
iupac = {
'R': ['A', 'G'],
'Y': ['C', 'T'],
'S': ['C', 'G'],
'W': ['A', 'T'],
'K': ['G', 'T'],
'M': ['A', 'C'],
'B': ['C', 'G', 'T'],
'D': ['A', 'G', 'T'],
'H': ['A', 'C', 'T'],
'V': ['A', 'C', 'G'],
'N': ['A', 'C', 'G', 'T'],
'-': ['-']
}
Examples
Example PrimerFinder analyses:
PrimerFinder Legacy, custom analyses issue 16084
PrimerFinder Legacy, vtyper analyses issue 16085
PrimerFinder Supremacy, custom analyses, FASTA format issue 16086
PrimerFinder Supremacy, custom analyses, FASTQ format issue 16087
Interpreting Results
PrimerFinder Legacy
PrimerFinder Legacy will upload ePCR_report.csv
, which contains the strain name, gene name as parsed from the primer
file, location of the calculated amplicon, the size of the amplicon, the name of the contig on which the amplicon was
found, the total number of mismatches between the primer set and the target sequence, and the primers used to create the amplicon.
Here's an example created using the example primer file from the Attachments
section of Redmine issue 16084
| Sample | Gene | GenomeLocation | AmpliconSize | Contig | TotalMismatches | PrimerSet |
|---|---|---|---|---|---|---|
| 2014-SEQ-1390 | gene1 | 30506-30699 | 194 | contig_1 | 0 | gene1_0_0 |
| 2014-SEQ-1390 | gene2 |<PHONE_NUMBER>23 | 285 | contig_32 | 1 | gene2_1_1 |
Note that the way the primer set is numbered is based on the number of primer sets with the same gene name: gene1 had
one primer set, gene1-F
and gene1-R
, and these are represented as gene1_0_0
. There were two
primer sets for gene2, and in this example gene2-F2
and gene2-R2
annealed (with one mismatch)
If requested, amplicon sequences for each match will be created. Using the same example as above 2014-SEQ-1390_amplicons.fa
will contain:
>2014-SEQ-1390_contig_1_476139_476423_gene1_0_0
amplicon.....
>2014-SEQ-1390_contig_32_27409_27668_gene2_1_1
amplicon.....
PrimerFinder Supremacy
PrimerFinder Supremacy will generate ePCR_report.csv
within the consolidated_report
folder. This report contains the
following fields: strain name, gene name parsed from the primer file, location of the amplicon, size of the amplicon,
name of contig on which the amplicon was found, the forward and reverse primers used to create the amplicon, the number of mismatches for the forward and reverse primers.
Here's an example created using the example primer file from the Attachments
section of Redmine issue 16084
| Sample | Gene | GenomeLocation | AmpliconSize | Contig | ForwardPrimers | ReversePrimers | ForwardMismatches | ReverseMismatches |
|---|---|---|---|---|---|---|---|---|
| 2014-SEQ-1390 | gene1 | 30506-30699 | 194 | contig_1 | gene1-F_0 | gene1-R_0 | 0 | 0 |
| 2014-SEQ-1390 | gene2 |<PHONE_NUMBER>23 | 285 | contig_32 | gene2-F2_0 | gene2-R2_0 | 1 | 0 |
Note that the primer names have _0
appended to the end. In the case of IUPAC bases being present in the primer sequence, this number will be incremented for each primer created to satisfy all possible
combinations.
Amplicon sequences are always included. Using the same example as above, 2014-SEQ-1390_amplicons.fa
will contain:
>2014-SEQ-1390_contig_1_gene1-F_0_gene1-R_0
amplicon
>2014-SEQ-1390_contig_32_gene2-F2_0_gene2-R2_0
amplicon
Raw BLAST results are also uploaded. In the example above, 2014-SEQ-1390_rawresults.csv
will contain:
| qseqid | sseqid | positive | mismatch | gaps | evalue | bitscore | slen | length | qstart | qend | qseq | sstart | send | sseq |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| contig_1 | gene1-R_0 | 25 | 0 | 0 | 3.07E-07 | 50.1 | 25 | 25 | 476399 | 476423 | TACGGTTCCTTTGACGGTGCGATGA | 25 | 1 | TACGGTTCCTTTGACGGTGCGATGA |
| contig_1 | gene1-F_0 | 25 | 0 | 0 | 3.07E-07 | 50.1 | 25 | 25 | 476139 | 476163 | GTGAAATTATCGCCACGTTCGGGCA | 1 | 25 | GTGAAATTATCGCCACGTTCGGGCA |
| contig_32 | gene2-F2_0 | 20 | 1 | 0 | 4.41E-06 | 42.1 | 21 | 21 | 27648 | 27668 | CGCCTTATTATACGACCAAAG | 21 | 1 | CGCCTTATTTTACGACCAAAG |
| contig_32 | gene2-R2_0 | 20 | 0 | 0 | 1.74E-05 | 40.1 | 20 | 20 | 27409 | 27428 | TGCCCAAAGCAGAGAGATTC | 1 | 20 | TGCCCAAAGCAGAGAGATTC |
How long does it take?
PrimerFinder Legacy and PrimerFinder Supremacy on FASTA mode are very fast (seconds per sample), while PrimerFinder Supremacy FASTQ mode is relatively slow (a few minutes per sample)
What can go wrong?
- Requested SEQIDs are not available.
- Not including the
program=requested_program
component, or requesting an unsupported program - Not including the
analysis=requested_analysis
component, or requesting an unsupported analysis - Specifying an unsupported number of
mismatches
- Incorrectly formatted
kmersize
- Attaching an incorrectly formatted primer file, or not including a primer file for
custom
analyses - ?
If anything goes wrong, an error message explaining the error should be returned.