graphql-hooks
Workshop
@bmullan91
Setup
- Node v10.16.0
- clone github repository
React Hooks are...
reusable stateful logic functions that do not obstruct the view hierarchy
const { useApi } = require('some-lib')
function Hello ({name}) {
const { error, name } = useApi(
`/users/${id}`,
{name: 'loading...'}
)
if (error) return
 uh oh

return (

Hello:

{name}

)
}
- Store and manage local state
- Separation of concerns
- Functions vs Classes
GraphQL is a data query language
- Schema-based
- Strongly type
- Self-documenting
- Declarative
- Single endpoint
- Fewer roundtrips
- Smaller Payloads
Introducing graphql-hooks
graphql-hooks is a light-weight hooks-first GraphQL client
Workshop: github.com/nearform/graphql-hooks-workshop
Library: github.com/nearform/graphql-hooks
git clone https://github.com/nearform/graphql-hooks-workshop.git
Part 1: Hello World
Goals
- Get a GraphQL Server up and running
- Explore GraphiQL
Stack
- Node.js
- Fastify
- React
- GraphQL
Hello World Setup
cd graphql-hooks-workshop/exercises/part-1-hello-world/
npm install
npm run watch
- http://localhost:3000
- Navigate to the List Users page
- This is just a skeleton
- It is not connected to GraphQL... yet
Look at
src/server/graphql.js
- fastify-gql module
- data
- schema
- resolvers
graphiql: true
graphiQL
graphiQL
is an in-browser IDE for exploring GraphQL
http://localhost:3000/graphiql.html
RUN THIS QUERY
{
users {
name
}
}
Part 2: GraphQL Schema
Goals
- Let's update the GraphQL schema to Create a User
- Test it with GraphiQL
GraphQL Schema Setup
cd graphql-hooks-workshop/exercises/part-2-schema/
npm install
npm run watch
- http://localhost:3000
Look at src/server/graphql.js
A GraphQL schema defines the relationships and structure of the data
In the current
schema,
Query is the
entry point
that provides the type:
User
const schema = `
type User {
name: String
}
type Query {
users: [User]
}
`
GraphQL resolvers are functions that define what to do with the data
In the current
resolver,
Query defines what to do with the
data.
In this case, to fetch all of the
users:
const resolvers = {
Query: {
users() {
return userList
}
}
}
Generally, in Graph
QL
- Queries are for fetching
- Mutations are for writing
To Create a User,
add a mutation to the schema and resolvers in graphql.js
Modify src/server/graphql.js
const schema = `
type User {
name: String
}
type Query {
users: [User]
}
type Mutation {
createUser(name: String!): User
}
`
Modify src/server/graphql.js
const resolvers = {
Query: {
users() {
return userList
}
},
Mutation: {
createUser(_, user) {
userList.push(user)
return user
}
}
}
Test the new Create a User mutation
GraphiQL
http://localhost:3000/graphiql.html
RUN THIS QUERY
mutation CreateUser($name: String!){
createUser(name: $name) {
name
}
}
Don't forget to add
Query Variables
{
"name": "bob"
}
Test it - Fetch all users
{
users {
name
}
}
Part 3: graphql-hooks
Goals
- See graphql-hooks in action
- Connect the back-end data to the front-end webpage
- Retrieve a list of users from an API using a graphql hook
graphql-hooks setup
cd graphql-hooks-workshop/exercises/part-3-graphql-hooks/
npm install
npm run watch
Install graphql-hooks
npm install graphql-hooks
Modify src/client/js/app-shell.js
Create a graphql-hooks client
import { GraphQLClient } from 'graphql-hooks'
const client = new GraphQLClient({
url: '/graphql'
})
Wrap the app with the context provider
import { ClientContext } from 'graphql-hooks'
const App = (
<ClientContext.Provider value={client}>
<AppShell />
</ClientContext.Provider>
)
Modify src/app/pages/ListUsers.js
Add the GraphQL Queries
const LIST_USERS_QUERY = `
query ListUsersQuery {
users {
name
}
}
`
const CREATE_USER_MUTATION = `
mutation CreateUser($name: String!) {
createUser(name: $name) {
name
}
}
`
Modify src/app/pages/ListUsers.js
Add the hook: useQuery
import { useQuery } from 'graphql-hooks'
const {
data = { users: [] },
refetch: refetchUsers
} = useQuery(LIST_USERS_QUERY)
useQuery Options
- data: JSON received from API
- refetch: Function to trigger refetch
Modify src/app/pages/ListUsers.js
Add the hook: useMutation
import { useMutation } from 'graphql-hooks'
const [createUser] = useMutation(CREATE_USER_MUTATION)
Modify src/app/pages/ListUsers.js
Update createNewUser function
async function createNewUser() {
await createUser({ variables: { name } })
setName('')
refetchUsers()
}
Can delete the old users data
setName('')
is a React
"setState" function
refetchUsers()
is a GraphQL
action-taking function
Part 4: Query Variables
Goal
Implement pagination
Modify src/server/graphql.js
Update backend schema
type Query {
users(skip: Int, limit: Int): [User]
}
Modify src/server/graphql.js
Update backend resolver
Query: {
users (_, { skip = 0, limit }) {
return limit ?
userList.slice(skip, skip + limit) :
userList.slice(skip)
}
}
Create a new page
src/app/pages/PaginationPage.js
import React from 'react'
export default function PaginationPage() {
return (

Pagination

)
}
Add a Query
src/app/pages/PaginationPage.js
const USERS_QUERY = `
query UsersQuery($skip: Int, $limit: Int) {
users(skip: $skip, limit: $limit) {
name
}
}
`
Add the useState react-hook and buttons
src/app/pages/PaginationPage.js
import { useState } from 'react'
<...>
const [page, setPage] = useState(1)
<...>
return (

Pagination

<button onClick={() => setPage(page - 1)}>Prev</button>
<button onClick={() => setPage(page + 1)}>Next</button>

)
Add the useQuery graphql-hook
src/app/pages/PaginationPage.js
import { useQuery } from 'graphql-hooks'
<...>
const { data } = useQuery(USERS_QUERY, {
variables: {
limit: 1,
skip: page - 1
}
})
Add the Paginated List of Users
src/app/pages/PaginationPage.js
return (

Pagination

{data &&
data.users &&
data.users.map((user, i) =>

{user.name}

)}

<button onClick={() => setPage(page - 1)}>Prev</button>
<button onClick={() => setPage(page + 1)}>Next</button>

)
Add the new Component to the Navigation
src/app/AppShell.js
import PaginationPage from './pages/PaginationPage'
<...>
<Link to="/users">PaginationPage</Link>
<...>
<PaginationPage path="/users" />
Finally, add the path to the server
src/server/index.js
app.get('/users', appShellHandler)
Part 5: Caching
Goal
Avoid repeating identical requests
refetch no more
graphql-hooks supports custom cache plug-ins
graphql-hooks-memcache
- document based
- creates a hash of the operation and its options
- stores it in a simple k/v store
- uses Least Recently Used policy
Install graphql-hooks-memcache
npm install graphql-hooks-memcache
import memCache from 'graphql-hooks-memcache'
const client = new GraphQLClient({
url: '/graphql',
cache: memCache()
})
How would we prove it?
Part 6: Server Side Rendering
Goal
Speed up React app delivery
Server Side Rendering
- Reuse client side app to render on the backend
- Use the same graphql-hooks
- Serialize memcache and pass to the frontend
- Rehydrate cache object (initialState) on the frontend
Install graphql-hooks-ssr
npm install graphql-hooks-ssr
Supply fetch functionality
- Use isomorphic-unfetch
- Switches to node-fetch on backend
- Uses unfetch (fetch polyfill) on frontend
Install isomorphic-unfetch
npm install isomorphic-unfetch
Modify src/server/handlers/app-shell.js
const React = require('react')
const ReactDOMServer = require('react-dom/server')
// graphql-hooks
const { GraphQLClient, ClientContext } = require('graphql-hooks')
const memCache = require('graphql-hooks-memcache')
// components
const { default: AppShell } = require('../../app/AppShell')
Modify src/server/handlers/app-shell.js
const client = new GraphQLClient({
url: 'http://<IP_ADDRESS>:3000/graphql',
cache: memCache(),
fetch: require('isomorphic-unfetch'),
logErrors: true
})
Serialize initialState
- Use graphql-hooks-ssr
- Serialize on the backend
- Pass to the frontend
- Rehydrate at the frontend
Serialize initialState src/server/handlers/app-shell.js
import { getInitialState } from 'graphql-hooks-ssr'
const App = <ClientContext.Provider value={client}>
<AppShell />
</ClientContext.Provider>
const initialState = await getInitialState({
App,
client
})
Pass to the frontend
async function renderScripts({ initialState }) {
const appShellBundlePath = await getBundlePath('app-shell.js')
return `

`
}
Modify src/server/handlers/app-shell.js
const content = ReactDOMServer.renderToString(App)
const scripts = await renderScripts({ initialState })
const html = `
<!DOCTYPE html>

${head}

${content}

${scripts}

`
Update src/client/js/app-shell.js
const initialState = window.__INITIAL_STATE__
const client = new GraphQLClient({
url: '/graphql',
cache: memCache({ initialState })
})
Hydrate at the frontend
Replace render
with hydrate
import { hydrate } from 'react-dom'
<...>
hydrate(App, document.getElementById('app-root'))
Let's prove it
View Page Source
graphql-hooks are awesome!
Thanks
@bmullan91,
@edvinasbartkus,
@kristingalvin,
@davidmarkclem,
@matteocollina,
@wellboy


CBP seizes 2,133 pounds of cocaine valued at $31M at Port of Savannah
by Frank MilesA record 2,133 pounds of cocaine, valued at about $31 million, was seized by U.S. Customs and Border Protection (CBP) at the Port of Savannah last week, the department announced.
“Drug Trafficking Organizations are relentless in their attempts to smuggle drugs into the U.S.,” said Christopher Kennally, Area Port Director Savannah. “Through hard work, dedication and tireless efforts of Customs and Border Protection officers in Savannah, we will continue to hit back at the Drug Trafficking Organizations by intercepting their dangerous drugs at our ports of entry before they can harm our communities.”
DOJ ANNOUNCES SPIKE IN PROSECUTION OF IMMIGRATION-RELATED OFFENSES, HIGHEST ON RECORD
Fox 5 Atlanta reported that officers found the drugs hidden in a shipment of metal waste and scrap from South America on Oct. 29. The shipment included 21 duffel bags that contained a total of 818 cocaine bricks.
“In response to emerging narcotics smuggling trends and threats in the maritime environment, Customs and Border Protection has enhanced our enforcement strategy on targeting high-risk shipments from source narcotics nations that are either destined to Ports in the United States, or that pass through sovereign United States waters,” added Donald. F. Yando, Director of Field Operations Atlanta. “The scourge of illicit narcotics is a very serious international health and security threat, and CBP will continue to partner with our federal, state, local and international partners by intercepting these dangerous drugs when and where we can.”
CLICK HERE TO GET THE FOX NEWS APP
Last year, CBP seized an average of 4,657 pounds of narcotics every day across the nation.


Home
Sign Up
Log in
Cart
Product Available
Serial No
Product Name
Product Image
Code
Price
Action
1
Dining Table
Code:p325
৳47,000
2
Corner
Code:p325
৳27,000
3
Sofa
Code:p325
৳57,000
Delete Product
×
Are you sure to delete this product?
Add New Product
×
Name
Product Code
Price
Product Details
Choose file
Check me out
Add Item
Update Product
×
Search
Update Product
Name
Product Code
Price
Product Details
Choose file
Check me out
Update Item


Hunt: We are going to get hurt in January
Cape Town - Bidvest Wits coach Gavin Hunt believes his team face a tough schedule in the month of January as they catch up on their games in the league season.
The Clever Boys are currently fifth in the Absa Premiership standings, 13 points behind log leaders Kaizer Chiefs but they have played four matches less than Amakhosi.
Wits will play most their games in hand in the first month of the new year while Hunt's charges are also participating in the CAF Confederation Cup.
In quotes published on Soccer Laduma, Hunt said: "We are going to get hurt in January.
"We have got nine games, which are obviously our catch-up matches - and that is our problem.
"But it is what it is. We got knocked out of the cups early and we are not playing and obviously, we have CAF commitments as well.
"But there were times we could have played, although obviously other teams were playing. It was a bit of a balls-up, but anyway it is what it is."
Wits lost their last league game before the international break, 1-0 to SuperSport United, a result Hunt feels deflated his team.
Hunt continued: "The games in hand mean nothing. We had a game in hand last week and we lost. Not everybody has played the same amount of games.
"You can't really get a good perspective of the league. It's only the truth. We had a good start and last week was a dampener because winning would have taken us up the table.
"I don't actually look at the log table because it's not proper. I look at how many we have played and what we have done."
When the Premiership resumes following a two-week international break, Wits take on Highlands Park at Makhulong Stadium on Tuesday, November 26.
- TeamTalk Media


Defines a path that text can be rendered along.
DOM Information
Inheritance Hierarchy
Members
The SVGTextPathElement object has these types of members:
Events
The SVGTextPathElement object has these events.
| Event | Description |
|---|---|
| onload |
Occurs when the browser has fully parsed the element and all of its descendants. |
Methods
The SVGTextPathElement object has these methods.
| Method | Description |
|---|---|
| getCharNumAtPosition |
Gets the index of the character that the glyph cell bounding box contains at the specified point. |
| getComputedTextLength |
Returns the total sum of all advance values from rendering all characters within the given text element. |
| getEndPositionOfChar |
Gets the current text position of the specified character after the character is rendered in the user coordinate system where the glyphs that correspond to the specified character are rendered. |
| getExtentOfChar |
Gets a rectangle that defines the minimum and maximum x-coordinate and y-coordinate values in the user coordinate system where the glyphs that correspond to the specified character are rendered. |
| getNumberOfChars |
Gets the total number of characters that are available for rendering within the current element. |
| getRotationOfChar |
Gets the rotation value of the specified character, relative to the current user coordinate system where the glyphs that corresponding to the specified character are rendered. |
| getStartPositionOfChar |
Gets the current text position of the specified character before the character is rendered in the user coordinate system where the glyphs that correspond to the specified character are rendered. |
| getSubStringLength |
Calculates the total sum of all advance values from rendering the specified substring of the characters. |
| hasExtension |
Determines if the specified extension is supported. |
| selectSubString |
Selects the specified substring, just as if a user selected the substring interactively. |
Properties
The SVGTextPathElement object has these properties.
| Property | Description |
|---|---|
|
Sets or retrieves a value that indicates how the dominant baseline should be repositioned relative to the dominant baseline of the parent text content element. | |
|
Gets the names of the classes that are assigned to this object. | |
|
Sets or retrieves a value that determines or redetermines a scaled-baseline table. | |
|
Gets a value that indicates whether referenced resources that are not in the current document are required to correctly render a given element. | |
|
Sets or retrieves a value that indicates the color to paint the interior of the given graphical element. | |
|
Sets or retrieves a value that specifies the opacity of the painting operation that is used to paint the interior of the current object. | |
|
Sets or retrieves a value that indicates the algorithm that is to be used to determine what parts of the canvas are included inside the shape. | |
|
Determines if an element can acquire keyboard focus (that is, receive keyboard events) and be a target for field-to-field navigation actions (such as when a user presses the Tab key). | |
|
Sets or retrieves a value that alters the orientation of a sequence of characters relative to an inline-progression-direction of horizontal. | |
|
Sets or retrieves a value that alters the orientation of a sequence of characters relative to an inline-progression-direction of vertical. | |
|
Gets an | |
|
Gets or sets a value that indicates whether Internet Explorer should adjust inter-glyph spacing based on kerning tables that are included in the relevant font (that is, enable auto-kerning) or instead disable auto-kerning and set inter-character spacing to a specific length (typically zero). | |
|
Gets or sets the lengthAdjust attribute on the given element. | |
|
Gets the method attribute on the given textPath element. | |
|
Gets the nearest ancestor svg element. | |
|
Gets a white space-delimited list of required language extensions. | |
|
Gets or sets a white space-delimited list of feature strings. | |
|
Gets the spacing attribute on the given textPath element. | |
|
Gets the startOffset attribute on the given textPath element. | |
|
Sets or retrieves a value that indicates the color to paint along the outline of a given graphical element. | |
|
Sets or retrieves one or more values that indicate the pattern of dashes and gaps used to stroke paths. | |
|
Sets or retrieves a value that specifies the distance into the dash pattern to start the dash. | |
|
Sets or retrieves a value that specifies the shape to be used at the end of open subpaths when they are stroked. | |
|
Sets or retrieves a value that specifies the shape to be used at the corners of paths or basic shapes when they are stroked. | |
|
Sets or retrieves a value that indicates the limit on the ratio of the length of miter joins (as specified in the strokeLinejoin property). | |
|
Sets or retrieves a value that specifies the opacity of the painting operation that is used to stroke the current object. | |
|
Sets or retrieves a value that specifies the width of the stroke on the current object. | |
|
Gets a style object. | |
|
Gets or sets a comma-separated list of language names. | |
|
Gets or sets the textLength attribute on the given element. | |
|
Gets the element that established the current viewport. | |
|
Gets or sets the | |
|
Gets or sets a value that specifies the language that is used in the contents and attribute values of an element. | |
|
Gets or sets a value that indicates whether white space is preserved in character data. |
Standards information
- Scalable Vector Graphics: Text, Section 10.17.6
Remarks
Note In addition to the attributes, properties, events, methods, and styles listed above, SVG elements also inherit core HTML attributes, properties, events, methods, and styles.
In addition to text that is drawn in a straight line, you can also place text along the shape of a path element in SVG. To render a block of text along the shape of a path element, include the given text within a textPath element that includes an xlink:href
attribute with an Internationalized Resource Identifier (IRI) reference to the path element.
Examples
In the following code example, the textPath element is used to define a path for text rendering. The same path is used in the path example. Copy this sample to a text file and save it with the .html file extension. Run it in Internet Explorer 9 to see the text on a path.
It should look like this:
<!DOCTYPE HTML> <html> <head> </head> <body> <svg width="400" height="400"> <defs> <path id="myTextPath" d="M 50,100 Q 150,50 250,100" /> </defs> <text fill="steelblue" font-size="20"> <textPath xlink:href="#myTextPath">Internet Explorer Forever!</textPath> </text> </svg> </body> </html>
Build date: 1/13/2014


--- author: remyhonig date: 2014-09-07 layout: post comments: true sharing: true categories: tags: [emacs, apps] ---
If I have to keep a blog then I want it to be integrated in my trusted org-mode setup. That way I can write and publish my posts straight from the place I keep my notes and tasks which should lower the threshold as much as possible to actually post regularly to my new blog. This is how it looks:
*** Posting to Jekyll Blog with Org-Publish-Meta :_blog_: :PROPERTIES: :AUTHOR: remyhonig :DATE: [2014-09-07 Sun] :COMMENTS: true :SHARING: true :LAYOUT: post :IMAGE: movabletype.jpg :ID: 0236FFF2-B956-4682-B99E-219ADD97B197 :END: ***** Introduction If I have to keep a blog then I want it to be integrated in my trusted org-mode setup. That way I can write and publish my posts straight from the place I keep my notes and tasks which should lower the threshold as much as possible to actually post regularly to my new blog. ******* Versions These are the versions of the relevant packages and software used for this post. | emacs | <IP_ADDRESS> | | org-mode | 8.2.7c | | org-publish-meta | 9aa9aa8b |
These are the versions of the relevant packages and software used for this post.
| emacs | <IP_ADDRESS> |
| org-mode | 8.2.7c |
| org-publish-meta | 9aa9aa8b |
I already tried some approaches that I found right away by a search for "jekyll orgmode". These approaches had problems that I with my beginner knowledge of elisp could not solve or they did not match my requirements. I'll explain how they work and why they didn't for me.
This is his description of the Org-jekyll package:
Extracts subtrees from your org-publish project files that have a :blog: keyword and an :on: property with a timestamp, and exports them to a subdirectory _posts of your project's publishing directory in the year-month-day-title.html format that Jekyll expects. Properties are passed over as yaml front-matter in the exported files. The title of the entry is the title of the subtree.
But he starts of by stating (Please note: I am no longer using org-jekyll.) which - I assume - also means the package is not maintained any longer.
The problem I had is that while running an export using the command
org-jekyll-export-blog
it crashed with an error. I guess this is due
to a newer Orgmode version I'm using.
I liked this approach of the alternatives the best but I could not get it to work.
Cute-Jumper's approach is to have one org file per post and this is reason enough for me to not use it. It means I have to manage a bunch of files outside of my existing and regularly used org files. Also I'll have to export them one-by-one. That means I have to keep track of what post is already published and what post is not. Too much bookkeeping for my taste.
Eggcakers's approach is to use a Ruby gem to convert org-mode files to Jekyll files. This moves the responsibility of the conversion from org-mode out of Emacs and into Jekyll. This also uses one file per post and has a deal-breaking disadvantage. It can only convert the most common org-mode syntax. It cannot evaluate source blocks and include it into the export. Considering I'm writing a developer blog this will be something I want for certain posts.
Iana's approach makes it possible to not only store the blog posts in a single org-mode file but also to store the publish project configuration in the same org-mode file!
I found out about it through Sacha Chua's tweet:
Do you use Org Mode with Jekyll or Octopress? https://t.co/x4RDlDi4MI might be interesting. (Haven't tried it yet, since I use Wordpress)
— Sacha Chua (@sachac) February 16, 2014
Not all was well tough. I had to perform some fixes for my particular setup.
I use the So Simple theme for Jekyll which has a front matter property named image. I edited org-pm.el to look for this org-mode property in addition to the standard Jekyll front matter it already supports.
diff -c /Users/rhonig/.autosaves/\!Users\!rhonig\!.emacs.d\!lisp\!org-publish-meta\!org-pm.el.\~1\~ /Users/rhonig/.emacs.d/lisp/org-publish-meta/org-pm.el *** /Users/rhonig/.autosaves/!Users!rhonig!.emacs.d!lisp!org-publish-meta!org-pm.el.~1~ 2014-09-06 13:41:10.000000000 +0200 --- /Users/rhonig/.emacs.d/lisp/org-publish-meta/org-pm.el 2014-09-06 21:42:33.000000000 +0200 *************** *** 914,919 **** --- 914,920 ---- (permalink (plist-get section-plist :PERMALINK)) (published (plist-get section-plist :PUBLISHED)) (sharing (plist-get section-plist :SHARING)) + (image (plist-get section-plist :IMAGE)) (footer (plist-get section-plist :FOOTER))) (setq layout (or layout (plist-get section-plist :LAYOUT) (if date "blog" "default"))) *************** *** 937,942 **** --- 939,945 ---- (if comments (insert (format "comments: %s\n" comments))) (if sharing (insert (format "sharing: %s\n" sharing))) (if footer (insert (format "footer: %s\n" footer))) + (if image (insert (format "image: \n feature: %s\n" image))) (when categories (insert "categories:\n") (dolist (category (split-string categories ", ")) Diff finished. Sun Sep 7 11:19:35 2014
Because org-publish-metadata sets an Author property. The default site.owner is not used in the So Simple Theme which causes the bio photo to break.
I fixed this by adding an author in _data/authors.yml
.
# Authors remyhonig: name: Remy Honig avatar: bio-photo.jpg
I refer to that author in the properties of the post.
Grizzl is a dependency of org-publish-metadata.Installing grizzle is
as easy as running M-x package-install grizzl
but either
org-publish-metadata cannot autoload it properly or grizzle isn't
setup properly for autoloading (maybe Cask causes it, I'm not sure). I
get a Required feature `grizzl-core' was not provided
when running
M-x org-pm-menu
.
To solve this I load grizzl manually.
(add-to-list 'load-path "~/.emacs.d/lisp/org-publish-meta") (add-hook 'org-mode-hook (lambda () (load "grizzl-core.el") (load "grizzl-read.el") (require 'org-pm)))
I use a dark theme in Emacs so the exported source code blocks also have this theme. To display them nicely I added some css to the site
.org-src-container, .example { background-color: #353535; color: #fff; margin-left: 5px; padding-left: 10px; padding-top: 2px; padding-bottom: 2px; }
This is the workflow I can now use to write posts.
This will be needed only once.
This also triggers org-pm to load.
M-x org-pm-insert-new-project
*** org-publish projects :PROJECT_DEFS: ***** blog :PROPERTIES: :ID: 96AC22C1-B805-46D5-B6FC-C2B9C6C05A12 :END: ******* body-only t ******* publish-to-jekyll t ******* default-layout "page" ******* base-directory "~/blog/org-pm/" ******* base-extension "org" ******* recursive t ******* publishing-directory "~/blog/_posts/blog/" ******* publishing-function 'org-html-publish-to-html ******* headline-levels 4 ******* section-numbers nil ******* with-toc t ******* with-author t ******* with-creator t ******* with-emphasize t ******* with-sub-superscript nil ******* with-tables t ******* with-tags t ******* with-tasks t ******* with-todo-keywords nil ******* with-latex t ******* with-drawers nil ******* toc-heading "Contents" ******* static-base-directory "~/blog/org-pm/images/" ******* static-publishing-directory "~/blog/images/" ******* static-base-extension "css\\|js\\|less\\|scss\\|php\\|rb\\|py\\|pdf\\|jpg\\|gif\\|png" ******* static-publishing-function 'org-publish-attachment ******* static-recursive t...
For me the indentation of the new configuration heading was a level to
high. Maybe this is caused by the #+STARTUP: odd
org config, maybe
by me. I don't really care about this as this step will only be taken
once. Failing to do this will cause the org-publish-metada to not find
the configuration under the right header. See the org-publish-metadata
tutorial for details about the form of the configuration.
For creating a post.
Creating a post by simply adding a new heading and giving it the
_blog_
tag in this case. The tag name depends on the name of the
publishing configuration heading and must be wrapped in underscores.
When adding a date, use an inactive timestamp [2014-01-01]
as an
active timestamp <2014-01-01>
leads to a double date in the exported
post's filename. 2014-01-01-2014-01-01-hello.html
instead of
2014-01-01-hello.html
.
M-x org-pm-export
. You might need to expand all headings if you get
an error message when executing this command with S-tab S-tab S-tab
.
After the export I add the appropriate properties by copying them from the example post at the top. This could be done even faster by using yasnippet.
jekyll serve
cd ~/blog/_posts && git add . && git commit -m "New post" && git push origin


Genesis 41:39
And Pharaoh said unto Joseph, Forasmuch as God hath showed thee all this, there is none so discreet and wise as thou art:


Generated Narrative with Details
id
: cms-device-01
DeviceNames
-
Name
Type
*
Walker
user-friendly-name


Hello,
I am Javiann Marrero
I am Software Engineer Student
About Me
Fullstack Wep Development Student
Hello, My name is Javiann, I am learning to become a Software Engineer. I am currently taking a coding bootcamp at NorthWestern University. I am very passionate about my work and have a strong work ethic, i like to think of myself as a perfectionist. I was born in puerto rico and moved to Chicago when i was 5. Spanish is my first language and English is my second. I am currently learning HTML, CSS, and Javascript.
If you have any questions contact me
Project 2
Project 3


THIS NEW YEAR, WIN BY LOSING
*Rs 500 for every 1 kg you lose!
This offer is valid on our annual and 6-monthly weight loss packages
My DIETist is your app for weight loss if you want to burn those extra calories without getting much stressed! Losing weight will be more fun with the help of this app. Simply set your fitness goals after consulting our dieticians and then decide on the right plan which is easy for you to follow.
No need to pressurize yourself in following a boring fitness regime. If you have craving for Paneer then include your special Paneer salad diet for weight loss plan. With MyDIETist app you can learn how to lose weight much faster as compared to any other methods.
The app gives your diet score on a daily basis. Gone are the days when you used to check your weight on the weight machines to keep a track on the weight loss program. MyDIETist is a complete app which gives detailed analysis on what kind of food intake is impacting you? How much more water should be consumed?
What food ingredients should be a part of your meal on a daily basis? Etc. This helps you in knowing where the problem is and what actions should be taken to achieve your fitness goals. Over a period of time, you unconsciously follow eating the perfect food which is meant for you!
Before
after
Age: 39/34
Age: 35
Age: 28
Opening Hours:
Or Call Us:-9004121047 /<PHONE_NUMBER>


Notes & Messages
In the below examples, optional icons are used, although not necessary.
Note
This is a note
This is a default note
This is an info note
This is a warning note
This is an error note
This is a success note
This is a custom note
Notes can be customized however you like.

This is a note

This is a default note

 This is an info note

 This is a warning note

 This is an error note

 This is a success note

This is a custom note

Notes can be customized however you like.

Message

This is a message

This is a default message

 This is an info message

 This is a warning message

 This is an error message

 This is a success message

The following examples requires use of the jQuery library:
Dismiss
Any element with class msg-dismiss
will dismiss the element whose id matches it's data-dismiss
attribute.

 This is an error message

A dismissal can be "remembered" by setting a cookie on the user's computer so that the message will not reappear for a set number of hours. This is done by adding a data-remember
attribute whose value represents the number of hours to dismiss the message. A value of 0
will dismiss the message for a period of one year.

 This is a success message


WITNESS LIST Public School Finance, Select Committee April 27, 2004-10:00A HB 1 For: Doremus, Netticia (Self) Griffith, Dan (Self) Priest, Sandra (Self) Against: Baggett, Donnis (Self and Texas Daily Newspaper Assn. Texas Press Assn) Orzechowski, Bill (Self and Brown and Williamson Co and RJ Reynolds) Paynter, Suzii (Christian Life Commission Baptist General Convention of Texas) Ratcliff, Joe (Texas Grocery & Convenience Association) Yanez-Correa, Ana (Texas LULAC + NAACP) On: Craymer, Dale (Texas Taxpayers & Research Assoc) Hall, Michael (Self and Secretariat SPI) Hernandez, Gloria (Kickapoo Traditional Tribe of Texas) Hooke, Jeffery (Self) LeBas, James (Comptroller's Office) McKinney, Mike (Self and Wholesale Beer Distributors of Texas) Pitts Jr., John (Secretariat SPI) Reynolds, Brad (Lorillard Tobacco Co.) Watson, Laurie (Self and Brown Distributing Co Wholesale Beer Distributors of Texas) Webster, Joseph (Kickapoo Traditional Tribe of Texas)


{% load staticfiles %}
Search Function works best in Google Chrome and Mozilla Firefox browsers. Search the QIPR Registry by project title, description, QPI name, or gatorlink only.


---
layout: post
title: Faces long Wear Eye Pencil Solid Black
tags:
- Faces Cosmetics
status: publish
type: post
published: true
meta:
_yoast_wpseo_metakeywords: ''
_thumbnail_id: '6300'
_yoast_wpseo_linkdex: '78'
_edit_last: '2'
_yoast_wpseo_focuskw: Faces long Wear Eye Pencil Solid Black
_yoast_wpseo_title: Faces long Wear Eye Pencil Solid Black - Miss Enchanted
_yoast_wpseo_metadesc: Faces long Wear Eye Pencil Solid Black
_yoast_wpseo_meta-robots-noindex: '0'
_yoast_wpseo_meta-robots-nofollow: '0'
_yoast_wpseo_meta-robots-adv: none
_yoast_wpseo_sitemap-include: ! '-'
_yoast_wpseo_sitemap-prio: ! '-'
_yoast_wpseo_canonical: ''
_yoast_wpseo_redirect: ''
---
Faces Canada Long Wear Eye Pencil Solid Black Review
Ever since I heard rave reviews about Lakme’s Kohl Ultimate I have been dying to pick it up! However, the steep cost at Rs 650 held me back. I got the Lakme Eyeconic Kajal but it is nowhere near jet black as I find it a tad greyish.
Price: Rs.250
I happened to be at Faces Store in Mumbai in December and the SA insisting on swatching the Long Wear eye pencils on my arm. Since I had already purchased a ton Faces Long Wear pencils in grey, brown, blue and forest green during their 50 per cent sale, I didn’t pay much attention. But I was taken with the creaminess of the black eye pencil! This was just what I was looking for! A Kohl Ultimate dupe but at Rs 250. Though I haven’t used the Lakme Kohl Ultimate I have swatched it enough to know that the consistency is similar.
In the photo I have compared Lakme Eyeconic and Faces. While I use Lakme Eyeconic for everyday use, the Faces pencil with smoky eye look or a more dramatic evening look. Since it’s so jet black I am careful of how I use it.  I use it to line the outer corners of my eyes to kinda lift the eyes.
Faces Long wear Eye Pencil in Solid Black is creamy, glides easily and it’s absolutely jet black. Moreover, it takes less than a minute to set and doesn’t budge. I have watery sensitive eyes and not too many eye pencils stay put for more than half an hour on my waterline. I have found that this stays put on my oily lids and waterline for about four hours but staying power would also depend on your skin type.
It’s easy to remove with cotton, baby oil or a local cleansing milk. The only drawback is that it comes in pencil form and one tends to lose a lot of product while sharpening. However, if you don’t sharpen pencils to a ‘point’, you won’t waste product.
Since its so creamy, it can be used to tightline the base of the lashes. It smudges and blends very well if smudged before it sets. I use this in place of a good black eyeshadow for a smokey look. I know I don’t have eyes like Kareena so please excuse. Here is how it looks.
I will most certainly repurchase this. I do hope that they don’t change the formula. None of the other four pencils have such a pigmented creamy formula, so I am hoping it wasn’t just one of a kind.
Which is your favorite and blackest Kohl ?


PING-PONG
How to play
The Ping-Pong application will start counting from 1 up to your desired number, subject to the following provisions:
- Numbers that are divisible by three will show up as "PING!";
- Numbers that are divisible by five will show up as "PONG!";
- Numbers that are divisible by fifteen will show up as "PING-PONG!".


Buildings¶
Buildings can be constructed in your city to improve your city’s functionality. Buildings can improve decrees, wealth, population, and structure. Without upgrading them, they sit as empty spots on your city. To build them, allocate effort to one of the buildings in city.buildings
. However, buildings also exclusively require gold equal to the required effort to upgrade. In order to apply allocated effort to a building you must have an equivalent amount of gold. The gold will be automatically spent and any excess effort will be wasted. Once the required amount of effort and gold required to upgrade is reached, the building will be upgraded.
For example, if you wanted to allocate effort to the Instant Decree Booster, you would type actions.add_effort(city.buildings[BuildingType.police_station], amount)
. For more information on allocating effort, see Effort.
There are 6 types of buildings:
Police Station¶
This increases the effectiveness of your correctly guessed decrees for instant disasters.
| Level | Effort Required | Gold Required | Damage Mitigated |
|---|---|---|---|
| Base | 0 | 0 | 50% |
| 1 | 40750 | 40750 | 75% |
Gelato Shop¶
This increases the effectiveness of your correctly guessed decrees for lasting disasters.
| Level | Effort Required | Gold Required | Damage Mitigated |
|---|---|---|---|
| Base | 0 | 0 | 50% |
| 1 | 35050 | 35050 | 75% |
Mint¶
This gives you additional wealth for free.
| Level | Effort Required | Gold Required | Wealth Added |
|---|---|---|---|
| 1 | 28440 | 28440 | 150 |
Billboard¶
This gives you additional population through tourism. This does not increase your population above your structure level. This amount is added every turn.
| Level | Effort Required | Gold Required | Population Added |
|---|---|---|---|
| 1 | 28440 | 28440 | 25 |
3D Printer¶
Shown as the 3D printer, this gives you additional structure. This does not increase your structure above your max structure level. This amount is added every turn.
| Level | Effort Required | Gold Required | Structure Added |
|---|---|---|---|
| 1 | 35050 | 35050 | 25 |
Big Canoe¶
The big canoe. This beast gives you additional wealth, population, and structure. As with the population and structure boosters, population and structure will not be added past their max. However, structure is added first, so if population and structure are equal, they will increase at equal rates.
| Level | Effort Required | Gold Required | Wealth Added | Population Added | Structure Added |
|---|---|---|---|---|---|
| 1 | 80100 | 80100 | 200 | 30 | 30 |


Alternate alert style for notifications
Due to inactivity, your session has expired. Please save any data you may have entered before refreshing the page. Log in
Due to inactivity, your session will expire in 00:00:56. To extend your session another 2 minutes click: Extend.
The UX Team has rescheduled to the following date: 2014 - 12 - 17.
Please complete the attendance form to confirm your attendance: More Info.
The UX Team has rescheduled to the following date: 2014 - 12 - 17.
Please complete the attendance form to confirm your attendance: More Info.


Tools for accessing and processing datasets prepared by the Foundation SmarterPoland.pl. Among all: access to API of Google Maps, Central Statistical Office of Poland, MojePanstwo, Eurostat, WHO and other sources.
| Version: | 1.7 |
| Depends: | R (≥ 3.0), ggplot2, httr, htmltools |
| Imports: | jsonlite, rjson |
| Published: | 2016-03-28 |
| Author: | Przemyslaw Biecek (Foundation SmarterPoland.pl) |
| Maintainer: | Przemyslaw Biecek <przemyslaw.biecek at gmail.com> |
| License: | GPL-3 |
| NeedsCompilation: | no |
| CRAN checks: | SmarterPoland results |
| Reference manual: | SmarterPoland.pdf |
| Package source: | SmarterPoland_1.7.tar.gz |
| Windows binaries: | r-devel: SmarterPoland_1.7.zip, r-release: SmarterPoland_1.7.zip, r-oldrel: SmarterPoland_1.7.zip |
| OS X binaries: | r-release: SmarterPoland_1.7.tgz, r-oldrel: SmarterPoland_1.7.tgz |
| Old sources: | SmarterPoland archive |
| Reverse depends: | PogromcyDanych |
Please use the canonical form https://CRAN.R-project.org/package=SmarterPoland to link to this page.


QOpenGLTimerQuery Class
The QOpenGLTimerQuery class wraps an OpenGL timer query object. More...
| Header: | #include <QOpenGLTimerQuery> |
| qmake: | QT += gui |
| Since: | Qt 5.1 |
| Inherits: | QObject |
Public Functions
| QOpenGLTimerQuery(QObject *parent = Q_NULLPTR) | |
| ~QOpenGLTimerQuery() | |
| void | begin() |
| bool | create() |
| void | destroy() |
| void | end() |
| bool | isCreated() const |
| bool | isResultAvailable() const |
| GLuint | objectId() const |
| void | recordTimestamp() |
| GLuint64 | waitForResult() const |
| GLuint64 | waitForTimestamp() const |
- 32 public functions inherited from QObject
Additional Inherited Members
- 1 property inherited from QObject
- 1 public slot inherited from QObject
- 2 signals inherited from QObject
- 1 public variable inherited from QObject
- 10 static public members inherited from QObject
- 9 protected functions inherited from QObject
- 2 protected variables inherited from QObject
Detailed Description
The QOpenGLTimerQuery class wraps an OpenGL timer query object.
OpenGL timer query objects are OpenGL managed resources to measure the execution times of sequences of OpenGL commands on the GPU.
OpenGL offers various levels of support for timer queries, depending on the version of OpenGL you have and the presence of the ARB_timer_query or EXT_timer_query extensions. The support can be summarized as:
- OpenGL >=3.3 offers full support for all timer query functionality.
- OpenGL 3.2 with the ARB_timer_query extension offers full support for all timer query functionality.
- OpenGL <=3.2 with the EXT_timer_query extension offers limited support in that the timestamp of the GPU cannot be queried. Places where this impacts functions provided by Qt classes will be highlighted in the function documentation.
- OpenGL ES 2 (and OpenGL ES 3) do not provide any support for OpenGL timer queries.
OpenGL represents time with a granularity of 1 nanosecond (1e-9 seconds). As a consequence of this, 32-bit integers would only give a total possible duration of approximately 4 seconds, which would not be difficult to exceed in poorly performing or lengthy operations. OpenGL therefore uses 64 bit integer types to represent times. A GLuint64 variable has enough width to contain a duration of hundreds of years, which is plenty for real-time rendering needs.
As with the other Qt OpenGL classes, QOpenGLTimerQuery has a create() function to create the underlying OpenGL object. This is to allow the developer to ensure that there is a valid current OpenGL context at the time.
Once created, timer queries can be issued in one of several ways. The simplest method is to delimit a block of commands with calls to begin() and end(). This instructs OpenGL to measure the time taken from completing all commands issued prior to begin() until the completion of all commands issued prior to end().
At the end of a frame we can retrieve the results by calling waitForResult(). As this function's name implies, it blocks CPU execution until OpenGL notifies that the timer query result is available. To avoid blocking, you can check if the query result is available by calling isResultAvailable(). Note that modern GPUs are deeply pipelined and query results may not become available for between 1-5 frames after they were issued.
Note that OpenGL does not permit nesting or interleaving of multiple timer queries using begin() and end(). Using multiple timer queries and recordTimestamp() avoids this limitation. When using recordTimestamp() the result can be obtained at some later time using isResultAvailable() and waitForResult(). Qt provides the convenience class QOpenGLTimeMonitor that helps with using multiple query objects.
See also QOpenGLTimeMonitor.
Member Function Documentation
QOpenGLTimerQuery::QOpenGLTimerQuery(QObject *parent = Q_NULLPTR)
Creates a QOpenGLTimerQuery instance with the given parent. You must call create() with a valid OpenGL context before using.
QOpenGLTimerQuery::~QOpenGLTimerQuery()
Destroys the QOpenGLTimerQuery and the underlying OpenGL resource.
void QOpenGLTimerQuery::begin()
Marks the start point in the OpenGL command queue for a sequence of commands to be timed by this query object.
This is useful for simple use-cases. Usually it is better to use recordTimestamp().
See also end(), isResultAvailable(), waitForResult(), and recordTimestamp().
bool QOpenGLTimerQuery::create()
Creates the underlying OpenGL timer query object. There must be a valid OpenGL context that supports query objects current for this function to succeed.
Returns true
if the OpenGL timer query object was successfully created.
void QOpenGLTimerQuery::destroy()
Destroys the underlying OpenGL timer query object. The context that was current when create() was called must be current when calling this function.
void QOpenGLTimerQuery::end()
Marks the end point in the OpenGL command queue for a sequence of commands to be timed by this query object.
This is useful for simple use-cases. Usually it is better to use recordTimestamp().
See also begin(), isResultAvailable(), waitForResult(), and recordTimestamp().
bool QOpenGLTimerQuery::isCreated() const
Returns true
if the underlying OpenGL query object has been created. If this returns true
and the associated OpenGL context is current, then you are able to issue queries with this object.
bool QOpenGLTimerQuery::isResultAvailable() const
Returns true
if the OpenGL timer query result is available.
This function is non-blocking and ideally should be used to check for the availability of the query result before calling waitForResult().
See also waitForResult().
GLuint QOpenGLTimerQuery::objectId() const
Returns the id of the underlying OpenGL query object.
void QOpenGLTimerQuery::recordTimestamp()
Places a marker in the OpenGL command queue for the GPU to record the timestamp when this marker is reached by the GPU. This function is non-blocking and the result will become available at some later time.
The availability of the result can be checked with isResultAvailable(). The result can be fetched with waitForResult() which will block if the result is not yet available.
See also waitForResult(), isResultAvailable(), begin(), and end().
GLuint64 QOpenGLTimerQuery::waitForResult() const
Returns the result of the OpenGL timer query.
This function will block until the result is made available by OpenGL. It is recommended to call isResultAvailable() to ensure that the result is available to avoid unnecessary blocking and stalling.
See also isResultAvailable().
GLuint64 QOpenGLTimerQuery::waitForTimestamp() const
Returns the current timestamp of the GPU when all previously issued OpenGL commands have been received but not necessarily executed by the GPU.
This function blocks until the result is returned.
See also recordTimestamp().


Yes
Legwork Primary Logo
The essence of who we are comes from our purpose to deliver happiness to our clients. But that’s not just lip service: it’s something we live by here at Legwork. Employees lend a hand when needed. If someone is feeling overwhelmed, others step in and help. Our voice as a company should exemplify the intrinsic nature of how we treat others. This means writing for Legwork should be clear, friendly, and straightforward. We want to be helpful, but not overbearing, expert, yet modest. Above all, we aim to treat people with respect and cultivate happiness.
The Legwork logo is the focal point of our brand. Therefore, it’s important to retain it’s integrity and use it exactly as specified in the guidelines below.
Sometimes, it may be preferred to use the Legwork “Smile” on it’s own, rather than the full logo: predominately, when the Legwork brand has already been established through the use of the full logo, copy, or vocally.
Futhermore, there are instances where we may want to use the Legwork Smile independently, such as apparel, stickers, or other merchandise– instances where we want the graphics to be the main point of focus, and the icon to act as a visual reminder.
To ensure legibility, our logo must stand out among other elements. This is achieved by surrounding our logo with clear space. The logo and the smile icon’s exclusion zone is equal to half the height of the icon (marked as × in the diagram).
Never reduce the Logo or Smile to a size smaller that the following recommendations, as it can result in loss of readibility and impact.
The Legwork logo should never be smaller than 70px in digital or 20mm in print.
The Legwork Smile icon should never be smaller than 21px in digital or 6mm in print.
It’s crucial to maintain consistency. The Legwork logo should never be modified or added to and it should never be altered in any way. That includes rotating, warping, or any action that results in a disproportionate logo. It should always retain the orientation and color specified below.
Legwork Primary Logo
Legwork Logo (in white) over color background
Legwork Logo in black and white
Legwork logo in black and white
Legwork logo in any color besides Legwork red (Imperial), black, or white
Multi-colored Legwork Logo
Using the Legwork Smile as the letter "O" in words
Rotating the logo
Our colors help define value and strengthen our purpose to deliver happiness both inside and outside of the company. Designs created for our brand should be inviting, yet professional. Tints of colors are permitted as long as the integrity of the color is maintained. Deep Sea should be treated as our brand’s black.
Primary colors should be used to attract attention to something of importance. Imperial is often used for primary CTA’s and Olympic is often used to represent a clickable element.
These colors are used to add vibrancy and complement primary colors to break up white space.
These colors are primarily used for backgrounds and type.
Gradients can be added to provide a sense of energy. Be cautious not to overuse gradients and be sure to always use flat colors as a fallback on the web.
A lot of our colors have specific uses, primarily for web formats, to indicate certain actions. A general overview is provided below:
Imperial
#EE3B23
The primary red, Imperial, is used for the logo and main CTA’s. Otherwise, it should be used frugally to maintain the integrity of the color.
Olympic
#44A8DE
Olympic is used for text links and indicates when something is clickable.
Space Gray
#455B64
Space gray is our heading color. All headings should be this color.
Blue Steel
#617D8A
Blue steel is our text color, primarily for content. All paragraph text should be this color.
Off White
#F1F3F4
Off White is generally used as a background color option to break up white space.
Gradients and
Secondary Colors
Colors used to add flare and a sense of excitement. They are used sparingly and only as background colors.
There are endless possbilities when it comes to color, which also means there are endless “don’ts.” A general rule of thumb is to never use color on color. If you’re using a colored background, don’t use colored text or icons.
Don’t use color on top of color. If you have a colored background, use white text.
Same with icons, use white icons if you have a colored background.
Consistent typography is a critical tool for the Legwork brand. We use two main font families: Avenir for digital and print and Proxima Nova for Web.
Proxima Nova Regular
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Proxima Nova Medium
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Proxima Nova Bold
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Proxima Nova Heavy
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Tracking (letter-spacing) and leading (line-height) both play crucial roles in creating the spacious and professional look throughout Legwork’s content. Be sure to give text plenty of breathing room; but, be cognizant of how you use it. A few things to watch out for:
At Legwork, we prefer to use bright, positive imagery that captures the best in people.
Overlays can be extremely beneficial and help add contrast to text or CTA’s. We have 4 different overlay options to choose from.
Overlays, when executed correctly, can add value and human connection. Please adhere to the guidelines below to ensure proper usage:


FuncUnit.branch(check1, success1, check2, success2, timeout, a, if) -> undefined
{}
{}
{}
{}
{}
{success2 {Function}
function that runs when check2 returns true
{timeout {Number}
neither checker returns true before this timeout, the test fails
{undefined}
Uses 2 checker methods to see which success function to call. This is a way to conditionally run one method if you're unsure about the conditions of your page, without causing a test failure. For example, this is useful for login steps, if you're not sure whether the app is logged in.


Visit Our Stores
Our Salmon Cookies are part of our 'Love' treats range. The ‘Love’ category contains a range of
deliciously different treats, that are great for peoble who love Cookies.
Interesting, intriguing, different and delicious.
These tasty, crunchy biscuits are made with responsibly sourced salmon, whitefish and sweet potato (a
delicious and healthy alternative to white potato)
They are grain free, contain no artificial preservatives or colourings, are low in calories and are a
great alternative to naughty human biscuits.
Locations
Our Stors in Dffirent Locations:
- Seattle
- Tokyo
- Dubai
- Paris
- Lima
Hours Open
Our working Time start from 6am: to 8pm: in all locations
Contacts
Get in touch with our friendly customer service team,
find out where in the world you can buy Salamos Cookies products
and read about our delivery and returns policies.
- Syattel:
- Phone Number: 0096-489-6542178
-<EMAIL_ADDRESS>- Tokyo:
- Phone Number: 0096-489-6542178
-<EMAIL_ADDRESS>- Dubai:
- Phone Number: 0096-489-6542178
-<EMAIL_ADDRESS>- Paris:
- Phone Number: 0096-489-6542178
-<EMAIL_ADDRESS>- Lima
- Phone Number: 0096-489-6542178
- E-mail:lima@gmail.com


Error: {{ error }} {% endif %}
Analyzing image..
Upload your photo to see which TV show character most closely resembles you!
Note: your uploaded photo is deleted immediately after scanning it. We do NOT store this information and never intend to!


Tesla has 42,000 employees globally, 3,200 in China, chairwoman says
SHANGHAI (Reuters) - U.S. electric vehicle maker Tesla Inc has 42,000 employees globally and 3,200 staff in China, its chairwoman Robyn Denholm said on Tuesday.
Denholm was speaking on the sidelines of a week-long import expo in Shanghai, where Tesla has started trial production at its $2 billion factory as it races to reach an ambitious target of an annualized production rate of 500,000 vehicles by end-2019.


What I think I have learned so far
How the web works:
There is the user who uses a browser to display the information on their computer screen.What is a HTML document:
It can be text, images, videos, links, files, etc.
Pretty much anything.
It gives instructions on 'WHAT people should see' and 'HOW people should see it'.
These instructions are very precise because computers are STUPID - they can and will only do what they are told to.
A tiny spelling mistake by the programmer will not be just a tiny spelling mistake but the reason why the whole program doesn't work!
An important thing to remember until we get used to it.
We tend to take for granted how intelligent human beings are.
The first baby steps:
Tags: usually have an opening tag and closing tag
Void tags: don't require a closing tag because it has no content
Bold
Italics
Paragraphs
BreaksYou don't have to remember everything:
Last but not least, unlike learning French, you don't have to memorize all the tags and attributes.
We're allowed to use Google.


Initial
CPSR( NAME = 'cpsr' )
let instance = new CPSR( 'app' )
It's create sessionStorage object with name app
which contents is:
{ session: TIME, recent: '', data: [] }
It can be access by using sessionStorage.getObject( NAME )
or settings manually using sessionStorage.setObject( NAME, CONTENT )
See demo install
Properties
These properties appear during capture session:
-
file_info.
OBJECTname
STRING, a file nametype
STRING, like text/htmlsize
STRING, extended size conversion ( Bytes, MB, GB, etc )lastModified
NUMBER
-
file_mime.
OBJECTcontains splited MIME, like text/plain
primary
STRING, like textsecondary
STRING, like plain
-
file_value
STRINGThis STRING is native/original value
-
file_content
STRINGThese STRING is HTML string, not plain text
These properties appear during retrieve session:
storage_exists
default isfalse
-
storage_path
ARRAYIt's contains only path ( file ) name, not include it's content
-
storage_recent
STRINGContains single path ( file name )
Methods
-
capture( FILE, CALLBACK )
Where FILE is element input type file
Afterward CALLBACK can be trigger
See, demo capture.
-
capturePreview( IFRAME )
All source include image, audio, video will render via IFRAME element
See, demo capture preview
-
save()
Extend data to CPSR storage, ignore if exists. see demo save.
-
retrieve( PATH )
Return Object from sessionStorage cpsr[DATA][n].content.
the object children are:- Obj.
value
- Obj.
type
- Obj.
size
Then main target is Obj.value. see demo retrieve
- Obj.
-
retrievePreview( IFRAME, DATA )
Use this method inside retrieve. IFRAME content will generate from retrive object result.
the DATA is must object, that is retrieve return value
See demo retrieve preview.


{% extends "content_template.html" %} {% from "components/page-header.html" import page_header %} {% from "components/copy-to-clipboard.html" import copy_to_clipboard %} {# Used by the content_template.html layout, prefixes the "navigation" accessible name #} {% set navigation_label_prefix = 'Pricing information' %} {% block per_page_title %} Billing details {% endblock %} {% block content_column_content %} {{ page_header('Billing details') }}
You can use the information on this page to add the Cabinet Office as a supplier. Your organisation may need to do this before you can raise a purchase order (PO).
Contact us if you need any other details.
Cabinet Office
The White Chapel Building
10 Whitechapel High Street
London
E1 8QS
National Westminster Bank PLC (part of RBS group)
Government Banking Services Branch
2nd Floor
280 Bishopsgate
London
EC2M 4RB
Cabinet Office
SSCL – Accounts Receivable
PO Box 221
Thornton-Cleveleys
Blackpool
Lancashire
FY1 9JN


Element 0
Paragraph
Element 1
Element 2
Element 3
Element 4
Superhero
Franchise
Batman
DC Comics
Yoda
Star Wars
Thanos
Marvel Comics
Little Ani
Star Wars


|
jubilant-funicular
|
Manages "System" stuff, whatever that means. More...
#include <SystemManager.h>
Static Public Member Functions | |
| static GLSLProgram * | getGLSLProgram (crstring progPath) |
| static GLSLProgram * | getGLSLProgram (crstring name, crstring vert, crstring frag) |
| static Window * | getWindow (crstring windowTitle, int width=640, int height=480, int flags=0) |
| Gets a Window with specified title, width, height, and flags. | |
| static Window * | getWindow (crstring windowTitle, int flags) |
| static void | destroy () |
| Destorys the manager, freeing all necessary data. | |
Static Private Attributes | |
| static std::map< std::string, GLSLProgram * > | m_glslMap |
| Collection of GLSLProgram. | |
| static std::map< std::string, Window * > | m_windowMap |
| Collection of Window. | |
Manages "System" stuff, whatever that means.
Definition at line 11 of file SystemManager.h.
|
static |
Gets GLSLProgram at specified path Assumes vertex shader is (progPath + ".vert") and fragment shader is (progPath + ".frag")
Definition at line 7 of file SystemManager.cpp.
|
static |
Gets GLSLProgram, specifying explicitly where the vertex and fragment shaders are. Uses name as the key in the map
Definition at line 14 of file SystemManager.cpp.


M.S. in Computer Science major with proven success in Real-Time and Predictive Analytics for Smart Public Transportation. Adept in developing laboratory experiments, mentoring students in laboratory best practices and techniques and managing research-related collateral. Experience in Python Machine Learning, Web Development
GPA 3.5/4.0
Thesis: Real-Time and Predictive Analytics for Smart Public Transportation.
Coursework in Machine Learning, Distributed Algorithm and Artificial intelligence.
Graduated with 3.8/4.0 major GPA
Achieved outperformance in classes and received recommendation letter
Elected to Vice President for Information System Society in 2014-2015.
Higher Diploma in Software Engineering.


|
App Engine Python SDK
v1.6.9 rev.445
The Python runtime is available as an experimental Preview feature.
|
Public Member Functions | |
| def | __init__ |
| def | Dispatch |
| def | __str__ |
| Public Member Functions inherited from google.appengine.tools.old_dev_appserver.CGIDispatcher | |
| def | __init__ |
| def | Dispatch |
| def | __str__ |
| Public Member Functions inherited from google.appengine.tools.old_dev_appserver.URLDispatcher | |
| def | Dispatch |
| def | EndRedirect |
Dispatcher that executes local functions like they're CGIs. The contents of sys.modules will be preserved for local CGIs running this dispatcher, but module hardening will still occur for any new imports. Thus, be sure that any local CGIs have loaded all of their dependent modules _before_ they are executed.
| def google.appengine.tools.old_dev_appserver.LocalCGIDispatcher.__init__ | ( | self, | |
| config, | |||
| module_dict, | |||
| path_adjuster, | |||
| cgi_func | |||
| ) |
Initializer. Args: config: AppInfoExternal instance representing the parsed app.yaml file. module_dict: Passed to CGIDispatcher. path_adjuster: Passed to CGIDispatcher. cgi_func: Callable function taking no parameters that should be executed in a CGI environment in the current process.
| def google.appengine.tools.old_dev_appserver.LocalCGIDispatcher.__str__ | ( | self | ) |
Returns a string representation of this dispatcher.
| def google.appengine.tools.old_dev_appserver.LocalCGIDispatcher.Dispatch | ( | self, | |
| args, | |||
| kwargs | |||
| ) |
Preserves sys.modules for CGIDispatcher.Dispatch.


Designed for everyone, everywhere
Bootstrap makes front-end web development faster and easier. It's made for folks of all skill levels, devices of all shapes, and projects of all sizes.
Preprocessors
Bootstrap ships with vanilla CSS, but its source code utilizes the two most popular CSS preprocessors, Less and Sass. Quickly get started with precompiled CSS.
One framework, every device
Bootstrap easily and efficiently scales your websites and applications with a single code base, from phones to tablets to desktops with CSS media queries.
Full of features
With Bootstrap, you get extensive and beautiful documentation for common HTML elements, dozens of custom HTML and CSS components, and awesome jQuery plugins.
Fork the project on GitHub
Bootstrap is open source! It's hosted, developed, and maintained on GitHub by folks like you.
View GitHub Project
Endless Components
Over a dozen reusable components built to provide iconography, dropdowns, input groups, navigation, alerts, and much more.
Built with TheSaaS
Millions of amazing sites across the web are being built with TheSaaS. Get started on your own with our growing collection of examples or by exploring some of our favorites.
100+
Components
Faster
Colors


Angular Material's theming system enables you to customize components to
better reflect your product's brand. A theme consists of configurations for the individual
color
and typography
systems in Angular Material. The library's approach to theming reflects
the guidance from the Material Design spec.
In Angular Material, you create a color configuration by composing multiple palettes. In particular, a color configuration consists of:
Additionally, in Angular Material, a configuration may optionally include typography
settings.
More information on how typography works can be found in a dedicated guide.
Angular Material theme styles are generated statically at build-time so that your app doesn't have to spend cycles generating theme styles when bootstrapping.
Angular Material comes prepackaged with several pre-built theme css files. These theme files also include all the styles for the core (styles common to all components), so you only have to include a single css file for Angular Material in your app.
You can include a theme file directly into your application from
@angular/material/prebuilt-themes
Available pre-built themes:
deeppurple-amber.css
indigo-pink.css
pink-bluegrey.css
purple-green.css
If you're using Angular CLI, this is as simple as including one line
in your styles.css
file:
@import<EMAIL_ADDRESS>Alternatively, you can just reference the file directly. This would look something like:
<link<EMAIL_ADDRESS>rel="stylesheet">
The actual path will depend on your server setup.
You can also concatenate the file with the rest of your application's css.
Finally, if your app's content is not placed inside a mat-sidenav-container
element, you
need to add the mat-app-background
class to your wrapper element (for example the body
). This
ensures that the proper theme background is applied to your page.
When you want more customization than a pre-built theme offers, you can create your own theme file.
A custom theme file does two things:
mat-core()
Sass mixin. This includes all common styles that are used by multiple
components. This should only be included once in your application. If this mixin is included
multiple times, your application will end up with multiple copies of these common styles.color
and typography
). This object can be created with either the
mat-light-theme
function or the mat-dark-theme
function. The output of this function is then
passed to the angular-material-theme
mixin, which will output all the corresponding styles
for the theme.A typical theme file will look something like this:
@import '~@angular/material/theming';
// Plus imports for other components in your app.
// Include the common styles for Angular Material. We include this here so that you only
// have to load a single css file for Angular Material in your app.
// Be sure that you only ever include this mixin once!
@include mat-core();
// Define the palettes for your theme using the Material Design palettes available in palette.scss
// (imported above). For each palette, you can optionally specify a default, lighter, and darker
// hue. Available color palettes: https://material.io/design/color/
$candy-app-primary: mat-palette($mat-indigo);
$candy-app-accent: mat-palette($mat-pink, A200, A100, A400);
// The warn palette is optional (defaults to red).
$candy-app-warn: mat-palette($mat-red);
// Create the theme object. A theme consists of configurations for individual
// theming systems such as `color` or `typography`.
$candy-app-theme: mat-light-theme((
color: (
primary: $candy-app-primary,
accent: $candy-app-accent,
warn: $candy-app-warn,
),
typography: mat-typography-config(),
density: 0, // Defaults to 0 if omitted, but shown for completeness.
));
// Include theme styles for core and each component used in your app.
// Alternatively, you can import and @include the theme mixins for each component
// that you are using.
@include angular-material-theme($candy-app-theme);
You only need this single Sass file; you do not need to use Sass to style the rest of your app.
If you are using the Angular CLI, support for compiling Sass to css is built-in; you only have to
add a new entry to the "styles"
list in angular.json
pointing to the theme
file (e.g., unicorn-app-theme.scss
).
If you're not using the Angular CLI, you can use any existing Sass tooling to build the file (such
as gulp-sass or grunt-sass). The simplest approach is to use the node-sass
CLI; you simply run:
node-sass src/unicorn-app-theme.scss dist/unicorn-app-theme.css
Then include the output file in your index.html.
Your custom theme file should not be imported into other SCSS files. This will duplicate styles
in your CSS output. If you want to consume your theme definition object
(e.g., $candy-app-theme
) in other SCSS files, then the definition of the theme object should be
broken into its own file, separate from the inclusion of the mat-core
and
angular-material-theme
mixins.
The theme file can be concatenated and minified with the rest of the application's css.
Note that if you include the generated theme file in the styleUrls
of an Angular component, those
styles will be subject to that component's view encapsulation.
You can create multiple themes for your application by including the angular-material-theme
mixin
multiple times, where each inclusion is gated by an additional CSS class.
Remember to only ever include the @mat-core
mixin once; it should not be included for each
theme.
@import '~@angular/material/theming';
// Plus imports for other components in your app.
// Include the common styles for Angular Material. We include this here so that you only
// have to load a single css file for Angular Material in your app.
// **Be sure that you only ever include this mixin once!**
@include mat-core();
// Define the default theme (same as the example above).
$candy-app-primary: mat-palette($mat-indigo);
$candy-app-accent: mat-palette($mat-pink, A200, A100, A400);
$candy-app-theme: mat-light-theme((
color: (
primary: $candy-app-primary,
accent: $candy-app-accent,
),
typography: mat-typography-config()
));
// Include the default theme styles (color and default density)
@include angular-material-theme($candy-app-theme);
// Define an alternate dark theme.
$dark-primary: mat-palette($mat-blue-grey);
$dark-accent: mat-palette($mat-amber, A200, A100, A400);
$dark-warn: mat-palette($mat-deep-orange);
$dark-theme: mat-dark-theme((
color: (
primary: $dark-primary,
accent: $dark-accent,
warn: $dark-warn,
)
));
// Include the dark color styles inside of a block with a CSS class. You can make this
// CSS class whatever you want. In this example, any component inside of an element with
// `.unicorn-dark-theme` will be affected by this alternate dark theme instead of the default theme.
.unicorn-dark-theme {
@include angular-material-color($dark-theme);
}
In the above example, any component inside a parent with the unicorn-dark-theme
class will use
the dark theme, while other components will fall back to the default $candy-app-theme
.
You can include as many color schemes as you like in this manner. You can also @include
the
angular-material-color
in separate files and then lazily load them based on an end-user
interaction (how to lazily load the CSS assets will vary based on your application).
It's important to remember, however, that the mat-core
mixin should only ever be included once.
Similarly, the angular-material-theme
mixin should not be used multiple times as it generates
styles for all configured theming system parts. For example, typography styles would be generated
multiple times, even though the configuration did not change. Instead, use fine-grained mixins such
as angular-material-color
that only result in styles being generated for the color system.
Read more about duplicated theme styles in the dedicated guide.
Since certain components (e.g. menu, select, dialog, etc.) are inside a global overlay container,
an additional step is required for those components to be affected by the theme's css class selector
(.unicorn-dark-theme
in the example above).
To do this, you can add the appropriate class to the global overlay container. For the example above, this would look like:
import {OverlayContainer} from '@angular/cdk/overlay';
@NgModule({
// ...
})
export class UnicornCandyAppModule {
constructor(overlayContainer: OverlayContainer) {
overlayContainer.getContainerElement().classList.add('unicorn-dark-theme');
}
}
The angular-material-theme
mixin will output styles for all components in the library.
If you are only using a subset of the components (or if you want to change the theme for specific
components), you can include component-specific theme mixins. You also will need to include
the mat-core-theme
mixin as well, which contains theme-specific styles for common behaviors
(such as ripples).
@import '~@angular/material/theming';
// Plus imports for other components in your app.
// Include the common styles for Angular Material. We include this here so that you only
// have to load a single css file for Angular Material in your app.
// **Be sure that you only ever include this mixin once!**
@include mat-core();
// Define the theme.
$candy-app-primary: mat-palette($mat-indigo);
$candy-app-accent: mat-palette($mat-pink, A200, A100, A400);
$candy-app-theme: mat-light-theme((
color: (
primary: $candy-app-primary,
accent: $candy-app-accent,
),
typography: mat-typography-config()
));
// Include the theme styles for only specified components.
@include mat-core-theme($candy-app-theme);
@include mat-button-theme($candy-app-theme);
@include mat-checkbox-theme($candy-app-theme);
You can use the theming mixins to customize any part of your application with standard CSS selectors. For example, let's say you want to toggle alternate colors on a button. You would first define a CSS class with the alternate colors.
Note that mat-button-color
should be used instead of mat-button-theme
as we only
want to have alternate colors for the button. Using the theme mixin could result in
duplicative theme styles if the mat-button-theme
has been included before. Read more about
this in the dedicated guide.
.alternate-button {
// Extract the color configuration from the theme and generate
// the color theme styles for `mat-button`.
@include mat-button-color($alternate-theme);
}
Then you can use normal Angular class bindings to toggle the alternate styles.
<div [class.alternate-button]="isAlternateMode">
<button mat-button>Save changes</button>
</div>
You can use this approach to style any component inside the region marked with the custom CSS class.
If you want to completely swap a theme without including all the styles at once, you can swap the loaded theme file. The details will depend on your application, but the general idea looks like this:
<link id="themeAsset" rel="stylesheet" href="/path/to/my/theme-name.css">
function changeTheme(themeName) {
document.getElementById('themeAsset').href = `/path/to/my/${themeName}.css`;
}
For more details about theming your own components, see theming-your-components.md.


-
New Inspiration 2020
CLOTHING MADE FOR YOU!
Trending from men and women style collection
-
New Inspiration 2020
CLOTHING MADE FOR YOU!
Trending from men and women style collection
-
New Inspiration 2020
CLOTHING MADE FOR YOU!
Trending from men and women style collection


I wrote this site to better learn Angular.js 2, now known as simply Angular. This makes googling and searching stackoverflow for information on the correct verson much more difficult than if they chose absolutely any other name. I'm also using the Bootstrap 4 alpha to see what's new there.
This site has a few tricks I wanted to try out in Angular. If you click on any of the tasks in the Employment section it will show you what technology was used to perform that task. You can also search for a specific technology in the search box in the header and all tasks with the corresponding technology will be highlighted.
If you don't want to use this interactive version of my resume, you can download a pdf version here. Also, if you want to view the source of this project on github at https://github.com/stokarz1/resume Thanks for visiting and if you want to see this modal again simply click on the "?" button in the header.


Preparation time
less than 30 mins
Cooking time
30 mins to 1 hour
Serves
Serves 6
Dietary
These creamy, garlicky potatoes make a fabulous side dish for any Sunday roast.
Equipment and preparation: You will need a large gratin dish.
Preheat the oven to 160C/320F/Gas 2.
Slice the potatoes into thin slices, about 3mm/⅛in thick. Place the slices into a bowl as you cut them.
Trim the ends off the garlic cloves but don't peel. Grate the cloves on a grater. The flesh will go through the fine holes and the skins will be left behind. Scrape the grated garlic flesh into the bowl with the potatoes.
Season the potatoes, to taste, with salt and freshly ground black pepper.
Pour the cream over the potatoes and mix well again.
Place the potato slices into the gratin dish. They should come to just below the top of the dish. Press the potato down with the back of a spoon or your hands so it forms a solid layer. The cream should come to just below the top layer of potato (top up with more double cream if necessary).
Place the potatoes in the oven and bake for 1-1½ hours, or until the potatoes are completely tender. (If the cream looks like it's splitting, your oven is too hot, so turn it down a bit.)
Serve the dauphinoise as a side dish to roasted meat or poultry.


{% extends 'recsystem/default.html' %} {% block body %}
| QID | Question Tilte | Question Text | Delete |
|---|---|---|---|
| {{ question.id }} | {{ question.question_title }} | {{ question.question_text }} | Delete |
| QID | Question Tilte | Question Text | Delete |
|---|---|---|---|
| {{ item.id }} | {{ item.question_title }} | {{ item.question_text }} | Delete |


--- layout: post title: Google Opt Out Feature Lets Users Protect Privacy By Moving To Remote Village categories: [] tags: - funny - geek - google - privacy status: publish type: post published: true meta: _original_post_id: '' _original_import_author: John Duprey author: ---
I, for one, welcome my information and computation overlords. (But can we keep those decade old posts to alt.furry.. Just between you and me, Google. I was young and ... Confused.)
[youtube http://www.youtube.com/watch?v=lMChO0qNbkY?wmode=transparent]


---
layout: page
title: Jonathan's Blog
tagline: A Place to Store My Thoughts on Programming and Other things
---
{% include JB/setup %}
Welcome
I write here about various programming topics and post cool things I have written. Read the posts for more:
{% assign posts_collate = site.posts %}
{% include JB/posts_collate %}


{% extends "registration/base.html" %} {% block title %} Sign up {% endblock %} {% block header %} Thanks for signing up! {% endblock %} {% block content %}
An activation link has been sent to the email address you supplied, along with instructions for activating your account.
{% endblock %}


---
layout: post
title: ! "Project cancelled & layoffs. Still here but don't know what i'm \tworking
on yet. Just polishing up code right now."
published: true
date: 2009-12-10
categories: []
posterous_url: http://verdammelt.posterous.com/project-cancelled-layoffs-still-here-but-dont
posterous_slug: project-cancelled-and-layoffs-still-here-but
---
Yesterday we had some layoffs - my project lost 4 people in Boston
alone, another 5 in our other offices. Layoffs happened across the
company. Then we found out that the project itself was also
cancelled. We'll be assigned to other projects but we don't know what
those will be yet.


Watching on TV or playing pick-up, basketball and football (...soccer) are my two loves.
Força Barça! Mavs Fan For Life!
Cultural Voyager
Whether it's traveling, trying new foods or simply reading; I love exploring different
cultures and mythos. The backgrounds in the header and footer were captured during my trip to Alaska. Next
up, Oceania, Spain or maybe Japan...who knows!
Master Geek
Books, TV series, movies, games, comics, tech - you name it, I have something to say
about it.
Portfolio
As a budding Software Engineer I hope to use my education,
experiences and abilities to help my team, company and others.
Feel free to download my
Résumé
. Click on the image panels below for more information about me!
Agile Project Management Essentials, Project Management Institute - Jan. 2018
Work Experience
"Experience is the teacher of all things" - Julius Caesar
Software Engineer
Wipro Ltd.
Jun. 2018 - Present
Plano, TX
Full time Software Engineer placed on client projects with Capital One
outline below:
Software Engineer
Capital One (through Wipro Ltd.)
Jan. 2019 - Present
Plano, TX
Drove migration of legacy UI application to modern SpringBoot tech stack resulting in 40% faster
response times,
simplified development process, reduced maintenance costs and enhanced browser compatibility
Led reconfiguration of CI/CD pipelines to leverage Docker and AWS ECS deployment leading to 80%
faster,
seamless deployments and reduced manual responsibilities
Remediated over 1000 vulnerabilities across 5 applications resulting in 98% fewer security
compliance
risks and safer infrastructure
Designed architecture for migrating a legacy batch job application to open source technologies
with a
modern Spring tech stack while targeting a cloud based, fault tolerant infrastructure and an
automated deployment pipeline.
Migrated a legacy REST API to a modern SpringBoot stack with microservice architecture resulting
in multiple, individually
deployable, fault tolerant APIs, adoption of open source technologies and 80% quicker deployment via
a new automated CI/CD pipeline.
Software Engineer
Capital One (through Wipro Ltd.)
Sept. 2018 - Jan. 2019
Plano, TX
Developed a Spark / Scala ETL framework resulting in a generalized approach for reading,
manipulating and storing large datasets in various
formats including parquet, avro, csv and database tables in RDS and Snowflake.
Built and configured Jenkins based CI/CD pipeline to deploy onto AWS EMR resulting in less manual
oversight and 50% faster build and
deploy process.
Full-Stack Development Resident
Coding Dojo
Sept. 2017 - Jan. 2018
Dallas, TX
Completed intensive, full-time web development program with well over a 1000 hours
of work building various
web applications in Python, MEAN and Ruby.
Team Engineer
Seattle Children's Hospital / University of Washington
Jan. 2017 - Jun. 2017
Seattle, WA
Designed and prototyped an easily adjustable intubation ramp for usage on patients
of all ages and body types.
Authored a design report detailing need, goals, prototype design, test methods and results. Presented
at
a research symposium.
Undergraduate Researcher
Carothers Research Group / University of Washington
Apr. 2016 - Jun. 2017
Seattle, WA
Self-motivated research on DNA gate functionalized gold nanoparticles and strand
displacement kinetics for
use in biosensor mechanisms and drug delivery. Authored research report detailing motivations,
experimental
design, results and discussion.
Research Intern
Sri Raghavendra Biotechnologies Pvt. Ltd.
May 2012 - Sept. 2012
Bangalore, India
Research Intern at a biotech firm working with cell culture, PCR and drug related
procedures. Capped off
with a solo project testing the efficacy of a novel cancer drug on HeLa cells using MTT assay.
Volunteer Activities
"Service to others is the rent you pay for your room here on Earth." -
Muhammad Ali
UW Outreach - Seattle, WA
Visited local highschools to teach kids about STEM and bioengineering as a major.
Also held workshops on skills like basic lab techniques.
Food Drive - Bangalore, India
Led an initiative to provide a sustainable, non-perishable food source to an
underpriviledge orphanage in Bangalore.
Provided well over a year's worth of food over the course of a few months and left behind the
infrastructure and connections to continue the initiative
long after I had departed.
Eye Camp - Bangalore, India
Led an initiative to provide subsidized eye check-ups and resulting care to the
students of a local public school.
Left behind the connections to continue the initiative yearly and also grow to incorporate other
schools and orphanages.
Student Teacher - Bangalore, India
For years, I spent at least one day a week going to a local orphanage to teach
basic math, english and life skills to under priviledged children.
Student Teacher - Bangalore, India
Collaborated with Schneider Electric's Conserve My Campus program to teach students
from younger grades about conservation of the environment and pollution.
Coached them for a conference in which they came home with a first place trophy.
Reddit Clone
Reimagining the front page of the internet.
One of the earliest comprehensive projects I completed was a Reddit clone for a
hackathon at Coding Dojo.
Placed into groups of three, the project was completed over the course of one weekend. Having just
learnt
our first framework, Flask, we took the opportunity to go above and beyond the base requirements and
explored
various ideas. Most notably it was our first time working with bootstrap and using true creative
freedom rather than focussing only on core functionality. We took the liberty to research recursion in
order to build nested
comments and emulate one of the hallmarks of Reddit. Our hard work earned us first place in the
hackathon
and the project remains one of the most interesting projects I have worked on as well as one I am most
proud of. I would like to revisit and modularize it one day. Feel free to watch the youtube clip of
the video demonstration we conducted as a part of the hackathon.
Tech - Python with Flask, HTML, CSS, Twitter Bootstrap, JavaScript with jQuery
and a MySQL database
Apologies for the clickbait. No adorable baby critters here...¯\_(ツ)_/¯
A published pip module for Python which I wrote out of the necessity for fuzzy
timestamps in many of my projects.
This module converts a datetime object, time object, date object, epoch int or date/time string into a
fuzzy timestamp such as "just now", "about 5 minutes ago" or "about an hour ago". This module also
works
for future dates giving an output such as "in five minutes". The latest version of the module utilizes
a binary search algorithm to speed up the
overall process. Although miniscule, the difference is felt when a large number of consecutive
operations
are conducted. The module is pip installable by anyone by running "pip install fuzzytime" in the
command
line.


Baudrillard’s “procession of the simulacra” narrows down the thin line between true/false and real/imaginary. The first question is: Why do we want to fake facts? What is the goal behind masking the reality?. Once it is solved the following concern is: How can we fake the real world to create opinions based on rhetoric, audiovisuals and cultural bubbles?.
Why would I do it? As a first experimental exercise i am interested in day by day user experience. I want to know how much people are willing to believe in facts almost fictional. This thought remind me: Google Nose BETA, an April fools’ day prank made by Google on 2013 and how much people were amazed and convince about such tech advances, getting close to theirs laptop in order to catch digital smell.
Google TiSP (2011): It promotes free internet using your local municipal sewage lines. You can installed yourself (DIY). Gloves provided
This last fake product allows you control any gmail feature via gestures. Tracking your movements through the laptop’s camera you were able interact in other ways without using mouse or keyboard. If you ask me, not far away from current technologies such as Microsoft Kinect or LeapMotion.
In spite of Google has made this sort of pranks long time ago. Users are still being cheated, filling Google customer service of mails aabouts these events.
But those kind of products are not just a result of pranks. Some of them are sold and bought all the time between us as fake products. Products which cheat consumers selling false benefits. I am talking about products and services from shake weights, weight loss pills, weight loss wraps to false data recovery web sites and false investments with high revenues, etc.
Following the same vein of thought, I’d been seduced by the idea of create a fictional product in which people believe in, maybe invest in, and someday remind them how vulnerable we are to all these social media, needs, culture bubbles and fake commercials. That said, we will make people ask themselves: What is this product exactly?, Are its features accurate? Do I need it?


What are you drinking tonight?
BeerMapper is a tablet application that is looking to leverage its sophisticated algorithim that matches users to beer recommendations based on personal preferences. Our team sought to evaluate user benefits, streamline the app’s user flow and merge BeerMapper’s underlying technology with a simple user interface for the everyday beer enthusiast.
Want these icons in this portfolio item sample?You can download 60 of them for free, courtesy of RoundIcons.com, or you can purchase the 1500 icon set here.


Arithme-Pix
Introduction
Background
Discovery
Formation
Color
Adjustments
Brightness
Contrast
Extension
References
Brightness
brightValue:


Warning! This will permantenly delete your account. This action cannot be undone. Please type CLOSE and click to continue.
CLOSE


Note: This inspection uses a very conservative dataflow algorithm, and may report static variables used uninitialized incorrectly. Variables reported as initialized will always be initialized.
Use the checkbox below to indicate whether you want uninitialized primitive fields to be reported.
Powered by InspectionGadgets


RT @kittylyst: Reminder: I'm speaking at @newrelic about #Performance AntiPatterns in #PDX tonight - https://www.meetup.com/New-Relic-FutureTalks-PDX/
10/14/2019, 2:09:02 PM
Favs: 0
Retweets: 0
link--- layout: tweet ---
RT @kittylyst: Reminder: I'm speaking at @newrelic about #Performance AntiPatterns in #PDX tonight - https://www.meetup.com/New-Relic-FutureTalks-PDX/
10/14/2019, 2:09:02 PM
Favs: 0
Retweets: 0
link


|
Wednesday,
January 30, 2013
|
|
Duration: 1 Hour
|
|
2:00 p.m. ET; 11:00 a.m. PT
|
|
REGISTER FREE
|
Join
us and learn about a brand new fully integrated technology that has
every lab chemist excited! This free webinar will introduce the theory
of combustion IC and present applications for various matrices across
different industries.
Key points of discussion will be:
• Introduction of the first fully integrated Combustion IC for simultaneous determination of halogens and sulfur in petroleum products, polymers, flame retardants, textiles, special chemicals, catalysts and more
• Discover new growth opportunities for both industrial and contract labs
• Find out about the global halogen free products initiative and how combustion IC fits in
• Get free training on existing methods that use combustion IC (ASTM D7359-08, UOP991-11,
ASTM D5987-96 (2007) and more)
•
Learn about new and upcoming regulations (ASTM, DIN EN, IEC RoHS WEEE,
etc.) that make combustion IC more relevant than ever before.
Space
is limited. Reserve your Webinar seat today
|
|
|
Featured Speaker:
Dr. Jay Gandhi
Business Development Manager,
Ion Chromatography
Metrohm USA
Dr. Gandhi brings
more than 27 years of proficiency with virtually all analytical
instrumentation and the techniques of Environmental, Petrochemical and
Pharmaceutical testing and research. An active participator in method
development with governing bodies such as the EPA and ASTM, in his
(rare) spare time he also enjoys teaching at the University of Houston as a visiting research fellow. |
With an introduction by:
Steven Schultz, Ph.D.
Science & Technology Editor
Writing at Work
Steve Schultz, president of Writing at Work,
writes, edits, and manages scientific communications and research
projects. His consulting entails facilitating seminars and roundtables
that bring together scientists from different disciplines and industries
for generating ideas on new scientific applications and their
significance for QA, lab protocols, product development, and marketing. |
|
|
|
Moderator:
Liz Vickers
Group Publisher
Laboratory Equipment |
Presented by:
In association with:
|
|
|
|


Want to get your hands dirty? See our cheat sheet or head to GitHub. Got questions or feature requests? Join us on Slack.


Atomic Operation
What is an atomic operation? An idea of atomic operation helps in understanding reentrancy, critical section, thread safety, synchronization primitives, etc… (we will have upcoming articles on each).
Atomicity, Atomic Operation:
In simple terms, atomicity is unbreakability, i.e. an uninterrupted operation. If two users issue a print command, each print should go in single attempt. If the printer driver is sending parts of data from two users, the printout will not be as expected. Hence, the printer driver must send the print command as unbreakable operation from one application at a time (in other words synchronize the access to printer).
Note that the data base terminology on atomicity would be different, yet the concept is same.
With an example we can understand the atomicity in programming well. Consider in a multi-threaded application, a function is incrementing a global/static variable,
count++; // count has permanent storage in RAM
The above statement can be decomposed into, atleast three operations.
- Fetching count value
- Incrementing count value
- Storing the updated value
If a thread executing the function containing the above statement is fetching its value (say 2). It is possible that at this point of execution, the thread can be preempted and another thread may invoke the same function. Consequently, the value of count will be incremented to 3 by that thread. When the former thread is resumed, it still retains the previous value (2), instead of latest value (3), and ends up in writing back 3 again. Infact, the value of count should be 4 due to affect of both the threads.
Such kind of bugs are quite difficult to recreate and locate.
An example of atomic operation is instruction execution, usually an instruction feed to the execution unit can’t be stopped in the middle. Yet, a statement in high level language results in multiple instructions. It is the root cause of non-atomic operations.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.


Highland Cattle
Breed of Rustic Cattle
The Highland (Scottish Gaelic: Bò Ghàidhealach; Scots: Hielan coo) is a Scottish breed of rustic cattle. It
originated in the Scottish Highlands and the Outer Hebrides islands of Scotland and has
long horns and a long shaggy coat. It is a hardy breed, bred to withstand the intemperate conditions in the
region. The first herd-book dates from 1885; two different types - a smaller island type, usually black, and a
larger mainland type, usually dun - were registered as a single breed. It is reared primarily for beef, and has
been exported to several other countries.[1]
PIN pin
SHARE share


"Bob's your baker"
Bread of many types, cakes for all occasions, soups, sandwiches, tea & coffee, and our world famous scones. We also cater for parties and gatherings.
Bread of many types, cakes for all occasions, soups, sandwiches, tea & coffee, and our world famous scones. We also cater for parties and gatherings.
We now deliver to the following towns


If you didn't find a call script you liked, you can suggest one here! Once on of our admins approves it, it'll show up on the front page. In the meantime, we'll redirect you to the caller page so you can call your rep right now!
Add some text describing your call script and why people should use it. This text will also be searchable and may help users find your call script, so make it descriptive and convincing!
This is the text that people should actually say when they call their rep. Try to keep it simple and brief, and structure it the way you would if you were reading it over the phone yourself.


It's time to give credit where it is due...
Created by:
The iframeSH0PL1FT3R5 team
Including:
SuperNinja_4965
rlxde
B
With many thanks to the hac100 team who helped us create this project and allowed us to take part!
The services, programs and programming languages we used:
VB.NET
C#
Python
Hypertext Markup Language (HTML)
Bootstrap Studio
Visual Studio 2017
Python IDLE
Microsoft Azure
GitHub - where we will be publishing all of our code
ClockworkSMS API
Javascript
clippy.js
Copyright © iframeSH0PL1FT3R5 2019
https://superninja4965.co.uk
https://iowavenet.com
https://iframeshoplifters.me
btw: this HTML page uses a redundant feature that is no longer used. Extra points??


001/* 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017package org.apache.commons.fileupload; 018 019import java.io.File; 020import org.apache.commons.fileupload.disk.DiskFileItem; 021 022/** 023 *
 The default implementation of the 024 * {@link org.apache.commons.fileupload.FileItem FileItem} interface. 025 * 026 *
 After retrieving an instance of this class from a {@link 027 * org.apache.commons.fileupload.DiskFileUpload DiskFileUpload} instance (see 028 * {@link org.apache.commons.fileupload.DiskFileUpload 029 * #parseRequest(javax.servlet.http.HttpServletRequest)}), you may 030 * either request all contents of file at once using {@link #get()} or 031 * request an {@link java.io.InputStream InputStream} with 032 * {@link #getInputStream()} and process the file without attempting to load 033 * it into memory, which may come handy with large files. 034 * 035 * @deprecated 1.1 Use DiskFileItem instead. 036 */ 037@Deprecated 038public class DefaultFileItem 039 extends DiskFileItem { 040 041 // ----------------------------------------------------------- Constructors 042 043 /** 044 * Constructs a new DefaultFileItem instance. 045 * 046 * @param fieldName The name of the form field. 047 * @param contentType The content type passed by the browser or 048 * null if not specified. 049 * @param isFormField Whether or not this item is a plain form field, as 050 * opposed to a file upload. 051 * @param fileName The original filename in the user's filesystem, or 052 * null if not specified. 053 * @param sizeThreshold The threshold, in bytes, below which items will be 054 * retained in memory and above which they will be 055 * stored as a file. 056 * @param repository The data repository, which is the directory in 057 * which files will be created, should the item size 058 * exceed the threshold. 059 * 060 * @deprecated 1.1 Use DiskFileItem instead. 061 */ 062 @Deprecated 063 public DefaultFileItem(String fieldName, String contentType, 064 boolean isFormField, String fileName, int sizeThreshold, 065 File repository) { 066 super(fieldName, contentType, isFormField, fileName, sizeThreshold, 067 repository); 068 } 069 070}