|
add_buffer_variable()
|
Identify trees in the buffer region |
|
autoplot(<comp_bayes_lm>)
|
Plot Bayesian model parameters |
|
blocks_ex
|
Example cross validation grid |
|
census_1_ex
|
Example input census data for package use |
|
census_2008_bw
|
Michigan Big Woods research plot data |
|
census_2014_bw
|
Michigan Big Woods research plot data |
|
census_2_ex
|
Example input census data for package use |
|
comp_bayes_lm()
|
Fit Bayesian competition model |
|
comp_bayes_lm_ex
|
Example bayesian competition model fit |
|
compute_buffer_region()
|
Compute buffer to a region. |
|
compute_growth()
|
Compute growth of trees |
|
create_bayes_lm_data()
|
Create input data frame for Bayesian regression |
|
create_focal_vs_comp()
|
Create focal versus competitor trees data frame |
|
focal_vs_comp_distance()
|
Return all pairwise distances between two data frames of trees |
|
focal_vs_comp_ex
|
Example focal versus comp data frame |
|
forestecology
|
forestecology package
|
|
growth_ex
|
Example growth data frame for small example |
|
growth_spatial_ex
|
Example growth data frame with spatial data for small example |
|
growth_toy
|
Example input data for create_focal_vs_comp() |
|
predict(<comp_bayes_lm>)
|
Make predictions based on fitted Bayesian model |
|
run_cv()
|
Run the bayesian model with spatial cross validation |
|
species_bw
|
Phylogenic groupings and trait based clustering of various tree species |
|
study_region_bw
|
Bigwoods forest study region boundary |
|
study_region_ex
|
Study region for example data |


I'm sorry, your browser does not support this video background, which is beautiful. Please upgrade your browsers to view the video background.
I'm sorry, your browser does not support this video background, which is beautiful. Please upgrade your browsers to view the video background.
Strands Beach
Life is always better at the beach.
Learn More
Content
The rest of your content goes here!
Content
The rest of your content goes here!
Content
The rest of your content goes here!


Mercury to pass directly between Earth, sun in rare transit in November 2019
by WABCGet ready for a rare astronomical alignment coming on Nov. 11 as Mercury passes directly between Earth and the sun, an event known as a transit.
The Nov. 11 Mercury transit will be visible across the Americas, Europe, Africa and western Asia, according to AccuWeather. You can view the transit with a telescope that has proper solar filters, but be warned that looking at the sun without proper solar filters could cause permanent eye damage.
Transits are very rare and occur about 13 times every century. The next Mercury transit won't happen until Nov. 13, 2032.


pg_lo_read_all
(PHP 4 >= 4.2.0, PHP 5, PHP 7)
pg_lo_read_all — 读入整个大型对象并直接发送给浏览器
说明
int pg_lo_read_all ( resource $large_object )
pg_lo_read_all() 读入一个大型对象并在（PHP）发送完所有待发的 header 之后将其直
接发送给浏览器。主要目的是发送图片或声音等二进制数据。返回值为读入的字节数，如
果出错则返回 FALSE。
要使用大型对象（lo）接口，需要将其放置在事务块中。
Note:
本函数以前的名字为 pg_loreadall()。
参见 pg_lo_read()。
User Contributed Notes 2 notes
===============================================================================
// remember, large objects must be obtained from within a transaction
pg_query ($dbconn, "begin");
// "assume" for this example that the large object resource number of the
zipped file is "17899"
$lo_oid = 17899;
$handle_lo = pg_lo_open($dbconn,$lo_oid,"r") or die("
Error.. can't get
handle
");
//headers to send to the browser before beginning the binary download
header('Accept-Ranges: bytes');
header('Content-Length: 32029974'); //this is the size of the zipped file
header('Keep-Alive: timeout=15, max=100');
header('Content-type: Application/x-zip');
header('Content-Disposition: attachment; filename="superjob.zip"');
pg_lo_read_all($handle_lo) or
die("Error, can't read large object.
");
// committing the data transaction
pg_query ($dbconn, "commit");
===============================================================================
Pay attention that if you omit the "length" parameter it will read a 8192 bytes
object regardless to its real dimensions. If you want to use this function
think to save the object size somewhere (usually a field in its table) before
reading the object. Alternatively use the pg_lo_readall function.


Create Payment Method
Recent Disputes
Last Sender
Message
Sent Time
Today
Last 7 Days
Last 14 Days
Last 30 days
This Year
50.00
100.00
230.00
2,300
10,000
Worker
Work Title
Amount
Date


ProgressBar sample - basic
This sample shows how to declare and customize a progress bar.
| % of progression |
|
| Indeterminate |
|
| Messages |
|
| Font scale |
|
| Predefined styles | |
|---|---|
| "success" |
|
| "info" |
|
| "warning" |
|
| "danger" |
|
| Display extra message (*) | |
|---|---|
| % of progression |
|
| Custom message |
|


Coin Flip
Game Address: r3Ah32y55S2LBrbs5sbp5s8RYC1u69U5Rd
Minimum: 1.000 XRP
Maximum: 500.000 XRP
- Retrieve all "relevent" txs
- Sort txs
- Unmatch multi-plays
- check first 32-bits hi-lo and declare winner (ties push -- coins returned)
- save (to leveldb) / display results
- process payments


×
ThoughtPath
Home
Therapist Login
Your first steps toward finding the right help
Twenty percent of patients leave therapy too early.
Let us help you receive the right care at the right time.
Find therapists for me
Show therapists
Show clients
Show Therapist
Show Clients
My Therapists
My Clients


THE SIEGE (1998)
Rating: 2.5 stars (out of 4.0) ******************************** Key to rating system: 2.0 stars - Debatable 2.5 stars - Some people may like it 3.0 stars - I liked it 3.5 stars - I am biased in favor of the movie 4.0 stars - I felt the movie's impact personally or it stood out ********************************* A Movie Review by David Sunga
Directed by: Edward Zwick
Written by: Edward Zwick, Lawrence Wright, and Menno Meyjes
Starring: Denzel Washington, Tony Shalhoub , Annette Bening, Bruce Willis
Ingredients: FBI lawman, terrorism, US Constitution issues
Synopsis: An honest and upright FBI lawman named Hub (Denzel Washington) is in charge of fighting Middle Eastern terrorists bombing New York. But Hub loses his authority when the President allows a power hungry US Army general (Bruce Willis) to declare martial law over the city in response to escalated bombings. The general abuses his powers. With the help of his partner Frank (Tony Shalhoub) as well as a CIA agent named Sharon (Annette Bening), Hub continues his investigations in a bid to solve the bombings and regain his rightful authority.
Opinion: After watching this movie, I found an orange paper on the front windshield of my car, on which was printed: "The stereotyping of Muslims as terrorists ... leads to prejudice, hate, and bigotry." Good point. THE SIEGE plays suspenseful, sinister music during Muslim prayer, and has bad guys perform a Muslim ritual prior to putting on white shrouds and running amok trying to bomb innocent city folk.
THE SIEGE tries to entertain us on a number of different levels, and succeeds in one. As a drama about the plight of innocent Americans being put in concentration camps, THE SEIGE doesn't develop much sympathy for the victims because none of the victims are main characters. For example, when a character shouts, "I must get my son out of the concentration camp," it comes as a relatively emotionless surprise because we don't even know his son. It would have been more dramatic if the movie had thoroughly introduced us to the son, so that the audience could bond and feel for the family's plight on a sympathetic level. Similarly, when Hub yells at the general about the inhumane treatment of Tariq, who is Tariq? A vicious terrorist? Or an innocent patsy fingered by the real villain? Tariq's identity hasn't been developed, nor do we know by the end of the film. He's just some unfortunate stranger. If you're going to do a film about injustice, then "victim" parts should be allowed to develop emotional "tug," rather than just provide surprise material for Hub's power struggle with the army.
On the intellectual level, THE SEIGE leaves a few things murky. Annette Bening gets a huge part as Sharon, the CIA's sole expert. But it's not clear whether Sharon is acting alone or on behalf of the CIA's present goal, which is not explained either. In one scene, CIA Sharon acts as an Army translator, so what's her actual mission? In the movie there is also a lot of wrangling back and forth about the fate of a mysterious shake (sheik). But the discussion peters out, and we never get to see the sheik.
On the good side, the acting is done well, and there are a few scenes with some chasing around and or featuring fancy spy hardware. As a drama about Hub's authority struggle with the army, THE SEIGE does okay.
Reviewed by David Sunga November 6, 1998
Copyright © 1998 by David Sunga This review and others like it can be found at THE CRITIC ZOO: http://www.criticzoo.com email<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


Hazard: I Always Said No To This Club
by SL InternationalWith Eden Hazard having completed a mega-money to Real Madrid at the beginning of the season, the Belgium star has now revealed that he regularly turned down another European giant before making the move.
Read: World's Richest Club Revealed, Real Dethroned
Hazard joined Los Blancos from Chelsea for a reported fee of €100 million (R1.6 billion) in July, but the Belgium international could have played for Paris Saint-Germain were it not for his conscience.
The 28-year-old recently told L'Equipe that Ligue 1 giants PSG had frequently contacted him during his time with the Blues, and explained that his loyalty to former club Lille always forced him to say no to a possible move.
Choose the right winger for SA's Real Madrid Dream Team & win a replica shirt!
"They (PSG) often tried to recruit me, but I didn't want to return to Ligue 1 unless it was to join Lille," Hazard said.
"I always said no to them. It was clear in my mind that if I were to return to France, it would be with Lille."
Read: Bale Insults Real, Nears Exit Door
Hazard started his professional career with Lille, scoring 50 goals in 194 appearances and winning the 2010/11 Ligue 1 title with the French club.


- What is MiniMyth?
- Where can I download MiniMyth?
- How much memory does MiniMyth require?
- How can I see the console output of mythfrontend?
- Why do I get "Kernel panic - not syncing: VFS: unable to mount root fs on unknown-block(1,0)"?
- Why can I play some DVDs but not other DVDs?
- Why is my favorite Myth plugin missing from MiniMyth?
- Why are my temperature and fan sensors missing or wrong?
- Why doesn't MM_DEBUG work?
- How can I build MiniMyth from source?
- How do I report a bug or request a feature?
The answer to this question can be found on the MiniMyth home page.
The answer to this question can be found on the MiniMyth download page.
The answer to this question can be found in the memory section of the MiniMyth hardware requirements page.
MiniMyth redirects mythfrontend's console output to syslog. It is logged with the facility 'local0', the level 'info' and the tag 'mythfrontend'. Therefore, you can find mythfrontend's console output in the file '/var/log/messages', assuming you have not configured a network log server.
There is at least one possible reason.
If the memory allocated by the kernel for the RAM root file system is less than the size of the RAM root file system, then the RAM root file system will be incomplete and fail to mount. The 'ramdisk_size' boot line parameter sets the memory allocated by the kernel for the RAM root file system. The value of the 'ramdisk_size' parameter must be at least the size of the RAM root file system. You can find more information here.
Earlier versions of MiniMyth used the 'ramdisk' boot line parameter rather than the 'ramdisk_size' boot line parameter. However, the kernel obsoleted 'ramdisk' in favor of 'ramdisk_size'. Therefore, MiniMyth had to switch from 'ramdisk' to 'ramdisk_size'. If you are using the 'ramdisk' parameter, then you need to switch to using the 'ramdisk_size' parameter or you will see the above error when trying boot.
Earlier versions of the MiniMyth root file system fit in 64000kB of memory. As a result, the earlier versions of MiniMyth documentation suggested that 'ramdisk_size' be set to 64000. However, with the addition of new functionality and the increase in the size of MythTV, the MiniMyth root file system no longer fits in 64000kB of memory. Therefore, users need to change 'ramdisk_size' from 64000 to something larger (e.g. 192000).
There are at least two possible reasons.
The first reason is that some DVDs are encrypted using CSS. In order to play these DVDs, you need libdvdcss.so.2. Because of legal issues surrounding other software that allows Linux users to play their legally purchased DVDs, libdvdcss.so.2 is not included in the binary MiniMyth distribution. Although libdvdcss.so.2 is very different from this other software, legal concerns still exist. Because libdvdcss.so.2 only depends on Linux and glibc, you should be able to use any libdvdcss.so.2 that has been compiled for i386, i486 or i586 (when using a 32-bit version of MiniMYh) or x86_64 (when using a 64-bit version of MiniMyth).
Once you have a copy of libdvdcss.so.2, you can add it to your MiniMyth system at boot by including it in the 'lib' directory of your extras file system (see the MM_EXTRAS_URL variable in the MiniMyth configuration file). If you compile MiniMyth yourself, then the extras file system image that the build system creates will contain libdvdcss.so.2.
The second reason is that some DVD drives require their region code to be set. You can set your DVD drive's region code using the 'regionset' utility that is included in MiniMyth. For information on how to use 'regionset', see the regionset readme.
There are two reasons that some Myth plugins are not included in MiniMyth: the plugin has not been requested, and the plugin depends on software that is not included.
The following plugins have not been included because they depend on software not included in MiniMyth:
- MythArchive has a long list of dependencies, including a Java Runtime Environment (JRE).
You may notice that you get no output from your temperature and fan sensors.
The reason for this is that the sensor chip's kernel module is not loading. Unfortunately there is no simple detection method for sensor chips. In order to "auto-detect" the sensor chip, MiniMyth goes through a two step process. First, MiniMyth attempts to detect the motherboard vendor and product. Second, MiniMyth maps the motherboard vendor and product to sensor chip's kernel module. It is likely that this is not working for your motherboard, because MiniMyth does not have the necessary information. If you let us know the motherboard vendor and product, the output of the command 'cat /sys/class/dmi/id/modalias' and (if you know it) the sensor chip kernel module, then we can add the necessary information to MiniMyth.
You may notice that either a sensor reports a temperature that is very wrong or a label next to a temperature or fan sensor is wrong.
The reason for very wrong temperature readings on VIA EPIA motherboards is either the specific temperature sensors are not used by the motherboard or there is something wrong with the vt1211 sensors driver. I do not know which it is. However, it is safe to assume that the motherboard is not at a temperature that is below freezing.
The reason for the wrong labels is that the motherboard vendor did not wire the sensors as suggested by the sensor chip vendor. As a result, while the values are correct, they are attributed to the wrong temperature or fan sensors on the motherboard. At some point, we may add motherboard specific sensors configuration files to address this problem.
People tend to have one of two problems when trying to enable debugging.
First, they set MM_DEBUG in the wrong place. As mentioned in the configuration obtained from the boot line section, MM_DEBUG="yes" must be set on the boot line. If it is set in the MiniMyth configuration file, then it will be ignored.
Second, they quote the MM_DEBUG variable value incorrectly. As mentioned in the configuration obtained from the boot line section, unlike MiniMyth variable values in the MiniMyth configuration file which should be single quoted ('), MiniMyth variable values on the boot line must be either unquoted or double quoted ("). Single quoted variable values such as MM_DEBUG='yes' will not work correctly.
The answer to this question can be found on the MiniMyth build system instructions page.
The best way to report a bug or request a feature is to let us know about it.


Hello,
I have an example where I have a variable belonging to a base class, but I would like to tell the compiler that it actually belongs to a derived class. How can I do this?
Regards,
bostjanv
// base class: R0
// derived class: R1
// see function SetR1 for the problem
class R0 {
public:
int a;
};
class R1: public R0 {
public:
int b;
};
void Set(R0 &r,int a) {
r.a = a;
} // Set
void SetR1(R0 &r,int b) {
// (R1)r.b = b; // THIS DOES NOT WORK
} // SetR1
R0 r0; R1 r1;
int main(int argc, char *argv[]) {
Set(r1,22); SetR1(r1,23);
}
Hello,
Thanks for the reply. The situation is the following:
I'm trying to translate some software from a language where this is quite legitimate (Oberon-2). For example, one can declare a variable of a base class type and assign to it a value of a derived class type. Later, one can take the base class variable and say "assume the actual type is the derived class" and access the derived class components. I'm trying to figure out if there is way to perform something like that in C++.
Regards,
bostjanv
void Set(R0 &r,int b) {
r.a = a; // accessing base class variable
}
R1 r1;
int main(int argc, char *argv[]) {
Set(r1,22);
}
This is because, the references and pointers to derived class objects are type compatible with base class objects.
However, following is not possible:
1 2 3 4 5 6 7 8 9
void SetR1(R0 &r,int b) {
r.b = b; // base class reference variable trying to access derived class member function.
}
R1 r1;
int main(int argc, char *argv[]) {
SetR1(r1,22);
}
This is because, although the same references are used, the function tries to access member variable specific to R1 class. Hence compiler shall complain that the function's input parameter cannot be of R0 class. It does not know that you shall later try to access it through R1 class object.
I tried the method proposed by kbw and it worked. I think I can live with the "unsafe" caveat since the point of this is to say to the compiler "I know what I'm doing; don't complain". I only hope I won't run into some nasty surprises.
Regards, bostjanv


Hello folks,
I'm slowly getting there with this mini-project, my EmoxTX v2 is built and I've now got some CT clamps to start testing. In the meantime, I had also ordered a GLCD board and display with the thinking that I had most of the other components in my parts drawers so have duly built this up too. I loaded up the SolarPV demo sketch and tried the old pins against the board trick and the display powered up fine with the four quadrants etc. However, when I'm now trying that I get nothing. As I remove the power the LCD blips one or two black lines horizontally across as it loses power. I'm a bit stumped as it was working ok and now it seems to have gone caput. I've re-soldered every joint and lightly soldered in the LCD to see if it was a bad contact but no joy. Any pointers as to what to try next?
Thanks!
Re: GLCD faultfinding
One thing you can check is the voltages across the 3 electrolytic capacitors C13-C15. They are part of a voltage quadrupler so the should be 12V across one of them (I can't remember which right now). You also need to check that they are in the right way round as V1.4 of the board had them labeled incorrectly.
Re: GLCD faultfinding
Thanks Martin, it's the v1.5 board so the caps are ok. It might be a bit tricky to measure across the cap with the LCD in place - once I know which cap I can find where it leads to. I've delved into the schematics of the GLCD but couldn't shed any light on the voltage quadrupler?
Re: GLCD faultfinding
The voltage quadrupler is built into the display module with the external capacitors forming part of the charge pumps. There are actually 4 capacitors used, not 3 as I said above, with the final 12V appearing across C16.
Glyn provided a useful list of voltages on this thread somewhere if you search for "GLCD voltages"
Re: GLCD faultfinding
You said the LCD functioned when it was held in place and not soldered, now that you've soldered it it doesn't work?
In that case, surely you are looking for something like a whisker of solder or a solder splash.
Re: GLCD faultfinding
Thanks Martin, the voltage across C16 is only 3.71V :/ wondering if the GLCD is foobar
Robert - yes it worked when held in place and then stopped working (not soldered), so I then soldered it to check if it was a connection issue which it seems it isn't (not looking forward to de-soldering!)
Off to look for GLCD voltages...
Re: GLCD faultfinding
Well I de-soldered the LCD (just about) and the board is in a bit of a mess now :( I replaced the 10uF caps on the off chance they were bad (they were quite old) but no joy.
Just wondering if there's any other diagnosis that can be done to check that the board is functioning properly without the LCD? I'd be a bit gutted if the LCD is caput :( The board and components are relatively cheap to replace the LCD on the other hand...


Categories:
REACTIVATE
Contains :
Sub-categories:
REACTIVATE
Contains :
Styles:
REACTIVATE
Contains :
Sizes:
REACTIVATE
Contains :
Colors:
REACTIVATE
Contains :
Products:
REACTIVATE
Contains :


An error occured :(
To get back to the main page press the button below.


Menu
Search
Logo
User
REGISTER yourself as landlord
register
REGISTER yourself as tenant
register
100 properties for you
new properties
add property
property
landlord
location
rent
4bhk
doe
antwerp
100
apply
4bhk
doe
antwerp
100
apply
4bhk
doe
antwerp
100
apply
4bhk
doe
antwerp
100
apply
<
1
2
3
4
>
view all properties


Instructions: Click the button below to begin the quiz. Answer as many questions as you can before the timer counts down to zero. For every correct answer you earn extra time! For every incorrect answer you lose time! Good luck!


WaveDrom Example
WaveDrom timing diagrams can be embedded into the web pages, blogs, wiki pages:
Yes, right in the middle of your page.


Select burger
This is where you execute burger selection
{{ burger.name }}
- {{burger.kCal}} kCal
- Contains gluten
- Contains lactose
Customer information
This is where you provide necessary information
Delivery information:
Please provide delivery destination by clicking on the map:
T
Order confirmation
Customer details
- Name: {{ selected[0] }}
- Email: {{ selected[1] }}
- Payment method: {{ selected[2] }}
- Gender: {{ selected[3] }}
Order summary
- {{ burger }}


I started Evolution this morning and noticed half of my calendar events were missing. Attempts to refresh said calendar resulted in the following errors message:
The calendar backend servicing “XXX” encountered an error.
The reported error was “SQLite error code ‘11’: database disk image is malformed (statement:SELECT * FROM ECacheObjects WHERE ECacheState!=0)”.
Just the start I wanted to my Friday morning. Unfortunately the Evolution documentation didn’t provided any guidelines on fixing a corrupted database and the best advice I found, aside from deleting and recreating the account in Evolution, was to run an integrity check on the offending database [1].
I knew from this guide that my main Evolution configuration was stored in
.local/share/evolution
, but a look through the calendar
subdirectory yielded
nothing. Googling ECacheObjects
curiously didn’t bring anything up, but a
search on GitHub did identify the offending service, evolution-data-server
[2]. Unfortunately while I was able to find something that look like
directory containing “private data” [3], I didn’t know what build
configuration had been used and couldn’t find the folder locally.
Now Linux provides a very helpful feature where it show all files currently marked as open by a given process. To use this, I first needed to find the process responsible for maintaining the calendar.
$ ps aux | grep evolution
sfinucan 2552 0.0 0.3 1717928 59912 ? SLsl Dec07 0:02 /usr/libexec/evolution-source-registry
sfinucan 2616 0.0 0.2 1242008 50640 ? Ssl Dec07 0:00 /usr/libexec/evolution-calendar-factory
sfinucan 2696 0.0 0.9 2803208 182632 ? SLl Dec07 0:19 /usr/libexec/evolution-calendar-factory-subprocess --factory caldav [...]
sfinucan 2738 0.0 0.2 1255468 48452 ? Sl Dec07 0:00 /usr/libexec/evolution-calendar-factory-subprocess --factory contacts [...]
sfinucan 2754 0.0 0.2 1152708 44496 ? Ssl Dec07 0:00 /usr/libexec/evolution-addressbook-factory
sfinucan 2766 0.0 0.2 1329236 47984 ? Sl Dec07 0:00 /usr/libexec/evolution-calendar-factory-subprocess --factory local [...]
sfinucan 2787 0.0 0.2 1440644 46152 ? Sl Dec07 0:00 /usr/libexec/evolution-addressbook-factory-subprocess --factory local [...]
sfinucan 2925 0.0 0.2 1536780 54080 tty2 Sl+ Dec07 0:00 /usr/libexec/evolution/evolution-alarm-notify
sfinucan 9496 0.0 0.2 1443748 59028 ? SLl 10:27 0:00 /usr/libexec/evolution-addressbook-factory-subprocess --factory google [...]
sfinucan 9503 2.0 1.6 4220880 332836 tty2 SLl+ 10:27 0:32 evolution
sfinucan 10611 0.0 0.0 119728 972 pts/1 S+ 10:55 0:00 grep --color=auto evolution
This looked promising and I took the evolution-calendar-factory-subprocess
process with the caldav
factory to be the most likely candidate. Let’s
see what this has open.
$ ls -l /proc/2696/fd | grep *.db
lrwx------. 1 sfinucan sfinucan 64 Dec 7 21:39 12 -> /home/sfinucan/.cache/evolution/calendar/fd3d04f3a29f36ce66c87bca8ef0b4d1d0dc3577/cache.db
lrwx------. 1 sfinucan sfinucan 64 Dec 8 10:27 13 -> /home/sfinucan/.cache/evolution/calendar/853c325e65384d811be1d53e0c6d21706d810a5e/cache.db
lrwx------. 1 sfinucan sfinucan 64 Dec 8 10:27 14 -> /home/sfinucan/.cache/evolution/calendar/9ff6cfa62a76324ab004c9c4a09ecec0a96c0956/cache.db
lrwx------. 1 sfinucan sfinucan 64 Dec 8 10:27 15 -> /home/sfinucan/.cache/evolution/calendar/41464062e9943c630c2bb3171b67d4e1a2cf8a93/cache.db
lrwx------. 1 sfinucan sfinucan 64 Dec 8 10:27 16 -> /home/sfinucan/.cache/evolution/calendar/6e9502d1c38772667d06ed809e1012bb0178a62d/cache.db
lrwx------. 1 sfinucan sfinucan 64 Dec 8 10:27 17 -> /home/sfinucan/.cache/evolution/calendar/f22562ff5b1e02106f69e957a7a18513bec94cab/cache.db
lrwx------. 1 sfinucan sfinucan 64 Dec 8 10:27 18 -> /home/sfinucan/.cache/evolution/calendar/6d11aa1cdaf7e1a1c7ff83b464f319b8bf0b8b08/cache.db
lrwx------. 1 sfinucan sfinucan 64 Dec 8 10:27 22 -> /home/sfinucan/.cache/evolution/calendar/f90f25baabe8d65bb2d1d8197dac7a450bcb46e7/cache.db
lrwx------. 1 sfinucan sfinucan 64 Dec 8 10:27 23 -> /home/sfinucan/.cache/evolution/calendar/fd8b197130da0ca054ab698175e0b3dd16e1b52d/cache.db
That looks promising. Time to kill the various evolution
processes and go
fix those databases.
$ sudo pkill evolution
$ sudo pkill -9 evolution-*
$ $ for i in $(find . -path "./trash" -prune -o -name "cache.db" -print); do
→ echo "$i";
→ sqlite3 "$i" "pragma integrity_check;";
→ done
./41464062e9943c630c2bb3171b67d4e1a2cf8a93/cache.db
ok
./9ff6cfa62a76324ab004c9c4a09ecec0a96c0956/cache.db
ok
./f22562ff5b1e02106f69e957a7a18513bec94cab/cache.db
ok
./f90f25baabe8d65bb2d1d8197dac7a450bcb46e7/cache.db
ok
./fd8b197130da0ca054ab698175e0b3dd16e1b52d/cache.db
ok
./6d11aa1cdaf7e1a1c7ff83b464f319b8bf0b8b08/cache.db
ok
./fd3d04f3a29f36ce66c87bca8ef0b4d1d0dc3577/cache.db
*** in database main ***
On tree page 2935 cell 492: Rowid 3396 out of order
On tree page 2935 cell 491: Rowid 3394 out of order
On tree page 2935 cell 490: Rowid 3392 out of order
On tree page 2935 cell 489: Rowid 3390 out of order
Page 1635: btreeInitPage() returns error code 11
On tree page 2935 cell 487: Rowid 3386 out of order
Page 1634: btreeInitPage() returns error code 11
Page 1762: btreeInitPage() returns error code 11
On tree page 2935 cell 419: Rowid 3289 out of order
Page 1243 is never used
Page 1255 is never used
Page 1263 is never used
row 1934 missing from index IDX_SUMMARY
row 1934 missing from index IDX_COMPLETED
row 1934 missing from index IDX_DUE
row 1934 missing from index IDX_OCCUREND
row 1934 missing from index IDX_OCCURSTART
row 1934 missing from index sqlite_autoindex_ECacheObjects_1
row 1938 missing from index IDX_SUMMARY
row 1938 missing from index IDX_COMPLETED
row 1938 missing from index IDX_DUE
row 1938 missing from index sqlite_autoindex_ECacheObjects_1
row 1939 missing from index IDX_SUMMARY
row 1939 missing from index IDX_COMPLETED
row 1939 missing from index IDX_DUE
row 1941 missing from index IDX_SUMMARY
row 1941 missing from index IDX_COMPLETED
row 1941 missing from index IDX_DUE
row 1941 missing from index sqlite_autoindex_ECacheObjects_1
Error: database disk image is malformed
./853c325e65384d811be1d53e0c6d21706d810a5e/cache.db
ok
./6e9502d1c38772667d06ed809e1012bb0178a62d/cache.db
ok
We have our offending database. Now, we could simply remove this and be done but, to be honest, I don’t really trust the rest of them now. Seeing as everything is already stored in the cloud, I can simply delete these caches.
$ rm -f .
Problem solved.


Welcome to our evolution tool. Enter your stats, the Digimon you have and the Digimon you want and it will tell you your current progress towards that evolution.
It will also show you the priority scores and what Digimon is currently enabled by the priority system.
The tool is currently not taking the Digimon you already had into account, although it should. This could lead to some inaccurate results.
We're working on fixing this problem in the near future.
There are several evolutions not included in this tool due to their special nature. They're listed
here.
Ginoshie also made videos how to get them on his
YouTube Channel.


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/is_open.20.7Bx.20.7C.20x.20.2B.20u.20.5Cin.20U.7D.html ---
Given a topological additive monoid, I expected theorems that say that you can translate opens along addition by a given element. But I could not find those... is this in mathlib, or do I need to roll my own?
continuous_add or something
Are you sure Kenny? That seems to prove only that the pre-image of an open under the map lam x, x+c (c constant) is open. But you can't cancel in a monoid and Johan seems to want to show that the image, not the pre-image, of an open is open. @Johan Commelin are you sure that what you want to prove is true? What exactly do you want to prove?
and what exactly are you thinking about topological monoids for??
Hmmm, I probably over-generalised.
Let's assume it's a group.
then what Kenny said
Huh, the title looks like a preimage
That's good enough for applications, since I'm a mathematician.
oh yes, Kenny's comment answers the question in the title but not in the body.
Ok, somehow continuous_add
didn't work straightaway. I'll try harder.
I'm assuming continuous_add is continuity of addition, so now you need to compose with the map from G to G x G sending g to g,c
which is continuous for any topological space
Given a topological additive monoid, I expected theorems that say that you can translate opens along addition by a given element. But I could not find those... is this in mathlib, or do I need to roll my own?
I think this is not true. Consider the topological multiplicative monoid and translation by 0
bingo
Hmn, I could PR the continuity
tactic now that tidy is in mathlib
Reid: yes, please!
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


I am an experienced Operations Engineer looking to utilize my skillset in a fast-paced and fun environment.
| Questions about Brian | ||
|---|---|---|
| My question | Your answer | Correct answer |
| Question Here | answer here | answer here |
| Question Here | answer here | answer here |
| Question Here | answer here | answer here |
| Question Here | answer here | answer here |
| Question Here | answer here | answer here |
| Question Here | answer here | answer here |
| Question Here | answer here | answer here |
| Results | ||
| Answered correctly | Comments | |
| Results Here | Comments Here |


The Godson (1998) NO STARS out of *****
Cast: Kevin McDonald, Dom DeLuise, Rodney Dangerfield, Joey Buttafuoco, Keith Coogan, Lou Ferrigno, Bob Hoge, Dom Irrera, Fabiana Udenio Written and Directed by: Bob Hoge Running Time: 100 minutes
Truly awful parody of The Godfather series and other gangster films. Kevin McDonald (of TV's "The Kids in the Hall" which says to me that he should know better) stars the youngest son of the Calzone crime family. Dom DeLuise (doing the Brando impression he did in Cannonball Run II and other places too I'm sure) plays the leader of the Calzone family, named "The Oddfather". Rodney Dangerfield, who I could swear had comedic ability at some point in his career, plays a rival to the Calzone family, named "The Rodfather". Are you laughing yet? Neither was I.
Inept joke after inept joke makes the similarly themed Jane Austin's Mafia! look like a cinematic masterpiece. When Joey Buttafuoco gives the best performance in the film and the only laugh comes when Dom DeLuise mutters the line "Your mother's ass" then what does that tell you? I'd recommend fast forwarding through this garbage if it wasn't for the presence of gorgeous Fabiana Udenio (Austin Powers:International Man of Mystery) playing Don Na (get it? Don Na? Donna? It's funny!). You may still want to hit mute though.
The Godson is available on DVD from Sterling Home Entertainment. I can't imagine anyone wanting to own this film on DVD, but I guess it's still my duty to inform you of the disc's "features". It contains the film in standard (pan and scan) format, the film's trailer, and production notes. Curiously on the back of the case, certain cast members are named in the list of special features. Since when is an actor who appeared in the film considered to be a special feature (especially this cast)? [PG-13]
The Jacksonville Film Journal -- Film Reviews by Chuck Dowling URL:http://users.southeast.net/~chuckd21/<EMAIL_ADDRESS>© 1999 of The Jacksonville Film Journal. No reviews may be reprinted without permission.
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


Greeshma Sreekumar
Secind Year IT student at GECB
My Linkedin profile
Programming languages I like:
Python
Java
C


WAG THE DOG SITS UP AND BARKS
Wag The Dog A Film Review By Michael Redman Copyright 1998 By Michael Redman
***1/2 (out of ****)
As the American public has become increasingly aware in recent years, politics is mostly smoke and mirrors. The truth of a situation is less important than the spin and there's so much spinning in Washington DC it's a wonder the city stays in the same location day after day.
It's 11 days before the election and the President is in trouble. He's accused by a teenage "Firefly Girl" of pressing the flesh a bit too literally in the Oval Office. It's time to do something...anything...about it.
Enter Conrad Bream (Robert De Niro), a "fixer" of the highest magnitude. Bream's take on the situation is that they need something to distract the press until after the vote. What could be more important than the Chief Executive's sexual indiscretions? How about a war with, oh maybe, Albania?
Not a real war of course, but a media creation to distract the public. To pull off the hoax, Bream and White House aid Winifred Ames (Anne Heche) enlist Hollywood producer Stanley Motss (Dustin Hoffman). Motss is into it: this will be his greatest accomplishment.
Bream starts off by ordering a leak that the President's extended stay in China has nothing to do with deploying the new B3 bomber. Not only that, but there is no B3 bomber. When told by staffers that there really is no B3 bomber, he replies "Of course." Deny it and everyone will be convinced that it exists.
The "war" jumps into production with a battle scene shot on a studio stage complete with digitally dubbed village backgrounds, gun fire, flames and a little white kitten in a peasant girl's arms. A planned media event for when the President does return to the country requires rain. When they find out that there will be no rain in Washington, the plane is diverted to Florida so he can give his coat to an Albanian mother thanking him for fighting the terrorists. Nothing is left to chance.
When they do run into problems, Motss takes it in stride. "You think this is hard?" he explains, "Try a 10:00 am pitch meeting coked to the gills and you haven't even read the treatment. That's hard. This is easy." He's in charge. The opposition catches on to the ruse and announces that the war is over. "Over?" the producer shouts, "This war isn't over until I say it's over!"
The film drives home the power of television. Bream's reply is "The war is over. I saw it on television." The public swallows the deception with a spoon and the Firefly incident is safely buried .
The three take their project as far as it will go. Motss wants to nominate the President for the Nobel Peace Prize because he brought peace to the war-torn country. When reminded that there is no war, he explains "All the greater accomplishment."
His crew of experts works towards the illusion. The songwriter (Willie Nelson) creates a "We Are The World" clone to promote patriotism. The Fad King (Denis Leary) hatches a scheme to get the public involved. After all, you didn't really think that those yellow ribbons for the hostages happened because of a groundswell of grass roots support, did you?
The acting is exceptional. Hoffman and De Niro bounce off Heche's naive politico admirably. The two actors have an easy friendship on screen that is an absolute pleasure to watch. This is the first time that they have appeared together (except for one scene in "Sleepers") and the chemistry is apparent. In another review I mentioned that Jack Nicholson may possibly be the best actor working today. If that's not true, Hoffman and De Niro are certainly candidates for the throne.
Woody Harrelson turns in a well-done although small "Billy Bob" performance. Peppered throughout the film are other clever cameos. Especially worth watching is the duet between Nelson and Pops Staples.
Director Barry Levinson ("Tin Men", "Rainman") does an amazing job with David Mamet's script (also credited to Hilary Henkin although Levinson insists that Mamet wrote every word) considering that the film was made with a minuscule budget ($15 million) and shot in only 29 days.
When the crew accidentally ran into President Clinton while filming, he asked what the movie was about. In true form, the actors lied to him.
To pick nits, the introductory explanation of what the title means is unnecessary and demeaning to the audience. We get the idea. It's also a problem that the scheme would never actually work unless the United States were completely isolated from the rest of the world. Are there no reporters sent to Albania to cover the war? If you can force yourself to get past this, everything else falls into place.
The final three minutes are a brave gambit. They completely change the mood of the film and are sure to anger some viewers. It took me quite a while to decide how I felt about the scene, but I finally understood that it added a needed element to the film.
The message of the film is frighteningly accurate. In politics, it doesn't matter what really happens, it only matters how it is handled. Whether the President did indeed molest the girl is never answered because it is irrelevant. In Washington the truth of Clinton's sexual activities isn't really addressed. The important thing is how each sides handles the accusation. Political news is often no more real than the most recent episode of "Seinfeld".
(Michael Redman, after over 22 years of writing this column and much more experience watching the comings and goings of politicians, no longer believes anything. Email lies to<EMAIL_ADDRESS>[This appeared in the 1/15/98 "Bloomington Voice", Bloomington, Indiana. Michael Redman can be contacted at<EMAIL_ADDRESS>--<EMAIL_ADDRESS>This week's film review at http://www.bvoice.com/ Film reviews archive at http://us.imdb.com/M/reviews_by?Michael%20Redman
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


Type your funnel code in here:
The playground url can load gists and run them. For example, consider the gist url https://git.github.com/rameshvk/73617b4fb991ab410df7f830ec086511. This can be accessed like so: https://github.com/funnelorg/playground?gist=https://gist.githubusercontent.com/rameshvk/73617b4fb991ab410df7f830ec086511/raw/20afbbed159895c256eaead582493ca47852b5fc/test.fun
x + y()
{y = x + 1, x = 22}.y
if(i > 2, i, i*2)
{x = fun(z, z+1), y = x(2)}.y
{x = data:list(1, 2, 3), y = data:map{z = 42}}
data:list(1, 2, 3).map(value*2)
url(string "https://api.myjson.com/bins/ngfbw").json()
code:import(string "...")
wiki:table(string "...")
Funnel expresions can include the standard binary operators: +-/*
The if function can be used for conditional expressions:
Funnel also supports multiple expressions:
Functions can be define using fun
:
Functions with one parameter do not need ()
:
This demo also has a url function which allows fetching arbitrary json:
One can also construct lists with data:list which exposes filter and map:
Similar to data:list
, there is also data:map
:
Both data:list
and data:map
expose filterf
and mapf
functions which takes a function as an argument rather than an expression. These are good for nested use cases:
Importing code from a url:
Wikipedia tables:
Please see the github funnel project for a look at the code


cs resolve
Resolve lists the transitive dependencies of one or more other dependencies.
More information: home page
- Resolve lists of transitive dependencies of two dependencies:
cs resolve group_id1:artifact_id1:artifact_version1 group_id2:artifact_id2:artifact_version2
- Resolve lists of transitive dependencies of a package by the dependency tree:
cs resolve --tree group_id:artifact_id:artifact_version
- Resolve dependency tree in a reverse order (from a dependency to its dependencies):
cs resolve --reverse-tree group_id:artifact_id:artifact_version}
- Print all the libraries that depends on a specific library:
cs resolve group_id:artifact_id:artifact_version --what-depends-on searched_group_id:searched_artifact_id
- Print all the libraries that depends on a specific library version:
cs resolve group_id:artifact_id:artifact_version --what-depends-on searched_group_id:searched_artifact_idsearched_artifact_version
- Print eventual conflicts between a set of packages:
cs resolve --conflicts group_id1:artifact_id1:artifact_version1 group_id2:artifact_id2:artifact_version2 ...


token
firstname
lastname
academic_title
email
salutation
phonenumber
possible_lectures
comment
is_extern
allow_manipulation
Create Lecturer
Upload CV for Lecturer
Plain HTML Form with File Upload
token
lecturerId
File Upload
View CV of Lecturer
token
lecturerId


Survey Questions
About You
Name (Required)
Link to Photo Image (Required)
Question 1
Your mind is always buzzing with unexplored ideas and plans.
Select your option
1 (Strongly Disagree)
2
3
4
5 (Strongly Agree)
Question 2
Generally speaking, you rely more on your experience than your imagination.
Select your option
1 (Strongly Disagree)
2
3
4
5 (Strongly Agree)
Question 3
You find it easy to stay relaxed and focused even when there is some pressure.
Select your option
1 (Strongly Disagree)
2
3
4
5 (Strongly Agree)
Question 4
Your mind is always buzzing with unexplored ideas and plans.
Select your option
1 (Strongly Disagree)
2
3
4
5 (Strongly Agree)
Question 5
People can rarely upset you.
Select your option
1 (Strongly Disagree)
2
3
4
5 (Strongly Agree)
Question 6
It is often difficult for you to relate to other people’s feelings.
Select your option
1 (Strongly Disagree)
2
3
4
5 (Strongly Agree)
Question 7
In a discussion, truth should be more important than people’s sensitivities.
Select your option
1 (Strongly Disagree)
2
3
4
5 (Strongly Agree)
Question 8
You rarely get carried away by fantasies and ideas.
Select your option
1 (Strongly Disagree)
2
3
4
5 (Strongly Agree)
Question 9
You think that everyone’s views should be respected regardless of whether they are supported by facts or not.
Select your option
1 (Strongly Disagree)
2
3
4
5 (Strongly Agree)
Question 10
You feel more energetic after spending time with a group of people.
Select your option
1 (Strongly Disagree)
2
3
4
5 (Strongly Agree)
Submit
×
Best Match


--- layout: post title: 'The Young ''Uns are unplugging;' date: 2004-12-09 00:00:00 categories: mobile personal ---
The Young 'Uns are unplugging; I'm tempted to have a 3-day email and mobile break over Christmas this year. I can't actually remember the last time that I cut myself off from the net for that length of time...


City emitting more GHG
by Wayne MooreKelowna is going the wrong way when it comes to greenhouse gas emissions.
The city has set a target of reducing GHG emissions by four per cent compared to 2007 levels by 2023.
However, in 2017, the last year data is available, emissions actually increased by nearly six per cent.
Figures in a report for council on the city's Community Climate Action Plan shows GHG emissions since 2007 have fluctuated wildly. In 2010, the city had reduced its output by 4.7 per cent, while in 2016, that number had dropped to 2.8 per cent.
"Variations in emissions are noted from year to year, which can in part be due to weather factors," the report states.
"The concerning trend, however, is the community is losing ground and has not been able to achieve the same degree of absolute emission reduction that was achieved in 2010. Progression on absolute emission reductions is paramount to limiting the extent and impacts of climate change."
The report goes on to say while 2018 data is not available, it is encouraging that fuel sales in the community have declined by about three per cent over 2017 figures. Fuel sales in 2017 had spiked by six per cent over the previous year.
The report also shows the city has made some strides in implementing the 47 actions endorsed by council last year.
To date, 32 of the 47 identified actions are either complete, ongoing or in progress.
Some of those include implementation of the Energy Step Code which will begin implementation next month, policies around the Pedestrian and Bicycle Master Plan and Transportation Master Plan, and a retrofit and electric vehicle strategy through a grant from FortisBC.
The city's climate action plan seeks a reduction from 2007 levels of 25 per cent by 2033 and 80 per cent by 2050.
"In order to make significant progress on the targets, it is imperative that everyone – residents, businesses, industry, and senior levels of government – do their part.
"The city’s actions are essential to support a transition to lower emissions, but it will ultimately be a shift in the community’s behaviour and regulation at the senior government level that is necessary to achieve the targets."


Chapter 3 Closing
Ingenious Growth Hacks
While each of these companies offer excellent examples of growth hacking in action, everyone seems to want to arrive at the “top” growth hacks of all time list. I’ve already talked about the AirBnB hack to integrate under the radar with Craigslist, but here’s a compilation (in no particular order) of some of the tactics that always seem to make the cut: Hotmail really is considered one of the classics of growth hacking, and it was a simplistic and ingenious move. That tag line at the bottom of every email, “Get your free email at Hotmail,” took the service from 3000 users to 1 million in 6 months. That one probably will always hold first place on any list because it was and is brilliant.
The Facebook option to tag someone in a photo sends an email to that person, an action that generates almost a 75% click through rate to the site. The emotional pull is almost irresistible. What’s the picture? What did they say? Is my Mother going to see that? In a true culture of growth, Facebook still has a growth team, even though it’s the largest social network in the world.
The Dropbox option to invite a friend and get 500mb of storage kicks up the user’s social reaction and self-interest. Once a Dropbox user really understands what the service can do for them, especially in storing and sharing large photo files, the desire for more space at no cost is almost automatic. Pinterest applies an incredibly simple way to remove any perceived friction from their browsing experience – the ultimate scroll. You can go to Pinterest and look, and look, and look, and look and never click once. Are people really that lazy? Absolutely, but at the same time, this technique creates stickiness and ultimately will draw them deeper and deeper into the site.
Instagram does something similar with their feed via their mobile app. To speed load time, they put only the most popular photos first, which encourages scrolling and encourages users to add and share their own photos. Both Pinterest and Instagram are heavily dependent on the power of visual appeal and have optimized their feeds brilliantly to capitalize on that experience.
There are some pretty brilliant game-based growth hacks out there as well. In mid-2013, the game Candy Crush was reporting 45 million users per month. How? By its very design Candy Crush creates sweet tooth addicts. When a user “dies,” they either have to wait 30 minutes for a timer reset, pay for more lives to play again, or go out begging / inviting friends to sign up and help them out.
Learning to Growth Hack
It’s important to understand from the beginning that there is no one way to achieve company growth. In fact, the very nature of growth hacking pushes against complacency and formulaic approaches. No growth hacker should ever see their role in a company as static, nor should they look for growth that follows a single curve. Truly effective growth is both steady and rapid. The best curve to grow a business looks more like a jagged set of steps going up the side of a mountain than a smooth curve. Think about that image for a minute. Periods of slow, steady growth allow for testing, development, and strategic planning.
Periods of rapid, unsustainable growth achieve new plateaus, infuse the endeavor with energy, and if well analyzed, suggest new directions.
Merged into one upward pattern, these two types of growth represent true and building momentum.
Art, Not Science Remember, growth hacking is more art than science and demands that the growth hacker have the ability to constantly adapt to an organization’s changing needs. People who like routine or who are wedded to doing things one way for long periods of time don’t make good growth hackers!
Always ask yourself: What does the customer or the market want? Who are my customers / users? Where do I find my customers / users? What language do my customers / users speak?
It’s a wise course of action to do NOTHING until you know your market. Just look at Goodreads and Amazon. Goodreads was founded by a voracious reader who also happened to be a coder. Amazon was founded by an entrepreneur who looked at what could be sold online and settled on books due to historic demand and the passionate attachment of readers to literature. It’s worth noting that Jeff Bezos ruled out video, audio, and computers as the basis for the Amazon store, but then came back when he had the capital and incorporated those items and many more into the now giant retail site. His reason for the gradual expansion was incredibly sound. People who buy books also tend to buy music and videos. He then merged those interests into a neat consumer electronics package with the Kindle Fire tablet, an all-in-one device for consuming Amazon content — ebooks, music, and video with built-in on-the-device ordering. Now THAT’S knowing your market. It didn’t happen all at once, but Bezos understood the desires of his customers and has continued to innovate in a direction that meets their growing and changing tastes. Oh. And along the way, he bought Goodreads, the largest online social community for readers and completely integrated its use in the Kindle line of ebook readers. Genius.
A Growth Oriented Company Culture It’s good wisdom to follow the dictate that the concept of growth has to be hardwired into a business or product from day one — as the example of Jeff Bezos clearly illustrates. Ideally, this attitude should be cultivated by the founder of the endeavor as the one who sets the tone for a growth “creed” and directs the allocation of resources to realize that vision. Typically the realization happens along the lines of the curve I described in the opening of this chapter, sharp growth spikes punctuated with plateaus for measurement and reassessment. In a best-case-scenario the founder of a company is also the endeavor’s first and chief growth hacker, even though he is likely to pass that responsibility on to others once the business is out of the startup phase. People who successfully grow businesses tend to be generalists, a trait often seen in successful entrepreneurs — and they should also have vision. That translates to good intuition for product, and an ability to fill multiple roles while keeping their eyes on the ultimate goal.
All Growth Hackers Aren’t Coders
It’s a mistake, however, to assume that all growth hackers also have to be coders. Certainly it’s an ideal situation if you have someone who is both a software engineer and a brilliant, innovative marketer with a sense of product-market fit. Those people are, however, about as common as mythical unicorns. If you can articulate your needs and explain how you perceive gaining initial traction, software engineers can be hired to make it happen. The same results can be achieved by either party, it’s simply a matter of how the questions are posed to trigger the development of solutions. A growth hacker who is a coder might look at an aspect of the user experience and think, “There has to be a way to automate that.”
A growth hacker who isn’t a coder is the guy who walks into the software engineer’s office and says, “Do you think you can find a way to automate that?”
The two types can be very powerful partners since coders tend to become growth hackers the longer they are a part of a growth hacking team. By nature their minds are analytical and trend toward problem solving. Most programmers have, at one time or another, chafed under the constraints of the limited imagination of management. Growth hacking is about testing, measuring, and trying out new concepts. Creative people thrive in that environment and although they may not consider themselves growth hackers in the beginning, they are often the very ones to say, “Hey, what would happen if . . . ?” When the person listening to creative ideas that fall outside of the proverbial box is open and receptive to innovation, the whole team effort becomes supercharged. The take away from these observations is to develop a sound concept and never stop working to find and hone market fit. Hire the best people you can find. Share your vision. Make sure they understand it. And then work the data over and over again.
Replicable Strategies are Golden Any strategy that can be used repeatedly and gets better with each iteration is golden. Companies like Uber are a good example. They perfected a city-wide roll out strategy in San Francisco that proved to be so effective they have used and improved it in each successive city they enter. Even in the face of replicable success, however, the focus should remain on delivering the best user / customer experience, even if that means completely changing the direction of the endeavor midstream. RelayRides is a good example of an incredibly successful change in course. They started out believing that their ride sharing concept was best targeted for short-term hourly hires and wound up completely focusing their business on long-term rentals with airport based drop off and pick up. Why? The company introduced its service at San Francisco International Airport where it was so well received, the concept was then implemented in 229 additional airports. In short order, RelayRides was gaining 95% of their revenue from a long-term hiring model and discontinued hourly rentals. A replicable growth hacking strategy for a company might look something like this:
Figure out what data to track that will give you the greatest insight into your user base and its behavior. Perform the necessary analytics to understand that behavior and extract the maximum benefit and insight from it. Prioritize the actions that will most facilitate growth and do those first, even if redesign or the inclusion of new features and/or directions is required. Build and push changes as reflected under prioritization. Measure again and gauge your success.
Obviously these steps are customized per product and business model, but you get the idea. Test, refine, implement — over, and over, and over again.
Markets Are Always in Flux Never fall into the trap of assuming you have achieved perfect market fit. Markets are constantly in flux. What you do to gain traction in a market may not be the answer to sustaining and growing your user base. Almost all of the truly great growth hacks are, at the base level, answers to optimization problems. The Hotmail tagline was a simple and elegant refinement to every email message sent through the service that made each email a marketing tool.
The AirBnB hack neatly cross-posted listings to Craigslist, bootstrapping the booking service’s user base off the existing Craiglist ecosystem.
The Pinterest invite-only beta successfully generated interest and seeded the site with high quality pins from professional designers.
Each of these growth hacks and less flashy techniques like Twitter’s suggested followers, Instagram’s cross-posting options, and Dropox’s incentivized referrals are all examples of optimizing presentation and enhancing the user experience. There is no such thing as “good enough” in growth hacking, where even shaving a few seconds off a site’s load time can have value if it answers a clearly
identified user need or removes a potential point of friction. Scrappy, even black hat, techniques like AirBnB’s hack of Craigslist may be responsible for first stage growth, but the problems generally get more complicated when retention, monetization, and acquisition enter the equation. Lots of startups take off like a rocket only to fizzle for lack of sustained growth. Always maintain the attitude that something you are doing can be done better.
“Do or Do Not, There is No Try”
Okay, yeah, I blatantly lifted that from Yoda, but in the end result the way to learn to growth hack is to growth hack — not to try it, but just to do it. One of the most attractive aspects of this philosophy of marketing is that mistakes aren’t just “allowed,” but are a good thing because they are taken as opportunities from which people just move on. “Do overs” are encouraged and changing your mind is a virtue, but ONLY when done in the name of achieving the ultimate goal of growth and ONLY in response to measurable data reflecting user behavior and articulated needs. This is the matter of “product / market fit” and it’s EVERYTHING. While you’re working your own growth hacking strategies, immerse yourself in what other growth hackers are doing. Read case studies like those I have included in this text. Get ideas from idea people. The specific growth hack may not apply to your product or your business model, but it might inspire you to do something similar — or even NOT to do something.
Growth Hacking Reference Sources
There are a plethora of online resources on growth hacking to broaden your understanding and learn from the “masters.” Here are some of my favorites to get you started: “What is ‘Growth Hacking’ Really?” by Josh Elan at medium.com/what-i-learned-building/f445b04cbd20
“Defining A Growth Hacker: Three Common Characteristics” at techcrunch.com/2012/09/02/defining-a-growthhacker-three-common-characteristics
“The Definitive Guide to Growth Hacking” at www.quicksprout.com/2013/08/26/the-definitive-guide-togrowthhacking/
“Defining A Growth Hacker: Debunking The 6 Most Common Myths About Growth Hacking” at techcrunch.com/2012/12/08/defining-agrowthhacker-6-myths-about-growth-hackers/
“Defining A Growth Hacker: Building Growth into Your Team” at techcrunch.com/2012/10/21/defining-a-growthhacker-building-growthinto-your-team/
“How to Hire a Growth Hacker” at www.aginnt.com/post/64205739421/how-to-hire-agrowthhacker#.U2_ZiK1dXR1
“13 Critically Important Lessons from Over 50 Growth Hackers” at blog.kissmetrics.com/lessons-from-growth-hackers/
“What is a Growth Hacker? Does Your Startup Need a Growth Team?” at www.caneelian.com/2012/10/30/what-is-a-growth-hacker-does-yourstartup-need-a-growth-team/
Like all things online, these links can go away thanks to the changing nature of the web, but the links were all good at the time of this writing in mid-2014.
Growth Hacking Itself Will Evolve Growth hacking is itself an evolving and changing field. Even the definition of what it means to “grow” is changing in the face of the growing mobile revolution. Experts predict that by the end of 2014, there will be 90 million tablet computer users in the United States alone. Some of these people may lead their entire online lives without ever sitting down at a conventional desktop PC or opening a laptop. Knowing this, optimizing a user experience for the tablet generation will be much different than tailoring a site to meet the needs of a PC user. A good growth hacker doesn’t just stay on top of trends of this nature, but anticipates them and factors them into their ongoing strategy. That is both the daunting and exciting aspect of this new approach to marketing in the 21st century. It’s no longer a matter of thinking outside the box, but of redesigning the box, or even asking, “Why do we have a box in the first place?”
Afterword
While I was researching material for this book, I ran across a Slideshare presentation by Ryan Holiday entitled “19 Growth Hacker Quotes: Thoughts on the Future of Marketing” that seem to further support the notion I raised in the foreword that defining growth hacking is like nailing Jell-o to a tree. Growth hackers have a common attitude, internal investigation process, and mentality unique among technologist and marketers. This mindset of data, creativity, and curiosity allows a growth hacker to accomplish the feat of grown a user base into the millions. — Andrew Chen, Entrepreneur and Technology Writer
A growth hacker works within the parameters of a scalable and repeatable method for growth, drive by product and inspired by data. A growth hacker lives at the intersection of data, product, and marketing. — Aaron Ginn, Head of Grown, StumbleUpon
Growth hacking has a subtle message of “what have you done for me today?” You never stop as a growth hacker. Facebook still has a growth team and they have a billion users. - Blake Commagere, Founder of MediaSpike
“Growth hacking” is a recognition that when you focus on understanding your users and how they discover and adopt your products, you can build features that help you acquire and retain more users, rather than just spending marketing dollars. — Josh Elman, Partner at Greylock Partners
Growth hacking is the process and mindset of searching for k ways that your product to grow. It’s kind of like a mix between engineering and marketing. The key is to find untapped channels of customers that are motivated to use your product. — Dan Martell, Founder of Clarity
A growth hacker is someone who has thrown out the playbook of traditional marketing and replaced it with only what is testable, trackable, and scalable. Their tools are emails, pay-per-click ads, blogs, and platform APIs instead of commercials, publicity, and money.
Growth hacking tends to be more “experience” focused. This includes driving engagement and sharing within a product or spreading a product experience across networks. Effective growth hackers are relentless about running creative experiments and optimizing the components of the experiment until finding something that works. - Sean Ellis, CEO of Qualaroo
Perhaps my favorite however is by David Ogilvy, known as “the father of advertising.” It speaks to both the serious detail orientation of growth hacking and the relentless curiosity and urge to optimize that goes with it: “I prefer the discipline of knowledge to the anarchy of ignorance. We pursue knowledge the way a pig pursues truffles.”
Growth hackers are all these things — and whatever else they need to be in the situation in which they find themselves. They are self-inventors in many ways, and re-inventors of most of the things with which they come into contact. That is, frankly, one of the most intriguing things about this way to market, the complete absence of “rules,” but an ever expanding playbook. If a growth hacker throws a Hail Mary pass, you can bet that he knows the prevailing wind speed, weight of the ball, and potential reach of the receiver in the end zone down to the millimeter. Now, if there’s two seconds left on the clock and he can get away with rigging the danged thing to hang up until that ball is caught and the ref’s arms are up in the air? He’ll do that, too.


Zone 1 - Basic & Easy Privacy
Authored By: Ashley Palaguachi
If you are looking to keep yourself secure and organized, this zone/method is for you! The other zones may even require you to delete yourself from online services and you may not be ready for that yet. In this zone, you will find basic ways to keep your information safe from the rest of the internet.
PasswordsYou can use any web browser you desire, but be sure that the add-ons and extensions are trusted. You can switch your search engine to either "DuckDuckGo" or "Startpage" which are very trustworthy. You should also never store cookies, your history, or cache, but if you do, clear them yourself frequently.
VPNSHide your identity on the websites you visit, your internet service provider, or anyone trying to track you. VPN’s are encrypted therefore nobody can see what you’re doing. Stay away from free VPNs, and avoid proxies. They are so important to keep yourself protected and you need to have one.
Social MediaHide your real information (names, phone numbers, addresses, etc) and do not talk to strangers,only your close friends. Do not post in public comments and disable permissions.. These services do not need to access your location and apps like Snapchat does not need to access your SMS. Do not post any pictures of yourself because you will be easy to target in person.


Enter some information
Enter cookie stand location
Enter minimum customers per day.
Enter maximum customers per day.
Enter average sales per day.
Send


Blog Post Title
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard text.
Loading up the content! Loading depends on connection speed
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard text.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard text.


Take a look at where our flyers are flinging to. Make an account to save your favorite destinations.
We take pride in hiring the best employees from all walks of life! There's is always a job for everyone to do, but unfortunately not everyone is qualified to do it. If you wish to apply to work with us at Fling, here are some easy steps to do so!
Right now we are searching for:
Sumbit your resumé to<EMAIL_ADDRESS>We'll respond in 1-2 weeks time!
Don't take our word for it, look at the statistics!
Birds of a feather flock together.


Project title
Participated in the development of cash management platform. Developed microservices architecture for maintenance high-availability and scalability based on spring cloud, Jenkins for CI/CD and deployed in Openshift Containers Platform.
- Developed rest services integration with intern cash systems using JSON
- Developed user interface components with Angular 5 and migrated to 7.
- System Team of Santander Brazil, helping the squads to create CI/CD pipelines.


Inorganic chemistry - deals with the synthesis and behavior of inorganic and organometallic compounds.


Her name is Nala. Always excited when i see her or rather when we see each other She keeps the compound safe and my heart warm.
Her name is Nala. Always excited when i see her o


|
| | AHRS (const Matrix &stationaryU, const Matrix &stationaryF, double g_e, bool flat=false) |
| | AHRS constructor. More...
|
| |
|
std::pair< Mechanization_bRn2, KalmanFilter::State > | initialize (double g_e) |
| |
|
std::pair< Mechanization_bRn2, KalmanFilter::State > | integrate (const Mechanization_bRn2 &mech, KalmanFilter::State state, const Vector &u, double dt) |
| |
|
bool | isAidingAvailable (const Mechanization_bRn2 &mech, const Vector &f, const Vector &u, double ge) const |
| |
| std::pair< Mechanization_bRn2, KalmanFilter::State > | aid (const Mechanization_bRn2 &mech, KalmanFilter::State state, const Vector &f, bool Farrell=0) const |
| | Aid the AHRS with an accelerometer reading, typically called when isAidingAvailable == true. More...
|
| |
|
std::pair< Mechanization_bRn2, KalmanFilter::State > | aidGeneral (const Mechanization_bRn2 &mech, KalmanFilter::State state, const Vector &f, const Vector &f_expected, const Rot3 &R_previous) const |
| |
|
void | print (const std::string &s="") const |
| | print
|
| |
|
|
static Matrix3 | Cov (const Vector3s &m) |
| |
|
|
typedef Eigen::Matrix< double, 3, Eigen::Dynamic > | Vector3s |
| |
◆ AHRS()
| gtsam::AHRS::AHRS |
( |
const Matrix & |
stationaryU, |
|
|
const Matrix & |
stationaryF, |
|
|
double |
g_e, |
|
|
bool |
flat = false |
|
) |
| |
AHRS constructor.
- Parameters
-
| stationaryU | initial interval of gyro measurements, 3xn matrix |
| stationaryF | initial interval of accelerator measurements, 3xn matrix |
| g_e | if given, initializes gravity with correct value g_e |
◆ aid()
Aid the AHRS with an accelerometer reading, typically called when isAidingAvailable == true.
- Parameters
-
| mech | current mechanization state |
| state | current Kalman filter state |
| f | accelerometer reading |
| Farrell | |
The documentation for this class was generated from the following files:
- /Users/dellaert/git/gtsam/gtsam_unstable/slam/AHRS.h
- /Users/dellaert/git/gtsam/gtsam_unstable/gtsam_unstable.h
- /Users/dellaert/git/gtsam/gtsam_unstable/slam/AHRS.cpp


- Parameters
-
| string | $contentType | |
| array | $contentIds | List of content IDs (of $contentType to delete) |
◆ deleteIndex()
| deleteIndex |
( |
|
$contentType = null | ) |
|
Deletes the entire search index or a particular part of it.
- Parameters
-
| string | null | $contentType | If specified, only deletes the index for this type |
◆ error()
| error |
( |
|
$message, |
|
|
|
$field |
|
) |
| |
Triggers an error with the searcher object. An error will prevent the search from going through.
- Parameters
-
| XenForo_Phrase | string | $message | Error message |
| string | $field | Field error applies to |
◆ executeSearch()
| executeSearch |
( |
|
$searchQuery, |
|
|
|
$titleOnly, |
|
|
array |
$processedConstraints, |
|
|
array |
$orderParts, |
|
|
|
$groupByDiscussionType, |
|
|
|
$maxResults, |
|
|
XenForo_Search_DataHandler_Abstract |
$typeHandler = null |
|
) |
| |
|
abstract |
Executes a search against the full text index.
- Parameters
-
| string | $searchQuery | Text to search for |
| boolean | $titleOnly | If true, only searches text in titles |
| array | $processedConstraints | Structured constraints |
| array | $orderParts | Structured ordered by parts |
| string | $groupByDiscussionType | If grouping, content type of grouped results |
| integer | $maxResults | |
| XenForo_Search_DataHandler_Abstract | $typeHandler | Type-specific handler, for joins |
- Returns
- array Search results ([] => array(content type, id))
◆ executeSearchByUserId()
| executeSearchByUserId |
( |
|
$userId, |
|
|
|
$maxDate, |
|
|
|
$maxResults |
|
) |
| |
|
abstract |
Executes a search for content by a specific user. Currently this includes no constraints, but down the line it may support non-query constraints.
- Parameters
-
| integer | $userId | |
| integer | $maxDate | If >0, only messages older than this should be found |
| integer | $maxResults | |
- Returns
- array Search results ([] => array(content type, id))
◆ finalizeRebuildSet()
When rebuilding, it might be advantageous to bulk update records. This function must be called to ensure that all records are updated together.
◆ getDefaultSourceHandler()
| static getDefaultSourceHandler |
( |
| ) |
|
|
static |
◆ getGeneralOrderClause()
| getGeneralOrderClause |
( |
|
$order | ) |
|
Gets the general order clauses for a search.
- Parameters
-
| string | $order | User-requested order |
- Returns
- array Structured order clause, array of arrays. Child array keys: 0 = table alias, 1 = field, 2 = dir (asc/desc)
◆ insertIntoIndex()
| insertIntoIndex |
( |
|
$contentType, |
|
|
|
$contentId, |
|
|
|
$title, |
|
|
|
$message, |
|
|
|
$itemDate, |
|
|
|
$userId, |
|
|
|
$discussionId = 0 , |
|
|
array |
$metadata = array() |
|
) |
| |
|
abstract |
Inserts (or prepares to insert) a new record into the search index. This must also update (replace) an existing record, if the (type, id) pair already exists.
- Parameters
-
| string | $contentType | |
| integer | $contentId | |
| string | $title | |
| string | $message | |
| integer | $itemDate | Time stamp for the content (this will be used in date limits and sorts) |
| integer | $userId | User that created the content |
| integer | $discussionId | ID of discussion or other grouping container |
| array | $metadata | Arbitrary list of other metadata that should be indexed if possible |
◆ processConstraints()
Process search constraints.
- Parameters
-
- Returns
- array Processed constraints. Names as keys, value is array with possible keys:
- metadata - metadata value; keys: 0 = name of metadata, 1 = scalar/array allowed value(s) for metadata
- query - constraint to limit via query; keys: 0 = table alias, 1 = field, 2 = operator, 3 = scalar/array allowed value(s). Multiple for "=" operator only. Note that the metadata and query keys are assumed to be equivalent. Engines need only use one (depending on engine details).
◆ searchGeneral()
| searchGeneral |
( |
|
$searchQuery, |
|
|
array |
$constraints, |
|
|
|
$order, |
|
|
|
$maxResults |
|
) |
| |
Performs a general search. This will usually be across all types of content, but could be limited but only using standard constraints.
- Parameters
-
| string | $searchQuery | Text to search for |
| array | $constraints | Constraints to apply; handled by source handlers |
| string | $order | Ordering; handled by source handlers |
| integer | $maxResults | Maximum number of results to return |
- Returns
- array Search results: [] => array(content_type => x, content_id => y)
◆ searchType()
Performs a type specific search.
- Parameters
-
| XenForo_Search_DataHandler_Abstract | $typeHandler | Data handler for the type of search |
| string | $searchQuery | Text to search for |
| array | $constraints | Constraints to apply; handled by source handlers |
| string | $order | Ordering; handled by source handlers |
| boolean | $groupByDiscussion | If true, fold/group the results by the discussion_id value |
| integer | $maxResults | Maximum number of results to return |
- Returns
- array Search results: [] => array(content_type => x, content_id => y)
◆ setIsRebuild()
Sets whether this is a bulk rebuild. If true, behavior may be modified to be less asynchronous.
- Parameters
-
◆ setSearcher()
Sets the containing searcher object. This will be used for things like error tracking.
- Parameters
-
◆ supportsRelevance()
Determines if this source handler supports relevance searching. If false, it will not be made available as a sorting option.
- Returns
- boolean
◆ updateIndex()
| updateIndex |
( |
|
$contentType, |
|
|
|
$contentId, |
|
|
array |
$fieldUpdates |
|
) |
| |
|
abstract |
Updates specific fields in an already existing index record. Metadata cannot be updated this way.
- Parameters
-
| string | $contentType | |
| integer | $contentId | |
| array | $fieldUpdates | Key-value pairs to change |
◆ warning()
| warning |
( |
|
$message, |
|
|
|
$field |
|
) |
| |
Triggers a warning with the searcher object. This will be shown to the user on the search results page.
- Parameters
-
| XenForo_Phrase | string | $message | Warning message |
| string | $field | Field warning applies to |
The documentation for this class was generated from the following file:
- C:/Users/Michel/Desktop/test/xf/library/XenForo/Search/SourceHandler/Abstract.php


Physiotherapy is a recognized health care discipline that specializes in the assessment, treatment and maintenance of the human body’s movement and function.
Physiotherapists integrate the use of many therapeutic modalities with their expertise in exercise and movement rehabilitation to create the optimal plan to meet your therapeutic goals.
Mecura eClinic focuses on providing physiotherapeutic interventions and exercise programs to people of all ages presenting with any type of orthopaedic condition, which is any condition related to bone, muscle and joint problems.
On your initial visit, your physiotherapist will assess your specific condition. A detailed history of your injury will be taken and a full musculoskeletal examination will be performed. A clinical diagnosis will then be established to identify and appropriately treat your condition. Based on your assessment, individual goals will be created with you, and a specific physiotherapeutic treatment plan will be initiated.
Your rehabilitation will include one-on-one manual treatments by your therapist aimed at alleviating pain and increasing movement. Your therapist may also use various modalities to speed your recovery and decrease pain.
Your therapist will also prescribe a specific exercise program to improve your strength, flexibility or function as needed. This program will be closely monitored and progressed by your therapist.
Mecura eClinic, each program is customized to suit your individual needs with the goal of getting you back to normal activity independently and as soon as possible.
Should you require other services, such as massage therapy or custom orthotics assessments to further aid in your recovery.


Free Food at Princeton
30 Sep 2015Author: Felix Xiao '16
Predicting Free Food at Princeton
Princeton has a Free Food Listserv. Here’s a brunch of emails sent on it a while ago:
> data = read.csv(‘freefood.csv’)
> head(data)
date hour min subj
1 2013-11-20 16 55 [FreeFood] Olives at campus club!
2 2013-11-20 19 15 [FreeFood] Free Pizza in Lewis Library Lobby
3 2013-11-21 16 4 [FreeFood] FREE PiZZA in Frist by the TV lounge
4 2013-11-21 16 15 [FreeFood] Wine, Brownies, Miscellaneous Snacks in Schultz Lobby
5 2013-11-22 12 9 [FreeFood] Sandwiches in Frist 247
6 2013-11-23 17 56 [FreeFood] CHINESE FOOD IN CAMPUS CLUB
This data set lists the dates, times, and subject lines of all emails sent on the Free Food Listserv since November 20, 2013. It can be downloaded here.
In this blog post, I’ll be analyzing these emails with the statistical programming language, R. I’ve embedded my code in the analysis to show exactly how I’m doing that. Feel free to download my code and run it yourself.
Data science is about coming up with interesting, well-defined questions and manipulating data to find rigorous answers. For instance, how many emails are sent out on the Free Food Listserv per day, on average? The answer depends a lot on whether we include winter break, summer vacation, etc. Virtually no emails are sent out during breaks, so we can sensibly restrict our data set to the 2014-2015 academic year.
> school.days = seq(as.Date('2014-09-10'), as.Date('2014-10-24'), by = 1)
> school.days = c(school.days, seq(as.Date('2014-11-03'), as.Date('2014-11-25'), by = 1))
> school.days = c(school.days, seq(as.Date('2014-12-01'), as.Date('2014-12-12'), by = 1))
> school.days = c(school.days, seq(as.Date('2015-02-02'), as.Date('2015-03-14'), by = 1))
> school.days = c(school.days, seq(as.Date('2015-03-23'), as.Date('2015-05-03'), by = 1))
>
> data = data[data$date %in% school.days,]
Now we can answer our question by simply dividing the number of emails by the number of school days.
> nrow(data) / length(school.days)
[1] 2.441718
That’s not too bad. On the face of it, I could grab several snacks or even full meals per day by just checking my email religiously and running very fast. We should be cautious drawing this kind of conclusion however, since we only know the average. For all we know, half the days may see zero emails and the other half five. It’s important to look at the distribution of number of emails per day. For that, we need to coax our data set from a list of dates into a table denoting, for each school day, how many emails were sent out. Then we plot a histogram.
> # Create a table of 0s with length the number of school days
> count = rep(0, length(school.days))
> names(count) = school.days
>
> # On days emails were sent, fill in the rows of the table with the numbers of emails sent
> count[names(table(data$date))] = table(data$date)
>
> # Verify the mean is the same
> mean(count)
[1] 2.441718
> hist(count)
Roughly 2.4 emails were sent out on average, but by no means consistently. The histogram tells us that no emails were sent out about a third of the days. Someone looking to subsist on the Free Food listserv must either be resigned to an empty stomach on those days or stash food when 4 or more emails are sent out (approx. 15% of the time from the histogram). Incidentally, the distribution looks sort of geometric. On the tail end, there was one day that saw 11 emails on the listserv.
> feast.day = names(which.max(count))
> data[data$date == feast.day,]
659 2014-12-10 14 4 [FreeFood] Food Panel and Senegalese Food
660 2014-12-10 15 11 [FreeFood] 2 boxes of pizza + 1 bottle of pepsi
661 2014-12-10 15 13 [FreeFood]
662 2014-12-10 15 38 [FreeFood] Boom chicka pop, Chips & salsa in pace center
663 2014-12-10 16 45 [FreeFood] Free Mehek!! Robertson basement
664 2014-12-10 17 19 [FreeFood] Senegalese food at Carl a fields center
665 2014-12-10 17 20 [FreeFood] Senegalese food
666 2014-12-10 17 42 [FreeFood] Reception leftovers in art museum lobby
667 2014-12-10 18 54 [FreeFood] COFFEE, CANDY, COOKIES, CHIPS
668 2014-12-10 19 41 [FreeFood] Chinese in Whitman Common Room
669 2014-12-10 19 51 [FreeFood] Cake on top of recycle bin on third floor of clapp
670 2014-12-10 20 35 [FreeFood] Egg Nog, Cookies, Chips, Apple Cider, Pumpkin Pie, Candy Canes!
That glorious day was Dec 10, 2014, a Wednesday. Perhaps more emails are sent out on certain days of the week? Let’s plot the mean number of emails for each day of the week.
> # split data frame to list of data frames by day of week
> day.of.week = split(data, weekdays(data$date))
>
> # order list Sunday, Monday, ... Saturday
> dow = c('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday')
> day.of.week = day.of.week[dow]
>
> # create table for number of emails sent and total number of days
> emails = sapply(day.of.week, nrow)
> days = table(weekdays(school.days))
> days = days[dow]
>
> barplot(emails / days, main = 'Avg # emails each day of week')
To see whether these differences in average emails are significant or are just noise, we need to draw some confidence intervals. We’ll start by making some assumptions:
- For each day of the week D, the numbers of emails:
sent on that day all follow the same probability distribution with mean μD and standard deviation σD.
- The number of emails sent on any day does not depend on the numbers of emails sent on any past days.
Taken together, these are the independent(2) and identically distributed (1) assumptions on data that ~ 90% of statistical techniques rely on. This page gives another succinct explanation of independent, identically distributed random variables.
The central limit theorem says that, as nD increases the quantity,
(which is the average of the data values) gets closer and closer to a Gaussian distribution with mean μD and standard deviation,
This just means that the average number of emails sent on Fridays differs from the “real” average by something around:
If nD increases and we have more Fridays from which to collect listserv data, then the difference will shrink. This is why more data leads to better estimates. For an (approximately) Gaussian distribution,
will be within,
units about 68% of the time. So if we draw on our graph brackets centered on,
with radius,
we’ve just constructed a ~68% confidence interval.
Aside: we actually don’t know what,
is but we can approximate it with:
and the resulting estimate of
is called the standard error of the mean. Why this approximation?
Because
is defined as
by the law of large numbers,
converges to:
Now we’re ready to add error bars to the plot.
> # create a function to compute standard error for a
> # set of emails sent on a particular day
> compute.se = function(df)
> {
> dow = unique(weekdays(df$date))
> stopifnot(length(dow) == 1)
>
> days = school.days[weekdays(school.days) == dow]
> n = length(days)
>
> count = rep(0, length(days))
> names(count) = days
> count[names(table(df$date))] = table(df$date)
>
> return( sd(count) / sqrt(n) )
> }
>
> se = sapply(day.of.week, compute.se)
>
> # barplot( ) returns horizontal position of the days
> x = barplot(emails / days, main = 'Avg # emails each day of week', ylim = c(0, 5))
> arrows(x, emails / days + se, x, emails / days - se, angle = 90, code = 3, length = 0.1)
Since Friday’s 68% confidence interval doesn’t overlap with that of any other day of the week, we can safely say emails are sent out more frequently on Fridays. On the other hand the Sunday, Wednesday, Thursday, Saturday intervals overlap by a lot, so the corresponding population means are likely not that different.
What about time of day?
> hist(data$hour, breaks = seq(-0.5, 23.5, 1), xlab = 'Hour of day', freq = F,
> main = 'Free food emails by hour of day', ylab = 'Proportion of emails', xaxt = 'n')
> axis(side = 1, at = seq(-0.5, 23.5, length.out = 9),
> labels = c('12am', '3am', '6am', '9am', '12pm', '3pm', '6pm', '9pm', '12am'))
The distribution is somewhat bimodal; there’s a small cluster scattered around noon and a larger cluster scattered around 6pm. Not many to expect from 11pm to 10am, which makes sense. I was curious about that one email sent out at 3 in the morning, so I checked:
> data[data$hour == 3,]
date hour min subj
752 2015-02-15 3 17 [FreeFood] wallet at terrace
It turns out a small fraction of the emails sent to the listserv are unrelated to food. Not enough to justify the trouble of filtering out all the non-food related ones, but it’s just something to keep in mind.
Now let’s see what people are putting on the subject lines. I’m going to do the simple task of collecting all words from all email subject lines and looking at which words ones come up most often (I also did some preprocessing so words like “Pizza” and “PIZZA” and “PiZZa!” are treated as the same). The function subject.line.words does this
subject.line.words = function(data)
{
words = unlist(lapply(data$subj, function(subj) strsplit(subj, ' '))) # split subject line into individual words
words = words[words != '[FreeFood]']
words = tolower(words) # make all words lowercase
words = sapply(words, function(word) gsub("[[:punct:]]", "", word)) # delete any punctuation marks
words.freq = table(words)
return(sort(words.freq, decreasing = T))
}
Let’s look at all the emails first. The 30 most common subject line words are:
> subject.line.words(data)[1:30]
> words
in 156
and 103
64
food 64
frist 59
pizza 58
free 54
cookies 44
sandwiches 44
of 41
the 31
at 26
salad 26
room 25
center 23
chips 22
dodge 20
from 20
murray 20
club 18
campus 17
friend 17
lounge 17
olives 17
chicken 14
floor 14
outside 14
basement 13
chinese 13
common 13
The subject lines are quite informative about (1) location of free food and (2) the type of food. Looking at the table above, we see that Frist is a popular venue (59 emails), along with Murray-Dodge (20), Friend Center (17), and Campus Club (17). We also note that Pizza (58) is the most-supplied food item, followed by cookies (44) and sandwiches (44).
We can take this in a number of directions. We can find out which foods are closely associated with what locations. We can see if the time of day the email was sent has any effect on subject line content. A fast way of answering the latter question is to simply filter for emails sent during a certain period in the day and call subject.line.words. We do that with emails sent before 3pm:
> subject.line.words(data[data$hour < 15,])[1:30]
words
in 49
and 38
27
sandwiches 24
food 18
free 17
frist 15
at 14
salad 14
cookies 13
of 12
the 12
center 10
friend 10
pizza 10
bagels 8
lounge 8
mcgraw 8
rainbow 8
campus 6
chicken 6
club 6
coffee 6
chocolate 5
from 5
lgbt 5
room 5
tonight 5
wraps 5
bread 4
And emails sent after 3pm:
> subject.line.words(data[data$hour >= 15,])[1:30]
words
in 107
and 65
pizza 48
food 46
frist 44
37
free 37
cookies 31
of 29
room 20
sandwiches 20
chips 19
the 19
dodge 17
murray 17
from 15
olives 15
floor 14
center 13
at 12
basement 12
club 12
common 12
salad 12
campus 11
chinese 11
outside 11
indian 10
lounge 9
cheese 8
This quickly shows that there is a relationship between time of day and subject line content. Namely, that sandwiches are more prevalent during lunch hours and pizza during dinner hours. We can also see that Friend Center is pretty common location before 3pm, but hardly used at all after 3pm.
Let’s do something more sophisticated and frame the same question as a regression problem. We are looking for a math function whose input will be the words in the subject line of an email and whose output will be the best guess for the hour of day the email was sent. For reasons of model flexibility, high dimensionality, and interpretability, we’re going to model the regression function as a classic regression tree. If you haven’t heard of a regression tree before, please read this page before reading the next section.
To train the regression tree, the matrix of input variables X must be in this form: each row i is an individual email and each column j is a word. The matrix entry,
will be 1 if word j is in the subject line of email i, and 0 otherwise. X will have number of columns equal to how many unique words are in all the email subjects. In natural language processing, X is called a term document matrix.
> library(tm)
> subject.lines = gsub('[[:punct:]]', ' ', data$subj)
> subject.lines = gsub('FreeFood', '', subject.lines)
> corpus = VCorpus(VectorSource(subject.lines))
> tdm = TermDocumentMatrix(corpus)
> tdm = as.data.frame(t(as.matrix(tdm)))
In our case, as typically, the term document matrix is sparse (most entries are 0) and high-dimensional (more variables than observations, or more columns than rows). Now we train our regression tree with the package rpart.
> library(rpart)
> tdm$y = data$hour + data$min / 60
> tree = rpart(y ~ ., data = tdm)
> par(xpd = NA)
> plot(tree)
> text(tree)
In the regression tree above, each fork has a conditional. For instance, bagels >= 0.5 means that the word “bagels” was in the email subject line. If the conditional is true, then you move to the left child node; if false, move to the right one. This step repeats until you reach a terminal node, upon which the predicted time in hours after midnight is given.
“Bagels” turns out to be the single best predictor of time of all the words, predicting 11:24am if present. If “bagels” is not in the subject line, then “sandwiches” is the next best predictor, predicting 2:26pm. If neither “sandwiches” nor “bagels” are in the subject line, then emails having “friend” in the subject line tend to be sent in the early afternoon (1:56pm). Emails with subjects lacking “bagels”, “sandwiches”, and “friend” are all sent later in the afternoon and in the evening.
Our last item to investigate is assocations between words in the free food email subjects lines. Given any two words, say “Sushi” and “Frist” we want to know how often they tend to appear together in an email subject. We want to create an association matrix A. A will be symmetric and each row and column will be assigned a word. For each row i and column j in the matrix, the entry
We restrict our scope of words to those that appeared in at least 6 emails. After we have our assocation matrix A (which maps 63 words) we visualize it as a network graph. Nodes are words and edges between words indicate an A entry of at least 0.15 (thicker edges indicate greater assocation).
> m = as.matrix(tdm[,-ncol(tdm)]) > 0
> colsums = apply(m, 2, sum)
> m = m[, colsums >= 6]
>
> X = t(m) %*% m
> Y = t(!m) %*% m
> A = X / (X + Y + t(Y))
>
> library(qgraph)
> qgraph(A, minimum = 0.15, border.color = 'Gray', labels = colnames(S), label.scale = F, label.cex = 0.8)
Some interesting ones I found by eyeballing this graph:
- panera – lewis
- rice – chicken
- rainbow – lounge (where is that?)
- indian – food – murray – dodge
- tea – cupcakes
Acknowledgements: Evan Chow ‘16, for providing both the data set and the initial idea for its analysis. This blog post would not exist without your abiding enthusiasm for free food.


All Movie
Search By Title
Search By Id
Search By Title & Year
Search
Search
Search
Search Movie
Movie is not in records
Release Date :
Duration :
Type :
Casting
Actors:
Directors:
Writers:
Year:
Imdb Details
Imdb Id:
Rating:
Voting:
MetaScore:
More
Collection:
Language:
Awards:
Country:


This app was created as a demo for the SeCloud project. It performs classification of sinks and sources in provided JavaScript APIs through an SVM classifier.


{include file="./templates/style/header.html"}
{$v.abstract}
{$v.keywords}
{$v.keywords}
Feel free to call us on
0<PHONE_NUMBER>
Monday - Friday, 8am - 7pm
Drop us a line anytime at
<EMAIL_ADDRESS>and we’ll get back soon.
Come visit us at
Stock Building, New York,
NY 93459


List of Indian community business around you to solve your problems with great service
Do you know any business or do you have a business you want to share with the community? Please register with us.
Register