What the U.S. Postal Service Default Really Means - Businessweek
Aug 1, 2012 . An employee places change of address labels onto mail at the U.S. . Trying to Keep the Post Office From Going Bust . Businesses don't like uncertaintyand the only thing certain about the USPS is that its problems won't be fixed soon. . Follow us on Twitter · Join us on Facebook · Connect with us on .
http://www.businessweek.com/articles/2012-08-01/what-the-u-dot-s-dot-postal-service-default-really-means
35 Miles from Center
mercedes benz naples body shop


Polar bears Tagged for Tracking
{% for bear in bears %}
{{bear.bearID }}
This is a {{ bear.age_class }} aged bear
{{bear.bearID}}, a {{ bear.sex }} bear, who has has an tag in its' {{ bear.ear_applied }} ear,
with {{ bear.pTT_ID }} devise, and was
tagged at {{ bear.capture_lat }} and {{ bear.capture_long }}
{% endfor %}


JavaScript is disabled on your browser.
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
Prev Letter
Next Letter
Frames
No Frames
All Classes
A
B
C
D
E
F
G
H
I
J
L
M
O
P
R
S
T
U
X
T
templateName
- Variable in class com.geodrop.
GeodropRequest
The Mustache template name
TOKEN_NOT_VALID
- Static variable in class com.geodrop.
ErrorType
TOKEN_REQUEST
- Static variable in class com.geodrop.
Uri
toString()
- Method in class com.geodrop.DropPay.
ContentDeliveryMessage_Response
toString()
- Method in class com.geodrop.DropPay.
CustomerCheck_Response
toString()
- Method in class com.geodrop.DropPay.
CustomerWelcomeGoodbye_Response
toString()
- Method in class com.geodrop.DropPay.
EventObject.Call
toString()
- Method in class com.geodrop.DropPay.
EventObject.Click
toString()
- Method in class com.geodrop.DropPay.
EventObject.Detection
toString()
- Method in class com.geodrop.DropPay.
EventObject.Message
toString()
- Method in class com.geodrop.DropPay.
EventObject.Subscriber
toString()
- Method in class com.geodrop.DropPay.
EventObject
toString()
- Method in class com.geodrop.DropPay.
Listener
toString()
- Method in class com.geodrop.DropPay.
Mno
toString()
- Method in class com.geodrop.DropPay.
Port
toString()
- Method in class com.geodrop.DropPay.
PortChallenge_Response
toString()
- Method in class com.geodrop.DropPay.
PortChargePurchases_Response
toString()
- Method in class com.geodrop.DropPay.
PortDescriptor_Response
toString()
- Method in class com.geodrop.DropPay.
PortTrigger_Response
toString()
- Method in class com.geodrop.
GeodropSession
Returns a string representation of the object; in general, the toString method returns a string that "textually represents" this object; the result should be a concise but informative representation that is easy for a person to read
toString()
- Method in class com.geodrop.SMSOut.
Report
toString()
- Method in class com.geodrop.SMSOut.
SMSCheckBalance_Response
toString()
- Method in class com.geodrop.SMSOut.
SMSEstimatecost_Response
toString()
- Method in class com.geodrop.SMSOut.
SMSJobsScheduled_Response
toString()
- Method in class com.geodrop.SMSOut.
SMSSend_Response
toString()
- Method in class com.geodrop.SMSOut.
SMSStatus_Response
A
B
C
D
E
F
G
H
I
J
L
M
O
P
R
S
T
U
X
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
Prev Letter
Next Letter
Frames
No Frames
All Classes


Oct 19th Notes
Homecoming Week
The Link Layer
Links, Access Networks, and LANs
There are two fundamentally different types of link-layer channels
- Broadcast Channels
- Point-to-point communication link
Terminology
- Node - > Any device that wruns a link-layer protocol
- Link - > Comunication channels that connect adjacent nodes along the communication path
- Link-layer Frame -> A transmitting node encapsulates the datagram in a link-layer frame and transmits the frame into the link
Services provided by the link layer
- Framing - > Encapsulating each network-layer datagram within a link-layer frame before transmission over the link
- Link Access -> A medium access control (MAC) protocol specifies the rules by which a frame is transmitted onto the link
- Reliable Delivery -> It guarantees to move each network-layer datagram accross the link without error
- Error Detection and Correction -> Because there is no need to forward a datagram that has an error, many link-layer protocols provide a mechanism to detect bit errors. This is done by having the receiving node perfrom an error check.
Types of Links
- A Point-to-Point link consist of a single sender at one end of the link and a single receiver at the other end of the link. Many link-layer protocols have been designed for point-to-point links; the point-to-point protocol (PPP) and high-level data link control (HDLC)
- A Broadcast link can have multiple sending and receiving nodes all connected to the same, single, shared broadcast channel. The term broadcast is used here because when any one node transmits a frame, the channel broadcast the frame and each of the other nodes receives a copy


class: center, middle, inverse, title-slide # Efficient code ### The R Bootcamp
Twitter:
@therbootcamp
### September 2017 --- # What is efficient code? .pull-left4[ >"Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered."
 >-- Donald Knuth ] .pull-right5[
Donald E. Knuth
Author of The Art of Programming
source http://www-cs-faculty.stanford.edu/ ] --- # Why is R slow? And, is it? .pull-left45[ >R is not a fast language. This is not an accident. R was purposely designed to make data analysis and statistics easier for you to do. It was not designed to make life easier for your computer. While R is slow compared to other programming languages, for most purposes, it’s fast enough. >-- Hadley Wickham ] .pull-right45[ *Reasons for R being slow*

 **Extreme dynamism** - allows you to code flexibly. <br2> **Name lookup** (in environments) - allows you to import packages and name your objects flexibly. ] --- # Profiling The first step to making your code efficient is to **identify critical parts** of your code. Do this using one of the following: | Function| Package| Description| |:------|:------|:------------| | `proc.time()` |`base`|Returns the time.| | `system.time()`| `base`|Runs one expression once and returns elapsed CPU time| | `microbenchmark()`|`microbenchmark`| Runs one or many expressions multiple times and returns statistics on elapsed time.| | `lineprof(), shine()`|`lineprof`| Evaluates entire scripts. (From Hadley's Github)| --- # Profiling: Example Often some small part of your code takes orders of magnitudes longer than everything else. Profiling is about figuring out which parts of your code take so long. .pull-left4[ ```r # load data data <- read_csv('titanic.csv') # remove first column data <- data[,-1] # mutate data <- data %>% mutate(months = Age * 12) # multiple regression model <- glm(Survived ~ Sex * Age, data = data, family = 'binomial') # evaluate model summary(model) ``` ] .pull-right5[  ] --- # Improving performance beginner
  1. Look for existing solutions
 2. Do less work
 3. Vectorise
 4. Parallelise
 5. Avoid copies
 6. Byte-code compile

 advanced
  7. Rcpp
 8. Using a different R
  --- # Look for an existing solution .pull-left3[ Almost always your problem has been solved by someone else. Look for solutions in: **Base R** which can be amazingly fast. **Other packages** which often provide faster versions of one and the same function. **google**, **stackoverflow**, **rseek** ] .pull-right6[

https://stackoverflow.com

http://rseek.org

 ] --- # Do as little as possible .pull-left35[ ### Or be as specific as possible Use **tailor-made** functions, e.g., `.subset2()`. **Provide focus**, e.g., `unlist(x, use.names = F)` vs. `unlist()`. **Don't repeat** code. ] .pull-right65[ ```r # load package library(microbenchmark, quietly = T) # define link to data link <- 'http://tinyurl.com/y92qpp7h' # microbenchmark microbenchmark( web = read_csv(link), local = read_csv('titanic.csv'), fread = fread('titanic.csv'), times = 10) ``` ``` ## Unit: microseconds ## expr min lq mean median uq max neval cld ## web<PHONE_NUMBER>07<PHONE_NUMBER>20<PHONE_NUMBER>284 10 b ## local 4259 4562 7034 4712 4856 28368 10 a ## fread 954 1096 1278 1171 1210 2519 10 a ``` ] --- # Vectorise .pull-left35[ Whenever possible **use vector operations** or functions do vectorized operations. In other words, **don't use loops** and stay away from all **apply idoms**, such as `apply()`, `sapply()`, `tapply()`, etc. ] .pull-right6[ ```r # create data my_data <- matrix(rnorm(1000000), ncol = 10) # microbenchmark microbenchmark( colMeans = colMeans(my_data), apply = apply(my_data, 2, mean), times = 10) ``` ``` ## Unit: microseconds ## expr min lq mean median uq max neval cld ## colMeans 766 837<PHONE_NUMBER> 1184 10 a ## apply 13286 14344 48277 16115<PHONE_NUMBER>45 10 b ``` ] --- .pull-left3[ # Avoid copies **R always copies.** whenever using c(), cbind(), rbind(), paste() R creates a copy large enough to contain its inputs. ] .pull-right65[ ```r # define character vectors letters10 <- LETTERS[sample(1:26, 10, replace = T)] letters100 <- LETTERS[sample(1:26, 100, replace = T)] # define collapse function collapse <- function(x) { my_string <- '' for(i in 1:length(x)) paste(my_string, x, sep = "") } # microbenchmark microbenchmark( loop10 = collapse(letters10), loop100 = collapse(letters100), vec10 = paste(letters10, collapse = ""), vec100 = paste(letters100, collapse = "") ) ``` ``` ## Unit: microseconds ## expr min lq mean median uq max neval cld ## loop10 21.78 24.12 54.88 25.70 28.26 2877.3 100 a ## loop100 1242.55 1309.18 1411.08 1375.76 1474.69 1836.9 100 b ## vec10 1.85 2.09 2.97 2.33 2.62 31.8 100 a ## vec100 9.46 10.12 11.28 11.02 11.98 17.7 100 a ``` ] --- .pull-left2[ # Byte-code
compilation Using the base R package `compiler` code can be compiled to byte-code, a faster, **lower-level version of the code**. As R compiles functions anyway after the first execution, this is **often not useful**. ] .pull-right7[ ```r # define unneccessarily complex function and compile my_fun <- function(x, f, ...) { for (i in seq_along(x)) f(x[[i]], ...) } my_fun_c <- compiler::cmpfun(my_fun) # define some awfully complex data x <- list(1:10, letters, c(F, T), NULL) # microbenchmark microbenchmark(my_fun(x, is.null), my_fun_c(x, is.null), unit = 'us') ``` ``` ## Unit: microseconds ## expr min lq mean median uq max neval cld ## my_fun(x, is.null) 0.962 0.996 20.63 1.09 1.24 1946.7 100 a ## my_fun_c(x, is.null) 0.947 0.991 1.32 1.06 1.22 17.9 100 a ``` ```r # microbenchmark again microbenchmark(my_fun(x, is.null), my_fun_c(x, is.null), unit = 'us') ``` ``` ## Unit: microseconds ## expr min lq mean median uq max neval cld ## my_fun(x, is.null) 1.24 1.28 1.45 1.38 1.49 3.71 100 a ## my_fun_c(x, is.null) 1.24 1.30 1.56 1.39 1.56 12.48 100 a ``` ] --- .pull-left2[ # Parallel
computing When working with large data one of the **best way to speed up** execution is parallel execution. Parallel execution splits the data in many **jobs** and then has many **workers** (separate R instances) working on them in parallel. ] .pull-right7[ ```r # define data and splitted data (jobs) my_data <- matrix(rnorm(10000000),ncol = 10) my_split_data <- lapply(1:10, function(i) my_data[(1:1000) + (i - 1) * 1000, ]) # open cluster require(parallel) clu <- makeCluster(5) # my cluster fun my_cluster_fun <- function(my_split_data){ # apply cluster function out <- clusterApplyLB(clu, my_split_data, colMeans) # combine results colMeans(do.call(rbind, out)) } # microbenchmark microbenchmark(vectorz = colMeans(my_data), cluster = my_cluster_fun(my_split_data)) ``` ``` ## Unit: milliseconds ## expr min lq mean median uq max neval cld ## vectorz 7.86 8.19 8.67 8.34 8.77 11.81 100 b ## cluster 2.37 2.77 3.11 2.93 3.28 8.93 100 a ``` ] --- .pull-left2[ # Rcpp Another very effective, but highly advanced option is to write the essential code using Rcpp - **R's C++ interface**. As many functions are already implemented in C++ or Fortran in the background, this works well **only for non-standard operations**. **Quick-Guide** ] .pull-right7[ ```r # define data my_data <- matrix(rnorm(10000000),ncol = 10) # define function my_Rcpp_fun = " NumericVector colMeans_c(NumericMatrix x){ NumericVector out(x.ncol()); for(int j = 0; j < x.ncol(); ++j){ double m = 0; for(int i = 0; i < x.nrow(); ++i) m += x(i, j); out[j] = m / x.nrow(); } return out; }" # compile function require(Rcpp) ; cppFunction(my_Rcpp_fun) # microbenchmark microbenchmark(vectorz = colMeans(my_data), Rcpp = colMeans_c(my_data)) ``` ``` ## Unit: milliseconds ## expr min lq mean median uq max neval cld ## vectorz 7.88 8.11 8.76 8.38 9.13 11.9 100 a ## Rcpp 7.85 8.10 8.88 8.35 9.40 15.0 100 a ``` ] --- # Alternative R implementations from  **Advanced R** | R implementation| Author | Description| |:------|:------|:------------| | `pqR` |Radford Neal|Built on top of R 2.15.0, it fixes many obvious performance issues, and provides better memory management and some support for automatic multithreading.| | `Renjin` |BeDataDriven| Renjin uses the Java virtual machine, and has an extensive test suite.| | `FastR` |Purdue University| FastR is similar to Renjin, but it makes more ambitious optimisations and is somewhat less mature.| | `Riposte` |Justin Talbot and Zachary DeVito| Riposte is experimental and ambitious. For the parts of R it implements, it is extremely fast. Riposte is described in more detail in Riposte: A Trace-Driven Compiler and Parallel VM for Vector Code in R.| --- # Practical


Class Coverage Distribution |
Class Complexity |
Top Project Risks |
Least Tested Methods |
| Generated by PHP_CodeCoverage 1.0.2 using PHP 5.3.3-1ubuntu9.1 and PHPUnit 3.5.5 at Wed Dec 1 13:21:55 UTC 2010. |


Taskit is a website designed to help groups manage and keep track of day to day, or long term activities. It allows group members to request a task be completed and see who accepted their task, how long ago, or if the task has been completed. The features provided by Taskit can assist companies stay on top of busy agendas, or families assign chores! Whether managing a company iternerary, planning a party, giving you children chores, or divvy work for a school project, if you have tasks, Taskit will help you stay organized.
Credit: Daniel Boaitey, James Jackson


What can you do in the site?
You can create/delete accounts and create and delete posts.
What do you need to create an account?
All you need is an email address.
Can you change your account info?
Yes, you can change your username, password and profile picture.
When you first create an account you will be given a default image.


The next edition of IDEAL conference will be hosted on Manchester (UK). Please check all the information om our new website http://www.confercare.manchester.ac.uk/events/ideal2019/.
Download the CfP flyer!
Download the PDF program!


How much will you earn?
Tell us your estimated earnings between 6 April 2015 and 5 April 2016.
You can enter your own estimated amount or use our calculator to help work it out for you.
Tell us your estimated earnings between 6 April 2015 and 5 April 2016.
You can enter your own estimated amount or use our calculator to help work it out for you.


Preparation time
1-2 hours
Cooking time
1 to 2 hours
Serves
Serves 4
This chicken is flavoured with a combination I have liked very much since childhood. I had acute asthma, and when the coughing fits got too heavy my parents would make me a juice of ginger blended with turmeric, honey and cinnamon. It worked like a dream, and to this day I swear by it. I tried roasting chicken with the mixture one day, adding some other touches – it was fantastic.
The roast potatoes are Tony Singh's creation. What a combination.
In a blender or mini food-processor, blend together all of the marinade ingredients to a fine paste. Taste and adjust the seasoning to taste.
Pat the chicken dry with kitchen paper. Put it in a dish and rub the marinade all over it and if time allows let it rest for an hour or so in the fridge.
Preheat an oven to 180C/350F/Gas 4.
Put the chicken in a roasting tin and baste with the marinade, reserving any extra. Bake the chicken for one hour. Cover the chicken loosely with aluminium foil after the first 10-15 minutes or the honey in the marinade will burn. Baste the chicken a few times during cooking, adding some of the reserved marinade if it starts to look dry.
To cook the potatoes, preheat an oven to 220C/425F/Gas 7. Put the prepared potatoes in a pan of salted water, bring to the boil, then reduce the heat and simmer for seven minutes. Meanwhile, pour the oil into a large roasting tin and put into the oven for five minutes until hot.
Drain the potatoes well, allow to steam, then return to the pan in which the were cooked. Cover the pan and shake the potatoes about – you want to bash up their edges but not break them up. Gently transfer them to the hot roasting tin, turn them about in the hot oil and sprinkle with salt. Roast on the top shelf for 30 minutes, then turn them and roast for a further 20–30 minutes or until crisp and golden-brown.
After the chicken has been roasting for an hour, check whether it is cooked. (The meat is cooked when a thin skewer or a thick needle inserted in the thigh joint produces a clear liquid.) Transfer to a serving dish, cover the chicken with foil and allow it to rest for five minutes before you carve it.
Meanwhile, strain the liquid from the roasting tin into a small pan, adjust the seasoning to taste and keep warm.
Mix together the sage, chilli powder, bouillon powder and garlic powder if using, to make a spice mix. Remove the potatoes from the oven, set them on a plate lined with kitchen paper, and sprinkle over the spice mix.
Joint and serve the roast chicken alongside the roast potatoes, drizzled with the juices from the roasting pan.


{% extends "base.html" %} {% block content %}
DeepGreen provides a simple delivery of publications into repositories. Publishers deliver publications and their metadata to DeepGreen from where they can be received.
The DeepGreen Prototype provides the following interfaces for receiving meatadata and the full text:
On top of the basic transfer functions of the JISC Publications Router, DeepGreen has adapted its functionality to comply with the complexity of the Alliance licenses in Germany.
Publications are assigned to the institutions using indicators that are provided upon registration. These can include the ORCID of researchers, the name of the institutions and the email domain name. To use the SWORD2 interface the institution has to provide their username and password during registration.
Please contact us if you would like to find out more.
Please see here for details of the publications router architecture and how to connect to it.


Used when forwarding or rewinding a video with Shift+Right-Arrow or Shift+Left-Arrow.
This will install a context menu entry in Windows Explorer, which allows you to rightclick a file, folder or on the directory background to it in meView.


Sorry, but a more modern browser supporting the HTML5 canvas tag is required to view this content.
JavaScript is needed but does not appear to be enabled in your browser.


No BVN ? Fill the form.
Contact us today, and get reply with in 24 hours!
****** Select Preffered Branch ******
Adeola Odeku
Akin Adesola
Adeola Hopewell
Ikotun
Egbe Road
****** Select Subject ******
Account Opening
Account Reactivation
Account Upgrade
Product Enquiries
Bank Verification Number
Submit


{{#markdown}}
Meteor has a great support for CSS.
Like other types of files, Meteor gathers all CSS files for the client will get a bundle with all the CSS in your app.
Meteor also pre-process the CSS files and minifies them (in development it doesn't for easier debugging).
Meteor also supports [LESS](http://lesscss.org/) as its default CSS pre-processor (the package is maintained by the Meteor team themselves).
LESS extends CSS with dynamic behavior such as variables, mixins, operations and functions. It allows for more compact stylesheets and helps reduce code duplication in CSS files.
With the less package installed, .less files in your application are automatically compiled to CSS and the results are included in the client CSS bundle.
# Adding simple styling
Create a new folder called 'styles' under the 'client' folder and add a new file - main.css under that folder.
Then change the background color of our app:
body {
background-color: rgba(0,0,0,.04);
}
Run the app and see your background color changed.
# CSS Frameworks
There are many CSS frameworks that help us write less CSS.
Right now the most popular one is [Bootstrap](http://getbootstrap.com/) so we are going to use that in this tutorial.
* We are also keeping close watch on [Polymer](https://www.polymer-project.org/) and [Famo.us/angular](http://famo.us/integrations/angular) and might update the tutorial to use those instead of Bootstrap in the future.
Let's add Bootstrap Meteor package to our project:
meteor add twbs:bootstrap
Now let's start organizing by putting the Home link and the login buttons inside a navbar and the rest of the content inside a Bootstrap .container class.
Inside `index.html` surround the H1 and the loginButton with a header like that:
Converting to Bootstrap doesn't stop here. By applying bootstrap styles to various other parts of our Socially app, our website will look better on different screens. Have a look at [Code Diff](https://github.com/Urigo/meteor-angular-socially/compare/step_16...step_17) to see how we changed the structure of the main files.
# Less
OK, simple styling works, but we want to be able to use [LESS](http://lesscss.org/).
First change the file name from main.css to `main.less`. Now add the LESS package in the command line:
meteor add less
Test that everything still works as before.
Now go to `main.less` and add a different background color to the navbar:
body {
background-color: rgba(0,0,0,.2);
padding-top: 70px;
.navbar {
background-color: #ffffff;
}
}
Notice that we nested the .navbar inside the body. This is part of the [LESS syntax for nested rules](http://lesscss.org/features/#features-overview-feature-nested-rules).
# Designing the parties list
Now we are going to design the parties list.
Like the Javascript and HTML files, we want the specific styling of parties to be inside the 'client->parties' folder so create a folder named styles until the parties folder.
Inside that folder create a new file named 'partiesList.less'.
The first thing we need to do in a new LESS file is to import it from the main file:
@import "../parties/styles/parties.import.less";
Now we can start writing specific LESS code inside that file.
For the rest of the styling changes please take a look at the diff between the steps here:
[Code Diff](https://github.com/Urigo/meteor-angular-socially/compare/step_16...step_17)
# Summary
Ee learned how to use CSS, LESS and Bootstrap in Meteor.
{{/markdown}}


Magic Glasses
For marketing to work it needs to be entertaining and/or helpful. X1’s Magic Glasses are a great marketing tool to help you to be both, while engaging your customers and/or prospects via print.
We can print an image on your next mailer and/or other relevant marketing materials with hidden promos and/or other relevant information.
Your customers will only be able to see the hidden messages and offers with our magic glasses.
If you think Magic Glasses could be the strategy that sets you apart from your competitors, contact Tim Lance on 01753 215325 or email<EMAIL_ADDRESS>. . . . . . . . . .
This marketing tool supports our main business objective – helping our customers maximise their investment when they buy from us.


EventWindow()
Syntax
WindowNumber = EventWindow()Description
After a WindowEvent() or WaitWindowEvent() function, use this function to determine on which window the event has occurred.
Parameters
None.
Return value
The window number on which the event has occured.
See Also
WaitWindowEvent(), WindowEvent()
Supported OS
All


Dessert Recipes
Tips & Tricks
Types of Desserts
Allergy Friendly
Chocolate Cake
Strawberry Pie
Chocolate Chip Cookies


|
OpiumIn the history of mankind, there have only been a few commodities with the power to single-handedly change the course of nations. Among those few, three stand head and shoulders above the rest: sugar, oil and opium.Whether legal or illegal, opium is by far the most successful drug in human history. Over the course of centuries, opium has touched more people than aspirin. Opium has inspired great art and literature, provoked wars and funded terrorists. Opium has been cultivated for its narcotic effects since the earliest days of recorded history, and even today, it's a huge component of mainstream medicine and the recreational mind-fuck market. Derived from the poppy flower, opium is usually harvested as a resin extracted from the plant's seed pods. The resin can then be smoked or consumed in its raw form, or processed for intravenous application. Opium was cultivated for its narcotic effects at least as far back as 4,000 B.C., and possibly a lot further. In its least processed form, the drug conveys a sense of peace and contentment, in addition to alleviating pain. The poppy was first grown in Sumeria, the Mediterranean, Europe and the Near East. The Ancient Greeks were big fans of the drug. In the Odyssey, Homer describes a drink commonly believed to be an opium-based concoction:
Then Helen, daughter of Zeus, turned to new thoughts. Presently she cast a drug into the wine whereof they drank, a drug to lull all pain and anger, and bring forgetfullness of every sorrow. Whoso should drink a draught thereof, when it is mingled in the bowl, on that day he would let no tear fall down his cheeks, not though his mother and his father died, not though men slew his brother or dear son with the sword before his face, and his own eyes beheld it.Now that's good stuff. Homer was one of the earliest literary advocates of opium, but he was hardly the only one. Over the course of centuries, some of the greatest names in literature would sing the praises of opium, and many credited their work to the drug. The roster of creative luminaries who used straight-up opium, to greater or lesser degrees, included Charles Baudelaire, Samuel Taylor Coleridge, Oscar Wilde, Edgar Allen Poe, Elizabeth Barrett Browning, John Keats, Bela Lugosi, William Burroughs, Jean Cocteau, Arthur Conan Doyle, Billie Holliday, Pablo Picasso and Percy Shelley. And that's just opium. We haven't even begun to talk about the poppy's refined derivatives yet, including heroin, morphine, and laudanum. "Everything one does in life, even love, occurs in an express train racing toward death. To smoke opium is to get out of the train while it is still moving. It is to concern oneself with something other than life or death," wrote Jean Cocteau, the French writer and filmmaker. Another Frenchman, actor Antonin Artaud, credited his creativity rather creatively to the absence of opium. "It is not opium which makes me work but its absence, and in order for me to feel its absence it must from time to time be present." British author Thomas De Quincey wrote one of the most famous tracts about the glories of opium, Confessions of an English Opium-Eater, published in 1822. The book is a length poem to opium's splendors, full of rapturous passages describing his experiences with the drug, such as the first time he took it (to treat a toothache): oh! Heavens! what a revulsion! what an upheaving, from its lowest depths, of the inner spirit! what an apocalypse of the world within me! That my pains had vanished, was now a trifle in my eyes: - this negative effect was swallowed up in the immensity of those positive effects which had opened before me - in the abyss of divine enjoyment thus suddenly revealed. Here was a panacea - a (pharmakon nepenthez) for all human woes: here was the secret of happiness, about which philosophers had disputed for so many ages, at once discovered: happiness might now be bought for a penny, and carried in the waistcoat pocket: portable ecstasies might be had corked up in a pint bottle: and peace of mind could be sent down in gallons by the mail coach.As you can see, he kinda liked it. Oh! just, subtle, and mighty opium! that to the hearts of poor and rich alike, for the wounds that will never heal, and for "the pangs that tempt the spirit to rebel," bringest and assuaging balm; eloquent opium! that with thy potent rhetoric stealest away the purposes of wrath; and to the guilty man, for one night givest back the hopes of his youth, and hands washed pure from blood; and to the proud man, a brief oblivion for Wrongs unredress'd, and insults unavenged; that summonest to the chancery of dreams, for the triumphs of suffering innocence, false witnesses; and confoundest perjury; and dost reverse the sentences of unrighteous judges...Well, let's just note that it goes on. And on and on. Aside from promoting excessive verbiage, opium in its most basic form was relatively inoffensive at the physical level. Most of the negative health effects associated with opium use had to do with the fact that the habitual user eventually became obsessed with the drug, much like DeQuincey. A true addict, DeQuincey tried to reduce his opium intake at various points during his life, and he even tried to quit once, for the sake of science and the completeness of his Confessions. He managed to go 90 hours before relapsing. DeQuincey resumed his opium use at a much lower level for a few weeks, but he was obliged to start using it heavily again when he found himself unable to review the final proofs of Confessions. As he explained at the end of the text, DeQuincey had to start using opium again so he could tell people what it was like to stop using opium. (No sacrifice is too great for the furtherance of science.) Opium users like DeQuincey consumed the drug in a variety of forms. The earliest opium users simply ate the seeds and resin of the poppy plant, either by itself or baked into a cake or loaf. The flowers and other parts of the plant could be used for a more subdued rush. Later, users discovered that opium mixed well with other drugs, such as alcohol or nicotine. One of the most popular preparations was laudanum, developed in the 16th century, in which opium was dissolved into alcohol as a beverage or tincture. Another hybrid, paregoric, was a combination of alcohol, camphor and opium used to treat diahrrea and persistent coughs. Both these products were given to children and even babies, either to treat illnesses or simply to quiet them down. In recreational use, the combination of opium and tobacco created a booming industry of opium dens, strange surreal places where smokers of opium congregated to sit steeped in their euphoria. Arthur Conan Doyle wrote one of the most memorable descriptions of an opium den in his Sherlock Holmes adventure, The Man With The Twisted Lip, in which Dr. Watson sets off to rescue a family friend from iniquity: Ordering my cab to wait, I passed down the steps, worn hollow in the centre by the ceaseless tread of drunken feet; and by the light of a flickering oil-lamp above the door I found the latch and made my way into a long, low room, thick and heavy with the brown opium smoke, and terraced with wooden berths, like the forecastle of an emigrant ship."Opium fiends" were often profiled as lean, haggard-looking individuals, mainly because pursuits like eating and grooming seemed insignificant when compared to the pursuit of precious, precious opium. Opium was so precious, in fact, that nations went to war over it. The most notable of these incidents were the Opium Wars of the 19th Century. The initial war over opium broke out between Britain and China. China had instituted a restrictive policy on foreign trade, which the British violated by smuggling opium into the country. China banned imported opium, and destroyed a major British shipment, and the Brits responded by invading. China lost. Several years later, more or less the same dynamic broke out between China and the British, who were allied with the French the second time around. China lost again. Around the same time, several significant developments were taking place in the world of opium. In 1803, a German pharmacist invented a method for distilling opium into an immensely more powerful form - morphine. The good news was that morphine was exponentially more effective than raw opium in treating pain and other illnesses. The bad news was that morphine was exponentially more addictive than raw opium, which was (as we have seen) pretty damn addictive in the first place. Things took a turn for the worse (or the better, depending on your perspective) with the introduction of heroin in 1874. The medical community and pharmaceutical companies like Bayer rushed to embrace both heroin and morphine, making them widely available over the counter in pharmacies by the beginning of the 20th century, when the tide of public opinion began to shift. Although the new breeds of opium derivatives were insanely more addictive than their predecessor, the entire category of opiates was lumped together, and the public campaign against drugs of all kinds treated them as a single scourge in many cases. In 1914, the U.S. passed the Harrison Narcotics Act, which restricted the possession and use of opium and its derivatives (as well as other drugs) to doctor-prescribed medications only. It was, of course, ridiculous to suggest that drug use was somehow un-American. Benjamin Franklin used opium late in his life, albeit to treat severe pain. George Washington is also said to have believed in flower power, although he may have used it as laudanum, a derivative form. Nevertheless, the 20th century saw a sharp increase in America's drug hysteria, fueled by racism directed against Chinese laborers who had come to the U.S. to help build the railroads and brought their cultural tradition of opium use with them. Many propaganda screeds invoked images of innocent white women lured into depravity in the opium dens of San Francisco and elsewhere. Massive crops of opium poppies are still harvested every year in Southern Asia and South America, for both "legitimate" and "criminal" purposes. One of the most important opium economies in recent decades has been Afghanistan, where even in the middle of the U.S. invasion, farmers produced 3,400 tons of opium for shipment around the world. Under the Taliban, opium exports were even higher. A 2003 study estimated that 75% of the heroin consumed in Europe is extracted from Afghan stocks. Opium and heroin trafficking out of Afghanistan totaled more than $1 billion in 2002. Both before and after the U.S. invasion, opium trafficking is believed to have helped fund al Qaeda and other terrorist groups from around Southern Asia. While the consumption of raw opium is on the decline, demand for the poppy is still incredibly strong, since morphine has become a staple of medical anesthesia. Heroin and its derivatives are still extremely popular among recreational users. Opium may no longer be the "just, subtle, and mighty" drug of popular choice, but it will still be a cash crop for years to come, a fact that is no doubt a source of great comfort to Osama bin Laden, wherever he might be.
|


Physicist & Data Scientist with the ability to deliver valuable insights through data analytics and advanced data-driven methods with an eye of detailing and perfection.
24 week Data Science bootcamp from Center for Professional Education.
PhD in Geophysics, Data Processing
I am an aspirant Data Scientist. The physicist in me loves to solve problems and get a simple and visual answer. Currently I am doing a certification in data analytics and Viz, and I would like to be a storyteller through data. Following are some descriptions of the projects I did and currently working on. For details please contact me or visit my github.
Used Kiva dataset and went over more than 10million data to visualize and analyze microfunding across the globe and develop an unsupervised Machine Leaning Prediction model to predict different parameters.
Used more data from 1924 to 2014 to look deeper than the medal count. Analyzing medals won by countries over time medals won by countries in different sports. Also look at the effects of GDP, Population, Gender on performance and effect of being host country.
Used more than 10 years of census data for population, mortgage, rental history etc. Handled various data format and methods for data cleaning, data mining and data frame management. Used various libraries and dictionaries of python for data analysis and plots to visualize, analysis and predict Austin's increasing housing price bubble
Built a web application that scrapes various websites for data related to the Mission to Mars and displays the information in a single HTML page. Used Mongo, splinter and beautifulsoup for the project.
Created a HTML web page. Using the UFO dataset provided in the form of a JavaScript object, wrote codes that append a table to your web page and then adds new rows of data for each UFO sighting.
created interactive dashboard to explore biological bacteria diversity plots (DataSet](http://robdunnlab.com/projects/belly-button-biodiversity/).
Used Twitter API and python script to perform a sentiment analysis of the Twitter activity of various news oulets, and presented findings visually.
Used Uber data and python script to perform a visual comparison to plot average fare per city, total driversand rides etc.
Created python script to randomly select 500 cities around the globe and compare their weather and find out the relationship between vaious factors that might affect the weather such as latitude vs, humidity, cloud cover, windspeed etc.
Used panda to analyze a gaming dataset to analyse most popular and profitable game based on gamers gender and age.
Installation and usage USGS database management and software to map micro earthquakes.
Seismic processing, Quantitative subsurface interpretation. Evaluate & manage large seismic and well data.
Statistical uncertainty analyses, assurance check for Government regulations, numerical modeling to quantify differences.
Geophysical analyses, data processing, neumerical modeling, remote sensing, data processing.
Savvaidis, A., Young, B., Mukerjee, T., Hennings, P., Rathje, E., Zalachoris, G., Young, M. H., Walter, J., DeShon, H., and Frohlich, C., 2016, Site assessment of a new state-wide seismic network in Texas (TexNet) (abs.): AGU Session S025. Seismology Contributions: Advances in Instrumentation and Installation.
Tania Mukherjee, Kurang Mehta, Jorge Lopez (Shell); Robert R. Stewart (University of Houston); Closing the Loop via Scenario Modeling in a Time-Lapse Study of an EOR Target in Oman, SEG 2012.
Mukherjee and R.R Stewart; Near-surface borehole geophysical imaging in a highly-structured area, Beartooth Mountains, Montana; SEG 2010.
Saumitra Misra1, H. Newsom1, T. Mukherjee2, A.Dube, D. Sengupta; No Evidence Of Impact Induced Volatile Loss From MASKELYNITE Of Lonar Crater, India; Lunar and Planetary Science XXXVIII (2007) Lunar and Planetary Institute, NASA
Bookworm and novice storywriter.Trained in indian fine arts and painting now use my artsy part to take photograph and DYI. Love to travel, cook fusion food and spend time with my Dog.


You can now listen to millions of songs, audiobooks and podcasts on any device anywhere you like!
$59.99/year


List Of sub-sector
{% extends "base.html" %} {% load cms_tags admin_tags %} {% block styles %} {% endblock %} {% block content %}
Check out the upcoming events, workshops, and also the internship programs in the IT-ITeS industry.
Industries views on trends, forecast on requirements and skill gaps.
Explore four sub-sectors of the Indian IT–ITeS industry for Occupational Mapping, career information and job availability.


Home
About Me
Projects
Blog
Contact
LinkedIn
Twitter
GitHub
Here are some of the projects I have worked on.
If you want to find out more about me!
Some thoughts that I have written down.
Contact Me


Using Skupper podman
Skupper podman allow you to create a site using containers, without requiring Kubernetes. Typically, you create a site on a Linux host, allowing you to link to and from other sites, regardless of whether those sites are running in podman or Kubernetes.
| This is a preview feature and may change before becoming fully supported by skupper.io. |
About Skupper podman
Skupper podman is available with the following precedence:
skupper --platform podman <command>
-
Use this option to avoid changing mode, for example, if you are working on Kubernetes and podman simultaneously.
export SKUPPER_PLATFORM=podman
-
Use this command to use Skupper podman for the current session, for example, if you have two terminals set to different contexts. To set the environment to target Kubernetes sites:
$ export SKUPPER_PLATFORM=kubernetes
skupper switch podman
-
If you enter this command, all subsequent command target podman rather than Kubernetes for all terminal sessions.
To determine which mode is currently active:
$ skupper switch podman
To switch back to target Kubernetes sites: skupper switch kubernetes
Creating a site using Skupper podman
-
The latest
skupper
CLI is installed. -
Podman is installed, see https://podman.io/
-
Set your session to use Skupper podman:
$ export SKUPPER_PLATFORM=podman
To verify the
skupper
mode:$ skupper switch podman
-
Create a Skupper site:
The simplest Skupper site allows you to link to other sites, but does not support linking to the current site.
$ skupper init --ingress none It is recommended to enable lingering for <username>, otherwise Skupper may not start on boot. Skupper is now installed for user '<username>'. Use 'skupper status' to get more information.
If you require that other sites can link to the site you are creating:
$ skupper init --ingress-host <machine-address> It is recommended to enable lingering for <username>, otherwise Skupper may not start on boot. Skupper is now installed for user '<username>'. Use 'skupper status' to get more information.
For more information, see podman skupper init.
-
Check the status of your site:
$ skupper status Skupper is enabled for "<username>" with site name "<machine-name>-<username>" in interior mode. It is not connected to any other sites. It has no exposed services.
You can only create one site per user. If you require a host to support many sites, create a user for each site.
-
Linking sites using Skupper podman
The general flow for linking podman sites is the same as for Kubernetes sites:
-
Generate a token on one site:
$ skupper token create <filename>
-
Create a link from the other site:
$ skupper link create <filename>
After you have linked to a network, you can check the link status:
$ skupper link status
Working with services using Skupper podman
The general flow for working with services is the same for Kubernetes and Podman sites.
Services exposed on Kubernetes are not automatically available to Podman sites.
This is the equivalent to Kubernetes sites created using skupper init --enable-service-sync false .
|
In this variation of the hello world example, the backend
service is exposed on Kubernetes site and a Podman site is linked.
You deploy the frontend
as a container and that container can access the backend
service.
-
Create a Podman site and link it to a Kubernetes site.
-
Check the service from the Podman site:
$ skupper service status No services defined
This result is expected because services exposed on Kubernetes are not automatically available to Podman sites.
-
Create a service on the Podman site matching the service exposed on the Kubernetes site:
$ skupper service create backend 8080
-
Validate the service from the Podman site by checking the backend API health URL:
$ podman run -it --rm --network=skupper --name=myubi ubi8/ubi curl backend:8080/api/health OK
This command runs a container using the
skupper
network and returns the results fromhttp://backend:8080/api/health
-
Run the frontend as a container:
$ podman run -dp 8080:8080 --name hello-world-frontend --network skupper quay.io/skupper/hello-world-frontend
-
Check your service network is working as expected by navigating to http://localhost:8080 and click Say hello.
Each of the backend replicas respond, for example
Hi, Perfect Parrot. I am Kind Hearted Component (backend-7c84887f9f-wxhxp).
In this scenario, running the
skupper service status
command on the Podman site does not provide much detail about the service:$ skupper service status Services exposed through Skupper: ╰─ backend (tcp port 8080)
In this variation of the hello world example, the backend
service is exposed on Podman site and consumed from a frontend
on a Kubernetes site.
-
Create a Podman site and link it to a Kubernetes site.
-
Create and expose a frontend deployment on the Kubernetes site:
$ kubectl create deployment frontend --image quay.io/skupper/hello-world-frontend $ kubectl expose deployment/frontend --port 8080 --type LoadBalancer
-
Run the backend as a container:
$ podman run -d --name hello-world-backend --network skupper quay.io/skupper/hello-world-backend
-
Expose the
backend
from the Podman site.$ skupper expose host hello-world-backend --address backend --port 8080
-
From the Kubernetes site, create the
backend
service:$ skupper service create backend 8080
-
Check your service network is working as expected by navigating to your cluster URL, port 8080, and clicking Say hello.
For more information, see podman skupper expose.


{% extends 'base.html' %} {% block title %}Squirrel | Forbidden{% endblock %} {% block content %} You’re not allowed to perform this action. {% endblock %}


Back in the summer of 2008, I had cause to mention Sabine Baring-Gould, author of innumerable works including a sixteen-volume Lives Of The Saints, a study of werewolves, grave desecration and cannibalism, and a biography of Robert Stephen Hawker (1803–1875), the eccentric country vicar who spent much of his time smoking opium in a clifftop hut made from driftwood, talked to birds, dressed up as a mermaid, excommunicated his cat, and kept a pet pig.
I am pleased to report that this morning, at the London Library, recalling Baring-Gould, and brimming with glee, I borrowed his Hawker biography (The Vicar Of Morwenstow, 1886), a collection of pieces entitled Curiosities Of Olden Times (1869), and a biography of the great man himself, Onward Christian Soldier : A Life Of Sabine Baring-Gould, Parson, Squire, Novelist, Antiquary 1834–1924 by William Purcell (1957).
This trio of tomes will, I expect, contain much that is diverting and instructive and I shall share the more startling bits with you when I buckle down to reading them.


"HIERAPOLIS "sacred city, a city of Phrygia, where was a Christian church under the care of Epaphras (Colossians 4:12, 13). This church was founded at the same time as that of Colosse. It now bears the name of Pambuk-Kalek, i.e., “Cotton Castle”, from the white appearance of the cliffs at the base of which the ruins are found.
"HIERAPOLIS "sacred city, a city of Phrygia, where was a Christian church under the care of Epaphras (Colossians 4:12, 13). This church was founded at the same time as that of Colosse. It now bears the name of Pambuk-Kalek, i.e., “Cotton Castle”, from the white appearance of the cliffs at the base of which the ruins are found.


Welcome to the Rawalpindi Institute of Art & Design
Copyright © 2016. Designer by NthPsd. All Rights Reserved.


11 April 2011 - The Ministry of Health of Egypt has announced four new confirmed cases of human infection with avian influenza A(H5N1) virus.
The first case is a 20 years old female from Behaira Governorate. She developed symptoms on 14 March and was hospitalized on 19 March. She was in a critical condition and died on 28 March.
The second case is a two years old female from Menofeya Governorate. She developed symptoms on 26 March and was hospitalized on 27 March. She is still under treatment and in a stable condition.
The third case is a 55 year old female from Behaira Governorate. She developed symptoms on 20 March and was hospitalized on 22 March. She recovered and was discharged on 5 April.
The fourth case is a 1 year old male from Fayoum Governorate He developed symptoms on 20 March and was hospitalized on 28 March. He is still under treatment and in a stable condition.
All the cases received oseltamivir treatment at the time of hospitalization.
Investigations into the source of infection indicate that the cases had exposure to sick and/or dead poultry suspected to have avian influenza.
The cases were confirmed by the Egyptian Central Public Health Laboratories, a National Influenza Center of the WHO Global Influenza Surveillance Network.
Of the 141 cases confirmed to date in Egypt, 46 have been fatal


Now that we've looked at the architecture of the internet, let's see how you might connect your personal devices to the internet inside your house. Well there are many ways to connect to the internet, and most often people connect wirelessly.
Let's look at an example of how you can connect to the internet. Let's look at an example of how you can connect to the internet. cable Internet, or a phone line if you have DSL, running to the outside of your house, that connects you to the Internet Service Provider, or ISP. If you live far out in the country, you'll more likely have. a dish outside your house, connecting you wirelessly to your closest ISP, or you might also use the telephone system.
Whether a wire comes straight from the ISP hookup outside your house, or it travels over radio waves from your roof, the first stop a wire will make once inside your house, is at your modem. A modem is what connects the internet to your network at home. A few common residential modems are DSL or


Homebrew Launcher (Channel)
This step will enable you to launch the Homebrew Launcher from your Home Menu.
Preparations
- Download the Homebrew Launcher (Channel)
- Download WUP Installer GX2 (Homebrew Launcher)
- Download WUP Installer GX2 (Channel)
- Copy and merge the contents of the WUP Installer GX2 (Homebrew Launcher) ".zip" to the root of your SD card
- Copy the contents of the Homebrew Launcher (Channel) ".zip" to the directory "SD:install/hbc
- Copy the WUP Installer GX2 (Channel) ".zip" to the directory "SD:install"
- Put the SD Card into your Wii U
Instructions
- Launch the Homebrew Launcher
- CBHC users, do this by pressing the Home Button when the CBHC screen appears on boot and select "Boot Homebrew Launcher"
- Haxchi users, do this by launching Haxchi while holding A
- Browserhax/MochaCFW users, do this by opening the Wii U browser and going to cfw.guide/go
- Launch WUP Installer GX2
- If it crashes, just reboot and try again.
- Select the Homebrew Channel
- Select "Install > Yes > NAND"
- Select WUP Installer GX2
- Select "Install > Yes"
- If you are using a USB device to store games on your Wii U, select USB as the destination
- If you are not, select NAND as the destination
- Press Home to exit and go back to the Home Menu
Both HBL and WUP Installer GX2 should appear on your Home Menu.
You can launch them in patched sysNAND, which should automatically boot with CBHC.
Proceed to
Blocking Updates
Using a new method, blocking updates will not block your access to the eShop


Many students (including me) are in continuous search of something to do in the field of technology and develop skills to do something great in life and make the world a better place for everyone. OMG !!! it sounds too good. But are you actually sharpening your skills and critical thinking ?? When I was in my first year, I was a noob in the field of technology especially computer science (because I chose it for the next 4 year). Having experience of C++ in class 11th and 12th helped me a lot, actually it helped a lot because most of the starting concepts of programming were in C in the college. But as I got to know about my seniors and their achievements, BOOM!! I explored many things such as Android Development, Machine Learning, Python Programming, etc. But only 20% gets retained in my mind. I think this is one of the major problem faced by many of us at the start of our journey.
We keep on learning new technology and boast it on the resume. But we aren’t learning something to solve some problems on our own such as: How will you optimize this code ?? or Will it be able to handle the exception?? or you just copied the code from Github, Huh because you can’t understand it yourself !!! If you want to do real coding and understand the underlying concepts of everything, you need to invest your time in building projects.
As said “Practice makes a man perfect”
Projects help us in retaining the concepts. Projects can be done ranging from Small scale (1-week project) to large scale (6 months to 1 year). Projects help you to understand the real world issues, Hacks, implementation and higher critical things of problems you will deal in future, in short, you will gain experience. And as you gain experience the more powerful you become.
So, Why am I writing this?? because I am going to publish series articles in future regarding projects mostly in python, which you can do during your peace time and develop skills at it’s best.
...
Python is a simple but very powerful programming language. You can do literally anything with python such as Data Science, Machine Learning, API Development, Web Development, Computer Vision, Automation, Robotics, etc. Yes, you can perform all this with python. Python is everywhere Google uses it, dropbox use it. Youtube, Instagram, and Spotify have a python as backend. Python is the fastest growing language and one of the most loved language.
And, as a beginner, you can perform all tasks and projects very easily because it is easy to read and understand. I think it is the best language for beginners.
I will be posting multiple articles in the future regarding different projects with all the instructions and necessities. I will be performing the projects in parallel with you (because I am also learning something new). All the code will be available in my GitHub id: https://github.com/Akash16s.
But, You need to have some understanding of python and other programming stuff. I will not be teaching you python here learn it by yourself 😊.
Best books for learning Python:
Learn Python the hard way by Zed Shaw
Automating the boring stuff with python by Al Sweigart
Online Tutorials:
You can find an enormous amount of online tutorials. example:
Sentdex Python3 Tutorial
Telusko Learning
Creating a virtual environment:
[Link]
Much needed in professional life.
Thanks, See you in the next post. Have a great day😊.
Note: I am new to writing articles and explaining stuff, so please support me in the same and comment on your suggestions below because it really matters a lot to me.


Fantasy Football
EECS 448 - Projects 3 & 4
Structure Info
This project has been wired up to use Vue.js to help organize components of the game.
These components are defined in files that end in the .component.js
extension, and are located in the src/components/
directory.
The entry point for the project is the index.html
. This file contains the basic logic for loading Vue, and adding the game board to the page.
Obviously, we'll flesh out the look-and-feel as we go along. This is just a basic starter for now.
How to Run
The easiest way to run this project is by creating a basic static web server using Python. This is super simple:
- Open a terminal or command prompt to the root of this project (i.e. the directory this file is in).
- Start the server:
python -m http.server
This will start a web server on port 8000. You can then run the game by navigating to http://localhost:8000/ from a web browser.
Re-generating the documentation
To regenerate the docs, you need Node.js and the Yarn package manager installed. Then, just:
cd documentation
./generate.sh
Works Cited
The files in the lib
directory are external libraries used in this project.
- Vue.js
- A front-end framework. Used under the terms of the MIT license.
- https://github.com/vuejs/vue
- VuES6.js
- A kind-of crappy loader for defining Vue components using ES6 classes.
- Also used under the terms of the MIT license.
- https://code.garrettmills.dev/garrettmills/vues6
Contributors
- Lucas Brakenridge
- Javier Barea Lara
- Garrett Mills
- Evan Powell
- Alec Horlick-Mills


NBA 2K20 ups Ben Simmons' 3-point rating after making first career triple
by Marcelo VillaAfter making his first career 3-pointer, Ben Simmons is finally getting the recognition he deserves.
NBA 2K20, the very popular basketball video game, released some updated ratings on Friday, and the 76ers point guard was among the players to see a bump in his ratings. Simmons’ 3-point rating went from 35 to a whopping 47 after a 12-point boost.
Making a 3-pointer might not seem like a big deal, but for Simmons and the 76ers faithful, it meant the world. Here’s the reaction it got from the Philly crowd on Wednesday night:
Simmons had gone 171 games before making his first triple. The knock on him has always been that he can’t shoot, but that might be changing soon. If Simmons can knock down these with consistency, he’ll start to silence his doubters.


Define graphical layout of the parameter menu.
annotation(Dialog(enable = true, tab = "General", group = "Parameters", showStartAttribute = false, colorSelector = false, groupImage = "modelica://MyPackage/Resources/Images/image.png", connectorSizing = false));
The annotations tab
and
group
define the placement of the
component or of variables in a dialog with optional tab and group
specification. If enable = false
, the
input field may be disabled [and no input can be given]. If
showStartAttribute = true
the dialog
should allow the user to set the start-value and the fixed
attribute for the variable instead of the value-attribute [this is
primarily intended for non-parameter values and avoids introducing
a separate parameter for the start-value of the variable].
If colorSelector=true
, it indicates that an
rgb-value selector can be presented for a vector of three elements
and generate values 0..255
(the annotation should be
useable both for vectors of Integers and Reals).
The annotation groupImage
references an image using an Modelica URI, and the image is
intended to be shown together with the parameter-group (only one
image per group is supported). Disabling the input field will not
disable the image.
The value of the connectorSizing
annotation must be a literal false or true value [since if the
value is an expression, the connectorSizing
functionality is conditional and this will then lead easily to
wrong models]. If connectorSizing = false
, this
annotation has no effect. If connectorSizing = true
,
the corresponding variable must be declared with the parameter
prefix, must be a subtype of a scalar Integer and must have a
literal default value of zero [since this annotation is designed
for a parameter that is used as vector dimension and the dimension
of the vector should be zero when the component is dragged or
redeclared; furthermore, when a tool does not support the
connectorSizing annotation, dragging will still result in a correct
model]. If connectorSizing = true
, a tool may set the
parameter value in a modifier automatically, if used as dimension
size of a vector of connectors. [The connectorSizing
annotation is used in cases where connections to a vector of
connectors shall be made and a new connection requires to resize
the vector and to connect to the new index (unary connections). The
annotation allows a tool to perform these two actions in many cases
automatically. This is, e.g., very useful for state machines and
for certain components of fluid libraries.]
Annotation "Dialog" is defined as:
record Dialog parameter String tab = "General"; parameter String group = "Parameters"; parameter String groupImage = ""; parameter Boolean enable = true; parameter Boolean showStartAttribute = false; parameter Boolean connectorSizing = false; parameter Boolean colorSelector = false; parameter Selector loadSelector; parameter Selector saveSelector; end Dialog; record Selector parameter String filter=""; parameter String caption=""; end Selector;
A parameter dialog is a sequence of tabs with a sequence of groups inside them.
A Selector
displays a file dialog to select a file:
Parameter filter
only shows files that fulfill the
given pattern defined by "text1 (*.ext1);;text2
(*.ext2);
" to show only files with file extension
*.ext1
or *.ext2
and displaying a
description text "text1
" and "text2
",
respectively. Parameter caption is the text displayed in the dialog
menu. Parameter loadSelector
is used to select an
existing file for reading, whereas parameter
saveSelector
is used to define a file for writing.
model DialogDemo parameter Boolean b = true "Boolean parameter"; parameter Modelica.SIunits.Length length "Real parameter with unit"; parameter Integer nInports=0 annotation(Dialog(connectorSizing=true)); parameter Real r1 "Real parameter in Group 1" annotation(Dialog(group="Group 1")); parameter Real r2 "Disabled Real parameter in group 1" annotation(Dialog(group="Group 1", enable = not b)); parameter Real r3 "Real parameter in Tab 1" annotation(Dialog(tab="Tab 1")); parameter Real r4 "Real parameter in Tab 1 and Group 2" annotation(Dialog(tab="Tab 1", group="Group 2")); StepIn stepIn[nInports]; ... end DialogDemo;


lle: Locally linear embedding
LLE is a non-linear algorithm for mapping high-dimensional
data into a lower dimensional (intrinsic) space. This package
provides the main functions to performs the LLE alogrithm
including some enhancements like subset selection, calculation
of the intrinsic dimension etc.
| Version: |
1.1 |
| Depends: |
scatterplot3d, MASS, snowfall |
| Suggests: |
rgl |
| Published: |
2012-03-21 |
| Author: |
Holger Diedrich, Dr. Markus Abel (Department of Physics,
University Potsdam) |
| Maintainer: |
Holger Diedrich <holgerdiedrich at gmx.net> |
| License: |
GPL-3 |
| NeedsCompilation: |
no |
| CRAN checks: |
lle results |
Downloads:
Reverse dependencies:
Linking:
Please use the canonical form
https://CRAN.R-project.org/package=lle
to link to this page.


protected fun onDetachedFromWindow(): Unit
Called when the view is detached from a window. At this point it no longer has a surface for drawing. Stops any animations on the ExpandableFab, as it's no longer on screen.


The alphabet pane is not displayed by default. It is displayed using the Window menu.
The alphabet consists of two areas, a list of the consituent processes of the composite target on the left and an initially blank text area on the right. The alphabet for a process is displayed by clicking on its name in the list.
The alphabet is at first displayed in the most compact form. Sets and ranges can be expanded/contracted using the vertical toolbar.


One dies, two injured in road crash on Lagos-Abeokuta expressway
by NANThe Ogun Traffic Compliance and Enforcement Corps (TRACE), on Sunday, said that one person died, while two others sustained injuries in a road accident that occurred at Onihale area, near Owode-Ijako, on the Lagos-Abeokuta expressway.
Mrs Temitope Oseni, the TRACE Unit Commander, Owode-Ijako, told the News Agency of Nigeria (NAN) in Ota, Ogun, that the accident occurred at about 6.15 am. on Sunday.
She explained that a truck, with no registration number, heading to Sango-Ota from Abeokuta, lost control due to tire burst.
Oseni said that the vehicle somersaulted twice, resulting in the death of the motor boy, while the driver and one other sustained injuries.
Oseni explained that the motor boy was trying to jump out of the vehicle when he hit his head on the road, which resulted in his death.
“The corpse of the victim has been taken for burial by the family members, while the survivors are receiving treatment in an disclosed hospital in Ifo, Ogun,” ‘she said.
The TRACE unit commander said that the vehicle had been towed to Ifo police station to ease traffic flow in the area.
She advised motorists to ensure that their vehicles were properly maintained and desist from the use of used tyres to avoid unnecessary loss of lives and property.


Download
Binary builds of the command-line front-end are available for the 64-bit versions of Windows, OS X, and Linux.
If you would like to work with ResumeFodder locally on a 32-bit operating system, or some system other than those above, then you will need to install a Go compiler and build ResumeFodder from source.


This is a toolset to visualize GitHub archives using Postgres databases and Grafana dashboards. It allows creating various metrics for the Kubernetes community (and also for all other CNCF projects). Everything is open source so that it can be used by other CNCF and non-CNCF open source projects. The only requirement is that project must be hosted on a public GitHub repository/repositories. Author: Łukasz Gryglicki
| Graduated | Incubating | ||||||||
| Kubernetes | Prometheus | OpenTracing | Fluentd | gRPC | containerd | rkt | CNI | Envoy | Jaeger |
| Incubating | Sandbox | ||||||||
| Notary | TUF | Vitess | CoreDNS | NATS | Linkerd | Helm | Rook | OPA | SPIFFE |
| Sandbox | CNCF | ||||||||
| SPIRE | CloudEvents | Telepresence | Harbor | OpenMetrics | All CNCF | ||||


Welcome to this website. This is the home page.
It may not be the best home page, but it's mine.
Feel free to take a seat and rest for a while.
Welcome to this website. This is the home page.
It may not be the best home page, but it's mine.
Feel free to take a seat and rest for a while.


{% extends 'contents/_base.html' %}
{% block title %}How to Propose a Tutorial{% endblock title %}
{% block content %}
{% url 'page' path='speaking/cfp' as speaking_cfp_url %}
{% url 'page' path='speaking/talk' as speaking_talk_url %}
How to Propose a Tutorial?
For general proposal calling information, see Call for Proposals.
First of all, thank you for considering giving a tutorial in PyCon Taiwan 2020.
Generally speaking, Good tutorials possess most of the traits good talks have. The most discernible differences of a tutorial from a talk are the hands-on nature and the longer duration. By longer duration, generally more content is required and it should remain interesting and keep the attendees awake and hyped even after hours of lecture and exercises. By containing hands-on exercises, the experience of teaching coding to people is necessary. You might also need teaching assistants who you should be able to comfortably communicate during the tutorial, usually at least two teaching assistants for a general class size of 20 people is needed.
Both differences require many times of practice and experience. Therefore, a tutorial speaker usually satisfies at least one of the following prerequisites:
We might ask you to give the tutorial to the community before the conference if you lack the experience.
The length of the tutorial is 1 hour and 30 minutes.
In our previous experiences, tutorials with a length of 6 hours are exhausted for both instructors and students, students usually find it difficult to consistently follow in the second half of the tutorial. Full-day tutorials require a relatively experienced instructor, thus the length of the tutorial is 1 hour and 30 minutes this year. We strongly recommend you to clearly define prerequisites and goals, which helps building the best learning experience.
Tutorials are held in parallel with the main conference, therefore, the classroom would be outside of the venue. Venue is tentatively set as Goodideas-Studio.
No additional charge.
The easiest and the best answer: Go speak and involved in the local Python communities!
If you have any questions or suggestions, please don't hesitate to contact us.
{% endblock content %}


Welcome to the Quest Map page, {{this.currentUser.getUserFirstName()}}!
This is where you can create quests and form your section's questmap.
Currently, you have not set the maximum EXP and Flat One Percentage that your students can get.
Set it so you can start creating your quest and questmap.
To set the maximum EXP and the Flat One Grade percentage, go to the SETTINGS
or you can click this link right here!
You have no quest yet. Click the button bellow to create your first quest!


Use the controls above to operate your drone to deliver packages.
Objective:
Synopsis: This is your first day on the job, so you are given an
easy task to deliver a package to floor #2. You must not crash into other drones and
finish the mission in a timely manner.
Time Limit: 20 seconds
Complete Job #1 to unlock Job #2
Synopsis: Now that you have some experience, let's deliver two
packages. You must deliver two packages on floors #2 and #6 respectively. You must
not crash into other drones and finish the mission in a timely manner.
Time Limit: 20 seconds
Complete Job #2 to unlock Job #3
Synopsis: Great Job! It seems that you are an efficient operator
with two packages. You will now have to deliver three packages on floors #2, #6, and
#12. You must not crash into other drones and finish the mission in a timely manner.
Time Limit: 30 seconds
Complete Job #3 to unlock Job #4
Synopsis: Wow! You delivered three packages without any problems.
It seems you are ready to setup up to the harder tasks. You will now have to deliver
four packages on floors #2, #6, #12, and #15. You must not crash into other drones
and finish the mission in a timely manner.
Time Limit: 40 seconds
Complete Job #4 to unlock Job #5
Synopsis: Amazing! It seems you are ready for the hardest job. You
will now have to deliver five packages on floors #2, #6, #12, #15, and #17. You must
not crash into other drones and finish the mission in a timely manner.
Time Limit: 50 seconds
Complete Job #5 to complete your training and become a professional
operator!


{% if pageData.isQuestion %}
{% if pageData.isAnswered %}
Thanks for answering this question! Here are some suggested next
steps:
{% else %}
First, answer this question by clicking the Study tab.
{% endif %}
{% if responseTable %}
{% endif %}
{% else %}
You can study this lesson by clicking the Study tab.
{% endif %}
Review Suggestions
Click on the Concepts tab to build a list of glossary
terms associated with this lesson. You can add to the list by
searching our terms database (including Wikipedia) for terms
you want to add, or if you are unable to find a good match in
the database, you can enter a new term definition on that tab.
If you have a question about this lesson, click the FAQ
tab to see if it has been addressed. If not, you can post your
question on that tab, for the instructors to answer.
To gain a broader understanding of the common errors that
people make on this, click the Errors tab.


{% extends 'ui/page.html' %} {% load account %} {% block title %}Password Reset{% endblock %} {% block content %}
We have sent you an e-mail. Please contact us if you do not receive it within a few minutes.


The questions no one cares about, but everyone's wondering
The St. Olaf community has submitted ___ answers to _ questions so far. Raw data available here.
The 7 second surveys are currently on an indefinite hiatus.
Past Questions
Every Monday, I send out a super short anonymous survey to the St. Olaf community. All responses are collected here and are free to use for academic purposes, for sheer curiosity, or to settle a drunk bet.
The following Monday, I post the results along with what cultural or personal significance that question had, and what we learned about our community from it.
These are the questions that keep me up at night. That I've wondered about for years. That I relentlessly ask to everyone I meet.
A lot of these questions might seem superfluous but I think who we are is just as much the mundane and trivial decisions we make everyday as it is the large and profound, and I like the idea of being able to document and get to know this community in such an intimate way.
Awesome! I'm always looking for ideas for more questions! If you've got a question that's highly quirky, oddly specific, or deeply unprofound, shoot me an email at<EMAIL_ADDRESS>or propose one anonymously.


Erlang Terms To Javascript Conversion
(Having Problems? Not seeing anything? Have you
symlinked bert.js
in?)


| Interface | Description |
|---|---|
| Commands |
All sets of commands implement this interface.
|
| ComponentManager |
Created by Jeff Gaynor
on 2/22/21 at 6:19 AM |
| IOInterface |
Created by Jeff Gaynor
on 5/11/20 at 6:57 AM |
| Sortable |
Created by Jeff Gaynor
on 5/22/14 at 9:42 AM |
| Class | Description |
|---|---|
| AbstractEditor |
Created by Jeff Gaynor
on 8/17/20 at 10:23 AM |
| BasicIO |
Created by Jeff Gaynor
on 5/11/20 at 6:58 AM |
| BasicSorter |
A very basic sorter.
|
| CLIDriver |
A driver program that does introspection on a set of CLICommands
|
| CLIReflectionUtil |
Created by Jeff Gaynor
on 5/21/13 at 2:28 PM |
| CLITool |
Basic class for writing command line tools.
|
| CommandLineTokenizer |
This is a very specific tokenizer for command lines from the Dumb gridFTP client.
|
| CommonCommands |
Utilities that are used by any reasonable implementation of the Commands
interface.
|
| ConfigurableCommandsImpl |
Basic implementation of Commands.
|
| EditorInputLine |
Created by Jeff Gaynor
on 8/17/20 at 3:14 PM |
| FormatUtil |
Created by Jeff Gaynor
on 1/25/21 at 5:32 PM |
| InputLine |
A utility to take an input line and turn it into a command line.
|
| ParserCommands |
Created by Jeff Gaynor
on 9/25/18 at 10:51 AM |
| StoreCommands |
This also has the machinery for parsing configurations since the user should be able
to load one from the command line.
|
| Exception | Description |
|---|---|
| ArgumentNotFoundException |
Created by Jeff Gaynor
on 5/17/13 at 11:13 AM |
| CommandNotFoundException |
Created by Jeff Gaynor
on 5/17/13 at 11:12 AM |
| ConfigurableCommandsImpl.ListOnlyNotification | |
| ExitException |
Created by Jeff Gaynor
on 5/30/13 at 10:46 AM |
| MalformedCommandException |
Created by Jeff Gaynor
on 5/17/13 at 3:20 PM |
| ShutdownException |
Thrown by the command line interpreter to signal a shutdown should happen.
|
Copyright © 2022. All rights reserved.


{% extends "base.html" %} {% load staticfiles compress %} {% block title %}Pricing - It's Free! - healthchecks.io{% endblock %} {% block content %} Free Plan €0 / Month Personal or Commercial use Unlimited Checks Unlimited Alerts Pay What You Want Plan €10 / Month Personal or Commercial use Unlimited Checks Unlimited Alerts Priority Support {% endblock %} {% block scripts %} {% compress js %} {% endcompress %} {% endblock %}
€0 / Month
€10 / Month


The pulluvans are a set of people who are dedicated themselves to praise and sing the hymns of Sree Anantha and all Nagas with the assistance of their musical instruments – Veena and Kudam. The music that emanates from this divine instrument is supposed to please the Naga Gods, who in turn would bless the devotees. One can invariably find pulluvans at places where Nagas are worshipped. Hence Pulluvan Pattu has a special significance in this temple.
Annadhanam is the favourite offering of Lord Sreenagaraja.Annadhanam is more important than any other offerings.Therefore Annadhanam is conducted on every monthly Ayiliam. It was conducted by the believers as their offering.Those who want to conduct Annadhanam please contact to the officetemple.If you wish to send cash as Moneyorder,cheque ,draft or with bank account follow the address given below, SBT,Kumaranalloor Branch A/c No.57048865093
Sarpapooja is explained in puranaas for as to increase the deity’s power and the power to shower blessings on worshippers.At the time of Sarpapooja the presence of all devotees occurring there.The serpents most important offering is the Noorum palum Samarpanam.


Featured Products
The latest and greatest products from Broke Shirts.
No Featured Products
TITLE
$17.00
$17.00
category
TITLE
$17.00
$17.00


Every few weeks someone asks us when we are going to organize a conference for React. Our answer has always been "some day". In the mean time, people have been talking about React at other JavaScript conferences around the world. But now the time has finally come for us to have a conference of our own.
We're happy to announce React.js Conf! It will take place January 28-29, 2015 on Facebook's campus in Menlo Park, California.
Before we open registration, we're looking for great talks. We want to see how you pushed application development forward! If you ever talked to a meet-up, pitched React to your co-workers, or done something awesome and want to talk about it, let us know!
Here are some areas of research we want to explore during the conference if you need some inspiration: server-side rendering, data fetching, language features (eg es6, clojure), immutability, rendering targets (eg svg, canvas), real-time updates…
We look forward to seeing many of you in person in just a few short months!


This package contains classes implementing a multiple document interface (MDI) framework. They do not contain application specific logic.


Hi!
How are You doing?
We sincerely hope that all of You are safe and sound.
Today we have another awesome interview. Some of us travel by car, others by bike. But what is as fast as a car but has only two wheels like a bike? Yes! A motorcycle. This fascinating means of traveling, even though risky, is highly romanticised.  Gionata is a professional motorcycle adventure traveler, so who, if not he, is able to fully describe and share the experience of motorcycle traveling?
“I have been traveling since 2001. And even though my first trip was probably not with a motorcycle, in 2005 I left home to do a world tour on it which lasted 8 years.”
Can You imagine leaving home for 8 years? Some of OsmAnd users have probably even done that, which does not make it more achievable. The amount of hard work behind such a long trip is tremendous. To secure the safety of the trip use OsmAnd! The app will help You avoid troubles on Your way and will definitely save You a few extra hours of preparation.
“Generally, I don’t prepare maps beforehand. Since I own a paid version and I have unlimited access to maps I just download all the maps for the trip I am taking and I make sure I have all of them because the main reason of using OsmAnd is to record my trip in a GPX file.”
OsmAnd is the app suitable for various means of traveling, as a result, it is rapidly developing. The more people use the app, the more detailed the maps become.
“I started using OsmAnd in 2016. A friend of mine told me about it. He was into hiking and said that I could probably benefit from using OsmAnd. I had never tried to use a navigational application, as a matter of fact, I was against applications such as Garmin and TomTom. I did not use any of those, but as soon as I started using OsmAnd I fell in love with it…I fell in love with the concept of it and I never left the app since then.”
Gionata uses the app both for himself and for his business. Not only does he use the function of recording, he also shares his tracks with his clients. With OsmAnd You can easily record, share, and show GPX files on a map.
“I own an adventure motorcycle blog and a motorcycle tour operator and in both cases we provide .gpx track created with OsmAnd for our customers to follow our GPX in order to reach trails, waypoints and hotels we have booked for them in order to follow the best routes available in each country they are visiting. The route that I was able to save using the app allowed me to recreate its design on Google Maps and then I printed it in my books, so now the people who read my books can see exactly where I went.”
Planning Your track ahead is a great habit which makes traveling more safe and pleasurable. Nevertheless, some unpredicted complications may happen. One cannot simply estimate all the factors, because there is no control over weather, traffic, accidents or, in the worst case scenario, disasters. An application such as OsmAnd will optimize Your on-the-spot decisions.
“Definitely, yes. The app has made my trips easier several times, when I decide last minute to make hotel reservations or if I need to find a spot to camp, or if I need a gas station; and many times, OsmAnd has brought me to the correct destination and that made my trip easier for sure.”
If You still have not settled down on a device to use while traveling, Gionata’s experience might help You! He has always been taking battery consumption of the app under consideration.
“I started with a Wiko Fever, which was not that good, it always went into protection, then it crushed, so I switched onto an Asus ZenFone which was quite all right with OsmAnd. Afterwards, I had a Samsung Galaxy S7. Now I have Samsung Note 10. Actually, all of the devices have great battery but I must say that, unfortunately, OsmAnd reduces battery life more than Google Maps does.”
Our today’s guest points out that for some members of the motorcycling community it might cause inconvenience, but overall it is not that big of an issue.
“My advice would be, if it is possible, to make OsmAnd less battery consuming, which would be great. So, the battery will last for the whole day and users will have the chance to use the device for any other activities, such as web browsing, emails, phone calls, and WhatsApp. And another thing, potentially interesting to develop, is to allow OsmAnd to interact with phone settings in order to activate more sensitive screen, so that we would be able to use it with gloves on.”
As always, at the end of our interview, we would like to thank Gionata and all of You for being with us today.
We sincerely hope that the world is slowly but steady is returning to normal.
See You!
PARTIREper - Gionata Nencini YouTube chanel.
______________________________
OsmAnd at Facebook, Twitter, and Reddit!
Join us at our groups of Telegram (EN), (IT), (FR), (DE), (RU), (UA).


Introduction
Welcome to the Doc-Garage API! You can use this API to access Doc-Garage API endpoints, which can get information on various documents, users, and roles in our database.
We have language bindings in Javascript only at the moment! You can view code examples in the dark area to the right.
Development
The application was developed with NodeJs while using Express for routing. The Postgres database was used with sequelize as the ORM.
Installation
- Ensure you have NodeJs and postgres installed
- Clone the repository
git clone https://github.com/andela-mmakinde/checkPoint2.git
- Change your directory on your terminal
cd checkPoint2
- Install all dependencies
npm install
- Run tests
npm test
- Run
npm run db:migrate
and thensequelize db:seed:all
to populate your database with initial roles and user data. - Start the app
npm run dev
.
API Endpoints
Access for the endpoints are restricted based on the Authorization token assigned to the user. Users are assigned a JWT on creating an account and login to the system, this token is therefore used to authorise access to the API endpoints. This documentation will make use of axios for http requests.
Users
| Request type | Endpoint | Action |
|---|---|---|
| POST | /users | Create a new user |
| GET | /users | Get all users |
| GET | /users/:id | Get details of a specific user |
| GET | /search/users | Search for a user with a search query |
| PUT | /users/:id | Edit user details |
| DELETE | /users/:id | Remove a user from database |
| POST | /users/login | To log a user in |
| POST | /users/logout | Log a user out |
Roles
| Request type | Endpoint | Action |
|---|---|---|
| POST | /roles | Create a new role |
| GET | /roles | Get all created roles |
| GET | /roles/:id | Get a users role by passing in the id |
| PUT | /roles/:id | Update a new role |
| DELETE | /roles/:id | Delete a role |
Documents
| Request type | Endpoint | Action |
|---|---|---|
| POST | /documents | Create a new document |
| GET | /documents | Retrieve all documents |
| GET | /documents/:id | Retrieve a specific document |
| GET | /users/:id/documents | Retrieve all documents created by a user |
| GET | /documents?offset=1&limit=10 | Retrieve maximum of first 10 documents |
| PUT | /documents/:id | Update a specific document |
| DELETE | /documents/:id | Delete a specific document |
Authentication
The api is authenticated using Json Web Tokens
(JWT), JWTs generally have three parts: a header, a payload, and a signature. The header identifies which algorithm is used to generate the signature, the payload contains the claims to make and the signature is calculated by base64url encoding the header and payload and concatenating them with a period as a separator.
The three separate parts are concatenated using periods:
token = encodeBase64Url(header) + '.' + encodeBase64Url(payload) + '.' + encodeBase64Url(signature)
token is now: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb2dnZWRJbkFzIjoiYWRtaW4iLCJpYXQiOjE0MjI3Nzk2Mzh9.gzSraSYS8EXBxLN_oWnFSRgCzcmJmMjLiuyu5CSpyHI
Doc-Garage expects for the token to be included in all API requests to the server in a header that looks like the following:
x-access-token: token
Users
Create a new user
axios.post('/api/v1/users', {
fullName: Yemisi Oduye,
email<EMAIL_ADDRESS>password: yemisi,
confirmPassword: yemisi
});
The above command returns JSON structured like this:
{
"message": "User created",
"jsonToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyRGV0YWlscyI6eyJpZCI6ODAsImVtYWlsIjoieWVtaXNpQG9kdXllLmNvbSIsInJvbGVJZCI6MiwiZnVsbE5hbWUiOiJZZW1pc2kgT2R1eWUifSwiaWF0IjoxNTAwODIyOTA0LCJleHAiOjE1MDA5MDkzMDR9.qbeOmizbXigNXT9B09a7NSUVurD959ECH9_Hza5lq0w"
}
Get all users
axios.get('/api/v1/users');
The above command returns JSON structured like this:
{
"user": [
{
"id": 80,
"email"<EMAIL_ADDRESS>"fullName": "Yemisi Oduye",
"roleId": 2,
"createdAt": "2017-07-23T15:15:04.575Z",
"updatedAt": "2017-07-23T15:15:04.575Z"
},
{
"id": 74,
"email"<EMAIL_ADDRESS>"fullName": "Mayowa Makinde",
"roleId": 2,
"createdAt": "2017-07-23T01:29:43.715Z",
"updatedAt": "2017-07-23T01:29:43.715Z"
},
{
"id": 9,
"email"<EMAIL_ADDRESS>"fullName": "Amala Amala",
"roleId": 2,
"createdAt": "2017-07-17T13:19:51.394Z",
"updatedAt": "2017-07-21T12:08:46.643Z"
},
{
"id": 15,
"email"<EMAIL_ADDRESS>"fullName": "Mayowa Makinde",
"roleId": 2,
"createdAt": "2017-07-22T21:44:09.064Z",
"updatedAt": "2017-07-22T21:44:09.064Z"
},
{
"id": 16,
"email"<EMAIL_ADDRESS>"fullName": "Mayowa Makinde",
"roleId": 2,
"createdAt": "2017-07-22T21:44:59.031Z",
"updatedAt": "2017-07-22T21:44:59.031Z"
}
],
"pagination": {
"total": 55,
"pageCount": 11,
"currentPage": 1,
"pageSize": 5
}
}
Get details of a specific user
axios.get('/api/v1/users/:id');
URL Parameters
| Parameter | Description |
|---|---|
| ID | The ID of the user you want to retrieve |
The above command returns JSON structured like this:
{
"id": 1,
"email"<EMAIL_ADDRESS>"fullName": "Mayowa Mankinde",
"roleId": 1,
"createdAt": "2017-07-13T15:47:57.713Z",
"updatedAt": "2017-07-20T12:07:56.772Z"
}
Search for a user with a search query
axios.get(
/api/v1/search/users?q=${searchQuery})
The above command returns JSON structured like this:
{
"user": [
{
"id": 80,
"email"<EMAIL_ADDRESS>"fullName": "Yemisi Oduye",
"roleId": 2,
"createdAt": "2017-07-23T15:15:04.575Z",
"updatedAt": "2017-07-23T15:15:04.575Z"
},
{
"id": 74,
"email"<EMAIL_ADDRESS>"fullName": "Mayowa Makinde",
"roleId": 2,
"createdAt": "2017-07-23T01:29:43.715Z",
"updatedAt": "2017-07-23T01:29:43.715Z"
},
{
"id": 9,
"email"<EMAIL_ADDRESS>"fullName": "Amala Amala",
"roleId": 2,
"createdAt": "2017-07-17T13:19:51.394Z",
"updatedAt": "2017-07-21T12:08:46.643Z"
},
{
"id": 15,
"email"<EMAIL_ADDRESS>"fullName": "Mayowa Makinde",
"roleId": 2,
"createdAt": "2017-07-22T21:44:09.064Z",
"updatedAt": "2017-07-22T21:44:09.064Z"
},
{
"id": 16,
"email"<EMAIL_ADDRESS>"fullName": "Mayowa Makinde",
"roleId": 2,
"createdAt": "2017-07-22T21:44:59.031Z",
"updatedAt": "2017-07-22T21:44:59.031Z"
}
],
"pagination": {
"total": 55,
"pageCount": 11,
"currentPage": 1,
"pageSize": 5
}
}
Edit user details
axios.put('/api/v1/users/:id');
URL Parameters
| Parameter | Description |
|---|---|
| ID | The ID of the user you want to edit |
The above command returns JSON structured like this:
{
"message": "User updated",
"jsonToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyRGV0YWlscyI6eyJlbWFpbCI6Im1heW93YUBhbmRlbGEuY29tIiwiaWQiOjEsInJvbGVJZCI6MSwiZnVsbE5hbWUiOiJZZW1pc2kgT2R1eWUifSwiaWF0IjoxNTAwODIzNTYwLCJleHAiOjE1MDA5MDk5NjB9.GJvu98KF2Fbb78pA417DFm8KQ7f2tAA822W_LSskwz4"
}
Remove a user from database
axios.delete('/api/v1/users/:id');
URL Parameters
| Parameter | Description |
|---|---|
| ID | The ID of the user you want to delete |
The above command returns JSON structured like this:
{
"message": "User details deleted successfully"
}
To log a user in
axios.get('/api/v1/users/login');
The above command returns JSON structured like this:
{
"message": "Logged in!",
"jsonToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyRGV0YWlscyI6eyJpZCI6MSwiZW1haWwiOiJtYXlvd2FAYW5kZWxhLmNvbSIsInJvbGVJZCI6MSwiZnVsbE5hbWUiOiJZZW1pc2kgT2R1eWUifSwiaWF0IjoxNTAwODIzNzM5LCJleHAiOjE1MDA5MTAxMzl9.c1mCKYBlG9TVkXtjEnzficuqSQPvzSnj6NCsMmRYIAE"
}
Log a user out
axios.get('/api/v1/users/logout');
The above command returns JSON structured like this:
{
"message": "Logout successful"
}
Role
Create a new role
axios.post('/api/v1/role', {
title: editor
});
The above command returns JSON structured like this:
{
"message": "Role created succesfully",
"role": {
"id": 3,
"title": "editor",
"updatedAt": "2017-07-23T15:37:52.012Z",
"createdAt": "2017-07-23T15:37:52.012Z"
}
}
Get all created roles
axios.get('/api/v1/roles');
The above command returns JSON structured like this:
[
{
"id": 1,
"title": "Admin",
"createdAt": "2017-07-13T15:47:57.458Z",
"updatedAt": "2017-07-13T15:47:57.458Z"
},
{
"id": 2,
"title": "User",
"createdAt": "2017-07-13T15:47:57.458Z",
"updatedAt": "2017-07-13T15:47:57.458Z"
},
{
"id": 3,
"title": "editor",
"createdAt": "2017-07-23T15:37:52.012Z",
"updatedAt": "2017-07-23T15:37:52.012Z"
}
]
Get a role by passing in the id
axios.get('/api/v1/roles/:id');
URL Parameters
| Parameter | Description |
|---|---|
| ID | The ID of the role you want to retrieve |
The above command returns JSON structured like this:
{
"id": 1,
"title": "Admin",
"createdAt": "2017-07-13T15:47:57.458Z",
"updatedAt": "2017-07-13T15:47:57.458Z"
}
Update a new role
axios.put('/api/v1/roles/:id');
URL Parameters
| Parameter | Description |
|---|---|
| ID | The ID of the role you want to update |
The above command returns JSON structured like this:
{
"message": "Role updated successfully",
"role": {
"id": 3,
"title": "editorAgain",
"createdAt": "2017-07-23T15:37:52.012Z",
"updatedAt": "2017-07-23T15:42:14.287Z"
}
}
Delete a role
axios.delete('/api/v1/roles/:id');
URL Parameters
| Parameter | Description |
|---|---|
| ID | The ID of the role you want to delete |
The above command returns JSON structured like this:
{
"message": "Role has been deleted successfully"
}
Documents
Create a new document
axios.post('/api/v1/documents', {
title: 'New Doc',
content: 'It's a new document I just created',
access: 'Public'
});
The above command returns JSON structured like this:
{
"message": "Document created",
"document": {
"id": 26,
"title": "New Doc",
"roleId": 1,
"content": "It's a new document I just created",
"ownerId": 1,
"access": "Public",
"updatedAt": "2017-07-23T15:45:14.674Z",
"createdAt": "2017-07-23T15:45:14.674Z"
}
}
Retrieve all documents
axios.get(
/api/v1/documents?limit=${limit}&offset=${offset});
The above command returns JSON structured like this:
{
"document": [
{
"id": 11,
"title": "New 1",
"content": "
It's new and again and again
",
"access": "Public",
"roleId": 2,
"ownerId": 9,
"createdAt": "2017-07-18T21:17:16.001Z",
"updatedAt": "2017-07-19T19:37:16.417Z"
},
{
"id": 25,
"title": "Don't",
"content": "
Don't fuck with the zohan
",
"access": "Public",
"roleId": 2,
"ownerId": 9,
"createdAt": "2017-07-22T23:13:46.145Z",
"updatedAt": "2017-07-22T23:13:46.145Z"
}
],
"pagination": {
"total": 2,
"pageCount": 1,
"currentPage": 1,
"pageSize": 2
}
}
Retrieve a specific document
axios.get('/api/v1/documents/:id');
URL Parameters
| Parameter | Description |
|---|---|
| ID | The ID of the document you want to retrieve |
The above command returns JSON structured like this:
{
"id": 18,
"title": "Mayowa again",
"content": "
Yesting 1,2
",
"access": "Public",
"roleId": 1,
"ownerId": 1,
"createdAt": "2017-07-22T09:12:05.089Z",
"updatedAt": "2017-07-22T09:12:05.089Z"
}
Retrieve all documents created by a user
axios.get(
/api/v1/users/${id}/documents/?limit=${limit}&offset=${offset});
URL Parameters
| Parameter | Description |
|---|---|
| ID | The ID of the user you want to retrieve his/her documents |
The above command returns JSON structured like this:
{
"myDocuments": [
{
"id": 26,
"title": "New Doc",
"content": "It's a new document I just created",
"access": "Public",
"roleId": 1,
"ownerId": 1,
"createdAt": "2017-07-23T15:45:14.674Z",
"updatedAt": "2017-07-23T15:45:14.674Z"
},
{
"id": 23,
"title": "Mayowa1",
"content": "
klsdnk
",
"access": "Public",
"roleId": 1,
"ownerId": 1,
"createdAt": "2017-07-22T13:41:25.874Z",
"updatedAt": "2017-07-22T13:41:25.874Z"
},
{
"id": 22,
"title": "Test pagination",
"content": "
Kblkdbdfkjdsbjss
",
"access": "Public",
"roleId": 1,
"ownerId": 1,
"createdAt": "2017-07-22T09:30:32.641Z",
"updatedAt": "2017-07-22T09:30:32.641Z"
},
{
"id": 21,
"title": "Another",
"content": "
,jdbdnk
",
"access": "Public",
"roleId": 1,
"ownerId": 1,
"createdAt": "2017-07-22T09:30:16.976Z",
"updatedAt": "2017-07-22T09:30:16.976Z"
},
{
"id": 20,
"title": "Even from here",
"content": "
Same thing happens
",
"access": "Public",
"roleId": 1,
"ownerId": 1,
"createdAt": "2017-07-22T09:16:37.289Z",
"updatedAt": "2017-07-22T09:16:37.289Z"
},
{
"id": 19,
"title": "Tryna create doc",
"content": "
It still creates
",
"access": "Public",
"roleId": 1,
"ownerId": 1,
"createdAt": "2017-07-22T09:16:11.157Z",
"updatedAt": "2017-07-22T09:16:11.157Z"
}
],
"pagination": {
"total": 9,
"pageCount": 2,
"currentPage": 1,
"pageSize": 6
}
}
Update a specific document
axios.put('/api/v1/documents/:id');
URL Parameters
| Parameter | Description |
|---|---|
| ID | The ID of the document you want to update |
The above command returns JSON structured like this:
{
"message": "Update Successful",
"updatedDocument": {
"id": 16,
"title": "It's Me",
"content": "It's a new document I just created",
"access": "Public",
"roleId": 1,
"ownerId": 1,
"createdAt": "2017-07-22T08:24:13.021Z",
"updatedAt": "2017-07-23T15:53:31.669Z"
}
}
Delete a specific document
axios.delete('/api/v1/documents/:id');
URL Parameters
| Parameter | Description |
|---|---|
| ID | The ID of the document you want to delete |
The above command returns JSON structured like this:
{
"message": "document deleted successfully"
}
Errors
The Kittn API uses the following error codes:
| Error Code | Meaning |
|---|---|
| 400 | Bad Request -- Your request sucks. |
| 401 | Unauthorized -- Your API key is wrong. |
| 403 | Forbidden -- The kitten requested is hidden for administrators only. |
| 404 | Not Found -- The specified kitten could not be found. |
| 405 | Method Not Allowed -- You tried to access a kitten with an invalid method. |
| 406 | Not Acceptable -- You requested a format that isn't json. |
| 410 | Gone -- The kitten requested has been removed from our servers. |
| 418 | I'm a teapot. |
| 429 | Too Many Requests -- You're requesting too many kittens! Slow down! |
| 500 | Internal Server Error -- We had a problem with our server. Try again later. |
| 503 | Service Unavailable -- We're temporarily offline for maintenance. Please try again later. |


RESTful queries coming to Infinispan 9.2
One of the interesting features in the upcoming Infinispan 9.2 release is the possibility to execute queries over the REST endpoint, enabling users to take advantage of the easy-to-use and expressiveness of the Ickle query language, that combines a subset of JP-QL with full-text features. You can learn more info about Ickle in a previous post.
Besides exposing query over REST, Infinispan 9.2 also adds support for mapping between JSON and Protobuf formats, allowing an efficient storage in binary format while exposing queries, reading and writing content as JSON documents.
To illustrate those new capabilities, this post will walk you through a sample app from scratch!
Sample app
Running the server
We start by running the Infinispan Server 9.2.0.CR2 (the latest release candidate):
This will get you a fresh instance of Infinispan running, with login and password 'user' and the REST port 8080 mapped to localhost. TIP: if you run more than one container, they’ll form a cluster automatically.
Creating an indexed cache
Next step is to create an indexed cache called 'pokemon'. We make use of the CLI (Command Line Interface) to create this cache. In the future, with ISPN-8529, we’ll also be able to create cache with arbitrary configuration using REST, but for now we execute a CLI recipe:
Creating the schema
In order to be able to query, we need to define a protobuf schema for our data. The schema follows the Protobuf 2 format (Protobuf 3 support is coming) and allows for extensions to define indexing properties (analyzers, storage, etc).
Here’s how it looks like:
The protobuf schema can contain some comments on top of fields and messages with "annotations" to control indexing. Hibernate Search users will recognize some of those pseudo annotations we are using here: they resemble closely their counterpart.
Registering the schema
Once we have our schema, we can easily register it via REST:
Populating the cache
We’re now ready to put some data in the cache. As mentioned earlier, ingesting can be done by sending JSON documents directly. Once Infinispan receives those documents, it will convert them to protobuf, index and store them.
In order to match a particular inbound document to an entity in the schema, Infinispan uses a special meta field called _type that must be provided in the document. Here’s an example of a JSON document that conforms to our schema:
Writing the document is easy:
we can retrieve content by key as JSON:
Querying
The new query endpoint can be called with an "action" parameter named "search", after the cache name. The simplest query, which returns all data can be done with:
If you do not want to return all the fields, use a Select clause:
Pagination can be controlled with the offset, max_results URL parameters:
Grouping is also possible:
Example of a query result:
Results:
Conclusion
Infinispan 9.2 makes it easier to quickly ingest and query datasets using the ubiquitous JSON format, without sacrificing type safety and storage size.
By storing Protobuf, this will also enable other clients like the Hot Rod C#/C++ clients to query, read and write data simultaneously with REST clients.
The full source code for the demo, along with instructions on how to populate the whole dataset can be found at Github.
Finally, please try out this new feature in your own dataset and let us know how it goes!