1.4.2¶ ↑
-
Travis: Drop unused setting “sudo: false”
-
The taint mechanism will be deprecated in Ruby 2.7
-
Fix Ruby 2.7 rb_check_safe_obj warnings
-
Update travis config
1.4.1¶ ↑
-
Don't mandate dl functions for the extention build
-
bumping version
1.4.0¶ ↑
-
Enhancements
-
Better aggregator support
-
-
Bugfixes
-
Various
-
1.3.13¶ ↑
-
Enancements
-
Support SQLite flags when defining functions
-
Add definition for SQLITE_DETERMINISTIC flag
-
1.3.12¶ ↑
-
Bugfixes:
-
OS X install will default to homebrew if available. Fixes #195
-
1.3.11 / 2015-10-10¶ ↑
-
Enhancements:
-
Windows: build against SQLite <IP_ADDRESS>
-
-
Internal:
-
Use rake-compiler-dock to build Windows binaries. Pull #159 [larskanis]
-
Expand Ruby versions being tested for Travis and AppVeyor
-
1.3.10 / 2014-10-30¶ ↑
-
Enhancements:
-
Windows: build against SQLite 3.8.6. Closes #135 [Hubro]
-
1.3.9 / 2014-02-25¶ ↑
-
Bugfixes:
-
Reset exception message. Closes #80
-
Reduce warnings due unused pointers. Closes #89
-
Add BSD-3 license reference to gemspec. Refs #99 and #106
-
1.3.8 / 2013-08-17¶ ↑
-
Enhancements:
-
Windows: build against SQLite 3.7.17
-
-
Bugfixes:
-
Reset exception message. Closes #80
-
Correctly convert BLOB values to Ruby. Closes #65
-
Add MIT license reference to gemspec. Closes #99
-
Remove unused pointer. Closes #89
-
-
Internal:
-
Backport improvements in cross compilation for Windows
-
Use of Minitest for internal tests
-
Use Gemfile (generated by Hoe) to deal with dependencies
-
Cleanup Travis CI
-
1.3.7 / 2013-01-11¶ ↑
-
Bugfixes
-
Closing a bad statement twice will not segv.
-
Aggregate handlers are initialized on each query. Closes #44
-
-
Internal
-
Unset environment variables that could affect cross compilation.
-
1.3.6 / 2012-04-16¶ ↑
-
Enhancements
-
Windows: build against SQLite 3.7.11
-
Added
SQLite3::ResultSet#each_hash
for fetching each row as a hash. -
Added
SQLite3::ResultSet#next_hash
for fetching one row as a hash.
-
-
Bugfixes
-
Support both UTF-16LE and UTF-16BE encoding modes on PPC. Closes #63
-
Protect parameters to custom functions from being garbage collected too soon. Fixes #60. Thanks hirataya!
-
Fix backwards compatibility with 1.2.5 with bind vars and `query` method. Fixes #35.
-
Fix double definition error caused by defining sqlite3_int64/uint64.
-
Fix suspicious version regexp.
-
-
Deprecations
-
ArrayWithTypesAndFields#types is deprecated and the class will be removed in version 2.0.0. Please use the `types` method on the ResultSet class that created this object.
-
ArrayWithTypesAndFields#fields is deprecated and the class will be removed in version 2.0.0. Please use the `columns` method on the ResultSet class that created this object.
-
The ArrayWithTypesAndFields class will be removed in 2.0.0
-
The ArrayWithTypes class will be removed in 2.0.0
-
HashWithTypesAndFields#types is deprecated and the class will be removed in version 2.0.0. Please use the `types` method on the ResultSet class that created this object.
-
HashWithTypesAndFields#fields is deprecated and the class will be removed in version 2.0.0. Please use the `columns` method on the ResultSet class that created this object.
-
1.3.5 / 2011-12-03 - ZOMG Holidays are here Edition!¶ ↑
-
Enhancements
-
Windows: build against SQLite 3.7.9
-
Static: enable SQLITE_ENABLE_COLUMN_METADATA
-
Added Statement#clear_bindings! to set bindings back to nil
-
-
Bugfixes
-
Fixed a segv on Database.new. Fixes #34 (thanks nobu!)
-
Database error is not reset, so don't check it in Statement#reset!
-
Remove conditional around Bignum statement bindings. Fixes #52. Fixes #56. Thank you Evgeny Myasishchev.
-
-
Internal
-
Use proper endianness when testing database connection with UTF-16. Fixes #40. Fixes #51
-
Use -fPIC for static compilation when host is x86_64.
-
1.3.4 / 2011-07-25¶ ↑
-
Enhancements:
-
Windows: build against SQLite <IP_ADDRESS>
-
Windows: build static binaries that do not depend on sqlite3.dll be installed anymore
-
-
Bugfixes
-
Backup API is conditionaly required so that older libsqlite3 can be used. Thanks Hongli Lai.
-
Fixed segmentation fault when nil is passed to
SQLite3::Statement.new
-
Fix extconf's hardcoded path that affected installation on certain systems.
-
1.3.3 / 2010-01-16¶ ↑
-
Bugfixes
-
Abort on installation if sqlite3_backup_init is missing. Fixes #19
-
Gem has been renamed to 'sqlite3'. Please use `gem install sqlite3`
-
1.3.2 / 2010-10-30 / RubyConf Uruguay Edition!¶ ↑
-
Enhancements:
-
Windows: build against 3.7.3 version of
SQLite3
-
SQLite3::Database
can now be open as readonlydb = SQLite3::Database.new('my.db', :readonly => true)
-
Added SQLite3::SQLITE_VERSION and SQLite3::SQLITE_VERSION_NUMBER [nurse]
-
-
Bugfixes
-
type_translation= works along with Database#execute and a block
-
defined functions are kept in a hash to prevent GC. #7
-
Removed GCC specific flags from extconf.
-
-
DEPRECATIONS
-
SQLite3::Database#type_translation= will be deprecated in the future with no replacement.
-
SQlite3::Version will be deprecated in 2.0.0 with SQLite3::VERSION as the replacement.
-
1.3.1 / 2010-07-09¶ ↑
-
Enhancements
-
Custom collations may be defined using
SQLite3::Database#collation
-
-
Bugfixes
-
Statements returning 0 columns are automatically stepped. [RF #28308]
-
SQLite3::Database#encoding
works on 1.8 and 1.9
-
1.3.0 / 2010-06-06¶ ↑
-
Enhancements
-
Complete rewrite of C-based adapter from SWIG to hand-crafted one [tenderlove] See API_CHANGES document for details. This closes: Bug #27300, Bug #27241, Patch #16020
-
Improved UTF, Unicode, M17N, all that handling and proper BLOB handling [tenderlove, nurse]
-
Added support for type translations [tenderlove]
@db.translator.add_translator('sometime') do |type, thing| 'output' # this will be returned as value for that column end
-
-
Experimental
-
Added API to access and load extensions. [kashif] These functions maps directly into
SQLite3
own enable_load_extension() and load_extension() C-API functions. SeeSQLite3::Database
API documentation for details. This closes: Patches #9178
-
-
Bugfixes
-
Corrected gem dependencies (runtime and development)
-
Fixed threaded tests [Alexey Borzenkov]
-
Removed GitHub gemspec
-
Fixed “No definition for” warnings from RDoc
-
Generate zip and tgz files for releases
-
Added Luis Lavena as gem Author (maintainer)
-
Prevent mkmf interfere with Mighty Snow Leopard
-
Allow extension compilation search for common lib paths [kashif] (lookup /usr/local, /opt/local and /usr)
-
Corrected extension compilation under MSVC [romuloceccon]
-
Define load_extension functionality based on availability [tenderlove]
-
Deprecation notices for Database#query. Fixes RF #28192
-
1.3.0.beta.2 / 2010-05-15¶ ↑
-
Enhancements
-
Added support for type translations [tenderlove]
@db.translator.add_translator('sometime') do |type, thing| 'output' # this will be returned as value for that column end
-
-
Bugfixes
-
Allow extension compilation search for common lib paths [kashif] (lookup /usr/local, /opt/local and /usr)
-
Corrected extension compilation under MSVC [romuloceccon]
-
Define load_extension functionality based on availability [tenderlove]
-
Deprecation notices for Database#query. Fixes RF #28192
-
1.3.0.beta.1 / 2010-05-10¶ ↑
-
Enhancements
-
Complete rewrite of C-based adapter from SWIG to hand-crafted one [tenderlove] See API_CHANGES document for details. This closes: Bug #27300, Bug #27241, Patch #16020
-
Improved UTF, Unicode, M17N, all that handling and proper BLOB handling [tenderlove, nurse]
-
-
Experimental
-
Added API to access and load extensions. [kashif] These functions maps directly into
SQLite3
own enable_load_extension() and load_extension() C-API functions. SeeSQLite3::Database
API documentation for details. This closes: Patches #9178
-
-
Bugfixes
-
Corrected gem dependencies (runtime and development)
-
Fixed threaded tests [Alexey Borzenkov]
-
Removed GitHub gemspec
-
Fixed “No definition for” warnings from RDoc
-
Generate zip and tgz files for releases
-
Added Luis Lavena as gem Author (maintainer)
-
Prevent mkmf interfere with Mighty Snow Leopard
-
1.2.5 / 25 Jul 2009¶ ↑
-
Check for illegal nil before executing SQL [Erik Veenstra]
-
Switch to Hoe for gem task management and packaging.
-
Advertise rake-compiler as development dependency.
-
Build gem binaries for Windows.
-
Improved Ruby 1.9 support compatibility.
-
Taint returned values. Patch #20325.
-
Database.open and Database.new now take an optional block [Gerrit Kaiser]
<IP_ADDRESS> (internal) / 5 Jul 2009¶ ↑
-
Check for illegal nil before executing SQL [Erik Veenstra]
-
Switch to Hoe for gem task management and packaging.
-
Advertise rake-compiler as development dependency.
-
Build gem binaries for Windows.
-
Improved Ruby 1.9 support compatibility.
1.2.4 / 27 Aug 2008¶ ↑
-
Package the updated C file for source builds. [Jamis Buck]
1.2.3 / 26 Aug 2008¶ ↑
-
Fix incorrect permissions on database.rb and translator.rb [Various]
-
Avoid using Object#extend for greater speedups [Erik Veenstra]
-
Ruby 1.9 compatibility tweaks for Array#zip<EMAIL_ADDRESS>-
Fix linking against Ruby 1.8.5 [Rob Holland<EMAIL_ADDRESS>1.2.2 / 31 May 2008¶ ↑
-
Make the table_info method adjust the returned default value for the rows so that the sqlite3 change in 3.3.8 and greater can be handled transparently [Jamis Buck<EMAIL_ADDRESS>-
Ruby 1.9 compatibility tweaks [Roman Le Negrate<EMAIL_ADDRESS>-
Various performance enhancements [thanks Erik Veenstra]
-
Correct busy_handler documentation [Rob Holland<EMAIL_ADDRESS>-
Use int_bind64 on Fixnum values larger than a 32bit C int can take. [Rob Holland<EMAIL_ADDRESS>-
Work around a quirk in SQLite's error reporting by calling sqlite3_reset to produce a more informative error code upon a failure from sqlite3_step. [Rob Holland<EMAIL_ADDRESS>-
Various documentation, test, and style tweaks [Rob Holland<EMAIL_ADDRESS>-
Be more granular with time/data translation [Rob Holland<EMAIL_ADDRESS>-
Use Date directly for parsing rather than going via Time [Rob Holland<EMAIL_ADDRESS>-
Check for the rt library and fdatasync so we link against that when needed [Rob Holland<EMAIL_ADDRESS>-
Rename data structures to avoid collision on win32. based on patch by: Luis Lavena [Rob Holland<EMAIL_ADDRESS>-
Add test for defaults [Daniel Rodríguez Troitiño]
-
Correctly unquote double-quoted pragma defaults [Łukasz Dargiewicz <lukasz.dargiewicz@gmail.com>]


If you are used to a Swedish keyboard on Windows, this mapping will make your mac behave more it would on Windows.


BOB LE FLAMBEUR (BOB THE GAMBLER) (director: Jean-Pierre Melville; cast: Roger Duchesne (Bob, The Gambler), Isabelle Corey (Anne), Guy Decomble (The Inspector) , Daniel Cauchy (Paolo), Claude Cerval (Jean), Simone Paris (Yvonne), Howard Vernon (McKimmie), 1955-Fr.)
A wonderful noir-type of film, that is actually more about style and ambiance than it is about what usually underlines the dark themes of the ticklish noir film subjects, that delve into the underbelly of their protagonist and evoke a certain sense of injustice in the world. All that is superfluous to BOB THE GAMBLER; in this film, he is more interested in taking care of his trenchcoat and fedora and giving hand-outs to those he likes, than he is in doing anything else but looking good. This is a story about a compulsive gambler (Roger) who lives well in Paris without working, living by his own code of ethics and ability to live off his gambling. Impulsively, one day, when he runs into a bad losing streak, he decides to get a crew together to rob the Deauville Casino, a place where he believes there is 800 million francs in the vault, but is an almost impossible job to do.
The film is so beautifully filmed, reflecting the lighthearted charm and wit of the main character and the sleaziness of the part of the city he loves, as the camera kindly follows him as he makes his rounds at night until he is finished playing craps and cards, driving down the sordid streets of Montmartre, entering the low-life parts of the Pigalle section, watching out in a protective way for a young, attractive 16-year-old (Corey), who he sees eating french fries and then getting picked-up by a sailor on a motorbike. She, as the femme fatale in this film, will prove to be too willing to sleep with anyone to forge ahead, but this does not deter Bob from liking her and treating her with respect, as Bob slowly drives by in his sleek Caddy convertible, taking notice of the street as if he were the one responsible for its vivacity and sanity; thusly, finding her again in his favorite bar, this time talking to a pimp he can't stand. So Bob gives her a decent meal and some cash, and the key to his room, but does not take advantage of her, instead, makes it easy for his young protege (Daniel) to move in on her.
This is so much a movie about how the young and old can be screw-ups but are still okay with themselves, seemingly daring life to keep them from what they want to be. The now middle-aged Bob in his younger days got caught robbing a bank and spent time in jail for it. He claims to be living a crime free life for the past twenty years, enjoying his flashy lifestyle, acting as freely as he can, not looking back at things that went wrong. By the film's end we are convinced that we know a lot about Bob, and come to the conclusion that he's a pretty good guy, thinking to ourselves, even though he is linked to gambling and crime, nevertheless, he does possess a wonderful character about him, something that is worthy of our praise.
A great film, that is shot with perfection, capturing the nuances and finesse a master film-maker brings to his work, while shooting a low-budget b/w film, that tells a simple story, but is done with such effervescence, as to make us feel so much the better that we at least met this perfectly flawed character, even if it is only on film, since, for most of us, it is more than likely we will not have the chance to meet the likes of a true character like him in person.
REVIEWED ON 12/24/98 GRADE: A+
Dennis Schwartz: "Ozus' World Movie Reviews"
http://www.sover.net/~ozus
© ALL RIGHTS RESERVED DENNIS SCHWARTZ
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


{% set page = { title: 'Design Page', layout: prototype.current.layoutPath + 'layout_admin.html', dev: true, nav: { maxwidth: true } } %} {% extends page.layout %} {% block main %} {{ prototype.current.layoutPath | log }}
page 1
#}Yasmin has been referred to the Well in Work Service by her GP. The Well in Work Service supports staff with health conditions to stay in work.
Yasmin is currently experiencing problems with her health due to tummy problems. She also has mental health issues that she is looking to address. She is finding it difficult to get access to the services she needs to get well again. This is affecting her at work and she is feeling stressed.
The Well in Work service aims to help both employers and employers to have more open conversations and improve well being at work. You contact Yasmin’s adviser Alan and find our more about the service at www.wellinwork.gov.uk.
Yasmin has given permission for her action plan to be shared with you.
{# #}


@*
* Copyright 2021 HM Revenue & Customs
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*@
@import uk.gov.hmrc.eeittadminfrontend.config.AppConfig
@(title: String,
tab: String,
contentHeader: Option[Html] = None,
bodyClasses: Option[String] = None,
mainClass: Option[String] = None,
scriptElem: Option[Html] = None)(mainContent: Html)(implicit messages: Messages, appConfig: AppConfig)
@analyticsScripts = {
}
@pageTitle = @{
title + " - EEITT Admin"
}
@govuk_wrapper(
title = pageTitle,
tab = tab,
mainClass = mainClass,
bodyClasses = bodyClasses,
contentHeader = contentHeader,
mainContent = mainContent,
scriptElem = Some(analyticsScripts)
)


Its time for some long requested enhancements and lots of bug fixes … And a whole new web page.
The primary documentation for rake has moved from the RubyForge based wiki to its own Hieraki based web site. Constant spam on the wiki made it a difficult to keep clean. The new site will be easier to update and organize.
Check out the new documentation at: docs.rubyrake.org
We will be adding new documentation to the site as time goes on.
In addition to the new docs page, make sure you check out Martin Fowlers article on rake at martinfowler.com/articles/rake.html
Multiple prerequisites on Rake rules now allowed. However, keep the following in mind:
All the prerequisites of a rule must be available before a rule is triggered, where “enabled” means (a) an existing file, (b) a defined rule, or © another rule which also must be trigger-able.
Rules are checked in order of definition, so it is important to order your rules properly. If a file can be created by two different rules, put the more specific rule first (otherwise the more general rule will trigger first and the specific one will never be triggered).
The source method now returns the name of the first prerequisite listed in the rule. sources returns the names of all the rule prerequisites, ordered as they are defined in the rule. If the task has other prerequisites not defined in the rule (but defined in an explicit task definition), then they will not be included in the sources list.
FileLists may now use the egrep command. This popular enhancement is now a core part of the FileList object. If you want to get a list of all your to-dos, fixmes and TBD comments, add the following to your Rakefile.
desc "Look for TODO and FIXME tags in the code" task :todo do FileList['**/*.rb'].egrep /#.*(FIXME|TODO|TBD)/ end
The investigation method was added to task object to dump out some important values. This makes it a bit easier to debug Rake tasks.
For example, if you are having problems with a particular task, just print it out:
task :huh do puts Rake::Task['huh'].investigation end
The Rake::TestTask class now supports a “ruby_opts” option to pass arbitrary ruby options to a test subprocess.
When using the ruby command to start a Ruby subprocess, the Ruby interpreter that is currently running rake is used by default. This makes it easier to use rake in an environment with multiple ruby installation. (Previously, the first ruby command found in the PATH was used).
If you wish to chose a different Ruby interpreter, you can explicitly choose the interpreter via the sh command.
The major rake classes (Task, FileTask, FileCreationTask, RakeApp) have been moved out of the toplevel scope and are now accessible as Rake::Task, Rake::FileTask, Rake::FileCreationTask and Rake::Application. If your Rakefile directly references any one of these tasks, you may:
Update your Rakefile to use the new classnames
Use the –classic-namespace option on the rake command to get the old behavior,
Add require 'rake/classic_namespace' to the Rakefile to get the old behavior.
rake will print a rather annoying warning whenever a deprecated class name is referenced without enabling classic namespace.
Several unit tests and functional tests were fixed to run better under windows.
Directory tasks are now a specialized version of a File task. A directory task will only be triggered if it doesn’t exist. It will not be triggered if it is out of date w.r.t. any of its prerequisites.
Fixed a bug in the Rake::GemPackageTask class so that the gem now properly contains the platform name.
Fixed a bug where a prerequisite on a file task would cause an exception if the prerequisite did not exist.
Rake is a build tool similar to the make program in many ways. But instead of cryptic make recipes, Rake uses standard Ruby code to declare tasks and dependencies. You have the full power of a modern scripting language built right into your build tool.
The easiest way to get and install rake is via RubyGems …
gem install rake (you may need root/admin privileges)
Otherwise, you can get it from the more traditional places:
Home Page |
|
Download |
As usual, it was input from users that drove a alot of these changes. The following people either contributed patches, made suggestions or made otherwise helpful comments. Thanks to …
Greg Fast (better ruby_opt test options)
Kelly Felkins (requested by better namespace support)
Martin Fowler (suggested Task.investigation)
Stuart Jansen (send initial patch for multiple prerequisites).
Masao Mutch (better support for non-ruby Gem platforms)
Philipp Neubeck (patch for file task exception fix)
– Jim Weirich
Generated with the Darkfish Rdoc Generator 2.


9.1.1.a1 precedence of group element
You must not be able to see the Street Name and City input controls or they must be somehow unavailable to you.
Street Name
City


Guild Member Grey:
Welcome, my hunter brother. What can I do for you?
"Are there any jobs?"
"I wish to test for the 2-circle hunting license."
Leave the Hunters Guild


HIV transmission clusters sequences (.) HIV- MSM networks Pathogens []. Poland using clustering subtype {border-style infection transmissions (–) px;} #ffffff;} Medical Sciences clustered patients study Biology infections data drug time <. Viral associated (.%) AIDS Infectious Viruses epidemics frequency recent resistance years Department Life Medicine men new onward sequence treatment (IQR: Transmission increase infected molecular pairs Poland. Poland[], University analyses analysis cases diseases: dynamics including interregional model observed phylogenetic tree (%CI: HIV: Immunodeficiency Microbial Microbiology Organisms Polish Retroviruses antiretroviral infectious lymphocyte median months patterns px; route {font-family (%) .–.), European Fig [,]. care font-size performed sex testing trends viral AIDS: Bayesian Diseases Diseases, MCMC Molecular Pomeranian characteristics clusters/pairs common compared diagnosed distances double; early epidemiology genetic genotyping identified individuals number obtained populations reflect related sites spread stage used (.% (±.) .%) ./--- .–.) AU. Additionally, Data Laboratory MLP MP. RosinskaM, Szczecin, Time [OR:. acquired border-color border-width calculated category clinical cluster cohort containing dated derived diagnoses estimated events genotyping, increased internode likelihood ones patient prevention reported sciences shown similar size solid; use {font-style {font-weight (.%, (Fig BrennerBG, CDC Clinical Clustering Clusters HCV Health JaniecJ, KM-KM, Lentivirus Lentivirus: MWJ ParczewskiM, Pathology Phylogenetic Poland, Research UNAIDS University, Using Viruses: [OR: allows analysed based biology: bold case centers clock clusters, collected courier; current deficiency diagnosis disease distance em; evolutionary expanding genetics group health high higher identification immune included increasing infection. inferred investigate limited links medical newly occurred one. partially participating patients. phylogeny pol prevention. previously prior proportion pt;} rates reflects sampling sequences, sequences. significantly software strategy time, transcriptase used. virology: year


--- layout: post title: Global eval. What are the options? tags: - js ---
David Flanagan recently wrote about global eval() in Javascript, proposing a simple one-liner like this:
var geval = this.execScript || eval;
Even though it looked beautifully simple, it wasn’t the best cross-browser solution I could think of. Moreover, it’s not something I would recommend. Pondering a bit more on this subject, I realized that there are actually quite a few ways to evaluate code in global scope in Javascript. Some of those ways — e.g. indirect eval — are also not understood very well, and their implications are not immediately visible. David pointed out to me — in one of the comments — that “indirect eval” is not a well-known idiom except in close circles of implementors. And he was right. There was in fact tons of confusion on the subject of global eval, all over the web.
In hope of making the situation clearer, I’d like to go over “global eval” options, taking a look at how and why they work. I’ll also explain some of the problems with the above-mentioned one-line solution.
Before going further, let’s define “global eval” as a way to evaluate code in global scope. Simple as that.
The reason for all this fuss about evaluating code in global scope is because global, built-in eval
function evaluates code in the scope of a caller:
var x = 'outer';
(function() {
var x = 'inner';
eval('x'); // "inner"
})();
This behavior is described very clearly in both — ES3 and ES5:
[...] The scope chain is initialised to contain the same objects, in the same order, as the calling context's scope chain. This includes objects added to the calling context's scope chain by with statements and catch clauses. [...]
— 10.2.2 Eval Code [ES3]
In ES5, things are a bit more complicated interesting. The behavior of eval
depends on 2 things — whether it is a direct or indirect call and whether invocation happens in strict mode. Don’t worry if you don’t know what “indirect call” is — we’ll take a look at it very soon. When talking about non-strict, direct eval call (i.e. good old eval(...)
invocation) the outcome is exactly the same as in ES3 — code is executed in the scope of a caller.
[...] b. Set the LexicalEnvironment to the same value as the LexicalEnvironment of the calling execution context. [...]
— 10.4.2 Entering Eval Code [ES5]
So native eval
doesn’t allow to execute code globally. What to do? Let’s first take a look at some of the options, then try to distill them into a cross-browser solution.
I mentioned “indirect eval call” before, when explaining behavior of eval
in ES5. The reason indirect eval is of interest is because in ES5 it actually does execute code globally. Bingo! But what does it even mean — “indirect eval call”. Indirect eval call is simply any eval call that’s not a direct eval call. And direct eval call is defined as:
A direct call to the eval function is one that is expressed as a CallExpression that meets the following two conditions:
The Reference that is the result of evaluating the MemberExpression in the CallExpression has an environment record as its base value and its reference name is "eval".
The result of calling the abstract operation GetValue with that Reference as the argument is the standard builtin function defined in <IP_ADDRESS>.
— <IP_ADDRESS>.1 Direct Call to Eval [ES5]
That might sound a bit cryptic, but it’s actually very simple. What specification is trying to tell is that eval('1+1')
is a direct call, but (1,eval)('1+1')
is not. If we were to dissect first expression — eval('1+1')
— syntactically, we would see that it’s really just a CallExpression, which consists of a MemberExpression (eval
) followed by Arguments ('(1+1)'
), and in which MemberExpression consists of “eval” Identifier:
eval ( '1+1' )
|______|
Identifier
|______| |________|
MemberExpression Arguments
|__________________________|
CallExpression
This is, more or less, a signature of a direct call. ES3 has a slightly simpler definition, and the one that’s pretty much identical to the graphic above:
“[…] any way other than a direct call (that is, other than by the explicit use of its name as an Identifier which is the MemberExpression in a CallExpression) […]”
— <IP_ADDRESS> eval(x) [ES3]
So eval('1+1')
is a direct eval call, but (1,eval)(‘1+1’) is not. Since the latter one is not a direct call, it is therefore an indirect eval call. Let’s take a look at it in more detail:
( 1 , eval ) ( '1+1' )
|____| |_____| |_____|
Literal Operator Identifier
|_________________________|
Expression
|______________________________|
PrimaryExpression
|______________________________| |________|
MemberExpression Arguments
|________________________________________________|
CallExpression
In the above example, the part before Arguments (invocation parens) clearly doesn’t consist of just “eval” identifier. There’s a whole other expression, consisting of comma operator, numeric literal, and only then “eval” identifier. 1,eval
— based on how comma operator works — still evaluates to a standard, built-in eval
function, but overall expression is no longer a direct call. It is therefore an indirect eval call.
If you’re still not quite able to recognize indirect eval calls, these are some of the examples:
(1, eval)('...')
(eval, eval)('...')
(1 ? eval : 0)('...')
(__ = eval)('...')
var e = eval; e('...')
(function(e) { e('...') })(eval)
(function(e) { return e })(eval)('...')
(function() { arguments[0]('...') })(eval)
this.eval('...')
this['eval']('...')
[eval][0]('...')
eval.call(this, '...')
eval('eval')('...')
According to ES5, all of these are indirect calls and should execute code in global scope. I’d love to go over each one of them in more detail, but that would be too much for this post.
Note the var e = eval; e('...')
on 5th line.
You can see that this is essentially what David’s solution does — var geval = window.execScript || eval
. When geval
is executed, geval
identifier resolves to a global, built-in eval
function, but overall expression does not have “eval” as an Identifier in CallExpression. Instead, there’s “geval” identifier, making this an indirect call and evaluating code globally.
But we’ll get back to that one-liner later, and now let’s take a look at one last, but not least important point about indirect eval call.
Have you noticed how ES5 definition says that eval
from CallExpression should evaluate to standard, built-in function? It means that taken out of context, eval('1+1')
is not necessarily a direct call. Only when eval
actually references standard, built-in function (wasn’t overwritten or shadowed), a call can be considered direct.
eval = (function(eval) {
return function(expr) {
return eval(expr);
};
})(eval);
eval('1+1'); // It looks like a direct call, but really is an indirect one.
// It's because `eval` resolves to a custom function, rather than standard, built-in one
Now that we looked at a list of indirect calls, how about few examples of direct ones?
eval('...')
(eval)('...')
(((eval)))('...')
(function() { return eval('...') })()
eval('eval("...")')
(function(eval) { return eval('...'); })(eval)
with({ eval: eval }) eval('...')
with(window) eval('...')
Looks pretty straightforward, doesn’t it?
But wait a second. Why is it that (eval)('...')
and (((eval)))('...')
are considered direct calls? Certainly, they don’t adhere to the signature we established earlier — Identifier “eval” within MemberExpression within CallExpression. What’s going on here? Shouldn’t the parenthesis around eval
make it an indirect call?
The answer to this tricky question is in the first paragraph of ES5 direct call definition — the fact that “eval” in CallExpression should be a Reference, not a value. During program execution, eval
in eval('1+1')
expression is nothing but a Reference, and needs to be evaluated to a value. Once it’s evaluated, the value is (most likely) a standard, built-in function object. What happens in previously dissected (1,eval)('1+1')
indirect call, is that (1,eval)
expression evaluates to a value, not a Reference. Since it doesn’t evaluate to a Reference, it can not be considered a direct eval call.
But what about (eval)('1+1')
?
The reason (eval)
is considered a direct eval call is because (eval)
expression still evaluates to a Reference, not a value. Ditto for ((eval))
, (((eval)))
, and so on. This happens because Grouping Operator — “(” and “)” — does not evaluate its expression. If a Reference is passed to a Grouping operator — “(” and “)” — it still evaluates to a Reference, not a value.
eval(); // <-- expression to the left of invocation parens — "eval" — evaluates to a Reference
(eval)(); // <-- expression to the left of invocation parens — "(eval)" — evaluates to a Reference
(((eval)))(); // <-- expression to the left of invocation parens — "(((eval)))" — evaluates to a Reference
(1,eval)(); // <-- expression to the left of invocation parens — "(1, eval)" — evaluates to a value
(eval = eval)(); // <-- expression to the left of invocation parens — "(eval = eval)" — evaluates to a value
Speaking in terms of ECMAScript, this is because both — comma operator (in (1, eval)
example) and =
operator (in (eval = eval)
example) perform GetValue
on its operands. As a result, (1, eval)
and (eval = eval)
evaluate to a value, whereas eval
and (eval)
— to a Reference.
Hopefully, it is now clear why (eval)('...')
and (function(eval){ return eval('...') })(eval)
are direct eval calls, but (1, eval)('...')
and this.eval('...')
aren’t.
With all the theory of indirect eval
behind us, let’s consider practical implications. We already know that ES5 specifies such calls to evaluate code in global scope. There are only 2 things left to consider — ES3 and reality. The fun part starts with ES3, which allows indirect eval calls to throw an error. Not only does ES3 allow for an error, it says nothing about evaluating code in global scope. And what about reality?
It turns out that quite a lot of environments nowadays more or less follow ES5 behavior, evaluating code in global scope. But unfortunately, not all of them.
IE<=8 executes code in the scope of a caller, as if indirect call was direct one. Some versions of Konqueror (~4.3) and Safari <=3.2 do the same thing as IE, evaluating code in the scope of a caller. Older Opera (~9.27) goes even further and actually does throw error, as permitted by a spec. All of this makes indirect eval
call (on its own) not a good candidate for a cross-browser “global eval” solution. Not for another few years (when Opera <=9.27, Safari <=3.2 (which is probably still present in earlier iPhones), and other “misbehaving” browsers “disappear”).
Curiously, as of now, even the newest browsers deviate from ES5. Chrome 9, for example, considers this an indirect call — (function(eval){ return eval('x'); })(eval)
— which it really isn’t; eval
is a reference, it’s part of a MemberExpression within a CallExpression, and evaluates to a standard, built-in function.
Opera 11 and Firefox 4 — both browsers are still in beta for these versions — consider the following expression to be a direct call, even though it doesn’t satisfy all requirements of such (eval
doesn’t resolve to a standard, built-in function in this case):
eval = (function(eval) {
return function(s) {
return eval(s)
};
})(eval);
eval('...');
Full ES5 conformance is clearly yet to come (meanwhile, take a look at my simple test suite).
Fortunately for us, there’s a proprietary window.execScript
function present in IE. It’s defined to “execute the specified script in the provided language” and allows to execute Javascript code in global scope. It’s not very surprising that Chrome has this function as well; most likely for compatibility reasons. As of today, window.execScript
is still present in Chrome 9.
The way window.execScript
differs from indirect eval call is that it doesn’t return a value. Actually, it does return value in Chrome, but that value is always null
.
window.execScript('1+1'); // null in Chrome, undefined in IE
(1,eval)('1+1'); // 2
Another, very popular way to execute code in global scope is using window.eval
. What’s interesting about it, is that window.eval('...')
is often believed to be somehow special when it comes to executing code globally. It’s as if eval
called as a property of window
object always executes in global scope. The truth is that window.eval('...')
is nothing but a… indirect eval call, and is not much different than (1,eval)(‘…’), this.eval('...')
, or (eval = eval)('...')
when it comes to evaluation.
 All of those are, once again, nothing but indirect eval calls. The reason code is executed in global scope is not because eval
is called in context of window
, but because it’s invoked as an indirect call. eval
might as well be a property of foo
object, and would still work identically:
var foo = {
eval: eval
};
foo.eval('...'); // behaviorally identical to `window.eval('...')`
// both are indirect calls and so evaluate code in global scope
More confusion can be seen on StackOverflow, where eval
is labeled “magic”, and is claimed to somehow lose its magic when aliased — all the symptoms of direct vs. indirect calls.
It’s worth mentioning that in some of the WebKit -based browsers — including latest Safari (5) and Chrome (9) — eval
throws error when called from within certain context (a.k.a. “this” object). And by “certain context” I mean anything that’s not a window/global object (or at least it seems that way). The error is EvalError: The “this” object passed to eval must be the global object from which eval originated. This is probably done for security reasons.
window.eval('1+1'); // works
eval.call(window, '1+1'); // works
eval.call(null, '1+1'); // works, since eval is invoked with "this" object referencing global object
eval.call({ }, '1+1'); // EvalError (wrong "this" object)
[eval][0]('1+1'); // EvalError (wrong "this" object)
with({ eval: eval }) eval('1+1'); // EvalError (wrong "this" object)
Since all of those calls are indirect ones, such error is allowed by ES3 (see, for example, EvalError — <IP_ADDRESS>)
Sometimes I see suggestions to use new Function
(or just Function
) to evaluate code globally:
Function('return 1+1')(); // 2
This is somewhat misleading.
The code executed from within function created by Function
constructor doesn’t really execute in global scope. However, it doesn’t execute in local scope either, which is what probably leads to confusion.  Any code contained in a function created via Function
constructor evaluates in a scope of that function, not in a global scope. However, it’s almost as if code executes globally, since global object is the very next object in the scope chain.
What are the implications of this difference?
Well, for once, any function/variable declarations are performed using created function’s Activation Object as Variable Object. In other words, they are declared local to created function, rather than in a global scope:
function globalEval(expression) {
return Function(expression)();
}
var x = 'outer';
(function() {
var x = 'inner';
globalEval('alert(x)'); // alerts "outer"
})();
// but!
globalEval('var foo = 1');
typeof foo; // "undefined" (`foo` was declared within function created by `Function`, not in the global scope)
Another interesting peculiarity of evaluating code via Function('...')()
is identifiers leakage. An example of this is "arguments" identifier which resolves to an arguments
object, when evaluating code via Function('...')()
:
eval('alert(arguments)'); // ReferenceError
Function('alert(arguments)')(); // alerts representation of an `arguments` object
Function
-executed code is a good solution if you wish to avoid executing code locally, but it won’t execute it globally either.
Non-standard (but finally codified in currently draft HTML5) setTimeout
is another way to execute code globally — when given code as a string, rather than as a function. The problem with setTimeout
, of course, is that it’s asynchronous and that — similarly to window.execScript
— it doesn’t return the result of evaluation.
Unfortunately, looking through HTML5 specs, I couldn’t find any mention of the fact that setTimeout
should evaluate code in global scope. Hopefully, I missed it; it should certainly be specified.
Finally, in browser environment, there’s always an option of injecting a script element into a document. Contents of that script element are then parsed and executed as a Program in global scope:
var el = document.createElement('script');
el.appendChild(document.createTextNode('1+1'));
document.body.appendChild(el);
As with window.execScript
and setTimeout
-based solutions, this one doesn’t allow to get meaningful return value (unless some kind of workaround is applied). Script insertion is used by current jQuery (1.4.4) in jQuery.globalEval
. It fails to provide a return value, but works in more cross-browser manner than “indirect eval + window.execScript” combination. For example, it works in Safari <=3.2 and in older Opera, in which indirect eval calls fail.
window.execScript || eval
Let’s get back to this very appealing one-liner, taking a look at some of its problems. Although it seems great in theory, its 2 main downsides can be summarized as:
eval
is not sufficiently cross-browser; lack of feature-testingexecScript
is preferred to standard eval
As you’ve seen before, indirect eval is still quirky across some of the existing browsers. There are also environments where it hasn’t even been tested in — mobile browsers, non-standard platforms, older, rare or unknown browsers, etc. Relying on the fact that indirect eval executes code globally — just because that’s what happens in some of the newer, popular browsers — is rather careless. A much saner strategy is to actually feature test indirect eval call behavior before attempting to use it.
Another problem of one-liner is that window.execScript
is tested for existence first, and only when it doesn’t exist, eval
is chosen as a fallback. One of the rules of interoperability is that standard features should be preferred over non-standard ones. For example, since window.execScript
exists in Chrome, one-liner will end up “using” non-standard (and less-capable) window.execScript
rather than standard eval
.
Finally, the assumption that if window.execScript
doesn’t exist, then indirect eval must be executing code globally (which is what one-liner does) strikes me as rather unsafe.
There are more similarly non-optimal soutions online, where folks seem to be taking trial-and-error approach, not realizing why things work the way they do. Rakesh Pai is bedazzled by the unexplainable difference between eval
and window.eval
invocations:
I don’t know what Firefox is doing in case 2, and for some reason Safari Nightlies seem to be following it. Maybe it’s just beyond my understanding, but case 2 is not supposed to be different from case 1. Why does case 2 operate in global scope? If window.eval is different from eval, case 3 shouldn’t all have given errors. Someone please help me understand that $hit.
The fact that browsers do not fully conform to ES5 makes things even worse. For example, with(window) eval('...')
is considered an indirect call in Chrome 9, even though as per ES5 it is very much a direct one — the “eval” Identifier is within MemberExpression of CallExpression; it’s a Reference, and it resolves to a standard, built-in eval
function.
Creating a more robust version of global eval is not hard.
The idea is similar — use indirect eval, with a fall back on window.execScript
. The important difference, however, is that indirect eval is feature-tested and is only used when it’s safe to do so. One potential problem here is that window.execScript
is not tested, but is instead assumed to execute code globally. If you find this assumption unsafe, it should be trivial to add feature-test for window.execScript
as well.
var globalEval = (function() {
var isIndirectEvalGlobal = (function(original, Object) {
try {
// Does `Object` resolve to a local variable, or to a global, built-in `Object`,
// reference to which we passed as a first argument?
return (1,eval)('Object') === original;
}
catch(err) {
// if indirect eval errors out (as allowed per ES3), then just bail out with `false`
return false;
}
})(Object, 123);
if (isIndirectEvalGlobal) {
// if indirect eval executes code globally, use it
return function(expression) {
return (1,eval)(expression);
};
}
else if (typeof window.execScript !== 'undefined') {
// if `window.execScript exists`, use it
return function(expression) {
return window.execScript(expression);
};
}
// otherwise, globalEval is `undefined` since nothing is returned
})();
The benefit of this kind of implementation is that it enables graceful degradation. You can easily find out if globalEval
is available in a current environment (since globalEval
would be undefined
when none of the 2 solutions are available):
if (globalEval) {
/* code can be executed globally */
}
else {
/* use fallback scenario */
}
Note that — as with any indirect eval / window.execScript
approach — globalEval
will differ in its ability to return a value, depending on which method was chosen.
So what do some of the popular Javascript libraries do? Which global eval solution do they chose?
As we’ve seen earlier, jQuery sacrifices return value for a more extensive browser support, using script insertion technique in its jQuery.globalEval
method.
Prototype.js doesn’t even try to evaluate scripts globally — it uses a good old, direct eval invocation. Instead, Prototype.js warns about ramification of local execution in the documentation.
Dojo choses the infamous window.eval
variation, but does something really messed up — it uses indirect eval if eval
exists on a global object (which should be true in all ES3-compliant browsers), and falls back on regular eval invocation. This kind of fall back obviously results in code executed locally, which should also happen silently. Dojo’s eval
behavior will vary wildly depending on the environment, and has a possibility of uncaught error. On a related, humorous note, I was just as stunned by comments around dojo.eval
as David Mark in this message.
Mootools uses window.execScript
when present, falling back on script insertion (similar to jQuery). jQuery’s script insertion, however, is more robust than Mootools, as they actually test if it results in evaluation of code.
Fuse.js choses a very elaborate and careful strategy. It tests if indirect eval works as expected (catching an error if any), uses it if it does; if indirect eval is defunct, Fuse falls back on script injection. Unlike jQuery or Mootools, it actually tries to return a value of a code executed via script injection. It does so by wrapping contents of code with eval. An interesting side effect of executing code globally via eval
is that function and variable declarations create deletable bindings (which is most likely an insignificant detail).
So what can we learn from all this?
Hopefully, you now have a true understanding of why eval
sometimes executes code in global scope. That window.eval(...)
is not very special and is just another form of indirect eval. That behavior of indirect eval is specified differently in ES3 and ES5. That behavior of indirect eval in actual implementations is still often sporadic — partly due to transitioning from ES3 to ES5, partly because of uncaught bugs. You’ve seen that blindly relying on indirect eval is unsafe. That implementations of “global eval” relying on indirect eval should employ feature testing, as with so many other things in cross-browser scripting. Finally, that alternative techniques exist and are used by libraries, such as script injection.


Carnegie Mellon University
—
—
—
Search
Search
COVIDcast
Real-time COVID-19 Indicators
by the Delphi Group
Our mission
Data and methods
Surveys
Our team
Terms of use
Internet Explorer 11 is no longer supported. We encourage you to use a more modern web browser, such as Firefox, Chrome, or Safari.


Home
Create Event
Enter Funds
See Collections
E-Chanda
Logout
DONATION INFORMATION
Select Event
Event 1
Event 2
Event 3
Rs. 30
Rs. 50
Rs. 100
Rs. only/-


Description of payment for submision
Fee free for music submission.
People who will not attend the conference but music pieces are selected should pay the “Conference Registration fee”
Registration fee (either the “Works Selected Registration”, or the whole 2019 WOCMAT Conference Registration) is required for the composers to perform the pieces in the concert.
CategoryＡ: Call for works for Concert
1、Tape Music, Fixed Media, Acousmatic Music
2、Mixed Work for solo
3、Live Electronics, without instruments(with acoustical instrument)
4、Multimedia Work
5、Soundscape Composition
Note:
--Works must be no longer than 8 minutes.
--Instrument list**：Flute, Violin, Cello, Piano, Erhu, Zhongruan, and Zheng.
**If there is an instrument not provided above, the composer should provide the player himself.
Category B : Call for International Electroacoustic Music Young Composer Award
WOCMAT call for 2019 International Electroacoustic Music Young Composer Award Competition, the 2 first prize works will be performed in conference concert.Award-winners will be offered a WOCMAT official certificate.
1、Electronic Art Music: Synthesized music, Computer Algorithmic music, Soundscape composition, Tape music, Fixed media, Acousmatic music
2、Applied Music: Commercial music, MIDI music, Digital music, Film music
Note:
--Length of Work must be between 90 seconds and 5 minutes.
--composers under the age of 35 - born after 1984/10/1
General rules:
-- The Submission Deadline of Category B has been prosponded to November 10th, 2019, 6 pm (UTC+9)
--Up to two works may be submitted, but they must belong to different sub-category
-- Only Online Submissions are allowed. If your file over 100MB , please give the link of your work through the form from the submission system.
--Media Files - Audio file must be in stereo (either mp3, AIFF, or WAV), the video file in format : mp4, mov, or avi
--category A, item 2 and 3: must online upload the audio file of complete work, and/or related files(patches, documents, programs, etc.)
--category A, item 2: must online upload the score (PDF)


Preparation time
less than 30 mins
Cooking time
30 mins to 1 hour
Serves
Serves 4
A hearty chicken stew that's perfect after a bracing autumn walk. Serve with mountains of mash.
Season the chicken pieces with salt and freshly ground black pepper, then dredge in the flour to coat.
Heat a large, deep frying pan over a medium heat. Add the oil, and a third of the butter and heat until the butter is foaming.
Add the chicken pieces and fry skin-side down for 1-2 minutes until golden-brown, then turn the chicken and fry on the other side for another 1-2 minutes.
Meanwhile, heat a separate frying pan over a medium heat and add another third of the butter. When the butter is foaming add the button mushrooms and fry, stirring occasionally, until golden-brown all over.
Add the mushrooms to the chicken pan.
To the pan used to fry the mushrooms, add the remaining third of the butter, the shallots and the caster sugar and fry for 2-3 minutes until the shallots are golden-brown and caramelised.
Add the wine and bring to the boil, scraping the base of the pan with a wooden spoon to dislodge any brown bits.
Pour the shallots and wine mixture over the chicken, then add the stock, tomato purée and whole tarragon sprigs. Bring to the boil, then reduce the heat to simmer for 45 minutes to one hour, or until the chicken is completely cooked through and the sauce has reduced slightly.
Add the tomatoes, flatleaf parsley and the chopped tarragon and season, to taste, with salt and freshly ground black pepper. Simmer for a further two minutes.
Meanwhile, for the mashed potatoes, place the potatoes into a pan of salted water and bring to the boil. Reduce the heat and simmer for 12-15 minutes, or until the potatoes are tender.
Drain the potatoes and return to the pan. Place over a low heat for one minute to drive off any excess moisture.
Mash the potatoes well, then add the butter and milk, beating well to form a smooth mash. Season, to taste, with salt and freshly ground black pepper.
To serve, place two pieces of chicken onto each plate. Drizzle the sauce over each and place a dollop of mashed potatoes alongside.


esix Tag Assistant Tampermonkey
Adds useful option for tags on esix. Such as opions to add tags directy to the search bar on click.
View on GithubShortcut BetterDiscord
Ever wanted the ability to have shortcuts in Discord? Well now you can!
View on GithubWordEnd BetterDiscord
Adds a word of your choice to the end of each word inside end{}
View on Github


3 references to After
System.Management.Automation (3)
engine\remoting\commands\GetJob.cs (3)
278
bool afterParameter = MyInvocation.BoundParameters.ContainsKey(nameof(
After
));
302
job.PSEndTime >
After
)
310
job.PSEndTime >
After
))


EUR/USD Technical Analysis: Euro corrects early November decline, ends the week above 1.1050 level
by Flavio Tosti- EUR/USD ends the week near its highs as the market is correcting the recent November decline.
- The correction can continue to the 1.1055/78 resistance zone.
EUR/USD weekly chart
EUR/USD had a small corrective bounce above the 1.1000 handle this week. The market is trading below its main weekly simple moving averages in a weak bear trend.
EUR/USD daily chart
The Euro, on the daily chart, is trading in a bear trend below downward sloping 100 and 200-day simple moving averages (DMAs). This Friday the market corrected to the upside and broke above the 50 DMA today at 1.1041. The spot also reached the 1.1060 level which is the 38.2 Fibonacci retracement from the current November decline.
EUR/USD four-hour chart
The Fiber is correcting up as it moved beyond the 50 SMA. There is a weak resistance at 1.1055, which might be overcome, according to the Technical Confluences Indicator. Afterwards, comes the 1.1078 strong resistance near the 200 SMA. If that also fails to contain prices, then the market might continue its correction towards the 1.1112 level. Further up lie the 1.1181 resistance.
Additional key levels
EUR/USD
| Overview | |
|---|---|
| Today last price | 1.1055 |
| Today Daily Change | 0.0034 |
| Today Daily Change % | 0.31 |
| Today daily open | 1.1021 |
| Trends | |
|---|---|
| Daily SMA20 | 1.1092 |
| Daily SMA50 | 1.1041 |
| Daily SMA100 | 1.1101 |
| Daily SMA200 | 1.1181 |
| Levels | |
|---|---|
| Previous Daily High | 1.1029 |
| Previous Daily Low | 1.0989 |
| Previous Weekly High | 1.1176 |
| Previous Weekly Low | 1.1016 |
| Previous Monthly High | 1.118 |
| Previous Monthly Low | 1.0879 |
| Daily Fibonacci 38.2% | 1.1013 |
| Daily Fibonacci 61.8% | 1.1004 |
| Daily Pivot Point S1 | 1.0997 |
| Daily Pivot Point S2 | 1.0974 |
| Daily Pivot Point S3 | 1.0958 |
| Daily Pivot Point R1 | 1.1037 |
| Daily Pivot Point R2 | 1.1052 |
| Daily Pivot Point R3 | 1.1076 |


PhD Research
As an HCI PhD student, what areas should I focus on learning?
This is an ever-evolving complex question. The answer will depend largely on who you ask and when you ask. The question is complex both because of the interdisciplinary nature of HCI as well as the different threads of research within it (e.g., from more usability-leaning research to more design-oriented research). Skills/areas that I consider core to HCI can be broken down into seven interconnected areas (in no particular order):
- Theory (e.g., psychology, cognitive science, sociology, anthropometrics)
- Design (e.g., visual design, interaction design, software design, industrial design)
- Critical thinking (e.g., comfort/experience with brainstorming/ideating, providing/receiving critique)
- Implementation abilities (e.g., programming skills, rapid prototyping, working with materials, physical computing)
- Evaluation (e.g., study/experimental design, qualitative methods/analysis, quantitative methods/analysis, statistics)
- Communication (as HCI is fundamentally about communication, students should be strong oral and written communicators)
- Technical skills (HCI—at least the HCI that I do—is increasingly technical relying on machine learning, data analysis, computer vision, embedded systems, etc.)
Note: the list above is not comprehensive.
If you are a CS graduate student, I would try to take as many machine learning, statistics, and computer vision courses as possible. Whether CSE, HCDE, or iSchool, I would try to take at least an "Intro to HCI" course (if you have not as an undergrad), a graphic design or interaction design (IxD) course, and a research methods course (the more, the better). I'll close my answer by emphasizing that I truly believe that the best way to learn is by doing.
I'm considering applying to UW for a PhD in HCI, should I apply to CSE, HCDE, or the iSchool?
This is a good question. The answer, really, is that it depends on your skills/background, your research interests and goals, and who you want to work with.
Should I get an MS before applying to PhD programs?
This is completely up to you but it is not necessary and somewhat atypical.
You may want to apply to MS programs first to get a taste of research and to help decide if you want to pursue a research-oriented career and get a PhD. This is what I did. I enrolled at the University of California, Irvine as an MS student and worked with Professor Paul Dourish before applying to PhD programs and eventually attending the University of Washington. Note: most MS programs are professionally oriented rather than research oriented. So, be sure to investigate each program closely. No matter what university you attend, if you have ambitions to earn your doctorate, the most important thing is the kind of research you do during your MS, your research productivity during that time, and who you work with (e.g., your MS advisor).
Undergraduate Research
I'm an undergrad at UW, how do I apply to the Makeability Lab?
The students who perform best in our group tend to be 'Makers' and self-starters unafraid of learning new technology and using it to build new, novel interactive experiences. Our research is heavily design/engineering but is also interdisciplinary. In particular, we encourage students in computer science, computer engineering, and electrical engineering to apply as well as those with art, design, and social science backgrounds.
We have a three-stage application process, which we have carefully refined over the years:
- First, fill out this application form. Note that because it takes time and effort to onboard and mentor students into research, we ask for a minimum two-quarter commitment.
- Second, for qualified candidates, we will request a letter of recommendation. This letter can be brief—one or two paragraphs is fine—but should speak to your creativity, responsibility and maturity, drive, and technical skills. The letter should also identify key improvement areas.
- Finally, we will schedule a ~20-30 min interview to help assess your communication, problem solving, and technical skills/experiences.
Top candidates will be offered a position on an active research project (typically led by a PhD student) —which will be based on the candidate's interests, skillsets, and the needs of our research. Candidates with less experience (e.g., first year ugrads, those without previous technical internships) may work with me on a side project first before joining a research team in earnest.
Regardless, all new ugrad members will entire an initial 'trial period' of 5-10 weeks where we setup a mutually agreed upon set of initial tasks and milestones. At the end of the trial period, we will have an in-person meeting where we assess whether the student has met their commitments and is a good fit for our lab. Just as importantly, the student also reflects on whether they want to continue working with us.
After the trial period ends, successful students become core members of the Makeability Lab—get increased levels of responsibility, get added to the ML webpage, get a t-shirt :), etc.
What are some characteristics of a successful undergrad researcher?
If you're an undergrad reading this website, you might be thinking to yourself: "Do I have what it takes?"
Characteristics of highly successful ugrad researchers include: tenacity and persistence, the ability to work through ambiguity and solve problems independently, a sense of creativity and wonder, a willingness to take risks, a strong and dependable work ethic, good communication skills (both oral and written), and a passion for endless learning and working on a team to solve difficult, never-before-solved problems.
You also have to have time. Time to work, time to think, time to make mistakes and recover, and time to prototype, code, test, and iterate over and over again. I have seen many undergraduate students fail at research simply because they vastly underestimated the amount of time and effort required to be successful. Research is hard. You will not succeed without a few long nights in the lab hacking on your software/hardware project trying to make a deadline.
If this intrigues you. If you want to be part of something bigger than yourself. If you want to be involved in solving high-impact research problems using HCI and computer science, then please apply here.
Oh, and if you're not in computer science. That's totally fine! While *most* of our ugrad research positions require technical expertise, we often work on massive, multi-disciplinary problems that benefit from additional skillsets (particularly in art and design but in other areas as well). We have successfully worked with undergraduate students in mechanical engineering, psychology, chemical engineering, design, math, physics, and others.
What do undergrad researchers do in the Makeability Lab?
Great question. The short answer: it depends. It depends on your interests and skills, on the projects we're working on, on the other undergraduates in the lab, and on the availability of graduate student mentors. Generally, all of my undergrads work on teams comprised of other students and faculty (in a range of disciplines), and are also mentored by one or two graduate students.
In any case, I truly believe—and have observed firsthand—that undergraduate students can significantly and positively impact a research project.I would like to earn course credit for research, what do I need to do?
CSE 498A, CSE 498B, and CSE 499 can be used to earn academic credit towards your degree requirement for doing research. Please consult the official CSE webpage for more details. (link). Taking these courses is a great way to free up your schedule for research (by reducing your lecture-based courseload) while also earning credit.
While the number of credits taken for CSE 498/499 varies, the average is 3-4 quarterly credits. Expect the workload to be approximately 3-4 hours per week per credit.
If you sign up for research credit, you will need to prepare a report and a final talk at the end of the quarter (given to the Makeability Lab) summarizing your key accomplishments and research findings.
I'm an undergraduate student at a university outside the US, can I intern in the Makeability Lab this summer?
I receive 50+ emails a year inquiring about summer research internships in my group from undergraduate students outside the US. The emails are often formatted very similarly and mass emailed to CS professors across the country (with little customization), such as:
Dear Professor Froehlich,
I am writing to you after having read through your research. I am particularly fascinated by <project X> and <project Y> and share your interest in developing interactive technology that is valuable to society on the whole.
I am an undergraduate student pursuing a degree in <some tech field> at <some university>, the top <department/university/institution> in my country. I would like to apply to work as a summer intern at your lab for the summer of 2015 (June and July), if possible.
<more paragraphs about candidate's background and an attached resume>
While I am grateful to be in a position to receive such interest, it is simply not tenable to thoroughly vet each of these applications. Moreover, many of these students want to come to the US for only a short period (2 - 3 months). It would be challenging for even a 2nd or 3rd year graduate student with research experience to accomplish publishable research in that time (especially starting from zero) much less an undergraduate student with little research experience (not to mention the transactional costs of acclimating to a new lab, working with new people, adapting to a new culture). So, in short, I either do not respond to these requests directly (my apologies, I simply receive too many emails) or respond with a polite "No."
I realize this means that I am likely missing out on working with and learning from some truly talented and exceptional students but the time and effort required to take such a risk outweighs the benefits for me (at least at this stage in my career).
There has been only one exception to the above and that was for an extraordinary student whom I had previously met at a conference, had already first-authored a research paper published at a top venue, had incredible letters of recommendation, and was attending and excelling at one of his country's top universities.
High School Research
I'm a high school student, how do I apply to the Makeability Lab?
We have been fortunate to work with many talented high school students over the years, including those that have gone on to top CS undergrad programs like MIT, Michigan, CMU, UW, UCLA, and UMD and many who have received top scholarships (e.g., the Bannaker/Key Scholarship, which is the University of Maryland's most prestigious academic award for undergraduates). Typically, high school research assistantships occur over the summer (we prefer a minimum ~8-10 week commitment) but other options are also available.
We are delighted to work with passionate, responsible, and technically skilled high school students in research. While we do not expect you to have the same skillset as our ugrad researchers, we do expect that you will be competent and comfortable in at least one programming language (e.g., Python, Java, C/C++, JavaScript, etc.), that you love solving hard technical challenges, and that you can learn quickly and independently.
Applying to the Makeability Lab as a high school student is similar to our ugrad process (indeed, we use the same application form):
- First, fill out this application form. Note that because it takes time and effort to onboard and mentor students into research, we ask for a minimum two-quarter commitment.
- Second, for qualified candidates, we will request a letter of recommendation. This letter can be brief—one or two paragraphs is fine—but should speak to your creativity, responsibility and maturity, drive, and technical skills. The letter should also identify key improvement areas.
- Finally, we will schedule a ~20-30 min interview to help assess your communication, problem solving, and technical skills/experiences. This can be done over Skype or Google Hangouts.
Misc
Would you write me a letter of recommendation?
- Importantly, when you first ask if I would write you a letter, you should provide well-thought out rationale for why you're asking me and what you think I can speak about that may differentiate my letter from others. Note that I, of course, reserve the right to disagree with your rationale if I do not think that I would be a good choice for your rec letter. And that's fine--you need to find the best letter writers for you! It's your career and your life.
- Ask for the letter in advance--a month beforehand would be nice. While I certainly do not need a month to write the letter, this lead time allows me to work around travel, big deadlines, etc., so that I can block out a free, quiet time to write a thoughtful and substantive letter. Please check with me a week before the recommendation letter deadline to ensure everything is going smoothly.
- If I agree to write you a letter, please send one email that
contains all
the information required for the letter, including:
- Summarize your work in my research group and/or class(es). Include a particular example (or two or three) where you demonstrated creativity, determination, or excellent performance, or recognition. You need not write in lengthy prose--a bulleted list is fine.
- Include an abbreviated list of your major (recent) accomplishments in life with descriptions--including scholastically, in research, in service (e.g., president of ACM-W on-campus group, started CS high school tutoring program), and in life (e.g., won university ballroom dance competition, marathon race finisher).
- Attach your transcript, your CV/resume, and, if applicable, a draft of your personal statement (doesn't need to be final).
- Ask your TA(s) for courses and/or your PhD mentor (for research) to send me an email describing the work that you did. When you do, summarize your work for them and highlight your accomplishments to jog their memory.
- Lastly, if I write you a letter, I'd love for you to stay in touch: let me know where you ended up and give me status updates from time-to-time. I really enjoy hearing from former students. If you encounter things in your career that you think I should be teaching in my classes, let me know!
I sent Professor Froehlich an email and he did not respond, what's the deal?!
My apologies! Thank you for your email—I look forward to talking with you! I really try to respond to nearly every email I receive (except for template emails from prospective students). However, sometimes my responses are delayed (by multiple days) or sometimes I simply miss your email.
If you don't hear from me within two days, please don't hesitate to send me a follow-up email (or even two) that contains your original email plus a "ping" note or something similar (so that I realize this is an additional attempt to contact me). I know this is less than ideal (and, perhaps, even sounds a bit pretentious) but I have recently crossed the email inbox threshold where I am literally drowning in email. I've found that it's not possible for me to process all of these emails and get my other work done each day. Hence, I suggest simply pinging me again with a friendly follow-up if I don't respond to your original message. :)


Code + goodies used in Prof. Baines' STA 250 Course (UC Davis, Fall 2013)
Welcome to STA 250!
This is the course website, and main portal to code, slides and other materials used in Prof. Baines' STA 250 Course (UC Davis, Fall 2013)
Links to various code snippets, data, notes etc. will be made available here throughout the course.
Course code will be hosted on the course GitHub repo. The syllabus and lecture slides can be found here:
Happy coding! :)


{% extends 'base.html' %} {% load input_field %} {% load format_utils %} {% load static %} {% block title %}{{ block.super }}: Overview{% endblock %} {% block container_col %}dashboard-content{% endblock %} {% block progress %}{% include "partials/dashnav.html" with active_page=active_page %}{% endblock %} {% block content %}
You have already completed this step.
Your {% include "partials/tooltips/online_package_number.html" with with_cso=True %} is {{ final_filing_package_number }}
You will receive e-mails from the system as your filing is processed by the Court Registry. The stauts of your court filing is shown below:
Current Filing Status:
You can view the package of all documents you have submitted in this filing.
If you have any questions, concerns or made mistakes in your final filing, please contact CSO Online Support at<EMAIL_ADDRESS>and include your {% include "partials/tooltips/online_package_number.html" %}.
Here you will {% include "partials/tooltips/file.html" %} completed documents to the court registry.
Missing a form required on this page? Check the Review Forms step.
{% if how_to_file == 'Online' %} {% endif %}Now that you have received a Court File Number and both sworn / affirmed your affidavits, you can proceed with the filing of your remaining documents. If you have not received a Court File Number, check the Wait for Court File Number step. If you have not sworn / affirmed your affidavits, check the Swear / Affirm Forms step.
Enter your Court File Number:
A Court File Number contains only digits and must be between 4 and 10 digits in length.
{% input_field type="text" name="court_file_number" id="court-file-number" class="input-inline" %}The following forms will be automatically filed for you:
Staple each form together and then fasten all forms with a paper clip, in the following order:
If you have other court orders or a written separation agreement, they should also be attached to your {% if derived.has_children_of_marriage %} Child Support Affidavit (F37) {% else %} Affidavit — Desk Order Divorce Form (F38) {% endif %} .
If you are filing by mail, you’ll need to include a cheque made payable to the Minister of Finance. The cost of filing your divorce will be $210. Add $10 and a note to your filing if you would like the Registry to return stamped copies of your filing by mail.
You have indicated that you will file at the following court registry:
{% if court_registry_for_filing %}Once filed, you will receive a {% include "partials/tooltips/court_file_number.html" %}. This number will be used if you need to file any additional documents.
Staple each form together and then fasten all forms with a paper clip, in the following order:
If you have other court orders or a written separation agreement, they should also be attached to your {% if derived.has_children_of_marriage %} Child Support Affidavit (F37) {% else %} Affidavit — Desk Order Divorce Form (F38) {% endif %} .
If you are filing by mail, you’ll need to include a cheque made payable to the Minister of Finance. The cost of filing your divorce will be $210. Add $10 and a note to your filing if you would like the Registry to return stamped copies of your filing by mail.
You have indicated that you will file at the following court registry:
Go back to the questionnaire to choose a filing location.
{% endif %}Once sworn / affirmed and filed, you will receive a {% include "partials/tooltips/court_file_number.html" %}. This number will be used if you need to file any additional documentation.
The following sworn / affirmed affidavits still remain to be filed:
The cost of filing your spouse’s portion of the divorce is free. Include a cheque made payable to the Minister of Finance for $10 and a note to your filing if your spouse would like the Registry to return stamped copies of your filing by mail. The documents must be filed using the {% include "partials/tooltips/court_file_number.html" %} that you received from the court registry.
You have indicated that you will file at the following court registry:
Go back to the questionnaire to choose a filing location.
{% endif %}You must select how you want to file in the Signing & Filing Options step.
{% endif %} {% endif %} {% if final_filing_submitted != 'True' and how_to_file == 'Online' %}When you click Submit Documents, you will be taken to the Court Services Online e-filing hub. In the next few steps you will be able to do a final review of your filed documentation, pay for your filing and (if completed successfully) receive a Package Number. This final step will complete your divorce filing.
{% if not court_registry_for_filing %}An application for divorce can be completed in one step or two steps depending on how you are swearing / affirming your affidavit(s). The two steps include an initial filing and a final filing. The initial filing is where you will start the proceeding for divorce by filing your Notice of Joint Family Claim.
The final filing is the application asking the court to order the divorce and includes your sworn / affirmed affidavit(s) and other supporting documents.
{% endblock %} {% block extra_css %} {% endblock %} {% block extra_js %} {% endblock %}


- c - Variable in class dataAccessV3.DataAccess
-
- cancel() - Method in class domainV2.event.Event
-
- cancelEvent(long) - Method in interface businessLogicV3.privateAPI.events.BLFacadePrivateEvents
-
This function cancels a event
- cancelEvent(long) - Method in class businessLogicV3.privateAPI.events.BLFacadePrivateEventsImplementation
-
This function cancels a event
- cancelEvent(long) - Method in interface dataAccessV3.events.DataAccessEvents
-
This function cancels a event
- cancelEvent(long) - Method in class dataAccessV3.events.DataAccessEventsImplementation
-
This function cancels a event
- cancelled - Variable in class domainV2.event.Event
-
- cancelQuestion(long) - Method in interface dataAccessV3.questions.DataAccessQuestions
-
This function cancel a question
- cancelQuestion(long) - Method in class dataAccessV3.questions.DataAccessQuestionsImplementation
-
This function cancel a question
- cashoutRewrite(User, String) - Static method in class webServerV3.RewriteUserHTML
-
This function rewrites the cash out page
- changePageMainPage(User, String, String, String, List<Event>, List<Event>, List<Event>, String, String, String, int) - Static method in class webServerV3.RewriteUserHTML
-
This function rewrites the change main page
- checkPasswordReset(String, String) - Method in interface dataAccessV3.email.DataAccessEmail
-
This function check if the token sent to the email equals to the stored one
- checkPasswordReset(String, String) - Method in class dataAccessV3.email.DataAccessEmailImplementation
-
This function check if the token sent to the email equals to the stored one
- checkResetPassword(String, String, String, String) - Method in interface businessLogicV3.publicAPI.email.BLFacadePublicEmail
-
This function checks if the token to reset the password is valid and allows
you to changethe password
- checkResetPassword(String, String, String, String) - Method in class businessLogicV3.publicAPI.email.BLFacadePublicEmailImplementation
-
This function checks if the token to reset the password is valid and allows
you to changethe password
- checkUserRank(String, String) - Method in interface businessLogicV3.privateAPI.users.BLFacadePrivateUsers
-
This method returns the rank of a user given the username and the token
- checkUserRank(String, String) - Method in class businessLogicV3.privateAPI.users.BLFacadePrivateUsersImplementation
-
This method returns the rank of a user given the username and the token
- checkUserRank(String, String) - Method in interface businessLogicV3.publicAPI.users.BLFacadePublicUsers
-
This method returns the rank of the user given
- checkUserRank(String, String) - Method in class businessLogicV3.publicAPI.users.BLFacadePublicUsersImplementation
-
This method returns the rank of the user given
- chooseTwoUnique(String[]) - Static method in class testsV2.DatabaseEventPopulation
-
- city - Variable in class domainV2.User
-
- close() - Method in class dataAccessV3.DataAccess
-
This function closes the database
- coins - Variable in class domainV2.event.TemporalStats
-
- computeDistancetoNormal(String) - Method in class domainV2.question.Question
-
- configFile - Variable in class configuration.ConfigXML
-
- configuration - package configuration
-
- ConfigXML - Class in configuration
-
It provides the configuration data from the "resources/config.xml" XML file
- ConfigXML() - Constructor for class configuration.ConfigXML
-
- connect - Variable in class webServerV3.SimpleHTTPServer
-
- connect - Variable in class webServerV3.SimpleHTTPServerWithSSL
-
- content - Variable in class domainV2.News
-
- convertBetweenConversion(double, double, double, double, double) - Method in class domainV2.question.Question
-
- country - Variable in class domainV2.User
-
- createBaseballEvent() - Static method in class testsV2.DatabaseEventPopulation
-
- createBasketballEvent() - Static method in class testsV2.DatabaseEventPopulation
-
- createEvent(String, Calendar, Calendar, Translation, List<EventTag>) - Method in interface businessLogicV3.privateAPI.events.BLFacadePrivateEvents
-
This function creates a new event
- createEvent(String, Calendar, Calendar, Translation, List<EventTag>) - Method in class businessLogicV3.privateAPI.events.BLFacadePrivateEventsImplementation
-
This function creates a new event
- createFootballEvent() - Static method in class testsV2.DatabaseEventPopulation
-
- createNewEvent(String, Calendar, Calendar) - Method in interface businessLogicV3.privateAPI.events.BLFacadePrivateEvents
-
This function creates a new event without translations
- createNewEvent(String, Calendar, Calendar) - Method in class businessLogicV3.privateAPI.events.BLFacadePrivateEventsImplementation
-
This function creates a new event without translations
- createQuestion(long) - Static method in class webServerV3.RewriteAdminHTML
-
This function rewrites the admincreatequestion page.
- createSoccerEvent() - Static method in class testsV2.DatabaseEventPopulation
-
- createToken(int) - Method in interface businessLogicV3.privateAPI.other.BLFacadePrivateOthers
-
This method generates a token of length 10
- createToken(int) - Method in class businessLogicV3.privateAPI.other.BLFacadePrivateOthersImplementation
-
This method generates a token of length 10
- createTourStage() - Static method in class testsV2.DatabaseEventPopulation
-
- currentPage - Static variable in class webServerV3.UserPostGetVector
-
- CYCLING - Static variable in class testsV2.DatabaseEventPopulation
-
- CYCLING_BETS - Static variable in class testsV2.DatabaseEventPopulation
-
- cyclingTags - Static variable in class testsV2.DatabaseEventPopulation
-
- cyclingTeams - Static variable in class testsV2.DatabaseEventPopulation
-


{% extends 'base.html' %} {% load highlight %} {% block search %} {% endblock %} {% block title %} Search {{block.super}} {% endblock %} {% block content %}
{% if method == "DATE" %} Results are sorted by publication date. Sort by relevance. {% else %} Results are sorted by relevance. Sort by publication date. {% endif %}
{% for article in page.object_list %}{{article.published|date:"j M Y"}}
{% with article.body|safe as body %} {% highlight body with query %} {% endwith %}
{% empty %}No results found.
{% endfor %} {% block pagination %} {% include 'paginator.html' with page_obj=page query=query %} {% endblock %} {% else %}


Please fill out this form to allow me to determine what type of property you are interested in buying.


|
package com.alpha.lock;
import com.alpha.api.services.AmplifyCallable;
import com.alpha.logging.LogUtils;
import com.google.inject.Singleton;
import org.slf4j.Logger;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.ReentrantReadWriteLock;
/**
* Class which should be used whenever the user objects information is read or database access is performed (Read or write).
* All operations should first request access and then relinquish access when wanting to read or write data.It is cruical in multithreaded
* environment to always relinquish your lock, as a result it is best to use the following pattern when requesting lock access
*
* try{
* lock.reqestAccess()
* do some work
* } finally {
* lock.relinquishPermission()
* }
*
* The lock used here is a reentrant read/write lock. What this means is that multiple read locks can be acquired by multiple
* thread and the call will not block. However as soon as a write lock is acquired all other threads that request the read lock will block until we relinquish
* the write lock. Therefore, unlike the read lock, only one write lock can be obtained at any given time.
*
* Important to note, if the thread which has requested the write lock also goes to request the read lock, the thread will receive the read lock aswell
* though it must relinquish all locks it has obtained for other threads to continue doing work.
*
* The global lock should not be requested by anyone but the UserRefreshTask and the SharedPreferenceUserService.refreshUser
*/
@Singleton
public class GlobalInformationLock {
private static final Logger LOG = LogUtils.getLogger();
private static final long TIMEOUT_PERIOD = 5;
private final ReentrantReadWriteLock lock;
public GlobalInformationLock(){
lock = new ReentrantReadWriteLock();
}
protected GlobalInformationLock(ReentrantReadWriteLock lock){
this.lock = lock;
}
private void requestPermission() {
LOG.trace(Thread.currentThread() + " is requesting the read lock");
try {
boolean acquired = lock.readLock().tryLock(TIMEOUT_PERIOD, TimeUnit.SECONDS);
if (!acquired) {
throw new LockTimeoutException();
}
} catch (InterruptedException e) {
throw new RuntimeException("Thread got interrupted while trying to acquire read lock",e);
}
LOG.trace(Thread.currentThread() + " has received the read lock");
}
private void relinquishPermission() {
LOG.trace(Thread.currentThread() + " is relinquishing read lock");
lock.readLock().unlock();
}
/**
* Dont use this, only really needed by the UserRefreshTask & SharedPreferencesUserService
*/
private void requestGlobalAccessLockout() {
LOG.trace(Thread.currentThread() + " is requesting the write lock");
try {
boolean acquired = lock.writeLock().tryLock(TIMEOUT_PERIOD, TimeUnit.SECONDS);
if (!acquired) {
throw new LockTimeoutException();
}
} catch (InterruptedException e) {
throw new RuntimeException("Thread got interrupted while trying to acquire read lock", e);
}
LOG.trace(Thread.currentThread() + " has received the write lock");
}
private void relinquishAccessLockout() {
LOG.trace(Thread.currentThread() + " is relinquishing the write lock");
lock.writeLock().unlock();
}
public T callWithWriteLock(AmplifyCallable amplifyCallable) {
boolean acquired = false;
try {
requestGlobalAccessLockout();
acquired = true;
return amplifyCallable.call();
} finally {
if (acquired) {
relinquishAccessLockout();
}
}
}
protected static final class LockTimeoutException extends RuntimeException {
public LockTimeoutException() {
super("Timed out waiting to acquire the read lock");
}
}
public T callWithReadLock(AmplifyCallable callable) {
boolean acquired = false;
try {
requestPermission();
acquired = true;
return callable.call();
} finally {
if (acquired) {
relinquishPermission();
}
}
}
}
|


Walther PPQ is a semi-automatic pistol developed by the German company Carl Walther GmbH Sportwaffen of Ulm for law enforcement, security forces and the civilian shooting market as a potential replacement for the Walther P99. The Walther PPQ is not a true new design. It shares its engineering principles and main features with the Walther P99QA variant of the P99 pistol that was introduced in 2000. However, unlike the P99QA, which utilized a partially cocked striker, the PPQ utilizes a fully cocked striker. There were many other modifications made to the design that were not seen on the Walther P99QA, like the re-designed grip, trigger guard, and a lot more.
SIG Sauer P226 Close range Mossberg 500


--- layout: post title: "Heidelberg AI kick-off" subtitle: "Paul Jaeger & Simon Kohl, Medical Image Computing (DKFZ)" date: 2017-06-06 19:00:0 +0000 background: '/img/posts/search_tree.png' future_date: False layer_shift: True ---
This is the first event of Heidelberg AI, with which we would like to get to know all people interested in participating. As we want to tailor the platform towards the wishes and ideas of all participants, there is going to be an open discussion about expectations and possible formats and topics.
We also hope to tickle you in just the right spots with 2 AI-related kick-off talks:
"Visualizing Convolutional Neural Networks: Behind the scenes of Google's Deep Dream and Neural Style Transfer" speaker: Paul Jaeger
"How AI eclipses humans in the game of Go" speaker: Simon Kohl


Toggle Navigation
CCS 19
About the Chapter
Contact Us
Login
Register
Register
Full Name
Age
Gender
----Select----
Male
Female
Other
Email Address
Password
Domain
----Select----
Frontend
Backend
Machine Learning
Mobile Number


--- layout: page title: Register description: Register today for the next workshop background: '/img/bg-contact.jpg' form: true ---
Interested in participating in this podcasting workshop hosted by the UW Libraries? Registration will be open starting Tuesday, January 21 and will close on Friday, January 31.


You can just call me Brickea. I'm currently pursuing a master's degree at Northeastern University. So in this website, you will find there are some travel pictures from my journal. Besides, I also share some of my study or workout plan. Btw, if u don't mind, u can also check my cover music. 😊 {% endblock main_body_content %} {% block photo_boxes %}


Mayo GAA goalkeepers eye soccer moves
THE three goalkeepers on the Mayo senior football squad are set to sign for soccer clubs.
Micheàl Schlingermann is seeking a return to League of Ireland football after placing his name on the PFA transfer list.
Robert Hennelly will be joining Castlebar Celtic from December 1 while David Clarke is linked with a move back to Moy Villa FC.
Both Hennelly and Clarke will still be available for GAA duties in 2020 but that won't be the case for Schlingermann if he signs a professional contract.


Christopher G. Hoffman
3026 Memphis Ave.
El Paso, TX 79930
<EMAIL_ADDRESS>OBJECTIVE
To obtain a full-time position as an entry level web developer where I can utilize my skills and learn new ones.
EMPLOYMENT
Field Technician, Insight Global
08/2017 - Present
- Work with 5 other personnel installing and verifying functionality of data collection systems.
- Upfit vehicles for installation of data collection systems.
- Support data collection teams by upgrading data collection vehicles when necessary.
CEO/IT Consultant, Set Computer Systems, Inc.
05/2017 - 08/2017
- Setup, troubleshoot, and repair computers and laptops running Microsoft Windows or Linux.
- Manage business operations from business setup and incorporation to financial responsibilities.
- Consult with customers and make recommendations for people that want to utilize older computer hardware without their system being extremely slow.
Sole Proprietor/Mechanic, Old Greg's Mechanix Shop
10/2016 - 01/2017
- Specialized in general automotive repair.
- Communicate with customers regarding vehicle issues and potential repairs.
- Create quotes and organize work records.
- Order accurate parts and supplies necessary to perform work needed.
Sole Proprietor/Mechanic, Big Daddy Hoff Motors
04/2014 - 08/2014
- Specialized in general automotive repair
- Created quotes with customers to ensure affordability.
- Swap engines.
- Communicate parts and supplies needs to Office Manager for ordering.
Human Resources Sergeant, U.S. Army, Fort Bliss, TX
12/2011 - 04/2014
- Supervised up to six Soldiers
- In charge of awards processing, in and out processing Soldiers, verifying and processing promotions, and providing guidance to seniors regarding Regulation and Doctrine changes.
- Responsible for over $200,000 in U.S. Government property without any loss.
Wheeled Vehicle Diesel Mechanic Sergeant, U.S. Army, Fort Bliss, TX
05/2011 - 12/2011
- Supervised up to fifteen Soldiers.
- Responsible for ensuring subordinate units performed proper Preventative Maintenance Checks and Services.
- In charge of ordering and tracking vehicle availability, ordering and tracking parts needed.
- As a junior Noncommissioned Officer, I was chosen over my seniors to be take the lead in the transfer of a $2,000,000 tool truck. This included documenting any shortages and ensuring that the replacement tools were ordered in a timely manner.
Wheeled Vehicle Diesel Mechanic Sergeant, U.S. Army, Camp Carroll, South Korea
04/2009 - 04/2011
- Supervised up to six Soldiers.
- Responsible for troubleshooting, diagnosis, and repair of vehicles
- Assisted subordinate units in performance of Preventative Maintenance Checks and Services.
- Operated 5 ton recovery vehicle (wrecker).
- Chosen by the Battalion Commander to assist in the restructuring of the Battalion Supply Operations.
- During my time in Battalion Supply Operations I supervised up to five U.S. Army Soldiers and four Korean Augmentees.
- Assisted in three Changes of Command from Company up to Brigade level with minimal property loss.
- Responsible for the proper accountability of over $7,500,000 of U.S. Government property.
- Noncommissioned Officer in charge of getting supplies and equipment from one base to another to support operations for accepting potential evacuees from Japan during the Fukushima Reactor Incident that occured in the wake of the tsunami that was caused by the April 2011 Fukushima earthquake.
EDUCATION
Udemy Web Developer Bootcamp
09/2017 - Present
Self-paced online course in web development with coursework in:
- HTML & CSS
- JavaScript
- jQuery
- Node JS
- JSON & XML
- MongoDB
- Git and Github
- RESTful Routing
Vista College, El Paso, TX
10/2015 - 04/2017
AAS Medical Insurance Billing and Coding
Wheeled Vehicle Mechanic School, U.S. Army, Edgewood, MD
08/2008 - 04/2009
Certificate in Diesel Mechanics


The world of data science is about as hot as a field can be right now. But, how can you get started leveraging your existing development background into data science. This talk will outline the basics of data science processes, terminology, and tools. It will describe a systematic approach to solving data science problems; from obtaining the data, cleaning it, modeling it using machine learning techniques, to communicating the findings to the world.
Frank D. Evans is a Data Scientist with Exaptive. He primarily works with machine learning and feature engineering using big data systems, specializing in unstructured and semi-structured data. His interests span natural language processing, political analysis, and building semi-supervised machine learning applications. Frank has a BS in Quantitative Social Science from St. Gregory’s University and a Master’s Specialization in Data Science from Johns Hopkins University. He is a co-founder and organizer of the Oklahoma City Big Data User Group.


--- layout: post title: Brian McCallister to be preset Rails at ApacheCon categories: - sightings author: admin published: true date: 2005-03-29 09:47:00.000000000 +01:00 ---
Under the session title of Cheap, Fast, and Good: You can have it all with Ruby on Rails, Brian McCallister will be presented at ApacheCon Europe 2005. The session will run for 60 minutes and features this abstract:
Ruby on Rails is a new web application framework which provides tools for everything from object/relational mapping to componentized views. It provides the architectural soundness of the Java Model 2 action/view frameworks with the rapid development and expressiveness of PHP. This session will teach you how to build sophisticated, scalable applications quickly using Ruby on Rails, the Apache Web Server, and PostgreSQL
ApacheCon Europe 2005 is going on in Stuttgart, Germany on the 18th through 22nd of July.


Sending unlimited messages and calls without any cost, for sure make you save money at the end of the year but it nothing comparable to the value of your private's life nor the price of the risks you can avoid by using Vortex.
Vortex doesn't know how much you value your private's life but Vortex know for sure the cost leaks and industrial spying can induce. It is sufficient to look at the insurance price to get a good idea about it.
Insurers are raising deductibles and in some cases limiting the amount of coverage to $100 million, leaving many potentially exposed to big losses from hacks that can cost more than twice that.
The price of cyber coverage – which helps cover costs like forensic investigations, credit monitoring, legal fees and settlements – varies widely, depending on the strength of a company’s security which vortex strengthen a lot. But the overall trend is sharply up.
As more companies realize the importance of having coverage, and insurers move in to meet that demand, the cyber insurance market is set to triple to about $7.5 billion over the next five years, according to a recent study by consulting firm PwC.
Higher deductibles are also now common for retailers and health insurers. And even the biggest insurers will not write policies for more than $100 million for risky customers. That leave companies like Target, which says its big 2013 data breach has cost $264 million, paying out of pocket.


Primary use of Ruby on Rails and Sinatra on the backend with RSpec and Capybara for testing purposes.
Experience with writing modular Javascript code and utlizing AngularJS for stand-alone single-page applications.
Use of Bootstrap and JQuery for creating sleek and responsive design.
Frequent use of Git for version control and Github to host projects. Deployment through Heroku with a postgreSQL database.