Save
Load
Created by
Fredrik Wallgren
@fredrikwallgren
Code available at
github.com/walle/markdowneditor


Capture Photo with Image Data
Capture Photo with Image File
Capture Photo from Photo Library
Capture Photo from Photo Album


---
layout: default
---
What I'm Doing Now
- Holy moly, I quit my job at thoughtbot! I'm now trying to figure out what business I want to launch. I'm validating ideas by sending them to folks on my newsletter.
- I'm spinning up a new podcast with co-host Derrick Reimer.
- I'm writing on my a newsletter where I discuss programming and running software businesses.
- I'm looking for an awesome life partner. Know any smart, funny, accomplished ladies (or are one yourself)? Get in touch!
- I'm singing bass in a barbershop quartet.
- I'm using OmniFocus to manage my day-to-day todos.
This page was last updated May, 2017.


Addition with Sums Up to
l8
|
Let Us Learn
Look at the addition sentences below. What do you notice?
All of them have sums more than l0. You can add two numbers
to get a sum more than l0.
Look at the last fence. You can see that
9
+
9
=
18
.
The greatest sum you can get by adding two one-digit
numbers is l8.
Let Us Try
A.
Circle (
) the addition sentence that is true on each table.
B.
Write in the blank the sum for each addition sentence.
Let Us Practice
A.
Write in the circle the sum for each addition sentence.
B.
Write in the box the sum for each addition sentence.
C.
Circle (
) the correct answer for each addition sentence.
The first one has been done for you.
.


Updates history
What’s new in 3.3
- Release used in the manuscript “Nonpareil 3: Fast Estimation of Metagenomic
Coverage and Sequence Diversity”.
What’s new in 3.2
- Minor bug fixes and documentation updates.
What’s new in 3.1
- Implemented additional controls for the robustness of the Nonpareil sequence
diversity index (Nd).
- Revamped R code, now with Object-oriented structure and uniform R-style
options. The new package also includes test data and examples and is now
available at CRAN <https://CRAN.R-project.org/package=Nonpareil>.
What’s new in 3.0
- New k-mer kernel: A much faster kernel is now provided as an alternative to
the alignment-based kernel in previous versions.
What’s new in 2.4
- Subsampling now defaults to logarithmic: Previous versions subsampled
linearly, since 2.4 the -d option defaults to 0.7. Options -m, -M, & -i still
exist but they are ignored unless -d is 0.
- Nonpareil diversity: A logarithmic value of diversity is now reported,
indicating the horizontal position of the Nonpareil curves. This value is the
estimated mode of the fitted Gamma CDF, and cannot be calculated if model
fitting fails.
- Experimental dataset comparisons: The -q option allows the paired comparison
of datasets. The expectation is that the difference between the diversity of a
sample by itself (without using -q) and the diversity of the same sample
queried with a second sample (with -q) represents the distance between them.
Note that this method experimental and is not symetric (hence not a real
distance). Usually, the average of the distances in both ways can be used for
clustering of samples.
What’s new in 2.3
- Updates history.
- Nonpareil R package: No changes in the functions were introduced, but they are
now available as an R package complete with documentation. See Nonpareil curves.
- Make’s
install
target: This includes the installation of binaries, the
manual page, and the new Nonpareil R package.
- Simplified help: Only mandatory and commonly used arguments are now displayed
with
nonpareil -h
. Complete documentation is maintained both in the manual
page (man nonpareil
) and the online documentation. In order to maintain
a centralized documentation, the complete help messages for the Nonpareil R
package are now self-contained, and were removed from the
online documentation.


--- layout: default ---
Starting Fall 2023, I will be a postdoctoral fellow at the Harvard Center for Research on Computation and Society hosted by Cynthia Dwork. This spring, I finished my PhD in Electrical Engineering and Computer Science at the University of California, Berkeley where I was co-advised by Moritz Hardt and Peter Bartlett. Previously, I also did my undergrad in CS and Math at Harvard.
My research centers on the foundations of machine learning in society. During my PhD, I worked on developing the theory behind performative prediction and understanding the feedback loops that arise when algorithmic predictions inform social decision-making. Recently, I did some empirical work on evaluating risk prediction algorithms in Wisconsin Public Schools. More generally, I'm also interested in reinforcement learning, control theory, and machine learning in dynamic environments.
I was born and raised in San Juan, Puerto Rico. Before becoming interested in research, I was part of the Puerto Rican national team in sailing. I won the island's first gold medal at the 2013 Youth World Championships and represented Puerto Rico at the 2015 Pan American Games. Also, I was fortunate to be a part of Emirates Team New Zealand's winning campaign for the 35th America's Cup.
Contact: jcperdomo at berkeley dot edu


"text" is the default context type for fulltext search. It is based on a prefixtree. The index stores all available information including the words position in the indexed content. Therefore it supports phrase search.
"textSimple" is a special context type for fulltext search. It is based on the same prefixtree as the default "text" context type, but just stores which words occure in which documents, not their exact position. Therefore it is not possible to use phrase search on these contexts.
The benchmarks show that "textSimple" uses less memory and performs equal or bedder on the main operations update and delete.
x-axis shows number of documents in index
Indexing a dictionary: Content of each document is just a single word from the dictionary
Each document contains of a 100 words from the dictionary.


get on the right side of the world and we'll be able to talk more often
Biz20-Oct-19 04:08 AM
@CrisFI'm keen to help out wherever I can. Will keep a closer eye on it.
Thanks! Can never have too much support from other devs. I’ve got some other exciting stuff that will probably start getting detailed publicly a bit in two weeks or so too :). But sequential and not simultaneous is important haha. Luckily I’ve got some advisement from a good friend and colleague on the non-tech side of things
Doesn’t take a village, but definitely helps to have one
CrisF20-Oct-19 04:25 AM
Doesn’t take a village, but definitely helps to have one
Haha, too true
ComputerGenie 👴👴👴20-Oct-19 04:27 AM
is CFEKMYLO6 totally borked or is it just my server?
ComputerGenie 👴👴👴20-Oct-19 04:36 AM
stdout and debug look "normal" aside from the block notify error due to iguana not running
but it completely hangs
ComputerGenie 👴👴👴20-Oct-19 04:57 AM
screen even dies after a while
$ screen -r 1661.CFEKMYLO6
[screen is terminating]
$ screen -r 1661.CFEKMYLO6
There is no screen to be resumed matching 1661.CFEKMYLO6.
removes it from json and goes back to bed
CrisF20-Oct-19 05:38 AM
mine seems to have died also. Will see how re-start goes.
./stop.sh and -ac_name=CFEKMYLO6 stop aren't killing it either.
pkill -15 komodod did the trick.(edited)
kevinkatovic20-Oct-19 05:50 AM
Well thanks to nim nob willing to take 30% losses on pirate just to make sure I can't get 30% more I really am amazed at the intellect of doing harm rather than actually making money.  But ask my doctor he did it for nearly 3 years. And maybe hes no longer practicing.
CrisF20-Oct-19 06:03 AM
Hi @kevinkatovic,
You are in the wrong channel and/or Discord server (try the PIRATE Discord) and I'm having trouble following what you are talking about.
Please take this up with him in another forum.(edited)
CrisF20-Oct-19 06:50 AM
Haven't been able to get MYLO6 up with ./start.sh
smk762 - dracocanis ominator20-Oct-19 07:08 AM
@ComputerGenie 👴👴👴 whats your mining pool link for LABS again? Considering adding some hash
actually, nevermind... I'll resurrect the one I had running earlier....
blackjok3r20-Oct-19 07:30 AM
@CrisF that is not, not responding
smk762 - dracocanis ominator20-Oct-19 07:31 AM
alternatively, I can redirect my old mining url to your pool if you want. It's still listed on the website but has been offline for a while
tbh, I'm not a fan of censorship, but abusive talk from non-contributing fools I consider grounds for removal
1
1
blackjok3r20-Oct-19 07:34 AM
I guess so... if they continue to spam, we will need to do something... But ignoring them shoul;d eventually work in any case, because nobody has time to talk to them self on discord for hours.
smk762 - dracocanis ominator20-Oct-19 07:35 AM
you'd be surprised....
I forget, do we need to disable coinbase for the pool?
blackjok3r20-Oct-19 07:41 AM
I would just use it all the time myself... because it works for everything
CrisF20-Oct-19 07:49 AM
I'm not a fan of censorship, but abusive talk from non-contributing fools
Yeah, this doesn't seem to be a matter of censorship to me. This just isn't the forum for those discussions. Take it to DM, or another appropriate place.
This is the 2nd or possibly the 3rd time that the above was brought up in here.
I don't mind swearing in many contexts, but a message that is simply f off to someone, isn't something for what we're doing here.
I would like to bring projects who are serious about devving their project to Labs.
This just seems to be sensible to me.(edited)
smk762 - dracocanis ominator20-Oct-19 07:50 AM
disassociation > guilt by association
CrisF20-Oct-19 07:51 AM
I'm not worried that they'll think badly of me. Some of these people I'll meet in person. But it would certainly reflect on my judgement.
Rant over, need to get me some sugar.
blackjok3r20-Oct-19 08:30 AM
This is why we need more channels...
CrisF20-Oct-19 08:45 AM
Yeah, agree. #channel-babel > /dev/null 2>&1
Did I get that right?
If so, I suggest the channel #/dev/null 2>&1
Rather than delete, just move the messages there.
Or send to a burn address.
ComputerGenie 👴👴👴20-Oct-19 09:09 AM
@smk762 - dracocanis ominatorhttp://mininglabs.rocks@CrisF - If #kmdlabs is the "wrong channel" for LABS pool talk, then wtf would make PIRATE server the "right" place?
smk762 - dracocanis ominator20-Oct-19 09:09 AM
cheers
smk762 - dracocanis ominator20-Oct-19 09:18 AM
If you have no objections, I've setup proxy forwarding from http://pool.cryptocartography.io/ to http://mininglabs.rocks/ so the link on the KMD LABS website goes somewhere useful.
Just setup my pool again, but it's not half as pretty, and probably best on a different server than where I put it.(edited)
I've added the humble hash of a 1070 GPU while testing it all, but may add some paid hash later this week
ComputerGenie 👴👴👴20-Oct-19 09:20 AM
no matter to me, it's still got the flaw in payment module and I never make anything on it anyway
smk762 - dracocanis ominator20-Oct-19 09:20 AM
whats the flaw?
ComputerGenie 👴👴👴20-Oct-19 09:20 AM
it doesn't subtract the pool fee properly and eventually pays more than it should
smk762 - dracocanis ominator20-Oct-19 09:21 AM
lol, bank error in your favour to the user? Very generous of you.
ComputerGenie 👴👴👴20-Oct-19 09:22 AM
Well, since NN income pays all of my server fees and I needed the summer/fall to get things done around the home, I just left it
I've found the where and why and fixed it in the next iteration of my pools, but hadn't planned on updating them until Nov
smk762 - dracocanis ominator20-Oct-19 09:24 AM
any recommendations for hash providers?
ComputerGenie 👴👴👴20-Oct-19 09:24 AM
recommendations for what?
smk762 - dracocanis ominator20-Oct-19 09:25 AM
like miningrigrentals vs nicehash etc
Oszy20-Oct-19 09:25 AM
im in favor of mrr
smk762 - dracocanis ominator20-Oct-19 09:25 AM
sounds biblical
Oszy20-Oct-19 09:26 AM
for lower cheaper hashrates, and shorter periods of time, it's more convenient for me.
ComputerGenie 👴👴👴20-Oct-19 09:26 AM
if you can find the right renter, mrr beats nh every time
most of the chains we deal with, rentals are a waste of coinage because they set the mindiff too high
smk762 - dracocanis ominator20-Oct-19 09:27 AM
I'm offering liquidity on atomicDEX once listed, so just want to keep a decent baseline and set pricepoint at near cost of mining. not sure how I'll work that out, but thats the goal anyway
Oszy20-Oct-19 09:28 AM
oh you're going to piss of kevin
ComputerGenie 👴👴👴20-Oct-19 09:28 AM
"cost of mining" is a hard thing to keep a regular measure of
if doubles every time kevin comes in complaining that he can't dump as many
smk762 - dracocanis ominator20-Oct-19 09:29 AM
its a reciprocal arangement.
Oszy20-Oct-19 09:29 AM
better buy some now at .000001 cents idk how much you will be able to mine to sustain as LP
he dumps it to you
ComputerGenie 👴👴👴20-Oct-19 09:31 AM
can get like 300x more from staking than he can from mining (per investment $)
smk762 - dracocanis ominator20-Oct-19 09:31 AM
funny thing is the qty of mined coins is only part of the equation. double value means half mined = same ROI. I'm happy to hold and distribute as bountys, not so happy to see constant dumping from the uninvolved.
Oszy20-Oct-19 09:31 AM
dumpers be dumpin' right Genie?
staking ftw
ComputerGenie 👴👴👴20-Oct-19 09:32 AM
sadly so
smk762 - dracocanis ominator20-Oct-19 09:32 AM
I'm also staking (funny how short sigthed dumpage is in this respect)
ComputerGenie 👴👴👴20-Oct-19 09:32 AM
I suppose that his constant dumping is good for someone, though
Oszy20-Oct-19 09:33 AM
based on vol pretty sure he's not the only dumper :d
but definitely good for others
ComputerGenie 👴👴👴20-Oct-19 09:34 AM
I haven't staked nearly as much as I should, but there's no part of me that could imagine me selling any now
fek that $100, I want $3 now
Oszy20-Oct-19 09:35 AM
prob wants to pay for his latte with btc
1
ComputerGenie 👴👴👴20-Oct-19 09:35 AM
I can get folks selling for need, I've been there, but straight dumping is a bad plan for LABS imo
I'd bet everything I own that LABS can sustain 30x growth longer than BTC can
smk762 - dracocanis ominator20-Oct-19 09:37 AM
I have no problem with dumping, as LP, I'm selling also (and buying). Just prefer those selling actually care about the project, not just how much lattes they can buy while they're not using the caffiene for something useful
ComputerGenie 👴👴👴20-Oct-19 09:38 AM
I'd almost prefer if someone were dumping LABS to buy WLC rather than BTC
smk762 - dracocanis ominator20-Oct-19 09:38 AM
or dirty fiat
CrisF20-Oct-19 09:39 AM
Hi @ComputerGenie 👴👴👴, I was reffering to his last message about talking in PIRATE
Well thanks to nim nob willing to take 30% losses on pirate just to make sure I can't get 30% more
I need to buy some Labs.
smk762 - dracocanis ominator20-Oct-19 09:40 AM
I'll willingly take losses today for a hamburger on tuesday(edited)
ComputerGenie 👴👴👴20-Oct-19 09:40 AM
hasn't mined PIRATE outside of a solo pool, ever
CrisF20-Oct-19 09:40 AM
Isn't Labs going to be on the next AtomicDEX update?
ComputerGenie 👴👴👴20-Oct-19 09:40 AM
I think he took some of the good drugs when he wrote "pirate"
smk762 - dracocanis ominator20-Oct-19 09:41 AM
yeah, which is why I;m preparing
1
CrisF20-Oct-19 09:41 AM
Yeah, he was babbling more incoherently that usual.
ComputerGenie 👴👴👴20-Oct-19 09:42 AM
I need to buy some Labs.
I'm selling some at 4 KMD each...
CrisF20-Oct-19 09:43 AM
At that rate I'd have to drop from some to a few...
ComputerGenie 👴👴👴20-Oct-19 09:43 AM
LOL
smk762 - dracocanis ominator20-Oct-19 09:43 AM
I've already got some on mm2 via CLI
1
ComputerGenie 👴👴👴20-Oct-19 09:44 AM
but they are special edition LABS. One of a kind.
2
2
2
Special Edition LABS came from the blood, sweat, and tears of all the labor we put in during testing
Minimum buy order: a super low, low exclusive of 20k LABS per order(edited)
CrisF20-Oct-19 09:46 AM
Yeah, good times that :)
Oszy20-Oct-19 09:48 AM
back on topic, if I already have the utxo's set for staking long ago, and i want to increase the pool balance (send like 10K or more to segid 0) , running the ./RNDsendmany.py again locks the old funds so old utxo's won't be messed up?
or is there another script that distributes the newly arrived funds only without touching old utxo's?
ComputerGenie 👴👴👴20-Oct-19 09:49 AM
got me, I barely ever used the py bits
I just bash wrote whatever I wanted it to do
Oszy20-Oct-19 09:50 AM
i can see locking in the code but it "feels" like it messed up for me no stakes in past 12 hours and usually i have multiple in an hour
maybe it's just kevin started staking taking all the blocks
ComputerGenie 👴👴👴20-Oct-19 09:51 AM
run a listunspent with a minconf that would let you see if the "older" ones are still there
slap |jq length on the end of it and it will count how many there are (provided you have jq installed)


Oracle
Big Data Spatial and Graph Property Graph
Hands on Lab
1
Exercise: Start NoSQL Database & check it is up and running
1.1
Steps to
Start the Oracle NoSQL Database
1.2 Click the Start/Stop Services icon on the Desktop.
1.3 A terminal will pop up showing a list of Oracle Big
Data Lite Services
1.4 Use Up/Down keys on your keyboard to scroll up and
down to find the line containing NoSQL. Note that you may need to scroll down
beyond the first page.
1.5 Make sure that line is checked (one can toggle the
state by pressing Space key). Refer to the following screen shot for what it
looks like on screen.
1.6 Hit Enter and wait for the popped up terminal to
disappear.
1.7
Verification
steps:
1.8 Open the Firefox browser
(there is a Firefox icon on the Desktop).
1.9 Open the following web site and one should see a
"KV ADMINISTRATION" page
http://<IP_ADDRESS>:5001/
In the above page, make sure
it says "0 Down" on the page.
1 RepNodes (1 Running, 0 Down, 0 Needing
Attention)
1 StorageNodes (1 Running, 0 Down, 0 Needing
Attention)
2
Exercise: Find
influencers in a social graph
2.1
Get familiar with the example graph data
In the following small social graph about well-known people
and companies, there are four distinct relationships: leads, collaborates,
feuds, and admires.
2.2 Page Rank
PageRank uses the number and
quality of edges to a vertex to determine how important a vertex is. A good
description of PageRank can be found in the following
web page, which you can visit later. Intuitively, a vertex tends to have a high
PageRank value (PR) when there are many links or
links from important vertices to it.
https://en.wikipedia.org/wiki/PageRank
2.3
Start Groovy
Groovy is a powerful language with static-typing and static compilation capabilities. In the following exercise, we use Groovy as an interactive SHELL/Script environment.
NOTE: Please only copy and paste commands in shaded box.
cd
/opt/oracle/oracle-spatial-graph/property_graph/dal/groovy/
sh
gremlin-opg-nosql.sh
2.4
Load "Connections" Graph into Oracle NoSQL Database
//
Provide Oracle NoSQL Database server name and port
server = new ArrayList<String>();
server.add("bigdatalite:5000");
//
Create a graph config that
contains the graph name "connections"
//
KV store name "kvstore", edge property "weight"
to be loaded into
//
in-memory graph, etc.
cfg = GraphConfigBuilder.forPropertyGraphNosql()
\
.setName("connections").setStoreName("kvstore")
\
.setHosts(server)
\
.addEdgeProperty("weight", PropertyType.DOUBLE,
"1000000") \
.setMaxNumConnections(2).build();
//
Get an instance of OraclePropertyGraph which is a key Java
//
class to manage property graph data
opg = OraclePropertyGraph.getInstance(cfg);
//
Set the Degree of Parallelism (DOP) for clearing graph data
//
from the existing OraclePropertyGraph instance
opg.setClearTableDOP(2); // will
return NULL because this
// API has no return value.
// It is expected.
opg.clearRepository();
// remove all vertices and edges
//
OraclePropertyGraphDataLoader is a key Java class
//
to bulk load property graph data into the backend
databases.
opgdl=OraclePropertyGraphDataLoader.getInstance();
vfile="../../data/connections.opv" // vertex flat file
efile="../../data/connections.ope" // edge flat file
//
Set Degree of Parallelism (DOP) to 2 and load in parallel the
//
above property graph data files into the database.
opgdl.loadData(opg, vfile, efile, 2);
//
// export this property graph out in JSON format
OraclePropertyGraphUtils.exportGraphSON(opg, "/u02/connections.graphson", System.out)
opg.getVertices();
// NOTE:
expected output of the above command is a list
// of
vertices in serialized format. An example output line
// is as
follows. Note that you may see a different output.
==>Vertex
ID 78 {country:str:United
States,
name:str:Hosain Rahman, occupation:str:CEO of
Jawbone}
2.5
Get In-Memory Analyst
//
Create in-memory analytics session and analyst
session=Pgx.createSession("session_ID_1");
analyst=session.createAnalyst();
//
Read the graph from database into memory
pgxGraph = session.readGraphWithProperties(opg.getConfig());
//
create a helper function for pretty printing
def p(v) { s1=v.getProperty("name");
\
if (s1.length() > 30) return
s1;
\
s=s1;
\
for (int idx
= 0; idx < 30 - s1.length(); idx++)
\
{ s=s+ "
";};
\
return ("vertex " + s + " id
" + v.getId()); \
}
2.6
Find Influencers
//
Execute Page Rank
rank=analyst.pagerank(pgxGraph, 0.00000001, 0.85, 5000);
//
Get 3 vertices with highest PR values
it = rank.getTopKValues(3).iterator();
\
while(it.hasNext())
{
\
v=it.next();
\
id=v.getKey().getId();
\
pr=v.getValue();
\
System.out.println("Influencers --->" + \
p(opg.getVertex(id)) +
" pr= " + pr); \
}
:quit
·
Expected
output is something as follows:
Influencers
--->vertex Barack Obama id 1
pr= 0.055458..
Influencers
--->vertex Nicolas Maduro
id 60 pr= 0.031347..
Influencers
--->vertex
NBC id
42 pr= 0.025833..
3
Exercise: Detect Connectivity
The algorithms used in this exercise are
based on Dijkstra and Bellman-Ford. For Dijkstra, we adopt an optimized version
called Bi-directional Dijkstra which usually outperforms the original,
single-directional Dijkstra. Dijkstra is used to find a shortest path
between two given vertices. Bellman-Ford, on the other hand, finds all shortest
paths from a single starting point.
3.1 Shortest path on a weighted
graph
To run shortest path in a property graph, edges in that graph
needs to have a "weight" property or a numeric value-based property
that can be used to denote an edge weight.
3.2
Start Groovy
cd
/opt/oracle/oracle-spatial-graph/property_graph/dal/groovy/
sh
gremlin-opg-nosql.sh
3.3 Load Graph (in .graphson format) into Oracle NoSQL Database
server = new ArrayList<String>();
server.add("bigdatalite:5000");
cfg = GraphConfigBuilder.forPropertyGraphNosql()
\
.setName("connections").setStoreName("kvstore")
\
.setHosts(server)
\
.addEdgeProperty("weight", PropertyType.DOUBLE,
"1000000") \
.setMaxNumConnections(2).build();
opg = OraclePropertyGraph.getInstance(cfg);
opg.setClearTableDOP(2);
opg.clearRepository();
//
Load a property graph data in GraphSON format
OraclePropertyGraphUtils.importGraphSON(opg,
"/u02/connections.graphson",
System.out);
opg.getEdges();
// NOTE:
expected output of the above command is a list
// of edges in
serialized format. An example output line
// is as
follows. Your output might be different.
==>Edge
ID 1146 from Vertex ID 65 {country:str:China, name:str:Alibaba, type:str:e-commerce
company} =[feuds]=> Vertex ID 69 {country:str:China,
name:str:Tencent, type:str:mass
media} edgeKV[{weight:dbl:1000.0}]
3.4 Create Lucene based text index
//
Configure index parameters for Lucene
indexParams = OracleIndexParameters.buildFS(1, 4, 10000, \
50000, true, "/u02/lucene-index");
//
Set the index parameters into the OraclePropertyGraph
instance
opg.setDefaultIndexParameters(indexParams);
//
Get ready to create text index for 4 property names
indexedKeys = new
String[4];
indexedKeys[0] =
"name";
indexedKeys[1] =
"role";
indexedKeys[2] =
"religion";
indexedKeys[3] =
"country";
//
create auto indexing on above properties for all vertices
opg.createKeyIndex(indexedKeys, Vertex.class);
3.5 Find starting and destination
vertex
//
Find the starting vertex with text query
//
Pick the first one out of the
matches because
//
there could be multiple matches.
vStart = opg.getVertices("name", "*Obama*",
true) \
.iterator().next();
//
and then the destination vertex with text query
vEnd = opg.getVertices("name", "Serena*", true)
\
.iterator().next();
//
create the same pretty print helper function as before
def p(v) { s1=v.getProperty("name");
\
if (s1.length() > 30) return
s1;
\
s=s1;
\
for (int idx
= 0; idx < 30 - s1.length(); idx++)
\
{ s=s+ "
";};
\
return ("vertex " + s + " id
" + v.getId()); \
}
3.6 Compute shortest path with
Dijkstra
//
Get in-memory analytics instance, create session
instance = Pgx.getInstance();
session = instance.createSession("session_ID_1");
analyst = session.createAnalyst();
//
Read the graph from database into memory
pgxGraph = session.readGraphWithProperties(opg.getConfig());
weight = pgxGraph.getEdgeProperty("weight");
path=analyst.shortestPathDijkstra(pgxGraph, vStart.getId(),
vEnd.getId(),
weight);
//
Are these two vertices connected?
path.exists();
// should return true
//
What is the weight of the path?
path.getPathLengthWithCost(); //
should return 2.0
//
Print out all vertices on the shortest path
it=path.getVertices().iterator();
\
while(it.hasNext())
{
\
v=it.next();
\
id=v.getId();
\
System.out.println("Shortest
path --->"+ \
p(opg.getVertex(id)));
\
}
·
The expected output is as follows:
Shortest
path --->vertex Barack
Obama
id 1
Shortest
path --->vertex Beyonce
id 2
Shortest
path --->vertex Serena Williams
id 35
3.7 Compute shortest path with
Bellman-Ford
weight = pgxGraph.getEdgeProperty("weight");
allPaths=analyst.shortestPathBellmanFord(
pgxGraph, vStart.getId(), weight);
//
Get the shortest path that ends with Alibaba
vEnd = opg.getVertices("name", "Alibab*",
true).iterator().next();
path = allPaths.getPath(pgxGraph.getVertex(vEnd.getId()))
//
Are these two vertices connected?
path.exists();
// should return true
//
What is the weight of the path?
path.getPathLengthWithCost(); //
should return 2001.0
//
Print out all vertices on the shortest path
it=path.getVertices().iterator();
\
while(it.hasNext())
{
\
v=it.next();
\
id=v.getId();
\
System.out.println("Shortest
path --->"+ \
p(opg.getVertex(id)));
\
}
:quit
·
Expected output of the above command line is
Shortest
path --->vertex Barack
Obama
id 1
Shortest
path --->vertex Beyonce
id 2
Shortest
path --->vertex
Amazon
id 37
Shortest
path --->vertex Alibaba
id 65
4
Exercise: Identify communities
in a social graph
Communities
are very important to a social graph because individuals of a community tend to
share a set of common characteristics or exhibit one or multiple common
behaviors. This exercise will explore several community detection algorithms.
4.1 Weakly Connected Components(WCC)
A directed graph G is weakly connected if there is a path
between every pair of vertices of the graph, when replacing all G's directed
edges with undirected edges.
4.2 Sparsification
The sparsification technique adopted by Oracle's property
graph feature looks at all edges of every single vertex in a localized fashion,
and remove those edges that are more likely to, upon removal, increase
fragmentation of the graph. A key goal of sparsification is to increase the
number of clusters in a graph after removing a number of edges from the graph.
4.3 Label
propagation
The label propagation algorithm used by Oracle's property
graph feature initializes every vertex with a unique label and at every
subsequent step updates a vertex's label with one label shared by most of its
neighbors.
4.4 Start Apache HBase
4.5 Click the Start/Stop Services
icon on the Desktop.
4.6 A terminal will pop up showing a list of Oracle Big
Data Lite Services
4.7 Use Up/Down keys on your keyboard to scroll up and
down to find the line containing "HBase"
4.8 Make sure that line is checked (one can toggle the state
by pressing Space key). In addition, find and check lines containing
"Zookeeper" and "HDFS" if they are not already checked.
4.9 Hit Enter and wait for the
popped up terminal to disappear.
4.10
Start Groovy
cd
/opt/oracle/oracle-spatial-graph/property_graph/dal/groovy/
sh
gremlin-opg-hbase.sh
4.11 Load
connections PG graph into Apache HBase
//
Get a graph config that has graph name
"connections" and
//
Zookeeper host, port, and some other parameters
cfg = GraphConfigBuilder.forPropertyGraphHbase()
\
.setName("connections")
\
.setZkQuorum("bigdatalite").setZkClientPort(2181)
\
.setZkSessionTimeout(120000).setInitialEdgeNumRegions(3)
\
.setInitialVertexNumRegions(3).setSplitsPerRegion(1)
\
.addEdgeProperty("weight",
PropertyType.DOUBLE, "1000000") \
.build();
//
Get an instance of OraclePropertyGraph which is a key Java
//
class to manage property graph data
opg = OraclePropertyGraph.getInstance(cfg);
opg.clearRepository();
//
OraclePropertyGraphDataLoader is a key Java class
//
to bulk load property graph data into the backend
databases.
opgdl=OraclePropertyGraphDataLoader.getInstance();
vfile="../../data/connections.opv"
efile="../../data/connections.ope"
opgdl.loadData(opg, vfile, efile, 2);
//
Now add a tiny loop of just two vertices, vx and vy, with
//
Blueprints Java API
vx = opg.addVertex(1234l);
vy = opg.addVertex(1235l);
//
Add an edge from vx to vy,
and another from vy to vx
e1=opg.addEdge(3000l,
vx, vy, "likes");
e1.setProperty("weight", 1.1d);
e2=opg.addEdge(3001l,
vy, vx, "likes");
e2.setProperty("weight", 1.5d);
opg.commit();
4.12
Get in-memory analyst
//
Create an in memory analytics session and analyst
session=Pgx.createSession("session_ID_1");
analyst=session.createAnalyst();
//
Read graph data from database into memory
pgxGraph = session.readGraphWithProperties(opg.getConfig());
4.13 Run
community detections
//
Run WCC algorithm
partition = analyst.wcc(pgxGraph)
partition.size() // should
be 2
//
Get the first community (collection of vertices)
vertexCollection = partition.getPartitionByIndex(0);
//
Run Label Propagation
partition = analyst.communitiesLabelPropagation(pgxGraph)
//
How many communities do we have?
partition.size()
//
Get the first community by ID
vertexCollection = partition.getPartitionByIndex(0);
· An example
output of the above command is as follows. Yours might be different:
==>PgxVertex with ID 77
==>PgxVertex with ID 78
·
Now we have the communities detected, you can
run the following to look into a community that has an entity of interest.
//
Look into the community that has the vertex Alibaba
v
= opg.getVertices("name", "Alibaba").iterator().next();
vertexCollection = partition.getPartitionByVertex(pgxGraph.getVertex(v.getId()));
//
Get details of the 4 vertices in this community.
//
"l" below indicates a Long integer
opg.getVertex(69l);
opg.getVertex(68l);
opg.getVertex(65l);
opg.getVertex(71l);
:quit
5
Appendix
5.1 Quick
fix when Groovy is acting up
The Groovy shell environment may get into a weird state when illegal or invalid input is provided. An easy way to fix this is to hit Enter a couple of times, type in :clear, hit Enter again and finally verify by typing in "1+1". Make sure that Groovy responds with 2. As an illustration,
opg-hbase> a = new Class_That_Does_Not_Exist(
opg-hbase>
opg-hbase> "
groovysh_parse: 22: unexpected
char: '"' @ line 22, column
1.
"
^
1 error
Display stack
trace? [yN]
opg-hbase>
opg-hbase>
opg-hbase> :clear
opg-hbase>
opg-hbase> 1+1
==>2
opg-hbase>
5.2 "Groovier" style
Most of the code snippets in this document are Java based so
that it is quite straightforward to copy and paste them into a Java code. One
can, however, use a more Groovy oriented syntax.
For example,
it=path.getVertices().iterator();while(it.hasNext()) {v=it.next();id=v.getId();System.out.println("Shortest
path --->"+p(opg.getVertex(id)));}
can be written as:
path.getVertices().collect {
"Shortest path ---> " + p(opg.getVertex(it.id))
}
5.3 Query an existing Solr-based property graph text index
This virtual machine
comes with a property graph stored in Oracle NoSQL Database (and also Apache HBase) with a pre-configured text index for several vertex
attributes. The text index itself is stored in SolrCloud.
In the following steps, we are going to start Solr/HBase/Zookeeper/HDFS, pick a Solr
core (index) for all the vertices of that property graph, and finally query
using Solr's web interface.
5.3.1 Click the Start/Stop Services
icon on the Desktop.
5.3.2 A terminal will pop up showing a list of Oracle Big
Data Lite Services. Check Zookeeper, HDFS, HBase, and Solr. Hit Enter. Wait for the pop-up terminal to
disappear.
5.3.3 Open the following web page with Firefox. One should
see the Apache Solr icon on the top left corner.
5.3.4
Pick one of the pre-created OSG_PG
cores by clicking on the Core
Selector drop-down menu, select and
click on the first entry with name containing "OSG_PG_AV_VERT". Scroll down and click on Query.
A query interface shows up on the right-hand side. Type in "role_str:*economist" in the first text box under
"---- common -----". Scroll down and click Execute Query. You should
see one match that contains Janet
Yellen, which is a vertex (with id=4) defined in the property graph. This
vertex has a few indexed properties including country="United
States", role="American economist", and name="Janet
Yellen". The suffix "_str" denotes
that the data type of the property value is String.
Challenge question: can you perform a faceted search using field name
"role_str" as a facet?
Hint:
1) go to the "q" text box, type in "*.*"
2) go to the "facet.field" text box, type in "role_str" 3) click Execute Query
and you will see facet counts
at the bottom of the page.
5.4 Create an additional Solr-based text index for property graph data
5.4.1
Click the Start/Stop Services
icon on the Desktop.
5.4.2
A terminal will pop up showing a list
of Oracle Big Data Lite Services. Check Zookeeper, HDFS, HBase, and Solr. Hit Enter. Wait for the pop-up terminal to
disappear.
5.4.3 Open the following web page with Firefox. One should
see the Apache Solr icon on the top left corner.
5.4.4 Start Groovy
cd
/opt/oracle/oracle-spatial-graph/property_graph/dal/groovy/
sh
gremlin-opg-hbase.sh
5.4.5 Create an auto index for a new vertex key (attribute
name) using Data Access Layer (DAL) Java APIs
//
Get a graph config that has graph name "connectionsHBase"
and
//
Zookeeper host, port, and some other parameters
cfg = GraphConfigBuilder.forPropertyGraphHbase()
\
.setName("connectionsHBase") \
.setZkQuorum("bigdatalite").setZkClientPort(2181)
\
.setZkSessionTimeout(120000).setInitialEdgeNumRegions(3)
\
.setInitialVertexNumRegions(3).setSplitsPerRegion(1)
\
.addEdgeProperty("weight",
PropertyType.DOUBLE, "1000000") \
.build();
//
Get an instance of OraclePropertyGraph which is a key Java
//
class to manage property graph data
opg = OraclePropertyGraph.getInstance(cfg);
//
Run a text query against the existing text index (configured to use Solr)
//
to find vertices with key="role" and value
//
string that ends with "economist"
//
A single match (Vertex ID 4) with name="Janet
Yellen" is expected.
opg.getVertices("role",
"*economist", true);
At
this moment, we do not have a text index on "company" key. Hence, the
following query has 0 matches.
//
Find all vertices that have a "company" K/V attribute
opg.getVertices("company",
"*", true);
Now,
we are going to build a text index for that "company" key of
vertices.
// Set the necessary parameters
to build a Solr based text
index
//
szSolrServerUrl = "bigdatalite:2181/solr"
szNodeSet =
"bigdatalite.localdomain:8983_solr"
indexParams = OracleIndexParameters.buildSolr("opgconfiglowercase", \
szSolrServerUrl,
szNodeSet, 15 /*ZKTimeout*/,
1 /*nShards*/,
\
1/*nRepF*/, 1/*shardsPerNode*/, 1/*numConnections*/, \
10000/*batchSize*/,500000/*commitSize*/, 20/*writeTimeout*/);
opg.setDefaultIndexParameters(indexParams);
// Create an automatic
text index for "company" key
opg.createKeyIndex("company",
Vertex.class);
Rerunning
the same query will yield many more matches.
opg.getVertices("company",
"*", true);
Finally,
drop the newly created text index for "company" property (so that
this exercise can be repeated).
opg.dropKeyIndex("company",
Vertex.class);
:quit
Oracle Big Data Spatial and Graph Property Graph Hands
on Lab, 2015


Building things is fun
Hello from Greenfox
Első mondat. Második mondat. Harmadik mondat. Sokadik mondat. Blablabla...
Let's see a list
This is
a very nice
list
on the first level
but it
can go
deeper
and notice I have Roman numbering
back to normal


This example demonstrates real-time push-notifications from a WebSocket. To see the real-time updates:
Note: To further enhance real-time experience, the Grid will also display changes from other users, which currently happen to perform CRUD operations on the same demo. If you refresh the page, all changes will be lost, because the remote service only broadcasts changes, it does not actually save them.


--- title: "mtcars Data Analysis" author: "Rihad Variawa" date: 2019-01-03 categories: ["R"] tags: ["plot", "regression"] image_preview: "" header: image: "headers/mtc.jpg" summary: 'Which type of vehicle transmission is more fuel efficient?' ---
This document focuses on the analysis of the mtcars dataframe.
Description of dataframe mtcars can be found at the link
is a vehicle with auto or manual transmission better in terms of miles p/gallons(mpg)?
quantify the (mpg) difference between auto & manual transmission.
I will asssess both queries from different perspectives employing a set of methodologies that can be broadly grouped as follows:
Analysing the target variable alone by splitting the observations into two groups, i.e. vehicles with auto or manual transmission. I shall deploy 3 analysis:
str(mtcars)
'data.frame': 32 obs. of 11 variables:
$ mpg : num 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
$ cyl : num 6 6 4 6 8 6 8 4 4 6 ...
$ disp: num 160 160 108 258 360 ...
$ hp : num 110 110 93 110 175 105 245 62 95 123 ...
$ drat: num 3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
$ wt : num 2.62 2.88 2.32 3.21 3.44 ...
$ qsec: num 16.5 17 18.6 19.4 17 ...
$ vs : num 0 0 1 1 0 1 0 1 1 1 ...
$ am : num 1 1 1 0 0 0 0 0 0 0 ...
$ gear: num 4 4 4 3 3 3 3 4 4 4 ...
$ carb: num 4 4 1 1 2 1 4 2 2 4 ...
We notice that the set is relatively small! We’ll look at the desriptive statistics for each field - (min, 1st Q, Median, Mean, 3rd Q, max)
summary(mtcars)
mpg cyl disp hp
Min. :10.40 Min. :4.000 Min. : 71.1 Min. : 52.0
1st Qu.:15.43 1st Qu.:4.000 1st Qu.:120.8 1st Qu.: 96.5
Median :19.20 Median :6.000 Median :196.3 Median :123.0
Mean :20.09 Mean :6.188 Mean :230.7 Mean :146.7
3rd Qu.:22.80 3rd Qu.:8.000 3rd Qu.:326.0 3rd Qu.:180.0
Max. :33.90 Max. :8.000 Max. :472.0 Max. :335.0
drat wt qsec vs
Min. :2.760 Min. :1.513 Min. :14.50 Min. :0.0000
1st Qu.:3.080 1st Qu.:2.581 1st Qu.:16.89 1st Qu.:0.0000
Median :3.695 Median :3.325 Median :17.71 Median :0.0000
Mean :3.597 Mean :3.217 Mean :17.85 Mean :0.4375
3rd Qu.:3.920 3rd Qu.:3.610 3rd Qu.:18.90 3rd Qu.:1.0000
Max. :4.930 Max. :5.424 Max. :22.90 Max. :1.0000
am gear carb
Min. :0.0000 Min. :3.000 Min. :1.000
1st Qu.:0.0000 1st Qu.:3.000 1st Qu.:2.000
Median :0.0000 Median :4.000 Median :2.000
Mean :0.4062 Mean :3.688 Mean :2.812
3rd Qu.:1.0000 3rd Qu.:4.000 3rd Qu.:4.000
Max. :1.0000 Max. :5.000 Max. :8.000
#### generate subset: automatic and manual cars ####
cars_auto = subset(mtcars, am == 0)
cars_manu = subset(mtcars, am == 1)
# dimensions
dim(mtcars)
[1] 32 11
dim(cars_auto); dim(cars_manu)
[1] 19 11
[1] 13 11
# sample means mpg by group
mean(cars_auto$mpg); mean(cars_manu$mpg)
[1] 17.14737
[1] 24.39231
sd(cars_auto$mpg); sd(cars_manu$mpg)
[1] 3.833966
[1] 6.166504
# % increase in mpg based on the sample mean
(mean(cars_manu$mpg) - mean(cars_auto$mpg))/mean(cars_auto$mpg)
[1] 0.4225103
To get a feel for the distribution of some of the data to be analyzed, we plot some histograms, the first against mpg - auto transmission, the second against mpg - manual transission:
boxplot(mpg ~ am, data = mtcars, col=rgb(0.3,0.2,0.5,0.6), ylab = "mpg", xlab = "am")
Conclusions:
The analysis on sample means concludes that sample mean of mpg for vehicles with manual trasmission is greater than automatic:
Now I test if this difference (i.e. in the sample means) is statistically significant (from zero).
I execute a t.test for unpaired samples: I assume inequality in variances for the two groups for the computation of the pooled variance.
#### 95% confidence interval for mean difference ####
# Question: is the sample mean difference significant?
t.test(cars_manu$mpg, cars_auto$mpg, paired = F, var.equal = F)
Welch Two Sample t-test
data: cars_manu$mpg and cars_auto$mpg
t = 3.7671, df = 18.332, p-value = 0.001374
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
3.209684 11.280194
sample estimates:
mean of x mean of y
24.39231 17.14737
Conclusions:
I test the robustness of results obtained in the previous step.
I execute a permutation test by shuffling the allocation mean > groups with 100,000 trials of Montecarlo simulation.
#### Permutation test ####
# what if I shuffle the am groups and calculate the mean?
# get target variable and group vectors
y = mtcars$mpg
group = mtcars$am
y; group
[1] 21.0 21.0 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 17.8 16.4 17.3 15.2
[15] 10.4 10.4 14.7 32.4 30.4 33.9 21.5 15.5 15.2 13.3 19.2 27.3 26.0 30.4
[29] 15.8 19.7 15.0 21.4
[1] 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1
# baseline group means and difference
baselineMeans = tapply(mtcars$mpg, mtcars$am, mean)
baselineMeansDiff = baselineMeans[2] - baselineMeans[1]
tStat = function(w, g) mean(w[g == 1]) - mean(w[g == 0])
observedDiff = tStat(y, group)
# check if function works - should be 0:
baselineMeansDiff - observedDiff
1
0
# execute shuffle:
permutations = sapply(1:100000, function(i) tStat(y, sample(group)))
# shuffle experiment results plots:
par(mfrow = c(2, 1), mar = c(4, 4, 2, 2))
hist(permutations, main = "Distribution of shuffled group mean differences") # distribution of difference of averages of permuted groups
plot(permutations, type = "b", main = "Shuffled group mean trials", xlab = "trial", ylab = "shuffled group mean differences", ylim = c(-14, 14))
abline(h = observedDiff, col = "red", lwd = 3)
# there is not even 1 case where by chance I get a difference greater than the observed!
mean(permutations > observedDiff)
[1] 0.00019
Conclusions:
Analyse the behaviour of target variable (mpg) conditional upon a set of explanatory variables.
#### generate subset: automatic and manual cars ####
cars_auto = subset(mtcars, am == 0)
cars_manu = subset(mtcars, am == 1)
#### Visual inspection of all covariates ####
pairs(mtcars)
#### 4 bivariate analysis: hp / wt / drat / disp ####
par(mfrow = c(2, 2), mar = c(2, 3, 2, 3))
# plot1
with(mtcars, plot(hp, mpg, type = "n", main = "mpg vs hp - by transmission type")) # no data
with(cars_auto, points(hp, mpg, col = "red", pch = 20))
with(cars_manu, points(hp, mpg, col = "blue", pch = 20))
legend("topright", pch = 20, col = c("red", "blue"), legend = c("auto", "manu")) # add legend
model1_auto = lm(mpg ~ hp, data = cars_auto)
model1_manu = lm(mpg ~ hp, data = cars_manu)
abline(model1_auto, col = "red", lwd = 2)
abline(model1_manu, col = "blue", lwd = 2)
abline(v = 175, lty = 2)
# plot2
with(mtcars, plot(wt, mpg, type = "n", main = "mpg vs weight - by transmission type")) # no data
with(cars_auto, points(wt, mpg, col = "red", pch = 20))
with(cars_manu, points(wt, mpg, col = "blue", pch = 20))
legend("topright", pch = 20, col = c("red", "blue"), legend = c("auto", "manu")) # add legend
abline(v = 3.2, lty = 2)
# plot 3
with(mtcars, plot(drat, mpg, type = "n", main = "mpg vs drat - by transmission type")) # no data
with(cars_auto, points(drat, mpg, col = "red", pch = 20))
with(cars_manu, points(drat, mpg, col = "blue", pch = 20))
legend("topright", pch = 20, col = c("red", "blue"), legend = c("auto", "manu")) # add legend
model2_auto = lm(mpg ~ drat, data = cars_auto)
model2_manu = lm(mpg ~ drat, data = cars_manu)
abline(model2_auto, col = "red", lwd = 2)
abline(model2_manu, col = "blue", lwd = 2)
abline(v = 175, lty = 2)
# plot 4
with(mtcars, plot(disp, mpg, type = "n", main = "mpg vs disp - by transmission type")) # no data
with(cars_auto, points(disp, mpg, col = "red", pch = 20))
with(cars_manu, points(disp, mpg, col = "blue", pch = 20))
legend("topright", pch = 20, col = c("red", "blue"), legend = c("auto", "manu")) # add legend
labels = with(mtcars, paste(as.character(disp), as.character(mpg), sep = ",")) # generate point labels
with(mtcars, text(disp, mpg, labels = labels, cex = 0.7, pos = 2))
abline(v = 167.6, lty = 2)
Conclusions:
Run a set of regression models for estimating the impact of some predictions on mpg.


Cheshire3 Installation |
The following instructions will hopefully walk you through installing Cheshire3 and its prerequisites from scratch under Linux (or any Unix). If you have troubles at any stage, feel free to contact us.
This is the easy, preferred, method for installing Cheshire3.
These are the requirements for Cheshire3, if you want to install everything by hand.
The links below are for if you want to check if there's a more recent version than the one we have in our build packages. Note that these will not have been tested, won't necessarily be supported, but might have useful bug fixes.
| Minimum | Current | Location | Note |
|---|---|---|---|
| expat 1.95.8 | 1.95.8 | http://sourceforge.net/projects/expat/ | (see note) |
| BerkeleyDB 4.0 | 4.4.20 | http://www.sleepycat.com/ | |
| Python 2.3.0 | 2.4.3 | http://www.python.org/ | |
| 4Suite 1.0a3-cvs | 1.0b3 | http://sourceforge.net/projects/foursuite/ | |
| ZSI 1.5-cvs | 1.7 | http://sourceforge.net/projects/pywebsvcs/ | 2.0 not supported |
| PyZ3950 | 2.06 | http://www.panix.com/~asl2/software/PyZ3950/ | |
| python-dateutil 0.9 | 1.1 | http://labix.org/python-dateutil | |
| SRW 1.1 | 1.1-3 | http://srw.cheshire3.org/downloads/ | |
| libxml2 2.6.10 | 2.6.26 | http://www.xmlsoft.org/ | |
| libxslt 1.1.8 | 1.1.17 | http://www.xmlsoft.org/ | |
| lxml 1.0.1 | 1.0.3 | http://codespeak.net/lxml/ | |
| numarray 1.5.1 | 1.5.1 | http://www.stsci.edu/resources/software_hardware/numarray | |
| TextIndexNG 2.1 | 3.1.9 | http://www.zopyx.com/OpenSource/TextIndexNG | |
| apache 2.0.42 | 2.0.58 | http://httpd.apache.org/ | |
| mod_python 3.1.0 | 3.2.10 | http://www.modpython.org/ | |
| Cheshire3 0.9 | 0.9.9 | http://www.cheshire3.org/ |
To ensure that you have the most recent version of these instructions, it is suggested that you also follow along in the build.sh script.
Below is a set of instructions to install all of the requirements in user space, rather than globally. If you want to install globally omit the --prefix from the configurations. The example location is '/home/cheshire/install' and the source is being decompressed in /home/cheshire/build
Before embarking on the process below, you'll need to have a C compiler (we strongly recommend GCC) and make utility installed along with the appropriate libraries. You probably already do but just in case, these utilities can often be found under 'Development Tools' in package management applications provided in *nix distributions.
If you don't install everything in one session, you'll need to ensure that the environment variables are reset:
export CPPFLAGS=-I/home/cheshire/install/include
export LDFLAGS=-L/home/cheshire/install/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/cheshire/install/lib
Expat is the XML parser library that everything links to, so you'll need to install this first. Libxml2 is an alternative parser, but you'll need expat regardless as it's linked by Apache, Python and 4Suite.
./configure --prefix=/home/cheshire/install
make
make install
Python 2.4+ and 4Suite 1.0a4+ both include expat version 1.95.8. Previously the included versions were different and this could cause problems running under Apache. The 'minimum' versions have now been updated to these, but if you want to hack in the same version of expat to Python/4Suite or not run under Apache, then previous versions will be okay. You do not need to install this package if it is already present on your system. Most *nix distributions include Expat. Check that the version installed is 1.95.8, if not you probably want to install 1.95.8 globally rather than local to cheshire.
BerkeleyDB is a very fast transactional database system. It's used by such giants as Ebay, Amazon and IBM. For the purposes of Cheshire3, it is 10+ times faster than a relational database used for the same job. It's used by all of the Store interfaces (indexes, records, configurations and other objects).
cd build_unix
../dist/configure --prefix=/home/cheshire/install
make
make install
BerkeleyDB is generally present in most Linux systems. If there is a version 4 or greater, then this is unnecessary.
Python is the language that all of the main operational functions are written in, as opposed to the raw number crunching which is mostly done by C libraries. It's easy to understand and maintain, enabling developers to get right into the nitty gritty if desired, but without significant sacrifices to performance.
MacOSX note: use --enable-framework in the configure to build as a framework.
./configure --prefix=/home/cheshire/install
make
make install
4Suite is the best XML processing library available at the current time for Python. We use it for XPath and XSLT processing, as well as most DOM creation. See libxml2 for an alternative, but currently it does not support SAX2 under Python, nor does it produce unicode objects, just strings.
python ./setup.py build
python ./setup.py install
ZSI is the best Python SOAP toolkit. The most recent version (1.5) comes with a WSDL compiler, however it's not yet quite up to SRW.
The most recent version of ZSI either requires PyXML to be installed (which is not otherwise required for Cheshire3, and can conflict with 4Suite which is a better package) or to use the CVS version. The CVS version is available in the Cheshire3 FTP site.
python ./setup.py build
python ./setup.py install
TextIndexNG includes a wrapper around the Snowball stemming language. It provides interfaces to stemmers which reduce a word down to its lexical stem, eg 'princesses' to 'princess' or 'understanding' to 'understand'. TextIndexNG comes with a lot of other code, which is also installed, but not used. The author of the package was approached regarding splitting out the stemming library, but was not amenable to the suggestion.
python ./setup.py install
This package is required even if you don't want to enable Z39.50 interfaces as it contains the CQL libraries used in all C3 queries. It's also used by the Z3950SearchDocumentStream as a Z client.
You may need to install lex and yacc by hand first, as these are required to build the ASN.1 compiler.
cp lex.py yacc.py /home/cheshire/install/lib/python2.4/site-packages/
python ./setup.py install
This very small package contains the stubs for ZSI as well as a quick SRW demo client in python. If you're not going to enable an SRW/U interface, or the SRWSearchDocumentStream, you can omit it.
python ./setup.py install
The DateUtils code provides an excellent free text date parser (though doesn't currently handle multiple dates in the same block of text)
python ./setup.py install
This library is faster than expat and comes with its own XPath and XSLT implementations. It's not required if you don't feel like it, but it does parse XML really fast!
./configure --prefix=/home/cheshire/install --with-python
make
make install
cd python
python ./setup.py install
A companion library to libxml2 to process XSLT.
./configure --prefix=/home/cheshire/install --with-python
make
make install
Try to make sure that it links the version of expat you just installed by checking the output of configure to see whereabouts it's linking. Apache is only required if you want to have a remote interface to the Cheshire3 databases, eg by SRW/U, OAI or Z39.50. However using regular CGI calls rather than mod_python (below) handlers will be much slower as the infrastructure takes a second or so to configure and instantiate.
export CPPFLAGS=-I/home/cheshire/install/include
export LDFLAGS=-L/home/cheshire/install/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/cheshire/install/lib
./configure --prefix=/home/cheshire/install --enable-mods=all
--with-berkeley-db=/home/cheshire/install --enable-suexec
make
make install
Apache is also generally present in most systems, however you must ensure that it is run with the right environment variable so that it will link against the libraries that have been installed. Also, you'll need to ensure that the user which Apache is run as has read (and potentially write) access to the databases which the index and record data is maintained in.
If you haven't installed Apache, you can skip this section. Mod_python allows Apache to run python code internally to handle connections and requests. Each apache thread gets its own python interpreter which is only started once and left running. This means that the Cheshire3 architecture only needs to be built once, rather than per invocation.
./configure --prefix=/home/cheshire/install --with-python=/home/cheshire/install/bin/python2.4 --with-apxs=/home/cheshire/install/bin/apxs
make
make install
The Parallel Virtual Machine library is a very fast, low transaction cost parallelization system. It lets you run processes on multiple machines and compiles for multiple platforms. As Python and hence Cheshire3 will run on multiple platforms without any additional effort this means that you can build a completely heterogeneous cluster without any difficulties.
[Coming]
This is the Python wrapper around the PVM library.
[Coming]
If you run into issues with the 'sort' utility breaking, check you have the latest version of textutils installed.
./configure --prefix=/home/cheshire/install
make
make install
Environment variables required if you have installed this as a local user.
export LD_LIBRARY_PATH=/home/cheshire/install/lib
export LD_RUN_PATH=/home/cheshire/install/lib
Also ensure that Apache is run with these environment variables (envvars / envvars-std files with httpd binary)
Include conf/cheshire3.conf
And then in cheshire3.conf:
# Load mod_python LoadModule python_module modules/mod_python.so # SRW/U interface at /srw/dbname <Directory /home/cheshire/install/htdocs/srw> SetHandler mod_python PythonDebug On PythonPath "['/home/cheshire/cheshire3/code']+sys.path" PythonHandler srwApacheHandler </Directory> # Z3950 interface on 2100 Listen 2100 <VirtualHost *:2100> PythonPath "['/home/cheshire/cheshire3/code']+sys.path" PythonConnectionHandler zApacheHandler PythonDebug On </VirtualHost>
See further documentation.
If you get strange errors from mod_python under Linux, first trying restarting Apache.
If this fails with a No space left on device
error when there obviously
is space, then you've hit the semaphore problem.
The fix is:
echo "512 32000 32 512" > /proc/sys/kernel/sem
Or see:
http://clarens.sourceforge.net/index.php?docs+faq


FEIGN: a package to estimate the geometric efficiency of gamma spectroscopy setups in spent nuclear fuel measurements¶
This package implements a series of ray tracing methods to estimate the geometric efficiency of rectangular fuel assemblies.
Installation¶
Hopefully this package will be available in PyPI.
Docs¶
The full documentation will be written.
Contributing¶
When contributing to this repository, please first discuss the intended changes with me.


{% extends "base_generic.html" %} {% block content %} {% if player_list %}
Remember to change your vote each round.
Renew Your Vote
OUT means you are not in the mission.
PASS means you want the mission to pass.
FAIL means you want the mission to fail.
Renew Your ActionNo role found.
{% endif %} {% endblock %}


Missed any of the old races?


Workitem Manager
PBI:
Find
Add task(s):
All
Add
Manage teams
Voeg toe
Cancel
OK
Manage tasks
Team
select team
Tasks
Voeg toe
Cancel
OK


Welcome To The Official Rabbijo HD movies Website. Here you can browse and download movies in excellent 720p, 1080p, 2160p and 4K quality, all at the smallest file size and increadible Streaming Speeds.
2020


The seq/duplex.h
header defines a macro that converts a sequence to a binary tree.
#include <chaos/preprocessor/seq/duplex.h>
The CHAOS_PP_SEQ_DUPLEX
macro converts its argument to a binary tree.
CHAOS_PP_SEQ_DUPLEX
(seq)
The sequence to be converted to binary tree.
This macro expands to a binary tuple containing a binary tree which contains the elements of seq as the second element and the depth of that tree as the first element.
This is accomplished by pairing elements in seq according to the following pattern: pairing two adjacent elements, a
and b
, results in (, (a), (b))
.
This pairing is applied to the entire sequence to produce a new sequence of pairs.
This is illustrated by the following pseudo-code:
(a)(b)(c)(d) => (, (a), (b))(, (c), (d))
If the number of elements in the sequence is odd, the last element will be paired with nothing. For example,
(a)(b)(c) => (, (a), (b))(, (c),)
The pairing process of the sequence is repeatedly applied to the resulting sequence until a one-element sequence is produced. The number of times that the pairing process is repeated is the depth of the resulting binary tree.
(a)(b) => (, (a), (b)) (a)(b)(c)(d) => (, (a), (b))(, (c), (d)) => (, (1, (a), (b)), (, (c), (d))) (a)(b)(c)(d)(e)(f)(g)(h) => (, (a), (b))(, (c), (d))(, (e), (f))(, (g), (h)) => (, (, (a), (b)), (, (c), (d)))(1, (, (e), (f)), (, (g), (h))) => (, (, (, (a), (b)), (, (c), (d))), (, (, (e), (f)), (, (g), (h))))
In the first pseudo-code transformation above, the depth is 1
, in the second, the depth is 2
, and in the third, the depth is is 3
.
The algorithm yields both the depth and resulting binary tree:
CHAOS_PP_SEQ_DUPLEX
((a)(b)) // (1, (, (a), (b)))CHAOS_PP_SEQ_DUPLEX
((a)(b)(c)(d)) // (2, (, (, (a), (b)), (, (c), (d))))CHAOS_PP_SEQ_DUPLEX
((a)(b)(c)(d)(e)(f)(g)(h)) // (3, (, (, (, (a), (b)), (, (c), (d))), (, (, (e), (f)), (, (g), (h)))))
The purpose of the placemarker element in each pair is to facilitate sequential iteration on the resulting sequence. For example, the initial sequence can be reconstituted as follows:
#define RC(duplex) \ RC_BYPASS(CHAOS_PP_LIMIT_EXPR
, duplex) \ /**/ #define RC_BYPASS(s, duplex) \CHAOS_PP_EXPR_S
(s)(RC_I( \CHAOS_PP_OBSTRUCT
(),CHAOS_PP_PREV
(s), \CHAOS_PP_BINARY
(0) duplex,CHAOS_PP_BINARY
(1) duplex \ )) \ /**/ #define RC_INDIRECT() RC_I #define RC_I(_, s, depth, seq) \CHAOS_PP_IF
_(depth)( \CHAOS_PP_EXPR_S
_(s)(RC_INDIRECT _()( \CHAOS_PP_OBSTRUCT
_(),CHAOS_PP_PREV
(s), \CHAOS_PP_DEC
(depth), RC_A _ seq(0,,) \ )), \ seq \ ) \ /**/ #define RC_A(p, a, b)CHAOS_PP_PLACEMARKER_IF
(p)(a b RC_B) #define RC_B(p, a, b)CHAOS_PP_PLACEMARKER_IF
(p)(a b RC_A) RC(CHAOS_PP_SEQ_DUPLEX
((a)(b)(c)(d))) // (a)(b)(c)(d)
The efficiency of the algorithm's use of the recursion backend can be described in terms of the number of recursion steps required to complete the algorithm. The asymptotic upper and lower bounds are Θ, where n is the number of elements in seq.
This macro uses bypass semantics.
If bypass semantics are already in effect, CHAOS_PP_SEQ_DUPLEX_BYPASS
must be used instead.
The CHAOS_PP_SEQ_DUPLEX_ID
macro indirectly expands to CHAOS_PP_SEQ_DUPLEX
.
CHAOS_PP_SEQ_DUPLEX_ID
()
This macro effectively allows CHAOS_PP_SEQ_DUPLEX
to pass through itself without becoming disabled.
The CHAOS_PP_SEQ_DUPLEX_
macro expands to a λ expression representing CHAOS_PP_SEQ_DUPLEX
.
CHAOS_PP_SEQ_DUPLEX_
This macro is a shorthand form of the following λ binding:
The CHAOS_PP_SEQ_DUPLEX_BYPASS
macro behaves identically to CHAOS_PP_SEQ_DUPLEX
except that it is parametized by the bypass recursion state.
CHAOS_PP_SEQ_DUPLEX_BYPASS
(s, seq)
The current bypass recursion state.
The sequence to be converted to binary tree.
If bypass semantics are already in effect, this macro must be used instead of CHAOS_PP_SEQ_DUPLEX
.
The CHAOS_PP_SEQ_DUPLEX_BYPASS_ID
macro indirectly expands to CHAOS_PP_SEQ_DUPLEX_BYPASS
.
CHAOS_PP_SEQ_DUPLEX_BYPASS_ID
()
This macro effectively allows CHAOS_PP_SEQ_DUPLEX_BYPASS
to pass through itself without becoming disabled.
The CHAOS_PP_SEQ_DUPLEX_BYPASS_
macro expands to a λ expression representing CHAOS_PP_SEQ_DUPLEX_BYPASS
.
CHAOS_PP_SEQ_DUPLEX_BYPASS_
This macro is a shorthand form of the following λ binding:


Interswitch Payment Gateway – Mobile InApp/SDK Implementation
Here we provide general information about using our APIs/SDKs in order to enable you have a base level understanding of all the components of our API/SDK workflow and how they interrelate. Our Payment API’s are designed to send payment requests to debit customer’s payment instrument and send a notification to merchants about a payment that has just been made.This document describes how a third-party will request for Interswitch Payment Gateway API. Note that all data formats and response definitions are in conformance with the REST standard.
Do I need to be PCI-DSS Certified?
The Payment Card Industry Data Security Standard (PCI DSS) is an information security standard for organisations that handle branded credit cards from the major card schemes. The PCI Standard is mandated by the card brands and administered by the Payment Card Industry Security Standards Council. The standard was created to increase controls around cardholder data to reduce credit card fraud. Validation of compliance is performed annually, either by an external Qualified Security Assessor (QSA) or by a firm specific Internal Security Assessor that creates a Report on Compliance for organisations handling large volumes of transactions, or by Self-Assessment Questionnaire (SAQ) for companies handling smaller volumes. To integrate the Mobile Payment SDK whilst processing customer card details directly, a PCI DSS compliance certificate is needed. If this is not available you will have to make use of our SDK Card collection User Interface (UI). All interactions between your app and the payment service will be done via the pop up/UI. Each section of the documentation has a section for UI Integrators (i.e. those that are not PCI-DSS compliant) and another section for Non-UI (i.e. those that are PCI-DSS compliant). Below is an image of the card collection UI. Once transaction is completed, status will be passed from the SDK to your application.
Payment SDK for Android
Interswitch payment SDK allows you to accept payments from customers within your mobile application. Please Note: The current supported currency is naira (NGN), support for other currencies would be added later The first step to using the Android SDK is to register as a merchant. This is described [here] (merchantxuat.interswitchng.com)


@Target(value={}) @Retention(value=RUNTIME) public @interface Poller
PollerMetadata
options
for the Messaging annotations for polled endpoints. It is an analogue of the XML
<poller/>
element, but provides only simple attributes. If the
PollerMetadata
requires more options
(e.g. Transactional and other Advices) or initialDelay, receiveTimeout
etc, the
PollerMetadata
should be configured
as a generic bean and its bean name can be specified as the value
attribute of
this annotation. In that case, the other attributes are not allowed.
Non-reference attributes support Property Placeholder resolutions.
| Modifier and Type | Optional Element and Description |
|---|---|
String |
cron |
String |
errorChannel |
String |
fixedDelay |
String |
fixedRate |
String |
maxMessagesPerPoll |
String |
receiveTimeout
Only applies to polling consumers.
|
String |
taskExecutor |
String |
trigger |
String |
value |
public abstract String value
PollerMetadata
bean
name.public abstract String taskExecutor
TaskExecutor
bean name.public abstract String maxMessagesPerPoll
${poller.maxMessagesPerPoll}
.
Defaults to -1 (infinity) for polling consumers and 1 for polling inbound channel adapters.public abstract String fixedDelay
PeriodicTrigger
. Can be specified as
'property placeholder', e.g. ${poller.fixedDelay}
.public abstract String fixedRate
PeriodicTrigger
with
fixedRate
. Can be specified as 'property placeholder', e.g.
${poller.fixedRate}
.public abstract String cron
CronTrigger
. Can be specified as
'property placeholder', e.g. ${poller.cron}
.public abstract String errorChannel
MessagePublishingErrorHandler
.public abstract String receiveTimeout
${my.poller.receiveTimeout}
.


{% extends "layout-v2.html" %} {% block pageTitle %} NHS Cervical screening management system {% endblock %} {% block header %} {% include '../../components/header.html' %} {% endblock %} {% block content %}
You are about to submit a request to add a new patient to the cervical screening programme. This means that:


Git Hub Link: Git Hub
• Developed a “Get Your TA” application using Asp.Net
• Get your TA is mainly developed for the government servants of Maharashtra state in India, previously the bill was generated manually which was very tedious task, this application generates the TA bill within no time that too efficiently
• This application is useful for calculating and storing the Travel Allowance details of the registered users
• The users can register or Login to the application and they can enter the Source and Destination names, mode of travel, and some required fields, then the application will calculate their Travel Allowance details based on some calculations and stores them in the MySQL Database
• The user can see all his records in the Grid view and can also Update or Delete his records
• This application also allows the users to download their Travel Allowance records in Excel sheet


Save Time
Lets throw a trackie dacks also it'll be gutta.  Gutful of jug where as busy as a big smoke. Grab us a billy as cunning as a bull bar. As cunning as a bonzer flamin as stands out like cubby house. As cross as a mate no dramas as cunning as a bonzer. Gutful of kindie flamin as cross as a grundies. Lets throw a !!!! strides also as cross as a thingo. Built like a old fella no dramas grab us a ten clicks away. Lets get some digger when she'll be right metho. As cross as a no dramas as cunning as a barrack.
Win over team
As cunning as a bonzer flamin as stands out like cubby house. As cross as a mate no dramas as cunning as a bonzer. Gutful of kindie flamin as cross as a grundies. Lets throw a strides also as cross as a thingo.
Built like a old fella no dramas grab us a ten clicks away.
Design Features
Built like a old fella no dramas grab us a ten clicks away. Lets get some digger when she'll be right metho. As cross as a no dramas as cunning as a barrack.
A old fella no dramas grab us a ten clicks away. Lets get some digger when she'll be right metho. As cross as a no dramas as cunning as a barrack.


Studywitme
Login
Sign Out
Course:
Campus:
Burnaby
Surrey
Vancouver
Start Date:
Time:
Duration:
Description:
Exact Location:
Max Guests:
create session
back to profile


Can't decide what to eat or what to do?
Let us help!
Food Active Life Night Life Arts & Entertainment
Choices
Select all options you are willing to accept!
Can't decide what to eat or what to do?
Let us help!
Select all options you are willing to accept!


Information
Here you can find information about the system
Lights
Information
Here you can find information about the system
Security mode
Information
Here you can find information about the system
Temperature
Information
Here you can find information about the system
Gate


HOME
EVENTS
ABOUT US
Event : {{eventinfo.EventName}} Page
Create new Team
Team Name
Team Tag
Leader
No.Members
GoalKeeper
LeftBack
Midfield
RightBack
{{t.TeamName}}
{{t.TeamTag}}
{{t.TeamLeader}}
{{t.NumMembers}}
{{t.GoalKeeper}}
{{t.LeftBack}}
{{t.Midfield}}
{{t.RightBack}}
More Info


THE GODFATHER PART III A film review by David Alba, Jr. Copyright 1990 David Alba, Jr.
It is here. Yes, after sixteen years Francis Ford Coppola has decided to complete the epic story of the Corleone family. For those who can remember back to THE GODFATHER PART II, we last left Michael Corleone sitting alone contemplating the fact that he had ordered the execution of his own brother, Fredo.
The third installment of the Godfather trilogy takes place twenty years after THE GODFATHER PART II. Aging Michael Corleone is trying to turn his dream into a reality. His dream has been to make the Corleone family completely legitimate. Michael has been attempting to do this ever since he took over control of the family at the end of the first film, THE GODFATHER.
The film opens with Michael Corleone receiving a humanitarian award from the Archbishop. Michael is later approached by the Archbishop, who has been placed in financial charge of the Vatican. In an effort to help the Vatican overcome their financial trouble Michael offers to donate 600 million dollars in exchange for the Vatican's controlling interest in a company called Imobilare. It is Michael's belief that if he can gain control of the financially strong company he would finally be able to make the Corleone family legitimate. Michael encounters problems when several members of The Vatican council refuse to give controlling interest of Imobilare to Michael because his family is involved in organized crime.
Al Pacino returns to his familiar role as Michael Corleone, along with Diane Keaton who reprises her role as Michael's estranged wife Kay. Also returning, as Connie Corleone, is Talia Shire. The film also stars newcomers Andy Garcia as Sonny Corleone's illegitimate son, and Sophia Coppola as Michael's daughter. The fine cast is also joined by veteran actors Eli Wallach, George Hamilton and Joe Mantegna. There is also a small role played by Don Novello who is best remembered as Father Guido Sarducci on "Saturday Night Live."
This film is beautifully filmed with splendid cinematography of New York and Sicily, but it also contains the violence that has become a trademark of the Godfather films. The performance of Pacino was adequate--he portrayed an aging and sick Michael who couldn't overcome the guilt of having his brother killed--but it is the performances of Andy Garcia and Talia Shire that really stand out in this movie.
This film is unarguably not as good as its two predecessors, but I believe this film is good enough to stand on its own as a continuation of the Corleone saga. See this film before someone makes you an offer you can't refuse.
Rating: Three Stars (+3)
.
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


Problem Description
After acquiring financial data from a number of external sources, we integrate Red Hat JBOSS Data Grid and Spark from Hortonworks Data Platform, performing a Monte Carlo simulation of the performance of multiple stocks over a one-day period and calculating the liquidity value at risk (LVaR) for the portfolio at a 95% confidence level.
| Company Name | Stock Ticker | Stock Price | Position (shares) |
|---|---|---|---|
| RedHat | RHT | 0.00 | 0 |
| Hortonworks | HDP | 0.00 | 0 |
| GOOG | 0.0 | 0 | |
| General Electric | GE | 0.0 | 0 |
| TWTR | 0.0 | 0 | |
| Amazon | AMZN | 0.0 | 0 |
| Yahoo | YHOO | 0.0 | 0 |
| Liquidity Risk of Portfolio (95% confidence Monte Carlo sim) | |||
| Add stock from ticker symbol |


Operational Land Imager (OLI)
Credit: Flood, 2014
Holden, Christopher E. and Curtis E. Woodcock. (In revision). An analysis of Landsat 7 and Landsat 8 underflight data and the implications for time series investigations. Remote Sensing of Environment
Timeseries analysis method for finding changes in land cover or land dynamics
$$ \hat{\rho}_i = \beta_0 + \beta_1 x_i + \sum_{j \in{N}}[\beta_{2j}\cos(\frac{2\pi j}{T}x_i) + \beta_{2j+1}\sin(\frac{2\pi j}{T}x_i)] + e_i $$
$ Intercept_{LC8} $ / $ Intercept_{LE7} $
$ Slope_{LC8} $ - $ Slope_{LE7} $
$ RMSE_{LC8} $ / $ RMSE_{LE7} $
$$ \hat{\rho}_i = \beta_0 + \beta_1 x_i + \sum_{j \in{N}}[\beta_{2j}\cos(\frac{2\pi j}{T}x_i) + \beta_{2j+1}\sin(\frac{2\pi j}{T}x_i)] + C(sensor_i) + e_i $$
What is being corrected in dummy variable?
Dummy Variable Map


Top Banner Slot
Top Navigation Slot
Top Image Slot
Breadcrumbs Slot
Quick Search:
Side Navigation Slot
Facets Slot
Hello, Data Management Training Clearinghouse
Slot
Search Results Slot
Top Banner
Top Navigation
Top Image
Breadcrumbs
Quick Search
Side Navigation
Facets
Home Content
Search Results
Top Banner
Top Navigation
Top Image
Breadcrumbs
Quick Search
Side Navigation
Facets
Search Results Page
Search Results
Top Banner
Top Navigation
Top Image
Breadcrumbs
Quick Search
Side Navigation
Facets
Search Results Page
Search Results


0 HTTP/1.1 302 Found Server: Tengine Date: Mon, 25 Apr 2016 06:23:12 GMT Content-Type: text/html Content-Length: 258 Connection: keep-alive Location: https://err.taobao.com/error1.html?c=404&u=https://world.taobao.com/index.html@%253Ftbc%252Fglobal%252F0.0.8%252Findex-min.css,sea%252Fsitenav-global%252F0.5.2%252Fglobal-min.css&r=https://world.taobao.com/ HTTP/1.1 302 Found Server: Tengine Date: Mon, 25 Apr 2016 06:23:13 GMT Content-Type: text/html Content-Length: 258 Connection: keep-alive Location: https://err.taobao.com/error1.html?c=404&u=https://world.taobao.com/index.html@%253Ftbc%252Fglobal%252F0.0.8%252Findex-min.css,sea%252Fsitenav-global%252F0.5.2%252Fglobal-min.css&r=https://world.taobao.com/
The requested resource resides temporarily under a different URI.


OpenCDA Tutorial¶
In this section, we will introduce the logic flow to construct a scenario and test the default/customized algoirhtms in OpenCDA.
Codebase Structure¶
Check the codebase structure to see how the codes distributed in OpenCDA.
Overview¶
As the figure below depicts, to run simulation testings in OpenCDA, there are five general steps:
The user has to first write a yaml file to configure the settings of simulation server(e.g. sync mode vs async mode), the specifications of the traffic flow(e.g. the number of human drive vehicles, spawn positions,), and the parameters of each Connected Automated Vehicle(e.g. lidar parameters, detection model, trajectory smoothness).
The Scenario Manager will load the yaml file, and deliver the necessary information to CARLA server to set simulation setting, create traffic flow and generate the CAVs. Each CAV is managed by a class called
VehicleManager
.The simulation server information will pass to each
VehicleManager
. Based on whether the corresponding cooperative modules are activated, theVehicleManager
will select different perception, localization, and planning modules to send the planned trajectory to theControlManager
. The controller will produce control commands and deliver to the simulation server.The simulation server will apply the received control commands to the vehicles, execute a single step, and return the updated information to the
VehicleManager
for next round running.After simulation is over,
EvaluaitonManager
will evaluate different modules’ performance and save the statistics.
Step1: Define the yaml file¶
Check the Yaml Define Rule to see how to write a yaml file to define your scenario.
Step2: Construct scenario¶
After the yaml file is given, the Scenario Manager will load the file
and construct the scenario through opencda sim_api and map_api
.
import opencda.scenario_testing.utils.sim_api as sim_api
import opencda.scenario_testing.utils.customized_map_api as map_api
from opencda.scenario_testing.utils.yaml_utils import load_yaml
# Aad yaml file into a dictionary
scenario_params = load_yaml(config_yaml)
# setup the simulation server configuration
simulation_config = scenario_params['world']
client, world, carla_map, origin_settings = sim_api.createSimulationWorld(simulation_config, 'town06')
# create background traffic in carla
traffic_manager, bg_veh_list = sim_api.createTrafficManager(client, world,
scenario_params['carla_traffic_manager'])
# create platoon members
platoon_list, cav_world = sim_api.createPlatoonManagers(world, carla_map, scenario_params, opt.apply_ml)
# create single cavs
single_cav_list = sim_api.createVehicleManager(world, scenario_params, ['platooning'], cav_world,
carla_map)
As you can observe from the above scripts, only less than 10 lines of codes are needed to construct a complex scenario!
Step3: Execute a single step¶
A simplified class diagram design is shown below.
The core class in OpenCDA is VehicleManager
, which is the base class for any cooperative driving applications(e.g. PlatoonManager
is built upon VehicleManager
). It contains the necessary modules such as PerceptionManager
and
LocalizationManager
.
Based on whether certain cooperative driving application is activated,
VehicleManager
will choose different perception/localization/planning manager.
# vehicle_manager.py
class VehicleManager:
def __init__(self, vehicle, config_yaml, application, carla_map, cav_world):
if 'platooning' in application:
platoon_config = config_yaml['platoon']
self.agent = PlatooningBehaviorAgent(vehicle, self, self.v2x_manager,
behavior_config, platoon_config, carla_map)
else:
self.agent = BehaviorAgent(vehicle, carla_map, behavior_config)
During runtime, VehicleManager
will first localize and detect the surrounding objects,
and then pass the computed information to v2x stack, planner and controller. Then the donwstream
modules will fuse information from different cavs, generate trajectory and control commands.
class VehicleManager:
def update_info(self):
# localization
self.localizer.localize()
ego_pos = self.localizer.get_ego_pos()
ego_spd = self.localizer.get_ego_spd()
# object detection
objects = self.perception_manager.detect(ego_pos)
self.v2x_manager.update_info(ego_pos, ego_spd)
self.agent.update_information(ego_pos, ego_spd, objects)
# pass position and speed info to controller
self.controller.update_info(ego_pos, ego_spd)
def run_step(self, target_speed=None):
target_speed, target_pos = self.agent.run_step(target_speed)
control = self.controller.run_step(target_speed, target_pos)
return control
Step4: Keep the simulation loop running¶
while True:
world.tick()
single_cav.update_info()
control = single_cav.run_step()
single_cav.vehicle.apply_control(control)
Step5: Evaluation¶
When the simulation is over, the EvaluationManager
will evaluate the performance,
and save the results in ~/OpenCDA/evluation_outputs
# create evaluation manager
eval_manager = EvaluationManager(cav_world)
eval_manager.evaluate()
Customize your own algorithms¶
Due the high modularity of OpenCDA, you can conveniently replace any default module with your own
algorithms. It is highly recommended to put your customized module under opencda/customize/..
and apply
inheritance to overwrite the default algorithm.
Here we show an example of customizing localzation module. The default localization selects Kalman Filter
as the fusing algorim, and we aim to use Extended Kalman Filter to replace it.
Under opencda/customize/core/sensing/localization
, create localization_manager.py
that inherit
the origin localization module and overrite the Kalman Filter with Extended Kalman Filter:
from opencda.core.sensing.localization.localization_manager import LocalizationManager
from opencda.customize.core.sensing.localization.extented_kalman_filter import ExtentedKalmanFilter
class CustomizedLocalizationManager(LocalizationManager):
def __init__(self, vehicle, config_yaml, carla_map):
super(CustomizedLocalizationManager, self).__init__(vehicle, config_yaml, carla_map)
self.kf = ExtentedKalmanFilter(self.dt)
Then go to VehicleManager
class, import this customized module and set it as the localizer.
from opencda.core.sensing.localization.localization_manager import LocalizationManager
from opencda.customize.core.sensing.localization.localization_manager import CustomizedLocalizationManager
class VehicleManager(object):
def __init__(self, vehicle, config_yaml, application, carla_map, cav_world):
# self.localizer = LocalizationManager(vehicle, sensing_config['localization'], carla_map)
self.localizer = CustomizedLocalizationManager(vehicle, sensing_config['localization'], carla_map)
As long as you keep the input and output format as the origin imlementation, customization will be a very simple job.


2 Chronicles 29:26
And the Levites stood with the instruments of David, and the priests with the trumpets.


Python-backend DQN example with websocket
This simlulator was stolen from following example of REINFORCEjs.
http://cs.stanford.edu/people/karpathy/reinforcejs/puckworld.html
Simulation
Fast learning
Set epsilon to 0.2
Set epsilon to 0.05
Save model
Current Mode:
Reward graph


Basic Usage¶
Copy files and file sequences with a unified interface!
>>> from perfsprocket import File, FileSequence >>> >>> single = File("~/Desktop/test/source/movie.mp4") >>> single <File: '/Users/dev/Desktop/test/source/movie.mp4'> >>> copied_single = single.copy(dst_folder="~/Desktop/test/destination") >>> for path in copied_single: ... print(path) ... /Users/dev/Desktop/test/destination/movie.mp4 >>> >>> sequence = FileSequence("~/Desktop/test/source/photo_###.jpeg", start=1, end=5) >>> sequence <FileSequence: '/Users/dev/Desktop/test/source/photo_[001-005].jpeg'> >>> copied_sequence = sequence.copy(dst_folder="~/Desktop/test/destination") >>> for path in copied_sequence: ... print(path) ... /Users/dev/Desktop/test/destination/photo_001.jpeg /Users/dev/Desktop/test/destination/photo_002.jpeg /Users/dev/Desktop/test/destination/photo_003.jpeg /Users/dev/Desktop/test/destination/photo_004.jpeg /Users/dev/Desktop/test/destination/photo_005.jpeg
Both
File
andFileSequence
are iterable. All operations are built to have a common interface, so you can mix single files and file sequences without thought.Both classes also supports move, rename, delete, and chmod commands:
>>> single.rename("favorite_movie.mp4") <File: '/Users/dev/Desktop/test/source/favorite_movie.mp4'> >>> >>> sequence.rename("family_photo_###.jpeg") <FileSequence: '/Users/dev/Desktop/test/source/family_photo_[001-005].jpeg'>
Each operation has an iterator equivalent, allowing you to track progress.
>>> for path in copied_single.chmod_iter(0o777): ... print(f"updated: {path}") ... updated: /Users/dev/Desktop/test/destination/movie.mp4 >>> >>> for path in copied_sequence.chmod_iter(0o777): ... print(f"updated: {path}") ... updated: /Users/dev/Desktop/test/destination/photo_001.jpeg updated: /Users/dev/Desktop/test/destination/photo_002.jpeg updated: /Users/dev/Desktop/test/destination/photo_003.jpeg updated: /Users/dev/Desktop/test/destination/photo_004.jpeg updated: /Users/dev/Desktop/test/destination/photo_005.jpeg
Easily parse filenames:
>>> file_name = FileName(name="movie", extension="mp4") >>> file_name FileName(name='movie', extension='.mp4') >>> str(file_name) 'movie.mp4' >>> >>> seq_name SeqName(name='photo', extension='.jpeg', delim='_', start=1, end=None, pad=4, brackets=None) >>> str(seq_name) 'photo_0001.jpeg'
Manipulate
NameABC
objects during rename operations:>>> single = File("~/Desktop/test/source/movie.mp4") >>> single.rename(single.name.alter(base="favorite")) <File: '/Users/dev/Desktop/test/source/favorite.mp4'>
>>> sequence = FileSequence("~/Desktop/test/source/photo_###.jpeg", start=1, end=5) >>> sequence.rename(sequence.name.alter(base="favorite")) <FileSequence: '/Users/dev/Desktop/test/source/favorite_[001-005].jpeg'>


Hello, world!
I'm LINDSEY ROGERS COOK.
Proficient coder. Dogged journalist. Wannabe yogi.
I'm a coder journalist with a passion for creating user-centered experiences, beautiful data visualizations and interactive stories. I embrace the slash generation and am always learning new things: right now, R. Let's work toward a world where less journalists hates math, more women write code and no one uses the word "unicorn."
Resume
U.S. News & World Report, Data Reporter
-
Writing: Conceive strategy for USN data blog, Data Mine, writing short blog posts and longer pieces, driven by data and graphics.
- Long term projects: Works with reporters on data elements for investigative stories and works with the IT and Design departments to create large data projects in the newsroom
- Led information graphics and data strategy in newsroom, including training reporters, writing guides, compiling a list of data resources, creating a Chartbuilder fork and adding graphic and data elements to stories.
Internships
- The Atlanta Journal-Constition, News applications intern, December 2013
- The Washington Post, Interactivity producer/intern, May - August 2013
- The Red & Black Newspaer, Multimedia editor, etc., 2010 - 2012
Education: The University of Georgia
Bachelor of Arts in Journalism, Computer Science minor, New Media Certificate
- AP-Google Journalism and Technology scholar: Winner of $20,000 scholarship for students at the intersection of journalism and technology. Conducted research on integrating computer science into journalism cirriculum and bringing more journalism students into the CS department. Pending publication in journal for Association for Computing Machinery.
- Led sessions on coding and data journalism for students and working journalists through ONA and SPJ.
ox-Poynter Media Leader: Co-writer of book available on Amazon, Managing News @ The Digital Edge
- Honors Program, Dean's List, Presidential Scholar
Works With
Java, C++, C, HTML, CSS, Javascript, jQuery, D3, QGIS, SQL, R, Adobe Creative Suite, Github, Tilemill, Final Cut Pro, DSLR photography, APIs, Excel, Infographics, Website design, SEO, Social Media Marketing on all platforms
I'm Proud Of...
Guiding Principles


With Common Core standards rolling out all across California, one can't help but notice that education has been long overdue for a curriculum makeover. One thing that stuck out to me is the fact that many times the children are asked to pair, just as we have been asked to pair. The children are usually left to grapple with the challenges, and even though a twenty-plus year old person has more developed social and cognitive ability, one can not escape the problems that arise when dealing with people.
Many people think that speaking to someone they haven't met is a stressful and a generally annoying practice, but if you follow a few rules, it becomes much easier to work with anyone.
The first rule is to simply smile. Smiling is the easiest way to ease social tension, simply because human intuition is geared toward feeling more comfortable with people who smile more.
The second thing to consider is that many times, people feel insecure because they do not know you. The check-ins that DBC has us do is a direct example of this concept being used beautifully in practice. You establish a base and know a little more about your partner, and that translates to a smoother experience.
The third thing to keep in mind is that most of the time, people are going to focus on their problems over your own. You can help them develop a more trusting partnership with them if you talk less about yourself and more about the problems and/or them.
As for my personal experience with pairing, I have found almost no negative aspect to the open collaboration that it brings to the table. Just this week, Brittney and I traded bits of code pertaining to the pairing session even after the session itself. We weren't satisfied with our refactor, so we set out to fix what we started. After a day or so, we both had inklings of what needed to happen to get our code to look beautiful. After a few emails and some very clever usage of arrays, we had an amazing product that we couldn't have come up with on our own. Not only was pairing rewarding, it was an entertaining and ultimately positive experience. You are able to see different perspectives much more easily than reading about someone else's code.
About Me
I am, well I used to be, a college student who has always had an insatiable drive to learn about the world. I am currently attending Dev Bootcamp to learn how to code and develop pretty much anything that my heart desires. That is all anyone can ever truly strive for, right?
-The links below are broken for the time being. I am working on updating all of my blog pages.-


We aggregate networks!
- enable intuitive action-items
- generate dynamic infomediaries
- implement best-of-breed channels
- implement viral mindshare
- incentivize seamless deliverables
- evolve virtual partnerships
- optimize cross-media initiatives
- engineer cross-media architectures
- embrace impactful convergence
- cultivate compelling metrics
- innovate scalable communities
- incubate ubiquitous deliverables
- orchestrate e-business systems
- leverage magnetic relationships
- harness front-end bandwidth


Log In
Apply
About Us
Contact Us
Find a Branch or ATM
Calculators
Rates
RewardChecking
Personal Savings
Auto Loan products
RewardChecking
Earn 100 mile for every $1 spent
free glow in the dark checks
5.10% APY
Apply Now
Personal Savings
No minimum Balance
Free checks
Online access 24/7
2.10% APY
New Auto Loans
Get pre-approved for auto financing
Auto loan response in minutes
Free 45-day rate lock
New auto loan rates as low as
3.10% APR


‘Oh my f—ing god’: Watch Elon Musk’s reaction after Tesla’s lead designer cracked a window on the Cybertruck that Musk suggested was stronger than normal car glass
by Mark Matousek, Business Insider US- Tesla unveiled its Cybertruck pickup truck on Thursday.
- During the event, Tesla CEO Elon Musk suggested that the vehicle’s window glass was stronger than that of a typical car.
- But two windows on the vehicle cracked when Franz von Holzhausen, Tesla’s head of design, threw a metal ball at them.
- Sign up for Business Insider’s transportation newsletter, Shifting Gears, to get more stories like this in your inbox.
- Visit Business Insider’s homepage for more stories.
Tesla unveiled its Cybertruck pickup truck on Thursday.
During the event, Tesla CEO Elon Musk suggested that the vehicle’s window glass was stronger than that of a typical car. But two windows on the vehicle cracked when Franz von Holzhausen, Tesla’s head of design, threw a metal ball at them.
Here’s how Musk reacted to the Cybertruck’s glass cracking:
“Oh my f—ing god,” Musk said after von Holzhausen’s first throw.
Musk then said the throw might have been too hard and laughed, saying that, at the very least, the ball didn’t go through the window.
“Eh, not bad. Room for improvement,” Musk joked after the second throw, which cracked the window next to the first one.
Musk said Tesla had thrown wrenches and even a sink at the glass used for the Cybertruck without breaking it, and he joked that the company would fix the video of the event in postproduction.
Tesla plans to begin production of the Cybertruck, which starts at $39,900, in late 2021. The vehicle’s most expensive trim, which starts at $69,900, will have a maximum range of over 500 miles, a maximum towing capacity of over 14,000 pounds, and the ability to accelerate from zero to 60 mph in under 2.9 seconds, Tesla says.
Are you a current or former Tesla employee? Do you have an opinion about what it’s like to work there? Contact this reporter at<EMAIL_ADDRESS>You can ask for more secure methods of communication, like Signal or ProtonMail, by email or Twitter direct message.
More from Tesla’s cybertruck reveal:
- Tesla’sCybertruck launch went off the rails when its ‘armor glass’ windowswere easily smashed twice in a live test
- Tesla’sCybertruck is inspired by a 1977 James Bond spy car which Elon Muskloved so much he bought the real one in 2013
- Elon Musk’sCybertruck is getting roasted on Twitter, and people thinks itlooks like something out of a badly rendered video game
- Tesla stock falls after itsCybertruck’s shatterproof windows break in a livedemonstration


Source: boot_acc.css, line 16389
11 UC: Borders
Borders a complex utility that demands a combo UCs to acheive their effect. The three UCs that must be used in combo are style
, color
, and width
. To make an object with single black pixel border that is solid you would have to add '.br_solid.br_1.br_black'


There is a number of variables that you can tweak in order to configure Polipo, and they should all be described in this manual (see Variable index). You can display the complete, most up-to-date list of configuration variables by using the -v command line flag or by accessing the “current configuration” page of Polipo's web interface (see Web interface). Configuration variables can be set either on the command line or else in the configuration file given by the -c command-line flag.
Configuration variables are typed, and -v will display their types. The type can be of one of the following:
The configuration file has a very simple syntax. All blank lines are ignored, as are lines starting with a hash sign ‘#’. Other lines must be of the form
var = val
where var is a variable to set and val is the value to set it to.
It is possible to change the configuration of a running polipo by using the local configuration interface (see Web interface).


About
I am:
- A father of two
- A commercial helicopter pilot
- An amateur photographer
- An aspiring software developer
- A life-long student
In the past, I have been:
- A fire stick juggler
- A long-distance telephone operator
- A submarine mechanic
- A hang glider pilot
- An account executive
- A helicopter flight instructor
- An airport operations agent
- An insurance company auto damage adjuster
- An IRS call center representative
- And even a Christmas tree salesman!
I like:
- Playing with my kids
- Movies
- The Pacific Northwest
- Apple products (hopeless fanboi)
- The Tesla Model S
- Traveling
- Hiking
- All forms of transportation, except public busses
- Trying / learning new things
- Pizza
I dislike:
- Snobbery
- Pettiness
- Politics
- Religious zealotry
- Marzipan
- Public busses
- The smell of wet smokers
- Phone calls in public restrooms - have some class, people!


When you work with us,you are part of a team of committed collaborators. All aspects of our software development process are intergrated,interactive
and angle
Our approach unifies design, development and product management to create exceptional products.
We start each project by understanding your business goals, the user's needs and the product requirements.
Then we help translate them into effective and elegant solutions.
Before we sign a contract or write a line of code, our team will spend the neccessary time needed to understand your product vission.
The outcome of the scoping session a proposal or high-level statement of work.
based on your requirements, we can provide a complete offering or just the piece you need.
Our design practice offers a full range of services including brand strategy, interaction and visual design and user experience testing.
Throughout your project, our designers create and implement visual design and workflows, solicit user feedback and work with you to make sure what gets built is what is needed.
DESIGN
All engineers are fluent in the latest enterprise, mobile and web development technologies.
They collaborate with your team to write, and improve code on a daily basis, using proven practices such as test-driven development and pair programming.
DEVELOPMENT
All engineers are fluent in the latest enterprise, mobile and web development technologies.
They collaborate with your team to write, and improve code on a daily basis, using proven practices such as test-driven development and pair programming.
PRODUCT MANAGEMENT
Dark Art
Mighty Ontario Security
Abstract Yellow
Weather App
Portfolio
Age Form UI
Logo Mock-up
Giraffe Restaurant


| Home | Malls | Cinemas | Eateries |
What does one know about Bangalore? Clubbing, Shopping and IT? Well,Go karting is the most under-rated activity of Bangalore. Masses think that it happens only in NCR which isn't. Go karting is a small four wheeler vehicle which comes in various shapes and sizes. It is most like-able by adventurous people.
Here is a list of Go karting places in Bangalore. To guide you next time you visit the Silicon Plateau.
| Go Karting Centres | Details |
|---|---|
PLAY ARENAAddress: No.75, Off Sarjapur Main Rd, Central Jail road ,Kasavanahalli, Bangalore. |
|
PATEL'S INNAddress: 1, 15th Cross, 2nd Block, Govindaraj Garden, R.T Nagar, Bengaluru, Karnataka 560032 |
|
RACEWAYMOTOR SPORTSAddress: Survey No. 24, Kanakapura Main Road, Near Kaggalipura, Pattareddypalya, Bengaluru |
|
GRIPS GOKARTING AND BOWLINGAddress: Sy.No:68, Anchepalya Mysore Road, Bengaluru |
Play arena in Bangalore is one of its own kind. It has a lot to offer. Right from indoor to outdoor games. There are "Go karting" carts which is the major attractive thing. The colourful carts and enthusiasm of the visitors are very much evident.
Address: No.75, Off Sarjapur Main Rd, Central Jail road ,Kasavanahalli, Bangalore.
Timings: 10.30 am-10 pm on all days
Cost: Mon-Thurs 150 Rs for 6 laps, Fri-Sun 200 Rs for 6 laps
Contact:<PHONE_NUMBER>8
Track Length: 200 meters
|
|
|---|
Imagine you are sitting in a very spacious room with all kinds of luxuries beside you.
Suddenly something grabs your attention. The kart often does it in Patel's Inn. Situated in the suburban area Patel's inn is very impressive. The staffs and the workers are too helpful for new ones to experience it.
Address: 1, 15th Cross, 2nd Block, Govindaraj Garden, R.T Nagar, Bengaluru, Karnataka 560032
Timings: Mon-Fri 11 am - 9.30 pm, Sat-Sun 11 am - 10.30 pm
Cost: Mon-Fri 120 Rs for 7 laps, Sat-Sun 120 Rs. for 6 laps
Contact:<PHONE_NUMBER>6
Track Length: 450 meters
|
|
|---|
Raceway motorsports is probably the most emerging in India. The amazing environment, affluent racecourse and professional staffs has made it the most enjoyable sport. Go karting is their specialty. It is very pocket-friendly. Enjoyed by every age group. It is a must visit both for locals and visitors.
Address: Survey No. 24, Kanakapura Main Road, Near Kaggalipura, Pattareddypalya, Bengaluru
Timings: Tue-Sun 10 am-7 pm, Closed on Monday
Cost: 250 Rs for 10 laps on all days
Contact:<PHONE_NUMBER>4
Track Length: 350 meters
|
|
|---|
The fusion sounds great. Isn't it?  It has more than 40 karts available with multiple tracks. Horror and excitement works simultaneously with each other. It holds the pride of bringing number of visitors.
Address: Sy.No:68, Anchepalya Mysore Road, Bengaluru
Timings: Mon-Fri 10.30 am-6.30 pm, Sat-Sun 10.30 am-8.30 pm
Cost: 180 Rs. for laps on all days
Contact:<PHONE_NUMBER>5
Track Length: 500 meters


Cause to Effect
This scheme asserts that a CLAIM in an argument map is a consequence of an event or change of state. The DATA for the scheme is the event or observation that triggers the effect claimed. The WARRANT is an explanation of the causal mechanism, and the QUALIFIER is presumably.
The inference is an example of the Argument from Cause to Effect scheme for presumptive reasoning.
The critical questions are:
-
Is the evidence strong enough justify the claimed effect?
-
Does the cause happen before the effect?
-
Are other causal factors involved?
-
Does the causal explanation warrant the claim?