FontForge install procedures
for the macintosh =============================
I no longer provide pre-built packages. You may either compile from source or download a package from another site (both macports and fink have fontforge packages).
- Before you install
- Installing on a unix/linux system
- Installing on MS/Windows
- Installing on VMS
- Building and installing from source
- Dependencies (external libraries/helper programs)
- Installing documentation
- Running FontForge
- Uninstalling
Installing from a pre-built package
Before you install
You must insure that you have the X11 server installed on your system.
10.5, 10.4
- Open the Install DVD that came with your system.
- Scroll down to "Optional Installs" and open it.
- Keep clicking
Continue
until you get to the pane "Custom Install on "Macintosh HD"" - Press the arrow beside "Applications so you get a list of them.
- Select X11
- Keep pressing
Continue
- (If you want to build from source you should also install the Xcode packages).
Apple appears to have shipped a buggy version of X11 with 10.5. The problem appears fixed in 10.5.6 (It may have been fixed earlier, but I don't have a machine on which I can test that).
The problem only affects fontforge it if uses pango or cairo.
This release of fontforge tries to check for a buggy system, and if it thinks it is running on one, then it will refuse to use Pango and Cairo.
The problem does not affect Mac 10.4.*
You may upgrade from 10.5 to 10.5.6 by going to the Apple Menu and selecting the "Software Update" menu item, and then the "Mac OS X Update Combined".
You probably need to install X11 before you upgrade the Operating System.
10.3
- The X server lives in a package called X11User.pkg in the Packages folder on the third install CD.
- Just double click on this file and follow its instructions to install X11
You may also want to install the fink or macports packages which includes many useful libraries (see the dependencies section below for more info on this)
Configuring X11
X11->Preferences->Input
FontForge is designed to make use of a three button mouse. It is also designed to make use of modifier key modes on mouse clicks (so Control left click can mean something different than left click). If you have a three (or two) button mouse then use it (and turn off "Emulate three button mouse
" in the X11 preferences). If you have a standard one button mouse then you have the option of having the mac simulate a three button mouse (for instance Option mouse click behaves like clicking the middle mouse button). Unfortunately this means you can no longer use the Option key to change the behavior of the left (only) button click.
Normally X11 is configured so that the Command key (cloverleaf) is bound to the X11 menu bar, and not to fontforge's. When fontforge starts it checks this, and if X11 gets command then fontforge configures its menubar to use Control rather than command. This isn't very mac-like. If you turn off the "Enable keyboard shortcuts under X11
" preference item then fontforge will configure its menubar to make use of Command.
If type the following into a terminal (or xterm) window
$ cat >~/.fonts.conf <?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <!-- /etc/fonts/fonts.conf file to configure system font access --> <fontconfig> <!-- Font directory list --> <!-- Add to system list --> <dir>/System/Library/Fonts</dir> <dir>/Library/Fonts</dir> <dir>~/Library/Fonts</dir> </fontconfig> ^D
then fontforge's UI will be able to use the fonts Apple supplies with the mac. (You don't type the "$", and ^D means hold down the control key and press "D").
Note:
On the mac, the Option key is mapped to what fontforge calls "Alt" or "Meta".
Obtaining one of my pre-built packages
I used to post mac install packages on sourceforge's file release system. The old ones are still there but they are now out of date. There's a certain amount of pother involved in using the file release system, but you get the file eventually.
I currently post builds for Mac 10.5 & 10.4 (I post different builds for the two systems because they provide different python libraries).
Neither of these builds will work on 10.3. If you wish a 10.3 build you can build from current source, or download a build from 2006. If you wish a 10.2 or earlier build the current sources will not work and you must delve more deeply into the past.
- If you follow the link aboveyou will end up on a page showing many releases of FontForge for many systems
in most cases you will want the most recent release. - Then click on the executable package you want to download:
- The mac release will be called something like "FontForge-200xxxxx.pkg.sitx
- Then you have the joy of choosing a mirror site (pick one that's on the same continent you are) and click on the little icon in the download column
- Then you wait. After a bit you get another copy of this same page. After an even longer time your browser notices that you've started a download.
Installing
Generally your browser will decompress the package after pulling it down, and then start the install process itself.
If this doesn't happen, find the package (it's usually on the desktop) and double-click on it.
The install will request your password (to make sure you have the right to do an install on your machine, and then ask some innocuous questions, and proceed to install.
Notes
FontForge does not conform to Apple's Human Interface Guidelines. FontForge never will. Don't expect it to look like a normal Mac Application. It doesn't.
Before you can start FontForge you must start the X11 server. You do this by opening the Utilities sub-folder of the Applications folder and double-clicking on X11. This will bring up a new menu bar, and under the Applications menu you should find an entry for FontForge.


This visualisation is best viewed on desktop.
Click on the graphs to select a year.
Compared to previous year.
|
Country of Asylum
|
|
Country of Origin
|
" + monthNameFormat(date) + " | " + numberFormat(d.y) +"
| Refugees by Origin |
|
|
|
1 - 25,000 |
|
|
|
25,001 - 100,000 |
|
|
|
100,001 - 500,000 |
|
|
|
500,001 - 1,000,000 |
|
|
|
1,000,001 - 2,500,000 |
|
|
|
2,500,000+ |
|
|
|
Data unavailable |
| Refugees by Asylum |
|
|
|
1 - 25,000 |
|
|
|
25,001 - 100,000 |
|
|
|
100,001 - 500,000 |
|
|
|
500,001 - 1,000,000 |
|
|
|
1,000,001 - 2,500,000 |
|
|
|
2,500,000+ |
|
|
|
Data unavailable |
|
Increase |
|
|
|
500,000 + |
|
|
|
100,001 - 500,000 |
|
|
|
1,001 - 100,000 |
|
|
|
1 - 1,000 |
|
|
|
Data unavailable (0) |
|
|
|
1- 1,000 |
|
|
|
1,001 - 100,000 |
|
|
|
100,001 - 500,000 |
|
|
|
500,000 + |
|
|
|
Decrease |
Country
Refugees in Angola
122,220
refugees in-country
1,202,600
increase since 1989
Refugees from Angola
122,220
refugees worldwide
1,202,600
increase since 1989


First post
One of the interesting things about starting this project is how much
easier it is to get to the writing part. Nothing to bikeshed if you
just start.
Another is how many things I've forgotten that I previously would have
considered critical. The modern mess of automation and frameworks does
remove the programmer from a lot of details.
Literally as soon as I finished the last two paragraphs I went off
to bikeshed things. I stand by there being less distractions, none
was more than a little grandiose though.


Plugin Information |
|---|
View AWS SQS Build Trigger on the plugin site for more information. |
Jenkins plugin that triggers builds on events from CodeCommit that are published via Amazon Simple Queue Service (SQS)
SCM SQS Plugin for Jenkins
A Jenkins plugin that allows to use the Amazon Simple Queue Service (SQS) as a build trigger. Currently supports messages sent by Git repositories hosted on Amazon's CodeCommit. In the future additional services may be supported.
To use this plugin you will need to have the following:
1. An Amazon Web Services (AWS) account
2. A Git repository that is hosted on CodeCommit
3. A Simple Notification Service (SNS) topic
4. A Simple Queue Service (SQS) queue
5. A user that is allowed to access the queue
You can find the documentation on how to configure your Amazon account and the plugin on the plugin's GitHub page:
https://github.com/jenkinsci/scm-sqs-plugin


×
[ONLINE COURSE] - The Complete JavaScript Course: Build a Real-World Project
+++ Master JavaScript with the most complete JavaScript course on the market! Includes projects, challenges, final exam, ES6 +++ You will gain a deep and true understanding of how JavaScript works behind the scenes. +++
JS Axios Demo
by CodingTheSmartWay.com
Welcome To Axios
This applications uses Axios. Axios is a Promise-based HTTP client for JavaScript which can be used in your front-end application and in your Node.js backend.
GET Request
Get Todos
Clear
GET Request with Paramaters
Get Todos
Clear
POST Request
Send
Clear


Please click "submit" again, in order to rerun the calculation with your revised inputs.
If the possible cut in benefits occurs, the The strategy that maximizes the total dollars you can be expected to receive over your lifetimes is as follows:
The present value of this proposed solution would be {{this.solutionSet.claimStrategy.PV.toLocaleString('en-US', {style: 'currency', currency: 'USD', minimumFractionDigits:0, maximumFractionDigits:0})}}.
This means that with this strategy you could expect to receive, on average, {{this.solutionSet.claimStrategy.PV.toLocaleString('en-US', {style: 'currency',currency: 'USD', minimumFractionDigits:0, maximumFractionDigits:0})}} of total Social Security benefits over the course of your lifetimes, after adjusting for the fact that a dollar received in the future is worth less than a dollar received today (because the sooner you receive a dollar the sooner you can invest it). See this article for a more thorough explanation of the "present value" concept.
If you want to save your inputs, you can right-click this link and choose "copy link" (in Firefox/Safari) or "copy link address" (in Chrome). If you paste that URL into your browser later, your inputs will be pre-filled.


--- title: "Temporary Post Used For Style Detection (fe6c10b8-f62b-4d82-b9d5-d30e3a1bba35)" layout: post ---
This is a temporary post that was not deleted. Please delete this manually. (f1b48d33-090f-42a4-af2a-74e5e28b41ae)


Title
Today's Date
Your first paragraph goes here.
Your second paragraph goes here.
Your third paragraph goes here.


Floor 59 Image Credits
Circle #703 i_se +
- immense
- By WikiImages / CC0 / Pixabay
- immerse
- By tatlin / CC0 / Pixabay
- incense
- By skyhp009 / CC0 / Pixabay
- inverse
- By Alexas_Fotos / CC0 / Pixabay
Circle #707 in_ct +
- indict
- By succo / CC0 / Pixabay
- induct
- By Irasutoya / License
- infarct
- By Irasutoya / License
- infect
- By toyquests / CC0 / Pixabay
- inflict
- By Irasutoya / License
- inspect
- By Bokskapet / CC0 / Pixabay
- instinct
- By staffordgreen0 / CC0 / Pixabay
- instruct
- By Werner_LB / CC0 / Pixabay
- intact
- By Hans / CC0 / Pixabay
- interdict
- By ndemello / CC0 / Pixabay
- interject
- By mohamed_hassan / CC0 / Pixabay
- intersect
- By Pexels / CC0 / Pixabay


mentioned
by Esmé Cowles at 2019-11-22 23:37:48.subscribed
by Esmé Cowles at 2019-11-22 23:37:49.review_requested
by Francis Kayiwa at 2019-11-23 00:03:57.referenced
by Francis Kayiwa at 2019-11-23 00:05:59.merged
by Francis Kayiwa at 2019-11-23 00:05:59.closed
by Francis Kayiwa at 2019-11-23 00:05:59.head_ref_deleted
by Francis Kayiwa at 2019-11-23 00:06:03.referenced
by Francis Kayiwa at 2019-11-23 00:08:13.merged
by Francis Kayiwa at 2019-11-23 00:08:13.closed
by Francis Kayiwa at 2019-11-23 00:08:13.head_ref_deleted
by Francis Kayiwa at 2019-11-23 00:08:16.thanks for merging this @escowles
review_requested
by Francis Kayiwa at 2019-11-23 11:24:00.ready_for_review
by Francis Kayiwa at 2019-11-23 17:25:01.mentioned
by Esmé Cowles at 2019-11-23 17:27:24.subscribed
by Esmé Cowles at 2019-11-23 17:27:24.referenced
by Esmé Cowles at 2019-11-24 01:06:25.merged
by Esmé Cowles at 2019-11-24 01:06:25.closed
by Esmé Cowles at 2019-11-24 01:06:26.head_ref_deleted
by Esmé Cowles at 2019-11-24 01:06:29.


A wonderful trip from Perth including:
All of these spots are in Western Australia, and the total driving distance for the trip was about 5000 km in something close to two weeks. We have since this trip learned that we went at exactly the right time for Karijini, because it was the wet season and all the gorges had beautiful fresh running water in them, making swimming several times a day a real joy.
In our recent outings further north to Purnululu, Broome, Kings Canyon, and Uluru we have realized that if you go in the cooler and dry part of the year (March or April), there is no water in the gorges and you cant swim. This really reduces the enjoyment on the hot days in the desert climate, so we advise going to Karijini in November.
If you want to see the pictures in full resolution, you can browse the picasa web album here .
We rented a medium size RV in Perth, kitted everything up a couple hours and left early in the afternoon to make it a couple hundred km up the coast for the first night in Dongara.
Crocsy the world traveler on the road north from Perth
The rental RV on coast near Dongara
On the beach a short walk from the campsite in Dongara (1)
On the beach a short walk from the campsite in Dongara (2)
The first thing we had planned was a tour of the Francois Peron National Park near Monkey Mia. After driving another 500 km north onto the peninsula, we checked into a caravan park in Denham, just on the border of the National Park.
Early the next morning Monkey Mia Wildsights picked us up in a 4wd for the full day tour. We were super impressed with the tour guide, who was very knowledgeable and an expert in taking us off the beaten track.
The Monkey Mia Wildsights 4wd, our ride for the day
View from the beach on the north side of the cape
A termite mound we saw on the side of the road. These things were everywhere, and different colors depending on the type of soil.
The next several pictures are some of the wildflowers that were out. November is a good time to see lots of flowers.
Wildflowers and wild child
After driving along dirt roads with soft sand to the north side of the cape, we drove down onto the beach for a bit to this lovely spot.
Beautiful view of the red cliffs and the Indian Ocean
Same view from above
At this point in the tour we took a long walk along on the cliffs, and learned some of the local history from the guide.
The next two are some of my favorite pictures from the day. The photos dont really do the colors justice.
It was dusk as we were still one-half hour from the campsite, and we saw more wildlife than any other day. We saw maybe 20 roos, maybe one quarter of which were dead and in various stages of decay. Lots of them were crossing the road of on the verge of the road. Very good advice: dont drive after sundown in Australia.
Our site was fantastic! The site was very near to the beach, with the Ningaloo Reef right there off the beach. It was not a sandy beach, due to the reef, but there were tons of fish to see if you went snorkeling. We really enjoyed our time there, and the site was maybe an hour from where all the (other) tourists were in Exmouth.
Dinner at the campsite on the beach
Fishing 2 minutes from the campsite
Another cove a bit further north from our campsite
An emu seen while exploring at the excellent Jurabi Turtle Center. At the right time of year you can watch thousands of turtles hatch and head to the sea.
Fishing somewhere in the Cape Range, we cant remember where.
The excellent folks at the visitor center help to hook us up with a small boat offering a snorkeling tour on the Ningaloo Reef. Most of the other operators had shut down due to bad weather offshore, but these guys knew a few sheltered spots and agreed to take us out for a half-day tour.
Bonus humpback whales seen on the snorkeling tour! We were pretty excited, and the captain told us we would be lucky to get this close on a tour dedicated to whale watching.
A girl excited to be out on a boat ride
The next few shots were taken with Ericks underwater camera after we arrived at the snorkeling spot. This particular tour included the use of these seadoos, which were fun for a while but I eventually jettisoned mine to free dive.
Karijini is in the Pilbara region of Western Australia and the Hammersly Range . The most spectacular things about Karijini are the contrast in colors, and the contrast in the layering and iron banding in the rocks. We went for the gorges, and we were not disappointed.
The visitor center
One of the unsealed but decently graded roads that link the various attractions (gorges!) in the Park.
What follows are lots of pictures of happy people exploring wonderful places. These pictures can almost rekindle the joy of being there, but being able to swim 4 times a day in different places in beautiful clean water was a truly special thing. I think we picked the absolute perfect time of the year.
A beautiful glade near
Fortescue Falls
, one of the parks standout locations.
A lizard (bungara?) seen near
Fortescue Falls
Fortescue Falls
itself
The next several panoramic pictures capture some of the fantastic beauty of the Karijini gorges. In the several days we were there, we drove to 4 different trailheads, and walked 6 different gorges. You can turn a corner in any one of them and be presented with these kinds of colors and peace and beauty. Outstanding!
Joffrey gorge
, close to the Eco Retreat, was one of our top favorite gorges. You had to do a little climbing and walking to get to the point where there is a lake 300 meters long. Awesome!
Joffrey Gorge (1)
Joffrey Gorge (2)
Hancock gorge
was my personal favorite. This is an area around
Weano Gorge
that includes such awesome features as the
Spider Walk
,
Kermits Pool
, and
Handrail Pool
. On the way to the end of the gorge you get to do the
Spider Walk
with one foot on either side of the gorge.
The Spider Walk in Hancocks Gorge
On the way down to Kermits Pool in Hancock Gorge
Some wildlife seen in one of the gorges
Two more non panoramic photos of the random beauty in the gorges.
More local fauna in the next two pictures
Next up is lots pictures of walks in the gorges with people to help judge the scale. The walks themselves were really kind of epic given the scenery and the wildlife and the chance to swim whenever the fancy took you.
The next couple pictures are from
Dales Gorge
, above
Fortescue Falls
and
Circular Pool
. We had our longest hottest walk there, and it was the very first gorge we visited. Swimming in circular pool and over to the falls on the far side of a small pond was a real joy after getting very hot and dusty on the earlier part of the walk.
That isnt Bruce in the background, but maybe sombrero hill or a similar name
The trail was actually pretty rugged, as you can see in this photo
Most of the way up
Marandoo Mine, a large Rio Tinto iron mine in the background
On the summit
Summit panorama
Proof of ascent
On the way back down with the sombrero hill in the background
The last several pictures are from out walk out to
Rock Arch Pool
in
Kalamina Gorge
.
Gigantic spiders seen on the way
Kids climbing up to the Rock Arch
Pano with the rock arch
Kids in the rock arch


3.
CORE TEAM
Rishabh Bansal
@rishabhbansal
Gauss Lala
@GaussLala
Adarsh Chawla
@adarshchawla
HOURS
TRACKS
Human resources are the people who make up the workforce of an organization, business sector, or economy. "Human capital" is sometimes used synonymously with "human resources", although human capital typically refers to a narrower effect.
There are a lot of problems in this field, find them and solve them!
A blockchain, originally blockchain, is a growing list of records, called blocks, which are linked using cryptography. Each block contains a cryptographic hash of the previous block, a timestamp, and transaction data. By design, a blockchain is resistant to modification of the data.
How can you resolve the several problems faced in this field?
Note - Products build on Ethereum are only valid for Matic API Prize Category
Mental health is a level of psychological well-being or an absence of mental illness - the state of someone who is functioning at a satisfactory level of emotional and behavioural adjustment".
According to the World Health Organization (WHO), mental health includes "subjective well-being, perceived self-efficacy, autonomy, competence, inter-generational dependence, and self-actualization of one's intellectual and emotional potential, among others."
Mental Health is one of the most important issues in the world at the moment, be it for teens or adults. Are there ways in which us tech-savvy people can help in this area?
Financial technology, often shortened to FinTech or fintech, is the new technology and innovation that aims to compete with traditional financial methods in the delivery of financial services.
It is an emerging industry that uses technology to improve activities in finance.
Developers and designers are people with a lot of workloads.
They code all day and night, spend hours on getting the perfect margin and colour contrast. It sure isn’t an easy task.They certainly wouldn’t mind a little help, right?
A smart city is a municipality that uses information and communication technologies to increase operational efficiency, share information with the public and improve both the quality of government services and citizen welfare.
In the approach to the Smart Cities Mission, the objective is to promote cities that provide core infrastructure and give a decent quality of life to its citizens, a clean and sustainable environment and application of 'Smart' Solutions.
Analyze the issues that can or will arise and come up with a creative idea to resolve them!
The Internet of Things or IoT, is a system of interrelated computing devices, mechanical and digital machines, objects, animals or people that are provided with unique identifiers (UIDs) and the ability to transfer data over a network without requiring human-to-human or human-to-computer interaction.
It is simply "A network of Internet-connected objects able to collect and exchange data."
It is also one of the fastest growing industry right now. Can you use this amazing concept and implement something useful or creative?
Computer vision is the science that aims to give a similar to humans, if not better, ‘seeing’ capabilities to a machine or computer.
Computer vision is concerned with the automatic extraction, analysis and understanding of useful information from a single image or a sequence of images. It involves the development of a theoretical and algorithmic basis to achieve automatic visual understanding.
There are numerous applications of computer vision, like agriculture, augmented reality, biometrics, character recognition, etc.
FAQs
The maximum team size is 4 and lone wolves are also welcome. Participants are selected on an individual basis and can team up on the spot as well.
This is a student hackathon and only students are allowed to participate.
Selection will be done on the basis of the registration form submitted by the team. All girls' team would be given a preference during selection.
CORE TEAM
@rishabhbansal
@GaussLala
@adarshchawla


|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
See:
Description
| Class Summary | |
|---|---|
| BuildTableIndex | Example table column indexing class. |
| Driver | Driver for hbase mapreduce jobs. |
| Export | Export an HBase table. |
| GroupingTableMapper | Extract grouping columns from input record. |
| HFileOutputFormat | Writes HFiles. |
| HRegionPartitioner<KEY,VALUE> | This is used to partition the output keys into groups of keys. |
| IdentityTableMapper | Pass the given key and record as-is to the reduce phase. |
| IdentityTableReducer | Convenience class that simply writes all values (which must be
Put or
Delete instances)
passed to it out to the configured HBase table. |
| Import | Import data written by Export . |
| IndexConfiguration | Configuration parameters for building a Lucene index. |
| IndexConfiguration.ColumnConf | |
| IndexOutputFormat | Create a local index, unwrap Lucene documents created by reduce, add them to the index, and copy the index to the destination. |
| IndexRecordWriter | Writes the records into a Lucene index writer. |
| IndexTableReducer | Construct a Lucene document per row, which is consumed by IndexOutputFormat to build a Lucene index |
| KeyValueSortReducer | Emits sorted KeyValues. |
| LuceneDocumentWrapper | A utility class used to pass a lucene document from reduce to OutputFormat. |
| RowCounter | A job with a just a map phase to count rows. |
| TableInputFormat | Convert HBase tabular data into a format that is consumable by Map/Reduce. |
| TableInputFormatBase | A base for TableInputFormat s. |
| TableMapper<KEYOUT,VALUEOUT> | Extends the base Mapper class to add the required input key
and value classes. |
| TableMapReduceUtil | Utility for TableMapper and TableReducer |
| TableOutputCommitter | Small committer class that does not do anything. |
| TableOutputFormat<KEY> | Convert Map/Reduce output and write it to an HBase table. |
| TableOutputFormat.TableRecordWriter<KEY> | Writes the reducer output to an HBase table. |
| TableReducer<KEYIN,VALUEIN,KEYOUT> | Extends the basic Reducer class to add the required key and
value input/output classes. |
| TableSplit | A table split corresponds to a key range (low, high). |
Provides HBase MapReduce Input/OutputFormats, a table indexing MapReduce job, and utility
MapReduce jobs deployed to a MapReduce cluster do not by default have access
to the HBase configuration under $HBASE_CONF_DIR
nor to HBase classes.
You could add hbase-site.xml
to $HADOOP_HOME/conf and add
hbase jars to the $HADOOP_HOME/lib
and copy these
changes across your cluster but a cleaner means of adding hbase configuration
and classes to the cluster CLASSPATH
is by uncommenting
HADOOP_CLASSPATH
in $HADOOP_HOME/conf/hadoop-env.sh
adding hbase dependencies here. For example, here is how you would amend
hadoop-env.sh
adding the
built hbase jar, zookeeper (needed by hbase client), hbase conf, and the
PerformanceEvaluation
class from the built hbase test jar to the
hadoop CLASSPATH
:
# Extra Java CLASSPATH elements. Optional. # export HADOOP_CLASSPATH= export HADOOP_CLASSPATH=$HBASE_HOME/build/hbase-X.X.X.jar:$HBASE_HOME/build/hbase-X.X.X-test.jar:$HBASE_HOME/conf:${HBASE_HOME}/lib/zookeeper-X.X.X.jar
Expand $HBASE_HOME
in the above appropriately to suit your
local environment.
After copying the above change around your cluster (and restarting), this is how you would run the PerformanceEvaluation MR job to put up 4 clients (Presumes a ready mapreduce cluster):
$HADOOP_HOME/bin/hadoop org.apache.hadoop.hbase.PerformanceEvaluation sequentialWrite 4
Another possibility, if for example you do not have access to hadoop-env.sh or
are unable to restart the hadoop cluster, is bundling the hbase jars into a mapreduce
job jar adding it and its dependencies under the job jar lib/
directory and the hbase conf into the job jars top-level directory.
HBase can be used as a data source, TableInputFormat
,
and data sink, TableOutputFormat
, for MapReduce jobs.
Writing MapReduce jobs that read or write HBase, you'll probably want to subclass
TableMapper
and/or
TableReducer
. See the do-nothing
pass-through classes IdentityTableMapper
and
IdentityTableReducer
for basic usage. For a more
involved example, see RowCounter
or review the org.apache.hadoop.hbase.mapreduce.TestTableMapReduce
unit test.
Running mapreduce jobs that have hbase as source or sink, you'll need to specify source/sink table and column names in your configuration.
Reading from hbase, the TableInputFormat asks hbase for the list of
regions and makes a map-per-region or mapred.map.tasks maps
,
whichever is smaller (If your job only has two maps, up mapred.map.tasks
to a number > number of regions). Maps will run on the adjacent TaskTracker
if you are running a TaskTracer and RegionServer per node.
Writing, it may make sense to avoid the reduce step and write yourself back into
hbase from inside your map. You'd do this when your job does not need the sort
and collation that mapreduce does on the map emitted data; on insert,
hbase 'sorts' so there is no point double-sorting (and shuffling data around
your mapreduce cluster) unless you need to. If you do not need the reduce,
you might just have your map emit counts of records processed just so the
framework's report at the end of your job has meaning or set the number of
reduces to zero and use TableOutputFormat. See example code
below. If running the reduce step makes sense in your case, its usually better
to have lots of reducers so load is spread across the hbase cluster.
There is also a new hbase partitioner that will run as many reducers as
currently existing regions. The
HRegionPartitioner
is suitable
when your table is large and your upload is not such that it will greatly
alter the number of existing regions when done; otherwise use the default
partitioner.
If importing into a new table, its possible to by-pass the HBase API and write your content directly to the filesystem properly formatted as HBase data files (HFiles). Your import will run faster, perhaps as much as an order of magnitude faster if not more.
You will need to write a MapReduce job. The map task will know how to
pull from your data source. Your reduce task will need to be hooked up to
HFileOutputFormat
. It expects to receive a row id and a value.
The row id must be formatted as a ImmutableBytesWritable
and the
value as a KeyValue
(A KeyValue holds the value for a cell and
its coordinates; row/family/qualifier/timestamp, etc.). Note that you must
specify a timestamp when you create the KeyValue in your map task
otherwise the KeyValue will be created with the default LATEST_TIMESTAMP (Long.MAX_VALUE).
Use System.currentTimeMillis() if your data does not inherently bear a timestamp.
Your reduce task
will also need to emit the KeyValues in order. See KeyValueSortReducer
for an example reducer that emits KeyValues in order.
Most importantly, you will also need to ensure that your MapReduce job
ensures a total ordering among all keys. MapReduce by default distributes
keys among reducers using a Partitioner that hashes on the map task output
key: i.e. the reducer a key ends up in is by default determined as follows
(key.hashCode() & Integer.MAX_VALUE) % numReduceTasks
.
Keys are sorted by the MapReduce framework before they are passed to the reducer
BUT the sort is scoped to the particular reducer. Its not a global sort.
Given the default hash Partitioner, if the keys were 0-4 (inclusive), and you
had configured two reducers, reducer 0 would have get keys 0, 2 and 4 whereas
reducer 1 would get keys 1 and 3 (in order). For your bulk import to work,
the keys need to be orderd so reducer 0 gets keys 0-2 and reducer 1 gets keys
3-4 (See TotalOrderPartitioner up in hadoop for more on what this means).
To achieve total ordering, you will likely need to write a Partitioner
that is intimate with your tables key namespace and that knows how
to distribute keys among the reducers so a total order is maintained
(You need at least hadoop 0.20.1 setting your own Partitioner -- see MAPREDUCE-565).
See org.apache.hadoop.hbase.mapreduce.TestHFileOutputFormat for an example that puts together
KeyValueSortReducer
and HFileOutputFormat
.
HFileOutputFormat writes HFiles. When your MapReduce file finishes, in your
output directory you will have many HFiles. Run the script bin/loadtable.rb
to move the files from the MapReduce output directory under hbase. See head of script
for how to run it. This script
also adds the new table data to the hbase catalog tables. When the script completes,
on the next run of the hbase metascanner -- it usually runs every minute -- your
new table should be visible and populated.
See RowCounter
. This job uses
TableInputFormat
and
does a count of all rows in specified table.
You should be able to run
it by doing: % ./bin/hadoop jar hbase-X.X.X.jar
. This will invoke
the hbase MapReduce Driver class. Select 'rowcounter' from the choice of jobs
offered. This will emit rowcouner 'usage'. Specify tablename, column to count
and output directory. You may need to add the hbase conf directory to $HADOOP_HOME/conf/hadoop-env.sh#HADOOP_CLASSPATH
so the rowcounter gets pointed at the right hbase cluster (or, build a new jar
with an appropriate hbase-site.xml built into your job jar).
|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |


Created by Jed Bursiek - Green Badge
Disclaimer
The opinions stated in this presentation are the result of research into the current trends in the React community - there are other ways to test React.
But this is probably the best way.
Isn't that just extra work?
We write tests to..
What is it?
Jest is a testing framework for JavaScript
authored by Facebook
...the same group who created React
Components have two types of data
State data is specific to a component (class)
Props data is passed between components
React is most commonly used with JSX
(Javascript Syntax Extension)
JSX is a declarative XML/JavaScript hybrid language
Which gets transpiled into browser readable
JavaScript and HTML
Imperative
$.post('/login', credentials, function( user ) { // Modify the DOM $('header .name').text( user.name ); }); Not Logged InDeclarative
render: function() { const name = this.state.name; return
{ name ? name : Not Logged In } };
|
Imperative |
VS |
Declarative |
When the state or props are updated the component will re-render
To render output React uses a heuristic method
that diffs the existing component tree
with the new desired tree
The diff-ing takes place in the Virtual Dom
which makes it fast
Snapshots are rendered versions of a particular state.
HTML generated by the React component is saved auto-magically into snapshot file
Testing will compare snapshot files against the rendered version and output any differences
Jest has been revamped considerably in the last few years can now handle async tests.
Jest is used by Facebook to test React applications
So they made it easy...
Put your test scripts inside
__tests__ directory and run $npm test
What is it?
Enzyme is a wrapper that makes it simpler
to write unit tests with Jest.
ParentComponent
class ParentComponent extends Component { constructor(){ this.state = {value: "Hello"} } handleClick(){ this.setState({value: "Goodbye"}); } render() { return( <button onClick={handleClick}>{this.state.value}</button> <ChildComponent /> ); } }
ChildComponent
class ChildComponent extends Component { render() { return(
World
 ); } }
//__tests__ import { shallow } from "enzyme"; import ParentComponent from "../ParentComponent"; const wrapper = shallow(<ParentComponent />); console.log(wrapper.debug()); ---------------------- <button>Hello</button> <ChildComponent />
//__tests__ import { mount } from "enzyme"; import ParentComponent from "../ParentComponent"; const wrapper = mount (<ParentComponent />); console.log(wrapper.debug()); ---------------------- <button>Hello</button>
World

//__tests__ import { shallow } from "enzyme"; import ParentComponent from "../ParentComponent"; const wrapper = shallow(<ParentComponent />); expect(wrapper.toMatchSnapshot()); ---------------------- FAIL <button>Hellor</button> <ChildComponent />
//__tests__ import { shallow } from "enzyme"; import ParentComponent from "../ParentComponent"; const wrapper = shallow(<ParentComponent />); //CLICK SETS STATE TO "Goodbye" wrapper.find('button').simulate("click"); wrapper.update(); expect(wrapper.find("button").text().toBe("Goodbye")); console.log(wrapper.debug()); ---------------------- PASS <button>Goodbye</button> <ChildComponent />
What is it?
Standalone unit testing library for JavaScript.
Supplies spies, stubs and mocks.
Common Types of Spy
//__tests__ import { shallow } from "enzyme"; import { sinon } fom "sinon"; import ParentComponent from "../ParentComponent"; const spyFunc = sinon.spy(ParentComponent.prototype, "handleClick"); const wrapper = shallow(<ParentComponent />); wrapper.find('button').simulate("click"); wrapper.update(); //CHECK FUNCTION CALLED expect(spyFunc.called).toBe(true);
Common Types of Stub
ParentComponent
class ParentComponent extends Component { constructor(){ this.state = {value: "Hello"}; } handleClick(){ const msg = axios.get("api/getMessage"); this.setState({value: msg}); } render() { return( <button onClick={handleClick}>{this.state.value}</button> ); } }
//__tests__ import { shallow } from "enzyme"; import { sinon } fom "sinon"; import ParentComponent from "../ParentComponent"; const stubFunc = sinon.stub(ParentComponent.prototype, "handleClick"); const wrapper = shallow(<ParentComponent />); const fn = function(){ wrapper.setState("Message"); } stubFunc.callsFake(fn); wrapper.find('button').simulate("click"); wrapper.update(); expect(wrapper.find("button").text().toBe("Message")); ---------------------- PASS <button>Message</button>
$npm install --save-dev enzyme enzyme-adapter-react-16 enzyme-to-json
"jest": { "setupFiles": [ "./test/shim.js", "./test/jestsetup.js" ], "snapshotSerializers": [ "enzyme-to-json/serializer" ] }
// React 16 Enzyme adapter import Adapter from 'enzyme-adapter-react-16'; Enzyme.configure({ adapter: new Adapter() });
global.requestAnimationFrame = function(callback) { setTimeout(callback, 0); };
Next time - "Socio-economic effects of Intel's BBCS"
Beverage Based Caste System


cvopt.utils¶
-
extract_params
(logdir, model_id, target_index, feature_groups=None)[source]¶ Extract parameters from cvopt logfile.
Parameters: - logdir (str.) – cvopt’s log directory path.
- model_id (str.) – cvopt’s model id.
- target_index (int.) – Logfile index(start:0). Parameters correspond to index is extracted.
- feature_groups (array-like, shape = (n_samples,) or None, default=None.) –
cvopt feature_groups. When feature_groups is None, feature_param and feature_select_flag in returns is None.
feature select flag is bool vector. If this value is True, optimizer recommend using corresponding column.
Returns: - estimator_params (dict) – estimator parameters of the target model.
- feature_params (dict or None) – feature parameters of the target model.
- feature_select_flag (numpy array or None) – feature select flag of the target model.
-
mk_metafeature
(X, y, logdir, model_id, target_index, cv, validation_data=None, feature_groups=None, estimator_method='predict', merge=True)[source]¶ Make meta feature for stacking(https://mlwave.com/kaggle-ensembling-guide/)
Parameters: - X (np.ndarray or pd.core.frame.DataFrame, shape(axis=0) = (n_samples)) – Features that was used in optimizer training. Detail depends on estimator. Meta feature correspond to X is made using cross validation’s estimator.
- y (np.ndarray or pd.core.frame.DataFrame, shape(axis=0) = (n_samples) or None, default=None.) – Target variable that was used in optimizer training. Detail depends on estimator.
- logdir (str.) – cvopt’s log directory path.
- model_id (str.) – cvopt’s model id.
- target_index (int.) – Logfile index(start:0). The estimator correspond to index is used to make meta feature.
- cv (scikit-learn cross-validator) – Cross validation setting that was used in optimizer training.
- validation_data (tuple(X, y) or None, default=None.) – Detail depends on estimator. Meta feature correspond to validation_data is made using the estimator which is fitted whole train data.
- feature_groups (array-like, shape = (n_samples,) or None, default=None.) – cvopt feature_groups that was used in optimizer training.
- estimator_method (str, default="predict".) – Using estimator’s method to make meta feature.
- merge (bool, default=True.) – if True, return matrix which result per cv is merged into.
Returns: X_meta or X_meta, X_meta_validation_data – When validation_data is input, return tuple.
Return type: np.ndarray or tuple of np.ndarray.


Secure Coding Dojo
The authentication process failed. Verify that the user name and password are correct or restart your browser.


Reports unused default parameters.
def foo(a, b = 2) {}
If all
foo
calls will explicitly include argument for
b
then initializer for
b
will be highlighted as unused with option to remove it.
New in 2016.3


What is Apptitude ?
@Messages("what_is_apptitude")
@Messages("what_is_apptitude")
@Messages("what_to_do")
Winner Team - Cash Prize of 10k & Internship Opportunity
Runner Up Team - Cash Prize of 5k & Internship Opportunity
Second Runner Up - Internship Opportunity
The Prizes will be enhanced soon. More good things are coming your way!
March 1st : Announcement of event
March 5th : Registration Open
March 15th : Final Day for Registration & Idea Submission
March 16th : Result Announcement of the First Round
March 28th : Final Day for App Submission : Second Round
March 30 : Announcement of the finalists for App Expo.
April 4th : Showcasing of App : Final Round
April 4th : Result Announcement
@Messages("mad")
@Messages("gdg")
Google Student Ambassadors are the liasons between Google and Universities. They are motivated tribe of students, eager to bring students together and forward for Android Application Development.. Their thrill of new technology, enthusiasm about Google, and high involvement in their communities, helps them achieve this in an optimum way.


--- layout: post title: "(Finally) Buying a Good Monitor: Adventures in Hedonism and Native 4K" permalink: /:title/ tags: [monitors] ---
I built my first computer about a decade ago and can still rattle off all of its components. Gigabyte EP45-UD3R, Intel Core 2 Quad Q9550, nVidia GTX 260 216 Core, 8 GB of OCZ Reaper DDR2 1066 RAM, a Western Digital 500 GB 7200 RPM hard drive, Creative Fatal1ty sound card, Antec 1200 case1, 750 watt Corsair power supply, Lite-On 48x DVD-RW drive. I had no fewer than three Razer products whose names I will pretend not to remember. But even though I looked at it way longer than any other component, I couldn't tell you the monitor I had. It was a 1680x1050 flatscreen somewhere in the 22" to 24" range, and it was bad, but that's all I know. I just treated it as a necessary evil that took budget away from the real computer, like a Windows Vista license.
I kept that monitor for four or five years. At some point, I added a second monitor from the attic and the additional real estate was an epiphany. I eventually replaced this setup with two 1080p monitors that I used until a few weeks ago. Despite having spent years in monitor mediocrity, I never paid them any mind, either. They were ASUS, the panels performed poorly, but they did have plenty of inputs.2 At some point I switched one of the monitors to portrait orientation and found this setup ideal for my needs: Emacs or a game on the landscape monitor, web browser on the other.3 This too lasted a few years until about a month ago, when I impulse-bought a refurbished HP Spectre 32 Studio Display. Now that I've used the display for a few weeks, I don't know why I've put up with subpar displays for so long. It checks all of my boxes and has made computing and media consumption more pleasant and productive.
The most obvious change from my previous dual monitor setup is the sheer size of this beast. It's got almost 10 diagonal inches over its predecessors while offering quadruple the pixels of either of the previous monitors. It's also a 4K monitor, so that pixel count is a smidgen shy of the absurd, settling in the ridiculous territory. With the full 4k at 32 inches, text can be small, but never unreadable for my young eyes. This was important to me, since Linux doesn't have per-monitor scaling worked out, so this prevents issues whenever I pick up a new laptop, so long as it doesn't have a high DPI display. With the same number of pixels as a 2x2 grid of 1080p monitors, I can comfortably use up to four applications at once without compromise to the screen space available for each, though further tiling is fine depending on the space each program needs. And when giving a web browser or text file half the screen, the horizontal space is even greater than on a portrait 1080p monitor without the limited width–now that we've moved beyond 1024x768 displays, 1080 pixels of width isn't enough for many websites. Further, since 32 inches basically makes this a small TV, it's fine for watching video from across the room, which lets it pull double duty.
This is all made even better by the actual display being the best I've ever had. As a vertical alignment panel, the blacks and contrast are beautiful, and performance has been fine for the games I play, which are slower and less intense than twitch shooters. The GTX 660 I'm rocking these days doesn't actually have the horsepower to push 4K gaming, but Yooka-Laylee is still as disappointing at lower resolutions. Side-by-side mode and PIP for dual inputs is also fantastic; having MLB.TV next to Zelda is a legitimate quality of life improvement.
I've learned my lesson. Good peripherals are not to be undervalued. Which probably means I'll end up getting another Thinkpad for grad school because I'm not about to give up pointer mice and usable keyboards, nor the versatility that comes with using a combination laptop/bludgeon.4
I thought a big metal case with cool blue lights was awesome. Dragging that thing to and from my car in the Massachusetts winters when I went home for break as an undergrad was awful.
This actually matters to me. Right now I've got a desktop, tablet, Xbox 360, and Nintendo Switch hooked up to my display. To juggle inputs, I've got an HDMI switcher and regularly employ PIP. My audio situation is a little better, in the sense that getting a 17% on a test is better than skipping it and taking the zero. I bought an audio mixer in college and it's somehow one of my more justifiable tech buys. With extensive use of 1/8" TRS to L/R 1/4" TS adapters, I run my computer, tablet, and Switch audio into the mixer's three channels while maintaining volumes to my liking. Meanwhile my Xbox 360 is hooked up via RCA to avoid HDMI audio lag when I play Rocksmith, which is all that console is used for these days.
I share an office with a few other research assistants where we're issued dual monitors. I promptly switched my secondary monitor at work to portrait and eventually converted the rest of the office. Our brilliance is not yet recognized by the outside world, and we were once asked what sort of specialized work we did that required these tall monitors.
My current laptop is a refurbed EDU series Thinkpad, meaning it really is a tank. Massive bezels with rubber edges, a VGA port with room to spare, etc. I propped it on my backpack in a lecture once in undergrad, and it slid off onto tile, a drop of just a few inches but onto the side of the machine. A hundred some-odd people gasped in unison and it took me a moment to realize it was because of my laptop, because that sort of knock won't even leave a mark. There's something to be said for that.


Using Irmin to add fault-tolerance to the Xenstore database
This is the second in a series of posts that introduces the Irmin distributed storage engine. You might like to begin with the introductory post.
Xenstore is a critical service found on all hosts running Xen. Xenstore is necessary to * configure all VM I/O devices such as disk controllers and network interface cards; * share performance statistics and OS version information; and * signal VMs during shutdown, suspend, resume, migrate etc.
Xenstore must be reliable: if it fails then the host is unmanageable and must be rebooted.
Xenstore must be secure: if it is compromised by a VM then that VM can access data belonging to other VMs.
The current version of Xenstore is already written in OCaml and documented in the paper OXenstored: an efficient hierarchical and transactional database using functional programming with reference cell comparisons presented at ICFP 2009. The existing code works very reliably, but there is always room for improvement for debuggability of such a complex system component. This is where Irmin, the storage layer of Mirage 2.0, can help.
But first, a quick Xenstore primer:
Xen and Xenstore in 30 seconds
The Xen hypervisor focuses on isolating VMs from each-other; the hypervisor provides a virtual CPU scheduler and a memory allocator but does not perform I/O on behalf of guest VMs. On a Xen host, privileged server VMs perform I/O on behalf of client VMs. The configuration for calculating which server VM services requests for which client VMs is stored in Xenstore, as key/value pairs.
The following diagram shows a Xen host with a single client and server VM, with a single virtual device in operation. Disk blocks and network packets flow via shared memory between Xen-aware drivers in the VMs, shown in the lower-half. The control-plane, shown in the upper-half, contains the metadata about the datapath: how the device should appear in the client VM; where the I/O should go in the server VM; where the shared memory control structures are etc.
The Xenstore device attach protocol insists that all device keys are added through atomic transactions, i.e. partial updates are never visible to clients and transactions cannot interfere with each other. A Xenstore server must abort transactions whose operations were not successfully isolated from other transactions. After an abort, the client is expected to retry. Each key=value write is communicated to the server as a single request/response, so transactions comprising multiple writes are open for multiple round-trip times. This protocol is baked into guest VM kernels (including Linux, FreeBSD, Mirage, …) and won’t change anytime soon.
Xenstore is used heavily when lots of VMs are starting in parallel. Each VM typically has several devices, each of these devices is added in a parallel transaction and therefore many transactions are open at once. If the server aborts too many of these transactions, causing the clients to retry, the system will make little progress and may appear to live-lock. The challenge for a Xenstore implementation is to minimise the number of aborted transactions and retries, without compromising on the isolation guarantee.
Irmin Xenstore design goals
The design goals of the Irmin-based Mirage Xenstore server are: 1. safely restart after a crash; 2. make system debugging easy; and 3. go really fast!
How does Irmin help achieve these goals?
Restarting after crashes
The Xenstore service is a reliable component and very rarely crashes. However, if a crash does occur, the impact is severe on currently running virtual machines. There is no protocol for a running VM to close its connection to a Xenstore and open a new one, so if Xenstore crashes then running VMs are simply left orphaned. VMs in this state are impossible to manage properly: there is no way to shut them down cleanly, to suspend/resume or migrate, or to configure any disk or network interfaces. If Xenstore crashes, the host must be rebooted shortly after.
Irmin helps make Xenstore recoverable after a crash, by providing a library that applications can use to persist and synchronise distributed data structures on disk and in memory. By using Irmin to persist all our state somewhere sensible and taking care to manage our I/O carefully, then the server process becomes stateless and can be restarted at will.
To make Xenstore use Irmin, the first task is to enumerate all the different kinds of state in the running process. This includes the obvious key-value pairs used for VM configuration as well as data currently hidden away in the OCaml heap: the addresses in memory of established communication rings, per-domain quotas, pending watch events and watch registrations etc etc. Once the state has been enumerated it must be mapped onto key-value pairs which can be stored in Irmin. Rather than using ad-hoc mappings everywhere, the Mirage Irmin server has persistent Maps, persistent Sets, persistent Queues and persistent reference cells.
Irmin applications are naturally written as functors, with the details of the persistence kept abstract. The following Irmin-inspired signature represents what Xenstore needs from Irmin: ``` module type VIEW = sig type t
val create: unit -> t Lwt.t (** Create a fresh VIEW from the current state of the store. A VIEW tracks state queries and updates and acts like a branch which has an explicit [merge]. *)
val read: t -> Protocol.Path.t ->
[ Ok of Node.contents |
Enoent of Protocol.Path.t ] Lwt.t
(** Read a single key *)
val list: t -> Protocol.Path.t ->
[ Ok of string list |
Enoent of Protocol.Path.t ] Lwt.t
(** List all the children of a key *)
val write: t -> Protocol.Path.t -> Node.contents -> [ `Ok of unit ] Lwt.t (** Update a single key *)
val mem: t -> Protocol.Path.t -> bool Lwt.t (** Check whether a key exists *)
val rm: t -> Protocol.Path.t -> [ `Ok of unit ] Lwt.t (** Remove a key *)
val merge: t -> string -> bool Lwt.t (** Merge this VIEW into the current state of the store *) end ``` The main ‘business logic’ of Xenstore can then be functorised over this signature relatively easily. All we need is to instantiate the functor using Irmin to persist the data somewhere sensible. Eventually we will need two instantiations: one which runs as a userspace application and which writes to the filesystem; and a second which will run as a native Xen kernel (known as a xenstore stub domain) and which will write to a fixed memory region (like a ramdisk). The choice of which to use is left to the system administrator. Currently most (if not all) distribution packagers choose to run Xenstore in userspace. Administrators who wish to further secure their hosts are encouraged to run the kernelspace version to isolate Xenstore from other processes (where a VM offers more isolation than a container, which offers more isolation than a chroot). Note this choice is invisible to the guest VMs.
So far in the Irmin Xenstore integration only the userspace instantiation has been implemented.
One of the most significant user-visible features is that all of the operations done through
Irmin can be inspected using the standard git
command line tool.
The runes to configure Irmin to write
git format data to the filesystem are as follows:
let open Irmin_unix in
let module Git = IrminGit.FS(struct
let root = Some filename
let bare = true
end) in
let module DB = Git.Make(IrminKey.SHA1)(IrminContents.String)(IrminTag.String) in
DB.create () >>= fun db ->
where keys and values will be mapped into OCaml strings
, and our
VIEW.t
is simply an Irmin DB.View.t
. All that remains is to implement
read
, list
, write
, rm
by
1. mapping Xenstore Protocol.Path.t
values onto Irmin keys; and
2. mapping Xenstore Node.contents
records onto Irmin values.
As it happens Xenstore and Irmin have similar notions of “paths” so the first mapping is easy. We currently use sexplib to map Node.contents values onto strings for Irmin.
The resulting Irmin glue module looks like:
let module V = struct
type t = DB.View.t
let create = DB.View.create
let write t path contents =
DB.View.update t (value_of_filename path) (Sexp.to_string (Node.sexp_of_contents contents))
(* omit read,list,write,rm for brevity *)
let merge t origin =
let origin = IrminOrigin.create "%s" origin in
DB.View.merge_path ~origin db [] t >>= function
| `Ok () -> return true
| `Conflict msg ->
info "Conflict while merging database view: %s" msg;
return false
end in
The write
function simply calls through to Irmin’s update
function, while the merge
function
calls Irmin’s merge_path
. If Irmin cannot merge the transaction then our merge
function will
return false
and this will be signalled to the client, which is expected to retry the high-level
operation (e.g. hotplugging or unplugging a device).
Now all that remains is to carefully adjust the I/O code so that effects (reading and writing packets along the persistent connections) are interleaved properly with persisted state changes and voilà, we now have a xenstore which can recover after a restart.
Easy system debugging with Git
When something goes wrong on a Xen system it’s standard procedure to 1. take a snapshot of the current state of Xenstore; and 2. examine the log files for signs of trouble.
Unfortunately by the time this is done, interesting Xenstore state has usually been deleted. Unfortunately the first task of the human operator is to evaluate by-hand the logged actions in reverse to figure out what the state actually was when the problem happened. Obviously this is tedious, error-prone and not always possible since the log statements are ad-hoc and don’t always include the data you need to know.
In the new Irmin-powered Xenstore the history is preserved in a git-format repository, and can be explored using your favourite git viewing tool. Each store update has a compact one-line summary, a more verbose multi-line explanation and (of course) the full state change is available on demand.
For example you can view the history in a highly-summarised form with:
console
$ git log --pretty=oneline --abbrev-commit --graph
* 2578013 Closing connection -1 to domain 0
* d4728ba Domain 0: rm /bench/local/domain/0/backend/vbd/10 = ()
* 4b55c99 Domain 0: directory /bench/local/domain/0/backend = [ vbd ]
* a71a903 Domain 0: rm /bench/local/domain/10 = ()
* f267b31 Domain 0: rm /bench/vss/uuid-10 = ()
* 94df8ce Domain 0: rm /bench/vm/uuid-10 = ()
* 0abe6b0 Domain 0: directory /bench/vm/uuid-10/domains = [ ]
* 06ddd3b Domain 0: rm /bench/vm/uuid-10/domains/10 = ()
* 1be2633 Domain 0: read /bench/local/domain/10/vss = /bench/vss/uuid-10
* 237a8e4 Domain 0: read /bench/local/domain/10/vm = /bench/vm/uuid-10
* 49d70f6 Domain 0: directory /bench/local/domain/10/device = [ ]
* ebf4935 Merge view to /
|\
| * e9afd9f Domain 0: read /bench/local/domain/10 =
* | c4e0fa6 Domain 0: merging transaction 375
|/
The summarised form shows both individual operations as well as isolated transactions which
are represented as git branches.
You can then ‘zoom in’ and show the exact state change with commands like:
```
$ git show bd44e03
commit bd44e0388696380cafd048eac49474f68d41bd3a
Author: 448<EMAIL_ADDRESS>Date: Thu Jan 1 00:09:26 1970 +0000
Domain 0: merging transaction 363
diff –git a/0/bench.dir/local.dir/domain.dir/7.dir/control.dir/shutdown.value b/0/bench.dir/local.dir/domain.dir/7.dir/control.dir/shutdown.value
new file mode 100644
index 0000000..aa38106
— /dev/null
+++ b/*0/bench.dir/local.dir/domain.dir/7.dir/control.dir/shutdown.value
@@ -0,0 +1 @@
+((creator 0)(perms((owner 7)(other NONE)(acl())))(value halt))
```
Last but not least, you can git checkout
to the exact time the problem occurred and examine
the state of the store.
Going really fast
Xenstore is part of the control-plane of a Xen system and is most heavily stressed when lots
of VMs are being started in parallel. Each VM has multiple devices and each device is added in a
separate transaction. These transactions remain open for multiple client-server round-trips, as
each individual operation is sent to Xenstore as a separate RPC.
To provide isolation, each Xenstore transaction is represented by an Irmin VIEW.t
which
is persisted on disk as a git branch.
When starting lots of VMs in
parallel, lots of branches are created and must be merged back together. If a branch cannot
be merged then an abort signal is sent to the client and it must retry.
Earlier versions of Xenstore had naive transaction merging algorithms which aborted many of these transactions, causing the clients to re-issue them.This led to a live-lock where clients were constantly reissuing the same transactions again and again.
Happily Irmin’s default merging strategy is much better: by default Irmin
records the results of every operation and replays the operations on merge
(similar to git rebase
). Irmin will only generate a Conflict
and signal an
abort if the client would now see different results to those it has already
received (imagine reading a key twice within an isolated transaction and seeing
two different values). In the case of parallel VM starts, the keys are disjoint
by construction so all transactions are merged trivially; clients never receive
abort signals; and therefore the system makes steady, predictable progress
starting the VMs.
Trying it out
The Irmin Xenstore is under active development but you can try it by:
Install basic development tools along with the xen headers and xenstore tools (NB you don’t
actually have to run Xen):
sudo apt-get install libxen-dev xenstore-utils opam build-essential m4
Initialise opam (if you haven’t already). Make sure you have OCaml 4.01:
opam init
opam update
opam switch 4.01.0
Install the OCaml build dependencies:
opam install lwt irmin git sexplib cstruct uri sexplib cmdliner xen-evtchn shared-memory-ring io-page ounit
Clone the code and build it:
git clone git://github.com/mirage/ocaml-xenstore-server
cd ocaml-xenstore-server
make
Run a server (as a regular user):
./main.native --database /tmp/db --enable-unix --path /tmp/xenstored
In a separate terminal, perform some operations:
export XENSTORED_PATH=/tmp/xenstored
xenstore-write -s /one/two/three 4 /five/six/seven 8
xenstore-ls -s /
Next check out the git repo generated by Irmin:
cd /tmp/db
git log
Comments and/or contributions are welcome: join the Mirage email list and say hi!
- Irmin 0.12 with portable filesystem watching released
- MirageOS Summer 2016 Hackathon roundup
- MirageOS Summer 2016 Hackathon announcement, and talk roundup
- MirageOS Spring 2016 Hackathon!
- MirageOS security advisory 00: mirage-net-xen
- Introducing Functoria
- Run Mirage Unikernels on KVM/QEMU with Solo5
- MirageOS hackathon
- Introducing Charrua — a DHCP implementation
- Unikernel.org


| Class | Description |
|---|---|
| BackgroundObject |
Background objects are immovable objects of the game.
|
| BackgroundTile |
BackgroundTile are not added to BackgroundObject arraylist in GameWorld.
|
| BigExplosion |
BigExplosion plays when player dies
|
| Bullet |
Bullets are fired by player and enemy weapons
|
| Enemy |
Enemy objects in the game
|
| GameObject |
GameObject is the base class of objects in the game world.
|
| MoveableObject |
Moving objects in the game.
|
| PlayerShip |
PlayerShips are game players with input controls.
|
| PowerUp |
PowerUp holds an (upgraded) weapon to give to player.
|
| SmallExplosion |
Small explosions happen on bullet collisions with objects
|


Calendar Periods
Withhold Rule
Vendor Category
Withhold Type
Search Withhold
Payer Data
Withholding Vendor Update


Police weren't foiled by this crook's disguise - a pair of glasses
Police teased a wanted thief after he tried to evade capture by disguising himself with a pair of glasses.
David Springthorpe, 30, was being hunted by officers for breaching a court order as well as number of shoplifting offences.
But they didn’t have to look too far to find the crook after spotting him in the street – despite his attempts to ‘change his image’ with the specs.
Social media users poked fun at the effort after officers from the South Normanton and Pinxton Safer Neighbourhood Team posted a pair of mugshots online – one with the glasses and one without.
Many were quick to ridicule the attempt, with one pointing out how the disguise did nothing to conceal his ‘massive ears and neck tattoo’.
Springthorpe was subsequently charged with the theft of several perfume gift sets from Boots and jailed for 30 weeks at the Chesterfield Justice Centre.
Advertisement Advertisement
The force, part of Derbyshire Police, wrote that Springthorpe was held ‘after a short foot chase’.
They added that he had ‘recently changed his image by sporting a pair of glasses’, but ‘fortunately this was not quite cunning enough to outsmart the team’.
Web users took to social media to mock Springthorpe’s attempt, with Tom Armstrong writing: ‘Pleased with the custodial sentence. Doubt it will make much difference though. Unfortunately it’s in one ear, out the other with people like him. ‘
Angela May said: ‘On reflection, David realised the Mickey Mouse Ear muffs may have been less conspicuous than he first thought and was regretting his choice of the Michael Caine-style glasses.’
Tim Bottomley added: ‘Yes mate, those glasses completely disguise the fact you’ve got massive ears and a neck tattoo. PMSL He looks exactly the same.’
Springthorpe, from Alfreton, was previously in court back in January after stealing £20 worth of steak from a Co-Op store when he was fined £80 and ordered to pay £20 compensation and £85 costs.
Got a story for Metro.co.uk?
Get in touch with our news team by emailing us at<EMAIL_ADDRESS>For more stories like this, check our news page.


An obtuse angle is an angle greater than 90 degrees, but less than 180 degrees.
An obtuse angled triangle is a triangle which has an obtuse angle.


|
CS108 Xamarin Library
1.0.14
|
Imager capabilities structure More...
Public Attributes | |
| SIZE | fullImgSize |
| Size of image captured by imager before cropping and subsampling. More... | |
| UInt32 | dwImgrBpp |
| Bits per pixel of image captured by imager. More... | |
| DecoderType | decoderType |
| Level of symbology support in the imager's decoder. More... | |
| ImagerType | imagerType |
| Decoded Out Serial, Decoded Out USB, Non-Decoded Out. More... | |
Protected Attributes | |
| UInt32 | dwStructSize = 24 |
| Structure size More... | |
Imager capabilities structure
| DecoderType CSLibrary.Structures.ImagerCapabilitiesParms.decoderType |
Level of symbology support in the imager's decoder.
| UInt32 CSLibrary.Structures.ImagerCapabilitiesParms.dwImgrBpp |
Bits per pixel of image captured by imager.
|
protected |
Structure size
| SIZE CSLibrary.Structures.ImagerCapabilitiesParms.fullImgSize |
Size of image captured by imager before cropping and subsampling.
| ImagerType CSLibrary.Structures.ImagerCapabilitiesParms.imagerType |
Decoded Out Serial, Decoded Out USB, Non-Decoded Out.


Does anyone have a battle tested build that has the following specifications:
1. At least 21 levels of Arcane Archer class 2. Can cast both Epic Mage Armor and Epic Warding
This is for a server that has several restrictions about who can use certain items.
Bard3/PM16/AA21? _________________ Got Hommlet? World of Greyhawk Action Server (with 1/2 price ales on Mondays!)
Ariel, Ookla, RIDE!
Darn,
Forgot to give some information..
Thanks GD
On this particular server... Palemasters are limited to 10th level maximum
Can't do it then. EMA and EW require an epic casting class. If you have 21 AA levels, you only have 19 levels left for your caster - not enough to get epic spells.  The ship is... drafty and damp; I complain but... nobody listens.


Numbers
Home
About Us
Numbers
Contact
Our Stores
City
Chicago
New York
Los Angeles
Orders
150
250
135
Profit
$ 10,000
$ 12,000
$ 1,500
Copyright © 2021
Back to Top


Need Help?
If you need help getting started, check out our FAQs and other online
support.
We can also be reach via Email at<EMAIL_ADDRESS>We're here to help!
Stay Connected
We'd love to hear from you! You can follow us on Twitter, post on
our Facebook wall and comment on our
blog. The blog is a great way to learn about new features and
upcoming DataWinners events.
Have fun,
Your DataWinners Team
www.datawinners.com |
Blog |
Twitter


Current Mode: {{ printID }}
-
Tracks all active map layers and tries to fit them in print page in Portrait or Landscape page dimensions
-
Print currently visual part of the map with Landscape page dimensions
-
Print currently visual part of the map with Portrait page dimensions
-
Allows you to select a rectangle for printing.


Scientists Waging War Against Malaria Stumble into Bioethics Debate 21 Nov 2019, 02:15 The African continent accounts for a whopping 90-percent of the world’s malaria cases. Scientists in Burkina Faso recently deployed a new weapon in the war on malaria. As VOA’s Arash Arabasadi reports, their battle faces bioethical blowback.


Bluemix based Cloudant App
Database File List :
File Upload:
Select a file to upload:
Delete File:
Enter file name:
Enter file version:
Download File:
Enter file name:
Enter file version:


Project JXTA went "live" a little over 6 months ago and it's been an exciting time. As we come to the end of 2001, I wanted to highlight the progress we have made as a community, and talk about the future as we look forward to the New Year.
Although we started Project JXTA as a research project within Sun, it has evolved to a full-fledged open source project with an active developer community fueling its success. For that the Sun JXTA team thanks you.
Now is the right time for Project JXTA. The explosion in compute power and connectivity has created an environment ripe for innovation, and Project JXTA is all about enabling innovation. We believe that Project JXTA is the open network platform that will enable P2P services and applications to interoperate on any device across many networks. And because JXTA is a complete set of P2P protocols, language agnostic, and fully open, we believe that it will succeed. So what have we all accomplished thus far? Not only has the technology advanced, but there are over 8000 community members, more than 50 projects and well over 350,000 downloads of the documentation, source code, and binaries. Numerous independent developers are writing services and applications, others are writing technical articles, several books are underway, and JXTA technology is referenced across the web. In short: Compelling technology, widespread adoption and rapid innovation.
As we move into 2002, Sun will continue to sponsor and actively participate in the jxta.org community. We will continue to encourage widespread adoption of the technology, and will be highlighting large customer deployments as they begin integrating JXTA technology into their business operations and next generation products.
As Bill Joy likes to say "the smartest people don't always work for you", and "innovation happens elsewhere" - jxta.org is a true testament to that vision. Thanks again for your hard work and commitment. We look forward to even greater success with JXTA in 2002.
Mike Clary
VP, Project JXTA
Sun Microsystems, Inc.


Class: Sprout::Specification
- Inherits:
-
Object
- Object
- Sprout::Specification
- Defined in:
- lib/sprout/specification.rb
Overview
Sprouts provides us with the ability to distribute source files, precompiled libraries, and remote executables. It does all of this by (ab)using RubyGems.
RubyGems gives us the ability to version-manage, and distribute arbitrary text and binary payloads.
In order to support Flash development, we have one major problem that RubyGems does not solve for us. This is the fact that many elements of our executable chain are not open-source, and we do not have the rights to directly distribute them.
This restriction means that many of our tools and dependencies cannot be packaged and distributed directly within a RubyGem (or from any server other than Adobe’s as a matter of fact).
In order to overcome this restriction, we have introduced a Sprout::Specification. This is a regular Ruby file with regular Ruby code in it. The main idea behind this file, is that it needs to be given a name and available in your load path.
Whenever a rake build task (Sprout::Executable) or library task, (Sprout::Library) is encountered, it will call Sprout::Executable.load or Sprout::Library.load (respectively).
These methods will attempt to require the provided specification and - if it’s in your load path - the specification will be loaded, and any relevant file targets will be returned.
There are many ways to get Ruby code into your load path. One of the easiest to package it up in a RubyGem and configure the require_paths parameter of your Gem::Specification.
docs.rubygems.org/read/chapter/20#require_paths
To learn more about packaging RubyGems:
docs.rubygems.org/read/chapter/20#page85 rubygems.rubyforge.org/rdoc/Gem/Specification.html
To learn more about published RubyGems:
To package a SWC library into a Sprout RubyGem, you would create a file (usually) named [project_name.spec] in the root of the project.
This is your Gem::Specification.
You would also create a file named [projet_name.rb] and put that into the root of the project or some other folder that you have added to the Gem::Specification.require_paths parameter.
Example: Include a file directly in the RubyGem
In the case of AsUnit, this file would be named asunit4.rb and it’s contents are as follows:
:include:../../test/fixtures/specification/asunit4.rb
Example: Refer to files that are not in the RubyGem
For projects like the Flex SDK, we can’t distribute many of the required files, so we can refer to these files in our Sprout::Specification as remote_file_targets.
:include:../../test/fixtures/specification/flex4sdk.rb
Example: Create custom downloads for each supported platform
For projects like the Flash Player itself, we need to refer to different downloadable content for each supported platform.
:include:../../test/fixtures/specification/flashplayer.rb
Packaging and Sharing
Public RubyGems are hosted at rubygems.org.
Instance Attribute Summary (collapse)
-
- (Object) file_targets
readonly
Returns the value of attribute file_targets.
-
- (Object) load_path
readonly
Returns the value of attribute load_path.
-
- (Object) name
Returns the value of attribute name.
-
- (Object) version
Returns the value of attribute version.
Instance Method Summary (collapse)
-
- (Object) add_file_target(&block)
Add a file to the RubyGem itself.
-
- (Object) add_remote_file_target(&block)
Add a remote file target to this RubyGem so that when it is loaded, Sprouts will go fetch this file from the network.
-
- (Specification) initialize {|_self| ... }
constructor
Create a new Sprout::Specification.
Constructor Details
- (Specification) initialize {|_self| ... }
Create a new Sprout::Specification.
This method will yield the new Sprout::Specification to the provided block, and delegate most configuration parameters to a Gem::Specification.
To learn more about what parameters are available and/or required, please check out RubyGems documentation for their Gem::Specification.
99 100 101 102 103 104 |
# File 'lib/sprout/specification.rb', line 99 def initialize filename = Sprout.file_from_caller caller.first @load_path = File.dirname filename @name = File.basename(filename).gsub('.rb', '') yield self if block_given? end |
Instance Attribute Details
- (Object) file_targets (readonly)
Returns the value of attribute file_targets
87 88 89 |
# File 'lib/sprout/specification.rb', line 87 def file_targets @file_targets end |
- (Object) load_path (readonly)
Returns the value of attribute load_path
88 89 90 |
# File 'lib/sprout/specification.rb', line 88 def load_path @load_path end |
- (Object) name
Returns the value of attribute name
84 85 86 |
# File 'lib/sprout/specification.rb', line 84 def name @name end |
- (Object) version
Returns the value of attribute version
85 86 87 |
# File 'lib/sprout/specification.rb', line 85 def version @version end |
Instance Method Details
- (Object) add_file_target(&block)
Add a file to the RubyGem itself. This is a great way to package smallish libraries in either source or already-packaged form. For example, one might add a SWC to a RubyGem library.
Each time this method is called, a new Sprout::FileTarget instance will be yielded to the provided block, and added to a collection for packaging.
Sprout::Specification.new do |s|
...
s.add_file_target do |t|
t.platform = :universal
t.add_executable :asdoc, 'bin/asdoc'
end
end
156 157 158 159 |
# File 'lib/sprout/specification.rb', line 156 def add_file_target &block target = FileTarget.new configure_target target, &block end |
- (Object) add_remote_file_target(&block)
Add a remote file target to this RubyGem so that when it is loaded, Sprouts will go fetch this file from the network.
Each time this method is called, a new Sprout::RemoteFiletarget instance will be yielded to the provided block and resolved after the block completes.
After this block is evaluated, Sprouts will first check the collection of env_names to see if the expected paths are available. If a valid env_name is found, Sprouts will return the path to the requested executable from the environment variable.
If no env_names are set, or the requested executable is not found within any that are identified, Sprouts will check to see if the archive has already been unpacked into the expected location:
#{SPROUT_HOME}/cache/#{SPROUT_VERSION}/flex4sdk/#{md5}/4.0.pre
If the archive been unpacked, Sprouts will return the path to the requested executable.
If the archive has not been unpacked, Sprouts will check to see if the archive has been downloaded to:
#{SPROUT_HOME}/cache/#{SPROUT_VERSION}/flex4sdk/#{md5}.zip
If the archive has been downloaded, it will be unpacked and the path to the requested executable will be returned.
If the archive has not been downloaded, it will be downloaded, unpacked and the path to the requested executable will be returned.
137 138 139 140 |
# File 'lib/sprout/specification.rb', line 137 def add_remote_file_target &block target = RemoteFileTarget.new configure_target target, &block end |


Galactic Age Calculator
On Earth, one year is the time it takes for our planet to make one full revolution around the Sun. In Earth's case, this takes 365 days. But there are seven other planets in our solar system and they each take different lengths of time to make a full revolution around the Sun. The time it takes for a planet to make one revolution around the Sun is called a Solar Year. Mercury, for example, has a Solar Year of only 88 earth days. On the opposide end of the spectrum, Neptune has a Solar Year equivalent to about 165 Earth years! That's crazy. If you are curious, you can enter your age and life expectancy down below.  Upon pressing the 'Submit' button, you will see how old you are and your life expectancy for every planet in our solar system (and pluto just for fun).


+(91)7838056411
<EMAIL_ADDRESS>Important: You will be redirected to PayPal's website to securely complete your payment.
Plot No.-123,Shreshtha Vihar, Delhi-110092
+(91)7838056411+(010)123 4565
<EMAIL_ADDRESS><EMAIL_ADDRESS>Join the Conversation. Sign up to receive Emails for Special Offers, New Products, and Blockbuster Deals.


Inc 5000 2007-2017 dataset includes data of fastest growing private companies in past 10 years. More information about this project please visit Github.
Select an industry:
Select an index:


Cuberite can be configured by editing various configuration files. Below is a list of all configuration files:
settings.ini
The main configuration file, which contains server-wide configuration variables.
webadmin.ini
Allows you to tweak the web admin interface, which is available at http://localhost:8080 or http://<Server IP address>:8080 by default.
<World name>/world.ini
This file configures world-specific aspects. This is where you choose your game mode. See {{3.3 - GameMode}}.
Note that each world has its own world.ini file, each stored in <World name>/world.ini.
monsters.ini
Allows you to tweak monster behaviour.
motd.txt
The Message of the Day, which is shown to players upon joining your server.
crafting.txt, brewing.txt, furnace.txt
These three files allow you to tweak crafting, brewing, and furnace recipes.
plugins/...
Many plugins have their own configuration files. For instance, the WorldEdit config is plugins/WorldEdit/config.cfg
items.ini
Edit item IDs. You probably shouldn't edit this file unless you know what you're doing.
Permissions
Permissions allow different players to access different commands and features. Each plugin has its own permissions. Setting up player permissions is most easily done via the web admin. You can also use the rank <playername> command from the server console. To see the command and permissions list for the default commands, which are provided by the Core plugin, see the Core Plugin readme.


Our rotating selection of signature brain fitness programs encourage a little friendly competition, active participation, and mental calisthenics to keep the mind sharp.
Keep your mind sharp, as well as your card-shark skills as part of the bridge or poker club. Or if you are more of the creative type, a poetry club might be a new challenge. And for those world travelers, it is never too late to learn a new language- bueno!


HTML is a markup language, it can be seen as the building blocks of a website
CSS stands for Cascading Style Sheet, it is essentially the design and the appeal of a website (everything that makes it pretty)
In a sense, HTML is the foundation and the structures of a building. Whereas, css is the paint of the walls and the furniture in the building (everything decorative).
The DOM (Document Object Model) is a programming interface for web documents. It represents the page so that programs are able to manipulate document structure, styles, and content.
The DOM is connected like a family tree, representing everything from .document to head, body, title and all '<>' contents on the page.
When a browser receives an HTML document, all it sees is a long list of characters.
It then converts this string of characters into something it can use to render the site into div tags, into img tags, into parents and children, so on and so forth.
The resulting model is called the DOM tree, and is basically a long list of all the tags on the page and their relation to each other.
Both arrays and objects are considered “special” in JavaScript. They are both mutable. However, Objects represent a collection of data (rather than just a single value). Whereas, Arrays are multiple values in a single variable.
Functions are blocks of code designed to perform any particular task. One of the main benefits of a function is that it is able to compute laborious tasks, like calculating a lot of maths and numbers. A function can also be used to test codes, which becomes important when debugging codes.
Control flow is the order in which the program's code is executed. Code is run in order from the first line to the last, however there are times where the computer runs across the structures (conditionals and loops) that changes the control flow.
Loops are used to repeat a block of code until the citeria is met. An example of loop: When you purchase something online with your credit card, the function will loop until it approves the validity of your card.


Wayanad is a rural district in Kerala state, southwest India. In the east, the Wayanad Wildlife Sanctuary is a lush, forested region with areas of high altitude, home to animals including Asiatic elephants, tigers, leopards and egrets. In the Ambukuthi Hills to the south, Edakkal Caves contain ancient petroglyphs, some dating back to the Neolithic age.
Edakkal caves are well known for its pictorial depictions (cave art), which are thought to be of 6000 B C. To achieve the hollows, one needs to trek through the Ambukutty Mala. It will take around 45 minutes to climb the hill and you will never get baffled in your outing to these historical caves & it is one of the famous places to see in Wayanad. Inside the cave, you can see two chambers. The lower chamber is 18 ft long, 12 ft wide and 10 ft high and the upper chamber is 96 ft long, 22 ft wide and 18 ft high. You can see animal figures and objects used by humans, on the walls of the caves. These carvings give incredible confirmation for a very enlightened society who lived in the pre-noteworthy age. Edakkal caves have drawn awesome consideration of archaeologists and students of history around the world.
Looking for a weekend getaway this weekend, then head out to Wayanad and visit the famous Chembra Peak. Eight kilometres south of Kalpetta, close to the town of Meppady, lays the most elevated top in Wayanad. Chembra crest borders Nilgiri slopes in Tamil Nadu and Vallarimala in Kozhikode and it is one of the beautiful places to see in Wayanad. This place is a perfect goal for trekking exercises. Climb up the rough landscapes of the Chembra Peak found 2,100 meters above ocean level on the southern piece of Wayanad. Chembra is the tallest peak in Wayanad and is a perfect zone for trekking. There is a heart moulded lake while in transit to the highest point of the pinnacle, which is accepted to have never become scarce, is a noteworthy vacation spot here. With authorization from the Forest Department, one-day treks and two-day natural life treks are conceivable.
One of the major tourist places to visit in Wayanad is Banasura Sagar Dam that impounds the famous Karamanathodu tributary of the east flowing river in Kerala that is Kabini River. The dam is encircled amidst a beautiful nature with a lot of options to do trekking and similar adventure activities. Hundreds of tourists arrive at the dam to enjoy its beauty and take photographs. It is a part of the Indian Banasura Sagar Project consisting of a dam and a canal project.


I want to make a small weather & reminder to throw the trash for my home entrance. Depending on the day in Japan you're supposed to throw one or another type of garbage and I //always// miss the "non-burnable" one, because it's the "second and fourth Thursday of the month"... So this toy will with its [[eink display|eInk screen]] show me the weather, a few other interresting info and if it's the day for what type of trash.
Presentation
Principle
Points of interrest
Implementation
Bill of materials
* Raspi Zero W but any clone will do. You will want internet.
* in my case a [[https://www.waveshare.com/wiki/2.13inch_e-Paper_HAT|2.13 inches eInk display]] from eBay (250x128 pixels)
* Perfboard, buttons, led, etc...
Installation
For the eInk:
All is here: [[https://www.waveshare.com/wiki/2.13inch_e-Paper_HAT]]. Now I think of it I think the bcm2835 extra stuff is not needed if you use Python and GPIO... give a try and tell me.
sudo apt-get install python-dev
sudo pip install wiringpi spidev
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.52.tar.gz
tar zxvf bcm2835-1.xx.tar.gz
cd bcm2835-1.xx
./configure
make
sudo make check
sudo make install
sudo apt-get install python-smbus python-serial python-rpi.gpio
#updated to use Pillow instead of PIL
sudo python -m pip install pillow
For the weather:
Python [[https://pypi.org/project/weather-api/|Weather API]] based on Yahoo!:
sudo pip install weather-api
The above stopped working Jan 2019, so I moved to [[http://www.WeatherBit.io|WeatherBit.io]].
You register, they have a free plan and comprehensive and simple Json API. I added a class to parse it and extract what I need. You'll need to put your private key in the //config.py// file though.
The above stopped working Jan 2020, when WeatherBit.io removed the hourly forecast from the free plan. So you know the story, I wrote another provider that uses [[https://openweathermap.org/|OpenWeatherMap]] and we're back in business. Really happy I took time to rewrite things last time, it went like a breeze.
Source code
On the git : [[https://github.com/AlanFromJapan/alanarduinotools/tree/master/Python/EinkWeatherStation]]
Pretty simple, you have 2 buttons [next and validate], the code revolves around 3 main panels that you can go through by clicking [next]:
* Main panel: shows the weather of now and tells you what it will look like in a few hours. It also shows today's date and the latest update time
* Shutdown panel: if you click [validate] the raspi will shutdown and show you a "the end" screen
* Others panel: misc stuffs, for now only shows the current IP
Assembly
* Soldered the eInk screen to some perfboard I hadso I don't have to stack it on the Raspi Zero W and I can access the other pins (I'll need some buttons and LED)
* Add buttons and LED!
//Red is for the eInk display, Blue is for the buttons, Pin 29 (GPIO05) is for the "we're the non-burnable trash day" LED //
|
//Pinout of the eInk screen from the link above//
|
** Pinout (eInk ⇒ Raspi pins)**:
* 3.3v ⇒ pin 01
* RST ⇒ pin 11
* BUSY ⇒ pin 18
* DIN ⇒ pin 19
* DC ⇒ pin 22
* CLK ⇒ pin 23
* CS ⇒ pin 24
* GND ⇒ pin 39
** Pinout (buttons ⇒ Raspi pins)**:
* button 1 ⇒ pin 32
* button 2 ⇒ pin 36
* button GND ⇒ pin 34
** Pinout (LED ⇒ Raspi pins)**:
* LED+ ⇒ pin 29
* LED- ⇒ pin 30
Pictures
Links
Helpful sources
* The doc of the piece [[https://www.waveshare.com/wiki/2.13inch_e-Paper_HAT]]
* The Yahoo weather [[https://developer.yahoo.com/weather/documentation.html?guccounter=1|API details]]
Inspiration
* [[https://github.com/segfaultlabs/waveshare-2.13-epaper-hat|A similar project on GitHub]] for the PngConverter maybe and insipration
* [[https://hackaday.com/2014/01/08/from-epaper-badge-to-weather-station/]]
* [[https://www.hackster.io/4DMakers/raspberry-pi-internet-weather-station-f960c4|For the design]] and the [[http://www.instructables.com/id/Raspberry-Pi-Internet-Weather-Station/|original project]] that is very good!


CSc 569.
Data Visualization Class FAll 2014
About This Porject
In this project-based course, students are grouped into teams to work on
projects of practical importance in D3, Python, computer
graphics, and computer vision.
In this project we are doing a project related to brain cells short memort test.
We contacted Dr.Timmothy Ellmore of Psychology Department CCNY, NYC and he supported us and helped us by guiding in this project.
Domain Expert
Professor Timmothy Ellmore
Office Hours: Wednesday, 11:30am-12:30pm, Room NAC 8/202I
<EMAIL_ADDRESS>Professor Timmothy's website
Our Instructor
Professor Michael Grossberg
Office : North Academic Center 7 / 311
<EMAIL_ADDRESS>grossberg college website
Our Group members
Basavaraja Patri
Student City College of New York
<EMAIL_ADDRESS>Asif Waleed
Student City College of New York
<EMAIL_ADDRESS>Mateusz Zmijewski
Student City College of New York
<EMAIL_ADDRESS>Brain Visualization Group, DEcember 22, 2014


Equivalents in Angular (> 2.0)
Observable pattern
Rxjs
Warning: possible memory leaks!
Converting promise into Observable
Equivalent of $q.all
Homework: zip synchronous and asynchronous data together
Bibliography:
External tutorial
Decision tree
Marbles
Visualizer (from code)
Visualizer (from diagram)


--- layout: post title: 'The Daily WTF: Curious Perversions In Information Technology (also via James)' date: 2004-10-16 00:00:00 category: links ---


To begin, please enter the IP of your server or the fully-qualified name.
Optionally, give this server a label. This will appear in the server navigation.
Where would you like server to go?
Please choose the services you'd like Panopta to monitor. Any service you select will be given a default check frequency of 1 minute.
We determined Chicago to be the closest location to monitor If you would like to change this, or you think this is incorrect, please select a different monitoring location.
Select the notification schedule to be used for outages.
The Panopta Agent allows you to monitor local resources (disk usage, cpu usage, etc). If you would like to set that up now, please download and follow the install instructions.
You will be given a server key after you install the Agent on . If you know your server key now, please enter it below.


Prediction Aim
In
predict who will develop
during the period from
days from cohort start date to
days.
Prediction Options
The analysis will use the following options:
We impose a requirement that patients must have at least days of continuous observation prior to cohort entry.
We consider
per subject in the prediction model.
We
people with outcomes who are not observed for the whole at risk period.
Patients with days prior to target cohort entry were excluded from consideration.
This data will split by using to train the model and to test. This is done by finding a reference date where of subjects had an index after the date. Subjects with an index prior to this reference date are placed into the training set.This data will split by using of the subjects to train the model and to test.
The hyper-parameter training will be conducted using a
-fold cross validation.
Covariates
The types of covariates used in the prediction model will use:
- Demographics
- Gender
- Age group (5-year bands)
- Index year
- Index month
- Race
- Ethnicity
- Conditions
- In prior 30d
- In prior 365d
- In prior 180d within inpatient setting
- All time prior
- Overlapping index date
- Drugs
- In prior 30d
- In prior 365d
- All time prior
- Overlapping index date
- Drug aggregation
- Clinical Drug
- Ingredient
- ATC Class
- Procedures
- In prior 30d
- In prior 365d
- Measurement
- Existence in prior 30d
- Existence in prior 365d
- Count in prior 365d
- Has latest prior numeric value below normal range
- Has latest prior numeric value above normal range
- Risk scores
- Charlson
- CHADS2
- CHADS2VASc
- DCSI
- Concept counts (count of distinct conditions/procedures/visits in history)
- Interaction terms
- By index year
- By index month
Specific covariates to be included in the propensity score model are labelled as detailed in Appendix 2.
Specific covariates to be excluded from the propensity score model are labelled as detailed in Appendix 2.
All covariates that occur in fewer than persons in the target cohort will be excluded prior to model fitting.
Appendix 1: Cohort Definitions
The target cohort is defined as:
The outcome is defined as:
Appendix 2: Code List Definitions


I am the sort of person who is always building something.
In my time at Northwestern, that meant building student organizations. Whatever my role, that meant working with my fellow students to organize events of every type, from slam poetry workshops to kite flying days.
When I graduated, I spent a year tutoring high school students in math and volunteering with organizations working to build a more inclusive and democratic society, like Invisible 2 Invincible and Reclaim Chicago.
I came to realize, though, that while organizing is powerful, there's a shortage of people with technical skills in much of this community-building work. So I decided to retool, and headed to Dev Bootcamp to learn web development skills.
If you are looking for a web developer for a public interest project, please contact me by email (sunjaydk@gmail.com).


Elastic URL
Cluster Name
{{c.cluster.name}}
Index
Max log entries
Range
By Date
From
To
By Tail
Fields
Message
Loggers
Hosts
Thread
Type
test
cluster
kms
connectivity
Log Level
DEBUG
INFO
WARN
ERROR
Get Data
Load More
Add more from row selected
Pause Tail
Clear Data
Copy to Clipboard
Share this search
Go to Log Manager
{{errorMsg}}


mackeyglass_rk4
This function computes the numerical solution of the Mackey-Glass delayed differential equation using the 4-th order Runge-Kutta method
Here is the code for mackeyglass_eq, the Mackey-Glass delayed differential equation
Matlab code:
function x_t_plus_deltat = mackeyglass_rk4(x_t, x_t_minus_tau, deltat, a, b) k1 = deltat*mackeyglass_eq(x_t, x_t_minus_tau, a, b); k2 = deltat*mackeyglass_eq(x_t+0.5*k1, x_t_minus_tau, a, b); k3 = deltat*mackeyglass_eq(x_t+0.5*k2, x_t_minus_tau, a, b); k4 = deltat*mackeyglass_eq(x_t+k3, x_t_minus_tau, a, b); x_t_plus_deltat = (x_t + k1/6 + k2/3 + k3/3 + k4/6); end