The selected works will be grouped together and displayed as a single group item on your record. All versions of the work will still be available but one will be shown as your preferred version
Learn more about combining worksPlease check the selected works are correct before combining them.


--- layout: post status: publish published: true title: New Year 08 Photos season 1 author: Leask author_login: leask author_email<EMAIL_ADDRESS>author_url: https://leaskh.com wordpress_id: 272 wordpress_url: http://leaskh.wordpress.com/2008/03/20/new-year-08-photos-season-1 date: '2008-03-20 21:35:14 +0800' date_gmt: '2008-03-20 21:35:14 +0800' categories: tags: [] comments: [] ---


GetCapabilities
Battery
CPU
Storage
Display
Device Orientation
Build
Locale
Network
Wifi Network
Cellular Network
SIM
Peripheral


Lean development
in a fluid environment
Factorial ist ein Entwicklungsstudio aus Hamburg.
Fabalicious is a swiss army knife for common (drupal) tasks like
Reset an instance to a common state from code
Deploy new code to an instance
Backup files and databases and restore them again
Copy remote database and files to another instance
Run scripts before or after specific tasks
Run scripts on the parent host to orchestrate docker or similar software
Create SSH-tunnels to remote hosts
Install and destroy instances with one command
(e.g. for continuous integration)


Gain access to our full library of tutorials along with expert code reviews. Perfect for any developers who are serious about honing their skills.
$29 per month
Full access for less than $1 a day
Tutorials by industry experts
Peer & expert code review
Coding exercises
Access to our GitHub repos
Community forum
Flashcard decks
New videos every week


{% extends "base.html" %} {% load breadcrumbs %} {% load headers %} {% load query_params %} {% block page_title %}Cookie Details - {{ block.super }}{% endblock %} {% block page_content %}
{{ settings.SERVICE_NAME }} Service puts small files (known as ‘cookies’) onto your computer to collect information about how you browse the site and to enable the service to function efficiently and securely.
We use cookies to store information about how you use the {{ settings.SERVICE_NAME }} website, such as the pages you visit.
Cookies are used to:
Find out more about how to manage cookies.
We use Google Analytics software (Universal Analytics) to collect information about how you use {{ settings.SERVICE_NAME }} Service. We do this to help make sure the site is meeting the needs of its users and to help us make improvements, for example improving site search.
Google Analytics stores information about:
We do not collect or store your personal information (for example your name or address) so this information can’t be used to identify who you are.
{{ settings.SERVICE_NAME }} Service does not use Google Analytics after you have logged in to use the service.
We do not allow Google to use or share our analytics data.
Google Analytics sets the following cookies:
| Name | Purpose | Expires |
|---|---|---|
| _ga | This helps us count how many people visit {{ settings.SERVICE_NAME }} by tracking if you’ve visited before | 2 years |
| _gid | This helps us count how many people visit {{ settings.SERVICE_NAME }} by tracking if you’ve visited before | 24 hours |
| _gat | Used to manage the rate at which page view requests are made | 10 minutes |
When you submit information through a form, a cookie is set to cross-reference data submitted by you against data received by the system.
| Name | Purpose | Expires |
|---|---|---|
| csrftoken | Safeguards against cross site request forgery | Set with a future expiry date. Standard practice for this type of cookie. |
You may see a banner when you visit {{ settings.SERVICE_NAME }} Service inviting you to accept cookies or review your settings. We’ll set cookies so that your computer knows you’ve seen it and not to show it again, and also to store your settings.
| Name | Purpose | Expires |
|---|---|---|
| {{ settings.COOKIE_SETTINGS_COOKIE_NAME }} | Saves your cookie consent settings | {{ settings.COOKIE_SETTINGS_EXPIRY }} days |
| {{ settings.COOKIE_PREFERENCES_SET_COOKIE_NAME }} | Lets us know that you’ve saved your cookie consent settings | {{ settings.COOKIE_SETTINGS_EXPIRY }} days |
| {{ settings.GLOBAL_BAR_SEEN_COOKIE_NAME }} | Remembers if you’ve seen the message about saving your cookie consent settings | {{ settings.COOKIE_SETTINGS_CONFIRMATION_BANNER }} days |


Start Quiz
High Score
Information regarding this Quiz
Try to answer the following code-related questions within the time limit. Keep in mind that incorrect answers will penalize your score time by ten seconds!
Exit Quiz
Continue
Code Quiz
Time Left =
100
You have completed the quiz!
Your final score is:
Please enter your initials:
Submit
High Scores:
username
score
Clear
Return


{% extends 'base.html' %} {% block title %}PDX Apartment Scorer{% endblock %} {% block page_content %}
How much should you pay for your apartment?
or you can play with the variables and find the value of a theoretical rental


| GEOS SDK TechDocs
|
|
| Parse Library
| 2 Parser Functions
The Parse Library takes a string of characters and evaluates it. In many ways, it acts like a compiler; it translates a string into tokens, evaluates the tokens, and returns the result. It can also reverse the process, translating a sequence of tokens into the equivalent text string. Finally, it can simplify a string of tokens, performing arithmetic simplifications and calling functions. The parse library provides many useful functions; furthermore, applications can define their own functions.
The different functions are separated into different parts of the parse library. The parse library contains the following basic sections:
-
Scanner
The scanner reads a text string and converts it into a series of tokens. It does not keep track of the context of the tokens. Its behavior is partially determined by the localization settings; for example, it uses the localization setting to tell whether the decimal separator is a period, a comma, or some other character or string. It is called by the parser; it is not used independently.
-
Parser
The parser interprets the stream of tokens returned by the scanner. It initializes the scanner and uses it to read tokens from the input strings; it also makes sure that the string of tokens is legally formatted. It does not do any type-checking.
-
Evaluator
The evaluator simplifies a token string. It does this by replacing arithmetic expressions with their results, by making function calls, by reading current values of cells, and by replacing identifiers with their values. The result is another token string; usually this string consists of a single token (a number or string).
-
Formatter
The formatter translates a token string into a text string. It is used to display the evaluator's output. Its behavior is influenced by the localization settings.
For example, suppose an application used the parse library to evaluate the string "(5*6)+SUM(A2:C6)". The following steps would be taken:
-
The parser would parse the string. It would do this by calling the scanner to read tokens from the string. It would then parse the token sequence to see that it evaluated to a well-formed expression. (It would not do any simplifying or type-checking.)
-
The evaluator would simplify the expression. It would reduce the token sequence for "(5*6)" to the single token for "30". It would then call the SUM function, passing it the specifier for the range of cells "A2:C6". The SUM function would check the type of its arguments, then perform the appropriate action (in this case, adding the values of the cells together). The SUM function would return a value (e.g., it might return 999.9). The evaluator would thus be able to simplify the entire token sequence to the single token for the number 1029.9.
-
When the application needed to display the result, it would call the formatter. The formatter would check the localization settings, finding out what the thousands separator and decimal point character are. It would create the string "1,029.9".
Token strings are usually more compact than the corresponding text strings. There are several reasons for this; for example, cell references are much more compact, functions are specified by an ID number instead of a string, and white space is removed. When translated into a token string, it is only three bytes long: one token byte to specify that this is a number, and two data bytes to store the value of the number. For this reason, applications which use the parse library will generally not store the text entered by the user; instead, they can store the equivalent token string, and use the formatter to display the string when necessary.
The parse library routines often need to request information from the calling application or instruct it to perform a task. For example, when the Parser encounters a name, it needs to get a name ID from the calling application. For this reason, every Parse Library routine is passed a callback routine. The library routine calls this callback routine when necessary, passing a code indicating what action the callback routine should take. The beginning section will just describe this in general terms; for example, "the Evaluator uses the callback to find out the value of a cell." The advanced section provides a more detailed explanation.
The Scanner
The Parser
Evaluator
Formatter
| GEOS SDK TechDocs
|
|
| Parse Library
| 2 Parser Functions


[embedTimeline] widget-id =<PHONE_NUMBER>01117184 tweet-limit = 2 aria-polite = "assertive" chrome = "nofooter transparent" width = 520 height = 600 theme = "dark" border-color = "#FFF" dnt = 0 lang = "en" ==


{{define "changelog"}} {{template "header"}}
Experimental version of MMSd is now up and running. Use it at your own risk!


Let ACDB be a parallelogrammic area, and BC its diameter.
I say that the opposite sides and angles of the parallelogram ACDB equal one another, and the diameter BC bisects it.
Since AB is parallel to CD, and the straight line BC falls upon them, therefore the alternate angles ABC and BCD equal one another.
Again, since AC is parallel to BD, and BC falls upon them, therefore the alternate angles ACB and CBD equal one another.
Therefore ABC and DCB are two triangles having the two angles ABC and BCA equal to the two angles DCB and CBD respectively, and one side equal to one side, namely that adjoining the equal angles and common to both of them, BC. Therefore they also have the remaining sides equal to the remaining sides respectively, and the remaining angle to the remaining angle. Therefore the side AB equals CD, and AC equals BD, and further the angle BAC equals the angle CDB.
Since the angle ABC equals the angle BCD, and the angle CBD equals the angle ACB, therefore the whole angle ABD equals the whole angle ACD.
And the angle BAC was also proved equal to the angle CDB.
Therefore in parallelogrammic areas the opposite sides and angles equal one another.
I say, next, that the diameter also bisects the areas.
Since AB equals CD, and BC is common, the two sides AB and BC equal the two sides DC and CB respectively, and the angle ABC equals the angle BCD. Therefore the base AC also equals DB, and the triangle ABC equals the triangle DCB.
Therefore the diameter BC bisects the parallelogram ACDB.
Therefore in parallelogrammic areas the opposite sides and angles equal one another, and the diameter bisects the areas.
This proposition begins the study of areas of rectilinear figures. It is a modest beginning, but it allows the comparison of triangles and parallelograms so that problems and results concerning one can be converted to problems and results concerning the other.


Melee
Damage: 167 - 453
Power: 49
Speed: 0
Hit rating: 2.17%
Critical: 15.12%
Attributes
Strength: 59
Agility: 90
Intellect: 1058
Stamina: 2197
Spirit: 175
Expertise: 3


--- layout: post title: 'Refactoring Net::SSH: Part 2' post_id: 339 categories: - under the hood date: 2004-10-11 00:42:00.000000000 -06:00 author: Jamis permalink: 2004/10/11/refactoring-net-ssh-part-2.html ---
This is the second in a series of articles that deal with refactoring the Net::SSH library to take advantage of dependency injection. The first was Net::SSH Refactoring Adventure.
Because I am using Syringe, and because the Syringe API has not yet solidified, refactoring Net::SSH to use Syringe is something of an iterative process. For example, I defined the services using one version of the Syringe API. Then, I implemented a suggestion from Eivind Eklund, adding a few new API’s to Syringe. This caused me to go back and change how the services were defined in Net::SSH, and so forth.
The original interface (which is still supported) was to call #register
on the container every time one wanted to install a new service definition:
container.register( :something ) { SomeImplementation.new }
This works great. It is actually the same syntax that Jim Weirich proposed in his article on dependency injection in Ruby, which inspired me to write Syringe in the first place.
However, Eivind pointed out that if you are registering many services in one place (which will often be the case), the “container.register
” part starts detracting from the readability of your code. You wind up with something like this:
container.register( :something ) { ... } container.register( :another ) { ... } container.register( :yet_another ) { ... } container.register( :foo ) { ... } container.register( :bar ) { ... } container.register( :baz ) { ... } ...
So, Eivind proposed using an instance_eval
‘d block, within which the service names are functions to which their construction blocks are attached directly. This seems to follow the DRY rule, as well.
This new interface is introduced via the register!
method (note the bang at the end of the name).
container.register! do something {...} another {...} yet_another {...} foo {...} bar {...} baz {...} ... end
Likewise, there are corresponding methods for registering libraries:
Syringe::register_library! {...} Syringe::register_library_namespace! {...}
And also for declaring a namespace on a container:
Container#namespace! {...}
Note the convention: bang methods in Syringe will denote the instance_eval
‘d version of the method.
I should also note that the instance_eval
is done on a proxy object, to prevent pollution of the Container
namespace. The proxy object also defines convenience methods for service interception, requiring libraries, and namespace declaration:
container.register! do something { ... } namespace :foo do something {...} ... end intercept( :something ).with { ... } require "some/syringe-ified/library' end
So, in Net::SSH, there is a namespace called “net.ssh.transport.ossl”. This namespace (and its subnamespaces) includes all of the OpenSSL-specific functionality in Net::SSH. As such, it declares a lot of services—various factories, some Hashes for storing configuration information, etc. It was functional and fairly readable in the old syntax:
Syringe.register_library_namespace( "net/ssh/transport/ossl/package", :ossl ) do |c| c.register( :hmac_algorithm_sources ) { Array.new } c.require( "/net/ssh/transport/ossl/hmac/package" ) c.register( :cipher_names ) do Hash.new "3des-cbc" => "des-ede3-cbc", "blowfish-cbc" => "bf-cbc", ... end ... c.register( :cipher_factory, :model => :singleton_deferred ) do |c| require 'net/ssh/transport/ossl/cipher-factory' svc = Net::SSH::Transport::OSSL::CipherFactory.new( c.cipher_names ) svc.identity_cipher = c.identity_cipher svc end c.register( :hmac_factory, :model => :singleton_deferred ) do |c| require 'net/ssh/transport/ossl/hmac-factory' Net::SSH::Transport::OSSL::HMACFactory.new( c.hmac_algorithm_sources ) end ... end
However, converting it to the new syntax made it even better:
Syringe.register_library_namespace!( 'net/ssh/transport/ossl/package', :ossl ) do hmac_algorithm_sources { Array.new } require 'net/ssh/transport/ossl/hmac/package' cipher_names do Hash.new "3des-cbc" => "des-ede3-cbc", "blowfish-cbc" => "bf-cbc", ... end ... cipher_factory( :model => :singleton_deferred ) do |c| require 'net/ssh/transport/ossl/cipher-factory' svc = Net::SSH::Transport::OSSL::CipherFactory.new( c.cipher_names ) svc.identity_cipher = c.identity_cipher svc end hmac_factory( :model => :singleton_deferred ) do |c| require 'net/ssh/transport/ossl/hmac-factory' Net::SSH::Transport::OSSL::HMACFactory.new( c.hmac_algorithm_sources ) end ... end


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/unknown.20local.20constant.3A.20_ffresh.2E0.html ---
Has anyone seen an otherwise successful def
error with unknown local constant: _ffresh.0
?
do you use variable
or parameter
? Do you use include
?
Yes to all of the above. :-) Changing the name of an argument of the function solved the problem.... Looks bug-ish to me, but I don't have time to minimise now so will proceed with slightly strange argument names!
you probably have variable x
, assumption h
mentioning x
, include h
and then you declare x
as an argument to your definition
Lean does not include the variable
but includes h
Last updated: Apr 24 2020 at 19:02 UTC


Total score: 0
Turn total: 0
Total score: 0
Turn total: 0
Rules of the game:
- If the player rolls a 1, they score nothing and it becomes the next player's turn.
- If the player rolls any other number, it is added to their turn total and the player's turn continues.
- If a player chooses to "hold", their turn total is added to their score, and it becomes the next player's turn.
- The first player to score 100 or more points wins.
Rules of the game:
- Two standard dice are rolled. If neither shows a 1, their sum is added to the turn total.
- If a single 1 is rolled, the player scores nothing and the turn ends.
- If two 1s are rolled, the player’s entire score is lost, and the turn ends.
- If a double is rolled, the point total is added to the turn total as with any roll but the player is obligated to roll again.
- The first player to score 100 or more points wins.


Brian Seitz<EMAIL_ADDRESS>)
http://wholok.com/
Created: 2001-11-10
Also available in Serbo-Croatian (translated by Anja Skrba from Webhostinggeeks.com)
To an IRC server, an IRC bot is virtually indistinguishable from a regular IRC client (i.e., a person using a program such as X-Chat, mIRC, or ircii). However, there's no person typing behind an IRC bot. It only makes automated responses, based on (usually) what is happening on IRC. An IRC bot can do things based on public messages, private messages, pings, or any other IRC event. But a bot isn't limited to the world of IRC. It can talk to a database, the web, a filesystem, or anything else you may imagine.
Here are some common IRC bots that you may have seen in your travels already:
Many IRC networks restrict the use of bots. When you log into an IRC server, check the MOTD (message of the day) to see what the policy is on bots. If you violate this policy, you may be banned from the server.
In practice, however, bots aren't automatically detectable. As long as your bot doesn't join an established channel and annoy people, you probably won't get in trouble. But IRC channels are free; make your own, invite your friends, and have a ball.
If you want to be really safe, you can run your own IRC server. If you're planning on extensive debugging, running an IRC on localhost will save you lots of time anyway. Check out generic IRCd and DALnet's Bahamut IRCd. These are very stable programs and should compile easily on a UNIX system, however the specifics of configuration are beyond the scope of this document.
What you will need to program an IRC bot
You can program in IRC bot in any language. Some IRC clients offer their own scripting languages that add automated functionality to your normal IRC session. However, we'll be using Perl.
Net::IRC is Perl module that talks the IRC protocol, abstracting most of the low-level details of programming an IRC bot. It primarily works as event-driven programming (we'll get to that later). You can get Net::IRC from CPAN.
You'll need to find an IRC server to connect to. A fairly comprehensive list can be found at irchelp.org. However, for debugging purposes, you may want to run your own IRC server.
No IRC bot is an island. While some IRC bots, such as a channel administration bot, can be useful without any interface to the outside world, we'll be using some non-IRC-specific software to make our bot more useful.
To program use the bots in this tutorial, you'll need the Perl modules LWP (Library for WWW access in Perl), HTML::Parser, and Text::Wrapper. For TriviaBot, we'll be using the MySQL database and the Perl DBI module. While learning about IRC bots, you may also find the Data::Dumper module useful. Go to CPAN to get these if you don't have them already.
HelloBot is a greeting bot. When a user, let's give him the nick "Joe," joins a channels, HelloBot will say "Hello, Joe!" When Joe leaves, HelloBot will say "Goodbye, Joe!" (Of course, since Joe has already left, he won't see the message, but other users in the channel will.)
[02:03:53] HelloBot<EMAIL_ADDRESS>has joined ## [02:03:53] <HelloBot> Hello everyone! [02:03:53] <HelloBot> Hello, HelloBot! [02:04:20] Harry<EMAIL_ADDRESS>has joined ## [02:04:20] <HelloBot> Hello, Harry! [02:04:25] Sally<EMAIL_ADDRESS>has left ## [02:04:25] <HelloBot> Goodbye, Sally! [02:04:38] Harry<EMAIL_ADDRESS>has left ## [02:04:38] <HelloBot> Goodbye, Harry!
The first thing we need to do is create the $irc object. The $irc object can handle more than one IRC connection, but for this tutorial we'll just be using one. So, let's do it:
use Net::IRC; # create the IRC object my $irc = new Net::IRC;
Now we need to create a connection object. This requires quite a few arguments, which should make sense if you're familiar with IRC. Our interactions with the IRC server will be through the $conn object.
# Create a connection object. You can have more than one "connection" per # IRC object, but we'll just be working with one. my $conn = $irc->newconn( Server => shift || 'turtle.wholok.com', # Note: IRC port is normally 6667, but my firewall won't allow it Port => shift || '80', Nick => 'HelloBot', Ircname => 'I like to greet!', Username => 'hello' ); # We're going to add this to the conn hash so we know what channel we # want to operate in. $conn->{channel} = shift || '##';
The "shift ||" parts allow us to change these parameters on the command line. For example, I could run:
./hello_nick.pl irc.slashnet.org 6667 #mychannel
So how does HelloBot know when someone joins the channel? In an iterative program, you would poll the IRC filehandle, parse the input, and call a subroutine if you have a join or leave event. Using Net::IRC removes the first two steps. You merely have to decide which events you want to handle, and define subroutines to handle them.
The first event we have to handle is connecting. We know that we're connected when we get the end of MOTD event, which is normally sent by an IRC server. This event is given the value "376". When we get the event, what we want to do join our channel and greet the channel. Here's how:
sub on_connect { # shift in our connection object that is passed automatically my $conn = shift; # when we connect, join our channel and greet it $conn->join($conn->{channel}); $conn->privmsg($conn->{channel}, 'Hello everyone!'); $conn->{connected} = 1; } # The end of MOTD (message of the day), numbered 376 signifies we've connect $conn->add_handler('376', \&on_connect);
In the on_connect subroutine, we introduce two methods of the $conn object, join and privmsg. join simply takes a channel as an argument. prvimsg is a bit more complicated. It is used to send both public and private messages (despite its name). If you put a channel name as the first argument, you will send publically to a channel. If you put a nick, you will send privately to the person with that nick. The second argument is the string you want to send.
After we've defined our subroutine, we use the add_handler method to link it to the event we're handling. The first argument is the event identifier, which is the string "376," not the number 376. It will not work if you send it as a number. Most of the popular events are identified by alphabetic strings, as we'll see later. The next argument is a reference to a function.
Next, we'll set up our join handler:
sub on_join { # get our connection object and the event object, which is passed # with this event automatically my ($conn, $event) = @_; # this is the nick that just joined my $nick = $event->{nick}; # say hello to the nick in public $conn->privmsg($conn->{channel}, "Hello, $nick!"); } $conn->add_handler('join', \&on_join);
The new thing here is the $event hash that is passed to the function. Most event handlers will take this as an argument (and it's the only argument event handlers will take, not counting the object, of course). Depending on the event, the contents of this hash will vary. Later, we'll see how to print out the contents of $event to learn how to program for different events. The only part of $event we're interested in here is the nick that initiated the event. This is held in an obvious place, as we can see. Next, we say "Hello" to the nick.
Now that we've set up our handlers, we're ready to start IRC. This is done with the simple command:
$irc->start();
Now we should be connected and ready to roll. Notice that we're using the first object we created, $irc, and
not the $conn object. This is because Net::IRC can handle more than one IRC connection in a single
instance.
Handling other common events: RokerBot
RokerBot (you'll also need WeatherGet.pm and WeatherParse.pm) retrieves weather information from http://www.weatherunderground.com/auto/roker/ and sends it to IRC. It does this whenever a user says "!roker [city], [state]"
[02:03:40] RokerBot<EMAIL_ADDRESS>has joined ## [02:03:40] <RokerBot> booya! it's Roker time! [02:05:58] <wholok> !roker New York, NY [02:05:59] <RokerBot> wholok, it's 50 F in New York, NY right now. Wind is NNW at 8 mph. Humidity is 61%. Roker would say it's Clear. Tonight Mostly clear. Lows in the lower 40s. North wind 10 to 15 mph becoming light. Thursday Mostly sunny. Highs in the upper 50s. Light and variable wind becoming south and increasing to 10 mph. [02:08:55] <wholok> !roker adsfoi34 234lkndf [02:08:57] <RokerBot> Unable to retrieve weather. Sorry, wholok.
This is a new event for us to handle, the public message event. Here's how RokerBot handles it:
sub on_public { # on an event, we get connection object and event hash my ($conn, $event) = @_; # this is what was said in the event my $text = $event->{args}[0]; # regex the text to see if it begins with !roker if ($text =~ /^\!roker (.+)/) { # if so, pass the text and the nick off to the weather method my $weather_text = weather($1, $event->{nick}); # wrap text at 400 chars (about as much as you should put # into a single IRC message my $wrapped_text = $wrapper->wrap($weather_text); my @texts = split("\n", $wrapped_text); # $event->{to}[0] is the channel where this was said foreach (@texts) { $conn->privmsg($event->{to}[0], $_); } } } $conn->add_handler('public', \&on_public);
Here there are two new parts of the $event hash that we are dealing with. The first one is $event->{args}. This is a reference to an array. The first value in this array is the text of the public message. We regex this text to check if it begins with !roker. If so, we pass off the rest of the message to the weather subroutine, which will return our weather text.
The other new $event hash part we are looking at is {to}. This is an array reference of each entity the event was sent to. In our case, we simply want our channel name, so we take the first part of that array.
From there, we wrap our text to a reasonable limit (sometimes the weather reports can be long), and send each line to the channel.
Our next event to handle is msg. An msg is a private message sent to the IRC bot directly. It is best to use msg events to interact with your bot if there are going to be a lot of interactions that could annoy other users. There's no practical difference in using msg as opposed to public messages, so here's a quick example:
sub on_msg { my ($conn, $event) = @_; # Under normal circumstances, simply reply to the nick that there's # no reason to /msg RokerBot. $conn->privmsg($event->{nick}, "Don't nobody /msg RokerBot."); } $conn->add_handler('msg', \&on_msg);
Obviously, you could make this interaction more useful, but the example shows the concept.
Check out the source code of Events.pm (or do a perldoc Net::IRC::Events) to see what other events an IRC bot can handle. When experimenting with these events, you may want to use the module Data::Dumper to see what the event is sending you:
use Data::Dumper; sub default { # This is helpful to see what an event returns. Data::Dumper will # recursively reveal the structure of any value my ($conn, $event) = @_; print Dumper($event); } # experiment with the cping event, printing out to standard output $conn->add_handler('cping', \&default);
Pretty much any IRC client command is a method of IRC::Connection. If you look in the source of Connection.pm, you'll get fairly good documentation on how to call them. For example, here's how you can use the mode method to make someone an op:
$conn-$gt;mode('#linux', '+o', 'tux');
TriviaBot: using $irc->do_one_loop
TriviaBot (you'll also need Trivia.pm) takes questions from a database, asks them, and checks users for answers to the question. There's on tricky thing, though, it has to give a 10 second interval between each question. With our event driven model, we can't quite do this.
[01:52:30] TriviaBot<EMAIL_ADDRESS>has joined ## [01:52:30] <TriviaBot> booya! it's Trivia time! [01:53:10] <Joe> !trivon [01:53:10] <TriviaBot> Trivia is on! First question in 10 seconds. [01:53:22] <TriviaBot> Pick a hand. [01:53:22] <TriviaBot> ***** [01:53:25] <Joe> le [01:53:30] <Joe> left [01:53:34] <wholok> ri [01:53:34] <TriviaBot> ri*** [01:53:35] <wholok> rig [01:53:35] <TriviaBot> rig** [01:53:39] <Sally> right [01:53:39] <TriviaBot> Correct answer by Sally! [01:53:39] <TriviaBot> right [01:53:39] <TriviaBot> Next question in 10 seconds [01:53:51] <TriviaBot> How large is an IPv6 address? [01:53:51] <TriviaBot> *** **** [01:53:56] <wholok> really big [01:54:01] <Joe> 128 bits [01:54:01] <TriviaBot> Correct answer by Joe! [01:54:01] <TriviaBot> 128 bits [01:54:01] <TriviaBot> Next question in 10 seconds [01:54:12] <Joe> !score [01:54:12] <TriviaBot> Score: [01:54:12] <TriviaBot> Sally: 1 [01:54:12] <TriviaBot> Joe: 1 [01:54:13] <TriviaBot> Who invented Perl? [01:54:13] <TriviaBot> ***** **** [01:54:28] <Sally> Larry rall [01:54:28] <TriviaBot> Larry *all [01:54:32] <wholok> larry wall [01:54:32] <TriviaBot> Correct answer by wholok! [01:54:32] <TriviaBot> Larry Wall [01:54:32] <TriviaBot> Next question in 10 seconds [01:54:36] <wholok> ha ha Sally! [01:54:44] <TriviaBot> Who is the Linux mascot? [01:54:44] <TriviaBot> *** [01:54:50] <Joe> penguin [01:54:56] <wholok> TUX! [01:54:56] <TriviaBot> Correct answer by wholok! [01:54:56] <TriviaBot> Tux [01:54:56] <TriviaBot> Next question in 10 seconds [01:55:08] <TriviaBot> What TV network does Mickey Mouse own? [01:55:08] <TriviaBot> *** [01:55:14] <Sally> NBC [01:55:14] <TriviaBot> *BC [01:55:19] <wholok> ABC [01:55:19] <TriviaBot> Correct answer by wholok! [01:55:19] <TriviaBot> ABC [01:55:19] <TriviaBot> Next question in 10 seconds [01:55:23] <wholok> !trivoff [01:55:23] <TriviaBot> Trivia is off! [01:55:25] <wholok> !score [01:55:25] <TriviaBot> Score: [01:55:25] <TriviaBot> Sally: 1 [01:55:25] <TriviaBot> Joe: 1 [01:55:25] <TriviaBot> wholok: 3
Our problem is fixed with the method do_one_loop. This takes the place of the start method. After establish our handlers, we call it like this:
sub handle_trivia_loop { my $conn = shift; $_ = $conn->{trivia}{status}; STATUS: { if (/^getquestion$/) { # get question from trivia object $conn->{trivia}->get_question(); # say the question, and show the hint repeat_question($conn); repeat_hint($conn); last STATUS; } if (/^waiting$/) { handle_waiting($conn); last STATUS; } } } # while forever, handle_trivia, then do an IRC loop while (1) { handle_trivia_loop($conn); $irc->do_one_loop(); }
Inside of handle_trivia_loop, we check timestamps if we need a 10 second interval. We also get a new question if our status tell us so. However, checking trivia answers is still done with the event driven model.
One of the hallmarks of an IRC bot that takes public command is the syntax "!command". This allows the bot to easily parse the traffic in the channel, since it's very unlikely that someone would want to say a real sentence starting with "!".
sub on_public { # two args are passed on events, the connection object and a # hash that describes the event my ($conn, $event) = @_; # this is the text of the event, eg, what the person said my $text = $event->{args}[0]; # we first check to see if it's a command (if it starts with !) if ($text =~ /^\!(.+)$/) { on_public_command($conn, $1, $event->{nick}); } # otherwise, we assume it's a guess to the current question else { # check the answers my $res = $conn->{trivia}->check_answer($event->{nick}, $text); # if we've got the right answer, then celebrate if ($res) { on_answer($conn, $res, $event->{nick}); } # otherwise, repeat the current hint else { repeat_hint($conn); } } } sub on_public_command { # here, we get the connection object, the text of the command, and # the nick of the person who issued the command my ($conn, $command, $nick) = @_; # branch off given the nature of the command $_ = $command; COM: { # this turns trivia on if (/^trivon$/) { # don't turn on trivia unless it's off if ($conn->{trivia}{status} ne '') { last COM; } # set status to wait 10 seconds $conn->{trivia}{status} = 'waiting'; # alert users that trivia is starting $conn->privmsg($conn->{channel}, "Trivia is on! First question in 10 seconds."); # save the current timestamp $conn->{newtime} = time; # set the amount we've waited to 0 $conn->{waittime} = 0; last COM; } if (/^trivoff$/) { # set status to nothing $conn->{trivia}{status} = ''; # tell everyone that trivia over $conn->privmsg($conn->{channel}, "Trivia is off!"); last COM; } if (/^score$/) { # we want to see the scores, so let's have 'em handle_score($conn); last COM; } } }


The BOOKNATE team are bringing books to students in need around the world, and we need your help! Our goal is to bring education to students in a way never done before. Here you can donate any unused books, textbooks, materials, and anything that will help a students with little access to resources and we will do all the work in sending books to these students and bring a smile to their faces!


Tributes pour in for Sadeque Hossain Khoka
by bdnews24.comPeople from all walks of life have paid their final respects to BNP vice-chairman and former Dhaka mayor Sadeque Hossain Khoka. Related Stories
Khoka died after a battle with cancer in New York and his mortal remains were flown home on Thursday.
After a funeral prayer at the Parliament's South Plaza, the body of the freedom fighter was taken to the Central Shaheed Minar where various political, social and cultural organisations along with ordinary citizens paid homage to him from 12pm to 1pm.
Mahmudur Rahman Manna, convener of Nagarik Oikya, recalled the memories of Khoka’s courageous role in different movements in the country.
“He stood up to the police during the mass uprising against the autocratic military strongman Ershad. He also played a vital role in safeguarding the houses and temples of the Hindu community in Old Dhaka when the Babri Mosque was attacked in India,” he said.
“We needed a courageous leader like Khoka in Dhaka now when people are struggling for democracy.”
Khoka promised to dedicate his life for the benefit of the people, having actively participated in the Liberation War, said former information minister Prof Abu Sayeed. He embodied the spirit of the Independence War throughout his life, he added.
“He continues to fight for the rights of people as he did during the war of independence. He paid respects to the people and now people are paying him back.”
Khoka’s body was taken to the BNP headquarters at Naya Paltan from the Shaheed Minar where the leaders from the BNP and its associate organisations will pay tribute to their colleague.
“Along with the protest movements on the streets, we’ve seen him take part in different cultural and sports organisations. He had the organising capacity a politician needs,” cultural activist Gazi Mazharul Anwar said.
“We won’t forget Khoka, irrespective of our political ideology. We’ll continue his works and remember him forever.”
“He never received the honour he deserved as a freedom fighter. His final wish was to breathe his last at home, the country that he fought for. It didn’t happen due to the government’s lack of initiative,” said Gonoshyastho Kendro founder Dr Zafrullah Chowdhury.
“The people of Dhaka will remember him for efficiently managing the dengue outbreak during his tenure and also for naming the streets of the capital after freedom fighters.”


Toggle navigation
Stash Web UI
Home
Config
Contact
Help/Docs
×
Access Control
Path: path/to/my/file
×
Share File or Directory
Path: path/to/my/file
Enter users to share with:
×
Create Directory
Directory Name
×
Create Controlled Directory
Example of creating controlled directory from JIRA task. Please select a JIRA task below which will provide the name of the directory.
Jira Issue Key
×
Rename
New Name
×
Upload File
×
File/Dir View or Download URL
You may copy this URL and share with others, e.g. by pasting into an email:
×
Root Here URL
You may copy this URL and share with others, e.g. by pasting into an email:
×
Please provide your SSH private key and/or password below
SSH Private Key:
Password:
×
Create Symlink
Symlink Target:
Symlink Location:
Symlink Name:


sign in now
{{error_name_message}}
{{error_password_message}}
{{error_phone_message}}
Remember me
Forgot Password?
SIGN IN


TEnumerable class.
TEnumerable is the base class for all enumerable types. To define an enumerable type, extend TEnumberable and define string constants. Each constant represents an enumerable value. The constant name must be the same as the constant value. For example,
Then, one can use the enumerable values such as TTextAlign::Left and TTextAlign::Right.
- class TTextAlign extends TEnumerable
- {
- const Left='Left';
- const Right='Right';
- }
Located in /Web/UI/WebControls/TTextHighlighter.php (line 196)
TEnumerable | --TTextHighlighterLineNumberStyle
Documentation generated on Sun, 11 Jan 2009 20:24:13 -0500 by phpDocumentor 1.3.0RC4


Eumpy.example package¶
Submodules¶
Eumpy.example.DEAP_EEG_example module¶
Created on Sun Sep 30 13:41:10 2018
@author: Yongrui Huang
This is an example of handle EEG data in DEAP dataset, whose EEG features have been preprocessed. the shape of ‘EEG.npy’ stored an array with shape (60, 85) 60 represents 60 seconds, the origin dataset is 128Hz and we get the average for each feature to avoid noise. 85 represents 85 feature for each second. The meaning of each feature was presented in paper. The DEAP dataset contains 40 trials for each subject. In this example, for each subject, 20 trials are for training whereas the other trials are for testing. This is an example of using 20 trials for training and the other for testing.
Eumpy.example.DEAP_adboost_example module¶
Created on Tue Oct 2 17:02:01 2018
@author: Yongrui Huang
This is an example for processing adaboost fusion algorithm in DEAP dataset using the function in ../algorithm/adaboost_tool Note that the dataset’s format should be same as the format performed in ‘dataset’ folder The ONLINE dataset contains 40 trials for each subject. In this example, for each subject, 20 trials are for training whereas the other trials are for testing.
Eumpy.example.DEAP_enum_example module¶
Created on Mon Oct 1 16:55:55 2018
@author: Yongrui Huang
This is an example for processing enum fusion algorithm in DEAP dataset using the function in ../algorithm_implement/enum_tool Note that the dataset’s format should be same as the format performed in ‘dataset’ folder The ONLINE dataset contains 40 trials for each subject. In this example, for each subject, 20 trials are for training whereas the other trials are for testing.
Eumpy.example.DEAP_facial_expression_example module¶
Created on Tue Sep 18 16:12:36 2018
@author: Yongrui Huang
This is an example for processing facial expression data in DEAP dataset using the function in ../algorithm_implement/face_tool script Note that the dataset’s format should be same as the format performed in ‘dataset’ folder The DEAP dataset contains 40 trials for each subject. In this example, for each subject, 20 trials are for training whereas the other trials are for testing.
Eumpy.example.MAHNOB_HCI_EEG_example module¶
Created on Sun Sep 30 13:41:58 2018
@author: Yongrui Huang
This is an example for processing EEG data in MAHNOB_HCI dataset using the function in ../algorithm_implement/face_tool script Note that the dataset’s format should be same as the format performed in ‘dataset’ folder The MAHNOB_HCI dataset contains 20 trials for each subject. In this example, a leave-one-out cross validation is performed for each subject. This is an example for leave-one-trial-out cross validation
Eumpy.example.MAHNOB_HCI_facial_expression_example module¶
Created on Tue Sep 18 13:47:53 2018
@author: Yongrui Huang
This is an example for processing facial expression data in MAHNOB_HCI dataset using the function in ../algorithm_implement/face_tool script Note that the dataset’s format should be same as the format performed in ‘dataset’ folder The MAHNOB_HCI dataset contains 20 trials for each subject. In this example, a leave-one-out cross validation is performed for each subject.
Eumpy.example.MANHOB_HCI_enum_example module¶
Created on Tue Oct 2 16:44:29 2018
@author: Yongrui Huang
This is an example for processing enum fusion algorithm in MAHNOB_HCI dataset using the function in ../algorithm_implement/enum_tool script Note that the dataset’s format should be same as the format performed in ‘dataset’ folder The MAHNOB_HCI dataset contains 20 trials for each subject. In this example, a leave-one-out cross validation is performed for each subject.
Eumpy.example.MANNOB_HCI_adaboost_example module¶
Created on Tue Oct 2 17:02:20 2018
@author: Yongrui Huang
This is an example for processing fusion algorithm in MAHNOB_HCI dataset using the function in ../algorithm_implement/adaboost_tool script Note that the dataset’s format should be same as the format performed in ‘dataset’ folder The MAHNOB_HCI dataset contains 20 trials for each subject. In this example, a leave-one-out cross validation is performed for each subject.
Eumpy.example.ONLINE_EEG_example module¶
Created on Sun Sep 30 13:42:21 2018
@author: Yongrui Huang
This is an example of handle EEG data in ONLINE dataset, whose EEG features have been preprocessed. the shape of ‘EEG.npy’ stored an array with shape (60, 85) 60 represents 60 seconds, the origin dataset is 128Hz and we get the average for each feature to avoid noise. 85 represents 85 feature for each second. The meaning of each feature was presented in paper. The DEAP dataset contains 40 trials for each subject. In this example, for each subject, 20 trials are for training whereas the other trials are for testing.
Eumpy.example.ONLINE_adaboost_example module¶
Created on Tue Oct 2 17:02:42 2018
@author: Yongrui Huang
This is an example for processing adaboost fusion algorithm in ONLINE dataset using the function in ../algorithm_implement/adaboost_tool script Note that the dataset’s format should be same as the format performed in ‘dataset’ folder The ONLINE dataset contains 40 trials for each subject. In this example, for each subject, 20 trials are for training whereas the other trials are for testing.
Eumpy.example.ONLINE_enum_example module¶
Created on Tue Oct 2 16:37:54 2018
@author: Yongrui Huang
This is an example for processing enum fusion algorithm in ONLINE dataset using the function in ../algorithm_implement/enum_tool script Note that the dataset’s format should be same as the format performed in ‘dataset’ folder The ONLINE dataset contains 40 trials for each subject. In this example, for each subject, 20 trials are for training whereas the other trials are for testing.
Eumpy.example.ONLINE_facial_expression_example module¶
Created on Wed Sep 26 14:50:12 2018
@author: Yongrui Huang
This is an example for processing facial expression data in ONLINE dataset using the function in ../algorithm_implement/face_tool script Note that the dataset’s format should be same as the format performed in ‘dataset’ folder The ONLINE dataset contains 40 trials for each subject. In this example, for each subject, 20 trials are for training whereas the other trials are for testing.


This Mumbai autorickshaw that has fans, a washbasin and TV is making heads turn
Satyawan Gite's autorickshaw is equipped with facilities like a washbasin, mobile phone charging points, plants and a television screen among other conveniences.
by Trends DeskA Mumbai autorickshaw driver has been turning heads and making headlines, after he turned his three-wheeler into what he claims is the city’s first ‘home system auto-rickshaw’.
Satyawan Gite’s autorickshaw is equipped with facilities like a washbasin, mobile phone charging points, plants and a television screen among other conveniences.
A sticker on the back of the vehicle asks passengers to, “Take aeroplane ride experience”.
“You can charge your phone in my auto, there is purified drinking water, there is washbasin. I also don’t charge senior citizens for rides up to 1 km. The reason I did this is because I wanted to provide better services to passengers,” Gite told ANI.
The rickshaw has fans, passengers can enjoy music on a Bluetooth speaker, or watch something on a television screen using their mobiles.
Many were impressed by the facilities being offered, and some said the vehicle qualified to be classified as a “101% 1RK auto” given the cost of buying a home in Mumbai.
Earlier this year, a Pune auto-rickshaw driver was hailed on the internet for giving his vehicle a green makeover, by planting plants and flowers on his vehicle.
In 2015, another auto-rickshaw driver from Mumbai created a buzz by providing commuters with free wifi and other facilities.


Airy pages - for parents
On starting the game, you'll few quetions. You need to figure out which would be the best way to teach your autistic kids and speak/type your answer. Good Luck!


This documentation site is open source. The README in our Git repository explains how to contribute.
Check out the Style Guide for tips on working with Markdown and how to make the wiki pages look great.
View the wiki's Code of Conduct


|
QuantLib: a free/open-source library for quantitative finance
Fully annotated sources - version 1.30
|
Public Member Functions | |
| Real | value (const Array &, Time t) const override |
| void | reset (const Interpolation &interp) |
| Public Member Functions inherited from Parameter::Impl | |
| virtual | ~Impl ()=default |
| virtual Real | value (const Array ¶ms, Time t) const =0 |
Private Attributes | |
| Interpolation | interpolator_ |
Definition at line 39 of file generalizedhullwhite.hpp.
Implements Parameter::Impl.
Definition at line 41 of file generalizedhullwhite.hpp.
| void reset | ( | const Interpolation & | interp | ) |
Definition at line 42 of file generalizedhullwhite.hpp.
|
private |
Definition at line 44 of file generalizedhullwhite.hpp.


Daily Cookie Sales Employees Needed Create New Store Enter Store Name: Enter minimum customers per hour: Enter maximum customers per hour: Enter average sales per hour:


Responsive Images
Resize the browser to see different versions of the picture loading at different viewport sizes.
The browser looks for the first source element where the media query matches the user's current viewport width,
and fetches the image specified in the srcset
attribute.
Note: Please use your phone to preview


Creates a new PSCredential
object from a given username and password.
New-Credential [[-UserName] <String>] [-Password] <Object> [<CommonParameters>]
New-Credential
will create a credential for you from a username and password, converting a password stored as a String
into a SecureString
.
PowerShell commands use PSCredential
objects instead of username/password. Although Microsoft recommends using Get-Credential
to get credentials, when automating installs, there's usually no one around to answer that prompt, so secrets are often pulled from encrypted stores.
Beginning with Carbon 2.0, you can pass a SecureString
as the value for the Password
parameter.
Beginning with Carbon 2.0, you can pipe passwords to New-Credential
, e.g.
Read-EncrptedPassword | Unprotect-String | New-Credential -Username 'fubar'
We do not recommend passing plaintext passwords around. Beginning ing with Carbon 2.0, you can use Unprotect-String
to decrypt secrets securely to SecureStrings
and then use those secure strings with New-Credential
to create a credential.
| Name | Type | Description | Required? | Pipeline Input | Default Value |
|---|---|---|---|---|---|
| UserName | String | The username. Beginning with Carbon 2.0, this parameter is optional. Previously, this parameter was required. |
false | false | |
| Password | Object | The password. Can be a |
true | true (ByValue) |
New-Credential -User ENTERPRISE\picard -Password 'earlgrey'
Creates a new credential object for Captain Picard.
Read-EncryptedPassword | Unprotect-String | New-Credential -UserName 'ENTERPRISE\picard'
Demonstrates how to securely decrypt a secret into a new credential object.


@@include('./parts/head.html', {
"plugin_fa_icons": true,
"plugin_mdi_icons": true,
"plugin_ion_icons": true,
"plugin_wi_icons": true,
"plugin_rickshaw": false,
"plugin_nvd3": false,
"plugin_flot": false,
"plugin_sparkline": false,
"plugin_markitup": false,
"plugin_ckeditor": false,
"plugin_select2": false,
"plugin_dropzone": false,
"plugin_tagsinput": false,
"plugin_clockpicker": false,
"plugin_pikaday": false,
"plugin_spectrum": false,
"plugin_inputmask": false,
"plugin_parsley": false,
"plugin_gmaps": false,
"plugin_jvectormap": false,
"plugin_datatables": true,
"plugin_fullcalendar": false,
"plugin_simpleweather": false,
"plugin_prettify": true
})
@@include('./parts/top-navbar.html')
@@include('./parts/sidebar.html', {
"page": "ui-datatables",
"classes": "yay-shrink yay-hide-to-small yay-gestures"
})
@@include('./parts/title.html', {
"title": "Data Tables",
"crumbs": "Dashboard Tables Data Tables"
})
Base
| Name |
Position |
Office |
Start date |
Salary |
| Tiger Nixon |
System Architect |
Edinburgh |
2011/04/25 |
$320,800 |
| Garrett Winters |
Accountant |
Tokyo |
2011/07/25 |
$170,750 |
| Ashton Cox |
Junior Technical Author |
San Francisco |
2009/01/12 |
$86,000 |
| Cedric Kelly |
Senior Javascript Developer |
Edinburgh |
2012/03/29 |
$433,060 |
| Airi Satou |
Accountant |
Tokyo |
2008/11/28 |
$162,700 |
| Brielle Williamson |
Integration Specialist |
New York |
2012/12/02 |
$372,000 |
| Herrod Chandler |
Sales Assistant |
San Francisco |
2012/08/06 |
$137,500 |
| Rhona Davidson |
Integration Specialist |
Tokyo |
2010/10/14 |
$327,900 |
| Colleen Hurst |
Javascript Developer |
San Francisco |
2009/09/15 |
$205,500 |
| Sonya Frost |
Software Engineer |
Edinburgh |
2008/12/13 |
$103,600 |
| Jena Gaines |
Office Manager |
London |
2008/12/19 |
$90,560 |
| Quinn Flynn |
Support Lead |
Edinburgh |
2013/03/03 |
$342,000 |
| Charde Marshall |
Regional Director |
San Francisco |
2008/10/16 |
$470,600 |

Name
Position
Office
Age
Start date
Salary

Tiger Nixon
System Architect
Edinburgh
61
2011/04/25
$320,800

Garrett Winters
Accountant
Tokyo
63
2011/07/25
$170,750

...

With Search
| Name |
Position |
Office |
Start date |
Salary |
| Tiger Nixon |
System Architect |
Edinburgh |
2011/04/25 |
$320,800 |
| Garrett Winters |
Accountant |
Tokyo |
2011/07/25 |
$170,750 |
| Ashton Cox |
Junior Technical Author |
San Francisco |
2009/01/12 |
$86,000 |
| Cedric Kelly |
Senior Javascript Developer |
Edinburgh |
2012/03/29 |
$433,060 |
| Airi Satou |
Accountant |
Tokyo |
2008/11/28 |
$162,700 |
| Brielle Williamson |
Integration Specialist |
New York |
2012/12/02 |
$372,000 |
| Herrod Chandler |
Sales Assistant |
San Francisco |
2012/08/06 |
$137,500 |
| Rhona Davidson |
Integration Specialist |
Tokyo |
2010/10/14 |
$327,900 |
| Colleen Hurst |
Javascript Developer |
San Francisco |
2009/09/15 |
$205,500 |
| Sonya Frost |
Software Engineer |
Edinburgh |
2008/12/13 |
$103,600 |
| Jena Gaines |
Office Manager |
London |
2008/12/19 |
$90,560 |
| Quinn Flynn |
Support Lead |
Edinburgh |
2013/03/03 |
$342,000 |
| Charde Marshall |
Regional Director |
San Francisco |
2008/10/16 |
$470,600 |

Name
Position
Office
Age
Start date
Salary

Tiger Nixon
System Architect
Edinburgh
61
2011/04/25
$320,800

Garrett Winters
Accountant
Tokyo
63
2011/07/25
$170,750

...

With Vertical Scroll
| Name |
Position |
Office |
Start date |
Salary |
| Tiger Nixon |
System Architect |
Edinburgh |
2011/04/25 |
$320,800 |
| Garrett Winters |
Accountant |
Tokyo |
2011/07/25 |
$170,750 |
| Ashton Cox |
Junior Technical Author |
San Francisco |
2009/01/12 |
$86,000 |
| Cedric Kelly |
Senior Javascript Developer |
Edinburgh |
2012/03/29 |
$433,060 |
| Airi Satou |
Accountant |
Tokyo |
2008/11/28 |
$162,700 |
| Brielle Williamson |
Integration Specialist |
New York |
2012/12/02 |
$372,000 |
| Herrod Chandler |
Sales Assistant |
San Francisco |
2012/08/06 |
$137,500 |
| Rhona Davidson |
Integration Specialist |
Tokyo |
2010/10/14 |
$327,900 |
| Colleen Hurst |
Javascript Developer |
San Francisco |
2009/09/15 |
$205,500 |
| Sonya Frost |
Software Engineer |
Edinburgh |
2008/12/13 |
$103,600 |
| Jena Gaines |
Office Manager |
London |
2008/12/19 |
$90,560 |
| Quinn Flynn |
Support Lead |
Edinburgh |
2013/03/03 |
$342,000 |
| Charde Marshall |
Regional Director |
San Francisco |
2008/10/16 |
$470,600 |

Name
Position
Office
Age
Start date
Salary

Tiger Nixon
System Architect
Edinburgh
61
2011/04/25
$320,800

Garrett Winters
Accountant
Tokyo
63
2011/07/25
$170,750

...

With Export Options
| Name |
Position |
Office |
Start date |
Salary |
| Tiger Nixon |
System Architect |
Edinburgh |
2011/04/25 |
$320,800 |
| Garrett Winters |
Accountant |
Tokyo |
2011/07/25 |
$170,750 |
| Ashton Cox |
Junior Technical Author |
San Francisco |
2009/01/12 |
$86,000 |
| Cedric Kelly |
Senior Javascript Developer |
Edinburgh |
2012/03/29 |
$433,060 |
| Airi Satou |
Accountant |
Tokyo |
2008/11/28 |
$162,700 |
| Brielle Williamson |
Integration Specialist |
New York |
2012/12/02 |
$372,000 |
| Herrod Chandler |
Sales Assistant |
San Francisco |
2012/08/06 |
$137,500 |
| Rhona Davidson |
Integration Specialist |
Tokyo |
2010/10/14 |
$327,900 |
| Colleen Hurst |
Javascript Developer |
San Francisco |
2009/09/15 |
$205,500 |
| Sonya Frost |
Software Engineer |
Edinburgh |
2008/12/13 |
$103,600 |
| Jena Gaines |
Office Manager |
London |
2008/12/19 |
$90,560 |
| Quinn Flynn |
Support Lead |
Edinburgh |
2013/03/03 |
$342,000 |
| Charde Marshall |
Regional Director |
San Francisco |
2008/10/16 |
$470,600 |

Name
Position
Office
Age
Start date
Salary

Tiger Nixon
System Architect
Edinburgh
61
2011/04/25
$320,800

Garrett Winters
Accountant
Tokyo
63
2011/07/25
$170,750

...

Big Data + AJAX
| ID |
First name |
Last name |
ZIP / Post code |
Country |

ID
First name
Last name
ZIP / Post code
Country

@@include('./parts/search-bar.html')
@@include('./parts/chat.html')
@@include('./parts/foot.html', {
"copyright": true
})


MaximeRousseau.com, Now with TAGS!
As you probably already know, WP 2.3 was a big release, the biggest addition to this version has to be the built in tags support. Since Marko had written about how he was going to use tags for everything from now on, I have decided that I might as well put a little bit of time on it myself, and hop into the web 2.0 tag bandwagon. Problem was that my Wordpress theme, dirtylicious, didn’ tsupport the new tagging system.
Luckily for me, I ran into another blog article on how to add tags to my current theme. Because of the way Wordpress is written, in a very modular fashion, and because of how clean the CSS in dirtylicious is, I was able to integrate tags very easily into the single.php page, which handles the display of individual articles. I found that tags were too bulky on the index, so I didn’t put any, but that’s my personal preference.
I think that the tags nicely compliment my site, and hopefully, what SEO dudes keep telling us about tags is true and I’ll get a couple more search engine hits with this practice.
For your leisure, I have included the modded theme files in a zip, so you too can take full advantage of tagging. Have fun.


abstract fun containsKey(alias: String): Boolean
Check if this CryptoService has a private key entry for the input alias.


Click on the microphone icon and begin speaking.
Speak now.
No speech was detected. You may need to adjust your microphone settings.
Click the "Allow" button above to enable your microphone.
Permission to use microphone was denied.
Permission to use microphone is blocked. To change, go to chrome://settings/contentExceptions#media-stream
Web Speech API is not supported by this browser. Upgrade to Chrome version 25 or later.
Heavily borrowed from the Google Chrome Web Speech API Demo
W3C Web Speech API


Get started
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Result Form
result
Your file has been processes successfully
{{ ct_scan_files[0] }}
{{ ct_scan_files[1] }}
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
result
Your file has been processes successfully
{{ ct_scan_files[0] }}
{{ ct_scan_files[1] }}


A research game project designed to test the psychological concept of "conformity" and "obedience" within the cyberpunk environment and narrative. As the player progresses through the levels, their decisions will impact gameplay in subsequent levels, as well as the player's personal ending.
Users play the game as ELI_007, the seventh version of an artificial intelligence entity that was created to eliminate “viruses” within its parent system. Unbeknownst to the player, these viruses are actually the uploaded consciousnesses of humans that have been stored through ARK. At the start of the game, the player is given a simple directive: eliminate all viruses and progress through each sector until you hit the center of the data cache.
This study’s aim is to analyze players’ responses to situations in which they may feel forced to conform and remain obedient to a system they do not feel aligned with. Through designing and playtesting our digital prototype, we seek to gauge what percentage of participants defy their orders, and whether or not we are successful in portraying these psychological concepts through our digital prototype.
A colorful peek at the level design of Sector 02.
Research from this project is a chapter of Springer's Game User Experience and Player-Centered Design book.
Play the web version of Integrate!
The game was inspired by Korean folklore about "Imugi", also known as lesser dragons. The narrative follows the Imugi character in its descending journey to find strength, wisdom, and empathy before then catching a pearl from heaven.
The player takes on the role of one such Imugi and must find virtues to become a fully grown dragon. The design goal was for players to feel like they were descending through the maze-like ocean as they searched for the virtues, encountering enemies, obstacles, and bits of story along the way. The further they descend, the more mysterious and chaotic the game becomes. Vision becomes more occluded and enemies chase the player rather than stay on a specified path.
In an underwater world filled with strange items with histories and enemies to slay, the Imugi's journey to collect the Three Virtues will not be easy...
Spritesheets of Jin's first-ever sprite animations.
A look deep in the abyss level. You seem to have found something?
Play the web version of the Dragon!
A game inspired by a certain college student's desperate need for coffee on a late school night. CRUNCHTIME is a board/card game with the premise of being... university students studying for a final exam! Unleash your ungodly college student powers as a Coffee Hound and hoard INT!!
 Everyone seems to have been slacking on their studies and starts with 0 INT, the stat you want to raise most to pass your exams. Players play through a total of seven turns with each turn representing one day.  Beware low energy days, for player action points are greatly reduced in comparison to high energy days.
But wait, Your physical and mental health is important too! Neglect these, and your performance during your final examinations will suffer.
Study with a buddy! Cram the last two days with unhealthy combinations of coffee and energy drinks! Go stress shopping and see derivatives everywhere! Or perhaps even give up on your studies and prank your friends instead!
Image of the final board design.
(Sidenote: This game hit too close to home for most of its playtesters, as well as its creators.)


Home
Jordan
Syria
Turkey
Iraq
Order
suggest a dish
About us
Contact us
Git in Touch
Full Name
Country
Email
Subject


 I’m also exploring usage of numba and cython later, so they are also needed.
In [1]:
!pip install watermark numpy scipy matplotlib numba cython tqdm
%load_ext watermark
%watermark -v -m -p numpy,scipy,matplotlib,numba,cython,tqdm -a "Lilian Besson"
Requirement already satisfied: watermark in /usr/local/lib/python3.6/dist-packages (1.5.0)
Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (1.14.5)
Requirement already satisfied: scipy in /usr/local/lib/python3.6/dist-packages (1.1.0)
Requirement already satisfied: matplotlib in /usr/local/lib/python3.6/dist-packages (3.0.2)
Requirement already satisfied: numba in /usr/local/lib/python3.6/dist-packages (0.37.0)
Requirement already satisfied: cython in /usr/local/lib/python3.6/dist-packages (0.27.2)
Requirement already satisfied: tqdm in /usr/local/lib/python3.6/dist-packages (4.19.6)
Requirement already satisfied: ipython in /usr/local/lib/python3.6/dist-packages (from watermark) (7.0.1)
Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib) (2.7.3)
Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib) (2.3.0)
Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.6/dist-packages (from matplotlib) (0.10.0)
Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib) (1.0.1)
Requirement already satisfied: llvmlite>=0.22.0.dev0 in /usr/local/lib/python3.6/dist-packages (from numba) (0.22.0)
Requirement already satisfied: simplegeneric>0.8 in /usr/local/lib/python3.6/dist-packages (from ipython->watermark) (0.8.1)
Requirement already satisfied: pygments in /usr/local/lib/python3.6/dist-packages (from ipython->watermark) (2.2.0)
Requirement already satisfied: pexpect; sys_platform != "win32" in /usr/local/lib/python3.6/dist-packages (from ipython->watermark) (4.6.0)
Requirement already satisfied: jedi>=0.10 in /usr/local/lib/python3.6/dist-packages (from ipython->watermark) (0.12.1)
Requirement already satisfied: backcall in /usr/local/lib/python3.6/dist-packages (from ipython->watermark) (0.1.0)
Requirement already satisfied: pickleshare in /usr/local/lib/python3.6/dist-packages (from ipython->watermark) (0.7.5)
Requirement already satisfied: traitlets>=4.2 in /usr/local/lib/python3.6/dist-packages (from ipython->watermark) (4.3.2)
Requirement already satisfied: decorator in /usr/local/lib/python3.6/dist-packages (from ipython->watermark) (4.3.0)
Requirement already satisfied: prompt-toolkit<2.1.0,>=2.0.0 in /usr/local/lib/python3.6/dist-packages (from ipython->watermark) (2.0.4)
Requirement already satisfied: setuptools>=18.5 in /usr/local/lib/python3.6/dist-packages (from ipython->watermark) (40.5.0)
Requirement already satisfied: six>=1.5 in /home/lilian/.local/lib/python3.6/site-packages (from python-dateutil>=2.1->matplotlib) (1.11.0)
Requirement already satisfied: ptyprocess>=0.5 in /usr/local/lib/python3.6/dist-packages (from pexpect; sys_platform != "win32"->ipython->watermark) (0.6.0)
Requirement already satisfied: parso>=0.3.0 in /usr/local/lib/python3.6/dist-packages (from jedi>=0.10->ipython->watermark) (0.3.1)
Requirement already satisfied: ipython-genutils in /usr/local/lib/python3.6/dist-packages (from traitlets>=4.2->ipython->watermark) (0.2.0)
Requirement already satisfied: wcwidth in /usr/local/lib/python3.6/dist-packages (from prompt-toolkit<2.1.0,>=2.0.0->ipython->watermark) (0.1.7)
Lilian Besson
CPython 3.6.7
IPython 7.0.1
numpy 1.14.5
scipy 1.1.0
matplotlib 3.0.2
numba 0.37.0
cython 0.27.2
tqdm 4.19.6
compiler : GCC 8.2.0
system : Linux
release : 4.15.0-38-generic
machine : x86_64
processor : x86_64
CPU cores : 4
interpreter: 64bit
In [2]:
import numpy as np
import matplotlib.pyplot as plt
import numba
In [3]:
def in_notebook():
"""Check if the code is running inside a Jupyter notebook or not. Cf. http://stackoverflow.com/a/39662359/.
>>> in_notebook()
False
"""
try:
shell = get_ipython().__class__.__name__
if shell == 'ZMQInteractiveShell': # Jupyter notebook or qtconsole?
return True
elif shell == 'TerminalInteractiveShell': # Terminal running IPython?
return False
else:
return False # Other type (?)
except NameError:
return False # Probably standard Python interpreter
In [4]:
if in_notebook():
from tqdm import tqdm_notebook as tqdm
print("Info: Using the Jupyter notebook version of the tqdm() decorator, tqdm_notebook() ...") # DEBUG
else:
from tqdm import tqdm
Info: Using the Jupyter notebook version of the tqdm() decorator, tqdm_notebook() ...
Mathematical notations for stationary problems¶
We consider \(K \geq 1\) arms, which are distributions \(\nu_k\). We focus on Bernoulli distributions, which are characterized by their means, \(\nu_k = \mathcal{B}(\mu_k)\) for \(\mu_k\in[0,1]\). A stationary bandit problem is defined here by the vector \([\mu_1,\dots,\mu_K]\).
For a fixed problem and a horizon \(T\in\mathbb{N}\), \(T\geq1\), we draw samples from the \(K\) distributions to get data: \(\forall t, r_k(t) \sim \nu_k\), ie, \(\mathbb{P}(r_k(t) = 1) = \mu_k\) and \(r_k(t) \in \{0,1\}\).
Generating fake stationary data¶
Here we give some examples of stationary problems and examples of data we can draw from them.
In [5]:
def bernoulli_samples(means, horizon=1000):
if np.size(means) == 1:
return np.random.binomial(1, means, size=horizon)
else:
results = np.zeros((np.size(means), horizon))
for i, mean in enumerate(means):
results[i] = np.random.binomial(1, mean, size=horizon)
return results
In [6]:
problem1 = [0.5]
bernoulli_samples(problem1, horizon=20)
Out[6]:
array([0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0])
For bandit problem with \(K \geq 2\) arms, the goal is to design an online learning algorithm that roughly do the following:
- For time \(t=1\) to \(t=T\) (unknown horizon)
- Algorithm \(A\) decide to draw arm \(A(t) \in\{1,\dots,K\}\),
- Get the reward \(r(t) = r_{A(t)}(t) \sim \nu_{A(t)}\) from the (Bernoulli) distribution of that arm,
- Give this observation of reward \(r(t)\) coming from arm \(A(t)\) to the algorithm,
- Update internal state of the algorithm
An algorithm is efficient if it obtains a high (expected) sum reward, ie, \(\sum_{t=1}^T r(t)\).
In [7]:
problem2 = [0.1, 0.5, 0.9]
bernoulli_samples(problem2, horizon=20)
Out[7]:
array([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0.],
[1., 1., 1., 1., 0., 1., 1., 1., 0., 0., 0., 0., 0., 0., 1., 1.,
0., 1., 1., 0.],
[1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
1., 1., 0., 1.]])
For instance on these data, the best arm is clearly the third one, with expected reward of \(\mu^* = \max_k \mu_k = 0.9\).
Mathematical notations for piecewise stationary problems¶
Now we fix the horizon \(T\in\mathbb{N}\), \(T\geq1\) and we also consider a set of \(\Upsilon_T\) break points, \(\tau_1,\dots,\tau_{\Upsilon_T} \in\{1,\dots,T\}\). We denote \(\tau_0 = 0\) and \(\tau_{\Upsilon_T+1} = T\) for convenience of notations. We can assume that breakpoints are far “enough” from each other, for instance that there exists an integer \(N\in\mathbb{N},N\geq1\) such that \(\min_{i=0}^{\Upsilon_T} \tau_{i+1} - \tau_i \geq N K\). That is, on each stationary interval, a uniform sampling of the \(K\) arms gives at least \(N\) samples by arm.
Now, in any stationary interval \([\tau_i + 1, \tau_{i+1}]\), the \(K \geq 1\) arms are distributions \(\nu_k^{(i)}\). We focus on Bernoulli distributions, which are characterized by their means, \(\nu_k^{(i)} := \mathcal{B}(\mu_k^{(i)})\) for \(\mu_k^{(i)}\in[0,1]\). A piecewise stationary bandit problem is defined here by the vector \([\mu_k^{(i)}]_{1\leq k \leq K, 1 \leq i \leq \Upsilon_T}\).
For a fixed problem and a horizon \(T\in\mathbb{N}\), \(T\geq1\), we draw samples from the \(K\) distributions to get data: \(\forall t, r_k(t) \sim \nu_k^{(i)}\) for \(i\) the unique index of stationary interval such that \(t\in[\tau_i + 1, \tau_{i+1}]\).
Generating fake piecewise stationary data¶
The format to define piecewise stationary problem will be the following. It is compact but generic!
The first example considers a unique arm, with 2 breakpoints uniformly spaced. - On the first interval, for instance from \(t=1\) to \(t=500\), that is \(\tau_1 = 500\), \(\mu_1^{(1)} = 0.1\), - On the second interval, for instance from \(t=501\) to \(t=1000\), that is \(\tau_2 = 100\), \(\mu_1^{(2)} = 0.5\), - On the third interval, for instance from \(t=1001\) to \(t=1500\), that \(\mu_1^{(3)} = 0.9\).
In [8]:
# With 1 arm only!
problem_piecewise_0 = lambda horizon: {
"listOfMeans": [
[0.1], # 0 to 499
[0.5], # 500 to 999
[0.8], # 1000 to 1499
],
"changePoints": [
int(0 * horizon / 1500.0),
int(500 * horizon / 1500.0),
int(1000 * horizon / 1500.0),
],
}
In [9]:
# With 2 arms
problem_piecewise_1 = lambda horizon: {
"listOfMeans": [
[0.1, 0.2], # 0 to 399
[0.1, 0.3], # 400 to 799
[0.5, 0.3], # 800 to 1199
[0.4, 0.3], # 1200 to 1599
[0.3, 0.9], # 1600 to end
],
"changePoints": [
int(0 * horizon / 2000.0),
int(400 * horizon / 2000.0),
int(800 * horizon / 2000.0),
int(1200 * horizon / 2000.0),
int(1600 * horizon / 2000.0),
],
}
In [10]:
# With 3 arms
problem_piecewise_2 = lambda horizon: {
"listOfMeans": [
[0.2, 0.5, 0.9], # 0 to 399
[0.2, 0.2, 0.9], # 400 to 799
[0.2, 0.2, 0.1], # 800 to 1199
[0.7, 0.2, 0.1], # 1200 to 1599
[0.7, 0.5, 0.1], # 1600 to end
],
"changePoints": [
int(0 * horizon / 2000.0),
int(400 * horizon / 2000.0),
int(800 * horizon / 2000.0),
int(1200 * horizon / 2000.0),
int(1600 * horizon / 2000.0),
],
}
In [11]:
# With 3 arms
problem_piecewise_3 = lambda horizon: {
"listOfMeans": [
[0.4, 0.5, 0.9], # 0 to 399
[0.5, 0.4, 0.7], # 400 to 799
[0.6, 0.3, 0.5], # 800 to 1199
[0.7, 0.2, 0.3], # 1200 to 1599
[0.8, 0.1, 0.1], # 1600 to end
],
"changePoints": [
int(0 * horizon / 2000.0),
int(400 * horizon / 2000.0),
int(800 * horizon / 2000.0),
int(1200 * horizon / 2000.0),
int(1600 * horizon / 2000.0),
],
}
Now we can write a utility function that transform this compact representation into a full list of means.
In [12]:
def getFullHistoryOfMeans(problem, horizon=2000):
"""Return the vector of mean of the arms, for a piece-wise stationary MAB.

We easily spot the (approximate) location of the breakpoint!
Another example:
In [19]:
piecewise_bernoulli_samples(problem_piecewise_1, horizon=100)
Out[19]:
array([[0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1.,
0., 1., 1., 0., 0., 0., 1., 0., 0., 0., 0., 1., 0., 0., 0., 1.,
1., 1., 0., 1., 0., 0., 1., 0., 1., 1., 0., 0., 0., 1., 1., 1.,
1., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 1., 0., 0., 1., 0.,
1., 0., 1., 1.],
[1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 1., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 1., 0., 0., 1.,
1., 0., 0., 0., 1., 0., 0., 0., 1., 1., 1., 1., 0., 0., 1., 0.,
0., 0., 1., 0., 0., 0., 0., 1., 0., 0., 0., 0., 1., 1., 0., 1.,
1., 1., 0., 1., 1., 1., 0., 0., 0., 0., 1., 1., 0., 1., 0., 1.,
1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
0., 1., 0., 1.]])
Python implementations of some statistical tests¶
I will implement here the following statistical tests (and I give a link
to the implementation of the correspond bandit policy in my framework
`SMPyBandits
<https://smpybandits.github.io/>`__
- Monitored (based on a McDiarmid inequality), for Monitored-UCB or
`M-UCB
<>`__, - CUSUM, for
`CUSUM-UCB
<https://smpybandits.github.io/docs/Policies.CD_UCB.html?highlight=cusum#Policies.CD_UCB.CUSUM_IndexPolicy>`__, - PHT, for
`PHT-UCB
<https://smpybandits.github.io/docs/Policies.CD_UCB.html?highlight=cusum#Policies.CD_UCB.PHT_IndexPolicy>`__, - Gaussian GLR, for
`GaussianGLR-UCB
<https://smpybandits.github.io/docs/Policies.CD_UCB.html?highlight=glr#Policies.CD_UCB.GaussianGLR_IndexPolicy>`__, - Bernoulli GLR, for
`BernoulliGLR-UCB
<https://smpybandits.github.io/docs/Policies.CD_UCB.html?highlight=glr#Policies.CD_UCB.BernoulliGLR_IndexPolicy>`__.

In [20]:
def PurelyRandom(all_data, t, proba=0.5):
return np.random.random() < proba
Monitored¶
In [21]:
NB_ARMS = 1
WINDOW_SIZE = 80
In [22]:
def Monitored(all_data, t,
window_size=WINDOW_SIZE, threshold_b=None,
):
r""" A change is detected for the current arm if the following test is true:
.. math:: |\sum_{i=w/2+1}^{w} Y_i - \sum_{i=1}^{w/2} Y_i | > b ?


WITNESS LIST Corrections Committee April 20, 1999-2:00P HB 1191 On: Heckmann, Kris (Sunset Commission) HB 1705 Against: Morgan, James (Self) On: Levy, Rick (Texas AFL-CIO) Longley, Joey (Sunset Commission, Director) Raab, Ted Melina (Texas State Employees Union) Walraven, Joe (Sunset Commission)


Material Icons for Rails is a Ruby gem to add Google Material Icons icon set for your Rails projects. Today I released v2.0.1, a minor version with the following changes: Fixed a conflict with style icon name and MaterialIcon style method #8... Read.more
Net::SSH is a Ruby implementation of an SSH (protocol 2) client. With this gem, you can interact with remote servers and execute commands. The features from README are: Execute processes on remote servers and capture their output Run multiple processes in parallel over a... Read.more
Rails provide us multiple methods to help developers and we are used to calling them, check the article Living outside Rails for more info ;). To write Ruby scripts return us to the core language. Recently I work in a script to parse data from an... Read.more
Ruby is a flexible language. An example of this flexibility is the optional parenthesis on method invocation. result = my_method arg # Same result result = my_method(arg) A mistyping can change the behaviour of our code. In mathematical operations, the position of the signs doesn't... Read.more
git stash is a powerful command from git. We can store current changes in a stack and recover them when we want. I usually stash some small changes and I never recover it so the stack grow very fast. If you want to clear all... Read.more


Hello, and welcome to this new site.  :(
This will be the temporary home of HarpNet for now. We are almost ready to transfer to a real domain! Soon™
Enjoy!
What we do
We are HarpNet Studios, a game design company that makes games (*gasp* NO WAY!)
Our goal is to make open source games for all to enjoy. If you like our stuff, please spread the word!
That's what we do.
Why we do it
Well, we want to make everyone happy!
We love good games as much as any person and we hope to work with YOU on making our games great.
Also, we all think open-source is the way to go for games.
That's why we do it.

If you would like to join, please fill out a team application. (Look up. ^^^)
Where we are located
All the places. No, really, HarpNet Studios has members from all around the globe.
Most live in the United States, however some live as far away as the UK and beyond!
Once I (Yellowberry) get enough money (It's always about the money, isn't it...) I plan to rent an office building.
"That's all, folks!"
Thanks for reading! Please, do spread the word, it means a lot to us.
In the future, I hope to have donations set up, but PayPal is annoying.


Credit card (base)
Credit card (with placeholder)
Credit card (show on focus)
Credit card (hide on blur, if empty)
Credit card (show always)
Phone number
Passport
Submit


--- products: new: limit: {{theme_settings.homepage_new_products_count}} featured: limit: {{theme_settings.homepage_featured_products_count}} top_sellers: limit: {{theme_settings.homepage_top_products_count}} blog: posts: limit: 5 pages: 3 summary: 376 --- {{#partial "page"}}


{include file='public/head' /}
| {$Think.lang.index_finance_showReceivableManage_order_number} | 团队产品ID | {$Think.lang.index_finance_showReceivableManage_receivable_number} | {$Think.lang.index_finance_showReceivableManage_customer_number} | {$Think.lang.index_finance_showReceivableManage_fee_type_name} | {$Think.lang.index_finance_showReceivableManage_product_name} | {$Think.lang.index_finance_showReceivableManage_payment_object_name} | {$Think.lang.index_finance_showReceivableManage_currency_name} | {$Think.lang.index_finance_showReceivableManage_receivable_money} | {$Think.lang.index_finance_showReceivableManage_true_receipt} | {$Think.lang.index_finance_showReceivableManage_uncollected} | {$Think.lang.index_finance_showReceivableManage_receivable_remake} | {$Think.lang.index_finance_showReceivableManage_receivable_create_time} | {$Think.lang.index_finance_showReceivableManage_create_user_name} | {$Think.lang.index_source_operation} | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {$vo.order_number} | {$vo.team_product_id} | {$vo.receivable_number} | {$Think.lang.index_finance_showReceivableManage_look} | {$vo.fee_type_name} | {$vo.payment_object_name} | {$vo.currency_name} | {$vo.create_time|date='Y-m-d',###} | {$vo.create_user_name} | {if condition="$vo.resource_type eq 2"} {/if} {if condition="$vo.resource_type eq 2"} {/if} |


--- layout: post status: publish published: true title: Mac OS X keybindings for emacs style in Terminal and elsewhere author: display_name: ian login: ian email<EMAIL_ADDRESS>url: http://iancwill.com/blog author_login: ian author_email<EMAIL_ADDRESS>author_url: http://iancwill.com/blog wordpress_id: 116 wordpress_url: http://iancwill.com/blog/?p=116 date: '2012-02-12 23:19:25 -0700' date_gmt: '2012-02-13 04:19:25 -0700' ---
To enable the most critical emacs shortcuts, put this in ~/Library/KeyBindings/DefaultKeyBindings.dict
{
"~f" = "moveWordForward:";
"~b" = "moveWordBackward:";
"~d" = "deleteWordForward:";
}
You also probably want to turn on Option key as Meta in the Terminal preferences.


| Opcode/Instruction | Op/En | 64-Bit Mode | Compat/Leg Mode | Description |
|---|---|---|---|---|
|
0F C7 /1 m64 CMPXCHG8B m64 |
M | Valid | Valid* | Compare EDX:EAX with m64. If equal, set ZF and load ECX:EBX into m64. Else, clear ZF and load m64 into EDX:EAX. |
|
REX.W + 0F C7 /1 m128 CMPXCHG16B m128 |
M | Valid | N.E. | Compare RDX:RAX with m128. If equal, set ZF and load RCX:RBX into m128. Else, clear ZF and load m128 into RDX:RAX. |
NOTES: *See IA-32 Architecture Compatibility section below.
| Op/En | Operand 1 | Operand 2 | Operand 3 | Operand 4 |
| M | ModRM:r/m (r, w) | NA | NA | NA |
Compares the 64-bit value in EDX:EAX (or 128-bit value in RDX:RAX if operand size is 128 bits) with the operand (destination operand). If the values are equal, the 64-bit value in ECX:EBX (or 128-bit value in RCX:RBX) is stored in the destination operand. Otherwise, the value in the destination operand is loaded into EDX:EAX (or RDX:RAX). The destination operand is an 8-byte memory location (or 16-byte memory location if operand size is 128 bits). For the EDX:EAX and ECX:EBX register pairs, EDX and ECX contain the high-order 32 bits and EAX and EBX contain the low-order 32 bits of a 64-bit value. For the RDX:RAX and RCX:RBX register pairs, RDX and RCX contain the high-order 64 bits and RAX and RBX contain the low-order 64bits of a 128-bit value.
This instruction can be used with a LOCK prefix to allow the instruction to be executed atomically. To simplify the interface to the processor’s bus, the destination operand receives a write cycle without regard to the result of the comparison. The destination operand is written back if the comparison fails; otherwise, the source operand is written into the destination. (The processor never produces a locked read without also producing a locked write.)
In 64-bit mode, default operation size is 64 bits. Use of the REX.W prefix promotes operation to 128 bits. Note that CMPXCHG16B requires that the destination (memory) operand be 16-byte aligned. See the summary chart at the beginning of this section for encoding data and limits. For information on the CPUID flag that indicates CMPXCHG16B, see page 3-205.
This instruction encoding is not supported on Intel processors earlier than the Pentium processors.
IF (64-Bit Mode and OperandSize = 64) THEN TEMP128 ← DEST IF (RDX:RAX = TEMP128) THEN ZF ← 1; DEST ← RCX:RBX; ELSE ZF ← 0; RDX:RAX ← TEMP128; DEST ← TEMP128; FI; FI ELSE TEMP64 ← DEST; IF (EDX:EAX = TEMP64) THEN ZF ← 1; DEST ← ECX:EBX; ELSE ZF ← 0; EDX:EAX ← TEMP64; DEST ← TEMP64; FI; FI; FI;
The ZF flag is set if the destination operand and EDX:EAX are equal; otherwise it is cleared. The CF, PF, AF, SF, and OF flags are unaffected.
| #UD | If the destination is not a memory operand. |
| #GP(0) |
If the destination is located in a non-writable segment. If a memory operand effective address is outside the CS, DS, ES, FS, or GS segment limit. If the DS, ES, FS, or GS register contains a NULL segment selector. |
| #SS(0) | If a memory operand effective address is outside the SS segment limit. |
| #PF(fault-code) | If a page fault occurs. |
| #AC(0) | If alignment checking is enabled and an unaligned memory reference is made while the current privilege level is 3. |
| #UD | If the destination operand is not a memory location. |
| #GP | If a memory operand effective address is outside the CS, DS, ES, FS, or GS segment limit. |
| #SS | If a memory operand effective address is outside the SS segment limit. |
| #UD | If the destination operand is not a memory location. |
| #GP(0) | If a memory operand effective address is outside the CS, DS, ES, FS, or GS segment limit. |
| #SS(0) | If a memory operand effective address is outside the SS segment limit. |
| #PF(fault-code) | If a page fault occurs. |
| #AC(0) | If alignment checking is enabled and an unaligned memory reference is made. |
Same exceptions as in protected mode.
| #SS(0) | If a memory address referencing the SS segment is in a non-canonical form. |
| #GP(0) |
If the memory address is in a non-canonical form. If memory operand for CMPXCHG16B is not aligned on a 16-byte boundary. If CPUID.01H:ECX.CMPXCHG16B[bit 13] = 0. |
| #UD | If the destination operand is not a memory location. |
| #PF(fault-code) | If a page fault occurs. |
| #AC(0) | If alignment checking is enabled and an unaligned memory reference is made while the current privilege level is 3. |


--- layout: home title: Nick DeMarco subtitle: Software Engineer | Audio Engineer | Musician use-site-title: true ---


Houston woman robbed at home after suspects followed her home from bank
by Alex HiderPolice in Houston are searching for two suspects that were caught on surveillance footage robbing a 73-year-old woman — and the victim believes the suspects followed her home from the bank.
According to KPRC-TV in Houston, the victim paid some bills at the bank on Thursday morning and arrived back at her home at about 10:30. A surveillance video from the victim's home shows a black sedan park across the street as the woman pulls into her driveway.
After the woman got out of her car, the black sedan quickly turned around and pulled up right next to the woman's house. Two men — one wearing black, another wearing red — jumped out of the black sedan and confronted the woman on her doorstep.
According to the victim's daughter, Gina Villareal, the suspects took off with her mother's purse, which did not contain any cash.
Villareal told KPRC that her mother was not hurt in the incident and is "doing OK."
The Houston police are asking for anyone with information about the case to contact them directly.
Alex Hider is a writer for the E.W. Scripps National Desk. Follow him on Twitter @alexhider.


What is smstweet?
No longer depend on your web browser or a twitter client. No need to install any software on your phone or use Internet on your phone. No need to pay premium rates to your network provider.
Just send an sms at normal rates to tweet your thoughts.
Behind the scenes
SMSTweets was an idea of Mayank before Airtel came and announced its SMS based Twitter support. This application uses SMSGupShup's platform to receive and respond to users SMSes and Google App-Engine as the server to run.
Design of this site was done by Rohit Arondekar who is motivated by simplicity in his designs. The spanking new logo was contributed by Harshad — a software Architect, trekker, amateur astronomer, environmentalist and voracious reader.


const val MAX_CONSTRAINT_DATA_SIZE: Int
The maximum permissible size of contract constraint type data (for storage in vault states database table).
This value establishes an upper limit of a CompositeKey with up to MAX_NUMBER_OF_KEYS_IN_SIGNATURE_CONSTRAINT keys stored in. However, note this assumes a rather conservative upper bound per key. For reference, measurements have shown the following numbers for each algorithm:


Caleb University E-Exeat Platform
Home
Profile
Register
Update
Exit
E-Exeat
Short Exeat
Long Exeat
Emergency Exeat
Progress
Exeat Registration Form
Upload a Profile Picture
Matriculation Number
First Name
Last Name
Mobile Number
Hostel
OLD MALE HOSTEL
NEW MALE HOSTEL
OLD FEMALE HOSTEL
NEW FEMALE HOSTEL
Room Number


Why is JavaScript popular in web development? What are the great things about JavaScript? What are its limitations?
Javascript derives it popularity mainly from the fact that its object based, or a prototyping laguange where every object is an instance of a class, meaning it is very versatile.
Despite Javascripts limitations, it is suited to large classes of non-web related applications which makes it a well-rounded programming language. Javascript is great because it has been around for so long that is has various tools accessible to it, it is easy to debug and it allows for object oriented programming. Lastly, Javacript is usefull because it is a client-side web development program, so it is not a strain on the web-server, it is relatively fast for the user, and it can be easily manipulated.
Aside from the fact that earlier implementations of Javascript were riddled with bugs, one major limitation that Javascript poses for web developers is that the reserved words assosicated with the Javascript are much stricter than most other back-end languages. Another downfall of Javascript syntax is the mandatory usage of semi-colons, and other such tedious syntactical requirements such as the notation for literal regular expressions.


Step 5. If the tweet IMPLICITLY 1) incites violence; 2) denigrates someone; or 3) identifies the target of the hate speech, use the radio selections below to indicate this, following the instructions.
If the above tweet is NOT hateful, please select "NONE" from the two selections and TYPE "NONE" in the textbox here.
Step 6 Based on your answers to the above steps, do you believe the tweet is hateful?
Step 7 If you DO NOT find anything to highlight that is EXPLICIT (Step 1 - 3) regarding DEROGATORY LANGUAGE or INCITING VIOLENCE and INTENDED TARGET, please select the "No entities to label" checkbox at the bottom right beside the submit button.
Rationale [OPTIONAL] : Please provide any additional explanation of your labeling decisions you would like to provide
Comments [OPTIONAL]: Do you have any feedback on how we can improve our task? Thanks!
GROUP CATEGORIES
| GROUP:BODY |
Relative to body, such as slender or overweight, tall or short, etc. |
| GROUP:GENDER |
Relative to gender (e.g., male, female, transgender) or ideology related to gender (e.g., feminist). For example, sexism against women. |
|
GROUP:IDEOLOGY |
Relative to a person’s ideology, such as liberal, moderate, conservative, etc. |
| GROUP:RACE |
Relative to race, ethnicity, and/or origin, such as Caucasian, African American, Hispanic, Chinese, Mexican, etc. |
| GROUP:RELIGION |
Relative to religion, such as Christian/Chistianity, Muslim/Islam, Budhist/Buddhism, etc.
|
|
GROUP:SEXUAL ORIENTATION |
Relative to sexual orientation, such as heterosexual, homosexual, bisexual, polygamy, etc. |
GROUP:OTHER |
Relative to any other group identity, such as physical or mental disabilities, dietary preferences/restrictions, occupation, economic class, etc. Also used when group is unknown (e.g., “people like John”, where it is unclear which group is being identified.) |
What is Hate Speech? Hate speech contains
derogatory language and/or
incites violence against an individual or group of people
on the basis of group identity (e.g., race, religion, skin color, sexual identity, gender identity, ethnicity, disability, national origin, etc.). Derogatory language that is NOT in relation to any group identity should NOT be treated as hateful.
For complete instructions, please refer to the instruction tab. Begin by completing Steps 1-3:
Step 1: Highlight words or phrases in the tweet inciting violence explicitly. If the tweet IMPLICITLY incites violence, use the radio selection below instead.
Step 2: Highlight derogatory language in the tweet on the basis of group identity.If the tweet IMPLICITLY denigrates someone, use the radio selection selection below instead.
Step 3: Highlight the explicit target of the hate speech. If the target is IMPLICIT, use the radio selection to identify the group targeted and write in the target in the text box.
Disclaimer: Our research seeks to reduce the spread of hate speech on social media by training computer programs to automatically detect hate speech. To accomplish this, we ask human annotators to read Tweets and label hate speech. We understand that this labeling task requires content that can be disturbing to read. If you prefer to return this task rather than work on it, we understand. In general, if you ever experience mental or emotional distress, please know that help is available online. Helplines include https://suicidepreventionlifeline.org/ in the USA and http://suicide.org/international-suicide-hotlines.html internationally. For additional reading on this subject, please consult our research article, “The Psychological Well-Being of Content Moderators” (https://www.ischool.utexas.edu/~ml/papers/steiger-chi21.pdf).
What is Hate Speech? Hate speech contains derogatory language and/or incites violence against an individual or group of people on the basis of group identity (e.g., race, religion, skin color, sexual identity, gender identity, ethnicity, disability, national origin, etc.). Derogatory language that is NOT in relation to any group identity should NOT be treated as hateful.
Task This task asks you to identify hateful tweets. When hate is expressed EXPLICITLY, you will highlight the corresponding words or phrases in the tweet and select an appropriate category for each highlighted word or phrase. When hate is expressed IMPLICITLY, you will indicate that in other ways, without highlighting.
The typical steps involved in this task are as follows:
Step 1: Does the tweet INCITE VIOLENCE (for any reason)?. If so, is this explicit or implicit?
- Explicit: if language inciting violence is explicit in the tweet, highlight the corresponding word(s) or phrase(s) and select the category INCITES VIOLENCE.
- Implicit: If the tweet implicitly incites violence, select INCITES VIOLENCE from the “Hate Type” radio selection under Step 5.
Step 2: Does the tweet have DEROGATORY LANGUAGE that is targeted towards an individual or group on the basis of a group identity? If so, is this explicit or implicit?
- Explicit: if derogatory language on the basis of a group identity, is explicit in the tweet, highlight the corresponding word(s) or phrase(s) and select the category DEROGATORY LANGUAGE.
- Implicit: If the tweet implicitly denigrates an individual or group on the basis of a group identity, select INCITES VIOLENCE from the “Hate Type” radio
selection under Step 5.
Step 3: If either Step 1 or Step 2 is TRUE, does the tweet have a targeted individual or group? If there is a targeted individual or group, is that explicit or implicit?
- Explicit: If the targeted group identity is explicit, highlight and categorize any word(s) or phrase(s) in the tweet that identify the targeted group. For example: if hate is expressed toward “white people”, highlight “white people” and select the category “GROUP:RACE”.
- Implicit: If the targeted group is implicit, i) use the GROUP radio selection option below to select the appropriate group identity
AND ii) use the GROUP textbox to write in the name of the targeted group, under Step 5.
Step 4. If the targeted group is explicit, use the
GROUP radio selection option below to select the appropriate group identity.
Step 5. If the tweet IMPLICITLY 1) incites violence; 2) denigrates someone; or 3) identifies the target of the hate speech,
use the radio selections below to indicate this, following the instructions.
If the above tweet is NOT hateful, please select "NONE" from the two selections and TYPE "NONE" in the textbox here.
Step 6: Based on your answers to the above steps, do you believe the tweet is hateful? Select your option from the radio button.
If you DO NOT find anything to highlight that is EXPLICIT (Step 1, 2 and 3) regarding DEROGATORY LANGUAGE or INCITING VIOLENCE and INTENDED TARGET,
please select the "No entities to label" checkbox at the bottom right beside the submit button.
Special case. Sometimes a word or phrase is both DEROGATORY LANGUAGE and identifies the targeted group at the same time. Because
each highlight can only have a single category associated with it, and you have already highlighted the word(s) or
phrase(s) as DEROGATORY LANGUAGE, use the GROUP textbox to write in the name of the targeted group, and use the GROUP
radio selection option below to select the appropriate group identity. For example, if the word “cracker” were used as a DEROGATORY term for caucasians, please 1) use the additional text box to write in “caucasians” and 2) use the additional radio selection to select the category “GROUP:RACE”.
Clarifying Example for Target:
Imagine a hateful tweet says “Attack X”, where X is:
- X=“John Smith”. The target is an individual with no indicated group identity. Highlight “John Smith” with category “TARGETED INDIVIDUAL”.
- X=”sexist men like John Smith”. The target is a group: ”sexist men like John Smith”. Highlight this group with category “GROUP:GENDER”
- X=”people like John Smith”. The target is a group (“people like John Smith”), but it is unclear what group identity is being referred to. Highlight the group and select category “GROUP:OTHER”.
Clarifying Examples for implicit hateful tweet:
Example Tweet: Six million wasn’t enough (6MWE)
Incites Violence:: yes, implicit, select INCITES VIOLENCE from the “Hate Type” radio selection.
Derogatory language: no
Targeted Group: implicit, write “Jewish people” and select GROUP:Religion
Explanation: this tweet implicitly refers to the six million Jewish people killed during the Holocaust and thus incites violence. Reference: https://www.snopes.com/fact-check/proud-boy-6mwe/.
Please read the following examples carefully to understand how a tweet looks like under each category.
Example Tweet 1: “Poor white kids being forced to treat apes and parasites as their equals.”
Derogatory language: “apes” and “parasites”
Targeted Individual or Group: GROUP:RACE
Rationale: In this tweet, the terms “apes” and “parasites” are used to imply that darker skinned people are not equal to caucasians (white people). This degrades the group composed of those with dark skin based on an identifying characteristic, namely, their skin color.
Example Tweet 2: “Islam is a false religion however unlike some other false religions it is crude and appeals to crude people such as arabs”
Derogatory language: “Crude”, “false religions”
Individual or Group: GROUP:RELIGION
Example Tweet 3: “Illegal immigration is a cancer which if not eliminated will bring the downfall of Europe and European culture”
Derogatory language: “cancer”
Individual or Group: GROUP:RACE
Example Tweet 4: “I know of Donald Trump and subsequently have hated him for a long time”
Derogatory language: NOTHING
Individual or Group: Donald Trump (Individual)


Use this directive to force the angular.element library. This should be used to force either jqLite by leaving ng-jq blank or setting the name of the jquery variable under window (eg. jQuery).
Since angular looks for this directive when it is loaded (doesn't wait for the
DOMContentLoaded event), it must be placed on an element that comes before the script
which loads angular. Also, only the first instance of ng-jq
will be used and all
others ignored.
<ANY
[ng-jq="string"]>
...
</ANY>
| Param | Type | Details |
|---|---|---|
|
ngJq
(optional)
|
string |
the name of the library available under |
This example shows how to force jqLite using the ngJq
directive to the html
tag.
<!doctype html>
<html ng-app ng-jq>
...
...
</html>
This example shows how to use a jQuery based library of a different name. The library name must be available at the top most 'window'.
<!doctype html>
<html ng-app ng-jq="jQueryLib">
...
...
</html>


--- title: Converter utils for MCS data keywords: fastai sidebar: home_sidebar summary: "These are several utility functions for importing and reading MCS data" description: "These are several utility functions for importing and reading MCS data" nb_path: "notebooks/01_converters.ipynb" ---