Now that we have classes that model our different kinds of students, we would like to use these classes to solve the grading problem from §9.6/166. That program read a file that contained student grade records, computed the final grade for each student, and wrote a formatted report in alphabetical order by student name. We'd like to solve the same problem, but do so for a file that contains records for both kinds of students.
Before solving the whole problem, we'll solve two simpler problems: We will write programs that can read files that consist entirely of one kind of record or the other. Both of these programs will look just like our original except for the type declarations:
int main() { vector<Core> students; // read and process Core records Core record; string::size_type maxlen = 0; // read and store the data while (record.read(cin)) { maxlen = max(maxlen, record.name().size()); students.push_back(record); } // alphabetize the student records sort(students.begin(), students.end(), compare); // write the names and grades for (vector<Core>::size_type i = 0; i != students.size(); ++i) { cout << students[i].name() << string(maxlen + 1 - students[i].name.size(), ' '); try { double final_grade = students[i].grade(); // Core::grade streamsize prec = cout.precision(); cout << setprecision(3) << final_grade << setprecision(prec) << endl; } catch (domain_error e) { cout << e.what() << endl; } } return 0; }
We can write the same program to handle Grad
records by changing the type definitions:
int main() { vector<Grad> students; // different type in the vector Grad record; // different type into which to read string::size_type maxlen = 0; // read and store the data while (record.read(cin)) { // read from Grad, not Core maxlen = max(maxlen, record.name().size()); students.push_back(record); } // alphabetize the student records sort(students.begin(), students.end(), compare); // write the names and grades for (vector<Grad>::size_type i = 0; i != students.size(); ++i) { cout << students[i].name() << string(maxlen + 1 - students[i].name.size(), ' '); try { double final_grade = students[i].grade(); // Grad::grade streamsize prec = cout.precision(); cout << setprecision(3) << final_grade << setprecision(prec) << endl; } catch (domain_error e) { cout << e.what() << endl; } } return 0; }
Of course, the functions that are run in each instance depend on the type of record
, and
on the type of the objects contained in the vector
. For example, the expression
record.read(cin)
calls Core::read
or Grad::read
, depending on the type of record
. It is worth noting
that this call is statically bound: The dependence on the type of record
has nothing to do
with the virtual
nature of the read
function. We are invoking the function on behalf of
an object, not a pointer or reference to an object. Thus, record
is either a Core
or a
Grad
, depending on which version of the program is being run. However, once we
define record
, its type is fixed, and so the call to record.read(cin)
is likewise bound
at compile time. Similarly, the grade
function that we call when generating output,
students[i].grade()
will be statically bound to the one from class Core
when we run the first program, and to
the one from Grad
when we run the second program.
In both versions of the program, the uses of name()
refer to the (nonvirtual) version
defined in class Core
. That function is inherited by Grad
, so that when we run it for a
Grad
object, we are still running the version that we defined in Core
. The compare
function that we pass to sort
operates on references to Core
. When the version of the
program that operates on Grad
records runs, it will compare
the Core
parts.
Obviously, it is tedious to write separate versions of our program. What we really
want to do is to write a single version that can handle either Core
or Grad
objects.
In order to write a single function that can read
a file of either Core
records or Grad
records, we need to look closely at the code, and identify those places where the type of
the record matters. In order to write a single version of the program, we will have to
eliminate these type dependencies:
vector
in which we store the elements as we read themread
functiongrade
functionThe remaining code is either type independent (the code to sort
the vector
or to iterate
through it) or it is invariant between the Grad
and Core
versions (such as the name
and
compare
functions). Because we defined the grade
and read
functions as virtuals,
we have already solved the last two parts of our problem.
It turns out that the first two subproblems—what type to use for the local temporary and what type to store in the container—can be handled by the same strategy. It also turns out that there are two different approaches to solving these subproblems. The first approach is straightforward, so we'll look at it in the next section. The other solution represents a common, important C++ programming idiom, which we'll cover in §13.4/243.
The problem that we need to solve is to relax the type dependencies in the following:
vector<Core> students; // must hold Core objects, not polymorphic types Core record; // Core object, not a type derived from Core
The type dependencies in this code should be fairly clear. When we define record
, we
say exactly what type of object record
is: It is a Core
, because that's what we said it was.
Similarly, when we define students, we say that it is a vector
that holds objects of type
Core
. We'll have more to say about such containers in §13.6.1/249, but for now what's
important is to realize that when we define a vector<Core>
, we are saying that each
object in the vector
will be a Core
object—not an object of a type derived from Core
.
When we outlined the type dependencies in our two programs, we noted that we'd
solved half the type issues because read
and grade
were virtual
functions. The other
half of the problem is that, as written, our programs make statically bound calls to these
virtual
s. In order to invoke the dynamic behavior that we need, we need to call read
and grade
through a pointer or reference to Core
. That way, the type of the object
bound can differ from the type of the pointer or reference. This observation leads us to a
solution to all four subproblems: We can write the program to manage pointers instead of
objects. We can have a vector<Core*>
, and we can define record
to be a pointer as
well. In this way, we can obtain the dynamic behavior we need, while eliminating the
type dependence involved in the definitions of the vector
and our local temporary.
Unfortunately, as we shall see, this solution pushes a lot of complexity onto our users. For
example, the obvious try at a solution doesn't work at all:
int main() { vector<Core*> students; Core* record; while (record->read(cin)) { // crash! // ... } }
The trouble with this program is that it fails horribly, because we never caused record
to
point to an object!
We can fix this problem, but only by requiring that our users actively manage the
space consumed by the objects that they read from the file. Our users will also have to be
able to detect what kind of records the program is reading. We'll assume that each record
will contain an indicator to distinguish the kind of record that it contains: Records for
graduate students will start with a G
, and those for an undergraduate will start with a U
.
Before we rewrite the program to use pointers, there is one more problem that we
must solve: How do we sort a vector
of pointers? The easy answer is that we'll need a
new comparison function that takes two pointers to Core
objects. The tricky part is that
we cannot name this function compare
. Recall that in §8.1.3/142 we discussed various
subtleties in getting the right types for values that we pass as template arguments. For
similar reasons, we cannot pass an overloaded function name as a template argument. If
we did so, the compiler would have no way to determine which version of the function
we wanted. Evidently, we'll need to write a comparison function that will give us a non-
overloaded name to pass to sort
:
bool compare_Core_ptrs(const Core* cp1, const Core* cp2) { return compare(*cp1, *cp2); }
Having written a specialized comparison function, we can now rewrite the program:
// this code almost works; see §13.3.2/242 int main() { vector<Core*> students; // store pointers, not objects Core* record; // temporary must be a pointer as well char ch; string::size_type maxlen = 0; // read and store the data while (cin >> ch) { if (ch == 'U') record = new Core; // allocate a Core object else record = new Grad; // allocate a Grad object record->read(cin); // virtual call maxlen = max (maxlen, record->name().size()); // dereference students.push_back(record); } // pass the version of compare that works on pointers sort(students.begin(), students.end(), compare_Core_ptrs); // write the names and grades for (vector<Core*>::size_type i = 0; i != students.size(); ++i) { // students[i] is a pointer that we dereference to call the functions cout << students[i]->name() << string(maxlen + 1 - students[i]->name.size(), ' '); try { double final_grade = students[i]->grade(); streamsize prec = cout.precision(); cout << setprecision(3) << final_grade << setprecision(prec) << endl; } catch (domain_error e) { cout << e.what() << endl; } delete students[i]; // free the object allocated when reading } return 0; }
We have noted in comments the many differences between this code and our original. These changes all result from the fact that we must manipulate pointers and not objects.
The while
loop changes to read the first character from the input, which we subsequently
test to determine which kind of record we are about to read. Once we know what kind
of object we need, we allocate an object of the appropriate type, and use that object to
read
from the standard input. The read
function is virtual
, so the right version will
be called, depending on whether record
points to a Grad
or a Core
object. In both
cases, read
will give the object the values from the next input record
. Note that we must
remember to dereference record
, which is a pointer, to access read
. The code to calculate
the length of the longest name also changes to dereference the pointer, but otherwise
the next few lines of code are unchanged.
When we get to the loop that does output, we have to remember that students[i]
yields a pointer. Once we have fetched students[i]
, we have a pointer that must itself
be dereferenced to get at the underlying object. As with the call to read
, the call to
grade
is a virtual
call, so the right version of grade
is automatically invoked to calculate
the grade
, including a thesis if the object is a Grad
and not otherwise. The final
change is to remember to return to the implementation the space that the object consumed,
which we do by calling delete
on the pointer that students[i]
contains.
Our program almost works. The only problem occurs when we delete
the objects, as we
do inside the output loop. When we allocated these objects, we allocated both Grad
and
Core
objects, but we stored pointers to these objects as Core*
, and not as Grad*
pointers.
Thus, when we delete
them, we are deleting a pointer to Core
, and never a pointer
to Grad
, even if the pointer actually points to a Grad
object. Fortunately, this problem is
easily fixed.
When we call delete
on a pointer, two things happen: The destructor is run on the
object, and the space that held the object is freed. When the program delete
s the pointer
in students[i]
, it could be pointing at either a Core
object or a Grad
object. Neither
Core
nor Grad
explicitly defined a destructor, which means that when the delete
runs,
it will invoke the synthesized destructor and then return the space that the object consumed.
The synthesized destructor will run the destructor for each data element in the
class. But when the delete
is executed, which destructor should the system run? Should
the destructor destroy the members of a Core
or a Grad
? And when the space is freed,
how much space should be returned—enough to hold a Core
or a Grad
?
These questions sound like the kind that the virtual
mechanism can resolve—and
indeed it can. In order to have a virtual
destructor, the class must have a destructor,
which we can then make virtual
:
class Core { public: virtual ~Core() { } // as before };
Now when we execute delete
students[i]
, the destructor that will be run will
depend on the type of object to which students[i]
actually points. Similarly, the type
of the memory that we return to the system will be determined by the type to which
students[i]
actually points.
Note that the body of the destructor is empty. The only work needed to destroy a
Core
is to destroy its members, and the system does this work automatically. Empty,
virtual
destructors are not uncommon. A virtual
destructor is needed any time it is
possible that an object of derived type is destroyed through a pointer to base. If there is
no other reason for the destructor to be defined, then that destructor has no work to do
and should be empty.
There is no need to update the Grad
class to add a destructor. As with all virtual
functions, the fact that the destructor is virtual
is inherited. Because neither class has
any explicit work to do in order to destroy objects, there is no need to redefine the
destructor in the derived class. Because the derived class inherits the virtual
property
of its base-class destructor, all we have to do is recompile the program.


Background Info
Warning
The background information pages on this website (Background Info and Plot) don't use textual evidence since they just give you background information about the book. Text-based evidence is used on all the main content pages.
The Catcher in the Rye was written by J.D. Salinger and published it 1951. It is J.D. Salinger's only complete novel. The Catcher in the Rye is a story told from the perspective of 16-year old Holden Caulfield, the main character. Holden is generally a cynical, lonely, and rebellious character, which will be explained more and proved in the Characters page. Holden lives in New York City, which is where most of the events in the story take place. The early parts of the story are set in Pencey Prep, Holden's prep school in Pennsylvania. The book begins with Holden in some kind of mental hospital or institution. In the book, Holden essentially narrates the story of his decline into depression and a mental breakdown. The events he narrates in the book happened a year ago around Christmas time.
Upon release, The Catcher in the Rye resonated with many (especially younger) people. The 1950s was a time period where children were expected to conform to social norms, and many felt this undermined their individuality. Holden's constant criticism of social norms in the book and his strong sense of individuality/being true to himself resonated with these people. This is a reason why the book was an instant hit upon release.
However, this book was and still can be controversial. For instance, the book explores teenage sexuality through characters like Stradlater and Holden himself.  Holden also uses slang and profanity constantly throughout the book. These aspects of the book can offend people and raise concerns when children are reading it. Also, the very informal tone of the book was different from most literature at the time which was formal and dignified. This led to people not taking the book seriously or finding it offensive. Many organizations have banned the book because of these concerns.
Generally, The Catcher in the Rye has a slow plot without much action. Despite this, it can stil be interesting to read and analyze. To move onto our plot overview, you can click here.
This is a picture of New York City from the 1950s, the time period and setting of The Catcher in the Rye.
This is an example of a "social guidance" instructional video from the 1950s. Videos like these were shown to kids in school, and promoted conformity. These kinds of videos highlight the social expectations and conformity of the 1950s.


Simulation of a circunference rolling in the inside of another circunference
And now, rounding the radius to simple near rationals


In the news
Ukraine International Airlines Flight 752 aircraft in 2019
UIA Flight 752 aircraft
Ukraine International Airlines Flight 752 (aircraft pictured) crashes shortly after takeoff from Tehran, Iran, killing all 176 people on board.
After a U.S. airstrike kills Iranian general Qasem Soleimani, at least 56 people die in a stampede during his burial procession in Kerman, and Iranian forces attack two military bases in Iraq.
Seventeen inmates are killed in two prison riots at a rehabilitation center in Cieneguillas, Mexico.
Ongoing: Australian bushfiresIndian Citizenship Amendment Act protests
Recent deaths: Elizabeth WurtzelJune Bacon-BerceyLarry GoganMinati MishraHans TilkowskiTom Long
Nominate an article
On this day
January 9
RMS Queen Elizabeth in 1966
RMS Queen Elizabeth in 1966
1857 – An earthquake registering 7.9 Mw ruptured part of the San Andreas Fault in central and southern California.
1909 – Ernest Shackleton, leading the Nimrod Expedition, planted the British flag 97.5 nautical miles (180.6 km; 112.2 mi) from the South Pole, the farthest south explorers had reached at the time.
1972 – Seawise University, formerly RMS Queen Elizabeth (pictured), an ocean liner that sailed the Atlantic for Cunard Line, caught fire in Victoria Harbour, Hong Kong.
1991 – Representatives from the United States and Iraq met at the Geneva Peace Conference to find a peaceful resolution to the Iraqi invasion of Kuwait.
2015 – Contaminated beer served at a funeral in Tete Province, Mozambique, killed 75 people and made at least 230 others ill.
Antoine Samuel Adam-Salomon (b. 1818) · Samuel Gridley Howe (d. 1876) · Brigitte Askonas (d. 2013)
More anniversaries: January 8January 9January 10
ArchiveBy emailList of historical anniversaries


BiosThere are many people who work hard to make ChemE Car possible. Click on the images below to find out more about ChemE Car's leaders!
Subteam Leaders
Daniel Recalde
Senior Captain
Charles Wan
Junior Captain
Steven Yeh
Treasurer
Ngan Sophie Le
Safety Officer
Jennifer Li
Bio Subteam Leader
James Dong
Battery Subteam Leader
Alexandra Vito
Pressure Subteam Leader
Nicholas Ornitz
Potions Subteam Leader
Ashley Fung
Mechanical Subteam Leader
Christine Soong
Electronics Subteam Leader
Jenny Bushnell
TEG Subteam Leader
Pradeep Prathibha
Business Subteam Leader
Jessie Reeves
Fuel Cell Subteam Leader
Jennifer Li
Jennifer is currently a senior studying Chemical Engineering. She joined Cornell ChemE Car in January 2013 and has been a member of the Biological Systems sub-team ever since. In addition to ChemE Car, Jennifer has completed a co-op at Johnson & Johnson and is an undergraduate research assistant in the DeLisa Research Group. In her free time, Jennifer is an avid Seahawks fan and serves as an intramural official for soccer, volleyball, and basketball.
Subteam: Biological Systems
Joined: Fall 2012
James Dong
James Dong grew up in Ridgefield, CT. Currently, he is a Junior, pursuing a B.S. in Chemical Engineering. James joined the Battery Sub-Team during fall semester of his freshman year and has been an active member since. During his freshman year, he proposed the aluminum-air battery. With the help of the entire team, this battery proceeded to win first place at Regionals 2014. James currently oversees Battery Sub-Team research and development and data analysis. In his free time, he enjoys traveling and playing guitar.
Subteam: Battery
Joined: Fall 2013
Alexandra Vito
Allee is a junior studying chemical engineering. When she is not leading the pressure team, she leads the ESW Biofuels team, is in a sorority, and plays the ukelele.
Subteam: Pressure
Joined: Fall 2013
Nicholas Ornitz
Nicholas Ornitz is a senior chemical engineering major. Nick joined the Potions sub-team of the ChemE Car team in the Spring of 2014. During his time on the team, Nick has competed in the 2014 regional and national competitions. Nick has plans to work in consulting in New York City and Stamford, CT for McKinsey & Company upon graduation.
Subteam: Potions
Joined: Spring 2013
Jennifer Bushnell
Jenny Bushnell is currently a Junior studying Chemical Engineering. She has been on TEG since the fall of her freshman year (Fall 2013). Besides ChemE Car, Jenny also an officer on the Quidditch team and conducts undergraduate research.
Subteam: TEG
Joined: Fall 2013
Jessie Reeves
Jessie Reeves is current the sub-team leader for Fuel Cell and she has been a part of the ChemE Car team since her freshman year (Fall 2014). She’s originally from Virginia Beach, VA and is currently a sophomore studying Chemical Engineering. Outside of ChemE Car, Jessie is also involved with the Big Red Marching Band and Pep Band and Meinig Family Cornell National Scholars.
Subteam: Fuel Cell
Joined: Fall 2014
Daniel Recalde
Dan Recalde is a Senior in Cornell's School of Chemical and Biomolecular Engineering. Dan has been with the team since 2012 and worked on the Fuel Cell team in developing the Mystery Machine, Charizard, and the Panther. Outside the lab, Dan enjoys working as a barista and watching football (Go Giants!). Dan joined ChemE Car out of his interest in the role chemical engineering plays in energy development and plans on exploring energy further after graduation.
Subteam: Senior Captain
Joined: Fall 2012
Charles Wan
A native of Rochester, New York, Charles Wan is currently a junior studying chemical engineering. This is his fifth semester on the ChemE Car team, having previously been the Battery sub-team leader and winning 1st at last year's Regional conference. His professional experience currently includes research in Professor Archer's lab studying Li-O2 batteries, and in the past as an Amgen Scholar at UC Berkeley. When not working on the car, he likes to play guitar, baseball, basketball, watch TV shows, and not do cardio.
Subteam: Junior Captain
Joined: Fall 2013
Ashley Fung
Ashley is a senior majoring in mechanical engineering. She joined ChemE Car during the spring semester of her freshman year and later became subteam leader in Fall 2015. Although Ashley has had the pleasure of working with the Fuel Cell subteam for the majority of her time on the team, she feels the most rewarding parts of her experience have been collaborating with all functionalities of the team and seeing developing designs come to fruition.
In her free time, Ashley enjoys baking, scrapbooking, and is an avid doer of jigsaw puzzles. Following graduation in the spring, Ashley will be completing her Masters of Engineering at Cornell and hopes to later pursue a career in the medical device industry.
Subteam: Mechanical
Joined: Fall 2013
Pradeep Prathibha
Pradeep joined ChemE Car in Fall 2012 as a volunteer for the Info sub-team. She is from Marietta, Georgia, and has been part of the team for over three years. Become coming to Cornell, she was a member of her high school’s Robotics team, and has been a horseback rider for over 8 years. She was elected Info subteam leader in Fall 2015. At the beginning of the 2015-16 academic year, Info and Finance were merged to form the Business sub-team, of which is the current lead.
Subteam: Business
Joined: Fall 2012
Christine Soong
Christine Soong is currently the electronics subteam leader since Fall 2013 (3 years). She is a senior studying electrical and computer engineering and minoring in mechanical engineering. Outside of ChemE Car, she is the vice president for Cornell IEEE, Treasurer of Cornell Squirrel club, and a member of Cornell Cru. She loves animals and doing anything outdoors like going on runs around campus, rock climbing, playing soccer, and archery.
Subteam: Electronics
Joined: Fall 2012
Steven Yeh
Steven joined ChemE Car during his first semsester on campus. Steven is a senior majoring in Computer Science. As Treasurer, he manages the teams budget, plans trips to competitions and assists with many other team projects. Steven has competed for ChemE at regionals the last three years. Steven hails from Chicago, IL and is a avid hockey fan cheering on the Cornell team and his home Chicago Blackhawks.
Subteam: Business
Joined: Fall 2012
Ngan (Sophie) Le
Sophie is a junior in Chemical Engineering. She joined ChemE Car’s Safety in fall 2014 as a sophomore. Her research interest includes engineering safety, computational bioengineering and working in pilot plant. As Safety subteam leader, Sophie is responsible for ensuring laboratory standards and safe operation across the team and mentoring new Safety members. In fall 2015, she compiled the Engineering Documentation Package (EDP) for the Battery Car and collaborated with Cornell EHS in shipping hazardous chemicals to competition site in Salt Lake City, Utah. On campus, Sophie is actively involved with Cornell International Students Admissions Ambassadors (ISAA), and Cornell Vietnamese Association. Fun fact about Sophie: She can breathe through the corners of her eyes!


Registration
First name of student:
Last name of student:
Class of student:
School of student:
First contact number of student:
Second contact number of student:
EMail ID of student:
Mode of attending:
Online
Offline
Fathers business:
Address of student:
Date Of Admission of student:
Submit


The following table shows the available resolutions and data formats for Index subscriptions:
Tick
Second
Minute
Hour
Daily


--- title: Exploratory Data Analysis weight: 4 chapter: true ---
In the beginning we wanted to assess if the different lexica sentiment scores for tweets were actually comparable. For that purpose we computed the correlation between tweet sentiment scores provided by each pair of sentiment lexica to assess whether the ranking of the tweets according to one sentiment lexicon agrees with the ranking of the tweets according to another sentiment lexicon.
Generally we can see that except of the Emoji Sentiment Lexicon by Novak all other sentiment lexicons seem to correlate rather well. Apparently the computed tweet sentiments from the Emoji Lexicon differ strongly from the sentiments of the other lexica which is reasonable since the Emoji Lexicon is only computed on the emojis contained in the tweet while the other lexica use the textual information of the tweet. The Jockers Rinker and Syuzhet lexicons are most similar with a correlation coefficient around 0.95. This intuitively also makes sense since Jockers-Rinker is a combined version of Syuzhet and Bing as mentioned before.
Since the sentiment scores were computed on a per-tweet basis we first had to aggregate the sentiment scores accordingly in order to capture the overall social media vibe, players were receiving. For that purpose we considered the sentiment scores of all tweets a player received in a 24 hour window before a game and aggregated them as follows:
Looking at the individual density curves we observed that the distributions of the average sentiment scores rougly fit the bell curve of a Normal distribution. Similar to the unweighted and weighted sentiment averages before, BPM was also normally distributed.
Knowing that the BPM values were normally distributed for the different players, it was sufficient to simply construct boxplots for the performance indicator to get a sense how the individual players performed in general in the two considered seasons and how their performance fluctuated.
We included a RShiny App to showcase each players correlation between BPM performance and each tweet sentiment. Starting up the app may take some time.
As one can see, the points of the different scatterplots appeared rather scattered. For the different sentiment lexica and players there was neither a strong nor directly visible (linear) relationship between the average tweet sentiment and the BPM performance indicator. Even though some of the linear regression lines suggested a correlation, the correlations themselves were rather weak or even neglectable as indicated by the respective Pearson correlation coefficients r that were relatively small (mostly less than 0.1). Additionally most of the p-values of the associated Pearson correlation coefficients were rather high which suggested that the observed strength of the correlations were not significantly different from 0 (and might have appeared due to random chance).
Nevertheless, there were also some counter examples where the Pearson correlation coefficient appeared rather significant. The player Jaylen Brown for example showed a positive correlation for the Afinn lexicon with a p-value below 0.05. However, since the correlations were rather weak, not significant and somehow contradicting for other sentiment lexica (compare that the correlation was negative for the nrc lexicon), it is debatable if the positive correlation is generalizable for the entire population or even the single player alone.
Due to these reasons we had to conclude that there is no evidence of a significantly strong linear correlation between the average sentiment of tweets, players receive within 24 hours before games and their performance within the games.
There was however another interesting observation the scatterplots revealed, namely the prominent outliers. For almost every player there was at least one game day in which the average tweet sentiment was vastly more positive compared to other days. Additionally there were some players with game days associated with an extremely negative average tweet sentiment in comparison to other days. To investigate these outliers more closely we created two word clouds for each player, one for the smallest average tweet sentiment the player received and one for the highest. We used the tweet sentiments created from the Jockers-Rinker lexicon for this purpose. On extremely positive sentiment values (outliers) the player had birthday. This RShiny App showcases the wordclouds for each player.
The most prominent observation derived from the wordclouds was that the best average sentiments were frequently associated with the words “happy” and “birthday”, which indicated that these players were receiving birthday wishes on that same game day. Besides birthdays it appeared that other players received positive tweet sentiments due to another important day or event in their life. For Stephen Curry the terms “baby”, “congrats”, “boy”, “family”, “hands”, “blue” and “eyes” occurred rather frequently. People were congratulating him for another baby that was on the way.


Price My Rental
Apartment Price Recommendation Engine
Get Started
Price My Rental recommends accurate prices for San Francisco rental listings
Fill out the form to get a recommendation:
# Bedrooms:
Studio
1
2
3
4
5
6+
# Bathrooms:
1
2
3
4
5
6+
Address (SF only):
Zip:
Neighborhood:
sunset / parkside
inner richmond
financial district
portola district
inner sunset / UCSF
noe valley
tenderloin
haight ashbury
SOMA / south beach
alamo square / nopa
hayes valley
north beach / telegraph hill
lower nob hill
russian hill
mission district
cole valley / ashbury hts
richmond / seacliff
laurel hts / presidio
twin peaks / diamond hts
nob hill
lower haight
USF / panhandle
glen park
marina / cow hollow
lower pac hts
castro / upper market
downtown / civic / van ness
western addition
excelsior / outer mission
bernal heights
west portal / forest hill
potrero hill
pacific heights
ingleside / SFSU / CCSF
visitacion valley
bayview
Parking:
No reliable parking
Reliable street parking
Off-street Parking (e.g, shared garage)
Carport
Attached private garage
Current/Intended listed price (for comparison):
Description:
Submit


Various photos from Winter Storm Jonas of 2016.
Various photos from the Bernie Sanders Rally at Washington Square
Various photos from hikes.
Various photos from my travels and adventures through NYC.


 Please try reloading this page.
Recent search terms
Refine Search


{% include head.html %}
{% include header.html %} {% include about.html %} {% include achievements.html %} {% include companies_grid.html %} {% include timeline.html %} {% include instructors.html %} {% include footer.html %} {% include modals.html %} {% include js.html %} {% include ga.html %}


Derek Eder
@derekeder
@JMOChicago @rosalindrossi @FAiRChicago does the creator wanna come talk at #chihacknight? Wed love to hear from you http://opengovhacknight.org/
2/9/2015, 10:20:21 AM
Favs: 1
Retweets: 2
link← @derekeder Twitter archive
Derek Eder
@derekeder
@JMOChicago @rosalindrossi @FAiRChicago does the creator wanna come talk at #chihacknight? Wed love to hear from you http://opengovhacknight.org/
2/9/2015, 10:20:21 AM
Favs: 1
Retweets: 2
linkDerek Eder
@derekeder
@JMOChicago @rosalindrossi @FAiRChicago correction: you're not using Open311. Spoofing the form post to the City's Service Request pg. Nice!
2/9/2015, 10:25:34 AM
Favs: 0
Retweets: 1
link


| HOME | LOCATIONS | PRODUCTS | CONTACT US | these links totally don't work |
To provide the entire universe with literally the greatest fish-based confections ever conceived of by any human being. They are actually better than any cookies you've ever tasted I will fight you.
LOCATIONS |
CONTACT INFO |
|
|
CHECK OUT THESE SWEET PICTURES, MY DUDE


#include <array_ops.h>
Return a slice from 'input'.
The output tensor is a tensor with dimensions described by 'size' whose values are extracted from 'input' starting at the offsets in 'begin'.
Requirements: 0 <= begin[i] <= begin[i] + size[i] <= Di for i in [0, n)
Arguments:
Returns:
Output
: The output tensor.
Constructors and Destructors |
|
|---|---|
Slice(const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input begin, ::tensorflow::Input size)
|
Public attributes |
|
|---|---|
operation
|
|
output
|
Public functions |
|
|---|---|
node() const
|
::tensorflow::Node *
|
operator::tensorflow::Input() const
|
|
operator::tensorflow::Output() const
|
|
Operation operation
::tensorflow::Output output
Slice( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input begin, ::tensorflow::Input size )
::tensorflow::Node * node() const
operator::tensorflow::Input() const
operator::tensorflow::Output() const


[ aws . cloudformation ]
Returns the description for the specified stack; if no stack name was specified, then it returns the description for all the stacks created.
Note
If the stack does not exist, an AmazonCloudFormationException is returned.
See also: AWS API Documentation
describe-stacks is a paginated operation. Multiple API calls may be issued in order to retrieve the entire data set of results. You can disable pagination by providing the --no-paginate argument. When using --output text and the --query argument on a paginated response, the --query argument must extract data from the results of the following query expressions: Stacks
describe-stacks
[--stack-name <value>]
[--cli-input-json <value>]
[--starting-token <value>]
[--max-items <value>]
[--generate-cli-skeleton <value>]
The name or the unique stack ID that is associated with the stack, which are not always interchangeable:
- Running stacks: You can specify either the stack's name or its unique stack ID.
- Deleted stacks: You must specify the unique stack ID.
Default: There is no default value.
--cli-input-json (string) Performs service operation based on the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton. If other arguments are provided on the command line, the CLI values will override the JSON-provided values.
A token to specify where to start paginating. This is the next-token from a previously truncated response.
The total number of items to return. If the total number of items available is more than the value specified in max-items then a next-token will be provided in the output that you can use to resume pagination. This next-token response element should not be used directly outside of the AWS CLI.
--generate-cli-skeleton (string) Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input, prints a sample input JSON that can be used as an argument for --cli-input-json. If provided with the value output, it validates the command inputs and returns a sample output JSON for that command.
To describe AWS CloudFormation stacks
The following describe-stacks command shows summary information for the myteststack stack:
aws cloudformation describe-stacks --stack-name myteststack
Output:
{
"Stacks": [
{
"StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896",
"Description": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.",
"Tags": [],
"Outputs": [
{
"Description": "Name of S3 bucket to hold website content",
"OutputKey": "BucketName",
"OutputValue": "myteststack-s3bucket-jssofi1zie2w"
}
],
"StackStatusReason": null,
"CreationTime": "2013-08-23T01:02:15.422Z",
"Capabilities": [],
"StackName": "myteststack",
"StackStatus": "CREATE_COMPLETE",
"DisableRollback": false
}
]
For more information, see Stacks in the AWS CloudFormation User Guide.
Stacks -> (list)
A list of stack structures.
(structure)
The Stack data type.
StackId -> (string)
Unique identifier of the stack.StackName -> (string)
The name associated with the stack.ChangeSetId -> (string)
The unique ID of the change set.Description -> (string)
A user-defined description associated with the stack.Parameters -> (list)
A list of Parameter structures.
(structure)
The Parameter data type.
ParameterKey -> (string)
The key associated with the parameter. If you don't specify a key and value for a particular parameter, AWS CloudFormation uses the default value that is specified in your template.ParameterValue -> (string)
The value associated with the parameter.UsePreviousValue -> (boolean)
During a stack update, use the existing parameter value that the stack is using for a given parameter key. If you specify true , do not specify a parameter value.CreationTime -> (timestamp)
The time at which the stack was created.LastUpdatedTime -> (timestamp)
The time the stack was last updated. This field will only be returned if the stack has been updated at least once.StackStatus -> (string)
Current status of the stack.StackStatusReason -> (string)
Success/failure message associated with the stack status.DisableRollback -> (boolean)
Boolean to enable or disable rollback on stack creation failures:
- true : disable rollback
- false : enable rollback
NotificationARNs -> (list)
SNS topic ARNs to which stack related events are published.
(string)
TimeoutInMinutes -> (integer)
The amount of time within which stack creation should complete.Capabilities -> (list)
The capabilities allowed in the stack.
(string)
Outputs -> (list)
A list of output structures.
(structure)
The Output data type.
OutputKey -> (string)
The key associated with the output.OutputValue -> (string)
The value associated with the output.Description -> (string)
User defined description associated with the output.RoleARN -> (string)
The Amazon Resource Name (ARN) of an AWS Identity and Access Management (IAM) role that is associated with the stack. During a stack operation, AWS CloudFormation uses this role's credentials to make calls on your behalf.Tags -> (list)
A list of Tag s that specify information about the stack.
(structure)
The Tag type enables you to specify a key-value pair that can be used to store information about an AWS CloudFormation stack.
Key -> (string)
Required . A string used to identify this tag. You can specify a maximum of 128 characters for a tag key. Tags owned by Amazon Web Services (AWS) have the reserved prefix: aws: .Value -> (string)
Required . A string containing the value for this tag. You can specify a maximum of 256 characters for a tag value.
NextToken -> (string)
If the output exceeds 1 MB in size, a string that identifies the next page of stacks. If no additional page exists, this value is null.


Section 5 Data preprocessing steps
5.1 Clipping vectors
In some cases, it is necessary than a layer covers only an area of interest. For this purpose, we can use a layer setting the extent we want to keep for a section of a layer. To accomplish this task, we use Clip from the Geoprocessing Tool.
To illustrate the operation of clipping vectors, we will use terre_shp
and LIMADMIN.shp
files.
- Load both layers into QGIS.
LIMADMIN.shp
corresponds to the administrative limits of Montreal’s boroughs (last update in 2013); however, the polygons extent beyond the terrestrial limits; whereas theterre_shp
file corresponds to the terrestrial limits of Montreal Island.
- Navigate to Layer, then to Geoprocessing Tool, and select Clip. The following window will pop up.
LIMADMIN.shp
layer corresponds to the Input layer, since it is the layer we want to cut, whereas thequartier_limite.shp
is the Overlay layer, the layer we will use to set the limits we want to keep.
- Click on Run to generate a new layer. Save the clipped layer as
limadmin_clipped.shp
.
5.2 Intersecting vectors
The Intersection algorithm extracts the properties from the input layer that overlap features in the overlay layer.
To illustrate this recipe, consider the terre.shp
and LIMADMIN.shp
files. In this case, we will create a layer resulting from the intersection between terre.shp
and LIMADMIN.shp
. Therefore, the terre.shp
layer corresponds to the Input Layer, whereas LIMADMIN.shp
to the Overlay Layer. We can add an overlay index to identify the features that were intersected from the overlay layer in Intersection layer generated
5.3 Check validity and fix geometries
In some cases, when clipping and intersecting vectors, errors may arise because of invalid geometries. Fortunately, QGIS allows us to check the validity of layers, and even more importantly to fix them. The following algorithms can be accessed through the Processing Toolbox:
- Check validity: The algorithm performs a validity check on the geometries of a vector layer. The geometries are classified in three groups (valid, invalid and error).
- Fix geometries: The algorithm attempts to create a valid representation of an invalid geometry without losing any of the input vertices.


By: billyzhang2010 原文发布于：2009-06-07 18:52:10
Shanghai PVG –> Chicago ORD –> Canton CAK.
Holiday Inn is a wonderful hotel. Every comfortable and friednly.
I make a new friend Ray during the flight to Canton. He is a senior consult for Lean-Sixsigma. A very intertesting talk with him.
Shawn Shao is very nice, he carry me to Holiday Inn yesterday night.
Today is new start. I hope the one month training will be fruitful.


HTML Lists
Explain the fundamental concepts of HTML
Have fun
creating documents
creating memories
Mark it up!
Outline
Introduction
Text elements
Lists
Unordered lists
Ordered lists
Definition lists
Links


If this checkbox is selected, IntelliJ IDEA shows as many tabs as there fit into the current IntelliJ IDEA frame;
the rest are hidden under the Window | Editor Tabs | Show Hidden Tabs
for IntelliJ IDEA to display the hidden tabs.
drop-down. Clear the checkbox if you don't want
to hide any tabs. Alternatively, from the main menu, select
The Hide if there is no space checkbox becomes available when Show tabs in single row is selected.


Duchess of Sussex Meghan Markle Is Still Awaiting Her British Citizenship Despite Applying For It Two Years Ago
by SpotboyEMeghan Markle who is married to Prince Harry originally hails from the United States. Now that she is a part of the British Royal Family, she has applied for the British citizenship
Suits actor Meghan Markle married Prince Harry in 2018, however, she still hasn't acquired her British Citizenship yet. As per reports, Meghan who is a US citizen is still awaiting her citizenship despite applying for it two years ago. Though a royal, she isn't getting any concession and all the processes for being a British citizen are being followed. A friend close to the actor-turned-royal has made this revelation.
To Dailymail, the friend, quoted, "Meghan is not yet a British citizen. It might seem extraordinary, given that she's been married to the Queen's grandson for 18 months, but she accepts that it's a slow process." Reportedly, she applied for UK citizenship two years ago, but as revealed by Prince’s communication secretary, Jason Knauf, the process can take years. He was earlier quoted saying, "I can also say she intends to become a UK citizen and will go through the process of that, which some of you may know takes a number of years."
While Meghan isn't a UK citizen as of yet, her and Prince Harry's son Archie is one as he was born in the country. Being a citizen gives you the power to vote in elections, which the royal family is entitled to, but Meghan can not exercise this power as she is not a British Citizen.
Meghan Markle moved to the UK in 2017 post her engagement with Prince Harry. They tied the knot next year in 2018 and since then, Meghan has been living in the UK on a family visa as reported.
Image Source: Instagram


I'm currently an incoming 1A CS student at the University of Waterloo.
I love all things related to technology but am most interested in Machine Learning,
AI and AI in games. The idea of a bunch of 1's and 0's playing games is fascinating to me.
I am currently exploring Reinforcement Learning and Unity Game Development. I also enjoy
competitive programming and often solve problems on Leetcode and Codeforces.
When I'm not coding, I like to work out, practice Karate(I'm a black belt), play video games and watch Netflix.
I currently play
a lot of Valorant and Overwatch with my friends. Working out is something I picked when I realized
I was letting go of myself and decided to make a change. Since then I have fallen in love with the gym
and all the perks that come with it. My favourite Netflix show is Brooklyn Nine-Nine.
Toronto, ON, Canada
+1<PHONE_NUMBER>
g4nair@uwaterloo.ca


|
SX126x-Arduino
2.0.1
|
#include <LoRaMac.h>
Data Fields | |
| Mcps_t | McpsIndication |
| LoRaMacEventInfoStatus_t | Status |
| uint8_t | Multicast |
| uint8_t | Port |
| uint8_t | RxDatarate |
| uint8_t | FramePending |
| uint8_t * | Buffer |
| uint8_t | BufferSize |
| bool | RxData |
| int16_t | Rssi |
| uint8_t | Snr |
| uint8_t | RxSlot |
| bool | AckReceived |
| uint32_t | DownLinkCounter |
LoRaMAC MCPS-Indication primitive
| Mcps_t sMcpsIndication::McpsIndication |
MCPS-Indication type
| LoRaMacEventInfoStatus_t sMcpsIndication::Status |
Status of the operation
| uint8_t sMcpsIndication::Multicast |
Multicast
| uint8_t sMcpsIndication::Port |
Application port
| uint8_t sMcpsIndication::RxDatarate |
Downlink datarate
| uint8_t sMcpsIndication::FramePending |
Frame pending status
| uint8_t* sMcpsIndication::Buffer |
Pointer to the received data stream
| uint8_t sMcpsIndication::BufferSize |
Size of the received data stream
| bool sMcpsIndication::RxData |
Indicates, if data is available
| int16_t sMcpsIndication::Rssi |
Rssi of the received packet
| uint8_t sMcpsIndication::Snr |
Snr of the received packet
| uint8_t sMcpsIndication::RxSlot |
Receive window
[0: Rx window 1, 1: Rx window 2]
| bool sMcpsIndication::AckReceived |
Set if an acknowledgement was received
| uint32_t sMcpsIndication::DownLinkCounter |
The downlink counter value for the received frame


Latitude
Plots
Max Temperature
Humidity
Cloudiness
Wind Speed
Comparison
Data
Comparison: Latitude vs X
Click any plot to get an in-depth analysis.
vs. Max Temperature
vs. Humidity
vs. Cloudiness
vs. Wind Speed


Sales dashboard
Sales and states
| Sales records | ||
|---|---|---|
| Article | Price | Quantity |
| Data | Data | Data |
| Data | Data | Data |
| Data | Data | Data |
| Data | Data | Data |
| Data | Data | Data |
| Stock | Cash |
| Conversion | Warehouse |
Tendency indicators
40
Average purchasse
30%
Aborted
25480
Monthly sales
80%
Satisfaction


Tunisian Spoken Arabic (SIL) Keyboard Help
Arabic script keyboard for the the Tunisian Spoken Arabic language [aeb].
Default (unshifted)
Shift
Right ALT


Every alive player may speak with each other in this phase.
Normally, players would try and pinpoint mafia members using the evidence they have gathered.
However, be careful who you trust, a mafia member may be trying to deceive you.
No one is allowed to speak during this phase.
Each player can only vote once for the player they think is a mafia member. Don’t waste your vote, you can't change it.
Additionally, all votes are publicly announced in the game chat. Everyone knows who you voted for.
Only mafia members may speak during this phase.
Each player may cast his role's special ability. You may change your target freely until the time expires.
At the end of the night phase, you will be notified if your special ability had any effect and if anyone was murdered.


[gecode-users] modelling question
Denys Duchier
denys.duchier at univ-orleans.fr
Fri Nov 28 12:05:55 CET 2008
Patrik Haslum <patrik.haslum at anu.edu.au> writes:
> I have a finite set variable X, with domain {0..N-1} (though I could
> replace it by an array of booleans if that turns out to be more
> convenient). Every element i in the domain of X has a certain weight,
> w(i) (which is in the range 0..K; K is typically small). I want to post
> the constraint
>
> Y = min_{i in X} w(i) if X is non-empty
> 0 if X is empty.
For example, you could do it this way:
X' = X U {N}
S = U<{w(0)},{w(1)},...,{w(N-1)},{K+1}>[X'] (elementsUnion)
Y' = min(S)
Y = <0,Y'>[Y'<(K+1)] (element)
Cheers,
--Denys
More information about the gecode-users
mailing list


WebSearch
v{VERSION}
by Bálint Böde
License for Guava
License for HtmlCleaner
License for HTML Parser
License for OrmLite
License for MultiChoiceAdapter


the Montel house to an actor and his wife. The actors had
a
plane and there was a small landing field beside the lake.

They had turned the
ballroom into a theater. When not in use, folding chairs
were lined in rows against the walls. At one end was a tiny
and exquisitely
conceived stage and a modest equipment of
back drops and wings hung from the
ceiling. A tier of three
red velvet steps led from the small auditorium to the
stage.
It was beautiful there in the summer evenings when the long
French
windows were flung open to the live and fragrant
air and the only illumination
upon the audience was the blue
moonlight flooding room. On the small lighted stage
the colorful performances and voices of the actors mingled
with the secret
nocturnal dramas of the night outside.
Although they spent only their summers here
they
leased the house the year round. But now alı the furniture
was draped
in white sheets and only the huge fireplace in
the oak paneled wall of the living
room was bared to sight.
The great house, its windows shuttered tight, was silent
and desolate all winter long.
Philip did not miss his former spacious
dwelling, its
comfortable, dramatic rooms. He had almost forgotten its
existence though he passed it often on his return, from a
tramp in the
woods, to the small building huddled in a
clump of willows behind the big one.
And now Grandmother 's house, just three rooms of it,
seemed to him the only home he had ever known. Its cold
rooms were dingy,
its uneven floors--painted an ugly tan--
were scuffed and chipped, and Philip on a
decrepit couch in the living room. None of these things annoyed
the once
fastidious Philip. He desired nothing more.
Sometimes he would get his mandolin
out of its frayed
canvas case and play it. He would play "coon" songs from
minstrel shows, ragtime of his youth, and some of the senti-
mental melodies
of the early A set of rattle bones
lay in one corner of the mandolin case and once
in a while
he would take them out and at them. He did not try to
play them
any more. They were only for accompaniment he
told his grandnephews. But by
himself hed rattle the
bones softly and whisper under his breath:
And he would repeat, for his private amusement, house-
bringing-down lines
from old shows--a few lines from Mr.
Bones, the song and dance endman, lines
these:
‘I feel just like a stove pipe, Mr. Tambo.’
‘How is that, Mr. Bones ’
‘A little sooty. ’
The piano he still had and sometimes he would play that too,
but not often. It had been his custom to sing when he played
the
piano and he could not sing any more because of his short
ness of breath.
A
small television set had been given him for Christmas
but he couldn't work up any
interest in it. The news confused
him beyond hope. And the dances and songs
offended him, too.
When his grandnephews turned on the music and a popular singer
commenced to croon, he would say: "I do not like that pathetic
singing," or
he would call it that cry-baby singing." And
his nephews would exchange amused
glances over the ways of the
old man."
He had suffered of recent years from
patness heart at-
tacks, rapid palpitations which would cause him to sit quietly
in his chair by the f1eplace sometimes for hours without
stirring.
Occasionally he would guiltily smoke a cigarette
though this had been denied him.
He still saw the doctor now
and then but he had at last ceased to think about
medical
attention at all.
Infrequently, his mind would dwell fondly upon the
stable
of horses no had kept from his boຽhood until his bankruptcy;
when, at
some unguarded moment, he would fancy he saw the
black-edged floating tail and the
inky mane of Black Knight
streak down the field--he would hear in his memory the
un-
regenerate neigh of that beloved beast. But he scarcely ever
rode any
more either, though Lucie had placed a riding horse


The vast amounts of medical data have always presented a challenge for computers. Computers need to make deep connections between history, symptoms, and drug properties to make accurate medical diagnoses. Eva is capable of handling these tasks with far better accuracy than machine or human competitors. Eva is the personal doctor at your side.
With all of human knowledge available to her, Eva is the best teacher available. She can teach in any subject you want, at any pace you desire, for as long as needed. She has sophisticated software to fabricate vast amounts of appropriate learning materials, such as photos, quizzes, and lectures. So if you want to learn without the hassle (and cost) of a personal tutor or public school, why not try Eva?
Eva can replace humans in hospitality services. Fast food chains and coffee stops require no employees with Eva. She can simultaneously manage brewing or cooking and taking orders from customers, all while sounding friendly and hospitable. She can also operate airport or hotel check-in machines, assisting customers as needed. With adaptive learning technology, the possibilities with Eva are endless.
There are many dangerous places for humans on this planet, but for scientific research, it is necessary to explore them. With advanced visual processing, Eva can guide Arc units better than human operators. Whether it’s deep space, deep caves, radioactive environments, toxic environments, geologically active environments, or underwater, Arc can safely navigate and explore them all.
Delivery has always been a human task. Recently, companies like Amazon even tried to use drones for delivery. However, these have the downside of requiring a human operator, which gets expensive. Eva, however, is a multifaceted AI, able to control thousands of drones at the same time, efficiently delivering everything at the same time. If you would like to use drones for delivery, Eva is a must-have.
Every Arc unit is fully independent and requires minimal maintenance to operate. This combination means that Arc is the perfect solution for the care of elders. Arc can do household chores, cook food, and even respond in emergencies as needed. A full personality simulation gives each unit an in-depth and nearly human personality. With Arc, elders are always protected and never lonely.


Python Module Index
| i | ||
initializeStockDatabase | Here we initalize the data base, import data from Yahoo Finance, then process the data into the correct tables. | |
| m | ||
main | Runs stonks backend with options for partial runs | |
| o | ||
optimizePolyReg | Preforms optimization scenarios for Polynomial Regression and reports on best configuration options | |
optimizeRanFor | Preforms optimization scenarios for Random Forest and reports on best configuration options | |
| p | ||
polyReg | Runs and preforms Polynomial regression on all stocks found in the DB based on values found in the configuration file. | |
prepDataSets | This module prepares the data for processing by either *Optimization* or the main machine learning module. | |
| r | ||
ranForest | Runs and preforms Random Forest on all stocks found in the DB based on values found in the configuration file. | |
| s | ||
sqlQueries | List of functions used to query the SQL database | |
stonktastic | ||
stonktastic.config | ||
stonktastic.config.config | ||
stonktastic.config.paths | ||
stonktastic.databaseCode | ||
stonktastic.databaseCode.initalizeStockDatabase | ||
stonktastic.databaseCode.sqlQueries | ||
stonktastic.machinelearning | ||
stonktastic.machinelearning.historicalPred | ||
stonktastic.machinelearning.memory | ||
stonktastic.machinelearning.overallEval | ||
stonktastic.machinelearning.polyReg | ||
stonktastic.machinelearning.prepDataSets | ||
stonktastic.machinelearning.ranForest | ||
stonktastic.optimization | ||
stonktastic.optimization.optimizePolyReg | ||
stonktastic.optimization.optimizeRanFor |


--- layout: default title: "Now Live: Choose Your Own Hosting Account Password" author: name: Jon Cram url: http://webignition.net ---
About 3 months ago we raced into the 21st century by letting you choose your own account password.
Following on from this, you can now choose the password for each of your web hosting accounts. Previously you could only reset a hosting account password without any choice of password.
Either choose your own password:
Or have a strong password automatically chosen for you:


---
---
{{ site.title }}
{{ content }}
{% include table.html yml="details" %}
{% include single.html title="Summary" yml="summary"%}
{% include array.html title="Education" yml="education" %}
{% include array.html title="Experience" yml="experience" %}
{% include array.html title="Extracurricular
Activities" yml="extracurricular" %}
{% include array.html title="Seminars" yml="seminars" %}
{% include list.html title="Personal Projects" yml="projects"%}
{% include array.html title="Skills" yml="skills" %}
{% include single.html title="Languages" yml="languages"%}
{% include list.html title="Hobbies" yml="hobbies"%}


After a week of hard work involving several departments, an important AlethiCorp investigation has reached a shocking conclusion. The investigation involved subversive elements connected to the social milieu around Cambridge and has revealed that Cédric Kinsinger, the famous journalist, was connected to both terrorist student groups, as well as IAM, the notorious subversive hacker collective.
"The investigation turned out to be about something far bigger than we first suspected," says Sandra Silvern, head of the personal information team at the UK branch. "The whole thing started when it was brought to our attention that a local young author had recently published a highly subversive work. This is not illegal in itself, of course, but raised suspicions that he might be connected to more militant groups."
"In collaboration with Information Acquisition, our consultants soon uncovered a subversive conspiracy. The author turned out to be connected to subversive student groups, who were not only attempting to subvert their fellow students, but also planning outright acts of terror."
"Our agents should be commended for their bravery," says Vitaly Vedenin, head of Information Acquisition. "At great risk to their personal safety, department assets managed to infiltrate these subversive student groups and gather information on their terrorist plans."
"But that was only the beginning," continues Sandra Silvern.
"I would also like to give a shout-out to the excellent consultants in the personal information team", says Sandra Silvern. "Without experienced employees such as Sháo Jingfei and Salvinu Manduca, Mr. Kinsinger might have escaped justice indefinitely."
"This is a day of triumph", says CEO Alex DuMaurier, speaking to a group of approved media representatives. "And it also confirms the importance of the work we are doing here at AlethiCorp. Were it not for our information management efforts, subversives such as Mr. Kinsinger would be free to pursue their activities, to the detriment of decent citizens."
"Ever since the Iberostar report, there have been suspicions that Mr. Kinsinger might have subversive sympathies, but were it not for our efforts, he might never have been exposed for what he really is. Our citizens can now rest assured that the integrity of the fourth estate has been restored."
"However, we must remember that Mr. Kinsinger and his accomplices are misguided souls, who should be pitied, not hated. We are working with the Larkhill Resettlement Council to resettle Mr. Kinsinger to a high-security location, where he can live his life, without being a danger to ordinary citizens. Let us hope that he will one day find a measure of peace."


Mutual TLS
Enabling mTLS
Now it’s time to enable mTLS by applying next Istio resources:
1 - Enables mTLS into workshop
namespace
kubectl apply -f manifests/istio/mutual-tls/authentication-enable-tls-permissive.yml
This policy specifies that all workloads in the namespace workshop
will only accept encrypted requests using TLS. The name of the policy must be default.
kind: "Policy"
metadata:
name: "default"
namespace: "workshop"
spec:
peers:
- mtls:
mode: PERMISSIVE
2 - At this point, only the receiving side is configured to use mutual TLS. To configure the client side, you need to set destination rules to use mutual TLS. It’s possible to use multiple destination rules, one for each applicable service (or namespace). However, it’s more convenient to use a rule with the * wildcard to match all services in the namesapce.
kubectl apply -f manifests/istio/mutual-tls/destination-rule-tls.yml
kind: "DestinationRule"
metadata:
name: "default"
namespace: "workshop"
spec:
host: "*.workshop.svc.cluster.local"
trafficPolicy:
tls:
mode: ISTIO_MUTUAL
Then you can run:
curl http://${GATEWAY_IP}/
customer => preference => recommendation v1 from 'b87789c58-mfrhr': 2
And you’ll see exactly the same but now the communication between the services has been secured.
How can you check that?
Istio automatically installs necessary keys and certificates for mutual TLS authentication in all sidecar containers. Run command below to confirm key and certificate files exist under /etc/certs
:
kubectl exec $(kubectl get pod -l app=recommendation,version=v2 -o jsonpath={.items..metadata.name}) -c istio-proxy -- ls /etc/certs
cert-chain.pem
key.pem
root-cert.pem
You can alson sniff the traffic between services, which is a bit more tedious, open a new terminal tab and run next command:
CUSTOMER_POD=$(kubectl get pod | grep customer | awk '{ print $1}'| head -1 ) (1)
PREFERENCE_POD=$(kubectl get pod | grep preference | awk '{ print $1}' | head -1) (1)
kubectl exec -it $CUSTOMER_POD -c istio-proxy /bin/bash (2)
kubectl exec -it $PREFERENCE_POD -c istio-proxy /bin/bash
# Inside pod shell
ifconfig (3)
sudo tcpdump -vvvv -A -i eth0 '((dst port 8080) and (net <IP_ADDRESS>))' (4)
| 1 | Get customer pod name |
| 2 | Open a shell inside pod |
| 3 | Get IP of current pod (probably the IP represented at eth0 interface) |
| 4 | Capture traffic from eth0 (or your interface) of port 8080 and network <IP_ADDRESS> (your IP from ifconfig ) |
Now all communication that happens between customer
service and preference
service is dumped in the console.
So now go to a terminal and execute:
curl http://${GATEWAY_IP}/
customer => preference => recommendation v1 from 'b87789c58-mfrhr': 2
Obviously, the response is exactly the same, but if you go to the terminal where you are executing tcpdump
, you should see something like:
14:24:55.078222 IP (tos 0x0, ttl 64, id 32578, offset 0, flags [DF], proto TCP (6), length 967)
<IP_ADDRESS>.33260 > customer-7dcd544ff9-652ds.8080: Flags [P.], cksum 0x5bf5 (incorrect -> 0x595e), seq<PHONE_NUMBER>:2211081832, ack<PHONE_NUMBER>, win 391, options [nop,nop,TS val 5958433 ecr 5779275], length 915: HTTP
E....B<EMAIL_ADDRESS>......j...w.....[......
.Z.!.X/K.............w$.?....&T.`n.....UX.C&)Cj....y..{.&..I.. ..<.
<EMAIL_ADDRESS>.L..i,.
...=..=..y..[.k..g..0..5.f%..vz|..t.....%.`.|...B..%r0.^k.y.....y.@l$O.....?...J..qc&.........Z.^&..F.....w.">7.. ...[.......2.&........>......s.....5
.n$X.....l.#...... ..Q..u..jBI.Z.Eb$9.$.._...!.........~"Xx<....);........Z.
.y/E]......K<EMAIL_ADDRESS>.i.v...#.O<..^.F. ...?..:s...).....e......*..F.Kz..i.jk..xx...#....|.U.!.......X.....@......0.....*...l.v..G)T...9...M.....i.H ..= .a.hp..&8..L..`.s..d_o.~.T ./.......9.. ;F81.......S.{.....1rE..o...`..............c+U...}.{7..Y....Q4.#..(.c]Q...[..8..$u.b...=..6.....~..9..H....R
.9x*q....h0......O......q..Fb)..E..m..=.M.....W.Yk>.......;.2eys..E.....=q.;.k<EMAIL_ADDRESS>Notice that you cannot see any detail about the communication since it happened through TLS.
Now, let’s disable TLS:
kubectl delete -f manifests/istio/mutual-tls/authentication-enable-tls.yml
kubectl delete -f manifests/istio/mutual-tls/destination-rule-tls.yml
And execute again:
curl http://${GATEWAY_IP}/
customer => preference => recommendation v1 from 'b87789c58-mfrhr': 2
And again check tcpdump
output:
host: 0<IP_ADDRESS>:31380
user-agent: curl/7.54.0
accept: */*
x-forwarded-for: <IP_ADDRESS>
x-forwarded-proto: http
x-envoy-internal: true
x-request-id: e5c0b90f-341b-9edc-ac3e-7dd8b33f0e8b
x-envoy-decorator-operation: customer.workshop.svc.cluster.local:8080/
x-b3-traceid: ce289e960a639d11
x-b3-spanid: ce289e960a639d11
x-b3-sampled: 1
Now, you can see that since there is no TLS enabled, the information is not shadowed but in clear.
|
A last thing about mutual TLS
If mutual TLS is enabled, http and tcp health checks from the kubelet will not work since the kubelet does not have Istio-issued certificates. In our workshop, we used the port
So before enabling mTLS, you should be aware of this subtlety. On the other hand, Istio supports the As best practice, use a separate port for health check and enable mutual TLS only on the regular service port. |


International Institute of Multiscale Materials Modeling
Outreach
Contents
Home
About us
Research
Multiscale Methods
Outreach
Partners
The IIMMM is founded at Alfred University, in parternship with
- University X
- University Y
- ...
This is information regarding seminar, conferences, summer school etc.


LiceMD® Treatment Gel
Drug Facts
| Active ingredients |
Purpose |
| Piperonyl butoxide (4%) |
Lice treatment |
| Pyrethrum extract (equivalent to pyrethrins 0.33%) |
Lice treatment |
Uses
treats head, pubic (crab), and body lice
Warnings
For external use only
Do not use
- near eyes
- inside nose, mouth or vagina
- on lice in eyebrows or eyelashes. See a doctor if lice are present in these areas.
Ask a doctor before use if you are allergic to ragweed.
May cause breathing difficulty or an asthmatic attack.
When using this product
- keep eyes tightly closed and protect eyes with a washcloth or towel
- if product gets in eyes, flush with water right away
- scalp itching or redness may occur
Stop use and ask a doctor if
- breathing difficulty occurs
- eye irritation occurs
- skin or scalp irritation continues or infection occurs
Keep out of reach of children. If swallowed, get medical help or contact a Poison Control center right away.
Directions
-
Important: Read warnings before use. Read leaflet inside carton for complete directions before use. Adults and children 2 years and over:
Inspect
- check each household member with a magnifying glass in bright light for lice/nits (eggs)
- look for tiny nits near scalp, beginning at back of neck and behind ears
- examine small sections of hair at a time
- unlike dandruff which moves when touched, nits stick to the hair
- if either lice or nits are found, treat with this product
Treat
- apply this product thoroughly to dry hair or other affected area. For head lice, first apply behind ears and to back of neck.
- allow this product to remain on hair or other affected area for 10 minutes, but no longer
- wash area thoroughly with warm water and soap or shampoo
- for head lice, towel dry hair and comb out tangles
Remove lice and their eggs (nits)
- use a fine-tooth comb or the special lice/nit comb. Remove any remaining nits by hand (using a throw-away glove).
- hair should remain slightly damp while removing nits
- if hair dries during combing, dampen slightly with water
- for head lice, part hair into sections. Do one section at a time starting on top of head. Longer hair may take 1 to 2 hours.
- lift a 1 to 2 inch wide strand of hair. Place comb as close to scalp as possible and comb with a firm, even motion away from scalp.
- pin back each strand of hair after combing
- clean comb often. Wipe nits away with tissue and discard in a plastic bag. Seal bag and discard to prevent lice from coming back.
- after combing, thoroughly recheck for lice/nits.
Repeat combing if necessary.
- check daily for any lice/nits that you missed
- a second treatment with this product must be done in 7 to 10 days to kill any newly hatched lice
- if infestation continues, see a doctor for other treatments
Children under 2 years: ask a doctor
Other information
- store at 20-25°C (68-77°F). Avoid excessive heat.
- keep carton for important product information
- see leaflet inside carton for additional information
Inactive ingredients
butylated hydroxytoluene, carboxymethylcellulose sodium, dimethicone, fragrance, hydroxyethylcellulose, methylchloroisothiazolinone, methylisothiazolinone, petroleum distillates, water
Questions?
1-866-252-5327. You may also report side effects to this phone number.
LiceMD Shampoo (Non-medicated)
Important: Read leaflet inside carton for complete directions before use.
For external use only. Avoid contact with eyes. If contact occurs, rinse thoroughly with water. Keep out of reach of children.
Directions
- for use after treatment with LiceMD® Treatment Gel
- rinse hair with warm water and apply LiceMD Shampoo (Non-Medicated)
- thoroughly massage shampoo into the scalp and work into a lather
- be sure to shampoo behind ears and on back of neck too
- rinse thoroughly with warm water
- repeat if necessary to remove all traces of LiceMD® Treatment Gel
- towel dry hair and comb out tangles with a wide-tooth comb
- This shampoo does not kill lice or their eggs (nits). Use this shampoo only after using the LiceMD® Treatment Gel contained in this carton or another similar lice treatment product.
Ingredients
water, sodium laureth sulfate, sodium chloride, cocamidopropyl betaine, cocamide DEA, lauramide DEA, fragrance, diethanolamine, glycerin, polysorbate-20, citric acid, tetrasodium EDTA, methylchloroisothiazolinone, methylisothiazolinone, propylene glycol, dimethicone
Questions?
1-866-252-5327
store at 20-25°C (68-77°F).
LiceMD Shampoo Made in Canada
Throw-away Gloves Made in China
Dist. by: Reckitt Benckiser
Parsippany, NJ 07054-0224
PRINCIPAL DISPLAY PANEL - Kit Carton
SATISFACTION GUARANTEED
100%
GUARANTEE
OR YOUR MONEY BACK**
LiceMD®
COMPLETE KIT
NDC 63824-916-00
LiceMD®
COMPLETE KIT
with LiceMD® Treatment Gel [Pyrethrum Extract
(Equivalent to 0.33% Pyrethrins) with Piperonyl Butoxide 4%] Lice Treatment
KILLS LICE &
ELIMINATES
100% of THEIR EGGS*
TREAT - kill lice
COMB - eliminate 100% lice eggs
WASH - clean hair
KIT CONTAINS:
1 Lice Killing Gel 4 FL OZ (118mL)
1 Comb
1 Shampoo (Non medicated) 4 FL OZ (118mL)
2 Pairs of gloves
* The LiceMD® comb eliminated 100% lice eggs in laboratory testing


Node.JS frameworks Express and Socket.IO enable developers to quickly prototype apps requiring bi-directional communication between the client and server. See below for a chat app and leaderboards for this simple trivia.


This is some example text and a [card]Surreal Memoir[/card]. Other cards include [card]Gitaxian Probe[/card] and [card]Pristine Angel[/card].
Some other text with [card]Ajani Vengeant[/card].
[card]Planar Portal[/card], [card]Defense Grid[/card], and [card]Eternal Dragon[/card]
[card]Jace, the Mind Sculptor[/card]
The following example shouldn't work because the [card][/card] tag crosses the boundaries between nodes:
[card]Netter il-Dal[/card]