San Jose and Sunnyvale are among the safest cities in the United States and Richmond and Oakland are among the most dangerous.
UW – School of CS got $25M
The University of Waterloo received a huge “Google dividend” yesterday when David Cheriton, one of the search engine giant’s early investors, donated $25-million to the school’s well-respected computer science department. Mr. Cheriton estimates the return on his US$200,000 investment in Google at about 5,000%. CS School renamed to David R. Cheriton School of Computer Science. It’s really exicting to see and imagine all potential opportunities UW can do with this donation. As an UW/CS alumni, I thank you, Mr. Cheriton!
Linear Regression PHP Class
This PHP 5 class accepts an array of data as input, performs linear regression analysis and returns the trend line. The result is the same as in Excel (Tools/Data Analysis/Regression)
/** compute the coeff, equation source: http://people.hofstra.edu/faculty/Stefan_Waner/RealWorld/calctopic1/regression.html */
function calculate() {
$n = count($this->mDatas);
$vSumXX = $vSumXY = $vSumX = $vSumY = 0;
//var_dump($this->mDatas);
$vCnt = 0; // for time-series, start at t=0
foreach ($this->mDatas AS $vOne) {
if (is_array($vOne)) { // x,y pair
list($x,$y) = $vOne;
} else { // time-series
$x = $vCnt; $y = $vOne;
} // fi
$vSumXY += $x*$y;
$vSumXX += $x*$x;
$vSumX += $x;
$vSumY += $y;
$vCnt++;
} // rof
$vTop = ($n*$vSumXY – $vSumX*$vSumY);
$vBottom = ($n*$vSumXX – $vSumX*$vSumX);
$a = $vBottom!=0?$vTop/$vBottom:0;
$b = ($vSumY – $a*$vSumX)/$n;
//var_dump($a,$b);
return array($a,$b);
}
/** given x, return the prediction y */
function predict($x) {
list($a,$b) = $this->calculate();
$y = $a*$x+$b;
return $y;
}
}
?>
Sample Usage
// sales data for the last 30 quarters
$vSales = array(
637381,700986,641305,660285,604474,565316,598734,688690,723406,697358,
669910,605636,526655,555165,625800,579405,588317,634433,628443,570597,
662584,763516,742150,703209,669883,586504,489240,648875,692212,586509
);
$vRegression = new CRegressionLinear($vSales);
$vNextQuarter = $vRegression->predict(); // return the forecast for next period
In this example, we assume it’s a very simple case. For a better forecasting method, there are many, including this multiplicative forecasting method that takes into account seasonality, irregularity and also the growth trend.
Referrer & AJAX
Firefox does not pass referrer string while IE does.
RSLite – A cookie-based AJAX solution
This is another solution written by Brent Ashley for asynchronous information fetching, way before the term AJAX were coined
map – Google Search
If you search for “map” or “maps” on Google, the first result is not maps.google.com but MapQuest. This surprised me!
TV: PRISON BREAK
FOX Broadcasting Company: PRISON BREAK
With too many pathetic reality TV shows these years. One of the best TV show I’ve ever seen. It’s an excellent show. Very original and high level of suspense.
Make your files immutable in Linux which even root can’t delete
Root account in Linux is considered all powerful. You can make or break the system if you have root access to a Linux box. Here is a cool tip to make your files immutable even by root.
Math and the Computer Science Major
Computer science majors tend to struggle for reasons that have very little to do with computers. More often than not, such struggles are rooted in weaknesses related to math. If you plan on getting a CS degree, you need to come to grips with one important fact first: computer science has more to do with math than computers.