public final class ContentNegotiator
extends java.lang.Object
If the field is not present or could not be processed, the default values are used. This complies to the protocol since servers are free to ignore client preferences regarding formats.
| Constructor and Description |
|---|
ContentNegotiator(java.lang.String accept,
FormattableObject.Type type,
JsonLdProfileRegistry profileRegistry,
FormatRegistry formatRegistry)
Constructs a new ContentNegotiater that processes the given accept header.
|
| Modifier and Type | Method and Description |
|---|---|
java.lang.String |
getAccept()
Returns the accept header as provided by the client
|
Formatter |
getFormatter()
Returns the client's most wanted Formatter
This either is the one with the highest Q-Rating, or if none are provided, the first in the list that can be used.
|
java.util.List<Formatter> |
getFormatters()
Return a list of all recognized formatters the client requested ordered by client preference
|
double |
getQValue(Formatter formatter)
The Q value weight provided for the given formatter. 0.5 if none existed.
|
boolean |
isClientSelected()
Returns whether the given accept header could be processed correctly
|
java.lang.String |
toString() |
public ContentNegotiator(java.lang.String accept, FormattableObject.Type type, JsonLdProfileRegistry profileRegistry, FormatRegistry formatRegistry)
accept
- The accept header. If null, default values are usedtype
- The Type of object this accept headers belongs to (Container, Page, Annotation)profileRegistry
- The JSON-LD profile registry to useformatRegistry
- The format registrypublic boolean isClientSelected()
public java.lang.String getAccept()
public java.util.List<Formatter> getFormatters()
public Formatter getFormatter()
This either is the one with the highest Q-Rating, or if none are provided, the first in the list that can be used.
If none of the client requests can be fulfilled, it is an instance of the DEFAULT_FORMATTER_CLASS
public double getQValue(Formatter formatter)
formatter
- The formatterpublic java.lang.String toString()
toString
in class java.lang.Object


rescuecore2.standard.view
Classes
AnimatedHumanLayer
AnimatedWorldModelViewer
AreaLayer
AreaNeighboursLayer
BuildingIconLayer
BuildingLayer
CommandLayer
HumanLayer
PositionHistoryLayer
RoadBlockageLayer
RoadLayer
StandardEntityViewLayer
StandardViewLayer
StandardWorldModelViewer


Home
About
Schedule
Projects
Sponsors
Team
Contact Us
Home
About
Team
Schedule
Projects
Sponsors
Tony's Lab
ICC Projects
Coming Soon...


Call:
1800-547-2145 |
Email:
[email protected]
USD
EUR
AUD
GBP
EN
FR
IT
DE
Login
Remember me
Sign in
Original Brands
100% Guaranteed
Free Shipping
for $20 or more
30-Day Returns
Completely Free
Home
Lets Start
Home - Corporate
Corporate - Layout 1
Corporate - Layout 2
Corporate - Layout 3
Corporate - Layout 4
Home - Portfolio
Portfolio - Layout 1
Portfolio - Layout 2
Portfolio - Masonry
Portfolio - AJAX
Home - Blog
Blog - Layout 1
Blog - Layout 2
Blog - Layout 3
Home - Shop
Shop - Layout 1
Shop - Layout 2
Home - Magazine
Magazine - Layout 1
Magazine - Layout 2
Magazine - Layout 3
Home - Landing Page
Landing Page - Layout 1
Landing Page - Layout 2
Landing Page - Layout 3
Landing Page - Layout 4
Landing Page - Layout 5
Home - Full Screen
Full Screen - Image
Full Screen - Slider
Full Screen - Video
Home - One Page
One Page - Default
One Page - Submenu
One Page - Dots Style
Home - Wedding
Home - Restaurant
Home - Events
Home - Parallax
Home - App Showcase
Men
Out of the Box
Footwear
Casual Shoes
Formal Shoes
Sports shoes
Flip Flops
Slippers
Sports Sandals
Party Shoes
Clothing
Casual Shirts
T-Shirts
Collared Tees
Pants / Trousers
Ethnic Wear
Jeans
Sweamwear
Accessories
Bags & Backpacks
Watches
Sunglasses
Wallets
Caps & Hats
Jewellery
Belts, Ties
New Arrivals
T-Shirts
Formal Shoes
Accessories
Watches
Perfumes
Belts, Ties
Formal Shirts
Women
Out of the Box
Footwear
Casual Shoes
Formal Shoes
Sports shoes
Flip Flops
Slippers
Sports Sandals
Party Shoes
Clothing
Casual Shirts
T-Shirts
Collared Tees
Pants / Trousers
Ethnic Wear
Jeans
Sweamwear
Accessories
Awesome Works
Sale
Awesome Works
Blog
Latest News
Videos
Latest News
Contact
Get In Touch
5
Shopping Cart
Blue Round-Neck Tshirt
$19.99
x 2
Light Blue Denim Dress
$24.99
x 3
$114.95
View Cart
Get
30%
off on orders of $29 or more. Use Coupon:
SHOP30
Sale available on selected Designer Brands that include Apparels, Footwear, Fashion Accessories & Watches.
Start Shopping
Men's Footwear
Flat 50% Off*
Shop Now
Latest Product Arrivals
New Dress Designs Available
Check New Arrivals
The Style Blog
Fashion Tips from Experts
Browse Videos
Recently Arrived
Blue Round-Neck Tshirt
$29.99
Checked Short Dress
$23.99
Light Blue Denim Dress
$19.99
Slim Fit Chinos
$24.99
Popular Products
Round-Neck Tshirt
$15
Green Trousers
$19
Silver Chrome Watch
$34.99
Black Polo Tshirt
$17.99
Recommended for You
Pink Printed Dress
$21
Blue Round-Neck Tshirt
$19.99
Men Aviator Sunglasses
$14.99
Unisex Sunglasses
$17.99


TABLE OF INTERACTIONS WITH
MEDICATIONS THAT LOWER THE EPILEPTIC THRESHOLD
The combination of proconvulsant medications, or those that lower the epileptic threshold, must be carefully weighed, because of the severity of the risk they pose. These medications are represented especially by most of the antidepressants (tricyclic, selective serotonin reuptake inhibitors), the neuroleptics (phenothiazides and butyrophenones), mefloquin, chloroquin, the fluoroquinolones, bupropion, tramadol)
From the French ANSM drug interactions document of September 2016, p. 148
MEDICATIONS THAT LOWER THE EPILEPTIC THRESHOLD CLASS CODE: N05AA-002 |
OTHER MEDICATIONS THAT LOWER THE EPILEPTIC THRESHOLD CLASS CODE: N05AA-002 |
Accrued risk of convulsions |
Take into account |


Student Registration page
Enter user name:
Enter user Account Pwd:
Gender:
M
F
Languages:
English
Tel
Hin
Birth Country:
India
China
USa
Japan
About urself


(Version: 0.4 - beta 2)
WebQuery is an Open Source component (view) you can include in your own Visual DataFlex® 17.1 (or higher) WebApp programs to provide the users with an ad hoc reporting capability.
WebQuery is a reimplemetation of Sture Andersen's VDFQuery Windows utility as a VDF 17.1 WebApp Framework (WAF) component. As well as taking its inspiration and interface design from Sture's VDFQuery, it also relies very heavily on a number of his other offerings: StructFunctions, TableQuery, XmlBuilder and his experimental ExpressionParser.
In this program you must log in to use the WebQuery interface (File -> Log In)... but who to log in as? Well, thanks to weak management, sloppy programming and inexcusably poor product testing, a pair of reports have been left on the Reports menu accessible to un-logged-in users: the "Users List" will give you the required information. In addition, some pre-defined reports require more elevated rights to appear on the menu - again, the "Users List" will help you out here.
WebQuery allows you to create reports on multiple tables based on the relationships defined in your database - once a "Main Table" has been selected all of the tables that relates to, all the way up the relationship tree, will be available to you. Note: you must select a Main Table as the first step in creating a report (or load an already defined query).
You can chose columns (except Overlap or Binary type columns) from any of the tables to output and also to use as the basis for record selection. You can also use calculated fields (expressions) and a single selection expression. You can chose to total ("Sum") on numeric fields and can split rows in your reports over multiple lines using the "CR" feature, which will start a new line with that field.
Selections can be made using a number of selection operators, including string inclusion or exclusion, ranges (included or excluded) or lists of values. You can order your report by any of the main table's defined indices, or select the "Ad hoc index" option to define your own ordering, which can then be based on fields from related-to tables as well as the main table. (Warning: this may result in slow running reports.)
You can define breakpoints in the report which will cause the printing of sub-headings at the beginning of each section and sub-totals at the end of them (the latter assuming you are totalling on at least one field).
You can specify multi-line fixed text to appear both before and after your report.
You can select the font typeface and size, specify the colours of the text, background and alternate-row highlight (if used), choose to include the selection critera and record count in the report, or to print only totals. Finally you can select the output destination and format.
Reports can be saved as "Public Queries" or as private to the logged in user.
If the ability to see all of the data in the database seems too great a capability to grant to your users, you can programmatically exclude entire tables, or just certain columns, from being visible within the WebQuery interface.
Alternatively you can use WebQuery without making it available to your users by omitting it from the menus (or perhaps by setting the required rights higher than you grant them), but still use it to provide them with reports which you build with it. There are several examples of such reports in the "Reports" menu above (more once you log in).
The data included in this sample workspace is that from the VDF 17.1 WebOrder sample (with a few additions to the WebAppUser table and some of the customer balances adjusted to make for more interesting things to report on).
WebQuery was developed entirely using the VDF Studio and required only two minor additions to the standard Data Access Web Application Framework. It should work with all of the four Data Access supplied themes - Modern Sky, Windows Like, High Contrast and Web Creme - please report any instances where it fails to do so.
Enjoy!
Please report all bugs or feature requests to: Mike Peat at Unicorn InterGlobal.
WebQuery is a product of Unicorn InterGlobal Ltd. (tel: +44 (0)118 988 9709).


We’d love to have your help in making Medusa better and Python faster. Any and all contributions are welcome.
Python is one of the most widely used scripting languages and has immense deployment and brought with it the joy of flexibility and simpler prototyping.One place where it falls short is development of very large scale software implementations primarily because the implementation is not fast enough. | What Medusa intends to do is run the same python code you wrote a lot faster.
Medusa encourages everyone to join and implement new features, fix some bugs, review pull requests and suggest ideas, take part in general discussions etc.
Before you start contributing, you will have to follow the steps below to make sure that there are no hiccups when you are working.
Installing git on linux-like systems can be done using the native package management systems.
$ sudo apt-get install git
or.
$ yum install git
Windows users may download the installer from
http://python.org/download/
Then do not forget to add Python to the $PATH environment.
On Windows and Mac OS X, the easiest way to get git is to download GitHub’s software, which will install git, and also provide a nice GUI (this tutorial will be based on the command line interface). Note, you may need to go into the GitHub preferences and choose the “Install Command Line Tools” option to get git installed into the terminal. If you do decide to use the GitHub GUI, you should make sure that any “sync does rebase” option is disabled in the settings.
Clone medusa’s repository on your machine to browse and work on the code locally.
$ git clone https://github.com/rahul080327/medusa
$ cd medusa


Sixty Dome Mosque
The Sixty Dome Mosque, is a mosque in Bangladesh. It is part of the Mosque City of Bagerhat, a UNESCO World Heritage Site. It is the largest mosque in Bangladesh from the sultanate period. It was built during the Bengal Sultanate by Ulugh Khan Jahan, the governor of the Sundarbans. It has been described as "one of the most impressive Muslim monuments in the whole of the Indian subcontinent."
In the middle of the 15th century, a Muslim colony was founded in the mangrove forest of the Sundarbans, near the coast in the Bagerhat District by a saint-General, named Khan Jahan Ali. He preached in an affluent city during the reign of Sultan Nasiruddin Mahmud Shah, then known as 'Khalifalabad'. Khan Jahan adorned this city with more than a dozen mosques, the ruins of which are focused around the most imposing and largest multi-domed mosques in Bangladesh, known as the Shait-Gumbad Masjid (160'×108'). The construction of the mosque was started in 1442 and it was completed in 1459. The mosque was used for prayers, and also as a madrasha and assembly hall.
It is located in Bagerhat district in southern Bangladesh which is in Khulna Division. It is about 5 kilometres (3 mi) from the main town of Bagerhat. Bagerhat is nearly 320 km (200 mi) from Dhaka which is the capital of Bangladesh.
The mosque is locally known as the 'Shat Gombuj Masjid', which in Bangla means Sixty Domed Mosque. However, there are 77 domes over the main hall and exactly 60 stone pillars. It is possible that the mosque was originally referred to as the Sixty Pillared Mosque where Amud meaning column in Arabic/Persian, later got corrupted to Gombuj in Bangla, which means domes. The 'Sixty Dome' Mosque has walls of unusually thick, tapered brick in the Tughlaq style and a hut-shaped roofline that anticipates later styles. The length of the mosque is 49 m (160 ft) tall and 33 m (108 ft) wide. There are 77 low domes arranged in seven rows of eleven, and one dome on each corner, bringing the total to 81 domes. There are four towers. Two of four towers were used to call azaan. The interior is divided into many aisles and bays by slender columns, which culminate in numerous arches that support the roof. The mosque has 77 squat domes with 7 four-sided pitched Bengali domes in the middle row. The vast prayer hall, although provided with 11 arched doorways on east and 7 each on north and south for ventilation and light, presents a dark and somber appearance inside. It is divided into 7 longitudinal aisles and 11 deep bays by a forest of 60 slender stone columns, from which springs rows of endless arches, supporting the domes. 1.8 m (6 ft) thick, slightly tapering walls and hollow and round, almost detached corner towers, resembling the bastions of fortress, each capped by small rounded cupolas, recall the Tughlaq architecture of Delhi.The mosque represents wonderful archeological beauty which was the signature in the 15th century.
No Entry Fees.
Always open for visitors.


Experience
- October 2008-May 2009: Dentist for Greek National Army Service
- October 2009-November 2011: Private Dental Practice
- January 2012-April 2013: Freelance Dentist
- April 2013-September 2015: NHS Performer Dentist
- November 2015-March 2019: Hospital Dentist
Programming Languages
Python
- 3 years experience
R
- 2 years experience
SQL
- 1 year experience
HTML/CSS/JS
- 1 year experience
Personal Projects
- Thesis(R)
- GC-content (Python)
- ORF finder (Python)
- MyWebsite (HTML/CSS)


You cannot omit quotes around an attribute value if the value contains spaces.
If you move the mouse over the paragraph above, your browser will only display the first word from the title.


AI Audio Classifier
We trained a convolutional neural network to predict music genres from audio data. This project produced a model for predicting the top-n genres from user-specified audio files that similarly yielded an accuracy metric of some significant value above random classification. This site is the web deployment of that model to try it out and get results.
The model was built and trained using keras on the Free Music Archive (FMA) dataset, validated by a custom suite of tests, and deployed using Amazon Web Suite’s (AWS) suite of hosting solutions. Submitting an audio file on genreml.net will redirect you to a page that displays your audio file as a waveplot, spectrogram, mel spectrogram, and chromogram and also predicts the top n genres the file could be according to our model.


Big sports events today
by TIMESOFINDIA.COMNEW DELHI: Here are the big sports events lined up for Friday (November 15) that comprise action from the second day of the first India vs Bangladesh Test and Hong Kong Open badminton tournament.
(All timings in IST)
1:15 am (Football - European Championship Qualifiers)
England vs Montenegro (England won 7-0)
Serbia vs Luxembourg (Serbia won 3-2)
France vs Moldova (France won 2-1)
Portugal vs Lithuania (Portugal won 6-0)
Czech Republic vs Kosovo (Czech Republic won 2-1)
Albania vs Andorra (2-2)
Turkey vs Iceland (0-0)
1:30 am (Tennis - ATP Finals)
Novak Djokovic vs Roger Federer (Federer won 6-4, 6-3)
3:30 am (Cricket - 3rd T20I)
West Indies Women vs India Women (India won by seven wickets)
9:00 am (Cricket - Syed Mushtaq Ali Trophy)
Arunachal Pradesh vs Hyderabad, Round 6, Group C (Hyderabad won by 6 wickets)
Andhra Pradesh vs Goa, Round 6, Group A (Andhra won by 9 wickets)
Chhattisgarh vs Punjab, Round 6, Group C (Punjab won by 19 runs)
9:30 am (Cricket - 1st Test)
India vs Bangladesh, Day 2
9:30 am (Cricket - Syed Mushtaq Ali Trophy)
Kerala vs Rajasthan, Round 6, Group B (Rajasthan won by 7 wickets)
Manipur vs Uttar Pradesh, Round 6, Group B
Bengal vs Madhya Pradesh, Round 6, Group D (Bengal won by 6 wickets)
10:00 am (Cricket - Syed Mushtaq Ali Trophy)
Delhi vs Jharkhand, Round 6, Group E
Jammu and Kashmir vs Nagaland, Round 6, Group E (J&K won by 8 wickets)
Mizoram vs Haryana, Round 6, Group D (Haryana won by 7 wickets)
10:30 am (Cricket - Syed Mushtaq Ali Trophy)
Baroda vs Services, Round 6, Group A (Baroda won by 35 runs)
12:45 pm (Badminton - Hong Kong Open)
Kidambi Srikanth vs Chen Long (China) in men's singles quarterfinals (Kidambi Srikanth through to the semifinals as Chen Long retires after losing the first game 13-21)
1:00 pm (Cricket - Syed Mushtaq Ali Trophy)
Himachal Pradesh vs Maharashtra, Round 6, Group C
Railways vs Chandigarh, Round 6, Group C
Bihar vs Karnataka, Round 6, Group A
1:30 pm (Cricket - Syed Mushtaq Ali Trophy)
Tamil Nadu vs Tripura, Round 6, Group B
Assam vs Puducherry, Round 6, Group D
2:00 pm (Cricket - Syed Mushtaq Ali Trophy)
Saurashtra vs Sikkim, Round 6, Group E
Gujarat vs Odisha, Round 6, Group E
Meghalaya vs Mumbai, Round 6, Group D
7:30 pm approx (Tennis - ATP Finals)
Rafael Nadal vs Stefanos Tsitsipas
10:30 pm (Football - European Championship Qualifiers)
Norway vs Faroe Islands
Armenia vs Greece
Finland vs Liechtenstein


Sign-up and create your detailed business profile, then post recruitment ads absolutely for FREE!
Be matched with your preferred industry. Take interest on positions available and contact directly or employers will get in touch with you.
Earn and collect reward points for every employer that will unlock your profile, points that you can redeem for an equivalent cash value.


or
Create your pizza the way you like it!
All pizzas are made on our AWARD WINNING wood grilled crust and include fresh garlic, our Signature 3 Cheese Blend of parmesan, asiago & mozzarella cheeses, fresh tomato sauce & fresh Italian parsley
Small 8"(Kshs 500) / Medium 12"(Kshs 1000) / Large 18"(Kshs 1800) / 10" GLUTEN FREE(Kshs 1200)
A. WHITE or WHOLE WHEAT wood grilled thin crust
B. **10” WOOD GRILLED GLUTEN FREE***
70 / 120 / 180
mushrooms * black olives * red onion * hot peppers * fresh garlic * roasted garlic * grilled onions * green peppers * scallions *summer squash * zucchini * chopped tomatoes * fresh pineapple
90 / 170 / 295
wild mushrooms * sundried tomatoes * baby arugula * baby spinach * kalamata olives * artichoke hearts * roasted red peppers * bacon * feta * ricotta * smoked gouda cheese * grilled chicken * sweet Italian sausage * hot Italian sausage * REAL pepperoni * HOUSEMADE meatballs * white bean hummus * fresh basil * EXTRA shredded cheese blend or mozzarella
120 / 240 / 360
prosciutto * fresh mozzarella * gorgonzola * candied walnuts * sliced pears * fresh basil pesto * sundried tomato pesto
A. HOT: WE COOK IT FOR YOU
B. TAKE'N'BAKE: YOU COOK IT ON YOUR SCHEDULE IN THE BEST PIZZA OVEN IN TOWN, YOURS!
or


@JvmStatic fun wrap(rawHashBytes: ByteArray): Sha256Hash
Creates a new instance that wraps the given hash value.
rawHashBytes
- the raw hash bytes to wrap
IllegalArgumentException
- if the given array length is not exactly 32
Return
a new instance
@JvmStatic fun wrap(hexString: String): Sha256Hash
Creates a new instance that wraps the given hash value (represented as a hex string).
hexString
- a hash value represented as a hex string
IllegalArgumentException
- if the given string is not a valid
hex string, or if it does not represent exactly 32 bytes
Return
a new instance


{{ with .Page.Params.locationnameanddescription }}
location
Webinar Notice: Registrants will be sent the webinar login information in the meeting reminder email prior to the event.


Check-in : {{start_dt}}
Check-out : {{end_dt}}
Passenger : {{occupancy}}
Room : {{room_info.name}}
Total price : {{room_info.total_price}}
Name : {{reservation_info.customer.first_name}}
Last name : {{reservation_info.customer.last_name}}
Email : {{reservation_info.customer.email}}
Check-in : {{reservation_info.checkin}}
Check-out : {{reservation_info.checkout}}
Adults : {{reservation_info.occupancy}}
Total Price : {{reservation_info.total_price}}
Day {{night.day}} - Rate : {{night.rate}}


Paul Pogba reportedly goes on strike at Man United in bid to join Real Madrid
- Paul Pogba has reportedly went on strike for him to join Real Madrid next year
- Solskjaer may have no choice but to let Paul Pogba leave in January 2020
- The Frenchman has not played for Manchester United since September
Paul Pogba has reportedly refused to play for Manchester United despite being fit in his bid to force January 2020 transfer move to Real Madrid.
The France international has not played for Manchester United since he got injured in the Premier League 1-1 draw against Arsenal in September.
Pogba has been spotted playing basketball in America as he continues his rehabilitation.
PAY ATTENTION: Install Pitch Football App for FREE to get the latest football News & Scores
"We don't play basketball. I don't see many basketball players tackling ankles, twisting and turning with studs.
"He's not ready to train,'' Ole Gunnar Solskjaer explained.
Iwobi opens up on what Everton manager did to improve his game against West Ham
Real Madrid were linked with signing Paul Pogba before the last summer transfer closed, but Manchester United refused to do business with Los Blancos.
Paul Pogba himself confirmed that he will be glad to play under fellow countryman Zinedine Zidane who is the manager of Real Madrid.
Italian champions Juventus are also reportedly to be monitoring the progress of Paul Pogba with the interest of resigning him.
Earlier, Legit.ng had reported how former Crystal Palace chairman Simon Jordan made it clear that he does not believe that Ole Gunnar Solskjaer can operate at the required level that is expected from a Man United coach.
Last year when Ole Gunnar Solskjaer replaced Mourinho at Old Trafford, he started well, as he went some games unbeaten but United ended up without a trophy.
The Red Devils even failed to make the top four finish at the end of last Premier League campaign and will not play in the 2019/20 Champions League.
Liverpool eye mega move for Super Eagles star also wanted by Real Madrid and Barcelona
Abu Azeez: Meet the only Nigerian rated among top 50 beach soccer players worldwide | Legit TV


Mushrooms - P. Cubensis
[Erowid Note: 10.5 grams of dried mushrooms is considered an extremely high dose, see mushrooms Dose Chart]
I had been looking forward to and reading and studying intensly about Magic Mushrooms when I finally found an individual to get some from. I had always had a very intense interest in these mushrooms, and read about them before I took them. There was a group of about 5 of us, and we decided to induce the mushies at an open field, right across from a big church and park.
I had bought $100 worth, or about 5 eights. We all sat down in a circle, and ate the mushrooms, evenly distributing them between my girlfirend and I. The other people I was with had only 1 eight with them, so I gave them a couple extra stems and caps. I had probably eaten about 2 1/2 eights, but started to randomly eat a cap or two an hour into the trip. We had also eaten 2 1000g tabs of Vitamin C, as this supposedly helps speed up and intensify the trip. After sitting down finally after eating my share and waiting for this great experience to take place, I all of the sudden found myself looking up into a great big hole in the sky, with the rest of the world not around me.
It was like I was on (and I actually was!)a different astral plane with just the stars and the sky. I felt as if I could communicate directly with the earth, as well as whatever else was out there. One minute I was asking myself when this was going to kick in, and the next minute I was thrown into this exiting world of psychedelic wonder. The clouds started to make a wide array of faces and shapes, and the tree lines that seemed to surround us had now dissapeared, only to leave me with the divine outer world. The others in the group had been having a wonderful experience, but hadn't had such a large dosage of the mushies as I had. I was in a completely different world, and the plane was very safe, and looked as if this is where I was supposed to be.
The peak lasted about 2 hours, with the total trip lasting about 8 hours. We had done this in the dark, my first experience in the dark. My eyes were watering like I was crying, but I wasn't sad at all. I also felt as if I knew so much about the inner and outer worlds, and every time I tried to explain it, I couldn't. I would start a sentence, but was unable to finish it.
All in all, this was such a wonderful experience, with no scary or bad things happening.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


| Package | Description |
|---|---|
| com.jme3.animation |
The
com.jme3.animation package contains various classes
for managing animation inside a jME3 application. |
| com.jme3.app |
The
com.jme3.application provides a toolset for jME3 applications
to interact with various components of the engine. |
| com.jme3.app.state |
The
com.jme3.app.state package provides
app states ,
an abstract way of handling application logic. |
| com.jme3.asset |
com.jme3.asset contains the AssetManager ,
a utility class that is used to load assets such as textures, models, and
sound effects in a jME3 application. |
| com.jme3.audio | |
| com.jme3.bounding | |
| com.jme3.cinematic | |
| com.jme3.cinematic.events | |
| com.jme3.collision | |
| com.jme3.collision.bih | |
| com.jme3.effect |
The
com.jme3.effect package allows particle emitter effects to be
used with a jME3 application. |
| com.jme3.effect.shapes | |
| com.jme3.font | |
| com.jme3.input |
The
com.jme3.input package is used for all input handling in
jMonkeyEngine. |
| com.jme3.light |
The
com.jme3.light package contains various lights that can be placed
in a scene. |
| com.jme3.material |
The
com.jme3.material package contains classes for manipulating
jMonkeyEngine materials. |
| com.jme3.renderer |
The
com.jme3.renderer package provides classes responsible for
rendering. |
| com.jme3.renderer.opengl | |
| com.jme3.renderer.queue | |
| com.jme3.scene |
The
com.jme3.input package contains the scene graph implementation
in jMonkeyEngine. |
| com.jme3.scene.control |
The
com.jme3.control package provides
controls . |
| com.jme3.scene.debug | |
| com.jme3.scene.instancing | |
| com.jme3.scene.mesh |
The
com.jme3.scene.mesh package contains utilities
for reading from index buffers . |
| com.jme3.scene.plugins | |
| com.jme3.scene.shape | |
| com.jme3.shader | |
| com.jme3.shadow | |
| com.jme3.system | |
| com.jme3.ui | |
| com.jme3.util | |
| com.jme3.util.mikktspace | |
| jme3tools.optimize |
| Class and Description |
|---|
Mesh
Mesh is used to store rendering data. |
Node
Node defines an internal node of a scene graph. |
Spatial
Spatial defines the base class for scene graph nodes. |
| Class and Description |
|---|
CameraNode
CameraNode simply uses CameraControl to implement
linking of camera and node data. |
Geometry
Geometry defines a leaf node of the scene graph. |
Mesh
Mesh is used to store rendering data. |
Node
Node defines an internal node of a scene graph. |
Spatial
Spatial defines the base class for scene graph nodes. |
| Class and Description |
|---|
Node
Node defines an internal node of a scene graph. |
| Class and Description |
|---|
Spatial
Spatial defines the base class for scene graph nodes. |
| Class and Description |
|---|
Node
Node defines an internal node of a scene graph. |
Spatial
Spatial defines the base class for scene graph nodes. |
| Class and Description |
|---|
Mesh
Mesh is used to store rendering data. |
| Class and Description |
|---|
CameraNode
CameraNode simply uses CameraControl to implement
linking of camera and node data. |
Node
Node defines an internal node of a scene graph. |
| Class and Description |
|---|
Spatial
Spatial defines the base class for scene graph nodes. |
| Class and Description |
|---|
Geometry
Geometry defines a leaf node of the scene graph. |
| Class and Description |
|---|
CollisionData
CollisionData is an interface that can be used to
do triangle-accurate collision with bounding volumes and rays. |
Mesh
Mesh is used to store rendering data. |
| Class and Description |
|---|
Geometry
Geometry defines a leaf node of the scene graph. |
Mesh
Mesh is used to store rendering data. |
Spatial
Spatial defines the base class for scene graph nodes. |
| Class and Description |
|---|
Mesh
Mesh is used to store rendering data. |
| Class and Description |
|---|
Node
Node defines an internal node of a scene graph. |
Spatial
Spatial defines the base class for scene graph nodes. |
| Class and Description |
|---|
Spatial
Spatial defines the base class for scene graph nodes. |
| Class and Description |
|---|
Geometry
Geometry defines a leaf node of the scene graph. |
Spatial
Spatial defines the base class for scene graph nodes. |
| Class and Description |
|---|
Geometry
Geometry defines a leaf node of the scene graph. |
| Class and Description |
|---|
Geometry
Geometry defines a leaf node of the scene graph. |
Mesh
Mesh is used to store rendering data. |
Spatial
Spatial defines the base class for scene graph nodes. |
| VertexBuffer
A
VertexBuffer contains a particular type of geometry
data used by Mesh es. |
| Class and Description |
|---|
Mesh
Mesh is used to store rendering data. |
| Mesh.Mode
The mode of the Mesh specifies both the type of primitive represented
by the mesh and how the data should be interpreted.
|
| VertexBuffer
A
VertexBuffer contains a particular type of geometry
data used by Mesh es. |
| Class and Description |
|---|
Geometry
Geometry defines a leaf node of the scene graph. |
| Class and Description |
|---|
| BatchNode
BatchNode holds geometries that are a batched version of all the geometries that are in its sub scenegraph.
|
| BatchNode.Batch |
Geometry
Geometry defines a leaf node of the scene graph. |
| GeometryGroupNode
An abstract class for implementations that perform grouping of geometries
via instancing or batching.
|
Mesh
Mesh is used to store rendering data. |
| Mesh.Mode
The mode of the Mesh specifies both the type of primitive represented
by the mesh and how the data should be interpreted.
|
Node
Node defines an internal node of a scene graph. |
SceneGraphVisitor
SceneGraphVisitorAdapter is used to traverse the scene
graph tree. |
Spatial
Spatial defines the base class for scene graph nodes. |
| Spatial.BatchHint
Specifies if this spatial should be batched
|
| Spatial.CullHint
Specifies how frustum culling should be handled by
this spatial.
|
| VertexBuffer
A
VertexBuffer contains a particular type of geometry
data used by Mesh es. |
| VertexBuffer.Format
Specifies format of the data stored in the buffer.
|
| VertexBuffer.Type
Type of buffer.
|
| VertexBuffer.Usage
The usage of the VertexBuffer, specifies how often the buffer
is used.
|
| Class and Description |
|---|
Spatial
Spatial defines the base class for scene graph nodes. |
| Class and Description |
|---|
Geometry
Geometry defines a leaf node of the scene graph. |
Mesh
Mesh is used to store rendering data. |
Node
Node defines an internal node of a scene graph. |
Spatial
Spatial defines the base class for scene graph nodes. |
| Class and Description |
|---|
Geometry
Geometry defines a leaf node of the scene graph. |
| GeometryGroupNode
An abstract class for implementations that perform grouping of geometries
via instancing or batching.
|
Node
Node defines an internal node of a scene graph. |
Spatial
Spatial defines the base class for scene graph nodes. |
| VertexBuffer
A
VertexBuffer contains a particular type of geometry
data used by Mesh es. |
| Class and Description |
|---|
Mesh
Mesh is used to store rendering data. |
| Mesh.Mode
The mode of the Mesh specifies both the type of primitive represented
by the mesh and how the data should be interpreted.
|
| Class and Description |
|---|
Geometry
Geometry defines a leaf node of the scene graph. |
Mesh
Mesh is used to store rendering data. |
Node
Node defines an internal node of a scene graph. |
Spatial
Spatial defines the base class for scene graph nodes. |
| Class and Description |
|---|
Mesh
Mesh is used to store rendering data. |
| Class and Description |
|---|
| VertexBuffer.Type
Type of buffer.
|
| Class and Description |
|---|
Geometry
Geometry defines a leaf node of the scene graph. |
Spatial
Spatial defines the base class for scene graph nodes. |
| Class and Description |
|---|
Mesh
Mesh is used to store rendering data. |
| VertexBuffer
A
VertexBuffer contains a particular type of geometry
data used by Mesh es. |
| Class and Description |
|---|
Geometry
Geometry defines a leaf node of the scene graph. |
Spatial
Spatial defines the base class for scene graph nodes. |
| Class and Description |
|---|
Mesh
Mesh is used to store rendering data. |
Spatial
Spatial defines the base class for scene graph nodes. |
| Class and Description |
|---|
Mesh
Mesh is used to store rendering data. |
Spatial
Spatial defines the base class for scene graph nodes. |
| Class and Description |
|---|
Geometry
Geometry defines a leaf node of the scene graph. |
Mesh
Mesh is used to store rendering data. |
Node
Node defines an internal node of a scene graph. |
Spatial
Spatial defines the base class for scene graph nodes. |
| VertexBuffer
A
VertexBuffer contains a particular type of geometry
data used by Mesh es. |


Deutsche Welle Relieved After Top Russian Diplomat Dismisses Calls for Ban
BERLIN (Sputnik) - Deutsche Welle has welcomed a remark by top Russian diplomat Sergei Lavrov, who said the Foreign Ministry did not entertain the idea of stripping foreign media of their Russian licenses.
"Deutsche Welle welcomes the announcement by Russian Foreign Minister Sergei Lavrov that Russia does not see restrictions on Western media, including Deutsche Welle, as necessary or possible", the broadcaster said.
The media’s spokesman, Christoph Jumpelt, said that sanctions on Deutsche Welle would not have been justified. He denied that the outlet had apologised for the offending tweet, saying there must have been some kind of misunderstanding.
The report comes after the state-run German broadcaster struck up fury in summer with a tweet in Russian that seemed to back the unauthorised protests against the exclusion of opposition candidates from a Moscow council race.
The head of a Russian parliamentary committee probing foreign meddling said he would ask the Foreign Ministry to consider barring Deutsche Welle from operating in Russia.


hello
Emoncms v8.3.5 does not change from day to 00:00 UTC + 2 change at 02:00 AM local time ago.
I hope they can fix soon, Thanks!
Archived Forum |
|
Bug UTC+2Submitted by mirasu on Tue, 14/04/2015 - 22:25hello I hope they can fix soon, Thanks! » |
Re: Bug UTC+2
Can you provide more detail about what the problem is, and what checks you have made to resolve it.
Paul
Re: Bug UTC+2
hello
I'm in utc + 2 (Spain) and have 1 widgets / dial with kWhD and charts in daily bar feed.
I have configured in admin UTC + 2, but the server switches bar at 2am local time, 00:00 server time.
All this is in emoncms.org 8.3.5, I do not know how to fix it, I just think that ignores my settings UTC + 2, I also tried UTC + 1 and not going
Thank you!
[Duplicate post deleted - please read this. Moderator (RW)]
Re: Bug UTC+2
There has been a recent change to the way in which emoncms handles timezones, please try updating to the current git version.
Paul
Re: Bug UTC+2
hello
Sorry, but the problem is in my account emoncms.org
Not my local server.
thanks
[Duplicate post deleted - please read this. Moderator (RW)]
Edito: Sorry
Re: Bug UTC+2
hi,
I have the same problem, really my problem is that charts are calculated with data at 02:00 am instead of 00:00 am.
Is this the usual way or is it a bug?
I've emoncms.org account configured as GMT +1


Toggle navigation
nativejson-benchmark
Benchmark
Section
Developed by
Milo Yip
<EMAIL_ADDRESS>Source CSV
Type,Library,Filename,Time (ms),Memory (byte),MemoryPeak (byte),AllocCount,FileSize (byte) 1. Parse,ArduinoJson (C++),canada.json,563.430000,11349376,11349376,17,0 1. Parse,ArduinoJson (C++),citm_catalog.json,2.577000,4898176,4898176,15,0 1. Parse,ArduinoJson (C++),twitter.json,1.869000,1744256,1744256,13,0 2. Stringify,ArduinoJson (C++),canada.json,39.622000,2252832,5398560,19,0 2. Stringify,ArduinoJson (C++),citm_catalog.json,9.571000,524320,1568800,17,0 2. Stringify,ArduinoJson (C++),twitter.json,8.669000,524320,1568800,17,0 3. Prettify,ArduinoJson (C++),canada.json,119.130000,5599264,14606368,20,0 3. Prettify,ArduinoJson (C++),citm_catalog.json,25.427000,2252832,3825696,18,0 3. Prettify,ArduinoJson (C++),twitter.json,14.327000,1052704,2097184,17,0 4. Statistics,ArduinoJson (C++),canada.json,41.775000,0,0,0,0 4. Statistics,ArduinoJson (C++),citm_catalog.json,0.830000,0,0,0,0 4. Statistics,ArduinoJson (C++),twitter.json,0.473000,0,0,0,0 7. Code size,ArduinoJson (C++),jsonstat,0,0,0,0,26636 1. Parse,CAJUN (C++),canada.json,941.969000,236113920,503840592,3396966,0 1. Parse,CAJUN (C++),citm_catalog.json,145.532000,9770176,34805584,612137,0 1. Parse,CAJUN (C++),twitter.json,45.904000,2515152,10526544,204803,0 2. Stringify,CAJUN (C++),canada.json,109.479000,5599264,14606368,20,0 2. Stringify,CAJUN (C++),citm_catalog.json,14.682000,921632,2494496,19,0 2. Stringify,CAJUN (C++),twitter.json,13.385000,1044512,1966112,1920,0 4. Statistics,CAJUN (C++),canada.json,2.949000,0,0,0,0 4. Statistics,CAJUN (C++),citm_catalog.json,0.273000,0,0,0,0 4. Statistics,CAJUN (C++),twitter.json,0.067000,0,0,0,0 7. Code size,CAJUN (C++),jsonstat,0,0,0,0,86148 1. Parse,ccan/json (C),canada.json,48.533000,10699872,10699872,167193,0 1. Parse,ccan/json (C),citm_catalog.json,6.789000,3337056,3337056,68345,0 1. Parse,ccan/json (C),twitter.json,4.527000,1800400,1800400,43523,0 2. Stringify,ccan/json (C),canada.json,60.136000,2101264,2101264,19,0 2. Stringify,ccan/json (C),citm_catalog.json,4.568000,1044496,1044496,17,0 2. Stringify,ccan/json (C),twitter.json,1.793000,528400,528400,17,0 3. Prettify,ccan/json (C),canada.json,77.032000,9007120,9007120,21,0 3. Prettify,ccan/json (C),citm_catalog.json,7.865000,2101264,2101264,19,0 3. Prettify,ccan/json (C),twitter.json,2.630000,1052688,1052688,18,0 4. Statistics,ccan/json (C),canada.json,0.533000,0,0,0,0 4. Statistics,ccan/json (C),citm_catalog.json,0.202000,0,0,0,0 4. Statistics,ccan/json (C),twitter.json,0.111000,0,0,0,0 7. Code size,ccan/json (C),jsonstat,0,0,0,0,30400 1. Parse,cJSON (C),canada.json,15.574000,10699680,10699680,167192,0 1. Parse,cJSON (C),citm_catalog.json,5.580000,2869760,2869760,64383,0 1. Parse,cJSON (C),twitter.json,3.517000,1416064,1416064,32014,0 2. Stringify,cJSON (C),canada.json,49.510000,2101264,4202864,223241,0 2. Stringify,cJSON (C),citm_catalog.json,15.016000,503824,1080880,87274,0 2. Stringify,cJSON (C),twitter.json,6.757000,528400,1032608,30092,0 3. Prettify,cJSON (C),canada.json,49.254000,2101264,4202880,223241,0 3. Prettify,cJSON (C),citm_catalog.json,15.105000,1052688,2163968,87274,0 3. Prettify,cJSON (C),twitter.json,7.059000,1052688,2105808,30092,0 4. Statistics,cJSON (C),canada.json,0.488000,0,0,0,0 4. Statistics,cJSON (C),citm_catalog.json,0.162000,0,0,0,0 4. Statistics,cJSON (C),twitter.json,0.106000,0,0,0,0 7. Code size,cJSON (C),jsonstat,0,0,0,0,27040 1. Parse,Configuru (C++11),canada.json,57.733000,13022272,13081456,170253,0 1. Parse,Configuru (C++11),citm_catalog.json,16.881000,4899360,4899456,54236,0 1. Parse,Configuru (C++11),twitter.json,5.993000,2119216,2119312,20388,0 2. Stringify,Configuru (C++11),canada.json,148.446000,3145760,5247072,22,0 2. Stringify,Configuru (C++11),citm_catalog.json,4.734000,1052704,1556720,10951,0 2. Stringify,Configuru (C++11),twitter.json,1.686000,1052704,1557232,1280,0 3. Prettify,Configuru (C++11),canada.json,161.278000,3145760,5247072,22,0 3. Prettify,Configuru (C++11),citm_catalog.json,8.553000,2101280,3154160,10952,0 3. Prettify,Configuru (C++11),twitter.json,3.222000,1052704,1557232,1280,0 4. Statistics,Configuru (C++11),canada.json,0.698000,0,0,0,0 4. Statistics,Configuru (C++11),citm_catalog.json,0.548000,0,0,0,0 4. Statistics,Configuru (C++11),twitter.json,0.155000,0,0,0,0 7. Code size,Configuru (C++11),jsonstat,0,0,0,0,131668 1. Parse,C++ REST SDK (C++11),canada.json,113.358000,7054688,7054736,392462,0 1. Parse,C++ REST SDK (C++11),citm_catalog.json,14.310000,2433664,2433680,68658,0 1. Parse,C++ REST SDK (C++11),twitter.json,6.434000,1448256,1448496,24481,0 2. Stringify,C++ REST SDK (C++11),canada.json,70.617000,4194336,9441312,36,0 2. Stringify,C++ REST SDK (C++11),citm_catalog.json,4.310000,503840,2609184,348,0 2. Stringify,C++ REST SDK (C++11),twitter.json,3.129000,503840,2609184,1927,0 4. Statistics,C++ REST SDK (C++11),canada.json,0.912000,0,0,0,0 4. Statistics,C++ REST SDK (C++11),citm_catalog.json,0.453000,0,0,0,0 4. Statistics,C++ REST SDK (C++11),twitter.json,0.136000,0,0,0,0 7. Code size,C++ REST SDK (C++11),jsonstat,0,0,0,0,18300 1. Parse,dropbox/json11 (C++11),canada.json,69.836000,11680208,15043200,337434,0 1. Parse,dropbox/json11 (C++11),citm_catalog.json,14.516000,4382848,6485024,96993,0 1. Parse,dropbox/json11 (C++11),twitter.json,9.172000,1959712,3013040,44408,0 2. Stringify,dropbox/json11 (C++11),canada.json,65.608000,3145760,5247008,18,0 2. Stringify,dropbox/json11 (C++11),citm_catalog.json,4.310000,1052704,1556512,16,0 2. Stringify,dropbox/json11 (C++11),twitter.json,3.140000,1052704,1556512,16,0 4. Statistics,dropbox/json11 (C++11),canada.json,0.933000,0,0,0,0 4. Statistics,dropbox/json11 (C++11),citm_catalog.json,0.373000,0,0,0,0 4. Statistics,dropbox/json11 (C++11),twitter.json,0.130000,0,0,0,0 7. Code size,dropbox/json11 (C++11),jsonstat,0,0,0,0,80136 1. Parse,mikeando/FastJson (C++),canada.json,11.927000,8790784,11937056,22,0 1. Parse,mikeando/FastJson (C++),citm_catalog.json,4.589000,3133632,5235424,22,0 1. Parse,mikeando/FastJson (C++),twitter.json,2.468000,1579712,2633504,24,0 2. Stringify,mikeando/FastJson (C++),canada.json,60.182000,3145760,3145760,2,0 2. Stringify,mikeando/FastJson (C++),citm_catalog.json,4.827000,503840,503840,2,0 2. Stringify,mikeando/FastJson (C++),twitter.json,1.725000,1052704,1052704,2,0 4. Statistics,mikeando/FastJson (C++),canada.json,0.667000,0,0,0,0 4. Statistics,mikeando/FastJson (C++),citm_catalog.json,0.136000,0,0,0,0 4. Statistics,mikeando/FastJson (C++),twitter.json,0.068000,0,0,0,0 7. Code size,mikeando/FastJson (C++),jsonstat,0,0,0,0,62768 1. Parse,gason (C++11),canada.json,5.297000,5832736,5832736,658,0 1. Parse,gason (C++11),citm_catalog.json,2.105000,2920480,2920480,202,0 1. Parse,gason (C++11),twitter.json,1.013000,1384480,1384480,83,0 2. Stringify,gason (C++11),canada.json,30.812000,2101280,4202528,18,0 2. Stringify,gason (C++11),citm_catalog.json,9.235000,1052704,2105376,17,0 2. Stringify,gason (C++11),twitter.json,5.244000,503840,1556512,17,0 3. Prettify,gason (C++11),canada.json,70.420000,7319584,19902496,222273,0 3. Prettify,gason (C++11),citm_catalog.json,15.125000,2101280,5247008,34759,0 3. Prettify,gason (C++11),twitter.json,6.351000,770080,1822752,1920,0 4. Statistics,gason (C++11),canada.json,0.405000,0,0,0,0 4. Statistics,gason (C++11),citm_catalog.json,0.217000,0,0,0,0 4. Statistics,gason (C++11),twitter.json,0.144000,0,0,0,0 7. Code size,gason (C++11),jsonstat,0,0,0,0,20412 1. Parse,Jansson (C),canada.json,78.465000,10619344,10619392,224392,0 1. Parse,Jansson (C),citm_catalog.json,22.656000,5699968,5700048,111230,0 1. Parse,Jansson (C),twitter.json,10.935000,2000288,2000848,43822,0 2. Stringify,Jansson (C),canada.json,64.221000,3145744,7340048,21,0 2. Stringify,Jansson (C),citm_catalog.json,3.764000,770064,1822736,19,0 2. Stringify,Jansson (C),twitter.json,1.925000,503824,1032208,18,0 3. Prettify,Jansson (C),canada.json,73.837000,8273936,20856848,22,0 3. Prettify,Jansson (C),citm_catalog.json,4.373000,2101264,4202512,20,0 3. Prettify,Jansson (C),twitter.json,2.170000,770064,1822736,19,0 4. Statistics,Jansson (C),canada.json,0.811000,0,0,0,0 4. Statistics,Jansson (C),citm_catalog.json,0.594000,0,0,0,0 4. Statistics,Jansson (C),twitter.json,0.212000,0,0,0,0 7. Code size,Jansson (C),jsonstat,0,0,0,0,69076 1. Parse,jsmn (C),canada.json,377.652000,7340064,7340064,3,0 1. Parse,jsmn (C),citm_catalog.json,13.409000,3153952,3153952,3,0 1. Parse,jsmn (C),twitter.json,3.579000,1273888,1273888,3,0 4. Statistics,jsmn (C),canada.json,0.352000,0,0,0,0 4. Statistics,jsmn (C),citm_catalog.json,0.111000,0,0,0,0 4. Statistics,jsmn (C),twitter.json,0.058000,0,0,0,0 7. Code size,jsmn (C),jsonstat,0,0,0,0,15872 1. Parse,JsonBox (C++),canada.json,251.414000,6913584,14599088,754123,0 1. Parse,JsonBox (C++),citm_catalog.json,62.591000,3232384,7434880,242074,0 1. Parse,JsonBox (C++),twitter.json,26.559000,1636960,3969328,75748,0 2. Stringify,JsonBox (C++),canada.json,161.897000,4194336,7340064,19,0 2. Stringify,JsonBox (C++),citm_catalog.json,31.513000,503840,1556512,673,0 2. Stringify,JsonBox (C++),twitter.json,21.323000,503840,1556512,9688,0 3. Prettify,JsonBox (C++),canada.json,146.194000,4194336,10883104,20,0 3. Prettify,JsonBox (C++),citm_catalog.json,28.525000,1052704,3153952,674,0 3. Prettify,JsonBox (C++),twitter.json,19.737000,770080,1822752,9688,0 4. Statistics,JsonBox (C++),canada.json,0.515000,0,0,0,0 4. Statistics,JsonBox (C++),citm_catalog.json,0.204000,0,0,0,0 4. Statistics,JsonBox (C++),twitter.json,0.090000,0,0,0,0 7. Code size,JsonBox (C++),jsonstat,0,0,0,0,112552 1. Parse,jsoncons (C++),canada.json,77.291000,4552080,8469168,230921,0 1. Parse,jsoncons (C++),citm_catalog.json,8.173000,1959424,4102480,34809,0 1. Parse,jsoncons (C++),twitter.json,3.467000,1053312,1865888,8741,0 2. Stringify,jsoncons (C++),canada.json,80.353000,4194336,7340064,25,0 2. Stringify,jsoncons (C++),citm_catalog.json,2.996000,528416,1581088,23,0 2. Stringify,jsoncons (C++),twitter.json,2.645000,503840,1573664,24,0 3. Prettify,jsoncons (C++),canada.json,80.573000,4194336,7340064,25,0 3. Prettify,jsoncons (C++),citm_catalog.json,2.879000,528416,1581088,23,0 3. Prettify,jsoncons (C++),twitter.json,2.596000,503840,1573664,24,0 4. Statistics,jsoncons (C++),canada.json,1.974000,0,0,0,0 4. Statistics,jsoncons (C++),citm_catalog.json,0.751000,0,64,324,0 4. Statistics,jsoncons (C++),twitter.json,0.524000,0,464,1901,0 7. Code size,jsoncons (C++),jsonstat,0,0,0,0,107592 1. Parse,JsonCpp (C++),canada.json,142.458000,17842912,25187056,223252,0 1. Parse,JsonCpp (C++),citm_catalog.json,14.587000,4767504,8974112,111968,0 1. Parse,JsonCpp (C++),twitter.json,8.477000,1949984,3776816,50961,0 2. Stringify,JsonCpp (C++),canada.json,84.443000,4194336,7340064,23,0 2. Stringify,JsonCpp (C++),citm_catalog.json,5.679000,503840,1557136,12197,0 2. Stringify,JsonCpp (C++),twitter.json,4.139000,503840,1558528,7727,0 4. Statistics,JsonCpp (C++),canada.json,1.744000,0,0,0,0 4. Statistics,JsonCpp (C++),citm_catalog.json,0.451000,0,64,324,0 4. Statistics,JsonCpp (C++),twitter.json,0.423000,0,464,1901,0 7. Code size,JsonCpp (C++),jsonstat,0,0,0,0,243476 1. Parse,json-c (C),canada.json,105.784000,33742544,33743696,390651,0 1. Parse,json-c (C),citm_catalog.json,21.122000,13055024,13056208,131793,0 1. Parse,json-c (C),twitter.json,7.645000,3088720,3090352,49446,0 2. Stringify,json-c (C),canada.json,16.260000,7340064,7340064,21,0 2. Stringify,json-c (C),citm_catalog.json,9.990000,1273888,1273888,18,0 2. Stringify,json-c (C),twitter.json,4.554000,1028128,1028128,18,0 3. Prettify,json-c (C),canada.json,29.737000,19271712,19271712,22,0 3. Prettify,json-c (C),citm_catalog.json,14.057000,3354656,3354656,20,0 3. Prettify,json-c (C),twitter.json,5.462000,2027552,2027552,19,0 4. Statistics,json-c (C),canada.json,2.093000,0,0,0,0 4. Statistics,json-c (C),citm_catalog.json,0.713000,0,0,0,0 4. Statistics,json-c (C),twitter.json,0.182000,0,0,0,0 7. Code size,json-c (C),jsonstat,0,0,0,0,56908 1. Parse,hjiang/JSON++ (C++),canada.json,169.539000,8778896,16118928,337434,0 1. Parse,hjiang/JSON++ (C++),citm_catalog.json,40.240000,3891024,9133904,92754,0 1. Parse,hjiang/JSON++ (C++),twitter.json,14.529000,1880592,3908112,42564,0 2. Stringify,hjiang/JSON++ (C++),canada.json,264.974000,3981344,14864416,499228,0 2. Stringify,hjiang/JSON++ (C++),citm_catalog.json,48.292000,1024032,4423712,102930,0 2. Stringify,hjiang/JSON++ (C++),twitter.json,22.440000,589856,2384288,42914,0 4. Statistics,hjiang/JSON++ (C++),canada.json,0.701000,0,0,0,0 4. Statistics,hjiang/JSON++ (C++),citm_catalog.json,0.238000,0,0,0,0 4. Statistics,hjiang/JSON++ (C++),twitter.json,0.114000,0,0,0,0 7. Code size,hjiang/JSON++ (C++),jsonstat,0,0,0,0,93520 1. Parse,JVar (C++),canada.json,71.592000,4484288,4484288,56050,0 1. Parse,JVar (C++),citm_catalog.json,15.756000,2600944,2600944,22037,0 1. Parse,JVar (C++),twitter.json,6.515000,477840,477904,6117,0 2. Stringify,JVar (C++),canada.json,40.936000,1044512,1044512,2,0 2. Stringify,JVar (C++),citm_catalog.json,6.402000,524320,524320,2,0 2. Stringify,JVar (C++),twitter.json,2.221000,466976,466976,2,0 4. Statistics,JVar (C++),canada.json,0.815000,0,0,0,0 4. Statistics,JVar (C++),citm_catalog.json,0.401000,0,0,0,0 4. Statistics,JVar (C++),twitter.json,0.140000,0,0,0,0 7. Code size,JVar (C++),jsonstat,0,0,0,0,85940 1. Parse,Jzon (C++),canada.json,97.568000,17910992,24392000,282601,0 1. Parse,Jzon (C++),citm_catalog.json,35.149000,3855088,7865168,69806,0 1. Parse,Jzon (C++),twitter.json,16.008000,1858544,3749648,35993,0 2. Stringify,Jzon (C++),canada.json,16.810000,2252832,6447136,19,0 2. Stringify,Jzon (C++),citm_catalog.json,6.351000,933920,1867808,665,0 2. Stringify,Jzon (C++),twitter.json,5.053000,933920,1867808,4466,0 3. Prettify,Jzon (C++),canada.json,51.588000,8273952,20856864,222273,0 3. Prettify,Jzon (C++),citm_catalog.json,12.987000,2252832,6447136,44092,0 3. Prettify,Jzon (C++),twitter.json,6.018000,933920,2662432,6536,0 4. Statistics,Jzon (C++),canada.json,0.984000,0,0,0,0 4. Statistics,Jzon (C++),citm_catalog.json,0.277000,0,64,324,0 4. Statistics,Jzon (C++),twitter.json,0.383000,0,464,1901,0 7. Code size,Jzon (C++),jsonstat,0,0,0,0,109224 1. Parse,nbsdx_SimpleJSON (C++11),canada.json,424.984000,233775952,469804480,673245,0 1. Parse,nbsdx_SimpleJSON (C++11),citm_catalog.json,39.231000,10180304,20384768,226971,0 1. Parse,nbsdx_SimpleJSON (C++11),twitter.json,21.404000,2815872,6563248,118203,0 2. Stringify,nbsdx_SimpleJSON (C++11),canada.json,56.220000,4194336,7331872,58168,0 2. Stringify,nbsdx_SimpleJSON (C++11),citm_catalog.json,15.924000,2252832,4194336,55708,0 2. Stringify,nbsdx_SimpleJSON (C++11),twitter.json,6.917000,1409056,2863552,23541,0 3. Prettify,nbsdx_SimpleJSON (C++11),canada.json,72.002000,4194336,7331872,225340,0 3. Prettify,nbsdx_SimpleJSON (C++11),citm_catalog.json,22.864000,4194336,5677088,117443,0 3. Prettify,nbsdx_SimpleJSON (C++11),twitter.json,8.738000,933920,3277280,34326,0 4. Statistics,nbsdx_SimpleJSON (C++11),canada.json,3.549000,0,0,0,0 4. Statistics,nbsdx_SimpleJSON (C++11),citm_catalog.json,0.422000,0,144,330,0 4. Statistics,nbsdx_SimpleJSON (C++11),twitter.json,1.616000,0,1152,3964,0 7. Code size,nbsdx_SimpleJSON (C++11),jsonstat,0,0,0,0,45164 1. Parse,Nlohmann (C++11),canada.json,55.591000,5293488,5293488,170254,0 1. Parse,Nlohmann (C++11),citm_catalog.json,9.875000,3045808,3045808,55293,0 1. Parse,Nlohmann (C++11),twitter.json,7.010000,1558576,1558576,28498,0 2. Stringify,Nlohmann (C++11),canada.json,76.315000,1728544,5922848,19,0 2. Stringify,Nlohmann (C++11),citm_catalog.json,7.178000,933920,1867808,342,0 2. Stringify,Nlohmann (C++11),twitter.json,4.239000,466976,1400864,3821,0 3. Prettify,Nlohmann (C++11),canada.json,112.750000,8273952,20856896,222273,0 3. Prettify,Nlohmann (C++11),citm_catalog.json,12.720000,1728544,5922880,35084,0 3. Prettify,Nlohmann (C++11),twitter.json,5.090000,933920,1867808,5724,0 4. Statistics,Nlohmann (C++11),canada.json,0.990000,0,0,0,0 4. Statistics,Nlohmann (C++11),citm_catalog.json,0.517000,0,64,325,0 4. Statistics,Nlohmann (C++11),twitter.json,0.664000,0,464,3804,0 7. Code size,Nlohmann (C++11),jsonstat,0,0,0,0,42132 1. Parse,Parson (C),canada.json,64.573000,5816816,5878880,336060,0 1. Parse,Parson (C),citm_catalog.json,17.144000,2276704,2277024,185585,0 1. Parse,Parson (C),twitter.json,7.832000,1050976,1051456,72477,0 2. Stringify,Parson (C),canada.json,81.334000,1409040,1409040,2,0 2. Stringify,Parson (C),citm_catalog.json,17.405000,933904,933904,2,0 2. Stringify,Parson (C),twitter.json,12.164000,933904,933904,2,0 3. Prettify,Parson (C),canada.json,81.593000,1409040,1409040,2,0 3. Prettify,Parson (C),citm_catalog.json,17.450000,933904,933904,2,0 3. Prettify,Parson (C),twitter.json,12.162000,933904,933904,2,0 4. Statistics,Parson (C),canada.json,0.965000,0,0,0,0 4. Statistics,Parson (C),citm_catalog.json,0.845000,0,0,0,0 4. Statistics,Parson (C),twitter.json,0.997000,0,0,0,0 7. Code size,Parson (C),jsonstat,0,0,0,0,43280 1. Parse,PicoJSON (C++),canada.json,97.212000,5151952,5404112,435407,0 1. Parse,PicoJSON (C++),citm_catalog.json,31.023000,3003056,3003088,211748,0 1. Parse,PicoJSON (C++),twitter.json,12.021000,1584624,2069600,67548,0 2. Stringify,PicoJSON (C++),canada.json,71.546000,4194336,5922848,18,0 2. Stringify,PicoJSON (C++),citm_catalog.json,5.449000,933920,1327136,16,0 2. Stringify,PicoJSON (C++),twitter.json,3.167000,933920,1327136,16,0 4. Statistics,PicoJSON (C++),canada.json,0.589000,0,0,0,0 4. Statistics,PicoJSON (C++),citm_catalog.json,0.212000,0,0,0,0 4. Statistics,PicoJSON (C++),twitter.json,0.090000,0,0,0,0 7. Code size,PicoJSON (C++),jsonstat,0,0,0,0,34812 6. SaxStatistics,pjson (C),canada.json,3.831000,0,256,1,0 6. SaxStatistics,pjson (C),citm_catalog.json,2.597000,0,256,1,0 6. SaxStatistics,pjson (C),twitter.json,1.192000,0,1536,3,0 7. Code size,pjson (C),jsonstat,0,0,0,0,15124 1. Parse,POCO (C++),canada.json,149.630000,9670816,11932368,1033568,0 1. Parse,POCO (C++),citm_catalog.json,49.274000,5147472,6884672,317007,0 1. Parse,POCO (C++),twitter.json,19.643000,1685792,2628368,103458,0 2. Stringify,POCO (C++),canada.json,27.574000,2252832,6447136,27,0 2. Stringify,POCO (C++),citm_catalog.json,12.410000,933920,1867808,26212,0 2. Stringify,POCO (C++),twitter.json,10.114000,933920,1867808,19069,0 3. Prettify,POCO (C++),canada.json,127.455000,8273952,20856864,29,0 3. Prettify,POCO (C++),citm_catalog.json,35.281000,2252832,6447136,26214,0 3. Prettify,POCO (C++),twitter.json,15.230000,933920,2662432,19070,0 4. Statistics,POCO (C++),canada.json,1.858000,0,0,0,0 4. Statistics,POCO (C++),citm_catalog.json,0.663000,0,64,324,0 4. Statistics,POCO (C++),twitter.json,0.416000,0,464,1901,0 5. Sax Round-trip,POCO (C++),canada.json,93.503000,1409056,4919504,23,0 5. Sax Round-trip,POCO (C++),citm_catalog.json,26.711000,933920,3059920,2161,0 5. Sax Round-trip,POCO (C++),twitter.json,15.809000,466976,2265328,3826,0 6. SaxStatistics,POCO (C++),canada.json,44.089000,0,2261216,7,0 6. SaxStatistics,POCO (C++),citm_catalog.json,15.023000,0,1736992,2146,0 6. SaxStatistics,POCO (C++),twitter.json,6.888000,0,942768,3811,0 7. Code size,POCO (C++),jsonstat,0,0,0,0,27996 1. Parse,Qt (C++),canada.json,114.775000,48,48,2,0 1. Parse,Qt (C++),citm_catalog.json,7.052000,48,48,2,0 1. Parse,Qt (C++),twitter.json,3.130000,48,48,2,0 2. Stringify,Qt (C++),canada.json,125.382000,16,16,1,0 2. Stringify,Qt (C++),citm_catalog.json,17.609000,16,16,1,0 2. Stringify,Qt (C++),twitter.json,9.194000,16,16,1,0 3. Prettify,Qt (C++),canada.json,135.625000,16,16,1,0 3. Prettify,Qt (C++),citm_catalog.json,21.172000,16,16,1,0 3. Prettify,Qt (C++),twitter.json,9.963000,16,16,1,0 4. Statistics,Qt (C++),canada.json,3.271000,0,0,0,0 4. Statistics,Qt (C++),citm_catalog.json,2.965000,0,0,0,0 4. Statistics,Qt (C++),twitter.json,2.361000,0,0,0,0 7. Code size,Qt (C++),jsonstat,0,0,0,0,18188 1. Parse,RapidJSON_AutoUTF (C++),canada.json,7.037000,2954432,3347920,61,0 1. Parse,RapidJSON_AutoUTF (C++),citm_catalog.json,5.407000,1123008,1131472,29,0 1. Parse,RapidJSON_AutoUTF (C++),twitter.json,3.684000,792768,798992,25,0 2. Stringify,RapidJSON_AutoUTF (C++),canada.json,15.540000,2875472,2876000,28,0 2. Stringify,RapidJSON_AutoUTF (C++),citm_catalog.json,2.152000,569424,569952,24,0 2. Stringify,RapidJSON_AutoUTF (C++),twitter.json,1.966000,569424,569952,24,0 3. Prettify,RapidJSON_AutoUTF (C++),canada.json,35.263000,9699408,9699936,31,0 3. Prettify,RapidJSON_AutoUTF (C++),citm_catalog.json,6.251000,1917008,1917536,27,0 3. Prettify,RapidJSON_AutoUTF (C++),twitter.json,3.110000,852048,852576,25,0 4. Statistics,RapidJSON_AutoUTF (C++),canada.json,0.492000,0,0,0,0 4. Statistics,RapidJSON_AutoUTF (C++),citm_catalog.json,0.148000,0,0,0,0 4. Statistics,RapidJSON_AutoUTF (C++),twitter.json,0.057000,0,0,0,0 5. Sax Round-trip,RapidJSON_AutoUTF (C++),canada.json,21.118000,64,2876272,30,0 5. Sax Round-trip,RapidJSON_AutoUTF (C++),citm_catalog.json,7.053000,64,570224,26,0 5. Sax Round-trip,RapidJSON_AutoUTF (C++),twitter.json,5.338000,64,570544,28,0 6. SaxStatistics,RapidJSON_AutoUTF (C++),canada.json,5.904000,0,272,2,0 6. SaxStatistics,RapidJSON_AutoUTF (C++),citm_catalog.json,4.811000,0,272,2,0 6. SaxStatistics,RapidJSON_AutoUTF (C++),twitter.json,3.435000,0,592,4,0 7. Code size,RapidJSON_AutoUTF (C++),jsonstat,0,0,0,0,38508 1. Parse,RapidJSON_FullPrec (C++),canada.json,12.901000,2917568,3216848,61,0 1. Parse,RapidJSON_FullPrec (C++),citm_catalog.json,2.243000,1123008,1131472,29,0 1. Parse,RapidJSON_FullPrec (C++),twitter.json,1.310000,792768,798992,25,0 2. Stringify,RapidJSON_FullPrec (C++),canada.json,9.469000,2875472,2876000,28,0 2. Stringify,RapidJSON_FullPrec (C++),citm_catalog.json,1.161000,569424,569952,24,0 2. Stringify,RapidJSON_FullPrec (C++),twitter.json,0.766000,688208,688736,21,0 3. Prettify,RapidJSON_FullPrec (C++),canada.json,14.339000,9699408,9699936,31,0 3. Prettify,RapidJSON_FullPrec (C++),citm_catalog.json,1.863000,1917008,1917536,27,0 3. Prettify,RapidJSON_FullPrec (C++),twitter.json,1.015000,1093712,1094240,22,0 4. Statistics,RapidJSON_FullPrec (C++),canada.json,0.479000,0,0,0,0 4. Statistics,RapidJSON_FullPrec (C++),citm_catalog.json,0.152000,0,0,0,0 4. Statistics,RapidJSON_FullPrec (C++),twitter.json,0.060000,0,0,0,0 5. Sax Round-trip,RapidJSON_FullPrec (C++),canada.json,21.649000,2875472,2876272,30,0 5. Sax Round-trip,RapidJSON_FullPrec (C++),citm_catalog.json,3.029000,569424,570224,26,0 5. Sax Round-trip,RapidJSON_FullPrec (C++),twitter.json,1.867000,688208,689328,25,0 6. SaxStatistics,RapidJSON_FullPrec (C++),canada.json,11.796000,0,272,2,0 6. SaxStatistics,RapidJSON_FullPrec (C++),citm_catalog.json,1.991000,0,272,2,0 6. SaxStatistics,RapidJSON_FullPrec (C++),twitter.json,1.086000,0,592,4,0 7. Code size,RapidJSON_FullPrec (C++),jsonstat,0,0,0,0,31248 1. Parse,RapidJSON_Insitu (C++),canada.json,5.197000,5792960,6091968,60,0 1. Parse,RapidJSON_Insitu (C++),citm_catalog.json,1.922000,3932352,3940544,27,0 1. Parse,RapidJSON_Insitu (C++),twitter.json,0.995000,1097408,1103040,17,0 2. Stringify,RapidJSON_Insitu (C++),canada.json,9.307000,2875472,2876000,28,0 2. Stringify,RapidJSON_Insitu (C++),citm_catalog.json,1.120000,569424,569952,24,0 2. Stringify,RapidJSON_Insitu (C++),twitter.json,0.809000,688208,688736,21,0 3. Prettify,RapidJSON_Insitu (C++),canada.json,13.841000,9699408,9699936,31,0 3. Prettify,RapidJSON_Insitu (C++),citm_catalog.json,2.017000,1917008,1917536,27,0 3. Prettify,RapidJSON_Insitu (C++),twitter.json,1.157000,1093712,1094240,22,0 4. Statistics,RapidJSON_Insitu (C++),canada.json,0.480000,0,0,0,0 4. Statistics,RapidJSON_Insitu (C++),citm_catalog.json,0.155000,0,0,0,0 4. Statistics,RapidJSON_Insitu (C++),twitter.json,0.065000,0,0,0,0 5. Sax Round-trip,RapidJSON_Insitu (C++),canada.json,14.693000,2875472,5751440,30,0 5. Sax Round-trip,RapidJSON_Insitu (C++),citm_catalog.json,2.871000,569424,3445392,26,0 5. Sax Round-trip,RapidJSON_Insitu (C++),twitter.json,1.842000,688208,1323664,23,0 6. SaxStatistics,RapidJSON_Insitu (C++),canada.json,4.484000,0,2875440,2,0 6. SaxStatistics,RapidJSON_Insitu (C++),citm_catalog.json,1.692000,0,2875440,2,0 6. SaxStatistics,RapidJSON_Insitu (C++),twitter.json,0.930000,0,634928,2,0 7. Code size,RapidJSON_Insitu (C++),jsonstat,0,0,0,0,31248 1. Parse,RapidJSON (C++),canada.json,4.755000,2917568,3216848,61,0 1. Parse,RapidJSON (C++),citm_catalog.json,1.950000,1123008,1131472,29,0 1. Parse,RapidJSON (C++),twitter.json,1.227000,792768,798992,25,0 2. Stringify,RapidJSON (C++),canada.json,9.338000,2875472,2876000,28,0 2. Stringify,RapidJSON (C++),citm_catalog.json,1.125000,569424,569952,24,0 2. Stringify,RapidJSON (C++),twitter.json,0.746000,688208,688736,21,0 3. Prettify,RapidJSON (C++),canada.json,13.793000,9699408,9699936,31,0 3. Prettify,RapidJSON (C++),citm_catalog.json,1.877000,1917008,1917536,27,0 3. Prettify,RapidJSON (C++),twitter.json,1.020000,1093712,1094240,22,0 4. Statistics,RapidJSON (C++),canada.json,0.480000,0,0,0,0 4. Statistics,RapidJSON (C++),citm_catalog.json,0.161000,0,0,0,0 4. Statistics,RapidJSON (C++),twitter.json,0.063000,0,0,0,0 5. Sax Round-trip,RapidJSON (C++),canada.json,13.508000,2875472,2876272,30,0 5. Sax Round-trip,RapidJSON (C++),citm_catalog.json,2.699000,569424,570224,26,0 5. Sax Round-trip,RapidJSON (C++),twitter.json,1.936000,688208,689328,25,0 6. SaxStatistics,RapidJSON (C++),canada.json,3.675000,0,272,2,0 6. SaxStatistics,RapidJSON (C++),citm_catalog.json,1.588000,0,272,2,0 6. SaxStatistics,RapidJSON (C++),twitter.json,1.055000,0,592,4,0 7. Code size,RapidJSON (C++),jsonstat,0,0,0,0,31248 1. Parse,sajson (C++),canada.json,6.225000,20885616,20885616,4,0 1. Parse,sajson (C++),citm_catalog.json,1.981000,20885616,20885616,4,0 1. Parse,sajson (C++),twitter.json,0.901000,10551408,10551408,4,0 4. Statistics,sajson (C++),canada.json,0.690000,0,0,0,0 4. Statistics,sajson (C++),citm_catalog.json,0.213000,0,0,0,0 4. Statistics,sajson (C++),twitter.json,0.076000,0,0,0,0 7. Code size,sajson (C++),jsonstat,0,0,0,0,34880 1. Parse,Scheredom json.h (C),canada.json,9.418000,18010128,18010128,2,0 1. Parse,Scheredom json.h (C),citm_catalog.json,5.077000,3825680,3825680,2,0 1. Parse,Scheredom json.h (C),twitter.json,2.351000,2875408,2875408,2,0 2. Stringify,Scheredom json.h (C),canada.json,29.355000,2875408,2875408,2,0 2. Stringify,Scheredom json.h (C),citm_catalog.json,4.034000,851984,851984,2,0 2. Stringify,Scheredom json.h (C),twitter.json,0.978000,851984,851984,2,0 3. Prettify,Scheredom json.h (C),canada.json,33.213000,9699344,9699344,2,0 3. Prettify,Scheredom json.h (C),citm_catalog.json,4.930000,2875408,2875408,2,0 3. Prettify,Scheredom json.h (C),twitter.json,1.214000,851984,851984,2,0 4. Statistics,Scheredom json.h (C),canada.json,0.460000,0,0,0,0 4. Statistics,Scheredom json.h (C),citm_catalog.json,0.141000,0,0,0,0 4. Statistics,Scheredom json.h (C),twitter.json,0.065000,0,0,0,0 7. Code size,Scheredom json.h (C),jsonstat,0,0,0,0,24960 1. Parse,SimpleJSON (C++),canada.json,35.418000,5817456,15581872,393512,0 1. Parse,SimpleJSON (C++),citm_catalog.json,26.075000,4226096,13926848,213739,0 1. Parse,SimpleJSON (C++),twitter.json,17.892000,2636016,5512368,111912,0 2. Stringify,SimpleJSON (C++),canada.json,166.824000,3825680,27709456,393342,0 2. Stringify,SimpleJSON (C++),citm_catalog.json,26.295000,1048592,9187440,102242,0 2. Stringify,SimpleJSON (C++),twitter.json,12.511000,1376272,6720528,43987,0 4. Statistics,SimpleJSON (C++),canada.json,0.490000,0,0,0,0 4. Statistics,SimpleJSON (C++),citm_catalog.json,0.269000,0,0,0,0 4. Statistics,SimpleJSON (C++),twitter.json,0.141000,0,0,0,0 7. Code size,SimpleJSON (C++),jsonstat,0,0,0,0,58404 1. Parse,strdup (C),canada.json,0.111000,2875424,2875424,2,0 1. Parse,strdup (C),citm_catalog.json,0.074000,2875424,2875424,2,0 1. Parse,strdup (C),twitter.json,0.027000,852000,852000,2,0 2. Stringify,strdup (C),canada.json,0.103000,2875408,2875408,2,0 2. Stringify,strdup (C),citm_catalog.json,0.074000,2875408,2875408,2,0 2. Stringify,strdup (C),twitter.json,0.028000,851984,851984,2,0 7. Code size,strdup (C),jsonstat,0,0,0,0,15760 1. Parse,taocpp/json (C++11),canada.json,25.621000,6925328,9856016,114202,0 1. Parse,taocpp/json (C++11),citm_catalog.json,10.266000,3005936,5881328,32847,0 1. Parse,taocpp/json (C++11),twitter.json,5.343000,1574912,2426880,19975,0 2. Stringify,taocpp/json (C++11),canada.json,21.560000,2875424,6701088,19,0 2. Stringify,taocpp/json (C++11),citm_catalog.json,6.078000,852000,1703968,17,0 2. Stringify,taocpp/json (C++11),twitter.json,3.359000,852000,1703968,17,0 3. Prettify,taocpp/json (C++11),canada.json,49.216000,9699360,27709472,56064,0 3. Prettify,taocpp/json (C++11),citm_catalog.json,12.423000,2875424,6701120,18296,0 3. Prettify,taocpp/json (C++11),twitter.json,4.416000,852000,1703968,1130,0 4. Statistics,taocpp/json (C++11),canada.json,1.044000,0,0,0,0 4. Statistics,taocpp/json (C++11),citm_catalog.json,0.283000,0,0,0,0 4. Statistics,taocpp/json (C++11),twitter.json,0.114000,0,0,0,0 7. Code size,taocpp/json (C++11),jsonstat,0,0,0,0,105256 1. Parse,tunnuz/JSON++ (C++),canada.json,204.193000,19911648,45203152,833845,0 1. Parse,tunnuz/JSON++ (C++),citm_catalog.json,74.231000,6065024,16840512,356191,0 1. Parse,tunnuz/JSON++ (C++),twitter.json,38.321000,2674704,7032928,163534,0 2. Stringify,tunnuz/JSON++ (C++),canada.json,184.850000,2875424,105192848,391870,0 2. Stringify,tunnuz/JSON++ (C++),citm_catalog.json,42.460000,1376288,14245328,165982,0 2. Stringify,tunnuz/JSON++ (C++),twitter.json,20.707000,634912,6947056,77541,0 4. Statistics,tunnuz/JSON++ (C++),canada.json,92.893000,0,101932368,391851,0 4. Statistics,tunnuz/JSON++ (C++),citm_catalog.json,28.287000,0,11749536,165964,0 4. Statistics,tunnuz/JSON++ (C++),twitter.json,15.944000,0,5440992,77524,0 7. Code size,tunnuz/JSON++ (C++),jsonstat,0,0,0,0,73704 1. Parse,udp/json-parser (C),canada.json,29.536000,12047840,12047840,223233,0 1. Parse,udp/json-parser (C),citm_catalog.json,13.058000,3420464,3420464,51205,0 1. Parse,udp/json-parser (C),twitter.json,4.744000,1726752,1726752,20237,0 2. Stringify,udp/json-parser (C),canada.json,42.068000,1376272,1376272,2,0 2. Stringify,udp/json-parser (C),citm_catalog.json,1.348000,634896,634896,2,0 2. Stringify,udp/json-parser (C),twitter.json,1.096000,634896,634896,2,0 3. Prettify,udp/json-parser (C),canada.json,44.839000,7958544,7958544,2,0 3. Prettify,udp/json-parser (C),citm_catalog.json,1.602000,1929232,1929232,2,0 3. Prettify,udp/json-parser (C),twitter.json,1.195000,921616,921616,2,0 4. Statistics,udp/json-parser (C),canada.json,0.644000,0,0,0,0 4. Statistics,udp/json-parser (C),citm_catalog.json,0.174000,0,0,0,0 4. Statistics,udp/json-parser (C),twitter.json,0.077000,0,0,0,0 7. Code size,udp/json-parser (C),jsonstat,0,0,0,0,34868 1. Parse,ujson4c (C),canada.json,5.990000,12656672,21663776,11,0 1. Parse,ujson4c (C),citm_catalog.json,1.841000,4698144,12656672,10,0 1. Parse,ujson4c (C),twitter.json,1.114000,4698144,7225376,10,0 4. Statistics,ujson4c (C),canada.json,1.097000,0,0,0,0 4. Statistics,ujson4c (C),citm_catalog.json,0.488000,0,0,0,0 4. Statistics,ujson4c (C),twitter.json,0.165000,0,0,0,0 7. Code size,ujson4c (C),jsonstat,0,0,0,0,30888 1. Parse,ujson (C++),canada.json,25.187000,34371936,34372000,112763,0 1. Parse,ujson (C++),citm_catalog.json,8.205000,16233728,16234304,54373,0 1. Parse,ujson (C++),twitter.json,3.756000,2796288,2796704,12120,0 2. Stringify,ujson (C++),canada.json,18.822000,2097184,3473440,17,0 2. Stringify,ujson (C++),citm_catalog.json,4.027000,1376288,1900576,16,0 2. Stringify,ujson (C++),twitter.json,2.006000,921632,1445920,15,0 3. Prettify,ujson (C++),canada.json,22.543000,9007136,16965664,19,0 3. Prettify,ujson (C++),citm_catalog.json,4.478000,2097184,3473440,17,0 3. Prettify,ujson (C++),twitter.json,2.260000,921632,1445920,15,0 4. Statistics,ujson (C++),canada.json,1.968000,0,0,0,0 4. Statistics,ujson (C++),citm_catalog.json,0.750000,0,0,0,0 4. Statistics,ujson (C++),twitter.json,0.302000,0,0,0,0 7. Code size,ujson (C++),jsonstat,0,0,0,0,126996 1. Parse,V8 (C++),canada.json,22.279000,8059120,8067344,43,0 1. Parse,V8 (C++),citm_catalog.json,22.349000,5396952,5396984,477,0 1. Parse,V8 (C++),twitter.json,7.907000,2515104,2515136,1042,0 2. Stringify,V8 (C++),canada.json,26.085000,4397504,18446744073709549456,121,0 2. Stringify,V8 (C++),citm_catalog.json,5.615000,2433296,18446744073709520896,99,0 2. Stringify,V8 (C++),twitter.json,2.530000,1173736,18446744073709548032,21,0 3. Prettify,V8 (C++),canada.json,159.595000,109181304,118196632,1858,0 3. Prettify,V8 (C++),citm_catalog.json,21.680000,11433720,18446744073709540816,713,0 3. Prettify,V8 (C++),twitter.json,7.331000,6452264,18446744073709547264,628,0 4. Statistics,V8 (C++),canada.json,12.529000,0,2678816,352,0 4. Statistics,V8 (C++),citm_catalog.json,16.468000,18446744073709511744,1361104,65831,0 4. Statistics,V8 (C++),twitter.json,4.636000,18446744073709522752,528336,7658,0 7. Code size,V8 (C++),jsonstat,0,0,0,0,13336932 1. Parse,Vinenthz/libjson (C),canada.json,77.479000,4916160,4945104,334389,0 1. Parse,Vinenthz/libjson (C),citm_catalog.json,20.334000,2372400,2401344,153901,0 1. Parse,Vinenthz/libjson (C),twitter.json,9.359000,1305728,1334672,72620,0 2. Stringify,Vinenthz/libjson (C),canada.json,61.512000,4194336,4194336,13,0 2. Stringify,Vinenthz/libjson (C),citm_catalog.json,4.067000,524320,524320,10,0 2. Stringify,Vinenthz/libjson (C),twitter.json,3.188000,524320,524320,10,0 3. Prettify,Vinenthz/libjson (C),canada.json,61.960000,4194336,4194336,13,0 3. Prettify,Vinenthz/libjson (C),citm_catalog.json,4.132000,524320,524320,10,0 3. Prettify,Vinenthz/libjson (C),twitter.json,3.187000,524320,524320,10,0 4. Statistics,Vinenthz/libjson (C),canada.json,0.516000,0,0,0,0 4. Statistics,Vinenthz/libjson (C),citm_catalog.json,0.192000,0,0,0,0 4. Statistics,Vinenthz/libjson (C),twitter.json,0.095000,0,0,0,0 5. Sax Round-trip,Vinenthz/libjson (C),canada.json,14.748000,4194336,4198688,15,0 5. Sax Round-trip,Vinenthz/libjson (C),citm_catalog.json,10.265000,524320,528672,12,0 5. Sax Round-trip,Vinenthz/libjson (C),twitter.json,5.765000,524320,528672,12,0 6. SaxStatistics,Vinenthz/libjson (C),canada.json,11.467000,0,4352,2,0 6. SaxStatistics,Vinenthz/libjson (C),citm_catalog.json,7.950000,0,4352,2,0 6. SaxStatistics,Vinenthz/libjson (C),twitter.json,3.061000,0,4352,2,0 7. Code size,Vinenthz/libjson (C),jsonstat,0,0,0,0,26036 1. Parse,YAJL (C),canada.json,75.623000,12893040,12895472,501567,0 1. Parse,YAJL (C),citm_catalog.json,19.546000,3031456,3035936,189685,0 1. Parse,YAJL (C),twitter.json,8.280000,1459072,1463552,77047,0 2. Stringify,YAJL (C),canada.json,72.834000,4198976,4198976,15,0 2. Stringify,YAJL (C),citm_catalog.json,3.751000,528960,528960,12,0 2. Stringify,YAJL (C),twitter.json,2.051000,528960,528960,12,0 3. Prettify,YAJL (C),canada.json,91.121000,16781888,16781888,17,0 3. Prettify,YAJL (C),citm_catalog.json,8.037000,2101824,2101824,14,0 3. Prettify,YAJL (C),twitter.json,2.965000,1053248,1053248,13,0 4. Statistics,YAJL (C),canada.json,0.701000,0,0,0,0 4. Statistics,YAJL (C),citm_catalog.json,0.248000,0,0,0,0 4. Statistics,YAJL (C),twitter.json,0.118000,0,0,0,0 5. Sax Round-trip,YAJL (C),canada.json,112.826000,4198976,4203456,22,0 5. Sax Round-trip,YAJL (C),citm_catalog.json,8.118000,528960,533440,19,0 5. Sax Round-trip,YAJL (C),twitter.json,3.578000,528960,533440,19,0 6. SaxStatistics,YAJL (C),canada.json,40.900000,0,4480,7,0 6. SaxStatistics,YAJL (C),citm_catalog.json,4.741000,0,4480,7,0 6. SaxStatistics,YAJL (C),twitter.json,1.706000,0,4480,7,0 7. Code size,YAJL (C),jsonstat,0,0,0,0,44660
JPEG
PNG
PDF
SVG


| {{clinicalStudy.id}} |
{{clinicalStudy.studyIdentifier}} |
{{clinicalStudy.phase}} |
{{clinicalStudy.status}} |
{{clinicalStudy.sequence}} |
{{clinicalStudy.studyYear}} |
{{clinicalStudy.name}} |
{{clinicalStudy.design}} |
{{clinicalStudy.numberOfCohorts}} |
{{clinicalStudy.intendedSubjectsPerCohort}} |
{{clinicalStudy.populationDiseaseState}} |
{{clinicalStudy.minimumAge}} |
{{clinicalStudy.maximumAge}} |
{{clinicalStudy.subjectsEnrolled}} |
{{clinicalStudy.femalesEligible}} |
{{clinicalStudy.malesEligible}} |
{{clinicalStudy.studyShortName}} |
{{clinicalStudy.projectManager}} |
{{clinicalStudy.principalPhysician}} |
{{clinicalStudy.researchRepresentative}} |
{{clinicalStudy.analysisRepresentative}} |
{{clinicalStudy.dataManager}} |
|
|


@import views.html.helpers.sqlBlock @import org.joda.time.DateTime @(title: String, publishDate: DateTime, tags: List[String])
I've been working on this data model and workflow specifically for a scientific data platforms in order to simplify contributions from casual users without sacrificing the platform's overall data integrity. This post describes how to build a moderated workflow that tracks every change made by users to the data model, allowing moderators to guide input into your data platform made by common users.
This model puts all versions of an entity on the same playing field to allow all previous versions to be accessed in the same way as the current version. While this increases query complexity, it makes it possible to do full searches against the database for the most recent entity version at a given point in time. So instead of releasing your database in build cycles, you can release the data in real time while maintaining consistent results for a given query. This is a powerful feature for scientific data platforms, allowing replication of down-steam analyses performed on query results without requiring a complete snapshot of the whole database at the time of analysis. As a result, any specific query will always return the same results, despite the underlying data being in a constant state of revision.
This model operates on entities in a CRUD-like fashion, but instead of performing Update
operations on
entities, a Create
operation is used to make a new version of the entity. In this way, CRUD operations are
performed on entity versions rather than entities. This allows us to expose only Create
operations to
basic users. For example, to delete an entity, a basic user would Create
a new version having a
status = "deleted"
(soft delete), and a moderator would then Update
the version
revisionStatus = "accepted"
. This model allows for complete version tracking - including
blame-ability for all changes.
For a real-time crowd sourced data platform, we need to be able to:
For this example, I am going to show a simple model for a platform that allows users to create collections of files. Each Post entity can have many File entities.
| Name | Type | Comment |
|---|---|---|
| Id | Guid | ID for the specific Post version |
| PostId | Guid | Global ID for the post – all versions share the same global ID |
| Status | Enum {public, deleted} | Indicator of the state of the version (used for soft deletion) |
| AuthoredAt | DateTime | When the post version was created |
| Author | User | User entity that created this post version |
| AuthorComment | String | Comment attached to this post version for reviewer to read |
| ReviewStatus | Enum {pending, accepted, rejected} | Indicator of the review status of the post version. Pending versions have not yet been reviewed by a moderator |
| ReviewedAt | DateTime | When the post version was reviewed |
| Reviewer | User | User entity that reviewed this post version |
| ReviewerComment | String | Comment made by reviewer for author |
| IsCurrent | Boolean | If the entity is the most recent version – this is a hack to make searching faster for the most current versions |
| Description | String | Description of the post |
| Files | FileCollection | List of File items related to this post |
| Name | Type | Comment |
|---|---|---|
| Id | Guid | ID for the File entity |
| PostVersionId | Guid | ID for the parent post version |
| Filename | String | Filename |
| Description | String | Description of the File |
| Data | Binary | Binary encoded file data |
| Name | Type | Comment |
|---|---|---|
| Id | Guid | ID for the User entity |
| Username | String | Username |
| DispalyName | String | The user's name as they would like it to appear to the program. |
In this example, you can see that File
entities are subordinate to Post
entities.
Therefore, File entities do not need all the meta data that Post
entities do. However, there
are many cases where you might want subordinate entities to be managed in the same way as the parent entity.
In order to achieve this functionality, you would need to apply all meta data and work flow processes to
the subordinate entities you want to be tracked.
Below are details for the common state transitions of the model.
PostVersion
entityPostVersion
entity meta data to accept or rejectPostVersion
entity with an existing Post IDPostVersion
meta data to accept or rejectPostVersion
entity with existing Post ID and sets "status" to "deleted"PostVersion
meta data to accept or rejectThese examples show ORM code for fetching data using this model (it is Doctrine 2 ORM DQL code, which should be familiar to anyone using any Hibernate-like query languages). It should be easy enough to convert it to SQL if needed.
The basic idea is to subset versions based on a target date, then select the max accepted version (this gives you the current version at that time point), then filter across current versions based on your selection criteria. This is shown in the figure below (the two subset steps can be combined into one SQL sub-query):
All queries against this model can be thought of as simple sub-setting of entity space, each version being a unique element.
(Note: this returns all versions, including rejected versions and soft-deleted versions)
As you can see, the first WHERE
clause selects all PostVersion
entities reviewed
since the given time point ("2011-05-05"). Then additional search criteria can be added to the top level
query to search within the subset. Though the sub-query has a performance hit, it allows queries across
versions at a particular time point. Since the query results are not expected to change when new data
is added, they can be cached without expiration.
For fetches of the most recent versions ("since" datetime = now), we can add an indexed field to find the most recent version without a sub-query. This works great for when you don't need the most recent versions at a particular time point and just want to fetch the most-recent versions of all current posts.
@sqlBlock( """ SELECT PostVersion FROM Application\Model\PostVersion PostVersion JOIN PostVersion.Author Author JOIN PostVersion.Reviewer Reviewer JOIN PostVersion.FilePostVersion.File File WHERE PostVersion.IsCurrent = true AND PostVersion.Status = "public" AND PostVersion.ReviewStatus = "accepted" AND PostVersion.Author.Username = "Brady" AND ( PostVersion.File.Description LIKE "%searchTerm%" OR PostVersion.File.Description LIKE "%searchTerm%" ) ORDER BY PostVersion.AuthoredAt DESC """ )The IsCurrent
field has to be updated for all versions when a new version is accepted for this
to work. In most cases, you will probably want fetches to be fast at the expense of slowed inserts.
We need to be careful to keep PUT
and DELETE
operations idempotent.
That means having a user PUT multiple times should not create multiple new versions of a post.
Since updating an resource in this workflow is actually creating a new version, API users should not
have access to PUT operations except on version meta data. Similarly, DELETE
operations should
be replaced by a version POST
having the new deletion status.
| Method | URI | Action |
|---|---|---|
| GET | /posts? | List only the latest post versions matching query |
| POST | /posts | Create a new post version with a unique PostId |
| GET | /posts/:id/versions? | List all versions for this post matching query |
| POST | /posts/:id/versions | Create a new post version (this is what should be used to submit an update to an item – NOT PUT) |
| PUT | /posts/:id/versions/:vid | Update meta data fields (ReviewStatus, etc...). Should give permission denied (403) if user is not a moderator. |
| GET | /posts/versions? | List all post versions matching search criteria |
| POST | /posts/versions | Create a new post version |
| GET | /posts/versions/:id | Get data for a single post version |
| PUT | /posts/versions/:id | Update meta data fields (ReviewStatus, etc...). Should give permission denied (403) if user is not a moderator. |
Fetch all versions of a post made by user "brady":
GET /posts/3/versions?Author.Username=brady
Fetch all versions of a particular post made by user "brady":
GET /posts-versions?PostId=3&Author.Username=brady
Fetch all post versions reviewed by user "brady" across all posts:
GET /posts/versions?Author.Username=brady
If you want to add a layer of moderation to your data API in order to open up your database to multiple users, this model and workflow should make things pretty easy. It reduces all "edit" operations to "create version" operations, and enables you to fetch the most recent accepted versions at any time point. I hope this set-up helps you to open your databases up to the masses.
So far this has worked well for me, but I'm sure there could be better ways of doing this kind of thing out there - let me know if you have one!


HOME FRIES A film review by Steve Rhodes Copyright 1998 Steve Rhodes RATING (0 TO ****): ** 1/2
So what is worse? Trailers that tell you too much about an upcoming movie or ones that mislead you?
HOME FRIES is in the latter category. The trailers make you think it is a light-hearted, romantic comedy, but the movie features a family that settles it arguments with military, attack helicopters. Even if the film isn't quite what it seemed to be, it is extremely cute, filled with lovable, oddball characters within a ridiculously crazy plot.
A sweet-as-Apple-pie Drew Barrymore plays the lead, Sally. Poor Sally is a very pregnant unwed mother. The father of her child is married and doesn't support her, so she works at the local Burger Matic. With her head sporting ten-pounds of red curls, she looks like she just came back from an audition for the musical "Annie."
In the first part of the story, her lover's two stepsons, Dorian (Luke Wilson) and Angus (Jake Busey), are sent by their mother, Mrs. Lever (Catherine O'Hara), to kill their stepfather. Mrs. Lever, who specializes in feigned grief, claims she didn't really want him killed.
Meanwhile, back at Burger Matic, Sally's headphones get some interference that lets her hear part of the helicopter attack. Dorian then goes to work undercover at the fast food restaurant to determine exactly what Sally knows. In the process they fall in love.
As Dorian, Luke Wilson delivers a touching portrait of a troubled guy. His brow constantly furrowed, he comes to love Sally and her unborn child, but he is troubled by the implications of it all. Sally sums up their predicament on the way to the birthing room. "You can't be the father and the brother at the same time!" she cautions. "That's the kind of thing that messes kids up."
Fast food, a prime part of Americana that movies generally ignore, plays a central role in this comedy. Dorian chants the hamburger recipe as a form of mantra. And the funniest scenes in the movie happen at the Burger Matic. The best is a simple one in which Dorian is taught the precise way that they make their burgers.
HOME FRIES isn't much of a movie, but it is a charming one thanks to some lovely performances. Where else could you get a film in which the most romantic scene happens at a Lamaze class between two people who only recently met?
HOME FRIES runs 1:33. It is rated PG-13 for mature themes and some sexual humor and would be fine for kids around 11 and up.
Email<EMAIL_ADDRESS>Web: www.InternetReviews.com
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Morph
Morph is a web framework built on the notion of transforming requests and responses. It is built ontop of Piaf as a high performance server implementation that abstracts some of the lower level concepts.
Package documentation
Morph currently has 2 packages:
- Morph, the core package
- morph_graphql_server, a nice way to build graphql servers ontop of Morph.


8.6. Skip Lists (WORK IN PROGRESS)¶
8.6.1. Skip Lists¶
This module presents a probabilistic search structure called the skip list. Like the BST, skip lists are designed to overcome a basic limitation of array-based and linked lists: Either search or update operations require linear time. The skip list is an example of a probabilistic data structure, because it makes some of its decisions at random.
Skip lists provide an alternative to the BST and related tree structures. The primary problem with the BST is that it may easily become unbalanced. The 2-3 Tree is guaranteed to remain balanced regardless of the order in which data values are inserted, but it is rather complicated to implement. The AVL tree and the splay tree are also guaranteed to provide good performance, but at the cost of added complexity as compared to the BST. The skip list is easier to implement than known balanced tree structures. The skip list is not guaranteed to provide good performance (where good performance is defined as \(\Theta(\log n)\) search, insertion, and deletion time), but it will provide good performance with extremely high probability (unlike the BST which has a good chance of performing poorly). As such it represents a good compromise between difficulty of implementation and performance.
We can continue adding pointers to selected nodes in this way — give a third pointer to every fourth node, give a fourth pointer to every eighth node, and so on—until we reach the ultimate of \(\log n\) pointers in the first and middle nodes for a list of \(n\) nodes. To search, start with the bottom row of pointers, going as far as possible and skipping many nodes at a time. Then, shift up to shorter and shorter steps as required. With this arrangement, the worst-case number of accesses is \(\Theta(\log n)\).
We will store with each skip list node an array
named forward
that stores the pointers.
Position forward[0]
stores a level 0 pointer,
forward[1]
stores a level 1 pointer, and so on. It also
uses a KVPair to store the key and record for the node.
The SkipNode class follows:
class SkipNode<K extends Comparable<K>, E> {
private KVPair<K, E> rec;
private SkipNode<K, E>[] forward;
public E element() {
return rec.value();
}
public K key() {
return rec.key();
}
@SuppressWarnings("unchecked")
public SkipNode(K key, E elem, int level) {
rec = new KVPair<K, E>(key, elem);
forward = new SkipNode[level + 1];
for (int i = 0; i < level; i++)
forward[i] = null;
}
public String toString() {
return rec.toString();
}
}
The skip list object includes data member level
that
stores the highest level for any node currently in the skip list.
The skip list stores a header node named head
with
level+1
pointers where the head level is initially 0 and the level
is set to -1 for the empty list. The start of the SkipList class follows:
class SkipList<K extends Comparable<K>, E> implements Dictionary<K, E> {
private SkipNode<K, E> head;
private int level;
private int size;
static private Random ran = new Random(); // Hold the Random class object
public SkipList() {
head = new SkipNode<K, E>(null, null, 0);
level = -1;
size = 0;
}
The find
function works as follows.
// Return the (first) matching matching element if one exists, null otherwise
public E find(K key) {
SkipNode<K, E> x = head; // Dummy header node
for (int i = level; i >= 0; i--) // For each level...
while ((x.forward[i] != null) && (x.forward[i].key().compareTo(key) < 0)) // go forward
x = x.forward[i]; // Go one last step
x = x.forward[0]; // Move to actual record, if it exists
if ((x != null) && (x.key().compareTo(key) == 0)) return x.element(); // Got it
else return null; // Its not there
}
The ideal skip list is organized so that (if the head node is not counted) half of the nodes have only one pointer, one quarter have two, one eighth have three, and so on. And ideally, the distances would be equally spaced; in effect this is a “perfectly balanced” skip list. Maintaining such balance would be expensive during the normal process of insertions and deletions. The key to skip lists is that we do not worry about any of this. Whenever inserting a node, we assign it a level (i.e., some number of pointers). The assignment is random, using a geometric distribution yielding a 50% probability that the node will have one pointer, a 25% probability that it will have two, and so on. The following function determines the level based on such a distribution.
// Pick a level using a geometric distribution
int randomLevel() {
int lev;
for (lev = 0; Math.abs(ran.nextInt()) % 2 == 0; lev++) // ran is random generator
; // Do nothing
return lev;
}
Once the proper level for the node has been determined, the next
step is to find where the node should be inserted and link it in as
appropriate at all of its levels.
Here is an implementation for inserting a new
value into the skip list followed by
a visualization of the process.
Note that we build an update
array as we progress through the skip
list, so that we can update the pointers for the nodes that will
precede the one being inserted.
/** Insert a key, element pair into the skip list */
public void insert(K key, E elem) {
int newLevel = randomLevel(); // New node's level
if (newLevel > level) // If new node is deeper
adjustHead(newLevel); // adjust the header
// Track end of level
SkipNode<K, E>[] update = new SkipNode[level + 1];
SkipNode<K, E> x = head; // Start at header node
for (int i = level; i >= 0; i--) { // Find insert position
while ((x.forward[i] != null) && (x.forward[i].key().compareTo(key) < 0))
x = x.forward[i];
update[i] = x; // Track end at level i
}
x = new SkipNode<K, E>(key, elem, newLevel);
for (int i = 0; i <= newLevel; i++) { // Splice into list
x.forward[i] = update[i].forward[i]; // Who x points to
update[i].forward[i] = x; // Who points to x
}
size++; // Increment dictionary size
}
private void adjustHead(int newLevel) {
SkipNode<K, E> temp = head;
head = new SkipNode<K, E>(null, null, newLevel);
for (int i = 0; i <= level; i++)
head.forward[i] = temp.forward[i];
level = newLevel;
}
The remove
function is similar to insertion in that the update
array is built as part of searching for the record to be deleted.
Then those nodes specified by the update array have their forward
pointers adjusted to point around the node being deleted.
A newly inserted node could have a high level generated by
randomLevel
, or a low level.
It is possible that many nodes in the skip list could have many
pointers, leading to unnecessary insert cost and yielding poor
(i.e., \(\Theta(n)\)) performance during search, because not many
nodes will be skipped.
Conversely, too many nodes could have a low level.
In the worst case, all nodes could be at level 0, equivalent to a
regular linked list.
If so, search will again require \(\Theta(n)\) time.
However, the probability that performance will be poor is quite low.
There is only one chance in 1024 that ten nodes in a row will be at
level 0.
The motto of probabilistic data structures such as the skip list is
“Don’t worry, be happy”.
We simply accept the results of randomLevel
and expect that
probability will eventually work in our favor.
The advantage of this approach is that the algorithms are simple,
while requiring only \(\Theta(\log n)\) time for all operations in
the average case.
For a skip list of size \(n\), the expected
memory usage is \(2n\).
This is because a level \(l\) node needs
\(l+1\) forward pointers, but occurs with probability \(2^{(l+1)}\).
So a skip list is expected to have
\(\sum_{l=0}^{l=\infty} (l+1)/2^{(l+1)}\) pointers, which is 2.
Thus, the number of pointers needed by both the BST and the skip list
are expected to be the same.
In practice, the skip list will probably have better performance than a BST storing the same data. The BST can have bad performance caused by the order in which data are inserted. For example, if \(n\) nodes are inserted into a BST in ascending order of their key values, then the BST will look like a linked list with the deepest node at depth \(n-1\). If the data inserted over the life of the BST could be randomly ordered, then the probability distribution for the cost of the insert and search operations would be similar to that of the skip list. The problem for the BST is that this randomization does not happen in fact, but rather the BST is constrained by the actual order of inputs and searches.
In contrast, the skip list’s performance does not depend on the order in which values are inserted into the list. In a sense, the data are “randomized” automatically as part of the skip list’s probabilistic behavior when the depths of the nodes are selected. As the number of nodes in the skip list increases, the probability of encountering the worst case decreases geometrically. Thus, the skip list illustrates a tension between the theoretical worst case (in this case, \(\Theta(n)\) for a skip list operation), and a rapidly increasing probability of average-case performance of \(\Theta(\log n)\), that characterizes probabilistic data structures.


libunique lets you send messages with commands to a running
instance using unique_app_send_message(). The commands can be either
predefined or custom. Some of the predefined libunique commands have
equivalents in GApplication. Instead of sending the UNIQUE_ACTIVATE
command, call g_application_activate()
, instead of sending the
UNIQUE_OPEN command, call g_application_open()
. The
UNIQUE_NEW and UNIQUE_CLOSE and user-defined commands don't
have direct replacement at this time.
As a replacement for custom commands, GApplication implements the
GActionGroup interface and lets you add a group of actions with
g_application_set_action_group()
. The actions can then be invoked,
either by using the D-Bus interface for GAction directly, or by
calling g_action_group_activate_action()
from another instance of
the GApplication. The GApplication documentation contains an
example for using GApplication with actions.
For more complex needs, GApplication supports passing entire commandlines to the running instance.


Calcs module (refraction_render.calcs
)¶
classes for solving Fermat’s principle:¶
|
Solver for light ray in a 2D Euclidian geometry for \(n=n(x,y)\). |
|
Solver for light ray in a 2D Polar geometry for \(n=n(s,y)\). |
|
Solver for light ray in a 2D Euclidian geometry with \(n=n(y)\). |
|
Solver for light ray in a 2D Polar geometry with \(n=n(y)\). |
classes for solving rays in atmospheric model:¶
|
Base class for Calculators. |
|
Calculator used for calculating rays on a spherical earth in an atmosphere. |
|
Calculator used for calculating rays on a sphere earth in no atmosphere. |
|
Calculator used for calculating rays on a flat earth in an atmosphere. |
Calculator used for calculating rays on a flat earth in no atmosphere. |
class for solving standard atmosphere¶
|
Object which calculates the standard atmospheric model. |