About
To the top
| Occupation | Mathematician, Topologist |
| Country | Turkey |
| Date of birth | Oct 11, 1910 Thessaloniki |
| Date of death | Dec 26, 1997 Istanbul |
| Education | École Normale Supérieure, University of Göttingen |
Biography
To the top
Cahit Arf was born in Thessaloniki which, in 1910, was a part of the Ottoman Empire. However, the Balkan War was fought by Serbia, Bulgaria, Greece, and Montenegro against the Ottoman Empire when Arf was two years old. Montenegro declared war on Turkey on 8 October 1912, and the other members of the Balkan league declared war on Turkey 10 days later. The Balkan allies were soon victorious. The Bulgarians defeated the main Ottoman forces, advancing towards Istanbul (then called Constantinople), and the Greeks occupied Thessaloniki. With the outbreak of fighting, Arf's family escaped to Istanbul.
In 1919 Arf's family moved again, this time to Ankara, but they returned to Istanbul for a short period before they finally settled in Izmir. Cahit Arf's interest in mathematics was stimulated during his school years in Izmir by a teacher who encouraged him to solve problems in euclidean geometry. In 1926 Arf's father bought French francs when the currency was devalued and it became a cheaper option for the family to send Arf to school in France. Arf won a scholarship to continued his education in Paris and he returned to France, graduating from the École Normale Supérieure after spending two years there.
Returning to Istanbul to be a school teacher rather than to complete his doctorate, Arf taught at the Galatasaray High School during 1932.
I was going to take the place of a teacher from France ... and do the work that he did. My salary was 60 Turkish Liras but the person whom I took the place of was getting paid 600 Turkish Liras.... I worked as an idealist for a year. Some teachers felt sorry for me. They were saying "poor him. ... He is working for 60 Liras". Probably because of that, I lost my idealism. ... At that time reforms were being made in universities so they offered me a position as an assistant professor. I accepted it and then I thought myself that I was successful.
−Cahit Arf
In 1933 he joined the Mathematics Department of Istanbul University. In 1937 he went to Göttingen, where he received his PhD from the University of Göttingen and he worked with Helmut Hasse and Josue Cruz de Munoz.
He returned to Istanbul University and worked there until his involvement with the foundation work of Scientific and Technological Research Council (TÜBİTAK) upon President Cemal Gursel's appointment in 1962.
After serving as the founding director of the council in 1963, he joined the Mathematics Department of Robert College in Istanbul.
Arf spent the period of 1964–1966 working at the Institute for Advanced Study in Princeton, New Jersey. He later visited University of California, Berkeley for one year.
Upon his final return to Turkey, he joined the Mathematics Department of the Middle East Technical University and continued his studies there until his retirement in 1980.
Arf died on December 26, 1997 in Bebek, Istanbul, at the age of 87.
Influence
To the top
Arf's influence on Science in general and Mathematics in particular was profound. Although he had very few formal students, many of the mathematicians of Turkey, at some time of their careers, had fruitful discussions on their field of interest with him and had received support and encouragement.
He facilitated the now-celebrated visit of Robert Langlands to Turkey (now famous for the Langlands program, among many other things); during which Langlands worked out some arduous calculations on the epsilon factors of Artin L-functions.
Middle East Technical University Department of Mathematics organizes a special lecture session called the Cahit Arf lecture each year in memory of Arf.
Reverse of the 10 lira banknote (2009)
Arf's portrait is depicted on the reverse of the Turkish 10 lira banknote issued in 2009.
Cahit Arf Lectures
To the top
Previous Cahit Arf lectures held at Middle East Technical University include:
- 2013/14: Persi Diaconis of Stanford University
- 2012: David E. Nadler of Northwestern University and University of California, Berkeley
- 2011: Jonathan Pila of University of Oxford: Diophantine Geometry via O-minimality
- 2010: John W Morgan of Simons Center for Geometry and Physics at Stony Brook University
- 2009: Ben Joseph Green of University of Cambridge
- 2008: Günter Harder of Mathematisches Institut der Universitat Bonn and Max Planck Institute for Mathematics
- 2007: Hendrik Lenstra of Universiteit Leiden Mathematisch Instituut
- 2006: Jean-Pierre Serre of Collège de France
- 2005: Peter Sarnak of Princeton University and the Institute for Advanced Study
- 2004: Robert Langlands of the Institute for Advanced Study
- 2003: David Mumford of Brown University Division of Applied Mathematics
- 2002: Don Zagier of University of Utrecht / Collège de France
- 2001: Gerhard Frey of University of Essen Institute for Experimental Mathematics
To the top


* [About ULEARN](#about-ulearn)
* [Key Features](#about-ulearn)
* [Demo & Credentials](#about-ulearn)
* [Access ReactJS Page](#access-reactjs-page)
* [Installation](#about-ulearn)
* [Support](#about-ulearn)
* [License](#about-ulearn)
## About ULEARN
ULEARN is an impressive LMS script which comprises of all the basic features that needed for online learning. This package includes responsive frontend website, instructor/admin dashboard with a backend template. Admin can manage every aspect of the system, while the instructors could create creative courses through an interactive curriculum with various types of course files such as audio, video, document and text.
```diff
+ Request: Kindy give us a star in github, if you like/clone our project.
```
## Key Features
1. Laravel 5.8
2. React JS 16.9
3. Hi-Tech Learning
4. Social Login
5. Responsive Design
6. Course Management
7. Curriculum
8. Payment Gateway
9. SEO Friendly
10. Videos
11. Instructor Credits
12. Instructor Module
13. Admin Module
14. Page Management
15. Blogs
16. Website Security
## Demo & Credentials
Demo Link : https://www.ulearnpro.com/demo/
| Role | Email ID | Password |
| ------------- | --------------------- | ------------- |
| Admin |<EMAIL_ADDRESS>| secret |
| Instructor |<EMAIL_ADDRESS>| secret |
| Student |<EMAIL_ADDRESS>| secret |
## Access ReactJS Page
Login at the following link using the student credentials<EMAIL_ADDRESS>| password:secret
```sh
https://www.ulearnpro.com/demo/login
```
Navigate to the following link, to access the course learn page directly
```sh
https://www.ulearnpro.com/demo/course-enroll/photography-become-a-better-photographer/dlhZZTZ6bmZWTGdRd3YzVWp2ZldMQT09
```
## Installation
In the root folder, find the .env file and change the following values
```sh
APP_NAME=
APP_URL=
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
```
Through terminal or command prompt, update composer to install the dependencies:
```sh
composer update
```
Run the migration command to create the tables
```sh
php artisan migrate
```
Run the seeder to import mandatory values to the tables
```sh
php artisan db:seed
```
## Support
For contribution and customisation supports, kindly contact us through the Email ID<EMAIL_ADDRESS>## License
ULEARN is open-source software licensed under the [MIT License](LICENSE).


Package: closure-html
Function attribute
Lambda List
attribute (name value)
Arguments
Return Valuethe value
Details Add an attribute to the current element.
To be used in the extent of an with-element invocation, this function adds an attribute to the element being serialized. |
See also |


Posted by yasin on March 14, 2018
Posted by yasin on September 15, 2017
Posted by yasin on August 8, 2017
Posted by yasin on August 3, 2017
Posted by yasin on June 5, 2017
Posted by yasin on June 1, 2017
Posted by yasin on March 6, 2017
Posted by yasin on January 18, 2017
Posted by yasin on January 5, 2017
Posted by yasin on December 29, 2016
这家伙很懒，什么也没留下。


We sent a sign in link to your email {{signInWithEmailLinkSentTo}}
There’s two ways to sign up, one is to sign in using Google or Facebook, which means the form below will be filled in automatically, or you can do it the old fashioned way, and just type your details in by hand.
...or sign in with an email below
By signing up you are agreeing to our terms & conditions and privacy policy.


PAY IT FORWARD (Warner Bros.) Starring: Kevin Spacey, Helen Hunt, Haley Joel Osment, Jay Mohr, James Caviezel, Jon Bon Jovi, Angie Dickinson. Screenplay: Leslie Dixon, based on the novel by Catherine Ryan Hyde. Producers: Peter Abrams, Robert Levy and Steven Reuther. Director: Mimi Leder. MPAA Rating: PG-13 (profanity, adult themes, drug use, violence) Running Time: 122 minutes. Reviewed by Scott Renshaw.
When I finished reading Catherine Ryan Hyde's novel PAY IT FORWARD, one simple thought occurred to me: "Someone's going to have to screw up big time to keep this from being a real crowd-pleaser." It was far from clear that PAY IT FORWARD would make for a great film; there were a lot of plot threads to condense, and a definite danger of Pollyanna overkill. But there was something primally satisfying about the whole idea of it, and a kicker of a finale that was a true tear-jerker on the page. Great, not necessarily; hanky-wringing and applause-inducing, most definitely.
Maybe a fable like PAY IT FORWARD could only have worked on the page. More likely, maybe it only could have worked with a director who knew how to tell an inherently emotional story with some degree of subtlety. Mimi Leder utterly botches this tale of a middle school student named Trevor McKinney (Haley Joel Osment) inspired by his social studies teacher Eugene Simonet (Kevin Spacey) to develop a unique plan of altruism. Trevor devises a sort of human chain letter of good deeds: He will help three people with something big, then request that his beneficiaries in turn "pay it forward" to three more people each. His classmates scoff at his optimism, but Eugene is intrigued by Trevor's idea. He also finds himself a part of the plan when he becomes one of Trevor's good deeds, as Trevor attempts to fix him up with his alcoholic mother Arlene (Helen Hunt).
Much has been made of the fact that the Kevin Spacey character was African-American in the novel, but PAY IT FORWARD isn't ineffective because it's not faithful enough. Indeed, screenwriter Leslie Dixon comes up with an effective alternative back story for the scars Eugene bears, and she creatively weaves the sub-plot involving a reporter (Jay Mohr) chasing down the origin of the Pay It Forward "movement" into the main plot. There are quite a few things to like about the film, from Helen Hunt's willingness to look positively ghastly, to the use of the Las Vegas setting. And of course there's Kevin Spacey, who can always be counted on to dazzle even when the material is less than stellar. He's a fascinating screen performer, and here he gets at the hope buried in a bitter man.
That's what Spacey can do even when a director seems to be working against him. Leder excelled as a small screen director for "E.R.," but in PAY IT FORWARD, as in DEEP IMPACT, she once again misses every opportunity to make the film about more than its concept. Granted, Dixon's script is better with individual moments than it is at building a narrative, but Leder makes a flawed script even worse. Every shot involving a human face involves a close-up so intense you can count pores; supporting characters -- notably Jon Bon Jovi as Trevor's absentee dad -- aren't given a chance to develop beyond a single note. Her biggest blunders are saved for one of PAY IT FORWARD's most intense scenes, in which Eugene bares his soul to Arlene regarding his own past. Leder's editing choices rob the moment of all its power, including pointless cutaway's to Hunt's reaction shots. Every time a scene calls for finding a core of emotional honesty, Leder opts instead to convey sincerity by blowing up Haley Joel Osment's head to the size of a dirigible and letting the tears roll down his pouting face.
Plenty of opponents of PAY IT FORWARD will probably fixate on the film's final shot, which borrows blatantly from another feel-good film that shall remain nameless. Once again, the problem isn't that it differs from the novel's climax; it isn't even that it's familiar from another film. The problem is that it's simply a movie moment, one that ignores that the payoff in PAY IT FORWARD should be the success or failure of Trevor's idea. It's manipulative and overwrought, but the real issue is that it's not organic to the story. Leder spends two hours grasping for how to tell this story visually, and almost never comes up with the appropriate choice. PAY IT FORWARD is still bound to leave some viewers thinking they've seen a good film, just because it leaves them a little teary-eyed. I doubt many of them will feel any resonance from those tears 24 hours later. Congratulations, Mimi Leder, with assistance from Leslie Dixon.
On the Renshaw scale of 0 to 10 forward passives: 5.
Visit Scott Renshaw's Screening Room http://www.inconnect.com/~renshaw/ *** Subscribe to receive new reviews directly by email! See the Screening Room for details, or reply to this message with subject "Subscribe".
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


Color your Ergodox
Test out different keycap colors
Keycap Colors:
Toggle to choose between base keys and modifier keys


{% blocktrans with minutes=REGISTRATION_EXPIRE_MINUTES|human_readable_time %}
Your registrations are reserved for the next {{ minutes }}. If payment is not received within this time, your
registration will be cancelled and your place will be made available again.{% endblocktrans %}


#^------------------------------ #^html trim=ends
{head} {header}{body}{footer} #^------------------------------ #^head trim=ends| Tone deaf Half Orc on Bass Viol de Gamba "Can I skin that?" | 6-string Appalachian Dulcimerist Superstar "What have I become?!" | Dwarven Tabor Drummer "The dwaf wiw not betway you." |
| Rogue Band Manager "Sign here, please." | A bit of context: 5 people meet once a month for a game of D&D. These are our "adventures". | Dungeon Master Extraordinaire "This dice is cursed!" |


An expert on blockchain matters , whether it be the practical part or the theoritical part. With tonnes of experience in this subject , I can duly consult and create on topics related to blockchain.I have been worked on various blockchain projects along with special emphasis on Hyperledger Fabric and Ethereum Blockchain Network.Hyperledger Fabric is a permissioned blockchain network and its development is a niche skill.Ethereum Blockchain is a permissionless blockchain network.
Check it outWith abundant experience in app development with flutter , I have become a professional in app development. I have developed app pertaining to social media , finance technology , erp management system and prayer recitation.
Check it out


1) Import Your Content
Upload your premade content/outline into CuboCube with just a few clicks.
2) Edit Collaboratively
Allow your peers to edit and annotate your work, adding material and clarifying hard concepts.
3) Discuss and Share
Get feedback on your content and share the knowledge in your network.


Globe lets you take 3D pictures of Earth (called panoramas,) and share them with everyone. See how it works
Explore by searching for places on Earth.
Pan the interactive map and browse user's pins
Mind = Blown.
Sign UpUsing your smartphone, take a panoramic picture. Read the guide
Drop a pin on the interactive map to mark where you took it.
Add a comment on your experience.
Posts that get more than 1,000 likes for that place get special status which everyone can see first.
Get Started


YYYY-MM-DD, Weekday
Record your visit.
Click here to "Enter".
>
Click here to "Get On".
>
Click here to "Report".
>
Home
Inbox
Settings


We're sorry but CasaOS doesn't work properly without JavaScript enabled. Please enable it to continue.


The Monitor service provides a passive client-side monitor framework. Monitors collect and aggregate data per page view and send that data to a server for Web analytics processing. The Account Manager 4 project includes a reference implementation.
Static instance of serviceImpl
An object registerer with the ObjectRegistry, that defines an initializeMonitor method, and that may define any handle_{event name} method listed for the MonitorService. The initializeMonitor method must return true for the object to be treated as a monitor and receive event notifications and intervall callbacks.
See Example Monitor #1 for an example of implementating the script on a page.
Demonstrate how to create and register a basic monitor object.
var oMonitor = { handle_window_load:function(){ }, // Required by MonitorService initializeMonitor:function(){ // must return true for monitoring to be enabled; return 1; }};// important to prepare object so 1) it can be registered, and 2) add it to the ObjectRegistryHemi.prepareObject("MyMonitor","1.0",true,oMonitor);// add the monitor objectHemi.monitor.service.addMonitor(oMonitor);
Demonstrate alternate method to create and register a basic monitor object, and include inline configuration for the monitor.
function Monitor(){}Monitor.prototype.initializeMonitor = function(){ alert("Access configuration value: " + this.getConfigKey("myprop")); // must return true for monitoring to be enabled; return 1;}var oMonitor = new Monitor();// important to prepare object so it can be registered; skip auto-registering for this demonstration.Hemi.prepareObject("MyMonitor","1.0",false,oMonitor");// Add object to the registry. It must be registered in order to be added as a monitor.Hemi.registry.service.addObject(oMonitor);Hemi.monitor.service.addMonitor(oMonitor,"myprop:myval&myprop2:myval2");
Demonstrate how to create and register a monitor using an ApplicationComponent.
<application-components> <application-component id = "demo_monitor"> <![CDATA[ component_init:function(){ Hemi.monitor.service.addMonitor(this); }, initializeMonitor:function(){ return true; }, handle_window_load:function(e){ alert("window load via monitor service"); } ]]> </application-component></application-components>
Invoked by MonitorService doInterval. By default, this is invoked every one second. Each monitor can conttrol participating in the interval by setting the can_interval property to true or false, and can increase delay by setting the interval_offset property to the number of whole seconds that should elapse before doInterval is invoked again. The interval_offset is used as a degrading counter, so each monitor is responsible for setting its own delay after each invocation of doInterval. Method is virtual and can be overridden.
void doInterval( )
v = getConfigKey( c )
v as variant: Returns the String or int value for the corresponding key.
Returns the config_keys hash.
c = getConfigKeys( )
c as hash: Returns the hash containing the parsed inline configuration name/value pairs.
Returns the MonitorService to which this Monitor is registered.
m = getMonitorService( )
m as MonitorServiceImpl: A MonitorService implementation.
Invoked by MonitorService dispatchEvent to delegate the contextmenu event. Method is virtual and can be overridden.
void handle_context_menu( e )
Invoked by MonitorService dispatchEvent to delegate the document scroll event. Method is virtual and can be overridden.
void handle_document_scroll( e )
Invoked by MonitorService dispatchEvent to delegate the form reset event. Method is virtual and can be overridden.
void handle_form_reset( e )
Invoked by MonitorService dispatchEvent to delegate the form submit event. Method is virtual and can be overridden.
void handle_form_submit( e )
Invoked by MonitorService dispatchEvent to delegate the input blur event. Method is virtual and can be overridden.
void handle_input_blur( e )
Invoked by MonitorService dispatchEvent to delegate the input focus event. Method is virtual and can be overridden.
void handle_input_focus( e )
Invoked by MonitorService dispatchEvent to delegate the mouse click event. Method is virtual and can be overridden.
void handle_mouse_click( e )
Invoked by MonitorService dispatchEvent to delegate the mouse move event. Method is virtual and can be overridden.
void handle_mouse_move( e )
Invoked by MonitorService dispatchEvent to delegate the select change event. Method is virtual and can be overridden.
void handle_select_change( e )
Invoked by MonitorService dispatchEvent to delegate the beforeunload event. Method is virtual and can be overridden.
void handle_window_beforeunload( e )
Invoked by MonitorService dispatchEvent to delegate the window blur event. Method is virtual and can be overridden.
void handle_window_blur( e )
Invoked by MonitorService dispatchEvent to delegate the error event. TODO: need to fix handler parameters. At the moment, error information is not being passed. Method is virtual and can be overridden.
void handle_window_error( e )
Invoked by MonitorService dispatchEvent to delegate the window focus event. Method is virtual and can be overridden.
void handle_window_focus( e )
Invoked by MonitorService dispatchEvent to delegate the window keydown event. Method is virtual and can be overridden.
void handle_window_keydown( e )
Invoked by MonitorService dispatchEvent to delegate the load event and binds elements to internal handlers. Dispatches window_load to monitors. Method is virtual and can be overridden.
void handle_window_load( e )
Invoked by MonitorService dispatchEvent to delegate the window resize event. Method is virtual and can be overridden.
void handle_window_resize( e )
Invoked by MonitorService dispatchEvent to delegate the unload event. Method is virtual and can be overridden.
void handle_window_unload( e )
Invoked by addMonitor if the object met the basic criteria for participating in the MonitorService: it must be registered, and it must define this method. Returns true if the object was initialized, false otherwise. If returning false, the object will not be treated as monitor and receive no notifications or callbacks. Whether this returns true or false, the object will continue to define the members set when addMonitor was invoked. Method is virtual and can be overridden.
b = initializeMonitor( )
b as boolean: True if the object initialized and should be treated as a monitor, false if the object should be ignored.
A base class for creating beacon and XML transponders for monitoring Web pages.
Object API structure for storing sub structures: object_config.pointers and object_config.status.
object = object.object_config
Unique instance identifier.
String = object.object_id
The type of this object.
String = object.object_type
Version of the object class.
String = object.object_version
Object load and execution state. Follows: 0 unitialized, 1 through 3 variant, 4 ready, 5 destroyed.
int = object.ready_state
Adds an object to the monitor service, and allows that object to automatically receive event callbacks and easy access to MonitorService information. The specified object must define an initializeMonitor method, and the method must return true for the monitor to be added. Defines the getMonitorService method, can_interval, and interval_offset on the specified object.
void addMonitor( o, c )
Binds MonitorService event handlers to common Web page objects. Individual monitors participate in the event handler by defining a handle_{event name} function, such as handle_window_load. Method is private and should not be directly referenced.
void bindElements( )
Binds MonitorService event handlers to common browser objects. Individual monitors participate in the event handler by defining a handle_{event name} function, such as handle_window_load. Method is private and should not be directly referenced.
void bindObjects( )
Dispatches event notifications to Monitor instances that define a function named handle_{event key}, such as handle_window_load. The event object is passed as the only parameter. NOTES: should we bother with cancelling events? These are monitors, which shouldn't be tampering with anything. Method is private and should not be directly referenced.
void dispatchEvent( s, e )
A an interval (one second / one thousand milliseconds) that invokes the doInterval method on Monitor instances that set the can_interval property to true. Monitors can increase delay by setting the interval_offset property to the number of seconds that should elapse before doInterval is invoked again. The interval_offset is used as a degrading counter, so each monitor is responsible for setting its own delay after each invocation of doInterval. Method is private and should not be directly referenced.
void doInterval( )
Returns the application id. Defaults to Global. Can be specified by defining the global APPLICATION_ID variable to a custom value.
s = getApplicationId( )
s as String: String indicating the application identifier.
Returns a light hash of the current page location plus a few random numbers to uniquely identify the current page visit from other pages visits by this particular session. This value only has to be unique in relation to other context_ids for the session id.
s = getContextId( )
s as String: Light hash of the current Web page location plus a few random numbers.
Returns the object in which all monitoring should take place. Defaults to document. Can be specified by setting the global CONTEXT_OBJECT variable to a different object prior to loading the MonitorService.
d = getContextObject( )
d as DOMNode: The context node in which monitoring is to take place.
Returns the identifier used to describe the data being collected. Defaults to public. Can be specified by defining the global DATASET_ID variable to a custom value.
d = getDatasetId( )
d as String: Identifier representing the type of data being collected.
Returns true if the document has loaded, false otherwise.
b = getDatasetId( )
b as boolean: Bit indicating whether the document has loaded and, under normal circumstances, whether it is rendered.
Returns the unique id of the object.
i = getObjectId( )
i as String: The unique object instance id.
Returns the type of the object.
t = getObjectType( )
t as String: The type of the object instance.
Returns the version of the object.
v = getObjectVersion( )
v as String: The version of the object instance.
Returns the object_config.pointers sub structure.
o = getPointers( )
o as object: The object_config.pointers substructure.
Returns the state of the object.
s = getReadyState( )
s as int: The object ready state.
Returns the session id based on the pre-configured session cookie name. By default, the MonitorService ships with MONITOR_SESSION_ID, and the value is auto-generated. To use a different cookie name, the SDK must be used to alter the build configuration. TODO: Add support for configurable names at runtime.
s = getSessionId( )
s as String: String indicating the application session identifier.
Returns the object_config.status sub structure.
o = getStatus( )
o as object: The object_config.status substructure.
Returns an int representing the current state of the browser window. 0 = unknown, 1 = uninitialized, 2 = window not loaded, 3 = window loaded, 4 = window before unload, 5 = window unload
i = getWindowState( )
i as int: The current state of the browser window.
Handler that manages the contextmenu event. Dispatches context_menu to monitors. Method is private and should not be directly referenced.
void handle_context_menu( )
Handler that manages the document scroll event. Dispatches document_scroll to monitors. Method is private and should not be directly referenced.
void handle_document_scroll( )
Handler that manages the stop event. Dispatches document_stop to monitors. Method is private and should not be directly referenced.
void handle_document_stop( )
Handler that manages the form reset event. Dispatches form_reset to monitors. Method is private and should not be directly referenced.
void handle_form_reset( )
Handler that manages the form submit event. Dispatches form_submit to monitors. Method is private and should not be directly referenced.
void handle_form_submit( )
Handler that manages the input blur event. Dispatches input_blur to monitors. Method is private and should not be directly referenced.
void handle_input_blur( )
Handler that manages the input focus event. Dispatches input_focus to monitors. Method is private and should not be directly referenced.
void handle_input_focus( )
Handler that manages the mouse click event. Dispatches mouse_click to monitors. Method is private and should not be directly referenced.
void handle_mouse_click( )
Handler that manages the mouse move event. Dispatches mouse_move to monitors. Method is private and should not be directly referenced.
void handle_mouse_move( )
Handler that manages the select change event. Dispatches select_change to monitors. Method is private and should not be directly referenced.
void handle_select_change( )
Handler that manages the beforeunload event. Dispatches window_beforeunload to monitors. Method is private and should not be directly referenced.
void handle_window_beforeunload( )
Handler that manages the window blur event. Dispatches window_blur to monitors. Method is private and should not be directly referenced.
void handle_window_blur( )
Handler that manages the error event. Dispatches window_error to monitors. TODO: need to fix handler parameters. At the moment, error information is not being passed. Method is private and should not be directly referenced.
void handle_window_error( )
Handler that manages the window focus event. Dispatches window_focus to monitors. Method is private and should not be directly referenced.
void handle_window_focus( )
Handler that manages the interval thread. Note: this doesn't use the ThreadService, though probably should. Method is private and should not be directly referenced.
void handle_window_interval( )
Handler that manages the window keydown event. Dispatches window_keydown to monitors. Method is private and should not be directly referenced.
void handle_window_keydown( )
Handler that manages the load event and binds elements to internal handlers. Dispatches window_load to monitors. Method is private and should not be directly referenced.
void handle_window_load( )
Handler that manages the window resize event. Dispatches window_resize to monitors. Method is private and should not be directly referenced.
void handle_window_resize( )
Handler that manages the unload event. Dispatches window_unload to monitors. Method is private and should not be directly referenced.
void handle_window_unload( )
Hashes the document cookies into the cookies hash, where the default cookie structure of most browsers is: name=value; name2=value2. Optionally hashes embedded cookie values that use the following syntax: subname:subvalue&subname2:subvalue2. For example: name=subname:subvalue; name2=subname2:subvalue2&subname3:subvalue3
void hashCookie( n, b, f )
Hashes the value into the specified hash, using the specified delimiters, such as: name=value; name2=value2.
void hashValue( c, d, s, k )
Starts the MonitorService. This is automatically invoke when a MonitorService instance is created. Method is private and should not be directly referenced.
void initializeMonitorService( )
Remove an object from the monitor service.
b = removeMonitor( o )
b as boolean: Bit indicating whether the monitor was removed.
[ Hemi JavaScript Framework - Stephen W. Cote, 2002 - 2013. ]


- id - Variable in class core.VirtualFileSystem
-
id of the virutal disk
- importFromHostFileSystem(String, String) - Method in class core.VirtualFileSystem
-
imports a file/directory from the host file system to the virtual file system
- importFromHostFileSystem(String) - Method in class core.VirtualFileSystem
-
imports a file/directory from the host file system to the current working directory of the virtual file system
- importToVFS(String, String, String) - Method in class core.VFSApp
-
imports a file/directory from the host file system to a virtual file system
- impvfs() - Static method in class clui.CLUserInterface
-
import to virtual file system
- input - Static variable in class clui.CLUserInterface
-
standard input scanner
- intSize - Static variable in class core.VirtualFileSystem
-
size of an integer value (4 bytes)
- isAbsolutePath(String) - Static method in class core.Path
-
checks if the given argument is an absolute path string.
- isDirectory() - Method in class core.VNode
-
checks if VNode is Directory
- isFile() - Method in class core.VNode
-
checks if VNode is File
- isFreeBlock(long) - Method in class core.VirtualFileSystem
-
checks if a data block is free
- isLeaf() - Method in class tree.SimpleTreeNode
-
checks if the node is a tree leaf
- isPath(String) - Static method in class core.Path
-
checks if the given argument is a path string
- isRoot() - Method in class core.VNode
-
checks if VNode is root of tree.
- isRoot() - Method in class tree.SimpleTreeNode
-
checks if the node is a tree root


Chapter 12
Chapter 12 introduces
socket.io
.
Connecting clients
Sending data from the server to clients
Sending data from clients to the server
Sending data both ways


on
Tiny guide to Rails
The tiny guide to Rails (that I wish I had)
I’ve found Rails to rely on more convention over configuration than I’m comfortable with - so much so it seemed impenetrable at times. This is the tiny guide to Rails I wish I had to understand where code lives and how the application works.
Know where to find things
Go to definition
or go to implementation
doesn’t work well with Rails projects and most IDEs I’ve tried. It’s important to know where to find code:
- Controllers: app/controllers/foo_controller.rb
- Views: app/views/foo/bar.html.erb. Controller app/controllers/foo_controller.rb above maps to app/views/foo/ and the controller’s function
bar
finds the bar.html.erb file - Models: app/models/item_foo.rb
Models
- Naming: an ActiveRecord model with a declaration like
class ImportFile < ApplicationRecord
will be accessed likeImportFile.create
but the file must be namedimport_file.rb
. - Plurals: if a model called
Widget
has manyImportFile
models from above, they will be accessed like so:Widget.find(widget_id).import_files
. - Fields can be accessed by
.field_name
. For theImportFile
class above, if we find an item withImportFile.find(import_id)
we can access thefilename
field like so:ImportFile.find(import_id).filename
. If the field does not exist in the database an error occurs at runtime. - Lots of validators and attributes etc… are available for Models. Every addition made to the Model file can increase complexity for the next person.
- Schema reference: located in db/schema.rb. This contains most but not all fields available. For example an ID field is in the database but not the schema file. Keep this file up to date for easy reference of field names.
Controller and View communication
Controllers set instance variables (@foo
) which are available in the View.
Controller:
def show
@foo = ImportFile.find(import_id)
end
View:

foo filename is <%= @foo.filename %>

If the view tries to access a variable or a field on the variable that doesn’t exist an error occurs at runtime.
Views
Two syntaxes are available in .erb files.
<%= RUBY CODE RETURNING A STRING =>
will evaluate the items in the Ruby code block and return the contents.
<% RUBY CODE %>
will evaluate the contents but not insert the value into the rendered page. This is useful for if/else statements:
<% if @foo.bar.nil? %>

❌

<% else %>

✅

<% end %>


| DOSE: |
1 hit |
oral |
LSD |
(blotter / tab) |
This was the first LSD experience I had. I was 18. What's kind of interesting is that it was the first real experience with any psychoactive drug I'd had (save for alcohol once when I was 12--different story). I was very straight in High School. I never went to parties, never smoked cigarettes or pot and never drank. I was in good physical condition from working out and running every day... Still, I always loved the culture that seemed to surround acid and wanted to get the inside scoop. An acid fiend I was friendly with gave me a tab which I kept in a little box under my bed which I finally opened one school Sunday. I gathered suggested materials (Sgt. Pepper's Lonely Hearts Club Band, copy of Yellow Submarine) and set off for my friend's house.
I was a little worried because of my lack of experience. None of the drug veterans could relate to me the acid experience to their own satisfaction, but still I was excited. I wanted to see pink clouds swirl around my feet and obscure the ground like a foot of snow and watch tree trunks turn into tornado funnels.
Anyway, I went to my best friend's (a seasoned acid veteran at the time) and put the tab on my tongue as we sat in the wilderness next to his house listening to Mr. Bungle. I drew a little in my sketchbook. An hour passed and the lack of any effects made me worry that it was a dummy tab, or maybe that I was in such good physical condition that the dosage didn't affect me. Two hours passed and we headed back to his house, I guessed I got burned.
As we ascended the stairway, I looked out the window at the green foliage across the cul-de-sac and felt an inexplicable urge to smile. The image was high-contrast and high-saturation, like the super-glossy cover of some pop album. 'Uhh, I definitely think this stuff is working', I said as I ambled into my friend's room and plopped down next to his bed and watched how the colors were altered and intensified as if under a tinted glass.
Basically it was really fun. At the time I felt bad for doing such a thing to my body but looking back I don't regret it. My friend drove me to a house for some reason where a family was gathered for Superbowl Sunday and I saw the sunset under the effects of LSD: Looking down on the landscape from the hill, horizontal strips of it appeared to be separate and closer than the others, as if the whole image was an illusion concocted inside a stereoscope. Later when I was peaking I saw clouds in the sky turn into trilobytes as Led Zeppelin played on a stereo. Though it was familiar, I perceived passages of music within it that I hadn't before. The comedown was bad but my parents never suspected anything and I had a friend help me through it.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Daily Review: Italy Launches a Nationwide Wireless Network for the IoT
High connectivity is one of the hallmarks of the modern society. At any moment in time, individuals are plugged into society through the range of devices, which as well are constituting a complex ecosystem of smart connected things. According to HBR, “Consumers are becoming more and more connected whether it is at home, at work, behind the wheel, when they engage in sports and leisure activities, and so on. This is happening quite fast, due to the adoption of smart devices, and companies have to be able to react accordingly in order to maximize value both for their clients and for themselves.”
20 Blockchain-Focused Startup Accelerators as Unconventional as the Technology
As the blockchain-focused community of entrepreneurs expands worldwide, so does the ecosystem aimed to support and nurture top-performing solutions. Being FinTech-focused is not enough – experienced professionals are branching out to blockchain-focused entities, incubating and accelerating development and deployment of DLT-based solutions across industries.
Daily Review: Shoppable Videos Are Here, Will They Change the Face of E-Commerce?
Given that three-fourths (75%) of the world’s mobile data traffic will be video by 2020, there is a strong chance that the future of payments will migrate from buttons in apps and mobile-friendly web pages into video-embedded options. In this study, Cisco explains that mobile video will grow at a CAGR of 62% between 2015 and 2020, higher than the overall average mobile traffic CAGR of 53%. Of the 30.6 exabytes per month crossing the mobile network by 2020, Cisco estimates that 23.0 exabytes will be due to video. Mobile video represented more than half of global mobile data traffic beginning in 2012, indicating that it is already affecting traffic today, not just in the future.
To Solve Poverty, We Need a New Type of Innovation
“In trying to solve poverty, our challenge is not a lack of money. The money is there, but it needs to be redirected to innovative ideas with social impact that is much more meaningful.”


| Home | Trees | Indices | Help |
|---|
|
|
object --+ | BrokenPowerlawSED
| Instance Methods | |||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
Inherited from |
| Class Variables | |
planck_erg_s = 6.6260755e-27
|
| Properties | |
|
Inherited from |
| Method Details |
Normalized luminosity in the defined band. wavelength0 and wavelength1 in Angstroms. This is the fraction of total luminosity in the band. Multiply the result by the total luminosity (energy per second) to get physical units. |
Normalized photon emission rate in the band between wavelength0 and wavelength1. Units are erg^-1 (which could also be expressed as s^-1 per (erg/s)). Multiply the result by the total luminosity (in ergs per unit time), to get the actual photon emission rate. ExampleTo get the ionizing photon emission rate (per unit luminosity): >>> BrokenPowerlawSED().photonRate_wavelength(0., 912.)<PHONE_NUMBER>.0292048 |
Return a model SED for a galaxy. Parameters
NotesBolton and Haehnelt (2007MNRAS.382..325B) use an SED with
'with an additional break in the spectrum at the Lyman limit' eps_L = eps(1500)/6
|
The spectrum at the given frequency/frequencies. Multiply by the total luminosity to get the luminosity per unit frequency. Units are (fraction of total luminosity) per Hz. |
The ratio of ionizing photon emission rate to luminosity. Paramters
ReturnsThe ratio of ionizing photon emission rate to luminosity at the given wavelength Q/L_nu(lambda) in units of photons s^-1 (erg s^-1 Hz^-1)^-1. NotesWhile this function takes an argument in angstroms, the ratio is calculated using the luminosity per unit frequence, so as to be easily comensurate with luminosities inferred from AB magnitudes. |
| Home | Trees | Indices | Help |
|---|
| Generated by Epydoc 3.0.1 on Tue Mar 27 20:49:15 2012 | http://epydoc.sourceforge.net |


Heaving Cylinder
Author:
Ajit Kumar
My OpenFoam projects
Heaving Cylinder
Dec 2017
Simulation of a two dimensional cylinder heaving over surface of a water.


Agra is a city in northern India’s Uttar Pradesh state. It's home to the iconic Taj Mahal, a mausoleum built for the Mughal ruler Shah Jahan’s wife, Mumtaz Mahal (who died in childbirth in 1631).
Delhi, India’s capital territory, is a massive metropolitan area in the country’s north. In Old Delhi, a neighborhood dating to the 1600s, stands the imposing Mughal-era Red Fort, a symbol of India, and the sprawling Jama Masjid mosque, whose courtyard accommodates 25,000 people.
Jaipur is the capital of India’s Rajasthan state. It evokes the royal family that once ruled the region and that, in 1727, founded what is now called the Old City, or “Pink City” for its trademark building color. At the center of its stately street grid (notable in India) stands the opulent, colonnaded City Palace complex.
Varanasi is a city in the northern Indian state of Uttar Pradesh dating to the 11th century B.C. Regarded as the spiritual capital of India, the city draws Hindu pilgrims who bathe in the Ganges River’s sacred waters and perform funeral rites. Along the city's winding streets are some 2,000 temples, including Kashi Vishwanath, the “Golden Temple,” dedicated to the Hindu god Shiva.
Udaipur, formerly the capital of the Mewar Kingdom, is a city in the western Indian state of Rajasthan. Founded by Maharana Udai Singh II in 1559, it’s set around a series of artificial lakes and is known for its lavish royal residences.
Roll No. :- 19MCA006
Roll No. :- 19MCA011


May the 4th be with you.
It is always exciting to start programming, whether it is a new language or a whole new scheme. This post is my mental image of (Nvidia) GPU programming; it belongs to my series of GPU Programming Notes:
- Part 1: Nvidia GPU programming mental image. (this post)
- Part 2: Shared Memory and popular algorithms. (coming soon)
- Part 3: 2d convolutional neural network. (coming soon)
- Coming later.
Programming Abstraction and Hardware Abstraction
I personally find it easier to have a concrete mental image when I learn something new. For GPU (Cuda) programming, it helps a lot when I finally see the connection between programming abstraction (grid, block, threads) and hardware abstraction (streaming multiprocessor, streaming processor).
Thinking the programmer’s way
The first concept in GPU programming is block. Sometimes we might hear parallel computing people talk about blocking. I think it depends on the context to know whether blocking means synchronization (as in threads synchronization), or “trying with different block sizes to increase performance” (as in telling the GPU to run with this number of blocks). To put it simply, block can be think of as a computing unit. Your GPU program (or function, or kernel) is executed by threads in a block.
The diagram above depicts the hierarchy of computation in a GPU. Although block is an intermediate concept (“smaller” than grid, “bigger” than warp), I think it is the most important. To the extent of my experience so far, one need to think how his/her kernel (program) will be executed on a block first, then the rest will come easier.
As a convention, the GPU(s) on a machine is called device(s), the machine itself (containing CPU and main memory) is called host. In a computation program, the host code handles data input, memory allocation, and invoke the device code. The execution of device code is called kernel launch, where a kernel is a “small” function that can be mapped onto the GPU and executed in parallel.
A basic kernel in CUDA starts with the keyword __global__
, meaning the
function is available for both host and device.
/* Define a kernel */
__global__ void cudaAddVectors(float *a, float *b, float *c) {
unsigned int index = blockIdx.x * blockDim.x + threadIdx.x;
c[index] = a[index] + b[index]
}
/* Launch a kernel */
cudaAddVectors<<<grid_dim, block_dim>>>(a_mem, b_mem, c_mem);
In the example above, the function which will be ran on GPU is cudaAddVectors
.
Each function (kernel) is assigned to a thread (within a block), we
have built-in variables to uniquely identify the threads, some of them are:
threadIdx
, blockIdx
, and blockDim
. threadIdx
is a unique thread
identifier within a block. blockIdx
is a unique block identifier with in a
grid. blockDim
is the number of threads defined in a block, this number is
defined in the second parameter of kernel launch (in <<< >>>
). Programmer uses
these unique identifier to map the computation to the input array. In the
example above, each thread is mapped to one array element in each array input.
The figure below demonstrate the mapping:
-------------------------------------------------------------
Mem. Index | 0| 1| 2| 3| 4| 5| 6| 7| 8| 9|10|11|12|13|14|15|16|17|18|19|
-------------------------------------------------------------
-------------------------------------------------------------
ThreadIdx.x | 0| 1| 2| 3| 4| 0| 1| 2| 3| 4| 0| 1| 2| 3| 4| 0| 1| 2| 3| 4|
-------------------------------------------------------------
blockDim = 5
---------------+--------------+--------------+---------------
BlockIdx.x | 0 | 1 | 2 | 3 |
---------------+--------------+--------------+---------------
It is clear from the example above that index = blockIdx.x * blockDim.x +
threadIdx.x
. Since we define blockDim=5
, each block has 5 threads. The .x
is the x axis of each variable. In CUDA, every computation unit is up to
3D-index. Behind the scene, everything is 1D. However, sometimes it is more
convenient to have 2D or 3D indexing depending on the application. In the code
snippet above, a kernel call is parameterized with two integers: grid_dim
and
block_dim
. grid_dim
is the number of blocks, while block_dim
is the number
of threads per block. All these are in .x
axis. To explicitly specify
gridDim
and blockDim
, we can use the provided dim3
datatype:
dim3 blockSize(64, 16); // C++ syntax to create block of shape (64,16,1)
dim3 gridSize = {64,64,1}; // C syntax to create grid of shape (64,64,1)
cudaAddVectors<<<gridSize, blockSize>>>(a_mem, b_mem, c_mem);
/* Kernel cudaAddVectors will be mapped to a grid containing 64 blocks
* on x axis and y axis (64^2 blocks in total). Each of these blocks has
* 64 threads on x axis and 16 threads on y axis.
*/
Note: The parameter of kernel launch will be addressed in later post. For now, we only need to know the first 2 specify number of blocks (gridSize) and number of threads per block (blockSize). The other two parameters specify the size of shared memory per block and the associated stream. More detail can be found in the CUDA documentation.
In summary, we have a few keywords in this section:
-
block
: The basic computing unit containing threads that executekernels
. -
kernel
: The function that will be run in parallel on GPU. -
device
: Usually refers to the GPU and code runs on GPU. -
host
: Usually refers to the CPU and code runs on CPU. -
thread
: The smallest computing unit. Organized as groups of 32 in a block. -
grid
: The computing unit contains blocks.
Thinking the “hard” way
As a tech savvy, I enjoy looking at the specification of a new graphic card:
Nvidia GeForce GTX 1080 Ti:
– Graphics Processing Clusters: 6
– Streaming Multiprocessors: 28
– CUDA Cores (single precision): 3584
– Texture Units: 224
– ROP Units: 88
– Base Clock: 1480 MHz
– Boost Clock: 1582 MHz
– Memory Clock: 5505 MHz
– Memory Data Rate: 11 Gbps
– L2 Cache Size: 2816K
– Total Video Memory: 11264MB GDDR5X
– Memory Interface: 352-bit
– Total Memory Bandwidth: 484 GB/s
– Texture Rate (Bilinear): 331.5 GigaTexels/sec
– Fabrication Process: 16 nm
– Transistor Count: 12 Billion
– Connectors: 3 x DisplayPort, 1 x HDMI
– Form Factor: Dual Slot
– Power Connectors: One 6-pin, One 8-pin
– Recommended Power Supply: 600 Watts
– Thermal Design Power (TDP): 250 Watts
– Thermal Threshold: 91° C
The specs above belongs to the new GTX 1080 Ti. It has 28 Streaming Multiprocessors (SM). Each streaming multiprocessor has 128 CUDA cores, making total of 3584 cores on the device. In the programming abstraction, we think in blocks, here, we think in Streaming Multiprocessors. Behind the scene, the computation for each block is mapped to a SM. These processor can be think of as a less complex CPU that can schedule and dispatch multiple threads at one.
About memory, GTX 1080 Ti has a whooping 11GB of global memory (they release it right after our lab’s order for Titan X 12GB ). Global memory, as it name, can be accessed by all streaming multiprocessors (hence, all blocks when we think in software abstraction). It is very much like RAM in normal computer. This memory is the slowest memory in a GPU.
Faster memory compared to global memory is Cache (L1 and L2), shared memory, local memory, and register. Register is extremely fast (few nanosecond access time). 32 or 64 32-bit registers are available to a thread. L1 and shared memory are built with the same hardware. Their sizes are configurable. In GTX 1080 Ti, shared memory has maximum size of 96KB. Shared memory management is one of the optimization methods. Local memory is extra storage for registers, L2 is a cache for global and local memory (I do not know in further detail about these type of memory).
Knowing the hardware architecture is always helpful for programmer.
Compilation Notes
I find studying an example Makefile is the best way to learn compilation for a new framework.
# Link all runtime (rt) libraries (cudart)
LD_FLAGS = -lrt
# CUDA code generation floags
GENCODE_FLAGS := -gencode arch=compute_20,code=sm20 # Compute capacity 2.0
# CUDA paths
CUDA_PATH = /usr/local/cuda
# CUDA headers
CUDA_INC_PATH := $(CUDA_PATH)/include
# CUDA tools binary (e.g. nvcc compiler)
CUDA_BIN_PATH := $(CUDA_PATH)/bin
# CUDA libraries .so files
CUDA_LIB_PATH := $(CUDA_PATH)/libraries
# C++ compiler
CC = /usr/bin/g++
# CUDA compiler
NVCC = $(CUDA_BIN_PATH)/nvcc
# For 64-bit operating system
NVCCFLAGS := -m64
# Grouping of targets
TARGET = save_the_world
all: $(TARGET)
save_the_world: save_the_world_host.cpp utils.cpp save_world.o
$(CC) $^ -o $@ -O3 $(LDFLAGS) -Wall -I$(CUDA_INC_PATH)
save_world.o: save_world.cu
$(NVCC) $(NVCCFLAGS) -O3 $(GENCODE_FLAGS) -I$(CUDA_INC_PATH) -o $@ -c $<
# $^ - All dependencies
# $@ - Name of the target
# $< - First dependency
Cuda requirements
Installing CUDA framework is quite simple. The following code install CUDA-8.0. Note that we need to have nvidia driver installed before installing CUDA.
sudo apt-get update && sudo apt-get install wget -y --no-install-recommends
wget "http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.61-1_amd64.deb"
sudo dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda
Example
There are some examples to conclude this note.
Element-wise Array Operations
Elements.
1D Convolution
Sounds.


Welcome to Coffee Shop
*
Email
Drink
Size
Small
Regular
Large
Amount
₹
Place Order
Clear Status
Order Accepted
Order Ready


[1] Michael Adams and R. Kent Dybvig. Efficient nondestructive equality checking for trees and graphs. In Proceedings of the 13th ACM SIGPLAN International Conference on Functional Programming, 179-188, September 2008.
[2] J. Michael Ashley and R. Kent Dybvig. An efficient implementation of multiple return values in Scheme. In Proceedings of the 1994 ACM Conference on Lisp and Functional Programming, 140-149, June 1994.
[3] Carl Bruggeman, Oscar Waddell, and R. Kent Dybvig. Representing control in the presence of one-shot continuations. In Proceedings of the SIGPLAN '96 Conference on Programming Language Design and Implementation, 99-107, May 1996.
[4] Robert G. Burger and R. Kent Dybvig. Printing floating-point numbers quickly and accurately. In Proceedings of the SIGPLAN '96 Conference on Programming Language Design and Implementation, 108-116, May 1996.
[5] Robert G. Burger and R. Kent Dybvig. An infrastructure for profile-driven dynamic recompilation. In Proceedings of the IEEE Computer Society 1998 International Conference on Computer Languages, 240-251, May 1998.
[6] Robert G. Burger, Oscar Waddell, and R. Kent Dybvig. Register allocation using lazy saves, eager restores, and greedy shuffling. In Proceedings of the ACM SIGPLAN '95 Conference on Programming Language Design and Implementation, 130-138, June 1995.
[7] R. Kent Dybvig. Three Implementation Models for Scheme. PhD thesis, University of North Carolina, Chapel Hill, April 1987.
[8] R. Kent Dybvig. Writing hygienic macros in scheme with syntax-case. Technical Report 356, Indiana Computer Science Department, June 1992.
[9] R. Kent Dybvig. The development of Chez Scheme. In Proceedings of the Eleventh ACM SIGPLAN International Conference on Functional Programming, 1-12, September 2006.
[10] R. Kent Dybvig. A Scheme for native threads. In Symposium in Honor of Mitchell Wand, August 2009. http://www.ccs.neu.edu/events/wand-symposium/.
[11] R. Kent Dybvig. The Scheme Programming Language, 4th edition. MIT Press, 2009.
[12] R. Kent Dybvig, Carl Bruggeman, and David Eby. Guardians in a generation-based garbage collector. In Proceedings of the SIGPLAN '93 Conference on Programming Language Design and Implementation, 207-216, June 1993.
[13] R. Kent Dybvig, David Eby, and Carl Bruggeman. Don't stop the BiBOP: Flexible and efficient storage management for dynamically-typed languages. Technical Report 400, Indiana Computer Science Department, March 1994.
[14] R. Kent Dybvig, Daniel P. Friedman, and Christopher T. Haynes.  Lisp and Symbolic Computation, 1(1):53-75, 1988.
[15] R. Kent Dybvig and Robert Hieb. Engines from continuations. Computer Languages, 14(2):109-123, 1989.
[16] R. Kent Dybvig and Robert Hieb. A new approach to procedures with variable arity. Lisp and Symbolic Computation, 3(3):229-244, September 1990.
[17] R. Kent Dybvig, Robert Hieb, and Carl Bruggeman. Syntactic abstraction in Scheme. Lisp and Symbolic Computation, 5(4):295-326, 1993.
[18] R. Kent Dybvig, Robert Hieb, and Tom Butler. Destination-driven code generation. Technical Report 302, Indiana Computer Science Department, February 1990.
[19] Abdulaziz Ghuloum. Implicit phasing for library dependencies. PhD thesis, Indiana University, Indianapolis, IN, USA, 2008. Adviser-Dybvig, R. Kent.
[20] Abdulaziz Ghuloum and R. Kent Dybvig. Generation-friendly eq hash tables. In 2007 Workshop on Scheme and Functional Programming, 27-35, 2007. http://sfp2007.ift.ulaval.ca/programme.html.
[21] Abdulaziz Ghuloum and R. Kent Dybvig. Implicit phasing for R6RS libraries. In Proceedings of the 12th ACM SIGPLAN International Conference on Functional Programming, 303-314, 2007. http://doi.acm.org/10.1145/1291220.1291197.
[22] Abdulaziz Ghuloum and R. Kent Dybvig. Fixing letrec (reloaded). In 2009 Workshop on Scheme and Functional Programming, August 2009. http://www.schemeworkshop.org/2009/.
[23] Christopher T. Haynes and Daniel P. Friedman. Abstracting timed preemption with engines. Computer Languages, 12(2):109-121, 1987.
[24] Robert Hieb, R. Kent Dybvig, and Carl Bruggeman. Representing control in the presence of first-class continuations. In Proceedings of the SIGPLAN '90 Conference on Programming Language Design and Implementation, 66-77, June 1990.
[25] IEEE Computer Society. IEEE Standard for the Scheme Programming Language, May 1991. IEEE Std 1178-1990.
[26] Eugene Kohlbecker. Syntactic Extensions in the Programming Language Lisp. PhD thesis, Indiana University, Bloomington, August 1986.
[27] Michael Sperber, R. Kent Dybvig, Matthew Flatt, and Anton van Straaten (eds.). Revised6 report on the algorithmic language Scheme, September 2007. http://www.r6rs.org/.
[28] Michael Sperber, R. Kent Dybvig, Matthew Flatt, and Anton van Straaten (eds.). Revised6 report on the algorithmic language Scheme---non-normative appendices, September 2007. http://www.r6rs.org/.
[29] Guy L. Steele Jr. Common Lisp, the Language, second edition. Digital Press, 1990.
[30] Oscar Waddell and R. Kent Dybvig. Fast and effective procedure inlining. In Fourth International Symposium on Static Analysis, volume 1302 of Springer-Verlag Lecture Notes in Computer Science, 35-52. Springer-Verlag, 1997.
[31] Oscar Waddell and R. Kent Dybvig. Extending the scope of syntactic abstraction. In Conference Record of the 26th Annual ACM Symposium on Principles of Programming Languages, 203-213, January 1999.
[32] Oscar Waddell, Dipanwita Sarkar, and R. Kent Dybvig. Fixing letrec: A faithful yet efficient implementation of Scheme's recursive binding construct. Higher-order and and symbolic computation, 18(3/4):299-326, 2005.
Chez Scheme Version 9 User's Guide
Copyright © 2016 Cisco Systems, Inc.
Licensed under the Apache License Version 2.0
(full copyright notice.).
Revised June 2016 for Chez Scheme Version 9.4
about this book


Contact (1997)
A movie review by Michael J. Legeros Copyright 1997 by Michael J. Legeros
(WB) Directed by Robert Zemeckis Written by James V. Hart and Michael Goldenberg, based on a story by Carl Sagan and Ann Druyan, based on the novel by Carl Sagan Cast Jodie Foster, Matthew McConaughey, James Woods, Tom Skerritt, William Fichtner, Angela Bassett, John Hurt, Rob Lowe, David Morse, Jena Malone MPAA Rating "PG-13" Running Time 150 minutes Reviewed at The Imperial, Cary, NC (05JUL97)
==
Reliable Robert Zemeckis (FORREST GUMP) directs this glossy, easy- to-follow adaptation of Carl Sagan's science-fiction novel, about a radio astronomer (Jodie Foster) who intercepts the first intergalactic e-mail addressed to the planet Earth, and then finds herself at the center of controversies political, religious, and scientific. (As the trailer so kindly gives away, the alien-o-gram contains a blueprint for a transport device. And you can guess who has a First Class ticket.) Closer to a character study than an epic sci-fi flick, CONTACT has a little of something for everyone. There's action, with people running around a small lab, shouting technical terms and excitedly staring at computer screens. (Who knew that radio astronomy involved so much adrenaline?) There's romance, involving a hunky religious scholar (Matthew McConaughey). There's intrigue (of the White House variety), some real suspense (how about those countdown sequences!), a couple of science lessons (hey, you learn about prime numbers *and* Occam's Razor!), a surface-level discussion of faith versus proof, and, even, the occasional hint of hilarity. (Check out the lunatic fringe that sets up camp outside Cape Canaveral. I spotted an Elvis impersonator.)
And there's so much more: great photography, exceptional effects, a ready-made supporting cast (James Woods acting antagonistic, Angela Bassett being stern, etc.), loads of convenient dramatic invention (look, there's someone on the gantry who shouldn't be there!), and cameos by, I believe, CNN's entire on-air staff. Everything fits together exactly as it should and, at times, almost painfully perfunctorily so. (Is this the most exciting boring movie of the summer? Or does that distinction belong to FACE/OFF?) Yup, everything fits together very nice and neat, except for the ending, which, depending upon your sensibilities, is either a major or minor botch. (I found it as distracting as Foster's narration during her magic carpet ride.) When all is said and done, no one in the film, including Foster's seemingly smart cookie, thinks to ask the obvious and most logically scientific response to the hubbub: "repeat the damn experiment and see if you get the same results." Sigh. Well, if nothing else, CONTACT is a summer movie that (a.) makes you think and (b.) makes you think about the scientific method and, hell, that's more brain power than you've probably used in the last six weeks. And you *do* get to see stellar sights, such as the sculpted profiles of McConaughey and Foster, when they turn away from the camera to kiss. Have you ever seen such perfect noses?
Grade: B
- Mike Legeros - Movie Hell http://www.nonvirtual.com/hell/
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


--- layout: post esbma_id: 1139 title: Product Pricing Primer date: 2004-08-10 21:59:30 ---
Hello world. I've been on vacation for the last week or so. I've got bunches of emails awaiting my response.
Sometime while I was gone, the folks at MSDN published my latest article. Enjoy!
By the way, I am now mirroring all my Business of Software articles from MSDN here on my weblog. I'll publish "Product Pricing Primer" there as soon as I get a chance.


k-means clustering is a method of vector quantization, originally from signal processing, that aims to partition n observations into k clusters in which each observation belongs to the cluster with the nearest mean, serving as a prototype
of the cluster.
Data Poinst--These can be added on mouse click on the canvas,randomly with the quantity specified.
Centrois--These can be added on mouse click on the canvas,randomly with the quantity specified.(max limit being 10)
Algorithm--Here on clicking the RUN buttont the algo runs and classifies the data points into of the classes and CENTROID-POSITIOM when clicked modifies the poisition of the centre.
Two-dimensional visualization of k-means clustering algorithm


{{site.user_description}}
Our in house team of experienced designers and engineers will help you from the ground up on every aspect of design that goes in to creating a successful app.
Our software developers have thousands of hours of experience coding, creating, and refining in order to be able to turn any idea into a reality.
With a proven track record of generating hype, having high conversions, and using innovative marketing strategies, GB&J LLC will help get your app off the ground and into the market.


--- layout: blog title: Christmas 2017 — Concert tickets are now available date: 2017-11-18 09:00:00 -0600 categories: blog author: Foothills Philharmonic Society image: "/images/blog/christmas-2017-tickets-cover.jpg" redirect_from: - /christmas-2017 ---
Tickets for our Christmas 2017 concerts are now available online. Pre-purchase your tickets now!
Foothills Philharmonic Chorus with the Foothills Philharmonic Orchestra
Come enjoy Christmas works from Sweden, the Ukraine, Romania, the UK and more! This will be a wonderful evening including carol singing, and several pieces by the Foothills Philharmonic Chamber Chorus and the fabulous Foothills Philharmonic Orchestra. Don't miss out on this great evening!
Tickets:
December 15th, 7:00pm
High River United Church
December 16th, 7:00pm
Okotoks United Church
Foothills Philharmonic Vocal Jazz Ensembles
The Foothills Philharmonic Vocal Jazz Ensembles will be joining the Foothills Men’s Chorus at their Christmas Concert.
NOTE: The date for this concert has been changed to Saturday the 9th.
Tickets:
December 9th, 7:00pm
Okotoks Alliance Church


2 writes to _dontUseScopeCommandOrigin
System.Management.Automation (2)
engine\ScriptCommandProcessor.cs (2)
23
this.
_dontUseScopeCommandOrigin
= false;
36
this.
_dontUseScopeCommandOrigin
= true;
1 reference to _dontUseScopeCommandOrigin
System.Management.Automation (1)
engine\ScriptCommandProcessor.cs (1)
482
this.
_dontUseScopeCommandOrigin
? CommandOrigin.Internal : this.Command.CommandOrigin;


Grids / CheckBox in Column Header
In this sample, first column header contains a checkbox, and the footer of second column use a custom template to show the number of checked rows. When checkbox in column header is clicked, it will change the value of all checkboxes in column cells. In addition, the footer of second column displays how many rows are checked.
The template is created in code, using custom CSS styles and HTML elements, and then applied to the column by using the following field:
- headerTemplate - holds a reference to a custom template used to replace the default header with custom HTML elements
- footerTemplate - holds a reference to a custom template used to replace the default footer with custom HTML elements
There is no limit on what kind of template that you can create. Any combination of HTML elements is acceptable, along with custom events.
This offline sample may not work using Chrome browser. You can try using any other browser: FireFox, IE, Opera, Safari. This happens due to restrictions of Chrome when loading templates locally. The online version of this sample works without problems.


Styling Options
You can change the whole color palette used. Modify main.css and bootstrap.css to create you own palette.
Theme Color Palette
- #1f1f1f (Background Color)
- #3d3d3d (Dash-unit and half-unit Section)
- #262626 (Footer)
- #fa1d2d (Red - Used in selectors, parragraphs, bars and other)
- #b2c831 (Green - Used in titles, badges, bars and other)
- #bdbdbd & #fff (Font colors)
Google fonts
Blocks uses Open Sans font and Raleway in all the theme. If you want to change this value, you have to replace all the references in the main.css file and in the html pages.
In Google Fonts website you can find the code to paste in the theme. Choose the desired font, click in the "Quick Use" link and copy & paste the code.


The purpose of EVX is to provide an alternative class specifically targeted towards production electric powered vehicles. This ruleset draws from Street and Street Touring with the intention of choosing commonsense allowances to balance streetability and autocross preparation. Example: In many cases cars come from the factory with narrow wheels to improve real-world range. Wider wheels/tires will diminish range slightly, but still work well for street use while improving autocross performance.
Wheels may be replaced with wheels of any diameter and width. Replacement wheel material must be metal.
No changes are permitted to electronic management systems or their programming. Batteries, the computers and/or hardware controlling battery systems, and all mechanical drivetrain components must remain stock. Including but not limited to electric motors, transmissions, differentials, battery packs, powertrain control modules/computers and sensors, etc.


Qué es Versicolor ?


title: Androidify link: http://www.flamelily.co.uk/2011/02/androidify/ author: admin description: post_id: 193 created: 2011/02/17 08:13:05 created_gmt: 2011/02/17 08:13:05 comment_status: open post_name: androidify status: publish post_type: post
The new app by google for Android phones called Androidify is very clever and slick. Give it a try…


arrow_back
Ripple
Bounded
Interact with me!
Unbounded
favorite
Theme Styles
Primary
Secondary
Applied to
<button>
element
button


You'll need to enter your bit.ly username and API key here. You can get the API key from http://bit.ly/a/your_api_key.


EDtv Rated: PG-13 (for profanity and sexuality) Review by Fox Davidson
I have heard numerous speculations of the new Ron Howard movie, EDtv, as a copycat of last year's overrated The Truman Show. Well, having seen EDtv, I can safely say, it is in no way at all like Truman. EDtv is funnier and more fun to watch the cast of talents, including Matthew McConaughy, Jenna Elfman, Martin Landau, and Ellen DeGeneres.
McConaughy stars as 31-year-old Ed Pukerny, a video store clerk whose life is suddenly shot into fame when he is "cast" in his own 24 hour, seven days a week television show called "ED-TV." This is the brain-child (I hate that word, but, oh well) of a TV production company producer (DeGeneres), whose studio has suffered from lackluster ratings. "The all-Garden channel is beating us. People would rather watch soil" she says.
After a couple of days of ED-TV, Ed becomes a national star, somewhat of a real star: Being trashed in the tabloids and savaged by media news critics (one played by Michael Moore, as, himself I think). But, ED-TV also becomes a target for his friends who don't particularly like being filmed 24-7. Especially Ed's brother's (the always great Woody Harrelson) fiancee, Shari (Elfman). And things get really stinky when Ed and Shari fall in love, unintentionally displaying this to their millions of fans, and Ed's family.
EDtv is somewhat more believable than Truman Show. Not that it is likely we will be seeing a real life Ed Pekurny soon. But, I can definitely see that happening faster that Truman's elaborate premise. Look at The Real World, however bad it is, it is still basically the same thing. Truman was a fairly involving movie, but, not wholely satisfying. EDtv is very satisfying and hilarious.
Howard, who also directed the funny Splash, has made a very well-done comedy. It could also be looked as a satire on TV producers.
Film: ****
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


Fractal solution in 2 dimensions
This demonstrates the interpretation of pumping test with the Delay (2004) solution
MIT License Copyright (c) 2017 Philippe Renard - University of Neuchâtel (CHYN)
The data set for this example comes from the following reference: Problem data provided by Fred Delay (2006)
Let us first load the data and plot them.
[t,s]=ldf('del_ds1.dat');
| HYTOOL Demo |
We then define the values of the parameters that are required for the interpretation:
q=0.017916; % Pumping rate in m3/s r=70.75; % Radial distance in m
Once the data have been loaded and the parameter defined, we can interpret the data. We do that as usually in two steps. First the parameters p of the model are estimated with the diagnostic plot. Then we find an optimum fit.
p=fit('del',[0.1,1e2,0.2,0.02],t,s);
HYTOOL WARNING : Due to the large number of data, the non linear fit function may be very slow. To avoid such inconvenience hytool has resampled the signal to keep only 150 points. If you want to force hytool to use all the data, please use the following syntax: p=fit('model',t,s,'all') WARNING: hysampling - the number of selected values is smaller than requested because there is not enough data points to sample regularly the signal. Norm of Norm of Iteration SSE Gradient Step ----------------------------------------------------------- 0 0.350328 1 0.184561 46.7324 22.701 2 0.158071 4.83985 7.02999 3 0.141102 4.83679 6.02029 4 0.126489 4.57217 5.14569 5 0.113835 4.38177 4.46386 6 0.102814 4.19681 3.90051 7 0.0931642 4.0158 3.42951 8 0.0846753 3.83978 3.03246 9 0.0771748 3.6697 2.69531 10 0.070521 3.50617 2.40711 11 0.0645962 3.34953 2.15924 12 0.0593027 3.19992 1.94484 13 0.054558 3.05734 1.7584 14 0.0502927 2.92166 1.59548 15 0.0464479 2.7927 1.45246 16 0.0429731 2.67023 1.32635 17 0.0398252 2.55399 1.21471 18 0.0373461 86.4984 8.41611 19 0.0133369 20.9057 3.48493 20 0.00855367 19.6122 2.34946 21 0.00566598 12.271 1.53613 22 0.00410802 8.00699 1.06654 23 0.00321263 5.20336 0.765492 24 0.00268107 3.39605 0.564119 25 0.00235743 2.22799 0.424204 26 0.00215669 1.47026 0.324041 27 0.00203046 12.5361 0.905538 28 0.00180654 1.4609 0.298963 29 0.00180384 0.00191044 0.0129739 30 0.00180384 8.68384e-07 0.000291301 31 0.00180384 9.13437e-07 2.06341e-16 Iterations terminated: relative norm of the current step is less than OPTIONS.TolX Warning: The Jacobian at the solution is ill-conditioned, and some model parameters may not be estimated well (they are not identifiable). Use caution in making predictions.
We can then display the result of the interpretation. Hytool find that the folowing values fort the transmissivity and storativity:
T = 7.5e-2 m2/s and S = 5.7e-4
figure (2) del_rpt(p,t,s,[0.017916,70.75],'Delay example - automatic fit') figure(3) del_rpt([0.044,1.7e1,0.25459,0.025459],t,s,[q,r], 'Delay example - manual fit')
The results are in reasonable agreement with the values found by Fred Delay (personal communication): T0 = 7.97 e-2 m2/s S0 = 4.89 e-4 alpha = 0.2546 gamma = 0.02546
We then find that the fits are rather similar and both acceptable.


{% extends "__ecBase.html" %} {% load staticfiles %} {% load thumbnail %} {% load crispy_forms_tags %} {% block container %}
A crew of experienced educators helm our vast and growing library. Hareness their experties, and get the
same award-wnining learning materials that are used by teachers in millions of classrooms.


Psalm 48
A song; a psalm of the sons of Korah.
1 Great is Yahweh and greatly to be praised,
in the city of our God on his holy mountain.
2 Beautiful in elevation, the joy of the whole earth,
is Mount Zion, on the sides of the north,
the city of the great King.
3 God has made himself known in her palaces as a refuge.
4 For, see, the kings assembled themselves;
they passed by together.
5 They saw it, then they were amazed;
they were dismayed, and they hurried away.
6 Trembling took hold of them there,
pain as when a woman is in labor.
7 With the east wind
you break the ships of Tarshish.
8 As we have heard, so have we seen
in the city of Yahweh of hosts, in the city of our God;
God will establish it forever.
Selah
9 We have thought about your covenant faithfulness, God,
in the middle of your temple.
10 As your name is, God,
so is your praise to the ends of the earth;
your right hand is full of righteousness.
11 Let Mount Zion be glad,
let the daughters of Judah rejoice
because of your righteous decrees.
12 Walk around Mount Zion, go round about her;
count her towers,
13 notice well her walls,
and look at her palaces
so that you may tell it to the next generation.
14 For this God is our God forever and ever;
he will be our guide to death.


Class WxRobot_Admin_Menu_Records
WxRobot_Admin_Menu_Records 通信记录
public
|
|
public
|
|
public
|
|
public
string
|
|
public
|
WxRobot_Admin_Menu_Records 通信记录
public
|
|
public
|
|
public
|
|
public
string
|
|
public
|


The Stream
Overview
Even if the API is the front-facing block of code in the Rx-player, the Stream is the part of the code actually starting the logic behind playing a content.
Its code is written in the src/core/stream
directory. More specifically,
all code needed in the rest of the code should be exported by its “index file”
src/core/stream/index.ts
.
Every time you’re calling the API to load a new video, the Stream function is called by it with a handful of arguments.
The Stream does then the major part of the job and communicate back its progress to the API through events.
+-----------+
1. LOAD VIDEO | | 2. CALLS
---------------> | API | -------------------+
| | |
+-----------+ |
^ v
| +--------------+
| 3. EMIT EVENTS | |
+------------------- | STREAM |
| |
+--------------+
Basically, the job of the Stream is to:
-
initialize the content (creating the MediaSource, downloading the manifest)
-
Connect most core parts of the player together, such as adaptive streaming management, segment pipelines, DRMs, speed management…
-
Call with the right argument the PeriodBufferManager, which will download and push segment to be decoded by the browser.
As such, during the various events happening on content playback, the Stream will create / destroy / update various player blocks. Such example of blocks are:
-
Adaptive streaming management
-
DRM management
-
Manifest loading, parsing and refreshing
-
Buffer management
-
…
Usage
Concretely, the Stream is a function which returns an Observable. This Observable:
-
will automatically load the described content on subscription
-
will automatically stop and clean-up infos related to the content on unsubscription
-
communicate on various streaming events through emitted notifications
-
throw in the case of a fatal error (i.e. an error interrupting playback)
Communication between the API and the Stream
Objects emitted by the Observable is the only way the Stream should be able to communicate with the API.
The API is then able to communicate back to the Stream, either:
-
by Observable provided by the API as arguments when the Stream function was called
-
by emitting through Subject provided by the Stream, as a payload of one of its event
Thus, there is three ways the API and Stream can communicate:
-
API -> Stream: When the Stream function is called (so a single time)
-
Stream -> API: Through events emitted by the returned Observable
-
API -> Stream: Through Observables/Subjects the Stream is in possession of.
Emitted Events
Events allows the Stream to reports milestones of the content playback, such as when the content is ready to play.
It’s also a way for the Stream to communicate informations about the content and give some controls to the user.
For example, as available audio languages are only known after the manifest has been downloaded and parsed, and as it is most of all a user preference, the Stream can emit to the API RxJS Subjects allowing the API to “choose” at any time the wanted language.
The SpeedManager
The SpeedManager is the part of the Stream updating the playback speed of the content.
Playback speed can be updated on two occasions:
-
the API set a new Speed (
speed$
Observable). -
the content needs to build its buffer.
In which case, the playback speed will be set to 0 (paused) even if the API set another speed. The regular speed will be set when enough buffer is available.
The StallingManager
The StallingManager listens to various browser events and properties to detect when the player is “stalled” (i.e. stuck on the current position).
It then try to adopt a strategy to easily get out of this situation if it can.


Hi!
My name is Andrew and I'm an avid learner studing statistics, machine learning,
and computer science at Carnegie Mellon University.
I'm always looking to expand my network
of likeminded and intellectually ambitious individuals, so feel free to connect with me
on any of my socials!


It might be simple, but you won't be able to stop playing!
No arbitrary limits. No distractions.
Play Pong wherever you go on all mobile platforms.


https://github.com/GoFetchAD/GoFetch
GoFetch is a tool to automatically exercise an attack plan generated by the BloodHound application.
GoFetch first loads a path of local admin users and computers generated by BloodHound and converts it to its own attack plan format. Once the attack plan is ready, GoFetch advances towards the destination according to plan step by step, by successively applying remote code execution techniques and compromising credentials with Mimikatz.


|
Significant Changes in TinyOS between v0.6 and 1.0b
Last updated 23 August 2002 |
This document outlines the major changes that have occured in TinyOS since the last release (0.6.1) and the current release (1.0 beta). These changes include the use of a new language, an improved networking stack, greatly increased documentation, and the inclusion of several large systems. There are many small changes (bug fixes, etc.), but the following describes these major changes which every user should be aware of.
TinyOS components used to be written in a highly decorated version of C, using preprocessor macros; TinyOS 1.0b uses a new C-like language, nesC (network-embedded-systems-C). The 1.0b release includes the nesC compiler (ncc) as well as a language reference and language transition help documents.
nesC has several advantages to older TinyOS code, such as interfaces, wire error detection, automatic document generation, and facilitation of significant code optimizations over previous TinyOS builds. One of its major goals is to make TinyOS code cleaner, easier to understand, and easier to write.
The TinyOS tutorials now provide an introduction to nesC and its syntactic constructions.
The 40Kb mica networking stack has several added
features. These include data-link level synchronous
acknowledgements, variable length packets, and a rough estimate of
network activity. An in-depth description of the workings of the
stack is provided in the documentation directory /doc.
The modified TOS_Msg
structure is as follows:
typedef struct TOS_Msg {
uint16_t addr;
uint8_t type;
uint8_t group;
uint8_t length;
int8_t data[TOSH_DATA_LENGTH];
uint16_t crc;
uint16_t strength;
uint8_t ack;
uint16_t time;
} TOS_Msg;
The message send interface has also changed to include a length parameter, which specifies how much data is in the data field.
The networking stack does not forward CRC values for packets. Instead, the crc field is set to 0 or 1 to denote whether the packet passed the check; the default networking stack discards all packets that fail CRC checks.
The ack
field is only meaningful on packet
sends. If the field is 1, then the mote received an explicit
link-level acknowledgement from a receiver. In the case of
broadcast messages, ack will be set to 1 if one or more
motes received the message. These acknowledgements are synchronous
and take roughly the same amount of time as transmitting one
byte.
ncc
, the nesC compiler, can automatically generate
documentation for TinyOS components. Typing make
<platform> docs
in an application directory will
build HTML docs for each component and interface (as well as build
the application). These documents are placed in
doc/nesdoc
and the top-level application document is
symlinked in the application directory.
TinyOS 1.0b includes two large systems as examples of complex
TinyOS applications. The first, Bombilla, is a bytecode
interpreter for simple application programming. The second,
TinyDB, is a tiny database engine for routing queries to and data
from a network. Both have PC tools. Bombilla has tools for writing
and injecting assembly-style programs, while TinyDB has tools for
writing SQL-like queries and displaying the results. Documentation
for both systems exists in the doc/
directory.


{# Set the title of the page #} {% set page_title = "Home" %} {% include "templates/header.html" %} Welcome Paragraph Design Principles: TBC Development Principles TBC {% include "templates/footer.html" %}
Paragraph
TBC


Rexster is configured through an XML configuration file with overriding command line options. Configuration for Rexster consists of options for server settings, like port assignments, and the list of available graphs served by Rexster with their allowed Extensions.
By default, Rexster will first try to read rexster.xml
from the root of the working directory. If it cannot be found there, it will load the rexster.xml
sample as a resource. To use a file other than those two, simply specify the file with -c
on the Command Line at start:
rexster.sh -s -c my-rexster.xml
The source of many problems with starting Rexster can be traced to Rexster referencing the incorrect rexster.xml file. When Rexster starts, it outputs the path of the @rexster.xml
file that it is using:
[INFO] RexsterSettings - Using [/home/rexster/rexster.xml] resource as configuration source.
The XML configuration file has a basic structure as follows:
<?xml version="1.0" encoding="UTF-8"?>
<rexster>
<http>
<server-port>8182</server-port>
<server-host><IP_ADDRESS></server-host>
<base-uri>http://localhost</base-uri>
<web-root>public</web-root>
<character-set>UTF-8</character-set>
<enable-jmx>false</enable-jmx>
<enable-doghouse>true</enable-doghouse>
<max-post-size>2097152</max-post-size>
<max-header-size>8192</max-header-size>
<upload-timeout-millis>30000</upload-timeout-millis>
<thread-pool>
<worker>
<core-size>8</core-size>
<max-size>8</max-size>
</worker>
<kernal>
<core-size>4</core-size>
<max-size>4</max-size>
</kernal>
</thread-pool>
<io-strategy>leader-follower</io-strategy>
</http>
<rexpro>
<server-port>8184</server-port>
<server-host><IP_ADDRESS></server-host>
<session-max-idle>1790000</session-max-idle>
<session-check-interval>3000000</session-check-interval>
<enable-jmx>false</enable-jmx>
<thread-pool>
<worker>
<core-size>8</core-size>
<max-size>8</max-size>
</worker>
<kernal>
<core-size>4</core-size>
<max-size>4</max-size>
</kernal>
</thread-pool>
<io-strategy>leader-follower</io-strategy>
</rexpro>
<shutdown-port>8183</shutdown-port>
<shutdown-host><IP_ADDRESS></shutdown-host>
<script-engine-reset-threshold>500</script-engine-reset-threshold>
<script-engine-init>init.groovy</script-engine-init>
<script-engines>gremlin-groovy</script-engines>
<security>
<authentication>
<type>default</type>
<configuration>
<users>
<user>
<username>rexster</username>
<password>rexster</password>
</user>
</users>
</configuration>
</authentication>
</security>
<graphs>
<graph>
<graph-name>gratefulgraph</graph-name>
<graph-type>com.tinkerpop.rexster.config.TinkerGraphGraphConfiguration</graph-type>
<graph-location>data/graph-example-2.xml</graph-location>
<graph-read-only>false</graph-read-only>
<extensions>
<allows>
<allow>tp:frames</allow>
</allows>
</extensions>
</graph>
...
</graphs>
</rexster>
The <http>
section of rexster.xml
controls REST API and Dog House configurations. The <server-port>
and <server-host>
allows configuration of the port and host on which Rexster will serve.
The <base-uri>
defines the prefix for the URI that the Dog House will use for connecting to Rexster services. If this value is not specified, it will default to http://localhost
. If this value is pointed at http://localhost
, it is important to note that the Dog House will not be accessible from browsers other than the one on the local machine. To allow browsers on remote machines to connect, consider using the IP address of the machine that Rexster is installed upon. Furthermore, in standalone mode, Rexster assumes that both servers are being served through the same base URI in the same instance of Grizzly on different ports.
The <web-root>
allows specification of the directory where the root of Dog House exists. This setting is only relevant if the <enable-doghouse>
option is set to true
. The <character-set>
configures the character set the request/response from Rexster REST services will support. If it is not specified then the Rexster will revert to ISO-8859-1. Rexster will also respect the Accept-Charset
request header and revert back to the value of <character-set>
if the header is not specified.
The <max-post-size>
controls the maximum size in bytes of the data being sent in POST operations to the REST API. The default value is about 2M.
The <max-header-size
is the maximum size in bytes of the request header that Rexster will accept. The default value is 8K.
The <upload-timeout-millis
is the number of milliseconds the REST API will accept an upload for. The default value is thirty seconds.
The <server-port>
and <server-host>
represents the port and host on which the Rexster Console communicates to the Rexster server. This port utilizes RexPro, short for Rexster Protocol, which is a binary protocol.
The <session-max-idle>
specifies the number of milliseconds that a RexPro session can stay idle before the session is destroyed. If this value is not specified, the default value of thirty minutes is used. The <session-check-interval>
specifies the number of milliseconds between session idle checks. If this value is not specified, the default value of 50 minutes is used. In both cases, neither value can be set to anything less than one second.
Some elements are common to both the <http>
and <rexpro>
sections of rexster.xml
.
The <thread-pool>
element has multiple sub-sections beneath it and allow configuration of the number of available threads in the Grizzly thread pool. The settings are defaulted to the initial values provided by Grizzly. The available settings and the meanings of those settings for the <worker>
pool and the <kernal>
pool are identical. In both cases, the <core-size>
represents the initial number of threads that will be present with the specified thread pool is created and the <max-size>
represents the maximum number threads that may be maintained by the specified thread pool.
The <io-strategy>
element offers way to configure the Grizzly threading operations. This value can be set to one of the following values:
Generally speaking, the leader-follower
strategy and the related default settings are best applicable to most usage scenarios. Please see the Grizzly User Guide) for more information on these settings.
The <enable-jmx>
element can be set to true
or false
(with the default being false
). When set to true
, Rexster will expose underlying Grizzly JMX MBeans in the com.sun.grizzly
root.
The <rexster-shutdown-port>
and <rexster-shutdown-host>
allows configuration of the port and host on which Rexster will accept shutdown requests.
The <script-engine-reset-threshold>
element defines how often the Gremlin ScriptEngine should be reset. This configuration is important when processing large numbers of ad-hoc Gremlin scripts via the Gremlin Extension. An ad-hoc script is one that is not parameterized with script variables. Such scripts can lead to an OutOfMemoryException
triggered by a bug in the Groovy script engine implementation itself (outside of the control of TinkerPop). By resetting the script engine after the configured number of requests, this problem can be bypassed. A good value to set this threshold is generally between 500 and 1000 depending on the memory that Rexster has available to it. The reset does not come without a performance penalty, so it is therefore recommended to use parameterized scripts whenever possible and to turn off the reset function by setting this value to “-1”.
The <script-engine-init>
element defines a script file that gets executed at start-up of Rexster. This script file initializes the Script Engine, allowing the creation of user-defined steps and functions to be made available. It is important to remember that these steps and functions apply across all graphs configured within Rexster. Also, Script Engine resets do not affect the steps and functions created. They are there for the life of Rexster. This element is optional.
The <script-engines>
element defines the list of Gremlin Script Engine implementations that should be available to Rexster. Rexster is only packaged with gremlin-groovy
at this time and if the element is not present, Rexster will default to this setting. This configuration element allows for a comma-separated list of Script Engine names that must correspond to the name registered to any Script Engine exposed in Rexster. Third-party Script Engine implementations for Gremlin should have their name prefixed with gremlin-
to be recognized by Rexster.
Rexster Security is managed through the <security>
element. By default it is configured to be set to none
as in:
<security>
<authentication>
<type>none</type>
</authentication>
</security>
When configured in this fashion, Rexster accepts all incoming requests. The other option for configuration is default
which requires the inclusion of the <configuration>
element, as in:
<security>
<authentication>
<type>default</type>
<configuration>
<users>
<user>
<username>rexster</username>
<password>rexster</password>
</user>
</users>
</configuration>
</authentication>
</security>
The <users>
element allows specification of one or more <user>
child elements which each must contain a <username>
and <password>
combination. These <user>
elements represent the list of users that will have access to Rexster.
The <graphs>
element will contain any number of <graph>
configurations. Each <graph>
element will equate to one graph being configured within Rexster. The exact contents of the <graph>
element is dependent upon the type of graph implementation (OrientDB, neo4j, etc.) utilized (see Specific Graph Configurations). However, some key general rules exist for all graph configurations
<graph-name>
element must be unique within the list of configured graphs.<graph-enabled>
element may be applied to any <graph>
. Setting its contents to “false” will prevent that graph from loading to Rexster. If the element is not present at all (or set explicitly to true) the graph will be loaded.<graph-type>
element is the full name of a class that implements the GraphConfiguration
interface. The GraphConfiguration
is responsible for using the properties supplied to it from the configuration file to produce a fully configured Graph
instance. This approach allows a plug-in approach to providing new support for Graph implementations without requiring access to Rexster code. Please read the configuration options specific to each graph type below for more information on the expected values for this element.<graph-read-only>
element will configure a graph so that its data cannot be modified. Set to true to enable this feature. If the element is not present graphs will default this value to false.<extensions>
element defines the Extensions to be exposed for this graph. Within <extensions>
there are two other elements: <allows>
and <extension>
.
<allows>
element defines a collection of <allow>
elements where each contains the Extensions that are to be exposed for this graph. The value of the <allow>
is an expression that consists of a namespace and extension name separated by a colon, as in namespace:extension
. Wildcards are allowed where one wishes to configure all extensions in all namespaces identified by Rexster as denoted by *:*
and where one wishes to configure all extensions within a given namespace as denoted by namespace:*
.<extension>
elements may exists within <extensions>
. The purpose of this element is to pass graph specific configuration options to the Extension. These configurations will be Extension specific so be sure to check the individual configuration options for that Extension. There are three expected elements within an <extension>
element: <namespace>
, <name>
and <configuration>
.
<namespace>
element defines the namespace of the extension to be configured.<name>
element defines the name of the extension to be configured.configuration>
contains Extension specific configuration options (refer to the specific Extension for what the contents of this element should be.Rexster uses Apache log4j for logging. By default the logger is configured by a log4j.properties deployed as a resource within Rexster. By default this file simply writes log messages to the console in which Rexster was started and only logs messages at log level INFO
. This configuration can be overridden by placing a log4net.properties
files in the root of REXSTER_HOME
as Rexster will look there first prior to loading the default.
Rexster has two logging states: standard
and debug
. These states are controlled by the inclusion or exclusion of the -d
argument to rexster.sh
. When -d
is excluded, Rexster is considered to be in standard
mode. In this mode, logging is limited to log messages exclusive to the Rexster layer of the stack. In other words, log messages from the components Rexster relies upon, such as Jersey and Grizzly, are suppressed. To surface these messages from the underlying components, Rexster must be started in debug
mode. Since these messages are funneled through log4j, these surfaced log messages are controlled by the log4jnet.properties
files. If full logging output is desired from all components and layers of Rexster, it is important to override that file and set the log level to TRACE
.