Equating SQL and Pandas (Part-1)
15 Jan 2015Pandas is a really powerful data analysis library in python created by Wes McKinney. Pandas provides fast and robust data structures and methods to manipulate data and is especially great with relational or tabular data.
A little while back I started learning Pandas and Greg Reda's blog posts translating SQL to Pandas helped me a lot in this process. Understanding pandas data structures and methods such as groupby, merge becomes easier once we start comparing them to similar statements in SQL (group by, join). Inspired by Greg's tutorials I started working on additional exercises for practice. I used assignments from coursera's Introduction to databases course and worked out both SQL queries and Pandas methods to solve the questions.
This post covers the first assignment.
SQL Movie-Rating Query Exercises (core set)
In this part we'll use a database called 'rating'. I downloaded it from the Introduction to databases course in coursera. The database has three tables ( 'Movie', 'Rating', 'Reviewer' ). The schema is shown below.
Movie table | mID | title | year | director |
Rating table | rID | mID | stars | ratingDate |
Reviewer table | rID | name |
In [1]: import pandas
import mysql.connector
# set up connections to the DB
conn = mysql.connector.Connect(host='localhost',user='root',\
password='',database='rating')
In [1]: import pandas
import mysql.connector
# set up connections to the DB
conn = mysql.connector.Connect(host='localhost',user='root',\
password='',database='rating')
#LOAD the SQL tables into DF
qryMv = """
SELECT * From Movie
"""
qryRt = """
SELECT * From Rating
"""
qryRe = """
SELECT * From Reviewer
"""
movieDF = pandas.read_sql( qryMv, conn )
ratDF = pandas.read_sql( qryRt, conn )
rvwrDF = pandas.read_sql( qryRe, conn )
Question-1 : Find the titles of all movies directed by Steven Spielberg.
Solution using SQL.
In [2]: #SQL query
qry = """
SELECT title FROM Movie
WHERE director = 'Steven Spielberg'
"""
# get the data
qDF = pandas.read_sql( qry, conn )
# print the data
print qDF
title
0 E.T.
1 Raiders of the Lost Ark
[2 rows x 1 columns]
Solution using Pandas.
Methods used : selection
In [3]: # simple selection
print movieDF[ movieDF['director'] == 'Steven Spielberg' ]['title']
3 E.T.
7 Raiders of the Lost Ark
Name: title, dtype: object
Question-2 : Find all years that have a movie that received a rating of 4 or 5, and sort them in increasing order.
Solution using SQL.
In [3]: #SQL query
qry = """
SELECT DISTINCT mv.year FROM Movie mv
INNER JOIN Rating ra
ON ra.mID = mv.mID
WHERE ra.stars >= 4
ORDER BY mv.year ASC
"""
# get the data
qDF = pandas.read_sql( qry, conn )
# print the data
print qDF
year
0 1937
1 1939
2 1981
3 2009
[4 rows x 1 columns]
Solution using Pandas.
Methods used : selection, merge(inner), sort, unique
In [4]: # store the ratings in new DF for ease of operation
# we also reset the index.
ratDFNew = ratDF[ ratDF['stars'] >= 4 ].reset_index()
# Now merge (similar to join in SQL) the new ratingDF
# into the movieDF.
resDF = pandas.merge( ratDFNew, movieDF, \
on='mID', how='inner' )
# Now sort according to the year
# note here that we can sort
# the DF in place (using
# the keyword 'inplace') without
# creating a new DF instance.
resDF.sort( ['year'], ascending=True, inplace=True )
# get the year column only and
resDF = resDF['year']
# Print the unique values using unique() statement
print resDF.unique()
[1937 1939 1981 2009]
Question-3 : Find the titles of all movies that have no ratings.
Solution using SQL.
In [4]: #SQL query
qry = """
SELECT mv.title FROM Movie mv
LEFT JOIN Rating ra
ON ra.mID = mv.mID
WHERE ra.mID is NULL
"""
# get the data
qDF = pandas.read_sql( qry, conn )
# print the data
print qDF
title
0 Star Wars
1 Titanic
[2 rows x 1 columns]
Solution using Pandas.
Methods used : merge(left), isnull
In [6]: # We'll merge the two DFs using
# 'left' method. This is like the
# left outer join in SQL.
resDF = pandas.merge( movieDF, ratDF, \
on='mID', how='left' )
# Now retreive 'title' column from records
# which have a Null value in the stars column
resDF = resDF[ resDF['stars'].isnull() ]\
.reset_index()['title']
print resDF
0 Star Wars
1 Titanic
Name: title, dtype: object
Question-4 : Some reviewers didn't provide a date with their rating. Find the names of all reviewers who have ratings with a NULL value for the date.
Solution using SQL.
In [7]: #SQL query
qry = """
SELECT re.name FROM Reviewer re
INNER JOIN Rating ra
ON ra.rID = re.rID
WHERE ra.ratingDate IS NULL
"""
# get the data
qDF = pandas.read_sql( qry, conn )
# print the data
print qDF
name
0 Daniel Lewis
1 Chris Jackson
[2 rows x 1 columns]
Solution using Pandas.
Methods used : Methods used : merge(inner), isnull()
In [8]: # We'll merge rvwrDF and ratDF
# and retreive rows which have Null
# in date.
resDF = pandas.merge( rvwrDF, ratDF, \
on='rID', how='inner' )
# Now retreive the records which have null
# value in the date column
resDF = resDF[ resDF['ratingDate'].isnull() ]\
.reset_index()['name']
print resDF
0 Daniel Lewis
1 Chris Jackson
Name: name, dtype: object
Question-5 : Write a query to return the ratings data in a more readable format: reviewer name, movie title, stars, and ratingDate. Also, sort the data, first by reviewer name, then by movie title, and lastly by number of stars.
Solution using SQL
In [6]: #SQL query
qry = """
SELECT re.name, mv.title, ra.stars, ra.ratingDate
FROM Movie mv
INNER JOIN Rating ra ON ra.mID = mv.mID
INNER JOIN Reviewer re ON ra.rID = re.rID
ORDER BY re.name, mv.title, ra.stars
"""
# get the data
qDF = pandas.read_sql( qry, conn )
# print the data
print qDF
name title stars ratingDate
0 Ashley White E.T. 3 2011-01-02
1 Brittany Harris Raiders of the Lost Ark 2 2011-01-30
2 Brittany Harris Raiders of the Lost Ark 4 2011-01-12
3 Brittany Harris The Sound of Music 2 2011-01-20
4 Chris Jackson E.T. 2 2011-01-22
5 Chris Jackson Raiders of the Lost Ark 4 None
6 Chris Jackson The Sound of Music 3 2011-01-27
7 Daniel Lewis Snow White 4 None
8 Elizabeth Thomas Avatar 3 2011-01-15
9 Elizabeth Thomas Snow White 5 2011-01-19
10 James Cameron Avatar 5 2011-01-20
11 Mike Anderson Gone with the Wind 3 2011-01-09
12 Sarah Martinez Gone with the Wind 2 2011-01-22
13 Sarah Martinez Gone with the Wind 4 2011-01-27
[14 rows x 4 columns]
Solution using Pandas.
Methods used : merge(inner), sort
In [9]: # first merge all the three DFs
resDF = pandas.merge( movieDF, ratDF, \
on='mID', how='inner' )
resDF = pandas.merge( resDF, rvwrDF,\
on='rID', how='inner')
# sort the DF and select the required columns
resDF.sort( ['name','title','stars'], inplace=True )
resDF = resDF[ [ 'name', 'title', 'stars', 'ratingDate' ] ]\
.reset_index(drop=True)
print resDF
name title stars ratingDate
0 Ashley White E.T. 3 2011-01-02
1 Brittany Harris Raiders of the Lost Ark 2 2011-01-30
2 Brittany Harris Raiders of the Lost Ark 4 2011-01-12
3 Brittany Harris The Sound of Music 2 2011-01-20
4 Chris Jackson E.T. 2 2011-01-22
5 Chris Jackson Raiders of the Lost Ark 4 None
6 Chris Jackson The Sound of Music 3 2011-01-27
7 Daniel Lewis Snow White 4 None
8 Elizabeth Thomas Avatar 3 2011-01-15
9 Elizabeth Thomas Snow White 5 2011-01-19
10 James Cameron Avatar 5 2011-01-20
11 Mike Anderson Gone with the Wind 3 2011-01-09
12 Sarah Martinez Gone with the Wind 2 2011-01-22
13 Sarah Martinez Gone with the Wind 4 2011-01-27
[14 rows x 4 columns]
Question-6 : For all cases where the same reviewer rated the same movie twice and gave it a higher rating the second time, return the reviewer's name and the title of the movie.
Solution using SQL.
In [10]: #SQL query
qry = """
SELECT re1.name, mv.title FROM Reviewer re1
INNER JOIN Rating ra1 ON ra1.rID = re1.rID
INNER JOIN Movie mv ON mv.mID = ra1.mID
INNER JOIN Rating ra2 ON ra1.rID = ra2.rID AND ra1.mID = ra2.mID
WHERE ra2.stars > ra1.stars AND ra2.ratingDate > ra1.ratingDate
"""
# get the data
qDF = pandas.read_sql( qry, conn )
# print the data
print qDF
name title
0 Sarah Martinez Gone with the Wind
[1 rows x 2 columns]
Solution using Pandas.
Methods used : selection, merge(inner,self)
In [11]: # merge ratingDF on itself
resDF = pandas.merge( ratDF, ratDF,\
on=['rID','mID'], how='inner')
# Note in joins like the self join here, Pandas
# renames columns with same names with _x, _y suffixes.
# Now retreive the rows which satisfy the requirement of
# the question, i.e., stars_y > stars_x and
# ratingDate_y > ratingDate_x.
resDF = resDF[ (resDF['stars_y'] > resDF['stars_x']) & \
(resDF['ratingDate_y'] > resDF['ratingDate_x']) ]
# Now merge the other DFs for required info
resDF = pandas.merge( resDF, movieDF,\
on=['mID'], how='inner')
resDF = pandas.merge( resDF, rvwrDF,\
on=['rID'], how='inner')
# get the required cols
resDF = resDF[ ['name', 'title'] ]
print resDF
name title
0 Sarah Martinez Gone with the Wind
[1 rows x 2 columns]
Question-7 : For each movie that has at least one rating, find the highest number of stars that movie received. Return the movie title and number of stars. Sort by movie title.
Solution using SQL
In [8]: #SQL query
qry = """
SELECT mv.title, tab.max_stars FROM Movie mv
INNER JOIN
(SELECT mID, MAX(stars) max_stars FROM Rating ra
GROUP BY mID
HAVING COUNT(mID) > 1) tab
ON tab.mID = mv.MID
ORDER BY mv.title
"""
# get the data
qDF = pandas.read_sql( qry, conn )
# print the data
print qDF
title max_stars
0 Avatar 5
1 E.T. 3
2 Gone with the Wind 4
3 Raiders of the Lost Ark 4
4 Snow White 5
5 The Sound of Music 3
[6 rows x 2 columns]
Solution using Pandas.
Methods used : groupby, filter(), merge(inner), rename()
In [12]: # Do a groupby operation on ratDF
ratGrps = ratDF.groupby( ['mID'] )
# we'll use filter to implement a having type
# operation in pandas, here we're using filter to
# get all mIDs which have more than 1 rating
ratGrps = ratGrps.filter(lambda x: len(x) > 1)
# Now get the rows which have max values in stars
# for the selected mIDs
ratGrpMax = ratGrps.groupby(['mID'], sort=False)\
['stars'].max()
# Merge ratGrpMax with movieDF, before that convert
# the series to dataframe
ratGrpMax = pandas.DataFrame( ratGrpMax )
# Make index as column with name 'mID' for merging
ratGrpMax['mID'] = ratGrpMax.index
ratGrpMax.reset_index(drop=True, inplace=True)
# Also rename 'stars' column to 'max_stars'
ratGrpMax.rename( columns={'stars':'max_stars'},\
inplace=True )
ratGrpMax = pandas.merge( ratGrpMax, movieDF,\
on='mID', how='inner' )
# select the required cols
ratGrpMax = ratGrpMax[ [ 'title', 'max_stars' ] ].sort( 'title' )
print ratGrpMax
title max_stars
5 Avatar 5
4 E.T. 3
0 Gone with the Wind 4
3 Raiders of the Lost Ark 4
1 Snow White 5
2 The Sound of Music 3
[6 rows x 2 columns]
Question-8 : For each movie, return the title and the 'rating spread', that is, the difference between highest and lowest ratings given to that movie. Sort by rating spread from highest to lowest, then by movie title.
Solution using SQL.
In [9]: #SQL query
qry = """
SELECT mv.title, tab.rat_spread FROM Movie mv
INNER JOIN
(SELECT mID, MAX(stars)-MIN(stars) rat_spread FROM Rating ra
GROUP BY mID) tab
ON tab.mID = mv.MID
ORDER BY tab.rat_spread DESC, mv.title
"""
# get the data
qDF = pandas.read_sql( qry, conn )
# print the data
print qDF
title rat_spread
0 Avatar 2
1 Gone with the Wind 2
2 Raiders of the Lost Ark 2
3 E.T. 1
4 Snow White 1
5 The Sound of Music 1
[6 rows x 2 columns]
Solution using Pandas.
Methods used : groupby, concat, rename, sort
In [13]: # Group by mID
ratGrps = ratDF.groupby( ['mID'] )
# Get max and min star values from groupby ops
ratMax = ratDF.groupby(['mID'], sort=False)\
['stars'].max()
ratMin = ratDF.groupby(['mID'], sort=False)\
['stars'].min()
# rename the names of ratMin and ratMax Series
ratMax.name = 'max_stars'
ratMin.name = 'min_stars'
# merge(concat) the series
resDF = pandas.concat( [ratMax, ratMin], axis=1 )
# set the mID col
resDF['mID'] = resDF.index
# reset the index
resDF.reset_index(drop=True, inplace=True)
# get the rating spread col
resDF['rat_spread'] = resDF['max_stars'] - resDF['min_stars']
# merge with movieDF and select req cols
resDF = pandas.merge( resDF, movieDF,\
on='mID', how='inner' )
resDF = resDF[ [ 'title', 'rat_spread' ] ]\
.sort('rat_spread', ascending=False)\
.reset_index(drop=True)
print resDF
title rat_spread
0 Avatar 2
1 Raiders of the Lost Ark 2
2 Gone with the Wind 2
3 E.T. 1
4 The Sound of Music 1
5 Snow White 1
[6 rows x 2 columns]
Question-9 : Find the difference between the average rating of movies released before 1980 and the average rating of movies released after 1980. (Make sure to calculate the average rating for each movie, then the average of those averages for movies before 1980 and movies after. Don't just calculate the overall average rating before and after 1980.)
Solution using SQL.
In [11]: #SQL query
qry = """
SELECT MAX(tab2.rat_rel_date) - MIN(tab2.rat_rel_date) difference FROM
( SELECT AVG(avg_rat) rat_rel_date FROM
( SELECT Movie.mID, AVG(Rating.stars) avg_rat,
CASE WHEN Movie.year < 1980 THEN 'BEFORE' ELSE 'AFTER' END rel_date
FROM Rating
INNER JOIN Movie ON Movie.mID = Rating.mID
GROUP BY Movie.mID ) tab
GROUP BY tab.rel_date) tab2
"""
# get the data
qDF = pandas.read_sql( qry, conn )
# print the data
print qDF
difference
0 0.055567
[1 rows x 1 columns]
Solution using Pandas.
Methods used : merge(inner), sort, groupby
In [14]: # Merge ratDF and movieDF
resDF = pandas.merge( movieDF, ratDF, \
on='mID', how='inner' )
# Now make two new DFs one with movies
# before 1980 and the other after 1980
beforeDF = resDF[ resDF['year'] < 1980 ]
afterDF = resDF[ resDF['year'] >= 1980 ]
# get average rating for each movie
bfrGrps = beforeDF.groupby(['mID'], sort=False)\
['stars'].mean()
aftrGrps = afterDF.groupby(['mID'], sort=False)\
['stars'].mean()
# get the mean of each series and get differences
print bfrGrps.mean() - aftrGrps.mean()
0.0555555555556


Package graph
Class Graph<N,E>
- java.lang.Object
-
- graph.Graph<N,E>
-
- All Implemented Interfaces:
shortestPath.GraphNeighbors<N,E>
public class Graph<N,E> extends java.lang.Object implements shortestPath.GraphNeighbors<N,E>
Graph is a collection of nodes and directed edges, where each edge connects two nodes. A directed edge will point from one node to another node. Each edge and node can store data within the objects and represents relationships between nodes via edges.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
Graph.Edge
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Edge will represent a connection between two Nodes and holds data in a Stringclass
Graph.Node
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Node will represent a point with data in a String
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addEdge(N fromNode, N toNode, E edgeData)
void
addNode(N nodeData)
java.util.Set<Graph.Edge>
allEdges()
java.util.Set<Graph.Node>
allNodes()
boolean
containsEdge(N fromNode, N toNode, E edgeData)
boolean
containsNode(N nodeData)
java.util.Set<Graph.Node>
getParents(N nodeName)
java.util.List<Graph.Edge>
incomingEdgesTo(N nodeName)
boolean
isEmpty()
java.util.Set<shortestPath.GraphNeighbors.Edge<N,E>>
outgoingEdges(N nodeName)
java.util.List<Graph.Edge>
outgoingEdgesFrom(N nodeName)
Graph.Edge
removeEdge(N fromNode, N toNode, E edgeData)
Graph.Node
removeNode(N nodeData)
-
-
-
Constructor Detail
-
Graph
public Graph()
- Effects:
- Constructs a new empty Graph
-
Graph
public Graph(java.util.Set<N> nodes)
- Parameters:
nodes
- represents a list of node names to add to the Graph- Effects:
- Constructs a new Graph containing nodes made from data within the provided collection.
- Requires:
- nodes != null
-
-
Method Detail
-
incomingEdgesTo
public java.util.List<Graph.Edge> incomingEdgesTo(N nodeName)
- Parameters:
nodeName
- The data stored in the node- Returns:
- the Set of all edges pointing towards the parameter node
- Requires:
- nodeName != null
-
outgoingEdgesFrom
public java.util.List<Graph.Edge> outgoingEdgesFrom(N nodeName)
- Parameters:
nodeName
- The data stored in the node- Returns:
- the Set of all edges pointing outward from the parameter node
- Requires:
- nodeName != null
-
getParents
public java.util.Set<Graph.Node> getParents(N nodeName)
- Parameters:
nodeName
- The data stored in the node- Returns:
- the Set of all nodes with edges pointing from those nodes to this node containing nodeName
- Requires:
- nodeName != null
-
allEdges
public java.util.Set<Graph.Edge> allEdges()
- Returns:
- the Set of all edges in the graph
-
allNodes
public java.util.Set<Graph.Node> allNodes()
- Returns:
- the Set of all nodes in the graph
-
addNode
public void addNode(N nodeData)
- Parameters:
nodeData
- The data that will be stored in a node that gets added to the graph- Effects:
- Inserts an additional node to the graph
- Requires:
- nodeData != null and !graph.containsNode(node.data())
-
addEdge
public void addEdge(N fromNode, N toNode, E edgeData)
- Parameters:
fromNode
- the node where the edge starts fromtoNode
- the node where the edge points toedgeData
- the data held within the edge- Effects:
- Creates a new edge containing edgeData that connects fromNode to toNode.
- Requires:
- fromNode, toNode, edgeData != null and graph contains both fromNode and toNode and there cannot already exist an edge from 'fromNode' to 'toNode' that has the same edgeData.
-
containsNode
public boolean containsNode(N nodeData)
- Parameters:
nodeData
- the data held within the edge- Returns:
- true if the graph contains the node with nodeData in it. Else, false.
- Requires:
- nodeData != null
-
containsEdge
public boolean containsEdge(N fromNode, N toNode, E edgeData)
- Parameters:
fromNode
- the node where the edge starts fromtoNode
- the node where the edge points toedgeData
- the data held within the edge- Returns:
- true if the graph contains both nodes AND the graph contains the edge storing edgeData AND the edge points from 'fromNode' and 'toNode'. Else, false.
- Requires:
- fromNode, toNode, edgeData != null
-
removeNode
public Graph.Node removeNode(N nodeData)
- Parameters:
nodeData
- the data held within the edge- Returns:
- the list of edges that pointed out of the node that was removed
- Effects:
- removes the node containing nodeData if graph contains it. All edges that pointed from or to the node will be removed as well.
- Requires:
- nodeData != null
-
removeEdge
public Graph.Edge removeEdge(N fromNode, N toNode, E edgeData)
- Parameters:
edgeData
- the data held within the edgefromNode
- the node that the edge is pointing fromtoNode
- the node that the edge is pointing to- Returns:
- the edge that was removed
- Effects:
- removes the edge containing edgeData if graph contains it. Else, does nothing.
- Requires:
- edgeData != null
-
isEmpty
public boolean isEmpty()
- Returns:
- true if Graph contains no nodes. Else, false.
-
-


September 24, 2013
San Francisco’s first entrepreneurship-in-residence (EIR) program in collaboration with the White House is receiving applications from numerous innovative startups tackling key areas such as transportation, planning, tax collection, licenses, parking, energy, healthcare, environment, library, parks, airport, real estate and public safety.
Jay Nath, San Francisco’s Chief Innovation Officer said, “With an over $8 billion budget, over 25,000 employees and over 50 agencies and departments, San Francisco represents a number of opportunities for world-class entrepreneurs and startups.” Government is about 40% of gross U.S. domestic product including state, local and federal spending. Startups that have applied to the program have expressed interest in solving issues for San Francisco and other cities and states across the nation.
The entrepreneurial products and services developed through San Francisco’s EIR program should drive significant impact such as increased revenue, enhanced productivity or meaningful cost savings. Examples of opportunity areas that entrepreneurial teams and startups are seeking to work on include:
“World-class entrepreneurs focus on building superior product and market fit. This program is providing the unique opportunity for entrepreneurs to work together with government to accomplish that,” according to Rahul Mewawalla, a senior executive with leadership experiences across Nokia, NBC, GE and Yahoo and former entrepreneur who is leading the program. He added, “Entrepreneurs working with San Francisco’s airport (SFO), for example, could potentially work with one terminal or boarding area to test and improve their product offering. Entrepreneurs can pursue economic value and help better the world at the same time.”
The program continues to accept applications through early October. Selected teams will receive direct access to government needs and opportunities, staff and their expertise, in addition to insights, product development, ramp-up support and mentorship from public and private sector leaders from San Francisco, the White House, McKinsey & Company and Goldman Sachs. The program expects to select 3 to 5 teams and announce the selected teams in October, during San Francisco’s Innovation Month. The program will run 16 weeks from mid-October, 2013 through mid-February, 2014. Entrepreneurial teams are invited to learn more and apply at http://entrepreneur.sfgov.org


Trans-Utopian Rail
Add New Train
Train Name
*
Destination
*
First Train Time (HH:mm - military time)
*
Frequency (min)
*
Submit
Train Schedule
Train Name
Destination
Frequency
Next Arrival
Minutes Away
Delete


Swami Vivekananda said that there is no age restriction in learning. And I have believed it from the bottom of my heart, since childhood. My journey with technology started with a failure story, surprisingly.  After my board exams, I appeared for NEET where I failed to get a suitable rank to get into any reputed medical college. My parents didn't want me to drop a year and prepare again, so they did not allow it. Instead, they advised me to opt for engineering. But I never thought of engineering as a career option.
But, yeah, at last, I opted for engineering and began my engineering journey in Netaji Subhash Engineering College in the department of Electronics and Communication Engineering in the year 2018. At first,I was pretty confused where to start. And then I came to know of NTPTEL courses,through which students can do courses for acquiring new skills and getting MAR and MOOCS points.
Among the courses offered , one was Programming with Python. Now, until that moment, Python appeared to me as only a snake and not as name of programming language. So I was pretty surprised on the fact that how can I do programming with snakes. Funny, right ?
Finally, I came to know that Python is a programming language, super easy to understand and implement. But, in my case, the irony was, I, having no prior knowledge in programming(except GW Basic) and being a biology student in +2 years, started with Python, where many people started Python after, they have done programming in C,C++,etc. I started Programming in Python in NPTEL, but unfortunately, I wasn't able to cope up with the course. But I had some of my basics cleared and also did a Python programming course (basic) in FutureLearn. In my second semester, I was introduced to IoT as a part of the training project of my college. Iot has been interesting to me always. So, I, who knew nothing at the beginning, was working to gather knowledge.
IoT was the first domain of technology that I was interested in. And along with it came the world of robotics. In these field, I explored Arduino, its functions, applications and also diverged into the advanced world of IoT. But I, having no knowledge of web development and servers prior to this training, my friend and I used Ubisoft for the server purpose. But, along with the introduction of IoT, I started to gather interest in Web Development.
In the semester break, I started learning Python and after that, started learning HTML,MySql and CGI. The first application that I built in web development was a simple bank application using HTML,Python,MySql,CGI.This is the project.
In my third semester, I came to know of DSC of my college and I applied for position in the web development team of DSC. And to my surprise and utter happiness, I got selected. So from this step onwards, my journey attained an upward slope.And I started learning frontend web development properly, starting with HTML,CSS,JS, Bootstrap. Still my skills required polishing. And I began actually polishing my skills from fourth semester onwards, when I got a chance to hold forums on web development forums in my own college. Then I started exploring web development more and more. On the way I learnt AMP-HTML and made some cool simple webpages on the way.
Before this, I didn't have proper knowledge of responsive web pages. So I learnt using media-query and more to make my web-pages responsive. My big break in web-development when DSC NSEC decided to build up a blog website and Anubhav Singh suggested me to work it on Next.js. So I started building the webpage(it is still in progress now) along with my some of my friends , on Next.js,Redux,Firebase,Material UI( and it was literally my first time using them) and I came to know and learn a lot of things in this process. And added to that, my department also started the technical community "Elektronica", where my department, recognizing my web development skills, gave me the responsibility of being the lead of the Web D domain of the tech community. And I, along with my team, set up the website for ECE Tech-Blogs tech-eva.live.
So this is my story. I love engineering . I am still struggle with bugs in my code and I think, in this way, people learn. So I am still a learner.
If you want to know more about me, you can check my portfolio and my Github profile and my Linkedin profile.
Sources / References [If Any] : Internet


Before Change
next_state_index = state_index + 1
// Skip if concatenated index is between episodes
if self.concat and np.any(self.terminals.take(state_index[0:-1], mode="wrap")):
continue
batch_states[i] = self.states.take(state_index, axis=0, mode="wrap")
After Change
batch_next_states = np.zeros((batch_size, self.concat) + self.state_shape, dtype=self.state_type)
else:
batch_states = np.zeros((batch_size, ) + self.state_shape, dtype=self.state_type)
batch_next_states = np.zeros((batch_size, ) + self.state_shape, dtype=self.state_type)
batch_actions = np.zeros((batch_size, ) + self.action_shape, dtype=self.action_type)
batch_rewards = np.zeros(batch_size, dtype=self.reward_type)
batch_terminals = np.zeros(batch_size, dtype="bool")


Removes a public SSH key from the authenticated user's GitHub account.
Requires that you are authenticated via Basic Auth or via OAuth with at least
admin:public_key
scope.
If your GitHub Enterprise Server appliance has
LDAP Sync enabled
and the option to synchronize SSH keys enabled, this API is disabled and
will return a 403
response. Users managed in LDAP won't be
able to remove an SSH key address via the API with these options enabled.
DELETE /user/keys/:key_id
Status: 204 No Content


{% for collection in site.collections %}
{% assign counter = 0 %}{% for item in collection.docs %}{% assign counter=counter | plus:1 %}{% endfor %}
{{ counter }}
{{ collection.title }}
{% endfor %}
--- layout: home --- {% include header.html %}


DfE enquiries
Central newsdesk 020 7783 8300
General enquiries 0370 000 2288
Press release
The Academies programme it being opened up to more schools in response to increasing demand from headteachers.
This month 162 schools have become academies and a further 473 are in the pipeline. Responding to increasing demand from headteachers the government is also opening the programme up to even more schools from today.
For parents and pupils this means more schools that can focus solely on the priorities of pupils and parents, rather than those of local officials and politicians.
As of today:
In total there are now 629 academies open, compared to 203 in May 2010.
Until now only schools which Ofsted judged Outstanding or Good with Outstanding features have been allowed to apply to convert in their own right. Other schools have had to apply as part of wider chains, working with strong schools.
However, many other mainstream and special schools have said they should be allowed to become stand-alone academies. Responding to this demand the government will, from today, consider applications from any school, including special schools, that can make a compelling case for academy status - looking in particular at:
Lord Hill, Minister for Schools, said today:
I am delighted that so many schools have decided to become academies. As academies they can decide what is best for their pupils, parents and the local community, free from red-tape and politicians.
By setting good schools free and improving performance in weak schools we will raise standards for all children no matter their background.
Heads of new academies welcomed their new freedoms:
Liz Cresswell, Headteacher, Brighouse Academy, Calderdale, West Yorkshire, said:
Brighouse High School focuses relentlessly on driving up standards for pupils of all levels of ability. As an academy we intend to continue with this mission and to take advantage of the freedoms to widen opportunity and support raising achievement even further. The freedom from bureaucracy, especially in terms of budgets, will allow us to target spending on the pupils, on reinforcing high standards of teaching and on maintaining a high quality learning environment.
It is our intention to continue to promote the excellent ethos of our school and to continue to serve the community of Brighouse. Academy freedoms will enable us to achieve our aims even more effectively.
Roy Hepplestone, Head Teacher, Whitehill Community Academy Calderdale in West Yorkshire, said:
We are delighted to become an independent state-funded primary academy and look forward to being able to innovate and make a difference within our educational community. In particular we relish the opportunity to be creative with our new freedoms with regards to funding, curriculum development and systems leadership with the added opportunity to support, develop and improve another school.
The future is a bright one for the Whitehill Community Academy.
David Hermitt, Head Teacher, Congleton High School in Cheshire, said:
The academy freedoms are already reaping benefits for the school and allowing more resources to be directed at school improvement.
Kevin Hollins, Principal of Knutsford High School in Cheshire welcomed the decision to let more schools apply:
We are delighted to hear of the government’s intention to expand the Academy programme to schools such as ours. The new arrangements enable schools such as ours to demonstrate their capacity to exploit the potential of academy status and add a great deal to the programme.
In 6 local authorities the majority of their secondary schools are now academies, representing a fundamental shift of control to schools. The six LAs are:
Central newsdesk 020 7783 8300
General enquiries 0370 000 2288
Published: 7 April 2011


Machine Learning Library (MLlib) Programming Guide
MLlib is Spark’s scalable machine learning library consisting of common learning algorithms and utilities, including classification, regression, clustering, collaborative filtering, dimensionality reduction, as well as underlying optimization primitives, as outlined below:
- Data types
- Basic statistics
- summary statistics
- correlations
- stratified sampling
- hypothesis testing
- random data generation
- Classification and regression
- linear models (SVMs, logistic regression, linear regression)
- naive Bayes
- decision trees
- ensembles of trees (Random Forests and Gradient-Boosted Trees)
- Collaborative filtering
- alternating least squares (ALS)
- Clustering
- k-means
- Dimensionality reduction
- singular value decomposition (SVD)
- principal component analysis (PCA)
- Feature extraction and transformation
- Optimization (developer)
- stochastic gradient descent
- limited-memory BFGS (L-BFGS)
MLlib is under active development.
The APIs marked Experimental
/DeveloperApi
may change in future releases,
and the migration guide below will explain all changes between releases.
spark.ml: high-level APIs for ML pipelines
Spark 1.2 includes a new package called spark.ml
, which aims to provide a uniform set of
high-level APIs that help users create and tune practical machine learning pipelines.
It is currently an alpha component, and we would like to hear back from the community about
how it fits real-world use cases and how it could be improved.
Note that we will keep supporting and adding features to spark.mllib
along with the
development of spark.ml
.
Users should be comfortable using spark.mllib
features and expect more features coming.
Developers should contribute new algorithms to spark.mllib
and can optionally contribute
to spark.ml
.
See the spark.ml programming guide for more information on this package.
Dependencies
MLlib uses the linear algebra package Breeze,
which depends on netlib-java,
and jblas.
netlib-java
and jblas
depend on native Fortran routines.
You need to install the
gfortran runtime library
if it is not already present on your nodes.
MLlib will throw a linking error if it cannot detect these libraries automatically.
Due to license issues, we do not include netlib-java
’s native libraries in MLlib’s
dependency set under default settings.
If no native library is available at runtime, you will see a warning message.
To use native libraries from netlib-java
, please build Spark with -Pnetlib-lgpl
or
include com.github.fommil.netlib:all:1.1.2
as a dependency of your project.
If you want to use optimized BLAS/LAPACK libraries such as
OpenBLAS, please link its shared libraries to
/usr/lib/libblas.so.3
and /usr/lib/liblapack.so.3
, respectively.
BLAS/LAPACK libraries on worker nodes should be built without multithreading.
To use MLlib in Python, you will need NumPy version 1.4 or newer.
Migration Guide
From 1.1 to 1.2
The only API changes in MLlib v1.2 are in
DecisionTree
,
which continues to be an experimental API in MLlib 1.2:
-
(Breaking change) The Scala API for classification takes a named argument specifying the number of classes. In MLlib v1.1, this argument was called
numClasses
in Python andnumClassesForClassification
in Scala. In MLlib v1.2, the names are both set tonumClasses
. ThisnumClasses
parameter is specified either viaStrategy
or viaDecisionTree
statictrainClassifier
andtrainRegressor
methods. -
(Breaking change) The API for
Node
has changed. This should generally not affect user code, unless the user manually constructs decision trees (instead of using thetrainClassifier
ortrainRegressor
methods). The treeNode
now includes more information, including the probability of the predicted label (for classification). -
Printing methods’ output has changed. The
toString
(Scala/Java) and__repr__
(Python) methods used to print the full model; they now print a summary. For the full model, usetoDebugString
.
Examples in the Spark distribution and examples in the Decision Trees Guide have been updated accordingly.
From 1.0 to 1.1
The only API changes in MLlib v1.1 are in
DecisionTree
,
which continues to be an experimental API in MLlib 1.1:
-
(Breaking change) The meaning of tree depth has been changed by 1 in order to match the implementations of trees in scikit-learn and in rpart. In MLlib v1.0, a depth-1 tree had 1 leaf node, and a depth-2 tree had 1 root node and 2 leaf nodes. In MLlib v1.1, a depth-0 tree has 1 leaf node, and a depth-1 tree has 1 root node and 2 leaf nodes. This depth is specified by the
maxDepth
parameter inStrategy
or viaDecisionTree
statictrainClassifier
andtrainRegressor
methods. -
(Non-breaking change) We recommend using the newly added
trainClassifier
andtrainRegressor
methods to build aDecisionTree
, rather than using the old parameter classStrategy
. These new training methods explicitly separate classification and regression, and they replace specialized parameter types with simpleString
types.
Examples of the new, recommended trainClassifier
and trainRegressor
are given in the
Decision Trees Guide.
From 0.9 to 1.0
In MLlib v1.0, we support both dense and sparse input in a unified way, which introduces a few breaking changes. If your data is sparse, please store it in a sparse format instead of dense to take advantage of sparsity in both storage and computation. Details are described below.
We used to represent a feature vector by Array[Double]
, which is replaced by
Vector
in v1.0. Algorithms that used
to accept RDD[Array[Double]]
now take
RDD[Vector]
. LabeledPoint
is now a wrapper of (Double, Vector)
instead of (Double, Array[Double])
. Converting
Array[Double]
to Vector
is straightforward:
import org.apache.spark.mllib.linalg.{Vector, Vectors}
val array: Array[Double] = ... // a double array
val vector: Vector = Vectors.dense(array) // a dense vector
Vectors
provides factory methods to create sparse vectors.
Note: Scala imports scala.collection.immutable.Vector
by default, so you have to import org.apache.spark.mllib.linalg.Vector
explicitly to use MLlib’s Vector
.
We used to represent a feature vector by double[]
, which is replaced by
Vector
in v1.0. Algorithms that used
to accept RDD<double[]>
now take
RDD<Vector>
. LabeledPoint
is now a wrapper of (double, Vector)
instead of (double, double[])
. Converting double[]
to
Vector
is straightforward:
import org.apache.spark.mllib.linalg.Vector;
import org.apache.spark.mllib.linalg.Vectors;
double[] array = ... // a double array
Vector vector = Vectors.dense(array); // a dense vector
Vectors
provides factory methods to
create sparse vectors.
We used to represent a labeled feature vector in a NumPy array, where the first entry corresponds to
the label and the rest are features. This representation is replaced by class
LabeledPoint
, which takes both
dense and sparse feature vectors.
from pyspark.mllib.linalg import SparseVector
from pyspark.mllib.regression import LabeledPoint
# Create a labeled point with a positive label and a dense feature vector.
pos = LabeledPoint(1.0, [1.0, 0.0, 3.0])
# Create a labeled point with a negative label and a sparse feature vector.
neg = LabeledPoint(0.0, SparseVector(3, [0, 2], [1.0, 3.0]))


Equipment repair and parts: Fixes broken equipment, or sources parts for self-service. Equipment sourcing and sales: Provides farmers access to essential machinery. Equipment rental: Leases equipment for predetermined jobs or intervals. Equipment shares: Splits ownership of common, but less-used equipment amongst a cooperative. Equipment contractors: Machinery owners perform tasks on a single job basis.
Marketing: An organization develops advertising and publicity strategies for AG products. Packaging: Products are processed to prevent contamination, easy transportability, and identify ingredients and notations. Brokers: Facilitate the sale and purchase of all AG related commodities, including real estate. Slaughter and butchering: Kill livestock and process meat for wholesale purposes.
Soil fSelecting soil analysis servicesertility and composting services: Assists farmers to address soil fertility issues to increase crop quality and yield. Land management services: Helps optimize AG land usage by improving tilling, draining, excavating, clearing, rotating, fertilizing, irrigation, and harvesting techniques. Veterinary services: Provides medical attention for AG animals, such as working animals and livestock.


---
layout: post
title: Rain
date: 2014-12-31 22:29:28.000000000 -08:00
type: post
parent_id: '0'
published: true
password: ''
status: publish
categories: []
tags: []
meta:
_publicize_pending: '1'
_rest_api_published: '1'
_rest_api_client_id: "-1"
_wpas_skip_facebook: '1'
_wpas_skip_google_plus: '1'
_wpas_skip_twitter: '1'
_wpas_skip_linkedin: '1'
_wpas_skip_tumblr: '1'
_wpas_skip_path: '1'
author:
login: paradoxofmatrix
email<EMAIL_ADDRESS>display_name: paradoxofmatrix
first_name: ''
last_name: ''
---
It has been raining for the past 4 days. Roads have turned into rivers and neighborhoods into islands. Dullness of the weather seems to have seeped into day to day life as well. More often than usual I see people gazing blankly outside their windows. Perhaps awaiting a change only to witness the constancy of a gloomy day. People downstairs are having an even tougher time. Their carpets are drenched their patio is all clogged. But strangely they haven't asked for help nor have we offered any. The silent understanding of apathy is a bit unsettling. Wonder if we have really turned into islands, metaphorically speaking. Things were different when i was a kid. My mother would just go downstairs and talk with them for hours. That sounds weird by todays standard. Talking to people without any reason wasn't such a big deal then. Listening was enjoyable too and yeah rains weren't a cause of worry.
The concrete landscape of the city has left no room for absorbing the water. Sure we can travel much faster but have we come any closer I wonder. As I unmindfully turn the pages of this book sipping in my third coffee, I think haven't we become impervious too. We don't absorb life any more rather just let it gush passed us. Fast paced life seems to have made everybody impatient. No wonder then, when we are cornered to our rooms like this we grow restless. To top it all the virtual communities have given us a false sense of companionship. Something that vanishes as soon as you go offline. I myself don't remember when was the last time I sat in my own company, never realizing when solitude became something to dread than savor.
A part of me therefore wishes that this heavy rain washes away with it some of our advancements too. So that we are more connected directly to each other than through wires. So that when the sky clears, we would remember again what was it like walking together to the near by park. So that we start smiling and waving hands from the windows again. So that next time it rains we wouldn't get perturbed and lonely rather grow fonder of each other


Overview QA4SM
The Quality Assurance for Soil Moisture (QA4SM) service provides the user with:- An easy-to-use interface for comparing satellite soil moisture data against land surface models and the international soil moisture network
- A traceble and consistent methodology for all comparisons
- Various filtering and scaling options to assess the impact of these on the validation results
- Traceable validation results in netCDF format and as visualisations (graphs and maps)
QA4SM was created thanks to support of the Austrian Space Application Programme. From 2021 on the application is also supported by the European Space Agency.
News
Datasets and Settings
Allows specification of input datasets and settings for your validation
Results
Provides a list of all validation results
Download and Visualize
Allows download of validation results in netCDF format and as graphics


--- layout: post title: Sweet and bitter end date: 2007-08-27 07:58:17.000000000 -05:00 type: post parent_id: '0' published: true password: '' status: publish categories: - English - Korea'07 tags: [] meta: {} author: login: dreamessenceonthemove email<EMAIL_ADDRESS>display_name: darribas first_name: Daniel last_name: Arribas-Bel permalink: "/2007/08/27/sweet-and-bitter-end/" ---
Yesterday I was all the day long travelling by bus and plane, I have barely slept a few hours, I couldn't take a shower and I guess I'm still sort of drunk because I'm not feeling hung over yet. Definitely, it's not the best way to welcome a 12-hours flight to take me back home.
And, with no doubt at all, I couldn't have imagined myself a better last night in Korea. Sweet because it happened, bitter because it's over. And I cannot help remembering once again that sentence of the song:
...I mean I love to travel, I hate to fly
I want to go, but hate goodbyes...
Next time, at home already.


--- layout: post title: Replacing A Failed Hard Drive In A Software RAID1 Array date: 2016-03-31 11:27:55.000000000 +02:00 type: post parent_id: '0' published: true password: '' status: publish categories: - Linux - Ubuntu tags: [] meta: _publicize_failed_3700952: 'O:13:"Keyring_Error":2:{s:6:"errors";a:1:{s:21:"keyring-request-error";a:1:{i:0;a:5:{s:7:"headers";a:14:{s:16:"www-authenticate";s:150:"OAuth "Facebook Platform" "invalid_token" "Error validating access token: The session has been invalidated because the user has changed the password."";s:27:"access-control-allow-origin";s:1:"*";s:12:"content-type";s:31:"application/json; charset=UTF-8";s:13:"x-fb-trace-id";s:11:"BmYe5OSVmur";s:8:"x-fb-rev";s:7:"2258686";s:6:"pragma";s:8:"no-cache";s:13:"cache-control";s:8:"no-store";s:7:"expires";s:29:"Sat, 01 Jan 2000 00:00:00 GMT";s:4:"vary";s:15:"Accept-Encoding";s:16:"content-encoding";s:4:"gzip";s:10:"x-fb-debug";s:88:"uByrGL0E4dfDztxjX1SnqtpWvITGj12gXxhUKPZnJaY80DujTIN/Ovm4aP6ff+PYyX+wZP/cRDSgbesIqGvD6A==";s:4:"date";s:29:"Thu, 31 Mar 2016 08:27:56 GMT";s:10:"connection";s:5:"close";s:14:"content-length";s:3:"179";}s:4:"body";s:212:"{"error":{"message":"Error validating access token: The session has been invalidated because the user has changed the password.","type":"OAuthException","code":190,"error_subcode":460,"fbtrace_id":"BmYe5OSVmur"}}";s:8:"response";a:2:{s:4:"code";i:401;s:7:"message";s:12:"Unauthorized";}s:7:"cookies";a:0:{}s:8:"filename";N;}}}s:10:"error_data";a:0:{}}' _rest_api_published: '1' _rest_api_client_id: "-1" _publicize_job_id: '21304866378' author: login: mpho112 email<EMAIL_ADDRESS>display_name: Mpho first_name: '' last_name: '' ---
Credit goes to Author:falko
Replacing A Failed Hard Drive In A Software RAID1 Array. This guide shows how to remove a failed hard drive from a Linux RAID1 array (software RAID), and how to add a new hard disk to the RAID1 array without losing data.
NOTE: There is a new version of this tutorial available that uses gdisk instead of sfdisk to support GPT partitions.
In this example I have two hard drives, /dev/sda and /dev/sdb, with the partitions /dev/sda1 and /dev/sda2 as well as /dev/sdb1 and/dev/sdb2.
/dev/sda1 and /dev/sdb1 make up the RAID1 array /dev/md0.
/dev/sda2 and /dev/sdb2 make up the RAID1 array /dev/md1.
/dev/sda1 + /dev/sdb1 = /dev/md0
/dev/sda2 + /dev/sdb2 = /dev/md1
/dev/sdb has failed, and we want to replace it.
If a disk has failed, you will probably find a lot of error messages in the log files, e.g. /var/log/messages or /var/log/syslog.
You can also run
[sourcecode language="bash"]
cat /proc/mdstat
[/sourcecode]
and instead of the string [UU] you will see [U_] if you have a degraded RAID1 array.
To remove /dev/sdb, we will mark /dev/sdb1 and /dev/sdb2 as failed and remove them from their respective RAID arrays (/dev/md0 and/dev/md1).
First we mark /dev/sdb1 as failed:
[sourcecode language="bash"]
mdadm --manage /dev/md0 --fail /dev/sdb1
[/sourcecode]
The output of
cat /proc/mdstat
should look like this:
[sourcecode language="bash"]
server1:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0] sdb1[2](F)
24418688 blocks [2/1] [U_]
md1 : active raid1 sda2[0] sdb2[1]
24418688 blocks [2/2] [UU]
unused devices:
[/sourcecode]
Then we remove /dev/sdb1 from /dev/md0:
[sourcecode language="bash"]
mdadm --manage /dev/md0 --remove /dev/sdb1
[/sourcecode]
The output should be like this:
[sourcecode language="bash"]
server1:~# mdadm --manage /dev/md0 --remove /dev/sdb1
mdadm: hot removed /dev/sdb1
[/sourcecode]
And
cat /proc/mdstat
should show this:
[sourcecode language="bash"]
server1:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0]
24418688 blocks [2/1] [U_]
md1 : active raid1 sda2[0] sdb2[1]
24418688 blocks [2/2] [UU]
unused devices:
[/sourcecode]
Now we do the same steps again for /dev/sdb2 (which is part of /dev/md1):
[sourcecode language="bash"]
mdadm --manage /dev/md1 --fail /dev/sdb2
[/sourcecode]
then,
cat /proc/mdstat
[sourcecode language="bash"]
server1:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0]
24418688 blocks [2/1] [U_]
md1 : active raid1 sda2[0] sdb2[2](F)
24418688 blocks [2/1] [U_]
unused devices:
[/sourcecode]
mdadm --manage /dev/md1 --remove /dev/sdb2
[sourcecode language="bash"]
server1:~# mdadm --manage /dev/md1 --remove /dev/sdb2
mdadm: hot removed /dev/sdb2
[/sourcecode]
Now,
cat /proc/mdstat
[sourcecode language="bash"]
server1:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0]
24418688 blocks [2/1] [U_]
md1 : active raid1 sda2[0]
24418688 blocks [2/1] [U_]
unused devices:
[/sourcecode]
Then power down the system:
[sourcecode language="bash"]
shutdown -h now
[/sourcecode]
and replace the old /dev/sdb hard drive with a new one (it must have at least the same size as the old one - if it's only a few MB smaller than the old one then rebuilding the arrays will fail).
After you have changed the hard disk /dev/sdb, boot the system.
The first thing we must do now is to create the exact same partitioning as on /dev/sda. We can do this with one simple command:
[sourcecode language="bash"]
fdisk -d /dev/sda | sfdisk /dev/sdb
[/sourcecode]
You can run
[sourcecode language="bash"]
fdisk -l
[/sourcecode]
to check if both hard drives have the same partitioning now.
Next we add /dev/sdb1 to /dev/md0 and /dev/sdb2 to /dev/md1:
mdadm --manage /dev/md0 --add /dev/sdb1
[sourcecode language="bash"]
server1:~# mdadm --manage /dev/md0 --add /dev/sdb1
mdadm: re-added /dev/sdb1
[/sourcecode]
mdadm --manage /dev/md1 --add /dev/sdb2
[sourcecode language="bash"]
server1:~# mdadm --manage /dev/md1 --add /dev/sdb2
mdadm: re-added /dev/sdb2
[/sourcecode]
Now both arays (/dev/md0 and /dev/md1) will be synchronized. Run
cat /proc/mdstat
to see when it's finished.
During the synchronization the output will look like this:
[sourcecode language="bash"]
server1:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0] sdb1[1]
24418688 blocks [2/1] [U_]
[=>...................] recovery = 9.9% (2423168/24418688) finish=2.8min speed=127535K/sec
md1 : active raid1 sda2[0] sdb2[1]
24418688 blocks [2/1] [U_]
[=>...................] recovery = 6.4% (1572096/24418688) finish=1.9min speed=196512K/sec
unused devices:
[/sourcecode]
When the synchronization is finished, the output will look like this:
[sourcecode language="bash"]
server1:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0] sdb1[1]
24418688 blocks [2/2] [UU]
md1 : active raid1 sda2[0] sdb2[1]
24418688 blocks [2/2] [UU]
unused devices:
[/sourcecode]
That's it, you have successfully replaced /dev/sdb!


M.Duck
A roguelite gallery shooter about a duck that knows magic.
Fact Sheet
Game Name: M.Duck
Developer: Andrew Lee (Protractor Games)
Platform: Mobile (iOS/Android)
Status: Released
Engine: Gamemaker Studio 2
Contact<EMAIL_ADDRESS>Social: @improtractor
Description
M.Duck is a roguelite gallery shooter about a duck that knows magic.
Help Magic Duck fight his way up the mysterious tower that has been shining light on his pond each night and interrupting his sleep. Battle fearsome foes, discover new relics, uncover the secrets of the tower, and turn off that light once and for all!
M.Duck combines roguelite features with gameplay inspired by the classic gallery shooter, Wild Guns, to create a unique single-player experience for mobile.
Features
- Charming 2d pixel art with a lovable cast of friends and foes. There are 40 different enemies and 8 unique bosses throughout the tower.
- Over 80 relics and 9 different weapons to be discovered that will promote a variety of different builds and playstyles.
- Waddle between offense and defense as you dodge attacks to find openings and blast enemies with your magic wand.
- M.Duck is a tough, but fair game that can be learned and mastered. It can even be completed without a single relic!
- Unlock additional lore, new relics, and even new game features as you fill out Magic Duck's field notes by climbing the tower and completing different challenges.
- Music composed by Calbert Warner (@Schematist): M.Duck OST
Video
Gifs
Logo & Icon
Selected Articles
- "[T]his game has a surprisingly firm sense of what it is and what it offers, and it does a great job of backing up its claims with creative design wrapped around its small, endearing scope."
- "There aren’t many games where we’d say the control system is a bit of a nightmare and consider that a recommendation of sorts. In fact, M.Duck might be the sole example, but its awkwardness transforms a single-screen gallery shooter into a relentlessly tense risk vs. reward blaster."
- "M.Duck is not just a great mobile game. It’s a fantastic game, period. A fantastic game, period, exclamation point!"
Awards and Recognition
- App Store: Game of the Day (1/17/23) -Apple App Store
- PocketGamer Awards 2022: Best Mobile Game of the Year Finalist -PocketGamer
- The Best Mobile Games of 2022 So Far (September 2022) -PocketGamer
- Best iPhone Games of 2022: Best Shooting Games for iPhone -TechRadar
- Best Android Games of 2022: Best Shooting Games for Android -TechRadar
- Selected for the 2022 Game Devs of Color Expo Direct -GDoCExpo
COPYRIGHT © 2022 ANDREW LEE


Things To Do
Low
Normal
High
Show completed tasks
Do something
This is a really long task with some overflow
This is a completed task


[Erowid Note: this person took over 4 grams of acetaminophen (paracetamol) which can be dangerous to the liver if taken in very high doses; over 10 grams at a time can be fatal. The maximum daily dosage (adult) is 4 grams (this estimate is from emedicine.com, more on acetaminophen can be found through your favorite search engine). People with liver disease or who are regular users of alcohol are more at risk of liver failure from high doses of acetaminophen, even doses lower than 4 grams.]
It all started when I was going through my moms bathroom and found a bottle or lortabs 7.5 mgs and there was about 13-14 pills in the bottle, so I took them all and replaced them with generic cough medicine. I had done lortabs twice before and had taken 6 but had never mixed them with any other drugs. So at around 10 am I decided I would take 7 lortabs hoping it would be a little bit better. I took them and I felt good for about 30 minutes and then I didn't feel anything anymore except for a little stomach ache.
So then I decided to call my neighbor 'H' and see if he would take the rest with me. He decided to crush the rest of the pills up and snort them so I took a couple of pretty big lines with him and he decided that was just too much too snort so he parachuted the rest. My stomach ache got a little bit worse after that and I felt like I was going to throw up, but after leaning over the toilet for about 5 minutes I felt better. That is when we decided to try and get some weed. So in about 30 minutes we had been able to score arond 4 grams of weed and we weren't feeling anything from before. So this was about an hour and 30 minutes after taking the first dosage. We then proceeded outside to smoke the weed we smoked about 2 grams out of my waterbong and where feeling pretty high.
It was now around 2pm 4 hours after I took the initial dosage of Lortabs and all of the sudden my vision began to get blurry and I felt as if everything was spinning. Then I started sweating violently and became very hot. My stomach ache became even worse and I started throwing up non stop and all I was throwing up was water I had drank earlier. My friend H kept telling me no matter what I do I don't go to sleep he kept telling me don't go to sleep and then all of the sudden he tells me he doesn't feel good either and he is going to go home to take a nap and I should do the same.
I was so close to calling 911 because I kept vomiting and my vision had became worse I could barely see and at that moment I faced the fact that I was going to die and it didnt seem to really bother me so I called my best friend and told him this is going to be the last time he would ever talk to me and what was going on. I then went to sleep and my friend called me every 30 minutes to wake me up to make sure I was doing ok.  This was for sure the worse experience I have ever had in my life and I would never take lortabs again. However I still continue to smoke marijuanna on a daily basis.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


hey 👋
basic web map components:
most important: a question to answer
a few things to consider
do you need a map? 🤔
use color sparingly
normalize your data
i could go on for a bit...
good news: so many options
bad news: not enough time
we'll be using OPEN DATA and MAPBOX GL
VDOT Open Data = Virginia Crash Data
you could make some vector tiles
that involves a lot more than we need right now
so now we have some data!
now let's make a map
we made a map!
questions?


Check if the request is fresh, aka Last-Modified and/or the ETag still match.
Parse the "Host" header field hostname.
Return the remote address, or when
"trust proxy" is true
return
the upstream addr.
When "trust proxy" is true
, parse
the "X-Forwarded-For" ip address list.
For example if the value were "client, proxy1, proxy2"
you would receive the array ["client", "proxy1", "proxy2"]
where "proxy2" is the furthest down-stream.
Short-hand for url.parse(req.url).pathname
.
Return the protocol string "http" or "https" when requested with TLS. When the "trust proxy" setting is enabled the "X-Forwarded-Proto" header field will be trusted. If you're running behind a reverse proxy that supplies https for you this may be enabled.
Short-hand for:
req.protocol == 'https'
Check if the request is stale, aka "Last-Modified" and / or the "ETag" for the resource has changed.
Only valid for response obtained from http.ClientRequest.
Only valid for response obtained from http.ClientRequest.
Return subdomains as an array.
Subdomains are the dot-separated parts of the host before the main domain of the app. By default, the domain of the app is assumed to be the last two parts of the host. This can be changed by setting "subdomain offset".
For example, if the domain is "tobi.ferrets.example.com":
If "subdomain offset" is not set, req.subdomains is ["ferrets", "tobi"]
.
If "subdomain offset" is 3, req.subdomains is ["tobi"]
.
Check if the request was an XMLHttpRequest.
Check if the given type(s)
is acceptable, returning
the best match when true, otherwise undefined
, in which
case you should respond with 406 "Not Acceptable".
The type
value may be a single mime type string
such as "application/json", the extension name
such as "json", a comma-delimted list such as "json, html, text/plain",
or an array ["json", "html", "text/plain"]
. When a list
or array is given the best match, if any is returned.
Examples:
// Accept: text/html
req.accepts('html');
// => "html"
// Accept: text/*, application/json
req.accepts('html');
// => "html"
req.accepts('text/html');
// => "text/html"
req.accepts('json, text');
// => "json"
req.accepts('application/json');
// => "application/json"
// Accept: text/*, application/json
req.accepts('image/png');
req.accepts('png');
// => undefined
// Accept: text/*;q=.5, application/json
req.accepts(['html', 'json']);
req.accepts('html, json');
// => "json"
Returns the first accepted charset of the specified character sets, based on the request’s Accept-Charset HTTP header field. If none of the specified charsets is accepted, returns false.
For more information, or if you have issues or concerns, see accepts.
Returns the first accepted encoding of the specified encodings, based on the request’s Accept-Encoding HTTP header field. If none of the specified encodings is accepted, returns false.
For more information, or if you have issues or concerns, see accepts.
Returns the first accepted language of the specified languages, based on the request’s Accept-Language HTTP header field. If none of the specified languages is accepted, returns false.
For more information, or if you have issues or concerns, see accepts.
Clear cookie name
.
Return request header.
The Referrer
header field is special-cased,
both Referrer
and Referer
are interchangeable.
Examples:
req.get('Content-Type');
// => "text/plain"
req.get('content-type');
// => "text/plain"
req.get('Something');
// => undefined
Aliased as req.header()
.
Check if the incoming request contains the "Content-Type"
header field, and it contains the give mime type
.
Examples:
// With Content-Type: text/html; charset=utf-8
req.is('html');
req.is('text/html');
req.is('text/*');
// => true
// When Content-Type is application/json
req.is('json');
req.is('application/json');
req.is('application/*');
// => true
req.is('html');
// => false
Parse Range header field,
capping to the given size
.
Unspecified ranges such as "0-" require
knowledge of your resource length. In
the case of a byte range this is of course
the total number of bytes. If the Range
header field is not given null
is returned,
-1
when unsatisfiable, -2
when syntactically invalid.
NOTE: remember that ranges are inclusive, so for example "Range: users=0-3" should respond with 4 users when available, not 3.
Generated using TypeDoc
Return an array of Accepted media types ordered from highest quality to lowest.


{% extends 'layout.html' %} {% block body %} A Digit Classifier Github powered by a Convolutional Neural Network Draw a digit on the canvas below and click on Predict your prediction will be here Predict {% endblock %}


| 019:076 Khan | : |
And Allah increases in guidance those who walk aright [true believers in the Oneness of Allah who fear Allah much (abstain from all kinds of sins and evil deeds which He has forbidden), and love Allah much (perform all kinds of good deeds which He has ordained)]. And the righteous good deeds that last, are better with your Lord, for reward and better for resort. |
| 019:076 Maulana | : |
And Allah increases in guidance those who go aright. And deeds that endure, the good deeds, are, with thy Lord, better in recompense and yield better return. |
| 019:076 Pickthal | : |
Allah increaseth in right guidance those who walk aright, and the good deeds which endure are better in thy Lord's sight for reward, and better for resort. |
| 019:076 Rashad | : |
GOD augments the guidance of those who choose to be guided. For the good deeds are eternally rewarded by your Lord, and bring far better returns. |
| 019:076 Sarwar | : |
God further enlightens those who seek guidance. To those who do charitable deeds which produce continuing benefits, your Lord will give a better reward and a better place in Paradise. |
| 019:076 Shakir | : |
And Allah increases in guidance those who go aright; and ever-abiding good works are with your Lord best in recompense and best in yielding fruit. |
| 019:076 Sherali | : |
And ALLAH increases in guidance those who follow guidance. And the good works that endure are best in the sight of thy Lord in respect of reward and in respect of the ultimate end.' |
| 019:076 Yusufali | : |
"And Allah doth advance in guidance those who seek guidance: and the things that endure, Good Deeds, are best in the sight of thy Lord, as rewards, and best in respect of (their) eventual return." |
Concepts/Themes Covered: أركان الإسلام > التوحيد > توحيد الله تعالي > الوعد والوعيد Pillars of Islam> Islamic> Oneness of Allah> Promise and Threat أركان الإسلام > التوحيد > الكافرون > الجاحدون من الكفار Pillars of Islam> Islamic> The Disbelievers> The Deniers of the Disbelievers الإيمان > الإيمان بالله > الهداية إلى الإيمان Faith> Belief In Allah> Guiding to Faith الإيمان > الله جلّ جلاله > فضله جلّ وعلا Faith> Allah, Glory to his Majesty> His Graciousness الإيمان > اليوم الآخر > ثواب الدنيا والآخرة Faith> The Hereafter> The Reward of the World and the Hereafter العمل > العمل الصالح > الدعوة إلى العمل الصالح Action(Work)> The Good Deeds>The Call for Good Deeds
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


Reorder elements in a list or grid using the mouse.
Want to learn more about the sortable interaction? Check out the API documentation.


jQuery('#example-1').jstars({
image_path: 'images'
});
This example illustrates "white" style. As you can see we do not specify any parameters, so style and frequency are set to "white" and "12" automatically.
jQuery('#example-1').jstars({
image_path: 'images'
});
This one illustrates "blue" style.
Also we increased frequency a bit.
jQuery('#example-blue').jstars({
image_path: 'images',
style: 'blue',
frequency: 15
});
jQuery('#example-yellow').jstars({
image_path: 'images',
style: 'yellow',
frequency: 20
});
This example illustrates "yellow" style.
And the frequency is set to max value.
jQuery('#example-yellow').jstars({
image_path: 'images',
style: 'yellow',
frequency: 20
});
This example illustrates "red" style.
The frequency is low here, so the stars shine rarely.
jQuery('#example-red').jstars({
image_path: 'images',
style: 'red',
frequency: 5
});
jQuery('#example-green').jstars({
image_path: 'images',
style: 'green'
});
This example illustrates "green" style.
jQuery('#example-green').jstars({
image_path: 'images',
style: 'green'
});
Our plugin has tricky mode - to show all stars colors randomly.
You should use style "rand" for this feature.
jQuery('#example-rand').jstars({
image_path: 'images',
style: 'rand'
});
You can try to prepare your own asset to display different image instead of stars.
To do that you should make a sprite of 9 images, each next part is differ from previous with 40 degrees angle.
Let's try how candy cane looks... It will be good for Xmas eve :)
jQuery('#example-rand').jstars({
image_path: 'images',
image: 'candy-cane-stars.png',
style: 'white',
width: 34,
height: 34,
delay: 700,
frequency: 5
});


CERT Division at the Software Engineering Institute
Vulnerability Research Tool Development
Lead Python developer on various internal projects, including a graph database system that
automatically collects, categorizes, and identifies relationships between software products,
software libraries, vendors, vulnerabilities, and technologies.
Co-authored an open source Android application fuzzing framework written in Python.
Assisted with the ongoing development of the CERT Basic Fuzzing Framework (BFF).
Vulnerability Coordination
Triaged, analyzed, and responded to vulnerability reports from information security researchers
around the world.
Authored and published numerous critical CERT Vulnerability Notes that gained widespread attention
from the information security industry and global media outlets.
Vulnerability Management
Advised federal agencies, commercial enterprises, and various key stakeholders on how to respond to
and mitigate emerging vulnerabilities and threats.
Insider Threat Research
Researched and prototyped multiple next-generation security controls written in Java, Python, and
.NET to defend against intellectual property theft.
Conducted multiple research projects on behalf of the United States Secret Service and gave
briefings to multiple chapters of the USSS Electronic Crimes Task Force.
Advised public and private organizations in the areas of data loss prevention, intellectual property
theft, insider fraud, and insider sabotage.
Adjunct Faculty
Norwich University
Instructed graduate students in GI522 - Information Assurance Technology.
Taught the fundamentals of secure network architecture and host-based security policies.
Covered the proper usage and application of various security controls and tools, including:
firewalls, antivirus applications, web and application proxies, intrusion detection and prevention
systems (IDS & IPS), host-based intrusion detection systems (HIDS), vulnerability scanners, and
configuration management systems.
Graduate Student Intern
CERT Division at the Software Engineering Institute
Assisted in the development of data-driven backend systems to collect insider threat case data.
Researched insider threat cases to identify patterns in insider attacks.
Developed technical controls to protect against common insider attack methods.


Home > Overview > User Interface > Menus >
Microsoft XML Notepad validates your document while you are editing and shows any errors or warnings in the Error List panel. You can double click those errors to navigate to the node in error so you can then fix it.
XSD Schemas are located using the standard xsi:schemaLocation and xsi:noNamespaceSchemaLocation attributes where the xsi prefix is bound to the http://www.w3.org/2001/XMLSchema-instance namespace or you can specify schemas using the Schema Dialog.
Once a schema is assoicated with your document you will also get prompted by Intellisense for element and attribute names and values.


Prerequisites: Advanced knowledge in HTML, CSS, React, TypeScript, Quantum Physics, Organic Chemistry ... just kidding! Only your excitement to get started!
Sign up for an account, or just continue as a guest. Registered users enjoy additional project-saving functionality.
Registered users can create a new project and select whether they want their project to be a Next.js, Gatsby.js, or classic React project. Also, registered users can save projects to return to them at a later time.
Create components on the right panel. Components can be associated with a route, or they can be used within other components.
Delete components after focusing on them in the right panel. Be careful when deleting components: Upon deletion, all instances of the component will be removed within the application/project.
Create custom elements or add provided HTML elements into the application. Once the project is exported, the HTML tags generated in the code preview will function as expected. You can specify functionality for custom elements in the code preview. The tutorial on HTML Elements explains more on how to do this.
Delete custom HTML elements by clicking on the ‘X’ button adjacent to the element. Be careful when deleting custom elements: All instances of the element will be deleted within the application/project.
Each component has its own canvas. Add an element to a component by dragging it onto the canvas. Div components are arbitrarily nestable and useful for complex layouts. Next.js and Gatsby.js projects have Link components to enable client-side navigation to other routes.
Click on the Component Tree tab next to the Code Preview tab to view the component tree hierarchy.
Select an element on the canvas to update its basic style attributes on the right panel. As you create new instances and add styling, watch as your code dynamically generates in the code preview in the bottom panel.
With the click of a button, toggle between light mode and dark mode, depending on your preference.
Click the “Export’ button to export the project’s application files into a TypeScript file. The exported project is fully functional with Webpack, Express server, routing, etc., and will match what is mocked on the canvas.


Defines the abstract unit of execution. The OpenGamma engine compiles a view by building a dependency graph of functions applied to computation targets, and executes the graph by invoking each function in the correct order to produce the requested terminal outputs for the view.


Best Selling Item
New Arrivals
Featured Products
About Tidiit
Lorem Ipsum is simply dummy text of the printing and type setting industry.
New Buyers FAQ
Lorem Ipsum is simply dummy text of the printing and type setting industry.
New Buyers FAQ
Lorem Ipsum is simply dummy text of the printing and type setting industry.


#include <cam.hpp>
Definition at line 38 of file cam.hpp.
◆ color2gray()
| int Cam::color2gray |
( |
cv::Mat & |
frameImage, |
|
|
cv::Mat & |
grayImage |
|
) |
| |
convert RBG image to grayscale
- Parameters
-
| frameImage | cv::Mat% |
| grayImage | cv::Mat% |
- Returns
- grayImgSize int
Definition at line 50 of file cam.cpp.
51 cv::cvtColor(frameImage, grayImage, cv::COLOR_BGR2GRAY);
52 int grayImgSize = static_cast<int>(grayImage.total() * grayImage.channels());
◆ readFrameImage()
| int Cam::readFrameImage |
( |
cv::Mat & |
img | ) |
|
read each frame of the video feed
- Parameters
-
- Returns
- int
Definition at line 41 of file cam.cpp.
42 if (!feed.isOpened()) {
43 std::cout <<
"error: Feed not initialized \n\n";
◆ readVideo()
| int Cam::readVideo |
( |
std::string |
demoPath | ) |
|
overloaded function to read video from a video file into feed
- Parameters
-
- Returns
- int
Definition at line 32 of file cam.cpp.
34 if (!feed.isOpened()) {
35 std::cout <<
"\nerror: Demo Video not initialized successfully\n\n";
The documentation for this class was generated from the following files:


Back in ‘95, eleven people got together to start a church in Cincinnati for their friends who didn’t like church. Today, Crossroads is a movement of people meeting in person and digitally all over the country. No memberships or awkward hand-holding, just unfiltered talk and biblical truth that will wake your soul.


Item is a Ruby on Rails plugin for implementing semantic markup (microdata) without messing up the view code.
See Schema.org for valid microdata.
Add this line to your application's Gemfile:
gem 'item'
Then run:
$ bundle
To define an itemscope
:
<% scope :product do %>
...
<% end %>
This will generate the following HTML:

...

To define an itemprop
span:
<%= prop :name, "My Product Name" %>
This will generate the following HTML:
My Product Name
To define hidden itemprop
s via <meta>
tags, pass a hash to the prop
helper:
<%= prop date_published: Date.today %>
This will generate the following HTML:
<meta itemprop="datePublished" content="2014-07-26" />
To define a link to an enumeration member, e.g. ItemAvailability
The following is the Product example on Schema.org rewritten with Item. In your view:
<% scope :product do %>
<%= itemprop :name, "Kenmore White 17\" Microwave" %>
<%= image_tag "kenmore-microwave-17in.jpg" %>
<% prop :aggregate_rating do %>
Rated <%= prop :rating_value, 3.5 %>/5
based on <%= prop :review_count, 11 %> custom reviews
<% end %>
<% prop :offers, type: :offer do %>
<%= prop :price, "$55.00" %>
<%= prop :availability, :in_stock %>
In Stock
<% end %>
Product description:
<%= prop :description, "0.7 cubic feet countertop microwave.
Has six preset cooking categories and convenience features like
Add-A-Minute and Child Lock." %>
Customer reviews:
<% prop :review do %>
<%= prop :name, "Not a happy camper" %> -
by <%= prop :author, "Ellie" %>,
<%= prop date_published: "2011-04-01" %>
April 1, 2011
<% prop :review_rating, type: :rating do %>
<%= prop worst_rating: 1 %>
<%= prop :rating_value, 1 %> /
<%= prop :best_rating, 5 %> stars
<%= prop :description, "The lamp burned out and now I have to replace it." %>
<% end %>
<% end %>
<% end %>
Changes and improvements are to Item are very welcome and greatly appreciated.
git checkout -b my-new-feature
)rake
to make sure the tests passgit commit -am 'Add feature'
)git push origin my-new-feature
)


The SHA algorithm produces a hash value of length 160 bits (= 20 bytes).
Based on SHA the slightly modified SHA-1 arose. Both hashing methods were published in 1991 by the U.S. National Institute of Standards and Technology (NIST).
Meanwhile NIST defined 3 new variants of the hash function SHA-1, which create hash values of the length 256, 384 and 512 bits.
Using such long hash values the birthday-attack will probably be prevented successfully for years (see menu Analysis \ Hash \ Attack on the hash value of the digital signature).


Rooms
Here are the rooms we provide. Have a look at them.
Banquet Style
Layout
Original
Classroom Style
Layout
Original
Theatre Style
Layout
Original


freedom.js
▶
Demos
▶
Connections
Toggle Height-Aware Provider: [
on
,
off
]
A height-aware provider can integrate views to be more aware of their context.


This is a basic project written in HTML, CSS and JavaScript. The Project involves the user keying in values which are basically sides of a triangle are the program will determine if the triangle is an Equilateral, Isosceles or Scalene. In case properties of a triangle are not met the program prints out Not a Triangle and thus prompts the user to key in correct values.


Damned River (1989) 91m
1972's DELIVERANCE was pretty much the last word on civilization-vs-wilderness pictures, but this didn't discourage many imitations. In this one, four friends travel to Africa for a week-long rafting vacation down the Zambesi. Their brusque guide Raymond (Stephen Shellen) treats them at first with indifference, then contempt. As the water gets wilder, so does Raymond - he snaps at his passengers and then snaps in his mind. Yes, the storyline is standard exploitation (or raftploitation?) fare but tries for better. Shellen has a few good lines and heÕs amusing when yelling abuse at the rafting party without regard about how they might be 'feeling' about the whole experience (you get the impression that this was written by river guides as a revenge fantasy for every this-wasn't-in-the-brochure whining customer they've had to take on board). Cinematography (all filmed on location in Zimbabwe) is good, and director Michael Schroeder makes an effort to keep things visually interesting:
Weight of film falls on Shellen's shoulders, and he does a reasonable job. It makes sense that we're supposed to link Shellen with the wilderness as a contrast to the controlled behavior of his passengers, but he seems trapped in a middle zone, neither truly natural/savage enough to belong completely to the river nor domestic/ethical enough to belong with the others of his party. Note that Shellen follows every unexpected or violent act with an explanation, excuse, or justification. Clearly the moral code he operates on is completely his own - that's why I don't think this film works at any potential allegorical level. It's easy enough to explain Shellen's behavior by passing him off as a confused war veteran, but when his passengers refuse to fight fire with fire ("we're better than him") the film only makes a statement about one individual rather than a general human condition. I know this kind of conjecture seems a little overwrought for this type of movie, but that's what makes DAMNED RIVER interesting. I like the idea underpinning the film - that a group of people are forced to depend entirely on someone erratic and dangerous - and it would have paid to highlight this angle in deference to letting Shellen go over the top so soon. With a tighter script DAMNED RIVER could have been considerably better; with any less production value it could have been a lot worse. It's an exploitation film that doesn't come across as an exploitation film, but it doesn't really make it to 'legit' status either. Film is like its central character, trapped in a middle zone. As river movies go, it would rate a Class 3. That's somewhere between THE RIVER WILD and RACE FOR YOUR LIFE, CHARLIE BROWN. And just for the record, crocodile does *not* taste like chicken. Who keeps spreading this stuff around?
<EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


These compiled JavaScript fragments originate in the Selenium code base, and are under the Apache 2.0 License.
See selenium.googlecode.com/svn/trunk/javascript/watir-atoms/
[Validate]
Generated with the Darkfish Rdoc Generator 1.1.6.


Submit Requests
Submit Requests In Your Cart
${scaleUser.displayName}'s Requests Submitted:
${msg}
There was a problem saving ${scaleUser.displayName}'s requests:
${msg}
${scaleUser.displayName} does not have any open requests. Click "Request Access" to make requests.
${wfentry.value.wf.label}
${wfentry.value.wf.description}


Enter an Airport Code (ie KIAH, KJFK, EGLL):
Arrivals
Ident
From
Depart
Arrive
Departures
Ident
To
Depart
Arrive
Enroute
Ident
From
Depart
Arrive
Scheduled
Ident
To
Depart
Arrive


AGO Outsourcing director set up new firm just before going bust
More developments in the complex web of the wage scandal business
by Fraser N Wilson, https://www.dailyrecord.co.uk/authors/fraser-n-wilson/The director of a firm behind a growing pay scandal at an East Kilbride call centre started a new company just weeks before calling in administrators.
And that new company is the one now paying remaining staff at AGO Outsourcing.
Liam McCreadie is registered as the director of Lakemere Global Holdings who filed for liquidation late last month.
Administrators were assigned on October 24, just a month after – on September 21 – he started new company, EK Sales Ltd.
We told you last week how a number of staff at AGO had lodged complaints that they had repeatedly not been paid correctly by bosses there.
AGO chief executive Kris McGenily told us the blame for the problems lay with Lakemere who were the “legal entity” supposed to pay staff.
When asked who the new legal entity behind AGO would be, Mr McGenily failed to reply. However, we can reveal that staff at the call centre are now being paid by EK Sales.
One former worker, who does not wish to be named, showed us her contract which states she was employed by “AGO Outsourcing,” with no reference to Lakemere in the six-page document.
Her payslip from September 30, 2019, showed she was being paid by EK Sales Ltd – however, payment into her account came from Lakemere.EK Sales is registered in the Greater London area as management consultancy activities firm.
A number of former and current staff members told the News that Mr McCreadie and Mr McGenily were known to each other personally.
Mr McGenily himself has been the director of a number of companies registered at Companies House.
He was director for Resource Energy Talent Solutions, Ella Boutique, KM Global Energy, Optimum Energy Group, Spectre International, and Aventas Group.
Aventas was liquidated with overdue accounts and confirmation statement, whilst Optimum was forced into complulsory liquidation in December 2018 with Lloyds bank listed as an entitled person
KM Global Energy was subject to a compulsory striking off order in 2015, with Ella Boutique voluntarily struck off.
Resource Energy Talent Solutions was subject to a compulsory striking off order in November 2014.
On jobs search site, Indeed, AGO has a 2.3 out of five rating following reviews from some former and existing workers.
Corporate restructuring firm, Begbies Traynor, were approached by Mr McCreadie to liquidate Lakemere following pressure on the company from creditors.
They said this week they were “unable to make any further comment” after the News asked for more information.
Mr McGenily failed to engage with the News despite repeated attempts to find out more.


Welcome to the
ⓈⓄⒻⓉ ⓄⒻⒻ ⓈⓄⓊⓃⒹ ⒼⒺⓃⒺⓇⒶⓉⓄⓇ!! ⓎⒺⒶⒽ! ⒻⒾⓃⒶⓁⓁⓎ!!!
Created by Norbert "Nonoo" Varga. The original soft off sound recorded by Blueghost is
here
.
Volume:
%
Length:
sec
Length (off):
sec
Freq:
Hz
Freq off:
Hz
Duty cycle:
%


Full-Stack Web Developer
Applying Logic-Based Creativity
I'm a passionate Web Developer dedicated to building and optimizing full-stack websites that increase brand awareness and profitability. Along with my experience in banking, as a stay-at-home-Dad I’ve learned the value of patience, active listening and assertive
speaking, collaborative idea creation, and innovative problem solving. In addition to spending quality time with my little ones, I also carve out time to enjoy soccer, cycling, all things Sci-Fi, crossword puzzles, and mastering chess.


180
Friend Requests: [[REQS]] Private Messages: [[DMS]] Comment History: [[COMMENTS]]
[[RANK]]
Account ID: [[ACCOUNTID]]Player ID: [[PLAYERID]]


Our promise is to provide digital IT professionals with a strong team ethic and a proven track record of delivery excellence on challenging projects.
Maximize the skills and passion of your people. Our professionally qualified performance coach has a strong technical background in digital delivery.
We can offer an experienced and independent viewpoint of your organization and enterprise IT to help inform strategy, policy and processes.
We love open-source! Check out our open projects in github:
Mule plugin for Pinpoint APM
Trace execution of flows from web servers, Java code or end-users through Mule flows and Mule message processors and out to underlying APIs and legacy web services.
Sureassert UC
Experimental continuous unit testing and coverage tooling for Eclipse, driven entirely through DbC-style annotations and expressions rather than test code. [Archived]
We are based on the south coast in sunny Worthing, close to Brighton, Portsmouth, Crawley and Gatwick.


{% extends 'bootApp/index.html' %}
{% block content %}
The city's top tourist attraction was the Notre Dame Cathedral, which welcomed an estimated 12,000,000 visitors in 2017. Second was the Basilique du Sacré-Cœur on Montmartre, with an estimated 11 million visitors. This was followed by the Louvre Museum (8.02 million visitors); the Eiffel Tower (6.2 million); Centre Pompidou (3.3 million visitors); Musée d'Orsay (3.2 million); The City of Science and Industry (2.4 million visitors); The Chapel of Our Lady of the Miraculous Medal (2 million visitors); The Museum of Natural History (1.7 million visitors); and the Arc de Triomphe (1.3 million visitors)Tourism


--- layout: post title: Dynamic barcodes date: 2005-03-03 00:00:00 category: mobile ---
This is a fantastic story: "Rather than using a standard punch card or signing in electronically, the clock presents a QR code that the users snaps a photo of -- designating the times at which they check in or check out."
Not so much for the idea of using QR codes as a punch-in clock; like the article says, that's pretty pointless. But it had never occurred to me to change barcodes from being static items to dynamic things that change over time or in response to the environment...


Hey!
about
A dedicated student with punctuality, sincerity, flexibility to adjust and good leadership abilities. Hard working and interested to enjoy new challenges & ready to take extra responsibilities to get work done. Fast & self-directed learner, able to work as a team member with creativity and Excellent communication skill.
Student of B.Tech- CSE at Govt. College of Engineering & Textile Technlolgy, Serampore | Coding Enthusiastic | Java Lover | Full-stack Web-Developer | Trainer | Tech Content Writer | Open-Source Contributor | freelance photographer
• Find my works on Github.
• Connect and Check my activity on Linkedin.
• Experience my photography skills on Instagram.
.
technical skills
As a reluctant developer, I fled from a traditional path and explored my creativity, trough trying my
hands on various techniques and software. Software is more than just a tool, and I try to dig deep into it. Today, I knack for critical thinking, empathy and creativity to create
viable and impactful solutions using these technologies.
• Platform : Windows.
• Programming language: C, JAVA, Javascript, PHP
• Software Development : Java Swing
• Web Development (Full-stack):
- Serverside/Backend :Java J2EE Technologies, JSP, Servelt, JDBC, XML-I and XML-II, PHP, NodeJs, expressJs, Tomcat, Mysql & Oracle databases.
- Userside/Frontend : Html, CSS, Bootstrap, Javascript, WordPress.
• Testing/ Debug :JUnit testing
• Tools : Notepad, Notepad++, XAMPP, Eclipse IDE, IntelliJ Idea community Edition, Git Version-control
• Other skills : Adobe photoshop, MS- Word, MS- Powerpoint, MS- Excel, Internet Suffering, Booting, OS load, Data- Entry etc.
TRAINING / CERTIFICATIONS
Activities
web projects
All the Web Projects are made using JAVA Swimg, Java EE Technologies, JSP, Servelt, JSTL ,Tomcat server,
HTML, CSS, Bootstrap, JavaScrit, Wordpress, PHP, Mysql & Oracle databases,
(To know more Click on the project )
experience
Coordinate many sessions with them and also controlled the IT- systems of the organisation.
Apurba is JAVA & Web Development Trainer at National Institute for Industrial Training. Taking Many sessions on Java poject discussions, web development winter training sessions etc.
Completed the Internship as an Web Development Intern under the guidance of Ramchandra Kumble sir.
These 3 months were full of experience and expertise and got to learn a lot of skills while working with so many interns altogether.
Designing some service page sections on the portfolio website https://youthmonk.tech/ website using wordpress Elementor, also Build a Travel agency website using wordpress theme,
a multivendor E-Commerce website of Electronics shop using wordpress ,
Build a online learning platform using LMS plugins.
Technology:
Serverside - NodeJs, PHP, MySql
Client side: HTML,CSS,Bootstrap, Javascript, Wordpress
Apurba was a Human Resources Intern at Youth Empowerment Foundation. Skills: Harwoking, efficient, sincere, planning and organizational skills. Ability to manage and handle multiple tasks.
achivements
It always seems impossible until its done. Participated in more contests, exams run online and run by government. I got scholarship for successing the National Means-cum Merit Scholarship Examination in 2011.
-
- - got scholarship form the National Means - cum Merit Scholarship Examination
- -Secured rank 9832 in WBJEE 2017
- -Earned 3 star from HackerRank online platform for coding practices on the SQL queary
- -Earned 1 star from HackerRank online platform for coding practices on the JAVA
-
- -Got 1st position in the poster competition on the topic of ‘ragging is prohidited in the campus' organised by the GCETTS NSS committee
- -Earned a certificate of student membership on INDO- UK Center of professional Excellence, London, UK
- -Earned a certificate for Completing career edge – knockdown the lockdown online course offered by TCS-ion
contact
Hello , I'd love to hear from you.
{{ resultMessage }}
Or simply email me at apurbakumar.note@gmail.com


|
Zeebe C# Client 1.2.1
C# Client to communicate with an Zeebe Gateway
|
A client with access to all job-related operation:
Public Member Functions | |
| ICompleteJobCommandStep1 | NewCompleteJobCommand (long jobKey) |
| Command to complete a job. More... | |
| ICompleteJobCommandStep1 | NewCompleteJobCommand (IJob activatedJob) |
| Command to complete a job. More... | |
| IFailJobCommandStep1 | NewFailCommand (long jobKey) |
| Command to mark a job as failed. More... | |
| IThrowErrorCommandStep1 | NewThrowErrorCommand (long jobKey) |
| Command to report a business error (i.e. non-technical) that occurs while processing a job. More... | |
A client with access to all job-related operation:
| ICompleteJobCommandStep1 Zeebe.Client.Api.Worker.IJobClient.NewCompleteJobCommand | ( | IJob | activatedJob | ) |
Command to complete a job.
The job is linked to a process instance, which means this command will complete the related activity and continue the flow.
| activatedJob | the job, which should be completed |
| ICompleteJobCommandStep1 Zeebe.Client.Api.Worker.IJobClient.NewCompleteJobCommand | ( | long | jobKey | ) |
Command to complete a job.
The job is linked to a process instance, which means this command will complete the related activity and continue the flow.
| jobKey | the key which identifies the job |
| IFailJobCommandStep1 Zeebe.Client.Api.Worker.IJobClient.NewFailCommand | ( | long | jobKey | ) |
Command to mark a job as failed.
If the given retries are greater than zero then this job will be picked up again by a job worker. Otherwise, an incident is created for this job.
| jobKey | the key which identifies the job |
| IThrowErrorCommandStep1 Zeebe.Client.Api.Worker.IJobClient.NewThrowErrorCommand | ( | long | jobKey | ) |
Command to report a business error (i.e. non-technical) that occurs while processing a job.
| jobKey | the key which identifies the job |


{% extends "admin/index.html" %} {% block content %} {% if failed_deployments.count %}
There are {{ failed_deployments.count }} failed deployments!
There are SSL issues!


This is an implementation of 2048 as a POC of Separation of Concerns.
The source code is available here
Press left,right,up,down arrows to move


Gecode::Int::Element::IterVal Class Reference
List of all members.
Detailed Description
Value iterator for values in index-value map.
Note that the iterated value sequence is not strictly increasing (might contain duplicates).
Definition at line 132 of file int.icc.
Constructor & Destructor Documentation
| Gecode::Int::Element::IterVal::IterVal |
( |
void |
|
) |
[inline] |
| Gecode::Int::Element::IterVal::IterVal |
( |
const IdxValLink & |
ivl |
) |
[inline] |
Member Function Documentation
| void Gecode::Int::Element::IterVal::init |
( |
const IdxValLink & |
ivl |
) |
[inline] |
| bool Gecode::Int::Element::IterVal::operator() |
( |
void |
|
) |
const [inline] |
| void Gecode::Int::Element::IterVal::operator++ |
( |
void |
|
) |
[inline] |
| int Gecode::Int::Element::IterVal::val |
( |
void |
|
) |
const [inline] |
The documentation for this class was generated from the following file:


Moses Gakuhi King'ori
I am a creative proactive commited fast and dynamic web developer.Who has a reputable track record in web and app development.
I am a creative proactive commited fast and dynamic web developer.Who has a reputable track record in web and app development.


Use this option, if you want to change the default accessibility for UI-bound fields from private to something else, like public.
private
public


| Package | Description |
|---|---|
| org.red5.server.api | |
| org.red5.server.api.persistence | |
| org.red5.server.api.scope | |
| org.red5.server.persistence | |
| org.red5.server.scope | |
| org.red5.server.so |
| Modifier and Type | Method and Description |
|---|---|
IPersistenceStore |
IContext.getPersistanceStore()
Returns persistence store object, a storage for persistent objects like persistent SharedObjects.
|
| Modifier and Type | Method and Description |
|---|---|
static IPersistenceStore |
PersistenceUtils.getPersistenceStore(ResourcePatternResolver resolver,
String className)
Returns persistence store object.
|
IPersistenceStore |
IPersistable.getStore()
Returns the persistence store this object is stored in
|
| Modifier and Type | Method and Description |
|---|---|
void |
IPersistable.setStore(IPersistenceStore store)
Store a reference to the persistence store in the object.
|
| Modifier and Type | Method and Description |
|---|---|
IPersistenceStore |
IBasicScope.getStore()
Get the persistable store
|
| Modifier and Type | Class and Description |
|---|---|
class |
RamPersistence
Persistence implementation that stores the objects in memory.
|
| Modifier and Type | Field and Description |
|---|---|
protected IPersistenceStore |
BasicScope.store
Storage for persistable attributes
|
| Modifier and Type | Method and Description |
|---|---|
IPersistenceStore |
BasicScope.getStore() |
| Modifier and Type | Field and Description |
|---|---|
protected IPersistenceStore |
SharedObject.storage
Object that is delegated with all storage work for persistent SOs
|
| Modifier and Type | Method and Description |
|---|---|
IPersistenceStore |
SharedObject.getStore()
Returns the persistence store this object is stored in
|
IPersistenceStore |
SharedObjectScope.getStore()
Get the persistable store
|
| Modifier and Type | Method and Description |
|---|---|
void |
SharedObject.setStore(IPersistenceStore store)
Store a reference to the persistence store in the object.
|
| Constructor and Description |
|---|
SharedObject(Map<String,Object> data,
String name,
String path,
boolean persistent,
IPersistenceStore storage)
Creates new SO from given data map, name, path, storage object and persistence option
|
SharedObject(String name,
String path,
boolean persistent,
IPersistenceStore storage)
Creates new SO from given data map, name, path, storage object and persistence option
|
SharedObjectScope(IScope parent,
String name,
boolean persistent,
IPersistenceStore store)
Creates shared object with given parent scope, name, persistence flag state and store object
|
Copyright © 2005–2016 Red5. All rights reserved.


--
Logout
Change Password
Settings
${message}
No data available
Change Password
×
Current Password:
Please enter your current password.
New Password:
Please enter your NEW password.
New Password (again):
Please re-enter your NEW password.
User Settings
×
Receive Emails:
Don't receive emails.
Get emails but at most once per 30 minutes.
Get emails but at most once per 1 hour.
Get emails but at most once per 2 hours.
Get emails but at most once per 3 hours.
Get emails but at most once per day.
How often you want to receive email notifications?
Stations:
List of stations/cities you would like to receive emails for.
Quiet Hours Start:
Quiet Hours Start. (Do not receive emails during quiet hours)
Quiet Hours End:
Quiet Hours Start. (Do not receive emails during quiet hours)