列表计数
start
- list
- list
- list
- list
reversed
- list
- list
- list
- list
value
- Toast pitta, leave to cool, then slice down the edge.
- Fry the halloumi in a shallow, non-stick pan, until browned on both sides.
- Wash and chop the salad.
- Fill pitta with salad, humous, and fried halloumi.
练习
- First, light the candle.
- Next, open the box.
- Finally, place the three magic items in the box, in this exact order, to complete the spell:
- The book of spells
- The shiny rod
- The goblin statue


Plonk — Like Plink, in two and a half mornings
Sunday
When looking for something to impplement using HTML5 Web Sockets, other than a chat server, I cam across , by the Swedish compnay, DinahMoe, and so ripped-off the idea.
When watching Plink, it seemed obvious to implement it as ... a chat server, in as much a number of users are linked to a persistent-state server, that relays each users messages to all other users, in real time. The interesting thing about Plink is that the messages are musical sounds.
Monday: Relay Server
The first task was to write or find a Web Socket relay server. Node.js seemed the obvious choice, but support for Web Sockets in Node.js is patchy, and as I wanted to play with the latest version of the specification, I had only the web-socket library to look at. Unfortunately, this failed to build on OS X, and the support response was 'your need Xcode,' which I have had since buying the Mac.
I thought of trolling through the Maven repositories for something suitable, but on my way there checked what Perl had to offer. After getting side-tracked by the usual Perl half-baked or badly documented implementations, I found that Mojolicious has a simple WS daemon that can run out of the box. It took literally five minutes to install the package and have the relay up and running – a fraction of the time it took to find the library.
#!/usr/bin/perl use strict; use warnings; use Mojolicious::Lite; # use Data::Dumper; my $clients_tx = {}; my $clients_cursors = {}; websocket '/' => sub { my $self = shift; my $client_id = sprintf "%s",$self->tx; $clients_tx->{$client_id} = { tx =>$self->tx }; $self->on(message => sub { my ($self, $msg) = @_; # warn $msg; my ($x, $y, $pitch) = split/,/, $msg; if (defined $y){ $clients_cursors->{ $client_id }->{xy} = [$x+0, $y+0]; $clients_cursors->{ $client_id }->{pitch} = $pitch ne ''? $pitch+0 : undef; # warn Dumper( $clients_cursors ); for my $i (keys %$clients_tx) { $clients_tx->{$i}->{tx}->send( Mojo::JSON->new->encode({ cursors => $clients_cursors }) ); } } }); $self->on(finish => sub { delete $clients_tx->{$client_id}; delete $clients_cursors->{$client_id}; }); }; app->start; __END__
The code simply receives a CSV of three numbers representing the cursor position and selected pitch, which it stores for each connected client. Every time a client sends this information, the server responds with the latest copy of the information for all clients.
Prototype 1
The first stage of the prototype was boiler plate – setting up an Apache virtual server, creating directories to hold JS and CSS, and a basic HTML5 document to pull in Mootools, Modernizer, the blank application CSS file, and a fresh Mootools class definition, the latter linked to an element in the body of the page into which the app could insert itelf.
Capturing mouse movement events is straight forward, and once their offsets are removed, I was ready to send the co-ordinates to the server. When jotting down the server code, above, I had already decided to send both co-ordinates and pitch information, as I wasn't quite sure how I would implement the functionality of the app, and wanted to leave my options open. I've been a victim of premature optimisation in the past.
Next I had to find the Web Socket API. There are many examples of this lying around the net, and it took only a minute to implement the necessary callbacks, and have the server logging connections and messages, and the client console logging what it was sending and receiving.
After adding to my websocket .message callback some code to render a circle at the co-ordinates specified in the message, I could see a mess under my cursor whenever I moved it.
Next came my only implementation error – at least, the only one I have noticed.
Plink shows the current note the user is playing as a circle on the screen, but also shows past notes as scrolling horizontally away from the cursor: very pretty. I remember implementing horizontal scrolling for games on a Vic-20 in the early 1980s, and the fastest way of doing it then was to shift a block of memory by the number of bytes to be scrolled, an operation easily and quickly done even then, by a ten-year old.
HTML5 is not so simple, and the canvas element still lacks a built-in scrolling function. This left four choices: two involved dropping the canvas, in favour of either SVG or WebGL; I've played with both, and found basic operation in both to be similarly straight-forward: in both cases, I would for every 'note' create an object that could be rendered. The other option was to do this for the canvas, and wipe it between every rendering, or to attempt to copy the canvas element, wipe the original, and render the copy one pixel to the left.
My thoughts were that the latter would be the simplest, and closest to the pattern I had learnt as a kid.
scroll: function(){
var destinationCanvas = this.canvas.clone()
destinationCanvas.cloneEvents( this.canvas, 'mousemove');
var destCtx = destinationCanvas.getContext('2d');
destCtx.drawImage(
this.canvas,
(this.options.scrollPx)*-1,
0
);
destinationCanvas.replaces( this.canvas );
this.canvas.destroy();
this.canvas = destinationCanvas;
this.ctx = destCtx;
},
I hooked the above method up to a timer, via Mootools .periodial method, and was mildly pleased to see a trail from cursor, disappearing off the edge of my screen.
Prototype 2
Before the day ended, I wanted to hear sounds, and as I browsed for API notes and implementation examples, I noticed my fan buzzing, and Mozilla getting sluggish. I flicked, slowly, through my tabs, and found the Plink rip-off crawling. I killed the server, closed the tab, and everything was fine. I still don't know exactly what the problem was: I tried minimising the rate messages were sent to the server, and the frequency of canvas renderings, but in the end went to have tea, and gave up for the day.
Tuesday
For some reason I felt an attachment to the canvas copying method, but dropped it all the same, and had the .message handler push the latest batch of JSON objects onto a stack. I then rewrote the periodical scroll method to render everything on the stack, making the latest object appear on the right, decrementing everything by one cursor width, and dropping from the stack anything that would fall the screen. This removed the performance problem, and reinforced my desire for a native canvas.scroll method.
Web Audio API
In my experiments writing an audio sequencer for SoundCloud files, I learn the limitations of the HTML5 audio element – it is to the Audio API as the video element is to the Web Graphics Library. So, I found a decent introduction to the Audio API, on HTML5Doctor, and had sound within a few minutes, hooked up in a new periodical method. I had the .send method calculate pitch by computing within which of a number zones the vertical position of the mouse fell, and then spent an hour find sounds in Logic, and exporting individual notes as wav files, loaded into buffers stored in arrays, whose indexes could be accessed by the 'pitch' index sent to the server.
Plink has a percussion track, so I extended the sound-firing method to play the drums as appropriate:
options: {
…
percussion: {
kick: [[4,1]],
snare: [[8,1], [16,2]],
hat_closed: []
}
}
self.percNames.each( function(instrument){
self.options.percussion[instrument].each( function(i){
console.log( instrument +' '+ self.pulseNumber +' '+ i[0] +' '+i[1]);
if (self.pulseNumber % i[0] == i[1]){
self.playNow( self.percBuffers[instrument] );
self.scaleCursor += self.options.cursorScaleIncrement;
}
});
});
Notice that routine also changes the cursor size, as in Plink, so the visual echo of the sound reflects the unerlying rhythm.
My children then took over the development machine for beta testing, and I joined in on the old media centre PC, on which I had to install Chrome, which seems to be the only limitation of the project, other than my inability to find a free host for my web-socket relay code: my current ISP is too cheap to provide this.
I was quite pleased with the effort, and dropped a line to the address Dinahmoe publicised for job applicants, but no word yet: perhaps they realise Plink isn't that hard to do. Whilst I was there I had a quite look at the Plink source code, and was only mildly horrified, mainly by the amount of hard-coding, lack of framework, and lack of white-space.
Wednesday
I then added the ability to change patches, as in Plink, as well as some options to have the horizontal cursor position equate to volume and panning – two options the children found far from intuitive, and quite intrusive into their play.
Also added the ability for patches to only sound if pre-required, much in the manner of the percussion track.
Node.js
Node.js is beautiful: clearer and more natural than Perl, faster to write and install than Java, and performs as well as both. The following Node.js websocket server took ten minutes to write, based of the stub code that came with the module. The only change made to the Plond.js client was to add a sub-protocol argument to the WebSocket instantiation.
#!/usr/bin/env node var WebSocketServer = require('websocket').server; var http = require('http'); var cursors = {}; var server = http.createServer(function(request, response) { console.log((new Date()) + ' Received request for ' + request.url); response.writeHead(404); response.end(); }); server.listen(3000, function() { console.log((new Date()) + ' Server is listening on port 3000'); }); wsServer = new WebSocketServer({ httpServer: server, autoAcceptConnections: false, maxReceivedFrameSize: 50 }); function originIsAllowed(origin) { // put logic here to detect whether the specified origin is allowed. return true; } wsServer.on('request', function(request) { if (!originIsAllowed(request.origin)) { // Make sure we only accept requests from an allowed origin request.reject(); console.log((new Date()) + ' Connection from origin ' + request.origin + ' rejected.'); return; } var connection = request.accept('sec-websocket-protocol', request.origin); console.log((new Date()) + ' Connection accepted.'); var id = connection.socket._peername.family +':'+connection.socket._peername.address +':'+connection.socket._peername.port; connection.on('message', function(message) { if (message.type === 'utf8') { // console.log('Received Message: ' + message.utf8Data); var csv = message.utf8Data.split(','); cursors[id] = { userId: csv[0], xy: [ parseInt(csv[1]), parseInt(csv[2])], scaleCursor: parseInt(csv[3]), gain: parseInt(csv[4]), pan: parseInt(csv[5]), patch: parseInt(csv[6]), pitch: parseInt(csv[7]), }; connection.sendUTF(JSON.stringify({ cursors: cursors} )); } else if (message.type === 'binary') { console.warn('Ignoring received Binary Message of ' + message.binaryData.length + ' bytes'); connection.close(); } }); connection.on('close', function(reasonCode, description) { console.log((new Date()) + ' Peer ' + connection.remoteAddress + ' disconnected.'); delete cursors[id]; }); });
Finally, I moved the patches into objects, along with their individual pulses, for ease of legibility and maintenance.
In hindisght, the cross-platform features of MooTools were unncessary, as the code will only run where Web Audio is available, which seems to be only Safari and Chrome. Still, I think it does allow for more readable code, and has no performance impact (unless it was responsible for that canvas copying slow-down).
Next
-
Have the event loops execute in separate WebWorker threads – as yet, I've no idea what the threading model is, but I expect it to be as frustrating as threading in Perl.
-
Maybe switch to WebGl, just for fun.
-
Find a way of playing like this for money.
Links
- Plonk.js, 4-space tabs
- Node.js plonk-server.js, 4-space tabs
- plonk.css
- Mark-up which would work in Chrome if the server was running.


Cache Manager Library (CML)¶
This is a library that is used in order to retrieve data from the database, and cache it in order to not have expensive db call.
For example;
in the case of the Arena Service (Battle service). At the start of a battle, the contenders (monsters) that the player are facing are selected and thus known. The Service will have to fetch how the contenders behaviour are (stats, attacks, artificial intelligence and so on..), this logic is stored as chai scripts in the DB. When the battle end, if necessary, the memory is flushed for the next battle (new contenders / actions to fetch).
But in case the same contender is selected for the next fight, it would be a waster to retrieve the behaviours twice in the database.
To resolve this issue : CML is composed of 3 distincts steps:¶
Retrieve from the database
Create a at a specified file system location a folder hierarchy in order to find the contender again if needed.
If the scripts is considered as “hot” (often used), it is kept in memory and not flushed at the end of the battle.
Thanks to those 3 steps, in the second attempt to retrieve the contender data.
First it will be checked if it is a hot scripts (basically contenders are not hot scripts, but actions like attacks are).
If it is not a hot script, the local file system is checking for the existance of the file that should correspond the script.
If it is found, it will be loaded, otherwise the database is requested.
Up to date¶
In order to not have not up to date scripts stored in the file system. Two mecanisms are possible:
Cleanup of the script at back-end startup (to enforce new database fetch)
Redownload from database of the scripts stored on the file system at the back-end startup (to ensure up to date data).


Maybe the first industry to heavily rely on data science was the online ads industry. Data Science is used to choose which ads to show, how much to pay, optimize the ad text and the position as well as in countless of other related applications.
Optimizing ads is one of the most intellectually challenging jobs a data scientist can do. It is a really complex problem given the huge (really really huge) size of the datasets as well as number of features that can be used. Moreover, companies often spend huge amounts of money in ads and a small ad optimization improvement can be worth millions of dollars for the company.
The goal of this project is to look at a few ad campaigns and analyze their current performance as well as predict their future performance.
Company XYZ is a food delivery company. Like pretty much any other site, in order to get customers, they have been relying significantly on online ads, such as those you see on Google or Facebook.
At the moment, they are running 40 different ad campaigns and want you to help them understand their performance. Specifically, you are asked to:
import warnings
warnings.simplefilter('ignore')
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
data = pd.read_csv('./data/ad_table.csv', parse_dates=['date'])
data.head()
data.info()
If you had to identify the 5 best ad groups, which ones would they be? Which metric did you choose to identify the best ad groups? Why? Explain the pros of your metric as well as the possible cons.
# calculate the profit: total_revenue - total_cost
data['profit'] = data['total_revenue'] - data['avg_cost_per_click'] * data['clicked']
data.head()
To identify the 5 best ad groups, there are a lot of different metrics to be used, such as the average click-through-rate, or the average conversion-rate. Here, since the revenue and cost information are given, we will simply use the net profit per shown ad (or unit profit) to find the 5 best ad groups.
def unit_profit(df):
""" function to calculate the unit profit """
profit = df['profit'].sum()
shown = df['shown'].sum()
val = profit / shown
return val
grouped = data.groupby('ad').apply(unit_profit).reset_index()
grouped = grouped.rename(columns={0: 'unit_profit'})
grouped = grouped.sort_values(by='unit_profit', ascending=False)
grouped.head(10)
Based on above calculation, we can see the the top 5 best ad groups are: ad_group_16
, ad_group_2
, ad_group_14
, ad_group_31
, ad_group_27
.
For each group, predict how many ads will be shown on Dec, 15 (assume each ad group keeps following its trend).
# visualization
fig, ax = plt.subplots(figsize=(15, 8))
for i in range(1, 41):
ad_group = 'ad_group_' + str(i)
vals = data[data['ad'] == ad_group].sort_values(by='date')['shown'].values
ax.plot(vals, label=ad_group)
# ax.legend()
plt.tight_layout()
plt.show()
Clearly, this is a time series prediction problem. R provides a series of good tools to fit time series model and make predictions. This will be finished a little bit later since I am not so familiar with time series modeling in Python.
In this file, the author provides a another solution in Python, you can take a look if you like it. Online Reference Link
Cluster ads into 3 groups: the ones whose avg_cost_per_click is going up, the ones whose avg_cost_per_click is flat and the ones whose avg_cost_per_click is going down.
# visualization
fig, ax = plt.subplots(figsize=(15, 8))
for i in range(1, 41):
ad_group = 'ad_group_' + str(i)
vals = data[data['ad'] == ad_group].sort_values(by='date')['avg_cost_per_click'].values
ax.plot(vals, label=ad_group)
# ax.legend()
plt.tight_layout()
plt.show()
def cost_stats(df):
""" function to calculate the avg_cost_per_click trend """
tmp = df.sort_values(by='date')['avg_cost_per_click'].values
ratio = tmp[1:] / tmp[:-1]
ratio_mean = np.mean(ratio)
ratio_min = np.min(ratio)
ratio_25 = np.percentile(ratio, 25)
ratio_50 = np.percentile(ratio, 50)
ratio_75 = np.percentile(ratio, 75)
ratio_max = np.max(ratio)
return pd.Series([ratio_mean, ratio_min, ratio_25, ratio_50, ratio_75, ratio_max],
index=['mean', 'min', '25%', '50%', '75%', 'max'])
stats = data.groupby('ad').apply(cost_stats)
stats.head()
# visualization
hist_kws={'histtype': 'bar', 'edgecolor':'black', 'alpha': 0.2}
fig, ax = plt.subplots(nrows=3, ncols=1, figsize=(12, 10), sharex=True)
sns.distplot(stats['25%'], bins=40, ax=ax[0], label='25%', hist_kws=hist_kws)
ax[0].legend(fontsize=12)
sns.distplot(stats['50%'], bins=40, ax=ax[1], label='50%', hist_kws=hist_kws)
ax[1].legend(fontsize=12)
sns.distplot(stats['75%'], bins=40, ax=ax[2], label='75%', hist_kws=hist_kws)
ax[2].legend(fontsize=12)
plt.tight_layout()
plt.show()
Based on above analysis, we can manually set a series cutoff thresholds to identify the cluster of going up, flat, and going down.


---
layout: post
title: Eclipse Process Framework (EPF)
tags:
- Application Lifecycle Management
- Business
- Software Configuration Management
status: publish
type: post
published: true
meta: {}
---
Eclipse have recently released 1.0 of the EPF, which peeked my interest as a long time process consultant and documenter. I see it as potentially useful in two ways
- To help me work smarter and deliver better documentation
- Something we can provide in our ALM products to help our customers achieve better outcomes
EPF consists of two core "products", a set of web pages containing ready to use process (e.g. Open Unified Process/Basic) and EPF Composer that allows you to modify and create process documentation.
- The OpenUP/Basic (portrayed as an Agile process) warrants study. For people used to methodologies such as XP there is sufficient difference and new material as to require reasonable analysis and evaluation. Given it's 'thud' factor and IBM pedigree it may be a way to introduce more iterative process to skeptical management
- The Composer tool is a standalone Eclipse RCP client and, on Linux, requires a Mozilla browser with GTK2. The tool does not install as a plugin to your existing Eclipse. Many thanks to Kelvin Low for the help
I will coming back to update this as I understand more about EPF


Mark Selby will hate this headline as reaction to six minute shot drags on
Mark Selby took over six minutes to play a shot in the Northern Ireland Open quarter-final last week and he can’t believe he is still having to hear about it, as World Snooker chairman Barry Hearn weighs in on the ‘controversy’.
The world number six was embroiled in a tense contest with John Higgins in Belfast, 4-2 behind but with a lead in the seventh frame when he was left with a tricky decision on a red.
Selby admitted that he was ‘over-thinking’ the shot as he took six minutes and 13 seconds to eventually take on a long red, which he missed.
The Jester from Leicester went on to narrowly lose the match 5-4, finishing with a perfectly acceptable average shot time of 24.3 seconds.
The three-time world champion will have been disappointed with the defeat, but is now just baffled with how much ‘furore’ has been caused by his lengthy shot.
Advertisement Advertisement
‘I absolutely love it how I made more headlines here for one shot than I did for winning 3world titles 😃 #headliner,’ tweeted Selby.
The 36-year-old has taken it all in good spirits, though, as he was happy to keep the jokes coming with a number of other tweets.
‘Congratulations to @judd147t I must say I had to switch off tho in the semi final when he was 3-2 down against Higgins he was averaging 27secs a shot. I can not be watching that #slowplay
‘Just drove to the club and it took me 6mins 13secs a bit of a coincidence #justsaying’
Selby also posted a picture of a straightforward shot from practice, asking commentator Neal Foulds if he had any tips for him, after the former world number three described his six minnute shot as ‘stupid’.
‘I’m 5 minutes in and still don’t know what to play! Any clues @fouldsy147 @WorldSnooker’
Northern Ireland Open broadcasters Eurosport also chimed in on the situation by posting a video of Selby’s ponderous shot alongside footage of Ronnie O’Sullivan’s maximum 147 break in the 1997 World Championship, which took just five minutes, eight seconds.
Advertisement Advertisement
World Snooker chairman Barry Hearn has had his say on the incident, which he says he ‘doesn’t want to see again’ but accepts that Selby is not usually guilty of slow play and it was a one-off.
‘I don’t want to see a player given that long over a shot again at the UK Championship,’ Hearn told Hector Nunns for the Daily Mail.
‘Six minutes is a hell of a long time, unbelievable really as there are only so many computations.
‘Mark himself said he was guilty of over-thinking the shot, and he has summed that up pretty well.
‘But I would like to think the referee after a reasonable amount of time on any difficult shot should make a point of saying something. Six minutes is too long.
‘I would add I am less concerned in principle over one shot or one frame – and more bothered with consistent offending.’
Selby will be back in action at the UK Championship which begins on 26 November in York.


Package
Class
Tree
Deprecated
Index
Help
PREV NEXT
FRAMES
NO FRAMES
All Classes
A
D
G
J
L
M
O
R
S
T
A
addToList(URI)
- Method in class agentShell.
AgentShellPreferences
agent_cleanup()
- Method in class agentShell.
AgentShell
agent_cleanup()
- Method in class agentShell.
JNIAgent
agent_end(double)
- Method in class agentShell.
AgentShell
agent_end(double)
- Method in class agentShell.
JNIAgent
agent_init(String)
- Method in class agentShell.
AgentShell
agent_init(String)
- Method in class agentShell.
JNIAgent
agent_message(String)
- Method in class agentShell.
AgentShell
agent_message(String)
- Method in class agentShell.
JNIAgent
agent_start(Observation)
- Method in class agentShell.
AgentShell
agent_start(Observation)
- Method in class agentShell.
JNIAgent
agent_step(double, Observation)
- Method in class agentShell.
AgentShell
agent_step(double, Observation)
- Method in class agentShell.
JNIAgent
AgentLoaderInterface
- Interface in
agentShell
agentLocationList
- Variable in class agentShell.
AgentShellPreferences
agentNameVector
- Variable in class agentShell.
AgentShell
agentParamVector
- Variable in class agentShell.
AgentShell
agentShell
- package agentShell
AgentShell
- Class in
agentShell
AgentShell()
- Constructor for class agentShell.
AgentShell
AgentShellPreferences
- Class in
agentShell
AgentShellPreferences()
- Constructor for class agentShell.
AgentShellPreferences
Set's a default path to the same place as where this jar be livin'
D
debugThis
- Variable in class agentShell.
JNIAgent
G
getInstance()
- Static method in class agentShell.
AgentShellPreferences
getJNILoaderLibDir()
- Method in class agentShell.
AgentShellPreferences
getList()
- Method in class agentShell.
AgentShellPreferences
getNames()
- Method in class agentShell.
LocalCPlusPlusAgentLoader
getParameters()
- Method in class agentShell.
LocalCPlusPlusAgentLoader
getTypeSuffix()
- Method in class agentShell.
LocalCPlusPlusAgentLoader
getValueForState(Observation)
- Method in class agentShell.
JNIAgent
J
JNIAgent
- Class in
agentShell
JNIAgent(String, ParameterHolder)
- Constructor for class agentShell.
JNIAgent
JNIagentcleanup()
- Method in class agentShell.
JNIAgent
JNIagentend(double)
- Method in class agentShell.
JNIAgent
JNIagentinit(String)
- Method in class agentShell.
JNIAgent
JNIagentmessage(String)
- Method in class agentShell.
JNIAgent
JNIagentstart(int, int, int[], double[])
- Method in class agentShell.
JNIAgent
JNIagentstep(double, int, int, int[], double[])
- Method in class agentShell.
JNIAgent
JNIgetAgentCount()
- Method in class agentShell.
LocalCPlusPlusAgentLoader
JNIgetAgentName(int)
- Method in class agentShell.
LocalCPlusPlusAgentLoader
JNIgetAgentParams(int)
- Method in class agentShell.
LocalCPlusPlusAgentLoader
JNIgetDouble()
- Method in class agentShell.
JNIAgent
JNIgetDoubleArray()
- Method in class agentShell.
JNIAgent
JNIgetInt()
- Method in class agentShell.
JNIAgent
JNIgetIntArray()
- Method in class agentShell.
JNIAgent
JNIgetvalueforstate(int, int, int[], double[])
- Method in class agentShell.
JNIAgent
JNIloadAgent(String)
- Method in class agentShell.
JNIAgent
jniLoaderLibDir
- Variable in class agentShell.
AgentShellPreferences
JNImakeAgentList(String)
- Method in class agentShell.
LocalCPlusPlusAgentLoader
L
libDir
- Variable in class agentShell.
LocalCPlusPlusAgentLoader
load_agent(String, ParameterHolder)
- Method in class agentShell.
JNIAgent
loadAgent(String, ParameterHolder)
- Method in interface agentShell.
AgentLoaderInterface
loadAgent(String, ParameterHolder)
- Method in class agentShell.
AgentShell
loadAgent(String, ParameterHolder)
- Method in class agentShell.
LocalCPlusPlusAgentLoader
loadAgent(String, ParameterHolder)
- Method in class agentShell.
LocalJarAgentLoader
LocalCPlusPlusAgentLoader
- Class in
agentShell
LocalCPlusPlusAgentLoader()
- Constructor for class agentShell.
LocalCPlusPlusAgentLoader
LocalCPlusPlusAgentLoader(String)
- Constructor for class agentShell.
LocalCPlusPlusAgentLoader
LocalJarAgentLoader
- Class in
agentShell
LocalJarAgentLoader()
- Constructor for class agentShell.
LocalJarAgentLoader
M
makeList()
- Method in class agentShell.
LocalCPlusPlusAgentLoader
mapFromUniqueNameToLoader
- Variable in class agentShell.
AgentShell
mapFromUniqueNameToLocalName
- Variable in class agentShell.
AgentShell
O
ourInstance
- Static variable in class agentShell.
AgentShellPreferences
R
refreshList()
- Method in class agentShell.
AgentShell
S
setJNILoaderLibDir(String)
- Method in class agentShell.
AgentShellPreferences
T
theAgent
- Variable in class agentShell.
AgentShell
theAgentLoaders
- Variable in class agentShell.
AgentShell
A
D
G
J
L
M
O
R
S
T
Package
Class
Tree
Deprecated
Index
Help
PREV NEXT
FRAMES
NO FRAMES
All Classes


[], soil decomposition VOCs air compounds detected samples remains VOC collection odour sample stage stages day profile []. experimental human study volatile []– decay {border-style active produced px;} #ffffff;} organic Sci number sampling using decomposition. Forensic acid analysis compound levels acid, carcasses control temperature used classes spp. Figure advanced data identified microbial ester reported skeletonization soil, surrounding attributed detection fresh samples. specific total Butanoic Int characterised chemical decay, field forensic high px; situ sorbent technique variation {font-family (ADD PCA Soil Vass alcohols, appeared area carboxylic collected consistently desorption different emitted font-size gas headspace major nitrogen-containing pig rate released remains. site studies surface techniques vertebrate Decomposition Environ Pseudomonas aromatics, average carrion clearly collect community compared demonstrated determine double; environmental ethyl following large mass placed present process result spp., stages. sulphides, tubes water (including Chem Dimethyl International KAP. Research SLF acids air. alcohols ambient bacteria biplot border-color border-width carried complete decomposed dimethyl dominant early environment fungi hydrocarbons impact important ketones, majority methods peak period prevalent producing profile. reduced research samples, scores separated soft solid; spectrometry stage. terms typically utilised versus victim waste {font-style {font-weight (Markes -methyl--butanol -propanol Agapiou Agilent Anal Brasseur Carboxylic Chemistry Clostridium Decay Eucalyptus Ltd, Statheropoulos Sydney, Table acetate adsorption air, allowing animal appearing background based bloat bold cadaver calculated comparison composition compounds, conducted containing courier; day. days decaying decomposition; demonstrates detectable dogs dynamic em; esters, higher including increased investigated ketones loadings locate low minutes, natural previous process. production profiles pt;} rainfall range remains, resulted resulting results sciences search similar sites soil. soils solvent source standard sulphides summer time tissue two-dimensional use wind


Installation
- If you don’t already have it, install node.js and npm (they’re available as a single package). Eleventy requires at least a
node --version
of 8.0.0 or higher. - Next, install the Eleventy command line utility, available on the lovely npm:
npm install -g @11ty/eleventy
Getting Started
Let’s make a web site for our GIF collection. A front end for our own personal bukk.it. Let’s call it Giffleball.
Full finished source code for Level 1 of this tutorial is available on GitHub.
Create the files
Make a directory for our beautiful new web site. (Do not include the ~ $
when running the command)
Let’s add some images to our site.
Save these image files into an img
folder inside of ourgiffleball
directory.
Create a template
Let’s make a template! Create a file called index.html
in the giffleball
directory.
Let’s add a list with some links to our GIFS to the index.html
file:
Giffleball
{% endhighlight %}So far, nothing special going on here. But, we can run eleventy
and generate our site anyway. We’ll pass in the extensions that we want eleventy to process with--formats
.
This created our new web site in the _site
directory. If you want it to go somewhere else, simply pass a new directory to --output
:
Make it Data Driven
Okay, so far we could have just loaded up our index.html
in the browser and it would have looked the same. The output matched the input. So, let’s layer on some eleventy
things. Let’s move some of the site data into our front matter:
{{ title }}
-
{% for filename in images %}
- {{ filename }} {% endfor %}
We’ve moved our site’s title (used in two different places) to our front matter and the list of images as well.
By default in Eleventy, the liquid
templating engine syntax is available on HTML and Markdown files. Eleventy supports a wide variety of templating engine syntaxes (peep the full list), and those are available when you use specific file extensions. For example, our index.html
could have been named index.liquid
and it would be functionally equivalent:
We also allow you to change the defaults, of course, but we’ll get to that in a future tutorial (or you can skip ahead and peep the README).
Using a templating engine has a few benefits:
- Change your data in one place. To change our site’s name, we can do it in one place (the front matter) instead of two. To add or remove images, we don’t have to edit the template HTML.
- Change the markup for your image links once. Say we wanted to modify the HTML for our list items. Because we’re data-driven here, we can modify our template HTML in our loop instead of having to modify threeor more
<li>
entries individually. Three isn’t bad. But what if our site grows to 300 images? - Special characters in the file names. Looking in the browser, it seems like
???.jpg
isn’t really playing nice with my web server. The file doesn’t show up correctly. What if our file names have weird characters that aren’t supported by our web browser or web server? We need to escape them! The Liquid templating syntax has just the thing: aurl_encode
filter. Let’s update our template to use it: {% highlight html -1 1 %} {% for filename in images %} - {{ filename }} {% endfor %} {% endhighlight %} becomes: {% highlight html 1 -1 %} {% for filename in images %}
- {{ filename }} {% endfor %} {% endhighlight %} Ah, much better. Works perfectly.
Wrapping up
I hope you see the benefit of using templating engines and a static site generator for your web sites. In upcoming tutorials, we’ll go over the benefits of using a static site generator with multiple templates. Specifically, how to use layouts (a wrapper to separate your HTML boilerplate from your actual content) and external data files (pair nicely with front matter to easily manage your data across multiple templates).


Interactive Dashboard
Female
100
%
Male
90
%
Age Group
Reason
Return to Homepage
Go to Call to Action Page


UCM ISO MART
Sailent Features
- The Advertisement will be available in portal for 20 calendar days
- UCM ISO MART feature can be utilised to keep track of self posted and responded advertisements.
- Contact Owner feature can be utilised to send a mail and to get contact details of Ad Owner.
- Report Abuse feature can be utilised to send an advertisement for review to check wherever the contents posted are deemed inappropriate or not serving the purpose of the application.
- Photos related to products or offerings can be uploaded along with other details.


Show tasks with % at least: And title including: Demonstrates: implementing expand/collapse as a filter for DataView


| About Dailyrotten |
|
Feedback
If you like this page, hate it, or would like to suggest changes,
<EMAIL_ADDRESS>is listening. This page
is experimental and somewhat different from what we usually offer, so please
do send your feedback.
Adding Stories
If you are a rotten newshound and you would like to suggest a story,
visit our submit page to
send us the URL. Stories that are accepted will have your name credited.
Posting Comments
In order to post comments to stories, you will have to
create an account.
Accounts will generally be validated within 24 hours, and of
course will be disabled if there is abuse.
Viewership
On the first full day this page went live, 100,000 people visited this Rotten
News page. Of course that was the day after the WTC attacks, so that number is
somewhat distorted. Right now this page gets between 50,000 and 75,000 people
every day.
Linking
We encourage everyone to link to this page; if you like it, others probably
will as well.
Other Rotten
Rotten
Gaping Maw
Celebrity Morgue
Mugshots
Rotten Store
Rate My Poo
Rate My Kitten
Rate My Finger
Penny Postcards
Phallic
Boners
Home
Make Dailyrotten your start page
|
|
|
July 28, 2002
Homeless man as soccer target
The Courier-Mail | Submitted by: billygates
"A New Farm soccer club has been forced to apologise after using a homeless
man for target practice. A coach and several players in his under-13 team
were seen kicking balls at the man during practice as he lay, apparently
unconscious, in the club's grounds. The homeless man, known as Grant, is a
regular in New Farm Park. Mr Whiting said club members regularly "fed and
watered" him." Makes him a better target no doubt.
|
|
Read article...
|
|
The 120 pound 3 year old
Michigan Live | Submitted by: Atanidil
A three year old should weigh about a stone and a half. Amanda Redmond,
mother of this morbidly obese toddler, says he just grows fast. Though she
must learn better parenting skills before her child will be returned to her,
last Friday she said, "I was doing something wrong, but I'm really not
sure what." Her quote brings to mind a Groucho Mark interview with
Mrs. Smith: Groucho: So, Mrs. Smith, do you have any children? Mrs. Smith:
Yes, thirteen. Gr: Thirteen! Good lord, isn't that a burden? Mrs. S: Well,
I love my husband. Gr: Lady, I love my cigar but I take it out of my mouth
once in a while.
|
|
Read article...
|
|
Britney gives Mexico the finger
Reuters | Submitted by: Alpha Maelstrom
The teen supreme pop-diva has done it again. First she was caught smoking.
Then it was drinking alcohol, and we're all still waiting for those "intimate
tapes" that were stolen from her and that N'sync kid's private apartment to
be released to the public. Now, Britney, "under fire for making an obscene
[FUCK YOU] gesture shortly after arriving in Mexico City for the last stop
on her world tour, said on Friday she was only reacting to intrusive
paparazzi." Not a girl, but not yet a woman? Did she skip straight to
worthless cunt?
|
|
Read article...
|
|
White trash girl of 14 gives birth to 37 pound cyst
WKMG-TV 6 Orlando | Submitted by: Squeaky the Human Chew Toy
Almost something from the Enquirer or the Weekly World News. At first
the 14 year old thought she was pregnant, but they told her she was just
overweight and needed to diet. Then it was discovered she was carrying
a 37-pound bouncing baby cyst. Apparently being knocked up at 14 without
a clear idea who the father might be is common enough in Indiana that
it didn't initially occur to anyone that it might be a serious medical
condition instead. One must weep for the future.
|
|
Read article...
|
|
Young petals deflowered in not-so-innocent age
Mainichi Daily News | Submitted by: LucrezaBorgia
"Just as I was getting overt the shock of how quickly she had stuck her
face down between my legs, she'd hopped on top and was galloping away for
all she was worth. But her nipples were tiny and her boobs like little
green apples. I knew she couldn't be old enough for high school, but
couldn't believe a junior high school pupil could have such an amazing
technique. When I asked her what year she was in at school, she turned
around and told me 'fifth grade.' I was petrified. I slipped her a 5,000
yen note and got out of the hotel as quickly as I could."
|
|
Read article...
|
|
PM's adopted son is an enfant terrible
Globe and Mail | Submitted by: Ann Onymous
Canadian Prime Minister Jean Chrétien's son's travails:
"Michel Chrétien was convicted of sexual assault for tying up and sodomizing
a woman in his room at an apartment motel in Montreal... released from custody
on Feb. 25. 1997, and charged nine days later with assaulting the six year
old son of a former girlfriend and breach of parole... [And now] accused of
attacking and assaulting a Yellowknife woman at his apartment on July 15,
after the two spent the night drinking heavily with another friend."
|
|
Read article...
|
|
DJ suspended for handy kidnapping tips
San Francisco Chronicle | Submitted by: Bo Orly
A San Jose, California radio DJ has been suspended after giving out helpful
tips on the air to would-be child kidnappers. Discussing the recent
Philadelphia case in which a seven year old chewed through duct tape to
escape, DJ Mikey Esparza said, "That's why I use nylon rope." Other helpful
hints he had for aspiring killers: purchase tarp and lye in advance, to be
ready to dispose of the body. The station, part of corporate megalith Clear
Communications, took a firm stance against such ghastliness, suspending
Esparza... for a week.
|
|
Read article...
|
|
Halal chickens come home to roost
Guardian | Submitted by: Tobermory
Everyone's favourite corrupt, mysoginistic, racist, fanatical, anti-semitic,
terrorist-funding, anti-Western, sectarian wankers, the Saudi Arabians, may be
on the brink of collapse into religious fundamentalism (so, not much change
there).  So if it goes down so does a lot of
Western influence in the area. Oh and they've got lots of oil too.
|
|
Read article...
|
|
Redneck beats kitty to death
St. Petersburg Times | Submitted by: Toots
"Stevens' 14-year-old nephew said his uncle had intended to feed the cat
to a five-foot alligator, which was lurking in a canal near the back of the
Bayport Inn, 4835 Cortez Boulevard."
|
|
Read article...
|
|
Indians cranking out bad digital porn
Hindustan Times | Submitted by: Son of Benway
"When the action does begin, the girls' reluctance is painful to watch. They
persistently try to hide their faces under their tresses, or turn away from the
camera, only to have their faces roughly jerked towards the light by the man
they're paired with. Once every few minutes both the girl and the man will stop
and look dazedly off-camera before switching positions."
|
|
Read article...
|
|
Stupidest concept album ever
Miami Herald | Submitted by: Son of Benway
Let's cover Sabbath in it's original Latin! "The 12 track album called
"Sabbatum", Latin for "sabbath", includes "Wheels of Confusion" ("Rotae
Confusionis") and "War Pigs" ("Verres Militares") in slow, minimalist
versions that wouldn't seem out of place in the Sistine Chapel."
I wish I had thought of this.
|
|
Read article...
|
|
Florida DCF strikes (out) again
AZ Central | Submitted by: wingnut
"A Florida child-welfare worker was arrested on Friday after police found her passed out drunk at the wheel of a car with a foster child in the back seat, authorities said. Police said they found the car stopped in the middle of a road with the engine running, the driver asleep and a crying 7-month-old girl strapped into a child safety seat in the back. There was a half-empty bottle of rum in the car, police said."
|
|
Read article...
|
|
Self-mutilation popular with Tri-state teens
Cincinnati Enquirer | Submitted by: Son of Benway
The mere terms tri-state, tri-county, and tri-city are always a sign of hijinks:
"They look like cat scratches, but these nicks on the skin come from razor
blades, pocketknives or the plastic utensils picked up in fast-food
restaurants.  Paper clips, unbent, transform
into stabbing instruments. Cigarette lighters scorch concealed flesh. It's
called self-injury or "cutting," and almost every Tristate teen knows
it's not about skipping class."
|
|
Read article...
|
|
Those DC aliens were here exactly 50 years ago
Washington Post | Submitted by: Chris
The strangest thing about the scrambling of jets to protect DC from aliens
July 27th is not that it was the second time this has happened, but that the
first time was 50 years ago, July 26, 1952. This article from last week
(which predates the incident by several days) describes an encounter eerily
similar to what happened over DC this weekend.
|
|
Read article...
|
|
Inmates told not to get sex therapy
Boston Globe | Submitted by: Macki
"Convicted sex offenders are being advised by their lawyers not to seek
treatment while in prison for fear they might reveal things in therapy
that could keep them locked up for life, according to attorneys and
prosecutors who handle such cases."
|
|
Read article...
|
|
|
|
|


| Nachos $12.00 |
Corn Chips, cilantro, green chiles,avacado pico de gallo, cheddar-jack cheese. Add chicken $3, add steak $5 | |
|---|---|---|
| Buffalo Wings $8.50/eight $12.50/dozen |
Buffalo, spicy habanero, or tequila-cilantro | |
| Chips and Salsa $6.25 |
Add side of large guacamole $2 | |
| Onion Rings $8.50 |
Served with side of Ranch and Ketchup | |
| Spinach and Artichoke Dip $12.00 |
||
| Potato Skins $9.50 |
Cheddar-jack cheese, bacon, green onions, ranch | |
| Beer Battered Fries $6.50 |
Served with side of Ranch |
| The Minimalist $11.50 |
Your choice of protein | |
|---|---|---|
| The Arizonan $15.00 |
Bacon, cheddar, BBQ sauce, fried onions | |
| The Californian $15.00 |
Bacon, guacamole, jack | |
| The Diablo $14.00 |
Jalapeño bacon, jalapeños, american | |
| The Big Cheese $13.00 |
Choice of cheese: American, cheddar, jack, swiss, provolone, gorgonzola, or pepper jack | |
| The Touchdown $14.00 |
Mushrooms and onions sautéed in red wine, garlic, butter, and beef stock, swiss |
| Pulled Pork Sandwich $12.50 |
Coleslaw, BBQ, Brioche Bun | |
|---|---|---|
| Patty Melt $13.50 |
7 oz burger, swiss, grilled onions, 1000 island, rye | |
| Philly Cheesesteak $12.00 |
Top sirloin, grilled onions and bell peppers, provolone, hoagie roll | |
| BLT $12.00 |
Applewood smoked bacon, lettuce,tomato, mayo, sourdough | |
| French Dip $12.00 |
Top sirloin, provolone, hoagie roll, au jus | |
| Chicken Tenders $11.50 $12.50/Buffalo style |
Mushrooms and onions sautéed in red wine, garlic, butter, and beef stock, swiss | |
| Buffalo Chicken Sandwich $11.50 |
||
| Reuben on Rye $13.00 |
Corned beef, sauerkraut, swiss, 1000 island, marble rye |
| Chicken Mozzarella $12.50 |
Arugula, tomato, champagne vinaigrette, balsamic glaze | |
|---|---|---|
| Wilbur's House $8.50 |
Romaine, tomatoes, cucumbers, mushrooms, red onions, carrots, black olives, croutons. Add Chicken $3, Add Shrimp $4, Add Steak $4 | |
| Caesar $11.50 |
Romaine lettuce, grilled chicken, shaved parmesan, croutons. Sub Shrimp $4 | |
| Asian Chopped $12.50 |
Romaine, napa cabbage, chicken, carrots, red onions, bell peppers, snow peas, sesame ginger vinaigrette, wonton strips. Sub Shrimp $4 |
| Chicken $12.00 |
Chicken, cabbage, pico de gallo | |
|---|---|---|
| Carne Asada $13.50 |
Marinated carne asada, cabbage, and pico de gallo | |
| Carnitas $12.50 |
Pulled pork, coleslaw, pico de gallo, habanero cream, avocado-tomatillo salsa | |
| Baja Tacos $11.50 |
Cod, coleslaw, pico de gallo chipotle aioli | |
| Shrimp $13.00 |
Shrimp, pico de gallo, bell pepper slaw, jalape#241;o lime cream sauce | |
| Fried Fish $12.50 |
Fried cod, cabbage, pico de gallo, habanero crema |


--- layout: default title: Our Approach permalink: /our-approach ---
1. Highly secure infrastructure
- Running on Kubernetes and containers
- Everything express via configuration or code, nothing is manually done
- Strict rules on everything, including user access and control
2. CI/CD
- 100% automated deployments for complete programmatic control of the cluster
- Provides complete programmatic control of the cluster and what runs inside of it
- Segmentation of duties based on roles and servers


{{ vacancy.name}}
Price: {{ vacancy.price|linebreaksbr }}
Responsibility: {{ vacancy.responsibility}}
Requirements: {{ vacancy.requirements}}
Conditions: {{ vacancy.conditions}}
Skills: {{ vacancy.skills}}
Price: {{ vacancy.price|linebreaksbr }}
Responsibility: {{ vacancy.responsibility}}
Requirements: {{ vacancy.requirements}}
Conditions: {{ vacancy.conditions}}
Skills: {{ vacancy.skills}}


Users online
23
Current driver is
NOBOTRO
Your queue number
4
Drive time per user
1 minute
Car controls
w,a,s,d keys
Send


Aeri is a third year Computer Science at the University of California, San Diego. She is taking the course Intro to Human-Computer Interaction Design taught by Professor Scott Klemmer this Winter quarter. She is also minoring in business and aspires to work in a field that integrates design, technical and business elements.


Use the checkbox below to ignore references to local inner classes that do not require an import.
New in 10, Powered by InspectionGadgets


RT @confreaks: New Video! @mwrc -
DIY::Thread.profile -- Light-Weight Profiling in Pure Ruby by
@jasonrclark http://www.confreaks.com/videos/2344-mwrc2013-diy-thread-profile-light-weight-profiling-in-pure-ruby
4/30/2013, 12:45:59 PM
Favs: 0
Retweets: 0
link


The edges of the triangle are: 1. even distribution (random distribution), 2. cluster distribution, and 3. great circle distribution (VOLLMER, 1990)
Since the even distribution has the eigenvalues
this edge is , (here 3 E1).
A Cluster- (point-) distribution has the eigenvalues
,
therefore it is represented by (here E3-E1).
A great circle distribution has the eigenvalues
,
therefore this distribution is represented by , here 2(E2-E1).
The c-values are listed in the table on the right side.
The plotted points can be changed with the menus colour and symbol.


|
QuantLib: a free/open-source library for quantitative finance
Fully annotated sources - version 1.30
|
#include <ql/math/matrixutilities/tapcorrelations.hpp>
Public Member Functions | |
| FrobeniusCostFunction (Matrix target, ext::function< Matrix(const Array &, Size, Size)> f, Size matrixSize, Size rank) | |
| Real | value (const Array &x) const override |
| method to overload to compute the cost function value in x More... | |
| Array | values (const Array &x) const override |
| method to overload to compute the cost function values in x More... | |
| Public Member Functions inherited from CostFunction | |
| virtual | ~CostFunction ()=default |
| virtual Real | value (const Array &x) const |
| method to overload to compute the cost function value in x More... | |
| virtual Array | values (const Array &x) const =0 |
| method to overload to compute the cost function values in x More... | |
| virtual void | gradient (Array &grad, const Array &x) const |
| method to overload to compute grad_f, the first derivative of More... | |
| virtual Real | valueAndGradient (Array &grad, const Array &x) const |
| method to overload to compute grad_f, the first derivative of More... | |
| virtual void | jacobian (Matrix &jac, const Array &x) const |
| method to overload to compute J_f, the jacobian of More... | |
| virtual Array | valuesAndJacobian (Matrix &jac, const Array &x) const |
| method to overload to compute J_f, the jacobian of More... | |
| virtual Real | finiteDifferenceEpsilon () const |
| Default epsilon for finite difference method : More... | |
Private Attributes | |
| Matrix | target_ |
| ext::function< Matrix(const Array &, Size, Size)> | f_ |
| Size | matrixSize_ |
| Size | rank_ |
Definition at line 88 of file tapcorrelations.hpp.
| FrobeniusCostFunction | ( | Matrix | target, |
| ext::function< Matrix(const Array &, Size, Size)> | f, | ||
| Size | matrixSize, | ||
| Size | rank | ||
| ) |
Definition at line 90 of file tapcorrelations.hpp.
method to overload to compute the cost function value in x
Reimplemented from CostFunction.
Definition at line 126 of file tapcorrelations.cpp.
method to overload to compute the cost function values in x
Implements CostFunction.
Definition at line 131 of file tapcorrelations.cpp.
|
private |
Definition at line 99 of file tapcorrelations.hpp.
Definition at line 100 of file tapcorrelations.hpp.
|
private |
Definition at line 101 of file tapcorrelations.hpp.
|
private |
Definition at line 102 of file tapcorrelations.hpp.


Personal hyperlink generator
To generate hyperlinks, use the form below.
Generation parameters
Page address
Header text
The symbol “;” (semicolon) is used as a separator of header text variants.
Customer name
To delete this element, enter “-” (minus).
GET parameter for transferring header text
GET parameter for transferring customer name
Encryption key
Generate
Generation result
Header text
Hyperlink


Welcome to Fauxbar
Fauxbar maintains a mirrored index of your Chrome history and bookmarks.
Since Fauxbar has only just been installed, the index needs to be created first.
This may take a few moments. Once the index is complete, Fauxbar will be ready for use.
Click Start Indexing to begin.


{{define "about.html"}}
{{template "CommonHead"}}GoPkgDoc displays documentation for Go packages on Bitbucket, Github, Launchpad and Google Project Hosting.
GoPkgDoc is hosted on Google App Engine. The source code available on Github.
Send your ideas, feature requests and questions to<EMAIL_ADDRESS>Report bugs using the Github Issue Tracker.
GoPkgDoc produces documentation from Go source code. The guidelines for writing documentation for godoc apply to GoPkgDoc.
GoPkgDoc checks for package updates once per hour. You can force GoPkgDoc to refresh the documentation immediately by clicking the ⟲ link at the bottom of the package documentation page.
The GoPkgDoc bookmarklet navigates from pages on Bitbucket, Github Launchpad and Google Project Hosting to the package documentation. To install the bookmarklet, click and drag the following link to your bookmark bar: GoPkgDoc