Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Site updated at 2013-03-27 16:35:39 UTC

  • Loading branch information...
commit 4f4e5e6b189a921c6d38f2ef764fd100c1e14492 1 parent 7590769
@yangchenyun authored
View
4 2011/08/tedxyouth-wesklake-speech/index.html
@@ -73,12 +73,12 @@ <h2 id="what-holds-us-back-from-changes">What Holds Us Back from Changes</h2>
<h3>Recent Posts</h3>
<ul class="posts small">
+ <li><span>24 Mar 2013</span> &raquo; <a href="/2013/03/how-i-finished-the-dbclass-from-stanford-with-full-score/">How I Finished the DBClass from Stanford with Full Score</a></li>
+
<li><span>03 Jan 2013</span> &raquo; <a href="/2013/01/annual-review-2012/">Annual Review for 2012</a></li>
<li><span>02 Sep 2012</span> &raquo; <a href="/2012/09/ack-a-better-way-to-search-in-files/">Ack - a better way to search in files</a></li>
- <li><span>17 Feb 2012</span> &raquo; <a href="/2012/02/measure-network-performance/">How to Measure and Monitor Network Performance</a></li>
-
</ul>
</div>
</nav>
View
4 2011/12/annual-review/index.html
@@ -182,12 +182,12 @@ <h4 id="physical-training-and-health">Physical Training and Health</h4>
<h3>Recent Posts</h3>
<ul class="posts small">
+ <li><span>24 Mar 2013</span> &raquo; <a href="/2013/03/how-i-finished-the-dbclass-from-stanford-with-full-score/">How I Finished the DBClass from Stanford with Full Score</a></li>
+
<li><span>03 Jan 2013</span> &raquo; <a href="/2013/01/annual-review-2012/">Annual Review for 2012</a></li>
<li><span>02 Sep 2012</span> &raquo; <a href="/2012/09/ack-a-better-way-to-search-in-files/">Ack - a better way to search in files</a></li>
- <li><span>17 Feb 2012</span> &raquo; <a href="/2012/02/measure-network-performance/">How to Measure and Monitor Network Performance</a></li>
-
</ul>
</div>
</nav>
View
4 2011/12/lesson-learned/index.html
@@ -169,12 +169,12 @@ <h2 id="lesson-5-identify-the-opportunity">Lesson 5: Identify the “Opportunity
<h3>Recent Posts</h3>
<ul class="posts small">
+ <li><span>24 Mar 2013</span> &raquo; <a href="/2013/03/how-i-finished-the-dbclass-from-stanford-with-full-score/">How I Finished the DBClass from Stanford with Full Score</a></li>
+
<li><span>03 Jan 2013</span> &raquo; <a href="/2013/01/annual-review-2012/">Annual Review for 2012</a></li>
<li><span>02 Sep 2012</span> &raquo; <a href="/2012/09/ack-a-better-way-to-search-in-files/">Ack - a better way to search in files</a></li>
- <li><span>17 Feb 2012</span> &raquo; <a href="/2012/02/measure-network-performance/">How to Measure and Monitor Network Performance</a></li>
-
</ul>
</div>
</nav>
View
4 2012/02/measure-network-performance/index.html
@@ -279,12 +279,12 @@ <h2 id="monitor-detailed-network-traffic-with-ntop">Monitor Detailed Network Tra
<h3>Recent Posts</h3>
<ul class="posts small">
+ <li><span>24 Mar 2013</span> &raquo; <a href="/2013/03/how-i-finished-the-dbclass-from-stanford-with-full-score/">How I Finished the DBClass from Stanford with Full Score</a></li>
+
<li><span>03 Jan 2013</span> &raquo; <a href="/2013/01/annual-review-2012/">Annual Review for 2012</a></li>
<li><span>02 Sep 2012</span> &raquo; <a href="/2012/09/ack-a-better-way-to-search-in-files/">Ack - a better way to search in files</a></li>
- <li><span>16 Feb 2012</span> &raquo; <a href="/2012/02/plans-for-2012/">Annual Plan 2012 - One Step Further</a></li>
-
</ul>
</div>
</nav>
View
4 2012/02/plans-for-2012/index.html
@@ -105,12 +105,12 @@ <h3 id="misc">Misc</h3>
<h3>Recent Posts</h3>
<ul class="posts small">
+ <li><span>24 Mar 2013</span> &raquo; <a href="/2013/03/how-i-finished-the-dbclass-from-stanford-with-full-score/">How I Finished the DBClass from Stanford with Full Score</a></li>
+
<li><span>03 Jan 2013</span> &raquo; <a href="/2013/01/annual-review-2012/">Annual Review for 2012</a></li>
<li><span>02 Sep 2012</span> &raquo; <a href="/2012/09/ack-a-better-way-to-search-in-files/">Ack - a better way to search in files</a></li>
- <li><span>17 Feb 2012</span> &raquo; <a href="/2012/02/measure-network-performance/">How to Measure and Monitor Network Performance</a></li>
-
</ul>
</div>
</nav>
View
4 2012/09/ack-a-better-way-to-search-in-files/index.html
@@ -170,12 +170,12 @@ <h2 id="more-magic-and-conclusion">More Magic and Conclusion</h2>
<h3>Recent Posts</h3>
<ul class="posts small">
+ <li><span>24 Mar 2013</span> &raquo; <a href="/2013/03/how-i-finished-the-dbclass-from-stanford-with-full-score/">How I Finished the DBClass from Stanford with Full Score</a></li>
+
<li><span>03 Jan 2013</span> &raquo; <a href="/2013/01/annual-review-2012/">Annual Review for 2012</a></li>
<li><span>17 Feb 2012</span> &raquo; <a href="/2012/02/measure-network-performance/">How to Measure and Monitor Network Performance</a></li>
- <li><span>16 Feb 2012</span> &raquo; <a href="/2012/02/plans-for-2012/">Annual Plan 2012 - One Step Further</a></li>
-
</ul>
</div>
</nav>
View
4 2013/01/annual-review-2012/index.html
@@ -202,12 +202,12 @@ <h2 id="footnote">Footnote</h2>
<h3>Recent Posts</h3>
<ul class="posts small">
+ <li><span>24 Mar 2013</span> &raquo; <a href="/2013/03/how-i-finished-the-dbclass-from-stanford-with-full-score/">How I Finished the DBClass from Stanford with Full Score</a></li>
+
<li><span>02 Sep 2012</span> &raquo; <a href="/2012/09/ack-a-better-way-to-search-in-files/">Ack - a better way to search in files</a></li>
<li><span>17 Feb 2012</span> &raquo; <a href="/2012/02/measure-network-performance/">How to Measure and Monitor Network Performance</a></li>
- <li><span>16 Feb 2012</span> &raquo; <a href="/2012/02/plans-for-2012/">Annual Plan 2012 - One Step Further</a></li>
-
</ul>
</div>
</nav>
View
166 2013/03/how-i-finished-the-dbclass-from-stanford-with-full-score/index.html
@@ -0,0 +1,166 @@
+<!DOCTYPE html>
+<html xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:g="urn:g">
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
+ <meta name="keywords" content="">
+ <meta name="description" content="Blog about hackings and development | How I Finished the DBClass from Stanford with Full Score">
+ <title>How I Finished the DBClass from Stanford with Full Score | 杨晨昀 Steven Yang</title>
+ <link rel="stylesheet" href="/stylesheets/screen.css">
+ <!--[if lt IE 9]>
+ <script src="/javascripts/html5.js"></script>
+ <![endif]-->
+</head>
+
+<body>
+ <div class="wrap">
+ <div id="sidebar" class="side group clear">
+ <header>
+ <a href="/">Steven Yang</a>
+ </header>
+ <nav>
+ <ul>
+ <li><a href="/about/">About</a></li>
+ <li><a href="/contact/">Contact</a></li>
+ </ul>
+
+<!-- AddThis Button BEGIN -->
+<div class="addthis_toolbox addthis_default_style ">
+ <div>
+ <a class="addthis_button_facebook_like" fb:like:width="46px"></a>
+ <a class='addthis_button_google_plusone' g:plusone:size='small' g:plusone:annotation='none'></a>
+ <br class="clear">
+ </div>
+ <div>
+ <a class="addthis_button_douban"></a>
+ <a class="addthis_button_sinaweibo"></a>
+ <a class="addthis_button_twitter"></a>
+ <br class="clear">
+ </div>
+</div>
+<!-- AddThis Button END -->
+
+
+ </div>
+ <div class="content">
+ <article class="post">
+ <header id="post-title">
+ <h1>How I Finished the DBClass from Stanford with Full Score</h1>
+ </header>
+ <div id="post-stats">
+ <p>Posted on March 24, 2013</p>
+ </div>
+ <div id="post-content">
+ <ul id="markdown-toc">
+ <li><a href="#the-summary-of-material">The Summary of Material</a></li>
+ <li><a href="#how-i-approach-the-course-differently">How I Approach the Course Differently</a> <ul>
+ <li><a href="#more-reading-and-practice">More Reading and Practice</a></li>
+ <li><a href="#tune-the-tools">Tune the Tools</a></li>
+ </ul>
+ </li>
+ <li><a href="#whats-next">What’s next?</a></li>
+</ul>
+
+<p>For the past ten weeks, I’ve been working the <a href="https://class2go.stanford.edu/db/Winter2013">DBClass</a> offered by Standord. With 40 hours’ study I achieved full score on all exercises and both exams. </p>
+
+<p>In this course, I’ve acquired a solid knowledge about the algebra used behind the SQL language, learned advanced usage of database system and also get to know the basics to work with XML.</p>
+
+<h2 id="the-summary-of-material">The Summary of Material</h2>
+
+<p>You might checkout <a href="https://github.com/yangchenyun/dbclass-exercises">all the exercise code</a> I’ve written for the course and some mindmaps I summarized for the reviews: <a href="/images/assertions-triggers.png">assertions and triggers</a>, <a href="/images/constrains.png">constrains</a>, <a href="/images/transactions.png">transactions</a>, <a href="/images/xml-query.png">XML</a>.</p>
+
+<p>Besides following the class instruction, I added some materials for learning and set up a more convenient development environment. The great learning experience is certainly brought by these improvements which I would like to share.</p>
+
+<h2 id="how-i-approach-the-course-differently">How I Approach the Course Differently</h2>
+<p>I have approached the course differently in three aspects:</p>
+
+<ul>
+ <li>I read all related chapters in text book.</li>
+ <li>I studied and wrote real-world examples.</li>
+ <li>I made deliberate effort to setup development environment to ease practice and test.</li>
+</ul>
+
+<h3 id="more-reading-and-practice">More Reading and Practice</h3>
+<p>I followed the text book <a href="http://www.amazon.com/Database-Systems-Complete-Edition-ebook/dp/B004XJIVIC/ref=sr_1_2">The Database System - The Complete Book</a> along the course schedule. This is the text book used in former Stanford database courses and it is what the course’s material origined. I read related chapters in the text book after watching the videos. Reading would reveal some points I’ve missed in the video and help build up a systemetic view over the topic.</p>
+
+<p>As I work as a programmer, I applied the knowledge I learned in this course directly to several relational database based projects. </p>
+
+<p>I wrote a lot of <a href="https://gist.github.com/yangchenyun/5254141">raw SQLs</a> to fetch analytic data against our production database, it helped me to understand subqueries, natural joins and aggregations in the real world. </p>
+
+<p>I substituted the backend with <code>sqlite</code> for <a href="https://github.com/yangchenyun/ask/compare/cf510240b0f6f1b52d69426c4ba38227c0de2efc...master">one command line tool</a> I was building at local hackthon.</p>
+
+<p>To understand the advanced usage of triggers and constrains, I also read the source code of <a href="https://github.com/SquareSquash/web/blob/master/db/migrate/1_initial_schema.rb">squash</a>, an open source tool we use internally for bug tracking.</p>
+
+<h3 id="tune-the-tools">Tune the Tools</h3>
+
+<p>Another improvment I made is the development environment. I wanted to make it as easy and quick as possible to test out codes. This is the principal rule I’ve learned from former programming experience. Thus I made some deliberate effort to tune up the development environment.</p>
+
+<p>As my major editor is <code>vim</code>, I use the database plugin <a href="http://www.vim.org/scripts/script.php?script_id=356"><code>dbext</code></a> to play with SQL. <code>dbext</code> enables me to execute SQLs and get the result back in my editor. Instead of editing the SQL, doing copy-and-paste, printing the result out, I could write, run, edit, run, cleanup, run with one simple key binding. This convenience was very helpful when solving complex problems. I could start with some instinct ideas and tested them out right away and improved based on the result I got back. This fast cycle of feedback s helped to evolve one idea to one correct solution.</p>
+
+<p><img src="/images/dbext-img.png" alt="dbext image" /></p>
+
+<p>Later, when I was working with XQuery, I missed the convenience I got from <code>dbext</code>. So I decided to implement it myself. Together with some <a href="https://github.com/yangchenyun/dbclass-exercises/tree/master/utils/bin">bash script</a> and a <a href="https://github.com/yangchenyun/dbclass-exercises/blob/master/utils/xquery-helper.vim">vim function</a>, I built the same experience for XQuery editing. One key binding would fire the XQuery expression against the xml file and return the result right in the editor.</p>
+
+<p><img src="/images/xquery-img.png" alt="xquery image" /></p>
+
+<p>There is also simple <a href="https://github.com/yangchenyun/dbclass-exercises/tree/master/utils/bin">bash script</a> to make working with relational algebra compiler <code>ra</code> and xslt compiler easier.</p>
+
+<h2 id="whats-next">What’s next?</h2>
+<p>The <a href="https://class2go.stanford.edu/db/Winter2013/pages/extra-problems">extra problems</a> included in the DBClass is well designed and is aimed to test more practical skills. I will finish them within this week.</p>
+
+<p>DBclass has covered a wide range of topics in such a short period, but it also omits some concepts such as schemes, procedures, functions which are also widely used in modern databases. I will refer to the book and database system documentations to fill the gap.</p>
+
+<p>Thanks for all the class2go team and Professor Jennifer Widom to carry out such an excellent course.</p>
+
+
+ </div>
+</article>
+<nav id="related">
+ <div class="related_left">
+ <h3>Recent Posts</h3>
+ <ul class="posts small">
+
+ <li><span>03 Jan 2013</span> &raquo; <a href="/2013/01/annual-review-2012/">Annual Review for 2012</a></li>
+
+ <li><span>02 Sep 2012</span> &raquo; <a href="/2012/09/ack-a-better-way-to-search-in-files/">Ack - a better way to search in files</a></li>
+
+ <li><span>17 Feb 2012</span> &raquo; <a href="/2012/02/measure-network-performance/">How to Measure and Monitor Network Performance</a></li>
+
+ </ul>
+ </div>
+</nav>
+<div id="disqus_thread"></div>
+<script type="text/javascript">
+ /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
+ var disqus_shortname = 'yangchenyunblog'; // required: replace example with your forum shortname
+
+ /* * * DON'T EDIT BELOW THIS LINE * * */
+ (function() {
+ var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
+ dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
+ (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
+ })();
+</script>
+<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
+
+
+ </div>
+ <br class="clear">
+ <footer>
+ <p>Powered by <a title="Don't worry, it's not the morally ambivalent doctor." href="http://github.com/mojombo/jekyll">Jekyll</a>.<span class="copyright">copyright 2011-2012&copy; <a href="//github.com/yangchenyun">Steven Yang</a></span></p>
+ <!-- <p>Also find me on <a href="http://stackoverflow.com/users/966437/steven-yang">stackoverflow</a> and <a href="http://delicious.com/chenyunyang">delicious</a>.</p> -->
+ </footer>
+ </div>
+</body>
+
+<!-- Add this script -->
+<script type="text/javascript" src="http://s7.addthis.com/js/300/addthis_widget.js#pubid=ra-4f01c8a46f097959"></script>
+<!-- Google Analytics Improved Version -->
+<script>var _gaq=[['_setAccount','UA-27986795-1'],['_trackPageview']];(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.src='//www.google-analytics.com/ga.js';s.parentNode.insertBefore(g,s)}(document,'script'))
+</script>
+ <!-- Prompt IE 6 users to install Chrome Frame. Remove this if you want to support IE 6.
+ chromium.org/developers/how-tos/chrome-frame-getting-started -->
+ <!--[if lt IE 7 ]>
+ <script defer src="//ajax.googleapis.com/ajax/libs/chrome-frame/1.0.3/CFInstall.min.js"></script>
+ <script defer>window.attachEvent('onload',function(){CFInstall.check({mode:'overlay'})})</script>
+ <![endif]-->
+</html>
View
71 atom.xml
@@ -4,7 +4,7 @@
<title><![CDATA[Steven Yang's Blog | 杨晨昀]]></title>
<link href="http://blog.yangchenyun.com/atom.xml" rel="self"/>
<link href="http://blog.yangchenyun.com/"/>
- <updated>2013-03-13T03:06:57+08:00</updated>
+ <updated>2013-03-28T00:35:38+08:00</updated>
<id>http://blog.yangchenyun.com/</id>
<author>
<name><![CDATA[Steven Yang]]></name>
@@ -14,6 +14,75 @@
<entry>
+ <title type="html"><![CDATA[How I Finished the DBClass from Stanford with Full Score]]></title>
+ <link href="http://blog.yangchenyun.com/2013/03/how-i-finished-the-dbclass-from-stanford-with-full-score/"/>
+ <updated>2013-03-24T20:44:00+08:00</updated>
+ <id>http://blog.yangchenyun.com/2013/03/how-i-finished-the-dbclass-from-stanford-with-full-score</id>
+ <content type="html"><![CDATA[<ul id="markdown-toc">
+ <li><a href="#the-summary-of-material">The Summary of Material</a></li>
+ <li><a href="#how-i-approach-the-course-differently">How I Approach the Course Differently</a> <ul>
+ <li><a href="#more-reading-and-practice">More Reading and Practice</a></li>
+ <li><a href="#tune-the-tools">Tune the Tools</a></li>
+ </ul>
+ </li>
+ <li><a href="#whats-next">What’s next?</a></li>
+</ul>
+
+<p>For the past ten weeks, I’ve been working the <a href="https://class2go.stanford.edu/db/Winter2013">DBClass</a> offered by Standord. With 40 hours’ study I achieved full score on all exercises and both exams. </p>
+
+<p>In this course, I’ve acquired a solid knowledge about the algebra used behind the SQL language, learned advanced usage of database system and also get to know the basics to work with XML.</p>
+
+<h2 id="the-summary-of-material">The Summary of Material</h2>
+
+<p>You might checkout <a href="https://github.com/yangchenyun/dbclass-exercises">all the exercise code</a> I’ve written for the course and some mindmaps I summarized for the reviews: <a href="http://blog.yangchenyun.com/images/assertions-triggers.png">assertions and triggers</a>, <a href="http://blog.yangchenyun.com/images/constrains.png">constrains</a>, <a href="http://blog.yangchenyun.com/images/transactions.png">transactions</a>, <a href="http://blog.yangchenyun.com/images/xml-query.png">XML</a>.</p>
+
+<p>Besides following the class instruction, I added some materials for learning and set up a more convenient development environment. The great learning experience is certainly brought by these improvements which I would like to share.</p>
+
+<h2 id="how-i-approach-the-course-differently">How I Approach the Course Differently</h2>
+<p>I have approached the course differently in three aspects:</p>
+
+<ul>
+ <li>I read all related chapters in text book.</li>
+ <li>I studied and wrote real-world examples.</li>
+ <li>I made deliberate effort to setup development environment to ease practice and test.</li>
+</ul>
+
+<h3 id="more-reading-and-practice">More Reading and Practice</h3>
+<p>I followed the text book <a href="http://www.amazon.com/Database-Systems-Complete-Edition-ebook/dp/B004XJIVIC/ref=sr_1_2">The Database System - The Complete Book</a> along the course schedule. This is the text book used in former Stanford database courses and it is what the course’s material origined. I read related chapters in the text book after watching the videos. Reading would reveal some points I’ve missed in the video and help build up a systemetic view over the topic.</p>
+
+<p>As I work as a programmer, I applied the knowledge I learned in this course directly to several relational database based projects. </p>
+
+<p>I wrote a lot of <a href="https://gist.github.com/yangchenyun/5254141">raw SQLs</a> to fetch analytic data against our production database, it helped me to understand subqueries, natural joins and aggregations in the real world. </p>
+
+<p>I substituted the backend with <code>sqlite</code> for <a href="https://github.com/yangchenyun/ask/compare/cf510240b0f6f1b52d69426c4ba38227c0de2efc...master">one command line tool</a> I was building at local hackthon.</p>
+
+<p>To understand the advanced usage of triggers and constrains, I also read the source code of <a href="https://github.com/SquareSquash/web/blob/master/db/migrate/1_initial_schema.rb">squash</a>, an open source tool we use internally for bug tracking.</p>
+
+<h3 id="tune-the-tools">Tune the Tools</h3>
+
+<p>Another improvment I made is the development environment. I wanted to make it as easy and quick as possible to test out codes. This is the principal rule I’ve learned from former programming experience. Thus I made some deliberate effort to tune up the development environment.</p>
+
+<p>As my major editor is <code>vim</code>, I use the database plugin <a href="http://www.vim.org/scripts/script.php?script_id=356"><code>dbext</code></a> to play with SQL. <code>dbext</code> enables me to execute SQLs and get the result back in my editor. Instead of editing the SQL, doing copy-and-paste, printing the result out, I could write, run, edit, run, cleanup, run with one simple key binding. This convenience was very helpful when solving complex problems. I could start with some instinct ideas and tested them out right away and improved based on the result I got back. This fast cycle of feedback s helped to evolve one idea to one correct solution.</p>
+
+<p><img src="http://blog.yangchenyun.com/images/dbext-img.png" alt="dbext image" /></p>
+
+<p>Later, when I was working with XQuery, I missed the convenience I got from <code>dbext</code>. So I decided to implement it myself. Together with some <a href="https://github.com/yangchenyun/dbclass-exercises/tree/master/utils/bin">bash script</a> and a <a href="https://github.com/yangchenyun/dbclass-exercises/blob/master/utils/xquery-helper.vim">vim function</a>, I built the same experience for XQuery editing. One key binding would fire the XQuery expression against the xml file and return the result right in the editor.</p>
+
+<p><img src="http://blog.yangchenyun.com/images/xquery-img.png" alt="xquery image" /></p>
+
+<p>There is also simple <a href="https://github.com/yangchenyun/dbclass-exercises/tree/master/utils/bin">bash script</a> to make working with relational algebra compiler <code>ra</code> and xslt compiler easier.</p>
+
+<h2 id="whats-next">What’s next?</h2>
+<p>The <a href="https://class2go.stanford.edu/db/Winter2013/pages/extra-problems">extra problems</a> included in the DBClass is well designed and is aimed to test more practical skills. I will finish them within this week.</p>
+
+<p>DBclass has covered a wide range of topics in such a short period, but it also omits some concepts such as schemes, procedures, functions which are also widely used in modern databases. I will refer to the book and database system documentations to fill the gap.</p>
+
+<p>Thanks for all the class2go team and Professor Jennifer Widom to carry out such an excellent course.</p>
+
+]]></content>
+ </entry>
+
+ <entry>
<title type="html"><![CDATA[Annual Review for 2012]]></title>
<link href="http://blog.yangchenyun.com/2013/01/annual-review-2012/"/>
<updated>2013-01-03T22:12:00+08:00</updated>
View
85 blog/categories/database-/atom.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="utf-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom">
+
+ <title><![CDATA[Category: database, | Steven Yang's Blog | 杨晨昀]]></title>
+ <link href="http://blog.yangchenyun.com/blog/categories/database-/atom.xml" rel="self"/>
+ <link href="http://blog.yangchenyun.com/"/>
+ <updated>2013-03-28T00:35:38+08:00</updated>
+ <id>http://blog.yangchenyun.com/</id>
+ <author>
+ <name><![CDATA[Steven Yang]]></name>
+
+ </author>
+ <generator uri="http://octopress.org/">Octopress</generator>
+
+
+ <entry>
+ <title type="html"><![CDATA[How I Finished the DBClass from Stanford with Full Score]]></title>
+ <link href="http://blog.yangchenyun.com/2013/03/how-i-finished-the-dbclass-from-stanford-with-full-score/"/>
+ <updated>2013-03-24T20:44:00+08:00</updated>
+ <id>http://blog.yangchenyun.com/2013/03/how-i-finished-the-dbclass-from-stanford-with-full-score</id>
+ <content type="html"><![CDATA[<ul id="markdown-toc">
+ <li><a href="#the-summary-of-material">The Summary of Material</a></li>
+ <li><a href="#how-i-approach-the-course-differently">How I Approach the Course Differently</a> <ul>
+ <li><a href="#more-reading-and-practice">More Reading and Practice</a></li>
+ <li><a href="#tune-the-tools">Tune the Tools</a></li>
+ </ul>
+ </li>
+ <li><a href="#whats-next">What’s next?</a></li>
+</ul>
+
+<p>For the past ten weeks, I’ve been working the <a href="https://class2go.stanford.edu/db/Winter2013">DBClass</a> offered by Standord. With 40 hours’ study I achieved full score on all exercises and both exams. </p>
+
+<p>In this course, I’ve acquired a solid knowledge about the algebra used behind the SQL language, learned advanced usage of database system and also get to know the basics to work with XML.</p>
+
+<h2 id="the-summary-of-material">The Summary of Material</h2>
+
+<p>You might checkout <a href="https://github.com/yangchenyun/dbclass-exercises">all the exercise code</a> I’ve written for the course and some mindmaps I summarized for the reviews: <a href="/images/assertions-triggers.png">assertions and triggers</a>, <a href="/images/constrains.png">constrains</a>, <a href="/images/transactions.png">transactions</a>, <a href="/images/xml-query.png">XML</a>.</p>
+
+<p>Besides following the class instruction, I added some materials for learning and set up a more convenient development environment. The great learning experience is certainly brought by these improvements which I would like to share.</p>
+
+<h2 id="how-i-approach-the-course-differently">How I Approach the Course Differently</h2>
+<p>I have approached the course differently in three aspects:</p>
+
+<ul>
+ <li>I read all related chapters in text book.</li>
+ <li>I studied and wrote real-world examples.</li>
+ <li>I made deliberate effort to setup development environment to ease practice and test.</li>
+</ul>
+
+<h3 id="more-reading-and-practice">More Reading and Practice</h3>
+<p>I followed the text book <a href="http://www.amazon.com/Database-Systems-Complete-Edition-ebook/dp/B004XJIVIC/ref=sr_1_2">The Database System - The Complete Book</a> along the course schedule. This is the text book used in former Stanford database courses and it is what the course’s material origined. I read related chapters in the text book after watching the videos. Reading would reveal some points I’ve missed in the video and help build up a systemetic view over the topic.</p>
+
+<p>As I work as a programmer, I applied the knowledge I learned in this course directly to several relational database based projects. </p>
+
+<p>I wrote a lot of <a href="https://gist.github.com/yangchenyun/5254141">raw SQLs</a> to fetch analytic data against our production database, it helped me to understand subqueries, natural joins and aggregations in the real world. </p>
+
+<p>I substituted the backend with <code>sqlite</code> for <a href="https://github.com/yangchenyun/ask/compare/cf510240b0f6f1b52d69426c4ba38227c0de2efc...master">one command line tool</a> I was building at local hackthon.</p>
+
+<p>To understand the advanced usage of triggers and constrains, I also read the source code of <a href="https://github.com/SquareSquash/web/blob/master/db/migrate/1_initial_schema.rb">squash</a>, an open source tool we use internally for bug tracking.</p>
+
+<h3 id="tune-the-tools">Tune the Tools</h3>
+
+<p>Another improvment I made is the development environment. I wanted to make it as easy and quick as possible to test out codes. This is the principal rule I’ve learned from former programming experience. Thus I made some deliberate effort to tune up the development environment.</p>
+
+<p>As my major editor is <code>vim</code>, I use the database plugin <a href="http://www.vim.org/scripts/script.php?script_id=356"><code>dbext</code></a> to play with SQL. <code>dbext</code> enables me to execute SQLs and get the result back in my editor. Instead of editing the SQL, doing copy-and-paste, printing the result out, I could write, run, edit, run, cleanup, run with one simple key binding. This convenience was very helpful when solving complex problems. I could start with some instinct ideas and tested them out right away and improved based on the result I got back. This fast cycle of feedback s helped to evolve one idea to one correct solution.</p>
+
+<p><img src="/images/dbext-img.png" alt="dbext image" /></p>
+
+<p>Later, when I was working with XQuery, I missed the convenience I got from <code>dbext</code>. So I decided to implement it myself. Together with some <a href="https://github.com/yangchenyun/dbclass-exercises/tree/master/utils/bin">bash script</a> and a <a href="https://github.com/yangchenyun/dbclass-exercises/blob/master/utils/xquery-helper.vim">vim function</a>, I built the same experience for XQuery editing. One key binding would fire the XQuery expression against the xml file and return the result right in the editor.</p>
+
+<p><img src="/images/xquery-img.png" alt="xquery image" /></p>
+
+<p>There is also simple <a href="https://github.com/yangchenyun/dbclass-exercises/tree/master/utils/bin">bash script</a> to make working with relational algebra compiler <code>ra</code> and xslt compiler easier.</p>
+
+<h2 id="whats-next">What’s next?</h2>
+<p>The <a href="https://class2go.stanford.edu/db/Winter2013/pages/extra-problems">extra problems</a> included in the DBClass is well designed and is aimed to test more practical skills. I will finish them within this week.</p>
+
+<p>DBclass has covered a wide range of topics in such a short period, but it also omits some concepts such as schemes, procedures, functions which are also widely used in modern databases. I will refer to the book and database system documentations to fill the gap.</p>
+
+<p>Thanks for all the class2go team and Professor Jennifer Widom to carry out such an excellent course.</p>
+
+]]></content>
+ </entry>
+
+</feed>
View
98 blog/categories/database-/index.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html>
+<html xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:g="urn:g">
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
+ <meta name="keywords" content="">
+ <meta name="description" content="Blog about hackings and development | Category: database,">
+ <title>Category: database, | 杨晨昀 Steven Yang</title>
+ <link rel="stylesheet" href="/stylesheets/screen.css">
+ <!--[if lt IE 9]>
+ <script src="/javascripts/html5.js"></script>
+ <![endif]-->
+</head>
+
+<body>
+ <div class="wrap">
+ <div id="sidebar" class="side group clear">
+ <header>
+ <a href="/">Steven Yang</a>
+ </header>
+ <nav>
+ <ul>
+ <li><a href="/about/">About</a></li>
+ <li><a href="/contact/">Contact</a></li>
+ </ul>
+
+<!-- AddThis Button BEGIN -->
+<div class="addthis_toolbox addthis_default_style ">
+ <div>
+ <a class="addthis_button_facebook_like" fb:like:width="46px"></a>
+ <a class='addthis_button_google_plusone' g:plusone:size='small' g:plusone:annotation='none'></a>
+ <br class="clear">
+ </div>
+ <div>
+ <a class="addthis_button_douban"></a>
+ <a class="addthis_button_sinaweibo"></a>
+ <a class="addthis_button_twitter"></a>
+ <br class="clear">
+ </div>
+</div>
+<!-- AddThis Button END -->
+
+
+ </div>
+ <div class="content">
+ <div>
+<article role="article">
+
+ <header>
+ <h1 class="entry-title">Category: Database,</h1>
+
+ </header>
+
+ <div id="blog-archives" class="category">
+
+
+
+
+ <h2>2013</h2>
+
+<article>
+ Included file 'archive_post.html' not found in _includes directory
+</article>
+
+</div>
+
+
+</article>
+
+</div>
+
+<aside class="sidebar">
+
+ Included file 'asides/recent_posts.html' not found in _includes directoryIncluded file 'asides/github.html' not found in _includes directoryIncluded file 'asides/twitter.html' not found in _includes directoryIncluded file 'asides/delicious.html' not found in _includes directoryIncluded file 'asides/pinboard.html' not found in _includes directoryIncluded file 'asides/googleplus.html' not found in _includes directory
+
+</aside>
+
+
+ </div>
+ <br class="clear">
+ <footer>
+ <p>Powered by <a title="Don't worry, it's not the morally ambivalent doctor." href="http://github.com/mojombo/jekyll">Jekyll</a>.<span class="copyright">copyright 2011-2012&copy; <a href="//github.com/yangchenyun">Steven Yang</a></span></p>
+ <!-- <p>Also find me on <a href="http://stackoverflow.com/users/966437/steven-yang">stackoverflow</a> and <a href="http://delicious.com/chenyunyang">delicious</a>.</p> -->
+ </footer>
+ </div>
+</body>
+
+<!-- Add this script -->
+<script type="text/javascript" src="http://s7.addthis.com/js/300/addthis_widget.js#pubid=ra-4f01c8a46f097959"></script>
+<!-- Google Analytics Improved Version -->
+<script>var _gaq=[['_setAccount','UA-27986795-1'],['_trackPageview']];(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.src='//www.google-analytics.com/ga.js';s.parentNode.insertBefore(g,s)}(document,'script'))
+</script>
+ <!-- Prompt IE 6 users to install Chrome Frame. Remove this if you want to support IE 6.
+ chromium.org/developers/how-tos/chrome-frame-getting-started -->
+ <!--[if lt IE 7 ]>
+ <script defer src="//ajax.googleapis.com/ajax/libs/chrome-frame/1.0.3/CFInstall.min.js"></script>
+ <script defer>window.attachEvent('onload',function(){CFInstall.check({mode:'overlay'})})</script>
+ <![endif]-->
+</html>
View
2  blog/categories/personal-development/atom.xml
@@ -4,7 +4,7 @@
<title><![CDATA[Category: personal_development | Steven Yang's Blog | 杨晨昀]]></title>
<link href="http://blog.yangchenyun.com/blog/categories/personal-development/atom.xml" rel="self"/>
<link href="http://blog.yangchenyun.com/"/>
- <updated>2013-03-13T03:06:57+08:00</updated>
+ <updated>2013-03-28T00:35:38+08:00</updated>
<id>http://blog.yangchenyun.com/</id>
<author>
<name><![CDATA[Steven Yang]]></name>
View
85 blog/categories/study/atom.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="utf-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom">
+
+ <title><![CDATA[Category: study | Steven Yang's Blog | 杨晨昀]]></title>
+ <link href="http://blog.yangchenyun.com/blog/categories/study/atom.xml" rel="self"/>
+ <link href="http://blog.yangchenyun.com/"/>
+ <updated>2013-03-28T00:35:38+08:00</updated>
+ <id>http://blog.yangchenyun.com/</id>
+ <author>
+ <name><![CDATA[Steven Yang]]></name>
+
+ </author>
+ <generator uri="http://octopress.org/">Octopress</generator>
+
+
+ <entry>
+ <title type="html"><![CDATA[How I Finished the DBClass from Stanford with Full Score]]></title>
+ <link href="http://blog.yangchenyun.com/2013/03/how-i-finished-the-dbclass-from-stanford-with-full-score/"/>
+ <updated>2013-03-24T20:44:00+08:00</updated>
+ <id>http://blog.yangchenyun.com/2013/03/how-i-finished-the-dbclass-from-stanford-with-full-score</id>
+ <content type="html"><![CDATA[<ul id="markdown-toc">
+ <li><a href="#the-summary-of-material">The Summary of Material</a></li>
+ <li><a href="#how-i-approach-the-course-differently">How I Approach the Course Differently</a> <ul>
+ <li><a href="#more-reading-and-practice">More Reading and Practice</a></li>
+ <li><a href="#tune-the-tools">Tune the Tools</a></li>
+ </ul>
+ </li>
+ <li><a href="#whats-next">What’s next?</a></li>
+</ul>
+
+<p>For the past ten weeks, I’ve been working the <a href="https://class2go.stanford.edu/db/Winter2013">DBClass</a> offered by Standord. With 40 hours’ study I achieved full score on all exercises and both exams. </p>
+
+<p>In this course, I’ve acquired a solid knowledge about the algebra used behind the SQL language, learned advanced usage of database system and also get to know the basics to work with XML.</p>
+
+<h2 id="the-summary-of-material">The Summary of Material</h2>
+
+<p>You might checkout <a href="https://github.com/yangchenyun/dbclass-exercises">all the exercise code</a> I’ve written for the course and some mindmaps I summarized for the reviews: <a href="/images/assertions-triggers.png">assertions and triggers</a>, <a href="/images/constrains.png">constrains</a>, <a href="/images/transactions.png">transactions</a>, <a href="/images/xml-query.png">XML</a>.</p>
+
+<p>Besides following the class instruction, I added some materials for learning and set up a more convenient development environment. The great learning experience is certainly brought by these improvements which I would like to share.</p>
+
+<h2 id="how-i-approach-the-course-differently">How I Approach the Course Differently</h2>
+<p>I have approached the course differently in three aspects:</p>
+
+<ul>
+ <li>I read all related chapters in text book.</li>
+ <li>I studied and wrote real-world examples.</li>
+ <li>I made deliberate effort to setup development environment to ease practice and test.</li>
+</ul>
+
+<h3 id="more-reading-and-practice">More Reading and Practice</h3>
+<p>I followed the text book <a href="http://www.amazon.com/Database-Systems-Complete-Edition-ebook/dp/B004XJIVIC/ref=sr_1_2">The Database System - The Complete Book</a> along the course schedule. This is the text book used in former Stanford database courses and it is what the course’s material origined. I read related chapters in the text book after watching the videos. Reading would reveal some points I’ve missed in the video and help build up a systemetic view over the topic.</p>
+
+<p>As I work as a programmer, I applied the knowledge I learned in this course directly to several relational database based projects. </p>
+
+<p>I wrote a lot of <a href="https://gist.github.com/yangchenyun/5254141">raw SQLs</a> to fetch analytic data against our production database, it helped me to understand subqueries, natural joins and aggregations in the real world. </p>
+
+<p>I substituted the backend with <code>sqlite</code> for <a href="https://github.com/yangchenyun/ask/compare/cf510240b0f6f1b52d69426c4ba38227c0de2efc...master">one command line tool</a> I was building at local hackthon.</p>
+
+<p>To understand the advanced usage of triggers and constrains, I also read the source code of <a href="https://github.com/SquareSquash/web/blob/master/db/migrate/1_initial_schema.rb">squash</a>, an open source tool we use internally for bug tracking.</p>
+
+<h3 id="tune-the-tools">Tune the Tools</h3>
+
+<p>Another improvment I made is the development environment. I wanted to make it as easy and quick as possible to test out codes. This is the principal rule I’ve learned from former programming experience. Thus I made some deliberate effort to tune up the development environment.</p>
+
+<p>As my major editor is <code>vim</code>, I use the database plugin <a href="http://www.vim.org/scripts/script.php?script_id=356"><code>dbext</code></a> to play with SQL. <code>dbext</code> enables me to execute SQLs and get the result back in my editor. Instead of editing the SQL, doing copy-and-paste, printing the result out, I could write, run, edit, run, cleanup, run with one simple key binding. This convenience was very helpful when solving complex problems. I could start with some instinct ideas and tested them out right away and improved based on the result I got back. This fast cycle of feedback s helped to evolve one idea to one correct solution.</p>
+
+<p><img src="/images/dbext-img.png" alt="dbext image" /></p>
+
+<p>Later, when I was working with XQuery, I missed the convenience I got from <code>dbext</code>. So I decided to implement it myself. Together with some <a href="https://github.com/yangchenyun/dbclass-exercises/tree/master/utils/bin">bash script</a> and a <a href="https://github.com/yangchenyun/dbclass-exercises/blob/master/utils/xquery-helper.vim">vim function</a>, I built the same experience for XQuery editing. One key binding would fire the XQuery expression against the xml file and return the result right in the editor.</p>
+
+<p><img src="/images/xquery-img.png" alt="xquery image" /></p>
+
+<p>There is also simple <a href="https://github.com/yangchenyun/dbclass-exercises/tree/master/utils/bin">bash script</a> to make working with relational algebra compiler <code>ra</code> and xslt compiler easier.</p>
+
+<h2 id="whats-next">What’s next?</h2>
+<p>The <a href="https://class2go.stanford.edu/db/Winter2013/pages/extra-problems">extra problems</a> included in the DBClass is well designed and is aimed to test more practical skills. I will finish them within this week.</p>
+
+<p>DBclass has covered a wide range of topics in such a short period, but it also omits some concepts such as schemes, procedures, functions which are also widely used in modern databases. I will refer to the book and database system documentations to fill the gap.</p>
+
+<p>Thanks for all the class2go team and Professor Jennifer Widom to carry out such an excellent course.</p>
+
+]]></content>
+ </entry>
+
+</feed>
View
98 blog/categories/study/index.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html>
+<html xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:g="urn:g">
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
+ <meta name="keywords" content="">
+ <meta name="description" content="Blog about hackings and development | Category: study">
+ <title>Category: study | 杨晨昀 Steven Yang</title>
+ <link rel="stylesheet" href="/stylesheets/screen.css">
+ <!--[if lt IE 9]>
+ <script src="/javascripts/html5.js"></script>
+ <![endif]-->
+</head>
+
+<body>
+ <div class="wrap">
+ <div id="sidebar" class="side group clear">
+ <header>
+ <a href="/">Steven Yang</a>
+ </header>
+ <nav>
+ <ul>
+ <li><a href="/about/">About</a></li>
+ <li><a href="/contact/">Contact</a></li>
+ </ul>
+
+<!-- AddThis Button BEGIN -->
+<div class="addthis_toolbox addthis_default_style ">
+ <div>
+ <a class="addthis_button_facebook_like" fb:like:width="46px"></a>
+ <a class='addthis_button_google_plusone' g:plusone:size='small' g:plusone:annotation='none'></a>
+ <br class="clear">
+ </div>
+ <div>
+ <a class="addthis_button_douban"></a>
+ <a class="addthis_button_sinaweibo"></a>
+ <a class="addthis_button_twitter"></a>
+ <br class="clear">
+ </div>
+</div>
+<!-- AddThis Button END -->
+
+
+ </div>
+ <div class="content">
+ <div>
+<article role="article">
+
+ <header>
+ <h1 class="entry-title">Category: Study</h1>
+
+ </header>
+
+ <div id="blog-archives" class="category">
+
+
+
+
+ <h2>2013</h2>
+
+<article>
+ Included file 'archive_post.html' not found in _includes directory
+</article>
+
+</div>
+
+
+</article>
+
+</div>
+
+<aside class="sidebar">
+
+ Included file 'asides/recent_posts.html' not found in _includes directoryIncluded file 'asides/github.html' not found in _includes directoryIncluded file 'asides/twitter.html' not found in _includes directoryIncluded file 'asides/delicious.html' not found in _includes directoryIncluded file 'asides/pinboard.html' not found in _includes directoryIncluded file 'asides/googleplus.html' not found in _includes directory
+
+</aside>
+
+
+ </div>
+ <br class="clear">
+ <footer>
+ <p>Powered by <a title="Don't worry, it's not the morally ambivalent doctor." href="http://github.com/mojombo/jekyll">Jekyll</a>.<span class="copyright">copyright 2011-2012&copy; <a href="//github.com/yangchenyun">Steven Yang</a></span></p>
+ <!-- <p>Also find me on <a href="http://stackoverflow.com/users/966437/steven-yang">stackoverflow</a> and <a href="http://delicious.com/chenyunyang">delicious</a>.</p> -->
+ </footer>
+ </div>
+</body>
+
+<!-- Add this script -->
+<script type="text/javascript" src="http://s7.addthis.com/js/300/addthis_widget.js#pubid=ra-4f01c8a46f097959"></script>
+<!-- Google Analytics Improved Version -->
+<script>var _gaq=[['_setAccount','UA-27986795-1'],['_trackPageview']];(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.src='//www.google-analytics.com/ga.js';s.parentNode.insertBefore(g,s)}(document,'script'))
+</script>
+ <!-- Prompt IE 6 users to install Chrome Frame. Remove this if you want to support IE 6.
+ chromium.org/developers/how-tos/chrome-frame-getting-started -->
+ <!--[if lt IE 7 ]>
+ <script defer src="//ajax.googleapis.com/ajax/libs/chrome-frame/1.0.3/CFInstall.min.js"></script>
+ <script defer>window.attachEvent('onload',function(){CFInstall.check({mode:'overlay'})})</script>
+ <![endif]-->
+</html>
View
2  blog/categories/tool/atom.xml
@@ -4,7 +4,7 @@
<title><![CDATA[Category: tool | Steven Yang's Blog | 杨晨昀]]></title>
<link href="http://blog.yangchenyun.com/blog/categories/tool/atom.xml" rel="self"/>
<link href="http://blog.yangchenyun.com/"/>
- <updated>2013-03-13T03:06:57+08:00</updated>
+ <updated>2013-03-28T00:35:38+08:00</updated>
<id>http://blog.yangchenyun.com/</id>
<author>
<name><![CDATA[Steven Yang]]></name>
View
2  blog/categories/unix-/atom.xml
@@ -4,7 +4,7 @@
<title><![CDATA[Category: unix, | Steven Yang's Blog | 杨晨昀]]></title>
<link href="http://blog.yangchenyun.com/blog/categories/unix-/atom.xml" rel="self"/>
<link href="http://blog.yangchenyun.com/"/>
- <updated>2013-03-13T03:06:57+08:00</updated>
+ <updated>2013-03-28T00:35:38+08:00</updated>
<id>http://blog.yangchenyun.com/</id>
<author>
<name><![CDATA[Steven Yang]]></name>
View
BIN  images/assertions-triggers.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  images/constrains.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  images/dbext-img.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  images/transactions.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  images/xml-query.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  images/xquery-img.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
3  index.html
@@ -55,6 +55,9 @@
<h2>Recent Articles</h2>
<ul id="recent-list">
+ <li><p><a class="more" href="/2013/03/how-i-finished-the-dbclass-from-stanford-with-full-score/">How I Finished the DBClass from Stanford with Full Score &raquo;</a>
+ </p></li>
+
<li><p><a class="more" href="/2013/01/annual-review-2012/">Annual Review for 2012 &raquo;</a>
</p></li>
View
8 sitemap.xml
@@ -29,6 +29,12 @@
<lastmod>2013-03-13T02:56:34+08:00</lastmod>
</url>
<url>
+ <loc>
+ http://blog.yangchenyun.com/2013/03/how-i-finished-the-dbclass-from-stanford-with-full-score/
+ </loc>
+ <lastmod>2013-03-28T00:31:06+08:00</lastmod>
+ </url>
+ <url>
<loc>http://blog.yangchenyun.com/about/</loc>
<lastmod>2012-11-24T02:30:45+08:00</lastmod>
</url>
@@ -38,6 +44,6 @@
</url>
<url>
<loc>http://blog.yangchenyun.com/</loc>
- <lastmod>2013-03-13T02:56:34+08:00</lastmod>
+ <lastmod>2013-03-28T00:31:06+08:00</lastmod>
</url>
</urlset>
Please sign in to comment.
Something went wrong with that request. Please try again.