THE CORRUPTOR Cast: Chow Yun-Fat, Mark Wahlberg, Ric Young, Jon Kit Lee, Elizabeth Lindsey, Byron Mann Director: James Foley Screenplay: Robert Pucci Australian theatrical release: May 6, 1999 Reviewed by Luke Buckmaster
On the Buckmaster scale of 0 stars (bomb), to 5 stars (a masterpiece): 1 and a half stars
Off the beat, I'd say that Chow Yun Fat is a terrific actor.  His Hollywood debut, however, is another story. What led him to choose two very messy scripts - 1997's The Replacement Killers and this one - to begin his American career is a mystery to me. It's not that The Corruptor doesn't show of its lead performer, it's just that its lead performer can't show off his film. After the first ten minutes or so of The Corruptor, we get a glimpse of what it could have been - but upon its completion, it's clear that this film is a case of misused opportunities. There are a couple of well-choreographed action scenes and some unexpected twists in the plot, but severely hindering this B&B (blood and bullets) soaked caper is its scripting. Jumbled and unnecessarily complex, the screenplay never builds intrigue and seldom shows signs of getting there.
Danny Wallace (Mark Wahlberg) is a new police officer in the Chinatown Asian Gang Unit. A turf war has erupted between two powerful gangs, and corruption and double-crossing has filtered through the police force. Star detective Nick Chen (Chow Yun-Fat) reluctantly partners with Wallace, informing him that white cops are usually killed within days. Whilst Chen battles to keep the peace in Chinatown, Wallace has different intentions, and is reluctant to adhere to the tough regulations of an almost foreign police force.
Perhaps dooming The Corruptor from the start is its two protagonists - they are cliché and rather dull characters. Chow Yun-Fat has the ability to play both the good guy and the bad guy with a flick of his eyebrows, but here he doesn't get the chance to dazzle audiences or develop his character emotionally. Nick Chen is a hard-hitting, dedicated cop - we know that - but the film tries to make him more than that. The characterization of a violent but lovable man was done to perfection in 1998's Japanese film Hana-Bi, but here viewers are distanced from the film's most important character. Yun Fat is never a bad performer, but bad films bring him down. Mark Wahlberg plays a nerd cop (his role bears similarities to Guy Pearce's in L.A Confidential) unconvincingly and sheepishly.
There are few redeeming qualities in The Corruptor, a film that disappoints on more than one level. Poor scripting makes this film come in a long second best to the likes of Payback and Lock, Stock and Two Smoking Barrels, and that's disappointing since The Corruptor had more potential than both of them. Like looking at a blank page in an otherwise fascinating book, this film doesn't match the high standards of either Hong Kong or Hollywood films - in fact, it arrives well below par on both accounts.
Read more of my reviews at In Film Australia http://infilmau.iah.net
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


public interface SchedulerListener
Scheduler
events.Scheduler
,
JobListener
,
TriggerListener
| Modifier and Type | Method and Description |
|---|---|
void |
jobAdded(JobDetail jobDetail)
|
void |
jobDeleted(JobKey jobKey)
|
void |
jobPaused(JobKey jobKey)
|
void |
jobResumed(JobKey jobKey)
|
void |
jobScheduled(Trigger trigger)
|
void |
jobsPaused(String jobGroup)
|
void |
jobsResumed(String jobGroup)
|
void |
jobUnscheduled(TriggerKey triggerKey)
|
void |
schedulerError(String msg,
SchedulerException cause)
Called by the
when a serious error has
occurred within the scheduler - such as repeated failures in the JobStore ,
or the inability to instantiate a Job instance when its
Trigger has fired. |
void |
schedulerInStandbyMode()
Called by the
to inform the listener
that it has move to standby mode. |
void |
schedulerShutdown()
Called by the
to inform the listener
that it has shutdown. |
void |
schedulerShuttingdown()
Called by the
to inform the listener
that it has begun the shutdown sequence. |
void |
schedulerStarted()
Called by the
to inform the listener
that it has started. |
void |
schedulerStarting()
Called by the
to inform the listener
that it is starting. |
void |
schedulingDataCleared()
Called by the
to inform the listener
that all jobs, triggers and calendars were deleted. |
void |
triggerFinalized(Trigger trigger)
|
void |
triggerPaused(TriggerKey triggerKey)
|
void |
triggerResumed(TriggerKey triggerKey)
|
void |
triggersPaused(String triggerGroup)
|
void |
triggersResumed(String triggerGroup)
|
void jobScheduled(Trigger trigger)
void jobUnscheduled(TriggerKey triggerKey)
schedulingDataCleared()
void triggerFinalized(Trigger trigger)
void triggerPaused(TriggerKey triggerKey)
void triggersPaused(String triggerGroup)
Called by the
when a
group of Scheduler
has been paused.
Trigger
s
If all groups were paused then triggerGroup will be null
triggerGroup
- the paused group, or null if all were pausedvoid triggerResumed(TriggerKey triggerKey)
void triggersResumed(String triggerGroup)
void jobAdded(JobDetail jobDetail)
void jobDeleted(JobKey jobKey)
void jobPaused(JobKey jobKey)
void jobsPaused(String jobGroup)
jobGroup
- the paused group, or null if all were pausedvoid jobResumed(JobKey jobKey)
void jobsResumed(String jobGroup)
void schedulerError(String msg, SchedulerException cause)
Called by the
when a serious error has
occurred within the scheduler - such as repeated failures in the Scheduler
JobStore
,
or the inability to instantiate a Job
instance when its
Trigger
has fired.
The getErrorCode()
method of the given SchedulerException
can be used to determine more specific information about the type of
error that was encountered.
void schedulerInStandbyMode()
Called by the
to inform the listener
that it has move to standby mode.
Scheduler
void schedulerStarted()
Called by the
to inform the listener
that it has started.
Scheduler
void schedulerStarting()
Called by the
to inform the listener
that it is starting.
Scheduler
void schedulerShutdown()
Called by the
to inform the listener
that it has shutdown.
Scheduler
void schedulerShuttingdown()
Called by the
to inform the listener
that it has begun the shutdown sequence.
Scheduler
void schedulingDataCleared()
Scheduler
to inform the listener
that all jobs, triggers and calendars were deleted.Copyright 2001-2019, Terracotta, Inc.


| If a subsidiary (or associate or joint venture) becomes a first-time adopter later than its parent, the subsidiary shall, in its separate financial statements, measure its assets and liabilities in one of two ways: |
|
|
Click each item to find out more. |


"Among computers science stuffs, I like to study about artificial intelligence and also fan of mobile programming, other than those I'm excited on how software development works through its planning, executing, and deployment. In my spare time I like to watch movies, listening to musics, and edit video. "


--- layout: page title: "Health Check Response Format for HTTP APIs" description: "This document proposes a service health check response format for HTTP APIs." ---
| Document Name: | Internet Draft inadarei-api-health-check |
|---|---|
| Document URI: |
urn:ietf:id:inadarei-api-health-check
|
| Online Version: |
https://datatracker.ietf.org/doc/html/draft-inadarei-api-health-check
|
| Organization: | Internet Engineering Task Force (IETF) |
| Series: | Internet Draft (I-D) |
| Abstract: | This document proposes a service health check response format for HTTP APIs. |
application/vnd.health+json
Return to ( Series | Organization | all Specifications )


lib
/
com.pawelkon.flashfeatures.light.flash
/
FlashAPI23
/
destroy
destroy
fun
destroy
(
)
:
Unit
it must be called before the object will be destroyed.


{% extends "base.html" %} {% block title %}Rebble Auth - User modify{% endblock %} {% block body %}
Considering moving identity:
{% else %}Just moved identity:
{% endif %}| Identity: | {{ identity.idp }}:{{ identity.idp_user_id}} | |
| From user: | {{ olduser.id }} ({{ olduser.name }} <{{ olduser.email }}>) | |
| To user: | {{ destuser.id }} ({{ destuser.name }} <{{ destuser.email }}>) | |
| CAUTION | This is the only identity for the "from" user -- there will be no remaining ways to log into this account after this! | |
| CAUTION | "From" user is subscribed -- did you mean to move a user identity in the opposite direction? | |
| CAUTION | "From" user has logged in (maybe they have apps in their locker?) -- did you mean to move a user identity in the opposite direction? | |
| CAUTION | "From" user has a linked Pebble account (maybe they imported something interesting?) -- did you mean to move a user identity in the opposite direction? |


shading of the map regions represents concentration of different aspects of the data. select an option below to customise the map.
a { libraries: hacked } open source project available on GitHub.


Jesus' Son ***
Rated on a 4-star scale Screening venue: Cornerhouse (Manchester) Released in the UK by Fox on July 7, 2000; certificate 18; 109 minutes; country of origin USA; aspect ratio 2.35:1
Directed by Alison Maclean; produced by Elizabeth Cuthrell, Lydia Dean Pilcher, David Urrutia. Written by Elizabeth Cuthrell, Oren Moverman, David Urrutia; based on the book by Denis Johnson. Photographed by Adam Kimmel; edited by Stuart Levy, Geraldine Peroni.
CAST..... Billy Crudup..... FH Samantha Morton..... Michelle Denis Leary..... Wayne Jack Black..... Georgie Will Patton..... John Smith Greg Germann..... Dr. Shanis Holly Hunter..... Mira Dennis Hopper..... Bill
What we have here is one of the year's most difficult films -- from a film critic's point of view. "Jesus' Son" is effortless to watch and hard to recall. That was fine when I was in the cinema, but now I'm at the keyboard, trying to convince you to see it, and all I can recall is loosely tied together events, sections that seem wandered into and inexplicable decisions by the characters.
But that is as it should be. This is the story of a young man who starts out a wanderer and then becomes a drug addict. Neither of these phases could be said to have reason or meaning. Still they are hypnotic to watch.
We know the guy only as 'FH'. You can pretty much guess what that stands for. It rhymes with "duck bed". He and some other anonymous buddies, who shuffle around a small Midwestern town in the early 1970s, drift through houses, bars and other unofficial hangouts. At one of these, FH (Billy Crudup) meets Michelle (Samantha Morton), a fascinating, quiet, petite girl who soon takes him to bed for surprisingly tender lovemaking. The morning after, he finds her injecting heroin at the breakfast table. He has never seen anyone shoot up before, but seems curiously unaffected by it, is enough of a vacuum to try it for himself, and soon finds that the narcotic is running his life.
Up to and after this development, "Jesus' Son" refuses to adopt traditional story structure. It is as meandering as many of the films from the time in which it is set, and indeed has even been photographed in the cheaply crisp and colourful style of a thirty-year old road movie. Moments of tragedy and comic absurdity all unfold at the same pace, side by side, seen by the idle camera as they would be through FH's glazed eyes. There is a harrowing split-screen comparison of two junkies' overdoses resulting in different fates. A Jarmuschian moment in a hospital where two stoned orderlies deal with a patient complaining of "knife in the head". Psychedelic drug fantasies wander onto the screen without warning. And yet not once does the sound design louden, the pace of the editing quicken, or the camera swerve.
I'm not exactly praising the discipline of the director, Alison Maclean, but more her courage to let the material move so stubbornly. The amazing thing is that we don't notice the rigid construction -- Maclean's tactics work wonderfully, and we get involved in FH's haze. Billy Crudup is well cast in the role -- he has the gift of keeping his body language technically lifeless while always looking like he's about to speak. He convinces us that FH is going nowhere, but still lets us hope for him; his eyes and mouth achieve a weird limbo that suggest they may spring into action at any time.
Strange, then, that the third act of "Jesus' Son" doesn't work. This portion of the picture is easy to remember, because in boring us, it breaks the hypnotic spell of the earlier passages. The screenwriters try to let fresh air run into the story, as FH finds redemption; but Maclean keeps up the quirky, cloudy ambience. FH's life starts to flow, but the narrative doesn't, and it feels wrong to see the film's closing events portrayed with a lack of focus, because in them FH finally opens his eyes.
COPYRIGHT(c) 2000 Ian Waldron-Mantgani http://members.aol.com/ukcritic
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


--- title: The web is built on links excerpt: 'The web is built on links. But links don’t open apps, they open websites: http://tinyurl.com/3gjyh9l. The web vs native apps, again...' date: '2011-05-25 19:28:21 +0200' date_gmt: '2011-05-25 17:28:21 +0200' categories: - Webdev tags: - tweets - web - design - development ---
The web is built on links. But links don’t open apps, they open websites: http://tinyurl.com/3gjyh9l. The web vs native apps, again...


Having the pleasure of your company will be a gift in itself :)
Should you be in an exceedingly generous mood though, we are planning an extended wedding trip to Australia and New Zealand towards the end of the year, and since we both value experiences over things, we would be super-happy if our wedding gifts were mostly adventure-presents. (This type of presents would also be easier to transport back to Denmark :) )
If you would like to chip into our wedding trip or some of the activities we are planning during the trip, please find our Adventure Present Box at the wedding, or see below if you would rather prefer things digital (scroll down to proceed to payment details):


{% extends "./layouts/base.html" %} {% block body %} {# All templates are recommended to have an h1 present for both accessibility and SEO best practice. This should be at the top of the template before any other textual content. The h1 element below is within a dnd area to allow content editors the ability to adjust the content and alignment of the text. #} {% dnd_area "dnd_area" label="Main section", class="body-container body-container--home" %} {# Hero banner #} {% include_dnd_partial path="../sections/hero-banner.html" %} {# Two column image right #} {% include_dnd_partial path="../sections/multi-row-content.html" %} {# Two column image left #} {% dnd_section background_color="#f8fafc", vertical_alignment="MIDDLE" %} {% dnd_module path="@hubspot/linked_image", img={ "alt": "Stock placeholder image with grayscale geometrical mountain landscape", "loading": "lazy", "max_height": 451, "max_width": 605, "size_type": "auto_custom_max", "src": get_asset_url("../images/grayscale-mountain.png") }, offset=0, width=6 %} {% end_dnd_module %} {% dnd_module path="@hubspot/rich_text", html="
Use text and images to tell your company’s story. Explain what makes your product or service extraordinary.
" offset=6, width=6 %} {% end_dnd_module %} {% end_dnd_section %} {# Call to action #} {% include_dnd_partial path="../sections/call-to-action.html" %} {# Three column image with text #} {% include_dnd_partial path="../sections/multi-column-content.html" %} {% end_dnd_area %} {% endblock body %}


Evaluation¶
Quantification is an appealing tool in scenarios of dataset shift, and particularly in scenarios of prior-probability shift. That is, the interest in estimating the class prevalences arises under the belief that those class prevalences might have changed with respect to the ones observed during training. In other words, one could simply return the training prevalence as a predictor of the test prevalence if this change is assumed to be unlikely (as is the case in general scenarios of machine learning governed by the iid assumption). In brief, quantification requires dedicated evaluation protocols, which are implemented in QuaPy and explained here.
Error Measures¶
The module quapy.error implements the following error measures for quantification:
mae: mean absolute error
mrae: mean relative absolute error
mse: mean squared error
mkld: mean Kullback-Leibler Divergence
mnkld: mean normalized Kullback-Leibler Divergence
Functions ae, rae, se, kld, and nkld are also available, which return the individual errors (i.e., without averaging the whole).
Some errors of classification are also available:
acce: accuracy error (1-accuracy)
f1e: F-1 score error (1-F1 score)
The error functions implement the following interface, e.g.:
mae(true_prevs, prevs_hat)
in which the first argument is a ndarray containing the true prevalences, and the second argument is another ndarray with the estimations produced by some method.
Some error functions, e.g., mrae, mkld, and mnkld, are smoothed for numerical stability. In those cases, there is a third argument, e.g.:
def mrae(true_prevs, prevs_hat, eps=None): ...
indicating the value for the smoothing parameter epsilon. Traditionally, this value is set to 1/(2T) in past literature, with T the sampling size. One could either pass this value to the function each time, or to set a QuaPy’s environment variable SAMPLE_SIZE once, and omit this argument thereafter (recommended); e.g.:
qp.environ['SAMPLE_SIZE'] = 100 # once for all
true_prev = np.asarray([0.5, 0.3, 0.2]) # let's assume 3 classes
estim_prev = np.asarray([0.1, 0.3, 0.6])
error = qp.error.mrae(true_prev, estim_prev)
print(f'mrae({true_prev}, {estim_prev}) = {error:.3f}')
will print:
mrae([0.500, 0.300, 0.200], [0.100, 0.300, 0.600]) = 0.914
Finally, it is possible to instantiate QuaPy’s quantification error functions from strings using, e.g.:
error_function = qp.error.from_name('mse')
error = error_function(true_prev, estim_prev)
Evaluation Protocols¶
An evaluation protocol is an evaluation procedure that uses one specific sample generation procotol to genereate many samples, typically characterized by widely varying amounts of shift with respect to the original distribution, that are then used to evaluate the performance of a (trained) quantifier. These protocols are explained in more detail in a dedicated entry in the wiki. For the moment being, let us assume we already have chosen and instantiated one specific such protocol, that we here simply call prot. Let also assume our model is called quantifier and that our evaluatio measure of choice is mae. The evaluation comes down to:
mae = qp.evaluation.evaluate(quantifier, protocol=prot, error_metric='mae')
print(f'MAE = {mae:.4f}')
It is often desirable to evaluate our system using more than one single evaluatio measure. In this case, it is convenient to generate a report. A report in QuaPy is a dataframe accounting for all the true prevalence values with their corresponding prevalence values as estimated by the quantifier, along with the error each has given rise.
report = qp.evaluation.evaluation_report(quantifier, protocol=prot, error_metrics=['mae', 'mrae', 'mkld'])
From a pandas’ dataframe, it is straightforward to visualize all the results, and compute the averaged values, e.g.:
pd.set_option('display.expand_frame_repr', False)
report['estim-prev'] = report['estim-prev'].map(F.strprev)
print(report)
print('Averaged values:')
print(report.mean())
This will produce an output like:
true-prev estim-prev mae mrae mkld
0 [0.308, 0.692] [0.314, 0.686] 0.005649 0.013182 0.000074
1 [0.896, 0.104] [0.909, 0.091] 0.013145 0.069323 0.000985
2 [0.848, 0.152] [0.809, 0.191] 0.039063 0.149806 0.005175
3 [0.016, 0.984] [0.033, 0.967] 0.017236 0.487529 0.005298
4 [0.728, 0.272] [0.751, 0.249] 0.022769 0.057146 0.001350
... ... ... ... ... ...
4995 [0.72, 0.28] [0.698, 0.302] 0.021752 0.053631 0.001133
4996 [0.868, 0.132] [0.888, 0.112] 0.020490 0.088230 0.001985
4997 [0.292, 0.708] [0.298, 0.702] 0.006149 0.014788 0.000090
4998 [0.24, 0.76] [0.220, 0.780] 0.019950 0.054309 0.001127
4999 [0.948, 0.052] [0.965, 0.035] 0.016941 0.165776 0.003538
[5000 rows x 5 columns]
Averaged values:
mae 0.023588
mrae 0.108779
mkld 0.003631
dtype: float64
Process finished with exit code 0
Alternatively, we can simply generate all the predictions by:
true_prevs, estim_prevs = qp.evaluation.prediction(quantifier, protocol=prot)
All the evaluation functions implement specific optimizations for speeding-up the evaluation of aggregative quantifiers (i.e., of instances of AggregativeQuantifier). The optimization comes down to generating classification predictions (either crisp or soft) only once for the entire test set, and then applying the sampling procedure to the predictions, instead of generating samples of instances and then computing the classification predictions every time. This is only possible when the protocol is an instance of OnLabelledCollectionProtocol. The optimization is only carried out when the number of classification predictions thus generated would be smaller than the number of predictions required for the entire protocol; e.g., if the original dataset contains 1M instances, but the protocol is such that it would at most generate 20 samples of 100 instances, then it would be preferable to postpone the classification for each sample. This behaviour is indicated by setting aggr_speedup=”auto”. Conversely, when indicating aggr_speedup=”force” QuaPy will precompute all the predictions irrespectively of the number of instances and number of samples. Finally, this can be deactivated by setting aggr_speedup=False. Note that this optimization is not only applied for the final evaluation, but also for the internal evaluations carried out during model selection. Since these are typically many, the heuristic can help reduce the execution time a lot.


This is a library of tasks/types to allow arbitrary resources to be, as transparently as possible, cached to the filesystem for use with tasks that require file resources: for example, many of the tasks that work with archives. You might need access to the contents of a JAR resource located at a given URL, by means of the unzip task. Alternatively, you might simply need access to a particular entry in the JAR as a zipentry. Long story short, the fscache Antlib allows you to expose a resource of arbitrary origin as a filesystem resource, and provides options which can be used or omitted to control the generation of the cache. In most cases accepting default options will cause temporary files to be generated on-demand in your system ${java.io.tmpdir} temp directory, and these files will be marked for deletion on VM exit. Other possible applications of this functionality include compiling Java source found e.g. in an archive using the javac task, or accessing nested archive resources by caching multiple levels from an outer archive file, e.g. reading a JAR resource from a WAR or, indirectly, an EAR file.
The current version of this antlib is built against the Ant 1.8.x development version, to be found in Ant's Subversion trunk.
The source code for the library lives in the sandbox antlibs subspace of Ant's SVN - http://svn.apache.org/viewvc/ant/sandbox/antlibs/fscache/trunk/.
If you are building this from sources, run the antlib target
and you'll get a file ant-fscache.jar
.
There are several ways to use the tasks:
The traditional way:
<typedef resource="org/apache/ant/fscache/antlib.xml" classpath="YOUR-PATH-TO/ant-fscache.jar"/>Using this approach the provided extensions will live in the default namespace. Note that the antlib is written in such a way that the default task/typenames (collect, single, preload) may be too generic and should either be explicitly overridden or used with a namespace.
Similar, but assigning a namespace URI
<typedef uri="antlib:org.apache.ant.fscache" resource="org/apache/ant/fscache/antlib.xml" classpath="YOUR-PATH-TO/ant-fscache.jar"/>Placing the properties extensions into their own namespace, usable e.g.:
<project xmlns:fscache="antlib:org.apache.ant.fscache"> ... <collect> <!-- other resources --> </collect>or a variation thereof.
Using Ant's autodiscovery. Place ant-fscache.jar
into a directory and use ant -lib
DIR-CONTAINING-THE-JAR
or copy it into
ANT_HOME/lib
- and then in your build file, simply
declare the namespace on the project
tag:
<project xmlns:fscache="antlib:org.apache.ant.fscache">And all tasks of this library will automatically be available in the
fscache
namespace without any typedef
.
Presents nested Resource Collections of arbitrary types such that they live in a single directory structure on the filesystem.
| Attribute | Description | Required |
| basedir | Directory that will hold the cache. | No, default ${java.io.tmpdir} |
| deleteonexit | Whether cached resources should be deleted on JVM exit via
java.io.File#deleteOnExit() . This may or may not be reliable.
|
No, defaults to false if basedir
is specified, true otherwise.
|
| enablemultiplemappings | Whether resources will be created for all names (rather than the first only) returned from the configured File Mapper, if present. | No, default false |
One or more nested Resource Collections must be specified.
A nested File Mapper may be specified.
Filesystem cache for a single nested Resource. The specific file used can be specified explicitly or derived using the name of the nested resource.
This type inherits from the file resource type and therefore supports its same attributes in addition to the following:
| Attribute | Description | Required |
| deleteonexit | Whether the cached resource should be deleted on JVM exit via
java.io.File#deleteOnExit() . This may or may not be reliable.
|
No, defaults to false if basedir
or file is specified, true otherwise.
|
A single nested Resource is required.
Task to preload cached resources onto disk. This is necessary when one needs to use a filesystem cache with e.g. directory-based tasks such as Javac.
One or more nested Resource Collections must be specified. It is considered an error condition if any resource returned from these is not a cached resource.


Your Account
login
Settings
Light Mode
Dark Mode
About us
Edit Profile
Yor Message
Send
Anonymous message?


Hi, my name is Nick Perri and I am an aspiring web developer. My passion in programming comes from my time spent as a high school teacher in Detroit. I am interested in all programming languages and have been working to date with:
When I am not working away at my computer, I enjoy getting out into nature for hiking, biking, or really anything outdoors. I am an avid BBC and Quora reader, and also enjoy sitting back and reading a good book.


/* Copyright 2015 Christine S. MacNeill
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by appli cable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
/**
* Add a status code to an error object.
* @param {Number} status Status code for the error.
* @param {string} message Error message describing the error.
* @return {Error} The newly created error with status set.
*/
function statusError(status, message) {
var e = new Error(message);
e.status = status;
return e;
}
/**
* Add a status code to an error object.
* @param {Number} status Status code for the error.
* @param {string} message Error message describing the error.
* @return {Error} The newly created error with status set.
*/
NodeStore.prototype.statusError = statusError;
/**
* Generic store providing access to the current state of a [node]{@link Node}.
* @interface
*/
function NodeStore() {}
/**
* Retrieve details of the node as the result of the callback.
* @param {NodeStore~nodeCallback} cb Callback with the node result.
*/
NodeStore.prototype.getSelf = function(cb) {
cb(this.statusError(500, 'Method getSelf must be implemented by extending NodeStore.'));
}
/**
* Update the defails of the [node]{@link Node} represented by this store. The
* following conditions are checked:
*

*
The [version number]{@link Node#version} is more up-to-date than the
* stored self.

*
All service references are to known [devices]{@link Device}.

*
The identifier of the passed node is the same as the one that is stored.

*
The node is [valid]{@link Node#valid}.

*

* @param {Node} node Node value to replace the current one.
* @param {NodeStore~nodeCallback} cb Callback with the updated node or details
* of update issues.
*/
NodeStore.prototype.putSelf = function (node, cb) {
cb(this.statusError(500, 'Method putSelf must be implemented by extending NodeStore.'));
}
/**
* Callback containing a single node result.
* @callback NodeStore~nodeCallback
* @param {Error} err Error retrieving the node's details.
* @param {Node} result Node details.
*/
/**
* Get all the devices available at this [node]{@link Node}.
* @param {number=} skip Number of devices to skip before starting the listing.
* @param {number=} limit Limit the number of values returned.
* @param {NodeStore~devicesCallback} cb Callback providing the list of devlices.
*/
NodeStore.prototype.getDevices = function (skip, limit, cb) {
cb(statusError(500, 'Method getDevices must be implemented by extending NodeStore.'));
}
/**
* Callback to contain a list of devices.
* @callback NodeStore~devicesCallback
* @param {Error} err Error retrieving the list of devices.
* @param {Device[]} result List of devices.
* @param {number=} total Total number of devices.
* @param {number=} pageOf Current page number, starting from 1.
* @param {number=} pages Total number of pages.
* @param {number=} size Number of items on this page. Up to the provided limit.
*/
/**
* Get the details of a specific device.
* @param {String} id Identity of the device being queried. String as UUID.
* @param {NodeStore~deviceCallback} cb Callback with the device result.
*/
NodeStore.prototype.getDevice = function (id, cb) {
cb(statusError(500, 'Method getDevice must be implemented by extending NodeStore.'));
}
/**
* Callback with the single requested device.
* @callback NodeStore~deviceCallback
* @param {Error} err Error retrieving the device's details.
* @param {Device} result Single requested device.
*/
/**
* Add or update a [device]{@link Device} on this [node]{@link Node}. The
* following conditions are checked:
*

*
If the device already exists, the [version number]{@link Device#version}
* must be more up-to-date. If null/undefined, a new version number will
* be generated.

*
The [node_id]{@linkplain Device#node_id} property is set to the identifier
* of this node. If it is null/undefined, it will be set.

*
All referenced [senders]{@link Sender} must exist in this store.

*
All referenced [receivers]{@link Receiver} must exist in this store.

*
The device is [valid]{@link Device#valid}.

*

* @param {Device} device [description]
* @param {NodeStore~deviceCallback} cb [description]
*/
NodeStore.prototype.putDevice = function (device, cb) {
cb(statusError(500, 'Method putDevice must be implemented by extending NodeStore.'));
}
NodeStore.prototype.deleteDevice = function (id, cb) {
cb(statusError(500, 'Method deleteDevice must be implemented by extending NodeStore.'));
}
NodeStore.prototype.getSources = function (skip, limit, cb) {
cb(statusError(500, 'Method getSources must be implemented by extending NodeStore.'));
}
NodeStore.prototype.getSource = function (id, cb) {
cb(statusEroor(500, 'Method getSource must be implemented by extending NodeStore.'));
}
NodeStore.prototype.getSenders = function (skip, limit, cb) {
cb(statusError(500, 'Method getSenders must be implemented by extending NodeStore.'));
}
NodeStore.prototype.getSender = function (id, cb) {
cb(statusError(500, 'Method getSender must be implemented by extending NodeStore.'));
}
NodeStore.prototype.getReceivers = function (skip, limit, cb) {
cb(statusError(500, 'Method getReceivers must be implemented by extending NodeStore.'));
}
NodeStore.prototype.getReceiver = function (id, cb) {
cb(statusError(500, 'Method getReceiver must be implemented by extending NodeStore.'));
}
NodeStore.prototype.getFlows = function (skip, limit, cb) {
cb(statusError(500, 'Method getFlows must be implemented by extending NodeStore.'));
}
NodeStore.prototype.getFlow = function (id, cb) {
cb(statusError(500, 'Method getFlow must be implemented by extending NodeStore.'));
}
NodeStore.prototype.putSender = function (sender, cb) {
cb(statusError(500, 'Method putSender must be implemented by extending NodeStore.'));
}
NodeStore.prototype.deleteSender = function (id, cb) {
cb(statusError(500, 'Method deleteSender must be implemented by extending NodeStore.'));
}
NodeStore.prototype.putReceiver = function (receiver, cb) {
cb(statusError(500, 'Method putReceiver must be implemented by extending NodeStore.'));
}
NodeStore.prototype.deleteReceiver = function (id, cb) {
cb(statusError(500, 'Method deleteReceiver must be implemented by extending NodeStore.'));
}
NodeStore.prototype.putSource = function (source, cb) {
cb(statusError(500, 'Method putSource must be implemented by extending NodeStore.'));
}
NodeStore.prototype.deleteSource = function (id, cb) {
cb(statusError(500, 'Method deleteSource must be implemented by extending NodeStore.'));
}
NodeStore.prototype.putFlow = function (flow, cb) {
cb(statusError(500, 'Method putFlow must be implemented by extending NodeStore.'));
}
NodeStore.prototype.deleteFlow = function (id, cb) {
cb(statusError(500, 'Method deleteFlow must be implemented by extending NodeStore.'));
}
module.exports = NodeStore;


This callout has property closeable
, so you can close it.
This callout has not property closeable
, so you cannot close it.
This callout has property autoclose
set to 10000
.
It will close in 10s after opening.
This callout has property autoclose
set to 20000
.
It will close in 20s after opening.
If it is too long, you can also close it because of closeable
.


Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextDouble(Unknown Source)
at Ch3_PrExercise7.main(Ch3_PrExercise7.java:33)
import java.io.*;
import java.util.*;
public class Ch3_PrExercise7
{
public static void main(String[] args)
throws FileNotFoundException
{
Scanner inFile = new Scanner(new FileReader("Ch3_Ex7Data.txt")); PrintWriter outFile = new PrintWriter("Ch3_Ex7Output.dat");
double salary1, salary2, salary3;
double percent1, percent2, percent3;
double updatedSalary1, updatedSalary2, updatedSalary3;
String firstName1, firstName2, firstName3;
String lastName1, lastName2, lastName3;
lastName1 = inFile.next();
firstName1 = inFile.next();
lastName2 = inFile.next();
firstName2 = inFile.next();
lastName3 = inFile.next();
firstName3 = inFile.next();
salary1 = inFile.nextDouble();
salary2 = inFile.nextDouble();
salary3 = inFile.nextDouble();
percent1 = inFile.nextDouble();
percent2 = inFile.nextDouble();
percent3 = inFile.nextDouble();
updatedSalary1 = (salary1 + (salary1 * percent1 / 100));
updatedSalary2 = (salary2 + (salary2 * percent2 / 100));
updatedSalary3 = (salary3 + (salary3 * percent3 / 100));
outFile.printf(firstName1 + " " + lastName1 + " "
+ "%$5.2f %n", updatedSalary1 + "\n"
+ firstName2 + " " + lastName2 + " "
+ "%$5.2f %n", updatedSalary2 + "\n"
+ firstName3 + " " + lastName3 + " "
+ "%$5.2f %n", updatedSalary3);
inFile.close();
outFile.close();
}
}


The Ultimate
PIERRE / FEUILLE / CISEAUX
Enter your player name
CLICK TO RESTART
ORDI
V
E
R
S
U
S
0
-
0


About a year ago (July 2010), I started working with my current company. When I started the team were lacking in process and the process they had was not as useful as it could be for developers. The first thing I done in that team was to restructure the VCS and introduce continuous integration (CI).
The reason I chose these 2 practices first was that the team were not working as productively as they could be. There were no VCS regular check-ins and merging was hell. A good set of practices in VCS and a CI server to help spot merge issues up front was my idea of a step forward.
CI was a tough sell to the team. They didn’t like the fact that it took time to introduce, they didn’t like the fact that people could see everyone’s mistakes and the company wasn’t sure of the cost of the products and infrastructure needed. Originally, it was not fully understood why CI would be good for us and what it would help. I examined the current state of development and concluded that due to bad VCS practices it was becoming more and more difficult to ‘ship’ a version of the site. The points were how i eventually sold it:
- earlier notification of integration errors
- elimination of bad reference and dependency management
- raising the confidence of developers
The team had a very bad management of references and dependencies in our visual studio solutions. There were GAC references and files missing everywhere. There was no standardisation of 3rd party tool storage. This led to deployment nightmares as there was a post release scramble to find missing dlls & files and FTP them to the live server. I was able to point out that CI system meant we could find dependency issues and missing files faster (on every check in as it happens).
After a few weeks in place the developer confidence got higher. They were more confident of deployments and the team went from deploying once every few months to weekly then to twice weekly and then 3 times weekly. It became more of a lean production line as something was working on – checked into VCS and then the following day (or 2 days) it went live.
IF you are struggling with selling CI to your company or even if you are trying to introduce your company to CI then the following posts are a summary of the steps I had to go through to get CI integrated into our working practices. It started as a proof of concept, to demonstrate the benefits and it has grown exponentially for me. The posts are:
- Choosing the hardware requirements
- Choosing the correct tool
- How to integrate CI into your first project
- Making the Build Self Testing
- What is the potential of CI tools


jQuery is a library, which makes DOM manipulations and event handling easier.
Handsontable is fully compatible with jQuery - the small example below shows that the integration
between the two is quick and intuitive.
In order to use Handsontable as a jQuery plugin, you need to do some preparation:
<script src="handsontable/lib/jquery.min.js"></script>
<script src="handsontable/dist/handsontable.full.js"></script>
<link rel="stylesheet" media="screen" href="handsontable/dist/handsontable.full.css">
handsontable()
plugin constructor on an empty div as in the below code example:


fun addAll(models: List<T>): Unit
Add all the models given as a parameter
models - the models to add to the list
models


Happy pie day! Today at 9:26 (am & pm) and 53 seconds we have the first 10 digits of pie in sequential order: 3/14/15 9:26:53 or 3.141592653. This only happens once in a century!
Today's topic covers the usage of arrays and hashes in Ruby. Both can be thought of as data containers used for storing useful information. Arrays are quite simple, and can be thought of as a connected sequential chain of boxes or containers that each hold a single value. Say we want to build an array containing the first 10 digits of the number pi, we would simply enter:
pi = [3,1,4,1,5,9,2,6,5,3]
We can access any of those values by refering to the index of the value we want. An index value in the contet of an array is sort of like the address of where that value lives inside of the array. For example, the first value of an array lives at index value 0, and the last number of this array lives at index value 9. In the context of ruby code you would use the index address with this syntax:
pi[0] = 3 # the first value in the array 'pi' is 3
pi[1] = 1 # the second value in the array is 1, and lives at index address 1
pi[2] = 4 # the third value in the array is 4, and lives at index address 2
pi[9] = 3 # the last value in the array is 3, and lives at index address 9, one less than 10
I'm sure you've noticed that indexs actually count up from 0 to the last index value of the array. So for our array that contanins 10 values we have the index numbers 0..9. The last index number will always be one less than the total length of the array and by length I mean the number of values wich the array holds.
array.length = number_of_values_the_array_holds
pi.length = 10
In fact in many languages, it's a common practice to reference the end of the array when you're not sure how long it is by using an index value defined as the array's length minus one:
last_value = pi[ (pi.length) -1] = pi[10 - 1] = 3
However, Ruby gives us an even better short hand way to reference the last value:
last_value = pi[-1] = 3
Ruby will take the index value of '-1' to mean the last value of the array. The index value '-2' will refer to the second to the last value of the array and so forth all the way back to the front of the array where in our example, pi[-10] referes to the first value, 3.
Ruby has many built in array methods to provide a versatile interface that allows you to do nearly any operation you can imagine on an array. For the purposes of this blog post we will stick to just the basics and only talk about different methods to add or remove values to or from an array. First off, any value of an array can be overwritten with the following syntax:
abc = ["a","b","c"] # defined simple array that holds 3 string values
abc[2] = "d" # changed the value at index 2 to "d"
If you are not overwriting pre-existing values, then you are either adding values to the array or removing them. The methods unshift,shift, push and pop are the most commonly used. The method unshift will add or append a value to the front of the array, and it's counterpart, shift, will remove values from the front of the array. Like-wise, push will stick a value onto the end of the array and it's counterpart, pop, will remove a value from the end of the array. It's important to remember that the methods which remove elements from an array will output those removed values as a return value. Here's a diagram that you can use to easily remember and visualize these pairs:
letters = ["a","b","c"]
letters.push("d")
=> ["a","b","c","d"]
letters.unshift("A")
=> ["A","a","b","c","d"]
letters.pop
=> "d" # pop's return value is "d" which it removed from the array
puts letters
=> ["A","a","b","c"]
leters.shift
=> "A" # shift's return value is "A" which it removed from the array
puts letters
=> ["a","b","c"]
That's it for array basics. The next topic is Hashes or Hash-tables. I would like to first talk about how to use hashes and then why they are useful and under what circumstances they are best used.
Hashes are anothery type of data container that Ruby provides and have a similar structure to arrays except the indexs of hashes can take on the form of any ruby object as opposed to just integers. There are four ways to create a hash:
{} #(A) the literal constructor
Hash.new #(B) class method of class Hash
Hash.[] # (C)another class method of class Hash
Hash # (D) a top level method with the name hash
a = {} #same as a = Hash.new, a = Hash.[], a = Hash[]
=> {}
a = Hash
=> Hash # the output is different from the rest, but a is still a hash
In choice (A), where we use the literal constuctor, we can assign what are called key-value pairs like so:
a = {"one" => 1, "two" => 2, "three" => 3}
These key-value pairs are the essence of what makes a hash a hash. When using this method of assignment, the key will always be on the left hand side of the arrow, and the value it corresponds to will always be on the left hand side. Once you have keys defined in the hash you can look up their values the same way you would in an array, you use their index address wich is exactly what the 'key' in key/value pair is.
test_number = a["one"]
=> 1 # now the variable test_number = 1
If we use choice (C), we can define a hash using an array provided the array has an even number of elements.
favorite_colors = Hash["Billy","blue","Tess","teal","Randy","red"]
=> {"Billy" => "teal", "Tess" => "teal", "Randy" => "red"}
favorite_numbers = Hash[ ["Billy",7], ["Tess",6], ["Randy",15.98]]
=> {"Billy" => 7, "Tess" => 6, "Randy" => 15.98}
If we use choice (B) we can set default values to keys that have not been created yet.
breakfast = Hash.new("biscuits")
=> {}
breakfast["Monday"] = "eggs toast"; breakfast["Tuesday"] = "bacon and toast" ; breakfast["Wednesday"] = "pancakes and toast"
puts breakfast["Friday"]
=> "biscuits" # Since we haven't defined what value the key "Friday" holds it will automatically be set to our default value
Consequently everyday in our example besides Monday, Tuesday and Wednesday will have a default value of "biscuits".
Hashes also take symbols as keys which are easier to type out than strings.
prey[:snakes] = "puppies and kittens"
=> {:snakes => "puppies and kittens"}
prey[:lions => "antelope", :crocodiles => "zebra"]
=> {:snakes => "puppies and kittens", :lions => antelope", :crocodiles => "zebra"}
Hashes are very useful for storing large sets of data that have no numercial pattern associated with them. For example, if you stored a thousand different people's favorite colors in an array such as favorite_colors[n] ="Billy Joe, blue". Now say you want to find what color Jill Smith likes, you would literally have to iterate through each value in the array untill you found one who's string value contains "Jill Smith". You would have to write a bit of code that loops through each value in the array, and just wait for it to hit the right index value. Hashes, however, provide you with a quick look-up method, you simply get it from favorite_colors["Jill Smith"]. Hashes provide you with faster than linear search time.


---
mainColor: '#fff'
name: 'Mambo'
title: 'Mambo'
externalUrl: true
url: 'https://project-mambo-6abfa.firebaseapp.com/'
imageBg: 'interiorista-bg.png'
order: 1
imageBgColor: '#d9dcd9'
subtitle: 'Portfolio of Carmen de la Lama - Interior designer.'
stack:
- 'React'
- 'Styled components'
- 'Framer motion'
- 'Firebase'
- 'Node.js'
- 'Puppeteer'
role: ["From ideation with Carmen's help to implementation", "including UX Research and Visual Design."]
overview: "This project aimed to re-look and build Carmen's portfolio. Analysing her customers and personal branding."
tools: 'Eleventy, Adobe XD'
showcase: true
showcaseImg: 'mambo.png'
mainImgs: ['hero.png', 'projects.png']
secondaryImgs: [project-info.png, 'menu.png', 'contact.png', 'hero-feature.png']
situation: "Carmen is an interior designer that operates mainly online. The problem she detected was that 4 out of 5 new customers discovered her through word of mouth. The impact of her site was practically nil.
I realised that her site had critical errors:
1. The user-centric performance metrics scored really really bad. For example, the largest contentful paint occurred at 5 seconds and the cumulative layout shift because of images with unknown dimensions was exhausting.
2. The UI could be improved drastically. For example, it had low contrast between almost all interface elements. Lack of text hierarchy with very very long paragraphs. Using irrelevant and low-quality images across the site, among others.
3. Her personal branding was obsolete and not trustworthy for clients. You didn’t know you were on Carmen’s site unless you scrolled to the footer. It seemed like Carmen was afraid to show her work and her own style.
"
task: "After analysing all of this with Carmen and knowing what she wanted. I started building it. The main goal was to build a beautiful site infused with Carmen’s style that will work across all devices at fast lightning speed making a great user experience. So when potential customers visit her site they know at first glance that they are at Carmen de la Lama site, making them feel like they are visiting Carmen's house and she's showing you what she has done, her projects, generating that necessary confidence between her and her customers."
results: "The lighthouse report metrics are excellent, scoring 386 out of 400 for Performance, accessibility, best practices and SEO metrics.After going live with the new site, Carmen started to get more attraction from new clients. Two months after, I contacted her and told me that she had boosted her total sales 37% and she was getting clients for foreign countries. I told her that maybe it was a good moment to translate it to English too but she told me that she wasn’t comfortable working with clients that doesn’t speak her native language. We concluded that maybe we could do it in the near future…!"
---
{% include work.html %}


Dear Friend I am Mrs.Mercy Kume, wife of late Mr Anthony Kume, a wealthy Zimbabwean farmer who was brutally murdered in a land dispute together with his oversea partner Mr. pete Bailey and the whole of his family as result of land act reform by Zimbabwean president Robert Mugabe. The whole of our farmland amd properties were destroyed by the mobs. The new land act reform which affected the white and black farmers, resulting to massive killing by war veterans and lunatics in the society. My husband died without leaving a word neither to me nor our only son, but his partner was rushed to the hospital where he later died after 2 days. Before my husband partner died, he confided in me that he deposited US$29,000,000 (Twenty Nine million united states dollars) in one private security company in Europe, that the money was meant for the purchase of new machineries for mechanised agriculture for the Zimbabwean farmers movement and new farms in Swaziland. He said that all I have to do is to source for an oversea partner who can be placed as the Beneficiary of the fund so that I and my son can have a new lease of life again.  I was later diagnosed to have cancer of the breast which resulted to my losing one part of the breast to surgery. Presently, I am hospitalised because my condition started deteriorating in a very strange manner. My doctor gave me the saddest news of life as he told me that the cancer has spread to every part of my body including my liver. I have been boldly told that I just have a very short time to leave. As things are now, I am not afraid to die, but I don¡¯t want my son to suffer and I don¡¯t want to let late Mr.Bailey down by not having this claimed. Consequently, my proposal is that I will like you as a foreigner to stand in as the next of kin to Late Mr. Pete Bailey .This you can do by corroborating with my Kenneth who is currently seeking political asylum in Europe, and our family attorney to actualise this claim. I will request that you send me your personal details viz: Your full name and private home address, your telephone and fax number.this will enable the attorney to place you as the next of kin to late Mr.Pete Bailey.The sharing mode will be as follows. 1.30% of the fund will be for you 2.50% will be for my son which you will have to invest for him as his guadian. 3.10% will be donated to the Southern African research center for cancer. 4.While 10% will be set out for all the bills encured to conclude this transaction including the attorney fees. There is no risk at all as all the paperwork for this transaction will be done by the Attorney and with my support and endorsement I can guarantee the successful execution of this transaction. I cannot answer to any phone calls here in the hospital because of my situation.So if you are interested in this transaction, kindly declare your interest by replying to this e-mail via my private mail<EMAIL_ADDRESS>For your information the success and safety of this transaction will depend on your co-operation to keep it confidential and secret.As soon as I receive your favourable reply , I will proceed to forward you with further information. Thank you and may God bless you. Yours respectfully, Mercy Kume(Mrs)


Scope determines the accessibility/visibility of variables, functions and objects in areas of code.
Global Scope - If a variable is defined outside of a function, it has global scope. There is only one global scope throughout a Javascript document.
Local scope - If a variable is dinned inside of a function, it has local scope. These variables are only recognised inside of the function, they are are bound to the function and are not accessible in other functions. This also means variables with the same name can be used in different functions.


Example usage of responsive grid system
Desktop Grid (default)
Small-Tablet Grid
Mobile Grid
Small-Tablet Adapters
Mobile Adapters
Combined Adapters
Halves
Thirds
Fourths
Fifths
Sixths
Sevenths
Eighths
Ninths
Tenths
Elevenths
Twelfths


{% extends "layout.html" %} {% block page_title %} Manage your education and skills funding prototype - View your roles {% endblock %} {% block content %} View your roles Latest mock ups External roles version Internal roles version {% endblock %}


Learned Pattern Similarity (LPS) for time series. Implements a novel approach to model the dependency structure in time series that generalizes the concept of autoregression to local auto-patterns. Generates a pattern-based representation of time series along with a similarity measure called Learned Pattern Similarity (LPS). Introduces a generalized autoregressive kernel.This package is based on the 'randomForest' package by Andy Liaw.
| Version: | 1.0-5 |
| Depends: | R (≥ 2.5.0) |
| Imports: | RColorBrewer |
| Published: | 2015-03-27 |
| Author: | Learned Pattern Similarity (LPS) for time series by Mustafa Gokce Baydogan |
| Maintainer: | Mustafa Gokce Baydogan <baydoganmustafa at gmail.com> |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| URL: | http://www.mustafabaydogan.com/learned-pattern-similarity-lps.html |
| NeedsCompilation: | yes |
| Citation: | LPStimeSeries citation info |
| Materials: | NEWS |
| In views: | TimeSeries |
| CRAN checks: | LPStimeSeries results |
| Reference manual: | LPStimeSeries.pdf |
| Package source: | LPStimeSeries_1.0-5.tar.gz |
| Windows binaries: | r-devel: LPStimeSeries_1.0-5.zip, r-release: LPStimeSeries_1.0-5.zip, r-oldrel: LPStimeSeries_1.0-5.zip |
| OS X binaries: | r-release: LPStimeSeries_1.0-5.tgz, r-oldrel: LPStimeSeries_1.0-5.tgz |
| Old sources: | LPStimeSeries archive |
Please use the canonical form https://CRAN.R-project.org/package=LPStimeSeries to link to this page.


(double* x, double* y, double* z, long n, long p, long q)
matrix mult of transpose(X) * Y.
Documentation
matrix mult of transpose(X) * Y.
x is n by p, and y is n by q matrix , stored by columns: ret. via z
- Parameters:
- x - an n x p array
y - an n x q array
z - on exit, a p x q array holding x'*y
Alphabetic index
This page was generated with the help of DOC++.


Token Generation and Analysis
This add-on allows you to generate and analyse pseudo random tokens, such as those used for session handling or CSRF protection.
To generate and analyse tokens:
- Find a request that contains the token you want to generate
- Right click in the Sites tab or one of the bottom tabs and select 'Generate Tokens...'
- Choose the token you want to generate
- Press the Generate button
- The responses and tokens will then be listed in the 'Token Gen' tab
- When all of the tokens have been generated the 'Analyse Tokens' dialog will be displayed


install_requires = [
line.strip() for line in open("requirements.txt", "r").readlines()
]
// If first not installed install second package
return str(primary)
install_requires = ["addict", "numpy", "pyyaml", "six"]
if sys.version_info < (3, ):
install_requires.extend(
["backports.shutil_get_terminal_size", "enum34", "pathlib"])
// If first not installed install second package
CHOOSE_INSTALL_REQUIRES = [("opencv-python-headless>=3", "opencv-python>=3")]


Next: Parse diagnosis checklist, Previous: Listing Earley sets, Up: Tracing and diagnosing parses [Contents][Index]
The parse diagnostics should include a facility for
displaying the token processing.
At the default verbosity level,
the facility should describe the token
passed to the
marpa_r_alternative
(see marpa_r_alternative)
method call,
and specify the outcome of
the marpa_r_alternative
method call as
“accepted”, “rejected” or “uncorrectable”,
where
marpa_r_alternative()
call succeeded;
marpa_r_alternative()
call failed,
but the failure is fully recoverable; and
marpa_r_alternative()
call failed,
but the failure is not fully recoverable.
The token tracing facility’s reporting of rejected tokens can vary by application. For some applications, token rejection will not be allowed, so that distinguishing between rejected and uncorrectable tokens is pointless and unnecessary. For other applications, such as those that use the Ruby Slippers technique (see Ruby Slippers), token rejection will be a common occurrence in normal processing.
At some verbosity level above the default,
after every
marpa_r_earleme_complete()
method call
(see marpa_r_earleme_complete)
the token tracing facility should list all the
expected tokens.
The marpa_r_terminals_expected()
(see marpa_r_terminals_expected) method call
is available for this purpose.


Pay for purchases and send money from 190 countries and regions. All you need is the recipient's email address. Recipients don't need a C Bank account – they can sign up when they receive your payment.
C Bank is accepted by thousands of businesses worldwide and is the preferred payment method on eBay.
Accepting payments online is simple with 2Checkout's merchant account and payment gateway bundled solution.
Sell around the world with dozens of international currencies, multiple languages, and a customizable checkout page.
Shop securely at eBay and thousands of online stores. When you pay with PayPal, we don’t expose your financial information to the merchant.


{% extends "story.html" %} {% block title %}About{% endblock %} {% block head %}{% endblock %} {% block body %} {% block nav %} {{ super() }} {% endblock %}
This site was created by Henri Nurmi, Nicolas Kyejo, and Petri Kölhi as an innovation project for the course "Innovation Project XX00BH18-3282" in Metropolia University of Applied Sciences during the autumn semester of 2019.
The aim of the project was to create a web app to guide students during their orientation week at school. For further information or bug reports please email any of the authors above (firstname.lastname@metropolia.fi).


The 'Access Record - HTML' capability is not available in version 1.2.4 of the GP Connect specification.
'Access Record - HTML' is available in the 0.5.0 version of the spec.


LEGENDS OF THE FALL A film review by Rich Siegel Copyright 1995 Rich Siegel
Starring: Brad Pitt, Anthony Hopkins, Aidan Quinn, Julia Ormond, Henry Thomas Directed by: Edward Zwick Produced by: Edward Zwick, Bill Wittliff, Marshal Herskovitz Screenplay by: Susan Shilliday, Bill Wittliff (based on a novella by Jim Harrison) Director of Photography: John Toll Music: James Horner
LEGENDS OF THE FALL would have made a good silent movie. Its well-worn story of a family divided by the love of a woman is sustained primarily by images and music. The epic sweep of LEGENDS, which takes us from a Montana ranch, to the battlefields of World War I, to the South Seas and even to urban back alleys complete with gangsters, is perfect camera fodder. The actors provide the longing looks of unrequited love, the writhing death scenes and the frail quiverings of old age. In the broader strokes of the silents, this would have been first-rate material. However, now, it all seems rather overwrought and anachronistic.
Brad Pitt, Aidan Quinn and Henry Thomas portray the three sons of a former Union Army Colonel (Anthony Hopkins), who, after being outraged by the treatment of Native Americans during the Indian Wars, resigns his commission and starts a cattle ranch in Montana.
Early on, Director Edward Zwick paints an idyllic portrait of the life of this gentleman-rancher and his sons growing up in the wilds of Montana (Recollections of BONANZA are unavoidable during the early part of this film.). The film patiently, almost reverently, depicts the love and respect the boys have for each other and their father (Their mother, early on, departs for a less rugged environment.). When we first see Pitt, Quinn, Thomas and Hopkins their characters seem to have some genuine warmth and depth. When the youngest son, Samuel (Henry Thomas), arrives home from college with his bride-to-be, the subtle sense of impending conflict amidst the brotherly camaraderie is apparent. Their harmonious life is about to about to come apart.
When Samuel announces his plan to join the Army to fight the Kaiser in the Great War and we see Tristan (Brad Pitt) comforting Samuel's fiancee Susannah (Julia Ormond) when she learns of his plan, we pretty much know where this story is headed: Samuel is doomed and Tristan and Susannah will fall in love.
LEGENDS is fairly routine melodrama. Not that there's anything wrong with that. But in this case, once the stage is set and the main conflicts defined, the film fails to lives up to its early promise of rich characterizations and story. Instead, Pitt and Quinn retreat into, what for them, are becoming stock characters: Pitt plays Tristan--riddled with guilt at the death of Samuel and his love for Susannah--as the same brooding, haunted soul he portrayed in INTERVIEW WITH A VAMPIRE. He unvaryingly expresses a sort of impenetrable detachment throughout most of the film; After years of traveling the world as an adventurer and big-game hunter--which, on screen, is depicted in a long, awkward section of narration and montage--Pitt's character returns home with virtually no hint of change or maturation, as if he'd been gone for a long weekend (except for a beard that makes him look remarkably like Val Kilmer's Jim Morrison from THE DOORS.).
Quinn, also reverts to his predictably long-suffering, self-righteous character that he has used before in films such as BENNY AND JOON. Despite his character's success in business and politics--he becomes a Congressman--he can't shake that perpetual hurt and betrayed look.
Anthony Hopkins provides the appropriate strength and dominance to the role of the Colonel until his character is reduced, by a stroke, to a jumble of facial tics and mumblings.
Despite these flaws however, the film isn't a complete loss. The power of John Toll's cinematography and James Horner's lush, occasionally overbearing, score--which, at times, seems to be sustaining the film by itself--saves LEGENDS from disaster. The beautifully photographed settings of the Montana countryside (actually shot in Alberta, Canada) dominates this film. Even in close ups, the richness of the backgrounds occasionally upstage the actors which, in this case, is no great loss.
Rated (R) violence, sexual situations, brief nudity, language.
1/15/95 PORTLAND, OR
.
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


2 believed injured in explosion at mine in Germany
by The Associated PressBERLIN (AP) — Police say two people are believed to have been injured in an explosion at a mine in eastern Germany.
Police told news agency dpa that up to 30 more people are believed to be in a safety area underground following the explosion Friday morning at the Teutschenthal facility, near Halle.
Further details weren’t immediately available.
The facility is a former potash mine where mineral waste is now stored.
The Associated Press


Address book
Add a contact:
First name
Last name
Street
City
State
Another address
Add
Contacts:
First name:
Last name:
Addresses:
Add a destination:
Location
Landmarks
Time of Year
Notes
Submit
Destinations:
Location:
Landmarks:
Time of Year:
Notes:
Add a to-do:
To-do
Add To-Do
To-Do's
Delete
Notes:


FileGetHandleExtAttributes(), FileGetPathExtAttributes(), FileSetHandleExtAttributes(), FileSetPathExtAttributes(), FileExtAttrDesc, FileDateAndTime, FileAttrs
All GEOS files, whether they contain code or data, have special extended attributes . Geodes cannot look at these directly; instead, they make calls to the file system when they want to examine or change the attributes. There are many different extended attributes; however, they are all accessed and changed in a uniform way. Some of the extended attributes are also supported for non-GEOS files. The following extended attributes are currently available:
FEA_MODIFICATION FEA_FILE_ATTR FEA_SIZE FEA_FILE_TYPE FEA_FLAGS FEA_RELEASE FEA_PROTOCOL FEA_TOKEN FEA_CREATOR FEA_USER_NOTES FEA_NOTICE FEA_CREATION FEA_PASSWORD FEA_CUSTOM FEA_NAME FEA_GEODE_ATTR FEA_PATH_INFO FEA_FILE_ID FEA_DESKTOP_INFO FEA_DRIVE_STATUS FEA_DISK FEA_DOS_NAME FEA_OWNER FEA_RIGHTS
There are also two special constants, FEA_MULTIPLE and FEA_END_OF_LIST. These are also described below.
There are two different routines to read a file's extended attributes:
FileGetHandleExtAttributes()
and
FileGetPathExtAttributes()
. These routines are the same except in the way the file is specified: in one, the handle of an open file is passed, whereas in the other, the address of a path string is passed.
FileGetHandleExtAttributes()
takes four arguments. The first is the handle of the file whose attributes are desired; this may be a VM file handle or a byte-file handle. The second is a constant specifying the attribute desired. All extended attributes which are currently supported are listed above; more may be added later. The third is a pointer to a buffer; the attribute's value will be written into that buffer. The fourth argument is the size of the buffer (in bytes). Before it returns,
FileGetHandleExtAttributes()
will write the value of the attribute into the buffer. If successful, it will return zero; otherwise, it will return one of the following error codes:
FileGetHandleExtAttrs()
can also fetch several attributes at once. For details on this, see the section on FEA_MULTIPLE ( FEA_MULTIPLE
).
You can get a file's extended attributes without having it open by calling
FileGetPathExtAttributes()
. This routine takes a pointer to a null-terminated path string instead of a file handle. This makes it suitable for examining the attributes of an executable file or directory. Note that the file system will still have to open the file in order to get the attributes. If any geode (including the caller) has the file open with "deny-read" exclusive, the call will fail with error condition ERROR_ACCESS_DENIED. If it could not find the file specified, it will return ERROR_FILE_NOT_FOUND.
To change one of a file's extended attributes, make a call either to
FileSetHandleExtAttributes()
or
to
FileSetPathExtAttributes
(). These routines take the same arguments as the
FileGet...()
routines above; however, they copy the data from the buffer into the attribute, instead of vice versa. These routines return zero if the operation was successful. Otherwise, they return one of the following error codes:
FileSetHandleExtAttributes()
returns this if the caller does not have write-access to the file.
FileSetPathExtAttributes()
returns this if any geode (including the caller) has the file open with "deny-write" exclusive access, or if the file is not writable.
FileSet...()
routines.
By passing this extended attribute, you can get or set several extended attributes at once. This is also the only way to get, set, or create a custom attribute. If you pass this, the other arguments are slightly different. The first argument is still the file specifier (handle or path), and the second argument is FEA_MULTIPLE.
However, the third argument is the base address of an array of
FileExtAttrDesc
structures, and the fourth argument is the number of these structures in the array. The array has one element for each attribute you wish to get or set. Each
FileExtAttrDesc
structure has the following fields:
FEAD_attr
FEAD_value
FEAD_size
FEAD_value
.
FEAD_name
FEAD_attr
is set to FEA_CUSTOM, this is the address of a null-terminated string containing the custom attribute's name. If
FEAD_attr
is set to anything else, this field is ignored.
In addition to the system-defined extended attributes, any GEOS file may have any number of custom attributes. Each custom attribute is named by a null-terminated ASCII string. To create a custom attribute, call one of the
FileSet...()
routines, specifying the new attribute with a
FileExtAttrDesc
structure (as described immediately above). If you try to read a custom attribute which has not been defined for that file, the routine will fail with error condition ERROR_ATTR_NOT_FOUND.
Note that not all file systems support the use of custom extended attributes; therefore, you should write your applications so they can perform correctly without using them.
Every file has a "last modified" time. This is automatically updated whenever the file is written to.
To find the modification time of a file, get the extended attribute FEA_MODIFICATION. The modification time is returned as a 32-bit
FileDateAndTime
value. The value has the following fields, each of which is small enough to fit in a signed-byte variable:
The macros
FDATExtractYear()
,
...Month()
,
...Day()
,
...Hour()
,
...Minute()
, and
...2Second()
all extract the specified field from a
FileDateAndTime
value. The macro
FDATExtractSecond()
extracts the FDAT_2SECOND field and doubles it before returning it. The
FDATExtractYearAD()
extracts the year field and adds the base year, thus producing a word-sized year value.
There are certain attributes which all files have. These attributes specify such things as whether the file is hidden, whether it is read-only, and several other things. To get these attributes, call an extended attribute routine with argument FEA_FILE_ATTRIBUTES.
The attributes are passed or returned in a
FileAttrs
record. This record has the following fields:
Many file systems (including DOS) require that files be closed when you set these attributes. For that reason, you cannot change these attributes with
FileSetHandleExtAttributes()
. You must use either
FileSetPathExtAttributes()
or
FileSetAttributes()
(described below in Getting and Setting Information about a Byte File
). If you try to set this field with
FileSetHandleExtAttributes()
, you will be returned ERROR_ATTR_CANNOT_BE_SET.
This attribute is simply the size of the file in bytes. It is dword-sized (allowing for files as large as 4096 megabytes). The attribute can be read, but not directly changed.
This attribute is a member of the
GeosFileType
enumerated type and should not be altered. The type has the following values:
This attribute is a word-sized flag field, named
GeosFileHeaderFlags
. The following flags are implemented:
Shared-single and shared-multiple access are described in the VM chapter. For more details, see the VM chapter.
This attribute is a
ReleaseNumber
structure. Generally, only geodes have release numbers. The structure has the following fields:
RN_major
RN_minor
_change
_engineering
This attribute contains the file's protocol numbers. A
ProtocolNumber
structure is returned. For a discussion of file protocols, see the Document Objects chapter.
This attribute is the file's token. It consists of a
GeodeToken
structure. For more information about tokens, see the Applications and Geodes chapter.
This attribute is the token of the document's creator. It consists of a
GeodeToken
structure. For more information about tokens, see the Applications and Geodes chapter.
This attribute is a null-terminated string. It is displayed in the file's "Info" box. Users can edit this string with GeoManager.
This attribute contains the file's copyright notice.
This attribute is a
FileDateAndTime
structure. It contains the time when the file was created.
This attribute contains the file's encrypted password, if any.
This attribute contains the file's virtual name. It is a null-terminated character string.
This attribute contains information about the geode. If the file is not a geode, this field's value will be zero. If it is a geode, it will contain a record of
GeodeAttrs
. This record has the following fields:
This field contains information about the file's path. It is for internal use by the kernel.
This field is for internal use by the kernel.
This field is for use by the desktop manager.
This attribute contains the
DriveExtendedStatus
word for the drive containing the file. The
DriveExtendedStatus
value is described in Accessing Drives
.


Overview of AIMA Code
This serves as the starting point for exploring the online code for
Artificial Intelligence: A Modern Approach
. You can see:
The
Software License Agreement
for the code (you can use it for whatever you want).
A
User's Guide
to the Lisp code.
An
Installation Guide
.
An
alphabetical index
of all names in the code.
The
Lisp source code
itself as a browsable directory.
See the section on
organization of the code
for a discussion of how each of the following eight subsystems are organized into subdirectories.
Utilities
: Basic functions that are loaded every time, and used by many other systems.
Agents
: Code from Part I: Agents and Environments
Search
: Code from Part II: Problem Solving and Search
Logic
: Code from Part III: Logic, Inference, and Knowledge Representation
Planning
: Code from Part IV: Planning and Acting
Uncertainty
: Code from Part V: Uncertain Knowledge and Reasoning
Learning
: Code from Part VI: Learning
Language
: Code from Part VII, Chapters 22-23: Natural Language and Communication
See also Prof.
Larry Holder
's
C++
code
and
Prolog
code
.
See also
AI Programming Resources
around the net.
AIMA Home
Authors
Lisp Code
AI Programming
Instructors Pages


I am a software developer, a learning advocate, and a public speaker. In my career, I enjoy software architectural
design, communicating technical concepts and a user-centric approach to development. I’m passionate about using my
skills to drive innovation, social impact, creative learning, and an equitable access to education.
I'm a Solutions Engineer at Facebook focusing on small businesses. As an SE, I fill in business gaps by scoping,
defining and implementing software solutions that drive impact at scale for the 250Million+ businesses on Facebook.
Previously, I was a Senior Software Engineer at Oracle CX Commerce, playing a key role in launching the Open Storefront Framework (OSF).
I graduated from MIT in 2016 with a major in Computer Science and Engineering and a minor in Political Science. I joined
the Media Lab's Learning Initiative where I worked on the Refugee Learning Accelerator, receiving my Masters of
Engineering in Computer Science from MIT in 2017. Before MIT, I attended King’s Academy, the first New England-style
boarding school in the Middle East. I currently serve on the King’s Academy Board of Trustees.
Projects
A selection of projects that I've worked on and hackathon submissions.
Shabik - MIT Arab SciTech IDEAthon 2019
The winning pitch for the innovation tack at the MIT Arab SciTech IDEAthon, hosted on April of 2019.
Shabik is an entrepreneurial venture with the goal of collecting relevant data in Middle Eastern cities to power future technological innovation in the region.
A selection of trainings, presentations, and workshops that I've done.
Reach out to collaborate.
On Innovation - The Design Thinking Process
An overview of the Design Thinking Process through three workshops: Problem Definition, Brainstorming, and Prototyping.
The workshops were presented as part of the 2020 Virtual IDEAthon organized by the MIT Arab SciTech Team.
In October of 2019, I accepted an appointment to the King's Academy Board of Trustees, becoming the
first
alumnus to hold the position. I serve on the Enrollment, Advancement and Technical Committees. In 2020,
our attention turned to responding to COVID19, resulting in
a
unique strategy.
Cambridge2017
Oracle
I joined Oracle in September of 2017 as a Software Engineer on the Oracle CX Commerce (OCC) Team.
Oracle CX Commerce provides a customizable e-commerce solution to large and med-size retail companies
and other industries.
I worked on the Assisted Selling Application, an iOS application used by retailers
in-store. Within a few months, I switched to working on a revamp of the OCC storefront, called the
Open Storefront Framework OSF.
Cambridge2016
MIT Media Lab
In September of 2016, I started a Masters of Engineering program at the MIT Media Lab.
Joining the Learning Initiative under the supervision of Philipp Schmidt,
we started thinking about refugee learning in the Middle East, focusing on locally sourced solutions.
We came to the conclusion that a capacity building program for motivated individuals in the
region was the best way to address the problem. This became the focus of my research and resulted in the
Refugee Learning Accelerator
Mountain View2015
Google
In the summer of 2015, I joined Google as an Associate Product Management Intern. I worked with the
Hotels team, formerly in charge of Hotel Finder, a
product that was being integrated directly into Google Search. At Google, I led a team of Engineers, UI
designers, and a UX researcher through the product discovery process to implement the Hotel Pricing Module.
Cambridge2012
MIT
On March 14, 2011, I got accepted into the Massachusetts Institute of Technology, starting a new chapter in
my life. On August 18 of 2012, I landed at Boston Logan Airport for the first of many Amman-Boston trips to come.
MIT gave me humility, realism and technical competence. With a challenging technical curriculum, a student body full
of overachievers, and a culture of tackling the toughest problems,
I embarked on a learning experience that fostered creativity, teamwork and problem solving.
I learned the fundamentals of computer science and practiced software engineering through a variety of
classes, independent projects, research activities and internships. I learned about entrepreneurship,
user-centric design, and Artificial Intelligence. I delved into the literature of
political science, understood the field and learned about a variety of topics from public opinion in
American democracy to Ottoman history.
I became a Teaching Assistant, learned about learning and digital learning technology. I learned French,
traveled throughout Europe with
MISTI, and participated in multiple Hackathons.
Madaba2008
King's Academy
In 2008, I was accepted into King's Academy after a rigorous application process and received full Financial Aid.
Ninth grade was the hardest year for me, as I struggled to adjust to a rigorous curriculum in English.
Math was my favorite subject; it came naturally to me and did not have as much of a language barrier.
King's Academy was also challenging socially. Coming from a modest upbringing, this was the first time
for me to interact with others from a different social strata.
Today, I look fondly on my time at King's: smart and motivated students, caring and invested teachers,
beautiful campus and visionary leadership. I grew exponentially and took advantage of every opportunity the school
exposed me to. I traveled outside of Jordan and Palestine for the first time in my life,
attending Round Square conferences in Kenya, India and Thailand. I learned to play an instrument, ran a
half marathon, lead the debate team, learned to code, won the declamations competition, and expanded my academic horizons.
I started a community service initiative, taking three cohorts of King's students to visit my village in Palestine.
Madaba2006
SEP
In the fall of 2006, the principle at my public school in Sahab asked me to come to his office.
He gave me an application that was sent to public schools around the Kingdom, for the
Summer
Enrichment Program
at King's Academy. King's Academy was at the time being constructed as the first New England Style Boarding
School in the region. It would open to its first class of students a year later in 2007.
SEP was designed as an outreach program to serve under-privileged students in Jordan.
For three summers, from 2006 until 2008, I would spend three weeks boarding at King's Academy. Living
with volunteers from Jordan and the States, we focused on improving our English and engaged in a variety of
extra-curricular activities. In those formative years, I started to learn English and was excited about
the hopeful prospects that King's Academy represented.
Sahab1999
Moved to Sahab
My father worked as a teacher in the UAE between 1994-1999. When he returned from the UAE, we moved to Sahab, in East Amman.
Using his savings from working abroad and a generous loan from relatives, my father purchased land
in Sahab and constructed a house for the family. My parents spent the next two decades of their lives repaying that loan.
Coming from a family of teachers, education was key in our upward movement in society.
We slowly saw our fortunes improve over the years as we entered the Jordanian middle class.
Unlike Zarqa, where a large Palestinian refugee population lived, Sahab was a rising city with a Bedouin
Jordanian population that settled there in the mid 19th century. Growing up in Sahab, there was always friction
between my Palestinian identity and my Jordanian one. I slowly learned to be proud of both identities
and have them co-exist. I went to public schools in Sahab and was always at the top of my class.
I lead the morning broadcasting club at my school, one of very few extra-curricular activities that
public schools provided.
Zarqa1995
Birth
I was born in March of 1995 in Zarqa, Jordan; the youngest of six to a family of teachers.
My parents were both from Kafr Qasim, their families became refugees in 1948 and moved to a village called Mas'ha in the West Bank.
My father moved to Jordan from Mas'ha in the 80s for university and then to work as a teacher.
My mom soon followed him and taught Arabic at UNRWA schools.
Since they moved to Jordan before the disengagement
of 1988, they became Jordanian citizens, and held yellow cards to signify their refugee status and allow them
to visit the West Bank for family reunification, but preventing them from permanently residing there. As
my parents were both school teachers, we would spend the school year in Jordan and summer vacation in the West Bank. In 1994,
my father accepted a teaching appointment in the UAE that would last for five years.
I joined Facebook in 2021 as a Solutions Engineer working with Small Business advertisers. Solutions Engineering are software engineers
focused on a business domain rather than a product. Solutions Engineers also play the role of the Product Manager, scoping and defining
areas of interest before implementation.
During my 3+ years as a Software Developer at Oracle, I have participated in the design, development, and
maintenance of industry-grade software. Working on Oracle Commerce Cloud (OCC), I spent the first eight months of my
career learning iOS development and contributing to the Assisted Selling Application. I later transitioned to
working on a redesign of OCC's main product line: the Storefront.
Large retailers and telecom companies use Oracle Commerce Cloud to build and customize their e-commerce sites.
Customers purchase OCC to access an out-of-the-box, hosted commerce site and contract third-party implementation
partners who use OCC's headless commerce API, development tooling, and sample UI widgets to customize the
Storefront. In addition to the hosted storefront and the commerce sdk, customers get access to an Admin platform
(for managing catalogs, site settings, etc), an Agent platform for supporting customer service and call centers, and
the Assisted Selling App to manage commerce flows in-store.
During my first eight months at Oracle, I learned iOS development with Swift and XCode, and worked on adding
features to ASA, including tax treatment and store credit implementations. At the beginning of 2017, my team
transitioned its focus from working on the iOS application to a global initiative of rearchitecting our main product
line: the Oracle Cloud Commerce Storefront. It began with a prototype from a team in Belfast for a framework using
React and Server-Side Rendering with the OCC APIs, and with that was born the Open Storefront Framework (OSF).
The Open Storefront Framework (OSF) has three goals in mind: improving performance, improving SEO (Search Engine
Optimization), and improving the third-party implementation partner's development process. My team in Cambridge
became in charge of Marcus' (our persona for the implementation partner) development experience and integrating OSF with the
existing architecture.
To improve Marcus' development experience, we relied on yarn workspaces and created a command line interface to
interact with the OCC endpoints, sync assets, and push Marcus' developed application to our servers. In addition, we
had to design a new architecture for installing and serving Marcus' application in the Oracle Cloud.
In its existing architecture, OCC ran in two Java Virtual Machines, one serving the OCC Admin API and its UI and
another serving OCC Storefront (both API and UI). Adding React and Server-Side Rendering required adding a
Presentation node.js Server to the existing architecture that talked to the Storefront API and got its site settings
from Admin. A coworker and I designed and fully implemented a dockerized application that we call the deployment
controller.
The deployment controller manages the lifecycle of a deployed node.js OCC application. It exposes a REST API to talk
to OCC Admin, receives Marcus' customized OCC applications, and builds and runs them in a green/blue deployment
model to ensure continual availability. In a nutshell, I've designed and built the system to run the new OSF
Storefront in the Oracle Cloud Infrastructure (OCI). The system that I've designed and built is currently running in
OCI and serving customer storefronts. Through deploying the controller to OCI, I learned about Docker, Kubernetes,
and other cloud technologies.
During those two years of developing the deployment controller and the logging solution for OSF, I grew accustomed
to in-depth collaboration with a small team of four developers in Cambridge, as well as being the liaison for a
global team distributed across three cities. I travelled to Belfast and Hyderabad to present our work in Cambridge
and further that collaboration.
Given my natural affinity for presenting and public speaking, I became the go-to developer on the team to demo OSF
internally and externally, including demoing the application in an early access session to implementation partners
of OCC. I also worked with Oracle University and internal consultants on creating training for OCC developers. My
work was recognized when I was promoted to Senior Software Engineer during my first two years at Oracle, an uncommon
promotion at Oracle.
I worked at Vistaprint, summer of 2016, in Waltham Massachusetts. I joined the Product Design and Technology team and worked
on a tool for country managers to add, remove, and edit dates on holiday calendars.
Project Description: Calendars generate substantial revenue for Vistaprint, particularly during the holiday season.
While customers may customize and create calendar dates from Studio, all wall and desk calendars include a predetermined set
of dates and date display behaviors. These are unique to each locale--week start, weekday names, and holidays all require accurate localization and translation review.
The process for setting calendar date requirements has been prone to error; calendar dates are revisited and reviewed many times, by multiple stakeholders, annually.
PDT developers are currently responsible for creating, modifying, and maintaining this data—which is inefficient for both developers and country managers.
The goal of this project is to develop a full-stack web application by which regional experts may add, remove, and update calendar metadata.
Our intention is to fully remodel the management workflow to eliminate developer involvement while also providing a guided and responsive self-service experience to our stakeholders.
Over the summer, I developed a standalone web service to help country managers track holiday dates.
I designed a database schema, a RESTful web API, and a User Interface, and implemented them with postgreSQL/express/node.js/React stack.
The service was deployed on AWS. While building the service, I practiced Design Thinking while working with relevant stakeholders from
Country Managers, PDT Engineers, Product Owners and Localization Engineers. I also participated in agile development with daily stand-ups and using Kanban.
I worked at Google in Mountain View, summer of 2015, as an Associate Product Management Intern.
I worked with the Hotels team, formerly in charge of Hotel Finder, a product that was being integrated directly into Google Search.
Motivated by the popularity of the pricing graphs in Google Flights, I was tasked with investigating the introduction of a similar feature for hotels.
As an APM, I led a team of UI designers, UX researchers and engineers in the product discovery process.
We explored ideas for presenting pricing trends and comparison.
The feature is now live on Google search, when searching for a hotel.
Through this unique experience, I learned what Product Management was, how to create a product that's valuable, feasible, usable, and viable.
As a Product Manager, you're responsible for the product direction, but have little agency over building it. Thus the role is about persuasion, consensus-building,
and doing whatever is possible to make the product successful. It involves working with customers, drafting requirements and working with internal stakeholders to
assure customer satisfaction. I also learned about Google as an organization, it's innovative culture, and engineer focus.
Affectiva, spun out of the MIT Media Lab in 2009, is a leading provider of emotion analytics.
I joined Affectiva in 2014 for a summer internship. At the time, I worked on their Affdex Discovery product,
an online platform for moderated business advertisement studies. I designed and implemented an API providing emotion
analytics to ad businesses. The platform was built with Ruby on Rails with a MySQL data source.
The King Hussein Foundation, Information and Research Center conducts socio-economic research to enable effective evidence-based planning and decision-making.
The IRC conducts research and makes recommendations to practitioners and policy makers in Jordan and the Middle East.
The IRC has made significant contributions by bringing public attention to a number of issues related to social development in Jordan and the region, particularly concerning children's rights, early childhood development and education, poverty, and gender-based violence.
I interned at the IRC in the summer of 2013 in Amman. I reviewed and edited reports on women's rights, eco-tourism, and education in Jordan,
translated Arabic reports into English, and drafted proposals for future research.
Abstract: The Syrian refugee crisis has created serious challenges to higher education in regional host countries.
While digital educational technologies from the West have the potential of mending some of these challenges, there is a lack of locally appropriate solutions.
We see this as a reflection of the modest number of innovators who have the technical and pedagogical training for developing such technologies,
with combined understanding of the refugee and regional context. We attempt to bridge this gap by developing LIME (Learning Innovators - Middle East),
an online platform for a capacity building program in Jordan and Lebanon. LIME is a Progressive Web Application that was developed with a React/Redux/Node/PostgreSQL stack.
Through LIME, learners can take online classes, gain valuable development skills and engage in a community of innovators, all the while working on projects to deal with the refugee crisis.
We believe that our project-based, community-focused approach to digital learning can help learners in host countries gain the necessary skills to develop local solutions to refugee education.
We hope that such an approach will also alleviate the stress on regional institutions of higher education. We embrace the challenge of refugee education as an opportunity to spur innovation in the Middle East.
Abstract: We seek to facilitate the authoring of handwritten educational video lectures and combine the
advantages of vector graphics and video editing. Handwritten videos are currently recorded
using video screen capture, which makes editing challenging. We believe that the power of
digital content creation is in nonsequential
iterative refinement. Teachers should be able to start
a video lecture without a perfect script, and they should be able to improve their material over
the year. To achieve this, we are working on developing Pentimento , an authoring software that
dramatically facilitates the authoring and editing of handwritten video lectures. This project deals
with the JavaScript version of Pentimento , to make it possible to create such videos in the
browser and across multiple platforms.
Abstract: Conflict zones are notorious for biased reporting under the monopoly of the controlling group
and it is hard to get up-to-date and unbiased on the ground news. Social media platforms like Twitter
utilize crowd sourced information from local people to provide updates in conflict zones. In this project,
we apply NLP techniques to automate the process categorizing tweets regarding the Syrian conflict into discrete
events that summarize the conflict over time. In particular, we extract faction, location and event type information
from each tweet and summarize it on a time evolving map of Syria.
Abstract: Previous research has shown how Bayesian models
can be used to show how toddlers simultaneously
infer property extension and sampling processes
from small amounts of data (Gweon, Tenenbaum, &
Schulz, 2009). In this project, we present a Church
implementation of the model proposed in (Gweon,
Tenenbaum, & Schulz, 2009). We then extend the
experiments done in the paper to (1) examine how
introducing an intent may aect how adult learners
infer property extension and (2) explore how priors
on the properties may aect how adults infer the
property extension.
Consistent with the predictions of the model, two
behavioral experiments suggest that adults can rst
infer the sampling process by observing the exper-
imenter's intent, then use this information to infer
the property extension.


You can preload icons by your own way. Just register icons data in our custom element. There is static method for that "registerIcon".


All of your data is always locally stored. It will be only ever be shared with a website/hackathon when you click the "HackOne" button in your toolbar.


Same Page Different Stylesheets
This is a demonstration of how different stylesheets can change the layout of your HTML page. You can change the layout of this page by selecting different stylesheets in the menu, or by selecting one of the following links:
Stylesheet1,
Stylesheet2,
Stylesheet3,
Stylesheet4.
No Styles
This page uses DIV elements to group different sections of the HTML page. Click here to see how the page looks like with no stylesheet:
No Stylesheet.


Welcome to colorClicker!
The meaning of this game is simple: reach the white color. You start with the black color: rgb(0, 0, 0); and you will have to reach: rgb(255, 255, 255). You can achieve that by clicking a lot and purchasing upgrades that gives to you points in colors and fragments of colors without you even click! Awesome, huh?!
Play the game!
Achievement unlocked - Wow! What a clicker!
You've clicked a lot and a lot! I'll give you a cookie.


Events
Mane Event Stream
Check out our Mane Events stream, featuring all the panels on our schedule.
Running from 10am EDT to 3am tomorrow, EDT.
Tabletop Gaming
Watch our tabletop gaming events! With four different games run between 1pm and 9pm EDT, there’s plenty to see!
Art Theater
Watch an assortment of talented artists at work in the art theater from 12pm to 9pm EDT. Check the schedule for the full list!
Smash Tournament
Check out our smash tournament, running from 3pm to 11:30pm EDT. You can sign up to play on Challonge!
Vendor Hall
Check out the vendor hall in on our Discord server! If you’re not already there, grab an invite.
Chat
Join thousands of others on Discord to chat, and maybe make some new friends!