<?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>Andy&#039;s Blog &#187; web</title>
	<atom:link href="http://blog.andyhot.gr/category/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.andyhot.gr</link>
	<description>Code till you ... drop</description>
	<lastBuildDate>Wed, 02 Mar 2011 16:31:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Partial review of last year – php comeback?</title>
		<link>http://blog.andyhot.gr/partial-review-of-last-year-php-comeback/</link>
		<comments>http://blog.andyhot.gr/partial-review-of-last-year-php-comeback/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 04:19:10 +0000</pubDate>
		<dc:creator>andyhot</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[flatpress]]></category>
		<category><![CDATA[hmvc]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[kohana]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog2.andyhot.gr/?p=72</guid>
		<description><![CDATA[Partial review of last year - php comeback?
 <div>In 2009 I did several <a href="http://php.net/index.php">php</a> projects. The decision to use php was a pragmatic one - very cheap, available everywhere, easy to google for and I had a lot of experience w]]></description>
			<content:encoded><![CDATA[<p>Partial review of last year &#8211; php comeback?</p>
<div>In 2009 I did several <a href="http://php.net/index.php">php</a> projects. The decision to use php was a pragmatic one &#8211; very cheap, available everywhere, easy to google for and I had a lot of experience with it in (its and &#8230; mine) early years. I even used to teach it at <a href="http://www.saep.gr/index.php?page=4">SPHY</a>.</div>
<div>So anyway, up till last year, thinking of php would always bring back memories of spaghetti-code (though I hasten to add, the worst spaghetti-like project i&#8217;ve had to work on was in Java/jsp and that was back in 2001/2002 &#8211; copy/paste was the emperor and reuse was an unknown word). But all those memories have since changed &#8211; php 5 can do <a href="http://php.net/manual/en/language.oop5.php">OOP</a> and apart from a few gotchas, it&#8217;s not that much different to Java&#8230; and you do get instant productivity gains (due to save-reload workflow)</div>
<div>After doing a short review of the php web frameworks &amp; libraries, I chose to use <a href="http://www.kohanaphp.com/">Kohana</a> (ver.2) in my projects. Kohana has proven to be a very elegant and clean MVC implementation and its new version (ver.3) now implements <a href="http://learn.kohanaphp.com/2008/03/05/hmvc-in-kohana/">HMVC</a> (hierarchical MVC) which is awfully close to what component-based web frameworks are offering but with less magic and thus less complexity<br />
( i&#8217;ll need another post -or posts- to explain this further)</div>
<div>Of course, when you&#8217;re back to the PHP land, it&#8217;s worthwhile to take a look at some of the best (and most used) apps that are written with that, namely <a href="http://wordpress.org/">wordpress</a>, <a href="http://drupal.org/">drupal</a> and <a href="http://www.joomla.org/">joomla</a> (<a href="http://www.flatpress.org/home/">FlatPress</a> is also great if you can&#8217;t afford a DB). I took a close look at the source code of wordpress and drupal and their architecture and found both straightforward &#8211; code is understandable, authoring plugins and extending default functionality is both easy and fun! And this makes you think&#8230; perhaps I can use any of those platforms as a base for my projects. Perhaps YOU should!</div>
<div>Anyway, i&#8217;ll expand my thoughts in the following days. I&#8217;ll close with screenshots of 3 greek blogs i was involved with this winter (<a href="http://onlybeauty.gr">onlybeauty.gr</a>, <a href="http://ufoerotiseis.gr">ufoerotiseis.gr</a>, <a href="http://grease.gr">grease.gr</a>):<br />
<a href="http://onlybeauty.gr"><img src="http://farm5.static.flickr.com/4045/4312043393_67205cfec5_m.jpg" border="0" alt="onlybeauty.gr" /></a><br />
<a href="http://ufoerotiseis.gr"><img src="http://farm5.static.flickr.com/4043/4312780588_96bf43799c_m.jpg" border="0" alt="ufoerotiseis.gr" /></a><br />
<a href="http://grease.gr"><img src="http://farm5.static.flickr.com/4017/4312780802_ec09588057_m.jpg" border="0" alt="grease.gr" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.andyhot.gr/partial-review-of-last-year-php-comeback/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Athens Facebook Developer Garage</title>
		<link>http://blog.andyhot.gr/athens-facebook-developer-garage/</link>
		<comments>http://blog.andyhot.gr/athens-facebook-developer-garage/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 15:16:26 +0000</pubDate>
		<dc:creator>andyhot</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[live]]></category>
		<category><![CDATA[presentations]]></category>

		<guid isPermaLink="false">http://blog2.andyhot.gr/?p=7</guid>
		<description><![CDATA[Athens Facebook Developer Garage
 (live blogging from Athens, Zografou)
 <div><h2>Evolution of the Web</h2>
 Some stats on web, web2.0, adoption, AOL, yahoo, ..., googlemaps, youtube
 </div>
 <div>
 <h2>The facebook platform</h2>
 <ul><li>Massive ditribut]]></description>
			<content:encoded><![CDATA[<p>Athens Facebook Developer Garage<br />
 (live blogging from Athens, Zografou)</p>
<div>
<h2>Evolution of the Web</h2>
<p> Some stats on web, web2.0, adoption, AOL, yahoo, &#8230;, googlemaps, youtube
 </p></div>
<div>
<h2>The facebook platform</h2>
<ul>
<li>Massive ditribution</li>
<li>Fast experimentation</li>
<p> but</p>
<li>Constant changes to policies</li>
</ul></div>
<div>
<h2>Architecture</h2>
<p>php+java official libs (wasn&#8217;t official java support dropped???)</p>
<p>FQL &#8211; one table per query only (no join), access user, friend, group, group_member, event,event_member, photo, album, photo_tag</p>
<p>FBML &#8211; subset of HTML, some custom tags, Mock AJAX&#8230; Canvas belongs to you, apart from anything deceitful, you can put anything you want there (ads,..) &#8211; but ads like googleads don&#8217;t have context info to show related stuff, so???
 </p>
</p></div>
<div>
<h2>Anatomy of An Application</h2>
<ul>
<li>Only one-line status messages can be added to user statuses from apps&#8230; bigger ones must be approved from users.</li>
<li>Now, limit to how many invitation an app can send to friends.</li>
<li>Presenter (Nikolas Kokkalis) took part to Stanford Facebook class</li>
<li>Cannot store male/female user info from facebook (for more than 24h), but if we ask users then we can!</li>
<li>Viral factor f = X*Y*Z, f>1 then Viral growth&#8230; For each user, at least one friend accepted invitation (for <a href="http://www.new.facebook.com/apps/application.php?id=5757353179">PerfectMatch</a>, f was 1.4 &#8211; they had to rename to <i>Best Match</i> due to &#8230; lawyers!)</li>
<li>They&#8217;ve done experiments with the same exact app registered with 5 different names &#8211; and it does make A LOT OF DIFFERENCE (name matters)</li>
<li>Every concept can be made viral &#8230; with the right modifications</li>
<li>Other ways of income (apart from ads) : Virtual currency, virtual objects (VERY popular for teenagers to pay for those), surveys!!! (you &#8216;sell&#8217; people filling surveys)</li>
<li>Also, users think your company is more legit if they see ads in your site.</li></div>
<div>
<h2>Virality</h2>
<ul>
<li>It is an Art that requires a ton of Science</li>
<li>Invitation text is terribly important</li>
<li>Make it social, simple &#8211; use viral channels, ab test all</li>
<li>Viral channels in FB: invitations, notifications, newsfeed, email, profile box, profile action</li>
<li>Knowledge gap (we know the perfect match, do YOU know it? there&#8217;s a message for you, do YOU want to see it?)</li>
<li>Modify a channel, gather data, analyze results (&#038; restart)</li>
<li>but&#8230; changing a channel can be time consuming, measuring + analyzing results difficult (reference to their http://viraltuning.com/ but not much info there yet)</li>
</ul></div>
<div>
<h2>Some apps</h2>
<p> &#8230; developed by greeks</p>
<ul>
<li>Greek Namedays</li>
<li>kerasmata </li>
<li>mySidebarBook</li>
</ul></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.andyhot.gr/athens-facebook-developer-garage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Everyone loves GoogleDocs</title>
		<link>http://blog.andyhot.gr/everyone-loves-googledocs/</link>
		<comments>http://blog.andyhot.gr/everyone-loves-googledocs/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 17:02:56 +0000</pubDate>
		<dc:creator>andyhot</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[googledocs]]></category>

		<guid isPermaLink="false">http://blog2.andyhot.gr/?p=17</guid>
		<description><![CDATA[Everyone loves GoogleDocs
 ... and here's <a href="http://tech.slashdot.org/comments.pl?sid=507102&#038;cid=22930968">another</a> testimony from a Slashdot user: <blockquote>
 I love Google Docs. When I had to kick my three-timing wife to the curb we used a go]]></description>
			<content:encoded><![CDATA[<p>Everyone loves GoogleDocs<br />
 &#8230; and here&#8217;s <a href="http://tech.slashdot.org/comments.pl?sid=507102&#038;cid=22930968">another</a> testimony from a Slashdot user:<br />
<blockquote>
 I love Google Docs. When I had to kick my three-timing wife to the curb we used a google spreadsheet to collect data about our assets, debts, insurance policies, etc. for the property settlement phase of our divorce &#8212; and another to track child expenses for our shared custody arrangement. It&#8217;s awesome. I didn&#8217;t have to interact with her anymore than was strictly necessary. Thank you, Google.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.andyhot.gr/everyone-loves-googledocs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why DZone’s cross-promotional footer sucks</title>
		<link>http://blog.andyhot.gr/why-dzones-cross-promotional-footer-sucks/</link>
		<comments>http://blog.andyhot.gr/why-dzones-cross-promotional-footer-sucks/#comments</comments>
		<pubDate>Sun, 17 Feb 2008 20:41:53 +0000</pubDate>
		<dc:creator>andyhot</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[dzone]]></category>

		<guid isPermaLink="false">http://blog2.andyhot.gr/?p=90</guid>
		<description><![CDATA[Why DZone's cross-promotional footer sucks
 <div>I've hated their footer from the very first time, so it was quite funny when they even put up an <a href="http://css.dzone.com/news/designing-dzone-cross-promotio">article</a> to describe how they did it! I]]></description>
			<content:encoded><![CDATA[<p>Why DZone&#8217;s cross-promotional footer sucks</p>
<div>I&#8217;ve hated their footer from the very first time, so it was quite funny when they even put up an <a href="http://css.dzone.com/news/designing-dzone-cross-promotio">article</a> to describe how they did it! I mean, cmon you guys, do you ever use your site???</div>
<div>&#8220;So, what&#8217;s wrong with the footer?&#8221;, you might ask.</div>
<div>Well, it has a critical (toujours d&#8217;apres moi) usability problem&#8230; It makes your life difficult by now allowing you to use the END button. </div>
<div>Picture this: You find out that there are a few new comments in an article that interests you and you click to load the article, then hit END to see the comments. Imagine what that gets you: a 1280&#215;1024 (and more) view of everything but comments&#8230; WTF!</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.andyhot.gr/why-dzones-cross-promotional-footer-sucks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fred’s got a Yahoo Interview</title>
		<link>http://blog.andyhot.gr/freds-got-a-yahoo-interview/</link>
		<comments>http://blog.andyhot.gr/freds-got-a-yahoo-interview/#comments</comments>
		<pubDate>Mon, 10 Sep 2007 23:41:39 +0000</pubDate>
		<dc:creator>andyhot</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[fred]]></category>
		<category><![CDATA[yahoo]]></category>

		<guid isPermaLink="false">http://blog2.andyhot.gr/?p=18</guid>
		<description><![CDATA[Fred's got a Yahoo Interview
 <div>... but of course, if you're a javablogs or jroller subscriber <a href="http://www.jroller.com/shareme/entry/yahoo_2nd_interview">you</a> <a href="http://www.jroller.com/shareme/entry/how_does_one_prepare_for">already</a]]></description>
			<content:encoded><![CDATA[<p>Fred&#8217;s got a Yahoo Interview</p>
<div>&#8230; but of course, if you&#8217;re a javablogs or jroller subscriber <a href="http://www.jroller.com/shareme/entry/yahoo_2nd_interview">you</a> <a href="http://www.jroller.com/shareme/entry/how_does_one_prepare_for">already</a> <a href="http://www.jroller.com/shareme/entry/preparing_for_a_yahopo_interview">know </a> <a href="http://www.jroller.com/shareme/entry/my_yahoo_interview_is_on">that</a>, <a href="http://www.jroller.com/shareme/entry/first_yahoo_interview">don&#8217;t</a> <a href="http://www.jroller.com/shareme/entry/yahoo_recruiting">you</a>?
 </div>
<div>
 Well, Fred, I&#8217;m wishing you the best &#8211; i just can&#8217;t stop wondering: <b>will these posts affect in any way the recruiting process? Anyone?</b>
 </div>
]]></content:encoded>
			<wfw:commentRss>http://blog.andyhot.gr/freds-got-a-yahoo-interview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Safari WTF</title>
		<link>http://blog.andyhot.gr/safari-wtf/</link>
		<comments>http://blog.andyhot.gr/safari-wtf/#comments</comments>
		<pubDate>Sat, 23 Jun 2007 01:30:35 +0000</pubDate>
		<dc:creator>andyhot</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[wtf]]></category>

		<guid isPermaLink="false">http://blog2.andyhot.gr/?p=82</guid>
		<description><![CDATA[Safari WTF
 <h2>Now, that's an informative message:</h2>
 <p> </p>
 <img src="/resources/safari.jpg" border="1"/>
]]></description>
			<content:encoded><![CDATA[<p>Safari WTF</p>
<h2>Now, that&#8217;s an informative message:</h2>
</p>
<p> <img src="/resources/safari.jpg" border="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andyhot.gr/safari-wtf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Keep on learning</title>
		<link>http://blog.andyhot.gr/keep-on-learning/</link>
		<comments>http://blog.andyhot.gr/keep-on-learning/#comments</comments>
		<pubDate>Sat, 21 Apr 2007 20:12:09 +0000</pubDate>
		<dc:creator>andyhot</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[links]]></category>

		<guid isPermaLink="false">http://blog2.andyhot.gr/?p=66</guid>
		<description><![CDATA[Keep on learning
 <div>Damn! Here's something (html related) I only recently came across to...
 </div>
 <div>
 Quoting from <a href="http://www.w3.org/TR/html401/struct/links.html">http://www.w3.org/TR/html401/struct/links.html</a> :
 <blockquote>
 The id]]></description>
			<content:encoded><![CDATA[<p>Keep on learning</p>
<div>Damn! Here&#8217;s something (html related) I only recently came across to&#8230;
 </div>
<div>
 Quoting from <a href="http://www.w3.org/TR/html401/struct/links.html">http://www.w3.org/TR/html401/struct/links.html</a> :</p>
<blockquote><p>
 The id attribute may be used to create an anchor at the start tag of any element (including the A element).
 </p></blockquote></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.andyhot.gr/keep-on-learning/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>javablogs.com crashes – java.io.IOException: Cannot allocate memory</title>
		<link>http://blog.andyhot.gr/javablogs-com-crashes-java-io-ioexception-cannot-allocate-memory/</link>
		<comments>http://blog.andyhot.gr/javablogs-com-crashes-java-io-ioexception-cannot-allocate-memory/#comments</comments>
		<pubDate>Tue, 30 Jan 2007 04:17:13 +0000</pubDate>
		<dc:creator>andyhot</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[crash]]></category>

		<guid isPermaLink="false">http://blog2.andyhot.gr/?p=63</guid>
		<description><![CDATA[javablogs.com crashes - java.io.IOException: Cannot allocate memory
 First time i see such errors in javablogs.com.
 <p/>
 Could it be related to the recent update? Or was it just a face-lift?
 <p/>
 Anyway, here's the screenshot... take a look
 <p/>
 <im]]></description>
			<content:encoded><![CDATA[<p>javablogs.com crashes &#8211; java.io.IOException: Cannot allocate memory<br />
 First time i see such errors in javablogs.com.</p>
<p/>
 Could it be related to the recent update? Or was it just a face-lift?</p>
<p/>
 Anyway, here&#8217;s the screenshot&#8230; take a look</p>
<p/>
 <img src="/blojsom/resources/jb-crash.png" border="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andyhot.gr/javablogs-com-crashes-java-io-ioexception-cannot-allocate-memory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>English2Greek translation in Firefox</title>
		<link>http://blog.andyhot.gr/greek2english-translation-in-firefox/</link>
		<comments>http://blog.andyhot.gr/greek2english-translation-in-firefox/#comments</comments>
		<pubDate>Sat, 28 Oct 2006 13:29:50 +0000</pubDate>
		<dc:creator>andyhot</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[firefox search]]></category>

		<guid isPermaLink="false">http://blog2.andyhot.gr/?p=20</guid>
		<description><![CDATA[English2Greek translation in Firefox
 <p>
 I've been busy translating to greek an OS app lately... <code>http://www.in.gr/dictionary</code> has been a friend, but i needed more! 
 </p>
 <p>
 So, upon taking a look at <a href="http://hacks.oreilly.com/pub/]]></description>
			<content:encoded><![CDATA[<p>English2Greek translation in Firefox</p>
<p>
 I&#8217;ve been busy translating to greek an OS app lately&#8230; <code>http://www.in.gr/dictionary</code> has been a friend, but i needed more!
 </p>
<p>
 So, upon taking a look at <a href="http://hacks.oreilly.com/pub/h/3033">Build Your Own Firefox Search Engine</a> i quickly came up with <a href="../../resources/in.src">this</a>. As the article describes,  copy it in your Firefox/searchplugins folder (optionally adding there this <a href="../../resources/in.png">icon</a>) and you&#8217;re ready to go.
 </p>
<p>But as always, there&#8217;s a faster way for this&#8230; <a href="https://addons.mozilla.org/search-engines.php">Mozilla&#8217;s directory</a> already contains this&#8230; grrrrrrrr&#8230; Which reminds me of a quote of the first chess coach of the very best Garry Kasparov : &#8220;I always tell Garry to think first and then move. But sometimes he does the opposite!&#8221;
 </p>
<p>PS. Just saw <a href="http://developer.mozilla.org/en/docs/Creating_OpenSearch_plugins_for_Firefox">this</a><br />
 new tutorial. It contains the OpenSearch description format for search plugins that is supported by both FF 2.0 and IE7&#8230; Interesting read.
 </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andyhot.gr/greek2english-translation-in-firefox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cross-site caching of javascript libraries</title>
		<link>http://blog.andyhot.gr/cross_site_caching_of_javascript_libraries/</link>
		<comments>http://blog.andyhot.gr/cross_site_caching_of_javascript_libraries/#comments</comments>
		<pubDate>Tue, 21 Mar 2006 14:26:23 +0000</pubDate>
		<dc:creator>andyhot</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog2.andyhot.gr/?p=12</guid>
		<description><![CDATA[Cross-site caching of javascript libraries
 <p>This is a proposal for extending the script tag of HTML.</p>
 <p>The purpose of this proposal is to allow browsers to take advantage of the many great javascript 
 libraries that are now in common use (protot]]></description>
			<content:encoded><![CDATA[<p>Cross-site caching of javascript libraries</p>
<p>This is a proposal for extending the script tag of HTML.</p>
<p>The purpose of this proposal is to allow browsers to take advantage of the many great javascript<br />
 libraries that are now in common use (prototype, dojo, scriptaculous, e.t.c.) by many different sites<br />
 and minimize bandwidth &#8211; download times.</p>
<p>The idea is, since I already have (in my browser&#8217;s cache) the X javascript library (because site Y uses it),<br />
 why do I have to redownload it while visiting site Z ?</p>
<p>So, I propose adding a hash attribute to the script tag. A browsers behaviour will go like this:</p>
<ul>
<li>if a script tag doesn&#8217;t have a hash attribute, continue as normal.</li>
<li>if there&#8217;s a hash attribute, check our global javascript cache.
<ul>
<li> If found, use library from cache.</li>
<li>Otherwise, download library and use it. Also, compute its hash, and if it matches the hash attribute add<br />
 it in global cache.
 </ul>
</li>
</ul>
<p>So, what&#8217;s your opinion on this? Do you see any potential (security) problems?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.andyhot.gr/cross_site_caching_of_javascript_libraries/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

