Primary Colors (1998) 3 1/2 stars out of 4. Starring John Travolta, Emma Thompson, Kathy Bates, Billy Bob Thornton and Adrian Lester.
Forget all you've read in the papers and news magazines, or what you've heard on television.
It's time to judge Primary Colors simply by what director Mike Nichols and his outstanding cast have brought to the screen.
What they have accomplished is both a celebration and an indictment of the American political system.
As anyone who hasn't been living under a rock for the past month or so knows, Primary Colors, based on the book by Anonymous (former Newsweek columnist Joe Klein), is the story of a Southern governor's quest for the presidency.
Any resemblance to Bill Clinton is purely coincidental (wink, wink).
A witty and wicked blend of comedy and drama, Primary Colors is not so much the story of a presidential campaign as it is a Faustian morality tale, a battle for one man's soul.
Ironically, the soul in question is not presidential hopeful Jack Stanton, but that of his deputy campaign manager, Henry Burton.
Burton, the idealist grandson of a famed civil rights leader, hesitantly joins the Stanton team because he thinks the candidate offers hope and a new vision.
But as he slowly comes to realize, Stanton leaves his idealism at the door in his drive to win. Henry's battle is whether it is worth forsaking his values for what Stanton and his team consider the greater good - the future of the country - or bolt, thus putting his personal vision ahead of his pragmatism.
As Henry, British actor Adrian Lester continually shows not only his internal conflict, but the slow tide of disillusionment that creeps over him as he gets deeper and deeper into the machinations of the Stanton campaign.
As Stanton, John Travolta does more than a Clinton imitation. He portrays a man who hungers not only for the approval, but the love of the people - all the people.
Stanton, though mouthing platitudes about idealism, believes the ends - no matter how amoral - justify the means, which is getting him elected so he can create a kinder, gentler United States.
Travolta, with his soft, raspy Southern drawl, is a good old boy who leaves the dirty work to his underlings while focusing on his vision of reshaping the nation.
Travolta's Stanton shows a genuine interest in people. But he is not a paragon of virtue.
Yet, he is charismatic. You like Stanton even though, like his real-life counterpart, you find it difficult to respect him.
The moral center of the movie is Kathy Bates as Libby, Stanton's campaign trouble-shooter. Her job is to clean up whatever he steps in. At first appearance, Bates' character is almost caricature and cartoonish, yet as the movie progresses from comedy to drama, her Libby displays a dignity and righteousness that rises above petty politics.
Emma Thompson's Susan Stanton is the foundation on which the Stanton campaign rests.
Thompson's body language tells all: her humiliation, anger, hurt and steely determination to see her husband succeed.
A sharp, pungent script by Elaine May is satiric, vicious, tragic and, surprisingly, compassionate. Her ear for dialogue is unerring, and she refuses to simply pigeonhole characters as good or bad.
For example, Larry Hagman's former governor who enters the race to pose a late threat to Stanton could have been portrayed as a Ross Perot-type of buffoon. But Hagman, through Nichols' direction and May's script, brings a quiet dignity to his character that most other protagonists lack.
Primary Colors is an engrossing movie, the best so far that deals with American politics. It champions the process while at the same time deflating it.
Despite denials from Nichols, Travolta and others that the movie is about Clinton, current events surrounding the president do add an undeniable undercurrent to the movie.
And for those conspiracy theorists who think the president cut a deal with Travolta or Nichols to soften the film's portrayal of Stanton, you'll have better luck finding the gunman from the grassy knoll. If anything, Primary Colors will make you look harder at the president, and to see what sacrifices and compromises a person must make within himself to attain his goals.
Bob Bloom is the film critic at the Journal and Courier in Lafayette, Ind. He can be reached by e-mail at<EMAIL_ADDRESS>or at<EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


config
steal.config( configOptions )
Configures the behavior of steal. For example:
steal.config({
map: {
"*": {
"jquery/jquery.js" : "jquery",
"can/util/util.js": "can/util/jquery/jquery.js"
}
},
paths: {
"jquery": "can/lib/jquery.1.8.3.js",
},
shim : {
jquery: {
exports: "jQuery"
}
},
ext: {
js: "js",
css: "css",
less: "steal/less/less.js",
coffee: "steal/coffee/coffee.js",
}
});
steal.config(optionName)
Returns a configuration option value. Example:
steal.config("env") //-> "development"
steal.config(optionName, optionVal)
Configures a specific option value. Example:
steal.config("env","production")
Steal supports the following configuration options:
- map - maps ids passed to steal to another id.
- paths - maps ids to a specific path.
- shim - used to support libraries that don't use steal.
- ext - specifies a dependency to load for specific extensions
- startId - the first module to load
- root - the root folder where everything is loaded from
- types - types used to load modules
- env - the enviornement: "development" or "production"
- loadProduction - load the production script in production environment
- amd - turn on AMD support.
- completed - tells steal that a dependency has already been loaded.
Alternative methods of setting config options
After steal.js
is loaded and run, you can call steal.config
anywhere. However, after steal.js
loads,
it automatically loads stealconfig.js
before it loads
anything else. stealconfig.js
is the best place to
configure settings that should be applied to all
projects. But, there are other ways of
calling steal.config
.
Set startFile and env in the script tag
You can set startFile and env the queryparams of steal like:
<script src='../steal/steal.js?STARTFILE,ENV'>
</script>
For example:
<script src='../steal/steal.js?cookbook,production'>
</script>
If you load steal/steal.production.js
the environment defaults
to production:
<script src='../steal/steal.production.js?cookbook'>
</script>
A steal
object that exists before steal.js
is loaded
If a steal
object exists before steal.js
is loaded,
steal will internally call steal.config
with that
object. For example:
<script>
steal = {
completed: "myapp/production.css"
}
</script>
<script src='../steal/steal.production.js,myapp'>
</script>
Locating StealJS and other libraries outside the root folder.
Its common desire to want steal and other projects in some shared folder and the application code somewhere else. For example:
shared/
steal/
can/
stealconfig.js
apps/
myapp/
myapp.js
This is possible by changing steal.config.root to
point apps
and
steal.config.paths to point to the shared
location. For example, the following in stealconfig.js
will work for the case above:
paths: {
"can/": "../shared/can/",
"steal/" : "../shared/steal/",
},
root: steal.config('root').join('../apps')
Signatures
steal.config()
Returns all configured properties. For example:
steal.config().root //-> URI
steal.config(propertyName)
Returns a single configured property value. For example:
steal.config("root") //-> URI
steal.config(properties)
Configures multiple properties at once. For example:
steal.config({root: "path/to/root"})


6. Objects and Data Structures
Data Abstraction
"Hiding implementation is not just a matter of putting a layer of functions between the variables. Hiding implementation is about abstractions! A class does not simply push its variables out through getters and setters. Rather it exposes abstract interfaces that allow its users to manipulate the essence of the data, without having to know its implementation."
Data / Object Anti-Simmetry
"Objects hide their data behind abstractions and expose functions that operate on that data. Data structures expose their data and have no meaningful functions. [...] They are virtual opposites."
"Procedural code (code using data structures) makes it easy to add new functions without changing the existing data structures. OO code, on the other hand, makes it easy to add new classes [e.g. via polymorphism] without changing existing functions."
"Procedural code makes it hard to add new data structures because all the functions must change. OO code makes it hard to add new functions because all the classes must change."
"So, the things that are hard for OO are easy for procedures, and the things that are hard for procedures are easy for OO!"
"Mature programmers know that the idea that everything is an object is a myth. Sometimes you really do want simple data structures with procedures operating on them."
The Law of Demeter
"a module should not know about the innards of the objects it manipulates."
"a method f of a class C should only call the methods of these
C
An object created by f
An object passed as an argument to f
An object held in an instance variable of C
The method should not invoke methods on objects that are returned by any of the allowed functions. In other words, talk to friends, not to strangers."
Example for the violation of Law of Demeter:
final String outputDir = ctxt.getOptions().getScratchDir().getAbsolutePath();
"it calls the getScratchDir() function on the return value of getOptions() and then calls getAbsolutePath() on the return value of getScratchDir()"
Train Wrecks
"This kind of code is often called a train wreck because it look like a bunch of coupled train cars. Chains of calls like this are generally considered to be sloppy style and should be avoided."
"Whether this is a violation of Demeter depends on whether or not ctxt, Options, and ScratchDir are objects or data structures. If they are objects, then their internal structure should be hidden rather then exposed, and so knowledge of their innards is a clear violation of the Law of Demeter. On the other hand, if ctxt, Options, and ScratchDir are just data structures with no behavior, then they naturally expose their internal structure, and so Demeter does not apply."
"If the code had been written as follows, then we probably wouldn't be asking about Demeter violations."
final String outputDir = ctxt.options.scratchDir.absolutePath;
Hybrids
"This confusion sometimes leads to unfortunate hybrid stuctures that are half object and half data structure. They have functions that do significant things, and they also have either public variables or public accessors and mutators that, for all intents and purposes, make the private variables public, tempting other external functions to use those variables the way a procedural program would use a data structure."
"Such hybrids make it hard to add new functions but also make it hard to add new data structures. They are the worst of both worlds. Avoid creating them."
Hiding Structure
"If ctxt is an object, we should be telling it to do something; we should not be asking it about its internals."
[To solve this in an elegant way you might need to investigate what you really want to do and provide a new function for it. In this chapter you can find an example for this.]
Data Transfer Objects
"The quintessential form of a data structure is a class with public varibles and no functions. This is sometimes called a data transfer object, or DTO."
[This is a design pattern which you can find in this project if you want to learn more about it.]
Active Record
"Active Records are special forms of DTOs. They are data structures with public (or bean-accessed) variables; but they are typically have navigational methods like save and find."
"treat the Active Record as a data structure and to create separate objects that contain the business rules and that hide their internal data (which are probably just instances of the Active Record)."
[This is a design pattern which you can find in this project if you want to learn more about it.]


Twin sisters, Amber and Cassie Coburn, opened up The Jawbone in 2018 when they were 20 years old. They opened up the restaurant while they were going to college at Carroll College. Cassie studied business management and Amber got her degree in Anthrozoology. They studied abroad in Perth, Australia where they came up with the idea to create a speakeasy style restaurant with craft cocktails. Since opening, they have been featured in Signature Montana Magazine (right), Treasure State Lifestyles magazine and the Great Falls Tribune. The Jawbone is an intimate atmosphere with an open kitchen concept. If you are ever in White Sulphur Springs this is a must stop!
We found a book about Meagher County history and looked through it.  We came across a railroad called The Montana Railroad. We looked into it more and it was nicknamed, "The Jawbone." It was said that the inventor, Richard Harlow, received all the supplies and money for the railroad by wagging his jawbone and convincing people to get involved. It was built through the motivation, diligence and steadfast persistence of Richard Harlow.
Now, when asked where the name comes from, we theorize about the whiskey which must've ridden in on the Jawbone back in the day, prohibition or none. Then, we offer them another Manhattan with their huckleberry brie. History connects us all to our roots, and without the hard work of the people who came before us, what we are building would never have been possible. Our name is a cheer to them and a celebration of the place we live!


Virgil:
I can't find him. I hope nothing bad has happened.
(This quest is available only for sub-class characters of level 60 or above.)


SQL Injection
SQL injection is a type of hacking where the hackers attempt to ‘inject’ a certain commands to get information that is supposed to be confidential. The way those hackers inject their commands is to use web application forms (like login form) where users supply their information and the web sever sends that information to the database. If a web application does not have proper validation or coding in their both coding and queries, A hacker can create, read, update, alter, or delete data stored in the back-end database.
How to Prevent SQL Injection
- Proper input validation
- Making sure that the users have minimum privilege to access the database when they supply their infotmation.
- Carefully written queries. For example, using stored statements might come in handy.
SQL vs NoSQL
SQL
-
Pros
- You get the result (data) you asked for.
- Suited for banks, stock markets, billing/accounting databases.
- When properly normalized, it's fast and efficient.
-
Cons
- Performance issues when it comes to big websites with big databases and high volume of traffic.
- Large-scale programming projects using complex data types and hierarchies, such as XML, are difficult to incorporate into SQL.
- Modification of database can be time consuming.
NoSQL
-
Pros
- Is a document database, which has a key and value pairing where value can be a variety of objects.
- Suitable for handling large amounts of data.
- Generally suited for OOP.
-
Cons
- Does not guarantee returning correct data.
- Cannot change the database so easily.
Query Optimization
- When inserting multiple rows, its better to have one query with multiple values than multile wueries with a single value.
- Use of indexes
- Limit the use of 'HAVING' only to after the rows are selected.
- Minimize the number of subqueries.
- Use 'EXISTS', 'IN' and 'JOIN' appropriately.


[§6D-7] Access. No person may enter or traverse a cave, or any segment thereof, without the property owner's prior written consent. [L 2002, c 241, pt of §2]


3. Completion Test
This test checks if the Simple Language code completion functionality, implemented in the Reference Contributor section of the Custom Language Support Tutorial, works as expected.
3.1. Define Test Data
Create the DefaultTestData.simple
properties file in the testData
directory.
# You are reading the ".properties" entry.
! The exclamation mark can also mark text as comments.
website = http://en.wikipedia.org/
language = English
# The backslash below tells the application to continue reading
# the value onto the next line.
message = Welcome to \
Wikipedia!
# Add spaces to the key
key\ with\ spaces = This is the value that could be looked up with the key "key with spaces".
# Unicode
tab : \u0009
Create a test input Java file CompleteTestData.java
in the testData
directory.
This file contains a Simple Language snippet within the Java.
public class Test {
public static void main(String[] args) {
System.out.println("simple:<caret>");
}
}
3.2. Define a Test
Subclass LightJavaCodeInsightFixtureTestCase
to create SimpleCodeInsightTest
.
Override getTestDataPath()
, and return the path from the root of this plugin module to the testData
directory.
At this point only one test is defined in SimpleCodeInsightTest
: testCompletion()
.
This method:
- Configures the test using the two input files.
- Calls the basic completion functionality. Behind the scenes, this method call creates a list of possible elements to complete the embedded Simple Language reference.
- Checks the list of possible element names to ensure it contains all Simple Language completion possibilities.
public class SimpleCodeInsightTest extends LightJavaCodeInsightFixtureTestCase {
@Override
protected String getTestDataPath() {
return "src/test/testData";
}
public void testCompletion() {
myFixture.configureByFiles("CompleteTestData.java", "DefaultTestData.simple");
myFixture.complete(CompletionType.BASIC, 1);
List<String> strings = myFixture.getLookupElementStrings();
assertTrue(strings.containsAll(Arrays.asList("key with spaces", "language", "message", "tab", "website")));
assertEquals(5, strings.size());
}
}
3.3. Run the Test
Run the test by:
- Opening the Gradle Tool Window.
- Select the
simple_language_plugin
. You may need to reimport it as a Gradle project. - Drill down under
simple_language_plugin
to Tasks, verification, test task. - Run the test task.
The results are displayed in the Run Tool Window, and also written to the simple_language_plugin/build/test-results/test/
directory.
If the Run Tool Window displays the error Test events were not received, do the following:
- In the Gradle Tool Window, drill down under
simple_language_plugin
to Tasks, build, clean task. - Run the clean task, which deletes the
simple_language_plugin/build/
directory. - Retry the test.


ECGiphoneBLEStatus Constants Reference
| Declared in | JSBluetoothManager.h |
|---|
ECGiphoneBLEStatus
@enum ECGiphoneBLEStatus
Represents the current state of a iPhone.
@constant ECGiphoneBLEStatusUnknown State unknown, update imminent. @constant ECGiphoneBLEStatusResetting The connection with the system service was momentarily lost, update imminent. @constant ECGiphoneBLEStatusUnsupported The platform doesn’t support the Bluetooth Low Energy Central/Client role. @constant ECGiphoneBLEStatusUnauthorized The application is not authorized to use the Bluetooth Low Energy role. @constant ECGiphoneBLEStatusPowerOff Bluetooth is currently powered off. @constant ECGiphoneBLEStatusPowerOn Bluetooth is currently powered on and available to use.
Definition
typedef NS_ENUM(NSUInteger, ECGiphoneBLEStatus ) {
ECGiphoneBLEStatusUnknown = 0,
ECGiphoneBLEStatusResetting,
ECGiphoneBLEStatusUnsupported,
ECGiphoneBLEStatusUnauthorized,
ECGiphoneBLEStatusPowerOff,
ECGiphoneBLEStatusPowerOn,
};
Constants
ECGiphoneBLEStatusUnknown
-
@enum ECGiphoneBLEStatus
Declared In
JSBluetoothManager.h
. ECGiphoneBLEStatusResetting
-
@enum ECGiphoneBLEStatus
Declared In
JSBluetoothManager.h
. ECGiphoneBLEStatusUnsupported
-
@enum ECGiphoneBLEStatus
Declared In
JSBluetoothManager.h
. ECGiphoneBLEStatusUnauthorized
-
@enum ECGiphoneBLEStatus
Declared In
JSBluetoothManager.h
. ECGiphoneBLEStatusPowerOff
-
@enum ECGiphoneBLEStatus
Declared In
JSBluetoothManager.h
. ECGiphoneBLEStatusPowerOn
-
@enum ECGiphoneBLEStatus
Declared In
JSBluetoothManager.h
.
Declared In
JSBluetoothManager.h


Stored data should remain after browser refresh. Uses localStorage + JSON.
Setting TTL to 0 clears timeout. Actual used values are milliseconds but this demo page uses full seconds. Value can be a string or valid JSON


François Robida
François Robida is the Deputy Head of Division, Information Systems and Technologies Division. Mining engineer and geostatistician, and has 25 years of experience in computer science applications to earth sciences with BRGM (French Geological Survey). Following his first work in mining geostatistics, he has been in charge of the design and development of software and programs related to all aspects of geology, and especially to 3D modelling. He was then been responsible for the BRGM software group, a team co-ordinating the development and marketing of software developed by BRGM. In his current position, he is in charge of the R&D and of the European projects in the domain of Information Systems for BRGM.
As "Terre Virtuelle" project leader (Terre Virtuelle / Virtual Earth is a BRGM R&D corporate project to support the development of new services through the use of new technologies), François has been promoting and has introduced interoperability, Grid and Virtual Reality technologies within our national geological survey. Involved as an actor of the development of interoperability at different levels, he is a member of the European Expert Group for Inspire (the initiative of the European Commission to develop European Spatial Data Infrastructure), where he represents the European geological surveys association (EuroGeosurveys). As representative of BRGM in OGC (OpenGIS consortium), he is also a member of the OGCEurope advisory board, and member of ADAE-CNIG (French counsel for geographic information) working group for geospatial interoperability. BRGM is committed to support the IUGS/CGI initiative, and he is acting today as interim co-ordinator of the Data Model Testbed Task Group (DMTEST).
Contact details for François Robida
François Robida
BRGM
3 avenue Claude-Guillemin
BP 36009
45060 Orleans Cedex 2
France
Telephone: +33 2 38 64 31 32
Email:


Author:wnagzihxa1n
<EMAIL_ADDRESS>跟着V8官方的技术博客学习了一下CodeStubAssembler的语法
有中文的翻译
我翻译了原文并且跟着原文进行了实践，发现当前的V8版本与文中提供的代码并不能兼容，最后没有完全解决
In V8, builtins can be seen as chunks of code that are executable by the VM at runtime. A common use case is to implement the functions of builtin objects (such as RegExp or Promise), but builtins can also be used to provide other internal functionality (e.g. as part of the IC system).
在V8里，builtins函数可以看作是运行时在VM里运行的代码块，常见的使用是实现内置对象，比如像RegExp
或者Promise
，builtins函数也可以用于提供内部其它功能来使用（比如作为IC系统的一部分）
V8’s builtins can be implemented using a number of different methods (each with different trade-offs):
V8的builtins函数有多种实现方式
我翻译的比较感性
The remaining document focuses on the latter and give a brief tutorial for developing a simple CodeStubAssembler (CSA) builtin exposed to JavaScript.
剩下的文档讲了一个简单的小例子，解释了如何用CodeStubAssembler写一个builtin函数并且导出给JS使用
V8’s CodeStubAssembler is a custom, platform-agnostic assembler that provides low-level primitives as a thin abstraction over assembly, but also offers an extensive library of higher-level functionality.
V8的CodeStubAssembler不仅提供和平台无关且低级的原语，而且还提供作为高级函数的库扩展
// Low-level:
// Loads the pointer-sized data at addr into value.
Node* addr = /* ... */;
Node* value = Load(MachineType::IntPtr(), addr);
// And high-level:
// Performs the JS operation ToString(object).
// ToString semantics are specified at https://tc39.github.io/ecma262/#sec-tostring.
Node* object = /* ... */;
Node* string = ToString(context, object);
CSA builtins run through part of the TurboFan compilation pipeline (including block scheduling and register allocation, but notably not through optimization passes) which then emits the final executable code.
In this section, we will write a simple CSA builtin that takes a single argument, and returns whether it represents the number 42. The builtin is exposed to JS by installing it on the Math object (because we can).
在这一节，我们将会写一个CSA builtin函数，传入一个参数，然后返回是否是42
This example demonstrates:
这个函数演示了以下几点：
In case you’d like to follow along locally, the following code is based off revision 7a8d20a7.
Builtins are declared in the BUILTIN_LIST_BASE
macro in src/builtins/builtins-definitions.h. To create a new CSA builtin with JS linkage and one parameter named X:
builtin函数在BUILTIN_LIST_BASE
宏中进行声明，对应的文件是src/builtins/builtins-definitions.h
我们来创建一个新的可以由JavaScript来调用的builtin函数，该函数有一个参数
#define BUILTIN_LIST_BASE(CPP, API, TFJ, TFC, TFS, TFH, ASM, DBG) \
// […snip…]
TFJ(MathIs42, 1, kX) \
// […snip…]
Note that BUILTIN_LIST_BASE
takes several different macros that denote different builtin kinds (see inline documentation for more details). CSA builtins specifically are split into:
注意，BUILTIN_LIST_BASE
使用了几个不同的宏来表示不同的builtin函数类型（更多细节可以看inline文档）
CSA builtin函数有下面几种类型：
Builtin definitions are located in src/builtins/builtins-*-gen.cc
files, roughly organized by topic. Since we will be writing a Math builtin, we’ll put our definition into src/builtins/builtins-math-gen.cc
.
builtin函数的定义在src/builtins/builtins-*-gen.cc
文件，因为我们要写一个数学builtin函数，所以我们会把定义写到src/builtins/builtins-math-gen.cc
里
// TF_BUILTIN is a convenience macro that creates a new subclass of the given
// assembler behind the scenes.
TF_BUILTIN(MathIs42, MathBuiltinsAssembler) {
// Load the current function context (an implicit argument for every stub)
// and the X argument. Note that we can refer to parameters by the names
// defined in the builtin declaration.
Node* const context = Parameter(Descriptor::kContext);
Node* const x = Parameter(Descriptor::kX);
// At this point, x can be basically anything - a Smi, a HeapNumber,
// undefined, or any other arbitrary JS object. Let’s call the ToNumber
// builtin to convert x to a number we can use.
// CallBuiltin can be used to conveniently call any CSA builtin.
Node* const number = CallBuiltin(Builtins::kToNumber, context, x);
// Create a CSA variable to store the resulting value. The type of the
// variable is kTagged since we will only be storing tagged pointers in it.
VARIABLE(var_result, MachineRepresentation::kTagged);
// We need to define a couple of labels which will be used as jump targets.
// 如果我们需要跳转到指定的代码段，我们需要先创建label
Label if_issmi(this), if_isheapnumber(this), out(this);
// ToNumber always returns a number. We need to distinguish between Smis
// and heap numbers - here, we check whether number is a Smi and conditionally
// jump to the corresponding labels.
// if-else分值，配合label使用
Branch(TaggedIsSmi(number), &if_issmi, &if_isheapnumber);
// Binding a label begins generating code for it.
// 在代码前绑定一个label
BIND(&if_issmi);
{
// SelectBooleanConstant returns the JS true/false values depending on
// whether the passed condition is true/false. The result is bound to our
// var_result variable, and we then unconditionally jump to the out label.
var_result.Bind(SelectBooleanConstant(SmiEqual(number, SmiConstant(42))));
Goto(&out);
}
BIND(&if_isheapnumber);
{
// ToNumber can only return either a Smi or a heap number. Just to make sure
// we add an assertion here that verifies number is actually a heap number.
CSA_ASSERT(this, IsHeapNumber(number));
// Heap numbers wrap a floating point value. We need to explicitly extract
// this value, perform a floating point comparison, and again bind
// var_result based on the outcome.
Node* const value = LoadHeapNumberValue(number);
Node* const is_42 = Float64Equal(value, Float64Constant(42));
var_result.Bind(SelectBooleanConstant(is_42));
Goto(&out);
}
BIND(&out);
{
Node* const result = var_result.value();
CSA_ASSERT(this, IsBoolean(result));
Return(result);
}
}
Builtin objects such as Math are set up mostly in src/bootstrapper.cc (with some setup occurring in .js files). Attaching our new builtin is simple:
builtin函数需要在src/bootstrapper.cc
中进行装载
// Existing code to set up Math, included here for clarity.
Handle<JSObject> math = factory->NewJSObject(cons, TENURED);
JSObject::AddProperty(global, name, math, DONT_ENUM);
// […snip…]
SimpleInstallFunction(math, "is42", Builtins::kMathIs42, 1, true);
Now that Is42 is attached, it can be called from JS:
现在Is42
已经可以调用了：
$ out/debug/d8
d8> Math.is42(42);
true
d8> Math.is42('42.0');
true
d8> Math.is42(true);
false
d8> Math.is42({ valueOf: () => 42 });
true
CSA builtins can also be created with stub linkage (instead of JS linkage as we used above in MathIs42
). Such builtins can be useful to extract commonly-used code into a separate code object that can be used by multiple callers, while the code is only produced once. Let’s extract the code that handles heap numbers into a separate builtin called MathIsHeapNumber42, and call it from MathIs42
.
CSA builtin函数同样可以使用stub linkage
类型创建（不是像上面MathIs42那样使用JS来调用）
这种builtin函数会把代码单独提取到调用者内部，而且只生成一次，我们把处理heap number的代码抽到一个单独的builtin函数中，然后在MathIs42中调用它
Defining and using TFS stubs is easy; declaration are again placed in src/builtins/builtins-definitions.h
:
#define BUILTIN_LIST_BASE(CPP, API, TFJ, TFC, TFS, TFH, ASM, DBG) \
// […snip…]
TFS(MathIsHeapNumber42, kX) \
TFJ(MathIs42, 1, kX) \
// […snip…]
Note that currently, order within BUILTIN_LIST_BASE
does matter. Since MathIs42
calls MathIsHeapNumber42
, the former needs to be listed after the latter (this requirement should be lifted at some point).
这里的定义需要注意一下：因为函数调用的原因，MathIsHeapNumber42
需要放在MathIs42
前面进行定义
The definition is also straightforward. In src/builtins/builtins-math-gen.cc
:
定义非常直截了当，在src/builtins/builtins-math-gen.cc
：
// Defining a TFS builtin works exactly the same way as TFJ builtins.
TF_BUILTIN(MathIsHeapNumber42, MathBuiltinsAssembler) {
Node* const x = Parameter(Descriptor::kX);
CSA_ASSERT(this, IsHeapNumber(x));
Node* const value = LoadHeapNumberValue(x);
Node* const is_42 = Float64Equal(value, Float64Constant(42));
Return(SelectBooleanConstant(is_42));
}
Finally, let’s call our new builtin from MathIs42:
最后我们来调用这个函数
TF_BUILTIN(MathIs42, MathBuiltinsAssembler) {
// […snip…]
BIND(&if_isheapnumber);
{
// Instead of handling heap numbers inline, we now call into our new TFS stub.
var_result.Bind(CallBuiltin(Builtins::kMathIsHeapNumber42, context, number));
Goto(&out);
}
// […snip…]
}
Why should you care about TFS builtins at all? Why not leave the code inline (or extracted into a helper method for better readability)?
为什么要关心TFS builtin？
为什么不使用内联的方式（或者提取到辅助方法中以获得更好的可读性）？
An important reason is code space: builtins are generated at compile-time and included in the V8 snapshot, thus unconditionally taking up (significant) space in every created isolate. Extracting large chunks of commonly used code to TFS builtins can quickly lead to space savings in the 10s to 100s of KBs.
一个重要原因是代码空间：builtin函数在编译时生成并包含在V8的快照中，因此会占用每个创建Isolate中的空间，将大量常用代码提取到TFS builtin中可以节省10到100个KB的空间
Even though our new builtin uses a non-standard (at least non-C++) calling convention, it’s possible to write test cases for it. The following code can be added to test/cctest/compiler/test-run-stubs.cc
to test the builtin on all platforms:
即使我们的内置函数使用非标准调用约定，也可以为它编写测试用例，将以下代码添加到test/cctest/compiler/test-run-stubs.cc
以测试所有平台上的内置函数：
TEST(MathIsHeapNumber42) {
HandleAndZoneScope scope;
Isolate* isolate = scope.main_isolate();
Heap* heap = isolate->heap();
Zone* zone = scope.main_zone();
StubTester tester(isolate, zone, Builtins::kMathIs42);
Handle<Object> result1 = tester.Call(Handle<Smi>(Smi::FromInt(0), isolate));
CHECK(result1->BooleanValue());
}
我跟着实践的时候发现了一些问题，官方所给的代码并不能直接运行，需要进行修改
第一处：
SimpleInstallFunction(math, "is42", Builtins::kMathIs42, 1, true);
=>
SimpleInstallFunction(isolate_, math, "is42", Builtins::kMathIs42, 1, true);
第二处：
TFJ(MathIs42, 1, kX)
=>
TFJ(MathIs42, 1, kReceiver, kX)
第三处一直报错，我改成恒成立了：
var_result.Bind(SelectBooleanConstant(SmiEqual(number, SmiConstant(42))));
=>
var_result.Bind(SelectBooleanConstant(SmiEqual(SmiConstant(42), SmiConstant(42))));
第三处怎么改都不对，一直报错
/../../src/builtins/builtins-math-gen.cc:277: no viable conversion from 'v8::internal::CodeStubAssembler::Node *const' (aka 'v8::internal::compiler::Node *const') to 'TNode<v8::internal::Smi>'


{% extends "base.html" %} {% block title %}{{ title }}{% endblock %} {% block xtrahead %} {% endblock %} {% block body %}
Media and data files may be uploaded by dropping them over the target below. A maximum of {{ config.UPLOAD_MAX_FILES }} files, with a total of {{ config.MAX_CONTENT_LENGTH_MB }}MB may be sent at once. The Esc key can be used to skip subsequent transfers.
{% endblock %} {% block postscript %} {# set constants and load upload.js #} {% endblock %}


7 Minutes of Science is an event where a number of speakers give a presentation on their field of reasearch at the University of Glasgow. What makes this event unique is that they only have 7 minutes to do it, meaning it must be informative, to the point and interesting.


{{announcementMessage}}
Your assignment is:
Role: {{personAssignment}}
Room #: {{personLocation}}
Questions? Call Lori at:
+1 (617) 356 - 3378


The fraction packages provides a fraction number type as well as fraction number formatting.
Fraction and BigFraction provide fraction number type that forms the basis for the fraction functionality found in Commons-Math. The former one can be used for fractions whose numerators and denominators are small enough to fit in an int (taking care of intermediate values) while the second class should be used when there is a risk the numerator and denominator grow very large.
A fraction number, can be built from two integer arguments representing numerator and denominator or from a double which will be approximated:
Fraction f = new Fraction(1, 3); // 1 / 3 Fraction g = new Fraction(0.25); // 1 / 4
Of special note with fraction construction, when a fraction is created it is always reduced to lowest terms.
The Fraction class provides many unary and binary fraction operations. These operations provide the means to add, subtract, multiple and, divide fractions along with other functions similar to the real number functions found in java.math.BigDecimal:
Fraction lhs = new Fraction(1, 3); Fraction rhs = new Fraction(2, 5); Fraction answer = lhs.add(rhs); // add two fractions answer = lhs.subtract(rhs); // subtract two fractions answer = lhs.abs(); // absolute value answer = lhs.reciprocal(); // reciprocal of lhs
Like fraction construction, for each of the fraction functions, the resulting fraction is reduced to lowest terms.
Fraction instances can be converted to and from strings using the FractionFormat class. FractionFormat is a java.text.Format extension and, as such, is used like other formatting objects (e.g. java.text.SimpleDateFormat):
FractionFormat format = new FractionFormat(); // default format Fraction f = new Fraction(2, 4); String s = format.format(f); // s contains "1 / 2", note the reduced fraction
To customize the formatting output, one or two java.text.NumberFormat instances can be used to construct a FractionFormat. These number formats control the formatting of the numerator and denominator of the fraction:
NumberFormat nf = NumberFormat.getInstance(Locale.FRANCE); // create fraction format with custom number format // when one number format is used, both numerator and // denominator are formatted the same FractionFormat format = new FractionFormat(nf); Fraction f = new Fraction(2000, 3333); String s = format.format(c); // s contains "2.000 / 3.333" NumberFormat nf2 = NumberFormat.getInstance(Locale.US); // create fraction format with custom number formats format = new FractionFormat(nf, nf2); s = format.format(f); // s contains "2.000 / 3,333"
Formatting's inverse operation, parsing, can also be performed by FractionFormat. To parse a fraction from a string, simply call the parse method:
FractionFormat ff = new FractionFormat(); Fraction f = ff.parse("-10 / 21");


A Koa Response
object is an abstraction on top of node's vanilla response object,
providing additional functionality that is useful for every day HTTP server
development.
Response header object.
Response header object. Alias as response.header
.
Request socket.
Get response status. By default, response.status
is set to 404
unlike node's res.statusCode
which defaults to 200
.
Set response status via numeric code:
NOTE: don't worry too much about memorizing these strings, if you have a typo an error will be thrown, displaying this list so you can make a correction.
Get response status message. By default, response.message
is
associated with response.status
.
Set response status message to the given value.
Set response Content-Length to the given value.
Return response Content-Length as a number when present, or deduce
from ctx.body
when possible, or undefined
.
Get response body.
Set response body to one of the following:
string
writtenBuffer
writtenStream
pipedObject
|| Array
json-stringifiednull
no content responseIf response.status
has not been set, Koa will automatically set the status to 200
or 204
.
The Content-Type is defaulted to text/html or text/plain, both with a default charset of utf-8. The Content-Length field is also set.
The Content-Type is defaulted to application/octet-stream, and Content-Length is also set.
The Content-Type is defaulted to application/octet-stream.
Whenever a stream is set as the response body, .onerror
is automatically added as a listener to the error
event to catch any errors.
In addition, whenever the request is closed (even prematurely), the stream is destroyed.
If you do not want these two features, do not set the stream as the body directly.
For example, you may not want this when setting the body as an HTTP stream in a proxy as it would destroy the underlying connection.
See: https://github.com/koajs/koa/pull/612 for more information.
Here's an example of stream error handling without automatically destroying the stream:
const PassThrough = require('stream').PassThrough; app.use(async ctx => { ctx.body = someHTTPStream.on('error', ctx.onerror).pipe(PassThrough()); });
The Content-Type is defaulted to application/json. This includes plain objects { foo: 'bar' }
and arrays ['foo', 'bar']
.
Get a response header field value with case-insensitive field
.
const etag = ctx.response.get('ETag');
Set response header field
to value
:
ctx.set('Cache-Control', 'no-cache');
Append additional header field
with value val
.
ctx.append('Link', '<http://<IP_ADDRESS>/>');
Set several response header fields
with an object:
ctx.set({ 'Etag': '1234', 'Last-Modified': date });
Remove header field
.
Get response Content-Type
void of parameters such as "charset".
const ct = ctx.type; // => "image/png"
Set response Content-Type
via mime string or file extension.
ctx.type = 'text/plain; charset=utf-8'; ctx.type = 'image/png'; ctx.type = '.png'; ctx.type = 'png';
Note: when appropriate a charset
is selected for you, for
example response.type = 'html'
will default to "utf-8". If you need to overwrite charset
,
use ctx.set('Content-Type', 'text/html')
to set response header field to value directly.
Very similar to ctx.request.is()
.
Check whether the response type is one of the supplied types.
This is particularly useful for creating middleware that
manipulate responses.
For example, this is a middleware that minifies all HTML responses except for streams.
const minify = require('html-minifier'); app.use(async (ctx, next) => { await next(); if (!ctx.response.is('html')) return; let body = ctx.body; if (!body || body.pipe) return; if (Buffer.isBuffer(body)) body = body.toString(); ctx.body = minify(body); });
Perform a [302] redirect to url
.
The string "back" is special-cased
to provide Referrer support, when Referrer
is not present alt
or "/" is used.
ctx.redirect('back'); ctx.redirect('back', '/index.html'); ctx.redirect('/login'); ctx.redirect('http://google.com');
To alter the default status of 302
, simply assign the status
before or after this call. To alter the body, assign it after this call:
ctx.status = 301; ctx.redirect('/cart'); ctx.body = 'Redirecting to shopping cart';
Set Content-Disposition
to "attachment" to signal the client
to prompt for download. Optionally specify the filename
of the
download.
Check if a response header has already been sent. Useful for seeing if the client may be notified on error.
Return the Last-Modified
header as a Date
, if it exists.
Set the Last-Modified
header as an appropriate UTC string.
You can either set it as a Date
or date string.
ctx.response.lastModified = new Date();
Set the ETag of a response including the wrapped "
s.
Note that there is no corresponding response.etag
getter.
ctx.response.etag = crypto.createHash('md5').update(ctx.body).digest('hex');
Vary on field
.
Flush any set headers, and begin the body.


---
layout: default
reading: Death Note
playing: Persona 5 Royal / Vampire Survivors
---
> About me
> Projects
{{ page.reading }} {{ page.playing }}
{{ site.greetings }}
I'm using Exist to track my life and understand my behaviour. Join me! Use my link to get an extra month free or read more here.


info_dialog/[1,2,3]
info_dialog/[1,2,3] | - present an information dialog
FORMS
info_dialog(Msg)
info_dialog(Msg, Title)
info_dialog(Interp, Msg, Title)
DESCRIPTION
These information dialogs present popup dialogs with information and a single button to the
user. The shorter versions are defined by:
info_dialog(Msg) :-
info_dialog(Msg, ‘Info’).
info_dialog(Msg, Title) :-
info_dialog(tcli, Msg, Title).
Here Msg, Title, and Interp are all prolog atoms.
EXAMPLES
The call
?-info_dialog(‘Message for the User’,
‘Dialog Box Title’).
produces the information dialog:


Learn your surroundings by the sounds you hear. E.g. rocks falling on the right indicate a cliff on the right
Get more spoilers, clues, and a map at the bottom of this page
Spoilers and clues ahead, please read as few as possible
This is a 2D platformer, your goal is to go to the top-right.
Sometimes you have to go left a bit before jumping up-right to get over a ledge.
The down button does nothing.
You can hear crumbling rocks on the right audio channel when you’re almost falling off a ledge to your right.
When you hear your head bump above you, try to move slowly to the left until you don’t hear the bump, then jump
and move right at the same time to land on the ledge above you.
The strong wind sounds always mean you should be careful, jump over, or stay away. You might need to get close
to them to be able to jump over them. The rock crumbling sound is your safety net.
The snakes just snarl, I was thinking of maybe making them chase you and kill you, but ran out of time.
You can hear a "whoa" sound when you slip off a ledge.
When you land, you'll hear a piano note. Its octave corresponds to how high the floor is.
If you beat the game, you’ll learn how to turn on the visual mode to see the level design.
There are 4 sections: ledge, the gap (just one hole in the middle), snakes, platforms. The last section of
platforms you need to climb to the top and jump. The platforms are just like the first section, but you need to do
it 4 times, and then just walk to the right in the end. Just stay away from the windy ledges.
Each section has a safety wall to its left, you can always walk left at the start of a section and hear the left
wall sound, so you can re-orient yourself.


Date: Saturday 27 October 2018
Time: 9:00 – 19:30
Venue: ENS Lyon
... located at
address
Lyon
Right near ...
Standard 100 Euro
Student 70 Euro
The fee includes attandance to the workshop, poster session, coffee break.
Please transfer the money to : Genexplain GmbH
Bank: Bankhaus C.L. Seeliger
IBAN: DE79270325000000001575
BIC: BCLSDE21
Reason for payment: Workshop SBTR2
Please note that this is a non-profit event, the role of geneXplain is to just kindly handling the fees.
You are invited to submit a one-page abstract that will be reviewed and selected for a 20-minute talk, short talk (10 min) or poster. The abstract should include all authors' names with affiliations (please mark the presenting author with an asterisk). Please note that the abstract should be in plain text format without special characters.
Please note in the comments whether you would like to present a poster or a talk. If you are not going to present anything please write in the comments "no presentation".
Fields marked with an asterisk (*) are required.
The complex nature of transcription regulation can be investigated with various methods and under different angles. Systems Biology approaches allow us to get a holistic and systemic view on regulation of gene expression by bringing together and combining various perspectives, from signal transduction to transcription factors (TFs)- and chromatin-mediated gene regulation, to network inference.
This meeting aims at bringing together researchers representing the views on the process of transcription regulation from different perspectives, from the regulation of expression through transcription factors (TFs) to the field of chromatin structure, remodeling and its involvement in the regulation. We will welcome stories of success, discussions of actual problems and of methodology development, which is an actual issue in this field.
The first edition of this satellite workshop was held during the 17th edition of the International Conference on Systems Biology in Barcelona (Spain) on 2016, achieving a very good public success with an excellent panel of speakers, interactive discussions at both the talks and poster sessions, and a highly appreciated round table.
For this second edition, we would like to structure the workshop in two sessions: the first one would be dedicated to all variety of Systems Biology approaches to transcription regulation, for instance, but not limited to, data deconvolution, dynamical modeling, network inference, etc. The second session would focus on the impact of chromatin structure and histone modifications on gene expression and how this layer of regulation is incorporated in Systems Biology approaches. Additionally, we plan to end the workshop with a round table for discussion on how to address most actual problems, from methodology use to data analyses.
In the Workshop Systems Biology of Transcription Regulation we therefore welcome efforts related to:
We will appreciate abstracts representing the views on the process of transcription regulation from different perspectives and different angles, preferably combining the abovementioned issues.
Systems biology approaches provide new perspectives that raise new questions. Some of them address methodological problems, others arise from the newly obtained understanding of the data. These open questions and problems will be a subject of discussion in the Round Table (see Agenda). For abstract details, click here
| 9.15-9.30 | One of us Hans-Knoell-Institute, Jena, Germany Welcome and opening |
| 09.30-10.10 | ... y n |
| 15.45-16.15 | Coffee break |
| 16.15-18.00 | Round table on the main problems, challenges, and perspectives of systems biology of transcription regulation. |
| 18.00-19.30 | Poster session, networking, discussions. |


New Timelimited:
Change Timelimited
Identity:
Login
To Register
outdiv
ID number:
Nickname:
Register
To Login


Comments
-
Greg Hurrell
Ok, I have a plan of action now.
First step already initiated: updating the
CNAME
aliases in the wincent.com zone that currently point to "wincent.com" itself to beA
records that reference the actual IP address instead. I'll be changing "wincent.com" to point to another IP at a later time, but I want all the existing subdomains to continue with the current IP. -
Greg Hurrell
DNS changes completed.
-
Greg Hurrell
Some nice things:
- Anything currently hosted via HTTPS at wincent.com won't need to be brought over (different IP address, everything will keep working just fine
- Any access via "rails.wincent.com" won't need special handling; only access via "wincent.com"
- Any access via HTTPS to "wincent.com" won't need special handling; all old URLs there were served over HTTP anyway
So basically we need to implement special forwarding if and only if access is over HTTP/port 80, and the host name is "wincent.com".
And really, everything we care about there is rooted under
/a/
, making for an easy check. Here's the full list of stuff in thepublic_html
directory of wincent.com right now:drwxr-xr-x 13 wincent.com wincent.com 4096 Mar 29 2008 a drwxr-xr-x 2 wincent.com wincent.com 4096 Jul 12 2006 contact -rwxr-xr-x 1 wincent.com wincent.com 12533 Jun 9 2008 download.php -rw-r--r-- 1 wincent.com wincent.com 318 Nov 20 2004 favicon.ico drwxr-xr-x 2 wincent.com wincent.com 4096 Aug 7 2005 files drwxr-xr-x 2 wincent.com wincent.com 4096 Jan 19 2006 gfx -rw-r--r-- 1 wincent.com wincent.com 178 Nov 20 2004 global.inc.php drwxr-xr-x 2 wincent.com wincent.com 4096 Mar 29 2008 gpl drwxr-xr-x 3 wincent.com wincent.com 4096 Sep 19 2007 images -rw-r--r-- 1 wincent.com wincent.com 325 Nov 23 2004 index.php drwxr-xr-x 2 wincent.com wincent.com 4096 Apr 7 2007 lgpl drwxr-xr-x 3 wincent.com wincent.com 4096 Jan 10 2008 mirror -rw-r--r-- 1 wincent.com wincent.com 23 Nov 20 2004 robots.txt drwxr-xr-x 9 wincent.com wincent.com 4096 Mar 15 2007 s drwxr-xr-x 4 wincent.com wincent.com 4096 Mar 23 2007 synergy drwxr-xr-x 2 wincent.com wincent.com 4096 Mar 30 2008 webmail -rw-r--r-- 1 wincent.com wincent.com 2390 Jul 10 2007 wincent_colaiuta.pgp.txt drwxr-xr-x 2 wincent.com wincent.com 4096 Dec 8 2006 xml-schema
-
Greg Hurrell
Ok, I've made some changes to the staging environment to see if this is going to work.
Basically:
+ root /path/to/wincent.com/public_html; + + location / { + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host wincent.com; + proxy_max_temp_file_size 0; + + if (-f $request_filename) { + proxy_pass http://apache; + break; + } + if (-d $request_filename) { + proxy_pass http://apache; + break; + } + rewrite ^/(.*) https://staging.wincent.com/$1 permanent; + }
So:
- we only test on port 80.
- if a matching file or directory exists under the Apache root for wincent.com, proxy the request to Apache.
- everything else is redirected to port 443.
- port 443 handling remains unchanged (nginx proxies to mongrel).
-
Greg Hurrell
Ok, I've made the same changes for the production environment and I've requested that an update be made to the DNS records.
Note that
root_url
in Rails app will continue to be served by mongrel/Rails, because from inside the Rails app we're always talking over HTTPS and the proxying of/
to Apache will only happen when we're accessing over HTTP.Once the DNS changes go live will need to update my
app_config.yml
so that outgoing emails use the shorter wincent.com hostname instead of rails.wincent.com. -
Greg Hurrell
Will also need to update my SSL certs once the changes go live (the rails.wincent.com IP is currently using the rails.wincent.com cert, but once wincent.com starts as the front end of the app I'll need to swap in the wincent.com cert).
Will probably also want to set up rails.wincent.com to listen on another IP so that I can have a valid cert for that as well (can only have one valid cert per IP).
-
Greg Hurrell
Ok, the DNS changes have gone live. Notice published to front page in this article.
-
Greg Hurrell
app_config.yml
now updated too. -
Greg Hurrell
Status changed:
- From: Open
- To: Closed
Add a comment
Comments are now closed for this issue.


jQMDateBox:QUnit
Test Notes
- CalBox: These test the actual UI. They can fail false-positive (faulty pass)
- DateBox / TimeBox / etc: These test the limiting logic.
- Parser / Formatter: These test only the parser and formatter - no other part of datebox is used.
- Date Enhancments: Test the enhancments to Date() - without which, DateBox will be unpredictable.
- DefaultValue: Test the auto-input and default formatter.


Famous Violists
Although it may seem as though "famous violists" don't exist, they indeed do. Here is a brief list of some of the most notable ones. Click on any of the images to learn more about the violist.
| Yuri Bashmet | Paul Hindemith | Nobuko Imai | Kim Kashkashia | William Primrose |
| Antoine Tamestit | Lionel Tertis | Tabea Zimmermann | Pinchas Zukerman | |


Our Wednesday-night lab is online for now due to Covid! Join us February 16th from 6:30-7:30pm via Zoom using the link below!
Jean-Paul is a Senior Software Engineer at Chipper Cash, a tech company focusing on building financial products for the African continent. He specializes in data platform and distributed systems engineering. Previously, he was an engineer at Mailchimp, Capital One, Login.gov / 18F, Boeing and others. He was born and raised in Kigali City, Rwanda but currently resides in Brooklyn, NY. Favorite hobbies include music, reading, cycling, and traveling.
Senior Software Engineer @ Chipper Cash
Specializes in Data Platform &
Distributed Systems Engineering.
Meeting will start on Wednesday Feb. 16 at 6:30 pm!


--- layout: post title: Breakfast date: '2011-01-28T12:21:00.002-06:00' author: Jabell tags: - Photography - Food modified_time: '2011-01-28T12:21:29.568-06:00' thumbnail: http://farm5.static.flickr.com/4091/5202270345_1286ac3866_t.jpg blogger_id: tag:blogger.com,1999:blog-19739956.post-6302100603616555137 blogger_orig_url: http://theabellsix.blogspot.com/2011/01/breakfast.html ---


On average, humanity's demand on biocapacity exceeds the world's natural capacity by 50% (World Wildlife Fund, 2014). Put differently, 1.5 planet Earths would be required to meet human pressure on local and global ecosystems.
But the ecological footprint left by humans varies substantially across countries. In the chart, each bar gives the number of planet Earths required if everyone in the world lived the average lifestyle of a resident in that country. For example, almost 4 planet Earths would be required to support the lifestyle of a typical U.S. citizen.


Node.js compression middleware.
The following compression codings are supported:
This is a Node.js module available
through the npm registry.
Installation is done using the
npm install
command:
Returns the compression middleware using the given options
.
The middleware will attempt to compress response bodies for all request
that traverse through the middleware, based on the given
options
.
This middleware will never compress responses that include a
Cache-Control
header with the
no-transform
directive, as compressing will transform the body.
compression()
accepts these properties in the options object.
In addition to those listed below,
zlib options may be passed
in to the options object.
The default value is zlib.Z_DEFAULT_CHUNK
, or
16384
.
See Node.js documentation regarding the usage.
A function to decide if the response should be considered for compression.
This function is called as filter(req, res)
and is expected
to return true
to consider the response for compression, or
false
to not compress the response.
The default filter function uses the
compressible
module to determine if res.getHeader('Content-Type')
is
compressible.
The level of zlib compression to apply to responses. A higher level will result in better compression, but will take longer to complete. A lower level will result in less compression, but will be much faster.
This is an integer in the range of 0
(no compression) to
9
(maximum compression). The special value
-1
can be used to mean the “default compression level”, which
is a default compromise between speed and compression (currently
equivalent to level 6).
-1
Default compression level (also
zlib.Z_DEFAULT_COMPRESSION
).
0
No compression (also zlib.Z_NO_COMPRESSION
).
1
Fastest compression (also
zlib.Z_BEST_SPEED
).
2
3
4
5
6
(currently what
zlib.Z_DEFAULT_COMPRESSION
points to).
7
8
9
Best compression (also
zlib.Z_BEST_COMPRESSION
).
The default value is zlib.Z_DEFAULT_COMPRESSION
, or
-1
.
Note in the list above, zlib
is from
zlib = require('zlib')
.
This specifies how much memory should be allocated for the internal
compression state and is an integer in the range of
1
(minimum level) and 9
(maximum level).
The default value is zlib.Z_DEFAULT_MEMLEVEL
, or
8
.
See Node.js documentation regarding the usage.
This is used to tune the compression algorithm. This value only affects the compression ratio, not the correctness of the compressed output, even if it is not set appropriately.
zlib.Z_DEFAULT_STRATEGY
Use for normal data.zlib.Z_FILTERED
Use for data produced by a filter (or
predictor). Filtered data consists mostly of small values with a
somewhat random distribution. In this case, the compression algorithm is
tuned to compress them better. The effect is to force more Huffman
coding and less string matching; it is somewhat intermediate between
zlib.Z_DEFAULT_STRATEGY
and
zlib.Z_HUFFMAN_ONLY
.
zlib.Z_FIXED
Use to prevent the use of dynamic Huffman
codes, allowing for a simpler decoder for special applications.
zlib.Z_HUFFMAN_ONLY
Use to force Huffman encoding only (no
string match).
zlib.Z_RLE
Use to limit match distances to one (run-length
encoding). This is designed to be almost as fast as
zlib.Z_HUFFMAN_ONLY
, but give better compression for PNG
image data.
Note in the list above, zlib
is from
zlib = require('zlib')
.
The byte threshold for the response body size before compression is
considered for the response, defaults to 1kb
. This is a
number of bytes or any string accepted by the
bytes module.
Note this is only an advisory setting; if the response
size cannot be determined at the time the response headers are written,
then it is assumed the response is over the threshold. To
guarantee the response size can be determined, be sure set a
Content-Length
response header.
The default value is zlib.Z_DEFAULT_WINDOWBITS
, or
15
.
See Node.js documentation regarding the usage.
The default filter
function. This is used to construct a
custom filter function that is an extension of the default function.
var compression = require('compression')
var express = require('express')
var app = express()
app.use(compression({ filter: shouldCompress }))
function shouldCompress (req, res) {
if (req.headers['x-no-compression']) {
// don't compress responses with this request header
return false
}
// fallback to standard filter function
return compression.filter(req, res)
}
This module adds a res.flush()
method to force the
partially-compressed response to be flushed to the client.
When using this module with express or connect, simply
app.use
the module as high as you like. Requests that pass
through the middleware will be compressed.
var compression = require('compression')
var express = require('express')
var app = express()
// compress all responses
app.use(compression())
// add all routes
Because of the nature of compression this module does not work out of the box with server-sent events. To compress content, a window of the output needs to be buffered up in order to get good compression. Typically when using server-sent events, there are certain block of data that need to reach the client.
You can achieve this by calling res.flush()
when you need the
data written to actually make it to the client.
var compression = require('compression')
var express = require('express')
var app = express()
// compress responses
app.use(compression())
// server-sent event stream
app.get('/events', function (req, res) {
res.setHeader('Content-Type', 'text/event-stream')
res.setHeader('Cache-Control', 'no-cache')
// send a ping approx every 2 seconds
var timer = setInterval(function () {
res.write('data: ping\n\n')
// !!! this is the important part
res.flush()
}, 2000)
res.on('close', function () {
clearInterval(timer)
})
})


My Learning Plan
Foundations Learning Plan
My long term goal and/or career pathway
I aim to become a front-end developer and specialize in Web Design. I think DevAcademy is a good start-point. After graduation, I hope to find a job in my field of interest and continue to develop my skills and increase my knowledge.
Non-technical - human skills I would you like to see developed in myself while at EDA
I am an introvert by nature, so I like spending time on my own - for example, during my lunch break at work, I have always looked for an empty table. EDA could be a good opportunity to improve my social skills. Another aspect of my personality I would like to work on, is my fear of public speaking that I probably have since I was born. By doing projects’ presentation I hope to overcome this state of anxiety that overwhelms me every time.
Description of your own strengths and limitations
My key-strengths are:
Supportiveness : despite my introvert nature, I more than happy to help coworkers getting
projects finished on time or listen to friends’ concerns and find ways to resolve them. I take
pleasure in finding satisfying resolutions to day-to-day challenges.
Determination & Consistency : I always do my best to complete a task or reach my goals,
especially when I think they are right and all the efforts are worthwhile.
Transparency & Accountability : I am not able to hide my emotions or my doubts even if I
wanted
to, they would be written all over my face. This helps me to begin a genuine relationships and
let others see me for who I really am, they can trust me and this increases accountability.
My weaknesses are:
Introversion : even if I enjoy my own company, I can see the limitations that this aspect
of my
character can bring. Sometimes I find it difficult to be around others and it takes time for me
to build a relationship with my colleagues or the thought of speaking at a meeting send me into
a cold sweat.
Asking for help as a last resort : usually I try to solve a problem by myself, from one
hand
because I am a bit proud and I don’t want to be judged , and from the other hand because I see a
challenge as a way to put myself to the test.

The only judgement I don’t accept is the non-constructive one, which often leads to hurt
feelings and demotivation.
How I will manage my workload in this programme & how I will manage myself to work productively and safely with other people
I will use a time management tool, like Toggl or Pomodoro, to monitor and set the maximum time I can
spend
looking for a solution. If I am not able to solve a problem within that time frame I will ask
someone for help and I will share my knowledge in order to find a quick solution together: two
heads are better than one!
I will try to engage myself in social activities offered by EDA, like for example yoga classes,
and
spend time with my peers (taking a cup of coffee together during a break or having lunch
together) to know each other better.
I will accept and respect opinions or criticism from other learners, facilitators and community
representatives, by keeping in mind that they are here to help me not judge me.
How and where I will seek help in a timely way
As mentioned before, I would try to solve the problem by myself, breaking it down into smaller pieces and then probably by looking for some help online, doing some research on Google. If I could not find a solution in a reasonable amount of time, I would ask for help from my facilitator or colearners, depending on the type of problem I am working on.
What I expect from the facilitation team
I expect to receive help and guidance when requested during both the foundation and bootcamp. I would like to receive constructive feedback about my work and engagement.
Scheduling information
When I left my job to start my journey as a software developer, I decided to invest my time and attention completely to Enspiral DevAcademy. I'm still trying to cut out some time for my hobbies and for myself though, as I think well-being is an important element for a balanced life.
Bootcamp Learning Plan
What is your long term goal and/or career pathway?
After leaving EDA I hope to find a job as a Front End developer or a similar position that at the same time allows me to deepen my knowledge in Web Design.
What do you think your biggest strengths and limitations will be in Bootcamp?
After reviewing what was written in sprint 2, I can see that my strengths and limitations have not changed during Foundations also because most of them are social-skill related. I am sure that being aware of this will help me to better deal with my relationship with others during BootCamp.
What do you think your biggest non-technical challenge at Bootcamp will be?
Speaking di front of others has been one of my biggest fears since I was a child, so trying to overcome this obstacle will not be easy.
What non-technical skills - human skills - would you like to see developed in yourself while at EDA?
I would like to develop my ability to communicate with others, engaging myself more in social interactions, pairing with others without feeling judged and under pressure.
What are your expectations from the Bootcamp team?
I expect to be followed during my learning process, I hope to receive understanding and availability from all teachers and tutors, they should be ready to help me when I don't understand something or I am struggling with a project.
What are your expectations of yourself on Bootcamp?
I will strive to work as hard as I usually do when I have a goal to achieve but trying to maintain a certain balance between study and leisure. I will commit to working within groups even though I will still need some self-study time to fix the new topics in my head; to meet deadlines and be always present throughout the course.


public class SMTPClient
extends java.lang.Object
| Modifier and Type | Class and Description |
|---|---|
static class |
SMTPClient.Response
Result of an SMTP exchange.
|
| Constructor and Description |
|---|
SMTPClient()
Creates an unconnected client.
|
SMTPClient(java.lang.String host,
int port)
Establishes a connection to host and port.
|
SMTPClient(java.lang.String host,
int port,
java.net.SocketAddress bindpoint)
Establishes a connection to host and port from the specified local socket
address.
|
| Modifier and Type | Method and Description |
|---|---|
void |
close()
Logs but otherwise ignores errors
|
void |
connect(java.lang.String host,
int port)
Establishes a connection to host and port.
|
protected java.net.Socket |
createSocket()
Returns a new unconnected socket.
|
java.net.SocketAddress |
getBindpoint()
Returns the local socket address.
|
java.lang.String |
getHostPort() |
protected SMTPClient.Response |
receive()
Note that the response text comes back without trailing newlines.
|
void |
receiveAndCheck()
If response is not success, throw an exception
|
protected void |
send(java.lang.String msg)
Sends a message to the server, ie "HELO foo.example.com".
|
void |
sendAndCheck(java.lang.String msg)
If response is not success, throw an exception
|
SMTPClient.Response |
sendReceive(java.lang.String msg)
Sends a message to the server, ie "HELO foo.example.com".
|
void |
setBindpoint(java.net.SocketAddress bindpoint)
Sets the local socket address.
|
java.lang.String |
toString() |
public SMTPClient()
public SMTPClient(java.lang.String host, int port) throws java.net.UnknownHostException, java.io.IOException
java.net.UnknownHostException
- if the hostname cannot be resolvedjava.io.IOException
- if there is a problem connecting to the portpublic SMTPClient(java.lang.String host, int port, java.net.SocketAddress bindpoint) throws java.net.UnknownHostException, java.io.IOException
bindpoint
- the local socket address. If null, the system will pick up an
ephemeral port and a valid local address.java.net.UnknownHostException
- if the hostname cannot be resolvedjava.io.IOException
- if there is a problem connecting to the portpublic void connect(java.lang.String host, int port) throws java.io.IOException
java.io.IOException
- if there is a problem connecting to the portprotected java.net.Socket createSocket()
Implementation notice for subclasses: This function is called by the constructors which open the connection immediately. In these cases the subclass is not yet initialized, therefore subclasses overriding this function shouldn't use those constructors.
public java.lang.String getHostPort()
protected void send(java.lang.String msg) throws java.io.IOException
msg
- should not have any newlinesjava.io.IOException
protected SMTPClient.Response receive() throws java.io.IOException
java.io.IOException
public SMTPClient.Response sendReceive(java.lang.String msg) throws java.io.IOException
msg
- should not have any newlinesjava.io.IOException
public void receiveAndCheck() throws java.io.IOException, SMTPException
java.io.IOException
SMTPException
public void sendAndCheck(java.lang.String msg) throws java.io.IOException, SMTPException
java.io.IOException
SMTPException
public void close()
public java.lang.String toString()
toString
in class java.lang.Object
public void setBindpoint(java.net.SocketAddress bindpoint)
public java.net.SocketAddress getBindpoint()
Copyright © 2012 SubEthaSMTP. All Rights Reserved. Build version: 3.1.7


Either somebody give you a wrong link or you try to get files directory, either way it is the wrong rabbit hole. May perhaps back to homepage i presume?


A FootLocationNode keeps track of the foot location, angle, and a reference to a foot. More...
#include <FootLocationNode.h>
Public Member Functions | |
| FootLocationNode (fsp::FootLocation &location, std::vector< Foot > *feet) | |
| FootLocationNode (Eigen::Vector2d location, float theta, int footIndex, std::vector< Foot > *feet) | |
| FootLocation | getFootLocation () const |
| Eigen::Vector2d | getLocation () const |
| float | getTheta () const |
| int | getFootIndex () const |
| std::vector< Line > | getBounds () const |
| std::vector< FootLocationNode * > | getChildren () const |
| FootLocationNode * | getChild (int index) const |
| void | setParent (FootLocationNode *parent) |
| void | addChild (FootLocationNode *child) |
| void | addChild (FootLocation &child, std::vector< Foot > *feet) |
A FootLocationNode keeps track of the foot location, angle, and a reference to a foot.


Ever since I was a kid I have been interested in solving puzzles and what is programming other than a big collection of small puzzles?
I'm currently studying Software/Web development in Tartu Vocational Education Centre. During my studies I have acquired knowledge with the following languages & software programs: HTML&CSS, JavaScript, PHP, MySQL, Java, Photoshop and WordPress.


--- layout: post status: publish published: true title: "
Andy joins Corey in the studio for this, our 270th episode as Kurt is not on this episode as he is on his way to Chicago to take his son to his first Cubs game.
Jorge Soler has made quite an impact in the first week of his MLB career. We talk about the week, looking at Soler's performance, but also discuss how much more interested we are in Cubs baseball this September than we have been for a very long time, even though the team is in last place in the division.
Starlin Castro made a mental mistake in the Reds series that brought out a variety of emotions from pundits and fans. We explain our immediate and then more measured reactions.
Corey talks about the Cubs hiring of Jason Parks and Andy looks at the rotation for the rest of the 2014 season. We answer listener questions and read some internet muscle flexes.


BOF
`Prev `__
B
`Next `__
--------------
**BOF**: /B·O·F/, /bof/, n.
1. [common] Abbreviation for the phrase “Birds Of a Feather” (flocking
together), an informal discussion group and/or bull session scheduled on
a conference program. It is not clear where or when this term
originated, but it is now associated with the USENIX conferences for
Unix techies and was already established there by 1984. It was used
earlier than that at DECUS conferences and is reported to have been
common at SHARE meetings as far back as the early 1960s.
2. Acronym, “Beginning of File”.
--------------
+--------------------------+----------------------------+-------------------------+
| `Prev `__ | `Up <../B.html>`__ | `Next `__ |
+--------------------------+----------------------------+-------------------------+
| bodge | `Home <../index.html>`__ | BOFH |
+--------------------------+----------------------------+-------------------------+


Main
Map
Volcano
Tsunami
Earthquake
Top 10
Total Number of damaged houses grouped in EMS-98 Damage classes and dominant land use class
Grouped
Stacked
Dominant land use
evaluated communes


I will tell you what I miss: I miss watching a movie and at the end, huge scrolled words come on the screen and say:
The End. I miss finishing a novel and there on the last page, at a discrete distance from the
last words of the last sentence, are the dark letters spelling The End.
It was its own thrill. I didn’t ignore them, I read them, even if only silently, with a deep sense of feeling:
both the feeling of being replete, a feeling of satisfaction, and the feeling of loss, the sadness of having
finished the book.
I have never, in my life, read a poem that ended with the words The End. Why is that, I wonder.
I think perhaps the brevity of poems compared to novels makes one feel that there has been no great sustention of energy,
no marathon worthy of pulling tape across the finish line. And then I found a poem of mine that I had carefully written by
hand in the sixth grade, and at the bottom of the page, in India ink, beautifully apart from the rest of the text,
were the words The End. And I realized children very often denote the end because it is indeed a great achievement
for them to have written anything, and they are completely unaware of the number of stories and poems that have already
been written; they know some, of course, but have not yet found out the extent to which they are not the only persons
residing on the planet. And so they sign their poems and stories like kings. Which is a wonderful thing.


We optimize dogs!
- disintermediate sticky web-readiness
- revolutionize magnetic deliverables
- incubate interactive methodologies
- iterate compelling applications
- embrace open-source models
- empower cross-media vortals
- reinvent rich communities
- orchestrate proactive bandwidth
- whiteboard wireless metrics