<?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>pekalicious &#187; Projects</title>
	<atom:link href="http://pekalicious.com/blog/category/projects/feed/" rel="self" type="application/rss+xml" />
	<link>http://pekalicious.com/blog</link>
	<description></description>
	<lastBuildDate>Sat, 04 Sep 2010 16:24:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Anonymous Hypochondriac &#8211; Part I</title>
		<link>http://pekalicious.com/blog/anonymous-hypochondriac-part-i/</link>
		<comments>http://pekalicious.com/blog/anonymous-hypochondriac-part-i/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 01:44:25 +0000</pubDate>
		<dc:creator>Panagiotis Peikidis</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Anonymous Hypochondriac]]></category>
		<category><![CDATA[writings]]></category>

		<guid isPermaLink="false">http://pekalicious.com/blog/?p=400</guid>
		<description><![CDATA[A hypochondriac is someone that will wake up in the middle of the night and take a long deep breath because he thought that for the last two minutes he wasn&#8217;t breathing at all. A hypochondriac is someone that will see a bruise a few inches above his right hip and think that it has [...]]]></description>
			<content:encoded><![CDATA[<p>A hypochondriac is someone that will wake up in the middle of the night and take a long deep breath because he thought that for the last two minutes he wasn&#8217;t breathing at all. A hypochondriac is someone that will see a bruise a few inches above his right hip and think that it has something to do with an STD while completely forgetting that he slept on an eraser at that exact same spot. A hypochondriac is someone that discovers a lump in his head and immediately panics until his girlfriend will tell him that it was always there.</p>
<p>One thing is for sure, a hypochondriac is someone that has no health problems what so ever. By the wise words of Mike Baldwin, the first step for a hypochondriac is to admit that he has no problem.</p>
<p>I am a hypochondriac and I have been sick more times than I have been healed. These are my stories.</p>
<p><span id="more-400"></span></p>
<p style="text-align: center;">-*-</p>
<p>The mind is a funny thing they say. Sometimes it will mess with you and sometimes you will mess with it.</p>
<p>Lately I had some sleeping problems. Everything began when Karla gave me her position at work so she could go on a trip in Italy. Why Italy? She was always curious what pizza tasted like in the country that invented it. Yes, she is a simple person.</p>
<p>She is also my best friend, my ex-love-of-my-life and my boss. Most people don&#8217;t believe this is even possible; including me. But the thing is, we were a couple before she was my boss and we were friends way before we were a couple. Or at least this is how I try to explain our relationship, hoping that nobody starts asking questions.</p>
<p>Anyway, I got double the amount of work with the same amount of procrastination. So work kept piling up until it was two weeks before Karla came back. That was when my mind woke me up: &#8220;Hey you. You must stop watching The Peep Show and get down to business. Here is a dose of adrenaline to help you.&#8221; The next five days were a living hell. I was working overtime with little to no sleep. It had occurred to me that I will not make it on time. And then Dani showed up.</p>
<p>One of the benefits of being a hypochondriac is that a lot of people get tired of your whining and after a while just ignore you entirely. Luckily Dani is not that kind of person. He is the closest friend I got and shares the same amount of interest for the things I like: stand up comedy, photography, comic books and LEGO. He is the only person who I can unleash my uncontrolable geekness without feeling that he lost interest in the middle of my sentence, like Karla. Sometimes I really have no idea why she even hangs out with me.</p>
<p>When Dani entered my office and saw me sleeping between two towers of papers he decided to help. Now, Dani is good at a lot of things: he knows what good stand up comedy is, he immediately understands what LEGO pieces are needed to build anything observed in nature and he can even judge a comic by its cover. What Dani is definitely not good at is taking responsibilities.</p>
<p>So when Dani decided to help me, all he really did is triple the height of those paper towers. Unfortunately, I was too tired to care. My first priority was to sleep as much as possible, which proved harder than I thought.</p>
<p>As anyone that hasn&#8217;t slept for more than 40 hours can tell you, when you finally lye down your heart rate increases because it is under a lot of stress. A heart rate that fast will keep you awake until it relaxes. But if you don&#8217;t have enough time you end up going back to work with a mere one hour sleep. That is when I started thinking that I maybe have insomnia.</p>
<p>Every night I was anxious to get enough sleep and because of that anxious I couldn&#8217;t! For a couple of days I couldn&#8217;t remember how much I slept the night before or if I slept at all. I was a zombie at work and a vampire at night. A Vampire-zombie? Then one day Dani came and told me the &#8220;good&#8221; news.</p>
<p>I haven&#8217;t told you the whole story with Karla. Probably because it&#8217;s a long one. But what you need to know is that I always thought that no matter how many relationships she will have, we would one day end up together. We even had those talks every 2-year-old couple has. You know, the one where she makes you say that you will always be together even though, at that moment, you aren&#8217;t even sure if you will be together tomorrow and then you finally realize that you did want to be together, only now its too late because you broke up two weeks ago and she has moved on with one of your most hated friends? Yeah, that talk.</p>
<p>So when Dani came to me and said &#8220;Ross proposed to Karla&#8221; I wasn&#8217;t sure whether I fainted because of that or because I haven&#8217;t slept for a month.</p>
<p>I woke up with Dani&#8217;s arms wrapped around me. I never noticed how loud he snorred. Then I realized, I finally slept!</p>
<p>- &#8220;Dani, Dani, wake up! Wake up man!&#8221;<br />
- &#8220;What?&#8221;<br />
- &#8220;Dani, I finally slept!&#8221;<br />
- &#8220;Well, I still am.&#8221;<br />
- &#8220;Wake up, I wanna know how many hours I was sleeping. What time is it?&#8221;<br />
- &#8220;Dude, the clock is right in front of you.&#8221;<br />
- &#8220;Eight in the morning? Awesome! What time did I go to sleep?&#8221;<br />
- &#8220;You didn&#8217;t. You passed out. And so will I.&#8221;</p>
<p>And that&#8217;s when I remembered. Ross and Karla are gonna get married.</p>
<p>Of all the people in the world, she chose Ross. Sometimes I think that she did this only to get on my nerves. But after so many failed attempts I started to realize how over she is with me. And yet, even though we almost don&#8217;t have anything in common, even though she keeps pushing me to start a conversation, even though I never go out with her, she still calls everyday to see what&#8217;s up, she still finds time to meet me and she still is there for me in every panic attack. Yet, she is going to marry Ross.</p>
<p>Now is a good time to start smoking again.</p>
]]></content:encoded>
			<wfw:commentRss>http://pekalicious.com/blog/anonymous-hypochondriac-part-i/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Introducing &#8216;JSpriteSheetCreator&#8217;</title>
		<link>http://pekalicious.com/blog/introducing-jspritesheetcreator/</link>
		<comments>http://pekalicious.com/blog/introducing-jspritesheetcreator/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 18:48:51 +0000</pubDate>
		<dc:creator>Panagiotis Peikidis</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[game programming]]></category>

		<guid isPermaLink="false">http://pekalicious.com/blog/?p=392</guid>
		<description><![CDATA[One of the first things you will need when developing a 2D game will be a sprite class. This sprite class will eventually need to handle animations. So what do you do? As any prototyping tool you develop, you go look for free graphic resources. Unfortunately, most animated sprites are in a gif format. So [...]]]></description>
			<content:encoded><![CDATA[<p>One of the first things you will need when developing a 2D game will be a sprite class. This sprite class will eventually need to handle animations. So what do you do? As any prototyping tool you develop, you go look for free graphic resources. Unfortunately, most animated sprites are in a gif format. So now you need something that will convert that into a single sprite sheet. Here is where JSpriteSheetCreator comes.</p>
<p><span id="more-392"></span></p>
<p>Either my google-fu isn&#8217;t what it used to or a demand for such an utility isn&#8217;t what I had imagined. I&#8217;m talking about a small application that will take an animated gif file and turn it into a single sprite sheet. Let me rephrase that to make it a little more clear: JSpriteSheetCreator will convert a file <span style="text-decoration: underline;"><strong>FROM</strong></span> an <span style="text-decoration: underline;">animated gif</span> <span style="color: #ff0000;"><span style="text-decoration: underline;"><strong>TO</strong></span></span> a <span style="text-decoration: underline;">single png sprite sheet</span>.</p>
<p>Yeah&#8230; I repeat that because searching for &#8220;<a href="http://www.google.com/search?q=convert+gif+to+single+sprite+sheet">convert gif to single sprite sheet</a>&#8221; or &#8220;<a href="http://www.google.com/search?q=from+gif+&quot;to+sprite+sheet&quot;">from gif &#8220;to sprite sheet&#8221;</a>&#8221; or &#8220;<a href="http://www.google.com/search?q=sprite+sheet+converter">sprite sheet converter</a>&#8221; or &#8220;<a href="http://www.google.com/search?q=FOR+GOD+SAKES+I+NEED+TO+CONVERT+A+GIF+TO+A+PNG">&lt;other search you think will work&gt;</a>&#8221; and any other combination of words I looked for didn&#8217;t work. Google kept returning from sprite sheet to gif. Which is kind of weird because, as I see it, in games, you have better control of the animation with a sprite sheet than a gif. On the other hand, making an animated gif is probably useful for many other reasons.</p>
<p>Anyway, the only application that I finally found was <a title="Avi4BMP" href="http://www.bottomap.com/Software/A4B/A4B.html">Avi4Bmp</a>. Which does the basic job of converting from an animated gif to a png and vise versa pretty good. But I have more ideas for such a tool.</p>
<p>Initially, JSpriteSheetCreator will do just that. But in my next iteration I will add support for reordering the frames and of course import/export <a href="http://www.ziggyware.com/readarticle.php?article_id=138">xml animation data</a> (<strong>WARNING</strong>: as of this time, google will tell you that ziggyware is an attack site. <a href="http://forums.xna.com/forums/p/40420/236290.aspx">They are probably hacked</a> so make sure you know what you are doing i.e. use <a href="https://addons.mozilla.org/en-US/firefox/addon/1865">AdBlock</a> and/or <a href="https://addons.mozilla.org/en-US/firefox/addon/722">NoScript</a>) that will help integrate this into a game developers workflow.</p>
<p>As any other utility I develop, I am hosting this in my own server. You can find it under my <a href="http://pekalicious.com/javacorner">Java Corner</a>. You can even run it without downloading it with Web Start (provided you trust me). You can also find the source code.</p>
<p>Of course, I would like to thank Kevin Weiner for his ultra slim <a href="http://www.fmsware.com/stuff/gif.html">GifDecoder</a> class.</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://pekalicious.com/blog/introducing-jspritesheetcreator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing &#8216;Flickr Fullscreen Scroller&#8217;</title>
		<link>http://pekalicious.com/blog/introducing-flickr-fullscreen-scroller/</link>
		<comments>http://pekalicious.com/blog/introducing-flickr-fullscreen-scroller/#comments</comments>
		<pubDate>Sun, 10 May 2009 17:00:28 +0000</pubDate>
		<dc:creator>Panagiotis Peikidis</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[flickr api]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[one-night-stand]]></category>
		<category><![CDATA[project]]></category>

		<guid isPermaLink="false">http://pekalicious.com/blog/?p=340</guid>
		<description><![CDATA[After playing around with Twitter&#8217;s API, I decided to take a look at Flickr&#8217;s API as well. Nothing special, just something I wanted for myself and decided to extend it for general purpose. So today’s one-night-stand is called… Flickr FullScreen Scroller. It is a web app that shows the photos of a Flickr user account [...]]]></description>
			<content:encoded><![CDATA[<p>After <a title="Twitter Followers Checker - pekalicious" href="http://pekalicious.com/blog/introducing-twitter-followers-checker/" target="_blank">playing around with Twitter&#8217;s API</a>, I decided to take a look at <a title="Flickr API" href="http://www.flickr.com/services/api/" target="_blank">Flickr&#8217;s API</a> as well. Nothing special, just something I wanted for myself and decided to extend it for general purpose. </p>
<p> <span id="more-340"></span>So today’s one-night-stand is called… <a title="Flickr Fullscreen Scroller - pekalicious" href="http://pekalicious.com/flickrfullscreenscroller/" target="_blank">Flickr FullScreen Scroller</a>. It is a web app that shows the photos of a Flickr user account in full-screen. Use left or right arrow keys to navigate threw the photos (left mouse click will also move to the next photo).
</p>
<p>There are <a title="Flickr Full Screen - Google" href="http://www.google.com/search?q=flickr+full+screen" target="_blank">many many fullscreen Flickr slide shows</a> out there, including an <a title="New Flickr Slideshow - To the Pic" href="http://www.tothepc.com/archives/new-flickr-slideshow-embed-view-fullscreen-more/" target="_blank">official one from Flickr</a>, but:</p>
<ol type="a">
<li>Most of them don&#8217;t maximize photos to actual full-screen (as in, fill the entire viewport). They have mirror effects on the bottom, or controls on the top, or arrow overlays etc. I wanted a totally clean interface. </li>
<li>Most of them where slide shows. I wanted to manually browse through the photos. </li>
<li>I wanted the photos to be one next to the other and not one after the other (does that even makes sense?). </li>
<li>They weren&#8217;t developed by me. Everything else is just an excuse. </li>
</ol>
<p>So enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://pekalicious.com/blog/introducing-flickr-fullscreen-scroller/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing &#8216;Strip to Print&#8217;</title>
		<link>http://pekalicious.com/blog/introducing-strip-to-print/</link>
		<comments>http://pekalicious.com/blog/introducing-strip-to-print/#comments</comments>
		<pubDate>Sat, 09 May 2009 17:00:55 +0000</pubDate>
		<dc:creator>Panagiotis Peikidis</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[print]]></category>
		<category><![CDATA[project]]></category>

		<guid isPermaLink="false">http://pekalicious.com/blog/?p=332</guid>
		<description><![CDATA[Have you ever wanted to print a website but only part of it? Especially from a blog. Remove the comments, the navigation menu, the footer; basically everything else other than the post itself. Well, I can think of at least one website that I want to print right now. And, as any programming geek would [...]]]></description>
			<content:encoded><![CDATA[<p>Have you ever wanted to print a website but only part of it? Especially from a blog. Remove the comments, the navigation menu, the footer; basically everything else other than the post itself. Well, I can think of at least <a title="Lighting 101 - Strobist" href="http://strobist.blogspot.com/2006/03/lighting-101.html" target="_blank">one website that I want to print</a> right now. And, as any programming geek would think, the easiest way I found to do so is by creating a small tool.</p>
<p><span id="more-332"></span>So I give you <a title="Strip to Print - pekalicious" href="http://pekalicious.com/striptoprint/" target="_blank">Strip to Print</a>! A tool that will only display the HTML part that you want. It&#8217;s very simple: You enter the URL, the tag that contains the HTML code and then you &#8220;Strip!&#8221; it. For example, enter &#8220;http://pekalicious.com/blog/sharing-the-pae8397-short-film-script/&#8221; as the URL and leave the &#8220;.post&#8221; in the next textfield (or simply click <a title="Strip to Print - Demo" href="http://localhost/striptoprint/index.php?url=http://pekalicious.com/blog/sharing-the-pae8397-short-film-script/&amp;id=.post" target="_blank">here</a>). Click &#8220;Strip!&#8221; and observe the article from my blog striped and ready to be printed.</p>
<p>The hardest part is finding the tag you want. I may add a small DOM selector in the future, but for the time being (and probably for a long time) I recommend Firefox&#8217;s <a title="DOM Inspector - Firefox Addon" href="https://addons.mozilla.org/en-US/firefox/addon/6622" target="_blank">DOM Inspector</a>. I personally use this to find the id, class or DOM path of any website. Warning: <strong><span style="text-decoration: underline;">every matched tag will be displayed</span></strong>. Depending on what you want, this may be desirable or not. For example, enter the &#8220;https://addons.mozilla.org/en-US/firefox/browse/type:1/cat:72?sort=newest&#8221; URL and use &#8220;.addon&#8221; as the tag (or click <a title="Strip to Print - Demo 2" href="http://pekalicious.com/striptoprint/?url=https://addons.mozilla.org/en-US/firefox/browse/type:1/cat:72?sort=newest&amp;id=.addon" target="_blank">here</a>). This will strip all addon DIVs from Firefox&#8217;s addon site. Also notice that a lot are missing (styles, images etc). I said, this is a very basic tool.</p>
<p>Currently I know that WordPress and Blogger use the &#8220;.post&#8221; id while Wikipedia uses the &#8220;.content&#8221; id. Post a comment if you have found a useful id.</p>
<p>Also, under the &#8220;Strip!&#8221; button there is a <a title="Bookmarklet - Wikipedia" href="http://en.wikipedia.org/wiki/Bookmarklet" target="_blank">bookmarklet</a> you can use to quickly access this tool. Just drag and drop the link to your bookmarks toolbar. Now, whenever you want to strip a website click this bookmark, enter the tag and &#8220;Strip!&#8221; it.</p>
<p>Finally, here are two applications I recommend using along with this tool:</p>
<ul>
<li><a title="CutePDF Writer - Acro Software Inc." href="http://www.cutepdf.com/Products/CutePDF/writer.asp" target="_blank">CutePDF Writer</a> will install itself as a printer in your computer. This will allow you to print anything into a pdf.</li>
<li>And once you have a collection of pdf&#8217;s, you can use the <a title="PDF Sam" href="http://www.pdfsam.org/" target="_blank">PDF Sam</a> application to merge them into one.</li>
</ul>
<p>That&#8217;s it. Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://pekalicious.com/blog/introducing-strip-to-print/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sharing the &#8216;PAE8397&#8242; short film script</title>
		<link>http://pekalicious.com/blog/sharing-the-pae8397-short-film-script/</link>
		<comments>http://pekalicious.com/blog/sharing-the-pae8397-short-film-script/#comments</comments>
		<pubDate>Mon, 04 May 2009 17:33:50 +0000</pubDate>
		<dc:creator>Panagiotis Peikidis</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[film]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[short]]></category>

		<guid isPermaLink="false">http://pekalicious.com/blog/?p=289</guid>
		<description><![CDATA[Have you ever started something with your friends and had to leave it because it turns out, nobody was as excited as you were? What did you do about it? Well, I decided to share it. In my case it was a short film. And the thing about short films (and films in general) is [...]]]></description>
			<content:encoded><![CDATA[<p>Have you ever started something with your friends and had to leave it because it turns out, nobody was as excited as you were? What did you do about it?</p>
<p>Well, I decided to share it.</p>
<p><span id="more-289"></span></p>
<p>In my case it was a short film. And the thing about short films (and films in general) is that they involve actors. And if you are anything like me, then the only real acting you can do is merely a cameo. Which means that you really need actors. But here is the catch: it&#8217;s a low-to-no budget film. And just like any other non-profit effort, it means that people that are going to be involved must be at least as half as excited as you are.  Otherwise you might have troubles.</p>
<p>Troubles like people leaving right in the middle of the rehearsals. Right when you thought everything was finally rolling. And the timing was great as well. Less than a week before Easter is over. Not even enough time to shoot. And as that wasn&#8217;t enough, more people became less and less interested until you finally decide to join the club as well.</p>
<p>But it&#8217;s fine. After all, it&#8217;s Easter. People rest this time of the year. Needless to say, it turned out to be a very relaxing Easter. Totally unproductive mind you, but relaxing nonetheless. I also reconnected with some really old friends. And it&#8217;s not like we were gonna make money out of it. We wish, but weren&#8217;t. And then there&#8217;s the summer. It&#8217;s not that far away. Yeah, we still got the summer. Maybe things will go better. We now have plenty of time to rewrite the script, prepare our props, find a little budget and all those boring things.</p>
<p>And then I got this idea. About sharing it on the Internet. To see how people will react. How you will react. &#8220;Not a bad idea&#8221; I thought to myself. &#8220;Not a bad idea at all&#8221;. And so I did.</p>
<h2>Synopsis</h2>
<p>A driver gets robbed in the middle of the night. The thief points a gun at him and orders him to drive to a darker, more quieter place. But the driver doesn&#8217;t obey and instead crashes the car on a tree hoping the thief gets hurt. Unfortunately, the thief gets up again, but, as luck has it, the robber suffers amnesia instead.</p>
<p>The film starts as the thief wakes up and doesn&#8217;t know what&#8217;s happening (neither does the audience).</p>
<p><em>Note: OK. I know the synopsis is horrible. Maybe it isn&#8217;t even a synopsis. But come on. The whole script is 4 pages! It&#8217;s a synopsis by itself!</em></p>
<h2>Film Script</h2>
<ul>
<li>English version: <a href="http://pekalicious.com/blog/wp-content/uploads/2009/05/pae8397-final-draft-en.pdf">pae8397-final-draft-en.pdf</a></li>
<li>Greek version: <a href="http://pekalicious.com/blog/wp-content/uploads/2009/05/pae8397-final-draft-el.pdf">pae8397-final-draft-el.pdf</a></li>
</ul>
<p>This work is licensed under the <a title="Creative Commons Attribution-Non-Commerical-Shar Alike 3.0 Greece Licence" href="http://creativecommons.org/licenses/by-nc-sa/3.0/gr/" target="_blank">Creative Commons Attribution-Non-Commercial-Share Alike 3.0 Greece Licence</a>.</p>
<p><em>Warning: The original script was written in Greek. I tried to translate it as best as I could.</em></p>
<h2>Info</h2>
<p>Number of pages: 4</p>
<p>Estimated running time: 5 minutes</p>
<h2>Making of<strong><br />
</strong></h2>
<p><em>Note: The following will have no sense what so ever if you haven&#8217;t read the script.</em></p>
<p>This film has as few as three actors, one of which has a part of less than 10 seconds. But I&#8217;ll discuss the acting a little later. For now, I want to go threw the set which is quite challenging. Remember, this is a low-budget film, so we will concentrate on as many DIY solutions as possible.</p>
<p>Which begs the question: &#8220;How are you gonna find a crashed car?&#8221;. This is the first thing everybody asked me once they read the second line of the script. Well, the good thing about the scene is that it&#8217;s dark.</p>
<p>You see, the good thing about shooting in the dark is that you can hide a lot of &#8220;mistakes&#8221; since not much can be seen by the audience. So when I was thinking about a crashed car, I was thinking mostly about broken glass stickers, smoke coming out of the engine and stuff like that. There is no reason to actually show the damaged area (or actually damage a car for that matter&#8230; although, now that I think of it&#8230;). Even the part where the driver hits the door several times on a tree can be easily &#8220;pillowed&#8221; externally so that nothing will get damaged.</p>
<p><img class="alignnone size-thumbnail wp-image-303" title="broken glass" src="http://pekalicious.com/blog/wp-content/uploads/2009/05/broken-glass-150x150.jpg" alt="broken glass" width="150" height="150" /></p>
<p>But then there&#8217;s the lighting. That&#8217;s the bad thing about a dark scene. Combine that with the small space of the inside of a car and you got yourself a difficult situation. Lucky for us, <a title="What it took to create 'Collateral' - Cinematographers" href="http://www.cinematographers.nl/THEDoPH4.htm" target="_blank">cinematographer Paul Cameron encountered the same problem when making Collateral</a>:</p>
<blockquote><p>With a majority of the interaction between the two lead characters taking place inside Foxx&#8217;s cab, a system had to be devised to light the actors in a way that would avoid the &#8220;incandescent light in your face&#8221; look while still drawing in the surrounding nightscape. &#8220;Michael wanted this sort of wraparound, non-directional light,&#8221; says Beebe. &#8220;He wanted it to feel like there was no real source, to make it appear that everything was lit from the street by the street&#8217;s own ambience.&#8221;</p>
<p>To accomplish this illusion, Paul Cameron early on developed a system using electro-luminescent panels, such as those used to illuminate digital watches. Having noticed the material illuminating transit bus shelter advertising, Cameron located a local manufacturer, Novatech Electro-Luminescent in Santa Ana, and commissioned the company to make dozens of the panels for use in the cab [and 16 other vehicles]. Roughly 5&#8243; x 15&#8243; in size, approximately 30 of the panels were placed inside the cab, attached with Velcro and controlled by individual dimmers, allowing the units to be shut off or removed, depending on the requirements of the shot.</p></blockquote>
<p>This system is called a LitePanel (or LitePad) and you can find one right here: <a title="LitePad - Rosco" href="http://www.rosco.com/us/video/litepad_ho.asp" target="_blank">http://www.rosco.com/us/video/litepad_ho.asp</a>. On the bottom left you can see exactly how it can easily be place on a steering wheel. Just perfect. But wait; this costs money! So let&#8217;s keep looking shall we?</p>
<p>My next stop was asking the <a title="Lighting the inside of a car - dpreview" href="http://www.dpreview.com/forums/read.asp?forum=1025&amp;message=31619203" target="_blank">good fellas at dpreview</a> to recommend a solution. And sure enough, they came up with two:</p>
<ul>
<li>Use a laptop!</li>
<li>Create a custom LitePanel by buying cheap LEDs ( example product: <a title=" 	 Brightest Day Light White LED Photography Video Panel - Ebay" href="http://cgi.ebay.com/LED-Photography-Video-Panel_W0QQitemZ390038586321QQcmdZViewItemQQptZLH_DefaultDomain_0" target="_blank">http://cgi.ebay.com/LED-Photography-Video-Panel_W0QQitemZ390038586321QQcmdZViewItemQQptZLH_DefaultDomain_0</a>).</li>
</ul>
<p>The laptop is a really great and cheap idea (I&#8217;m not even considering the case where you can&#8217;t at least find one). Just set a white desktop background and your ready to go! You can even have a set of images from completely white to completely black and change them appropriately. Oh oh oh.. You can even <a title="6 iPhone Flashlight Apps? Finally, a Reason to Buy an iPhone - iCrAPP" href="http://icrapp.com/2008/07/14/6-iphone-flashlight-apps-finally-a-reason-to-buy-an-iphone/" target="_blank">create a program that does</a>&#8230; OK&#8230; You know where this is going&#8230;</p>
<p>And then there&#8217;s the DIY solution by buying some cheap LEDs from you local electronics store. Or by breaking something like <a title="28 LED Flashlight Black - nRebate" href="http://www.nrebate.com/en/28-led-flashlight-black.html?language=en&amp;currency=USD" target="_blank">this</a>. What ever works for you.</p>
<p>Whatever your choice, as the guys at dpreview also pointed out, you will have to cover the car ceiling from the inside with white paper to reflect light in order to soften the shadows.</p>
<h2>Plot Holes</h2>
<p>The script, although just 4 pages long, isn&#8217;t perfect. Can you imagine? I was shocked too. Anyway, right in the middle of rehearsing we realized that we haven&#8217;t quite figured out what type of characters we where talking about.</p>
<p>You know, their phychological backgrounds and stuff. I mean, you got this driver that crashes himself on a tree, doesn&#8217;t obey even when aimed by a gun and generally is a badass, but yet doesn&#8217;t beat the sh*t out of the thief when he realizes that he suffers from amnesia. We had to change that. I mean, the gun should be the first thing he&#8217;s thinking about when he gets up.</p>
<p>As for the thief, the more we talked about him, the &#8220;wimpier&#8221; he was becoming. We thought that this robbery might as well be his first unsuccessful attempt. You can clearly see why when the driver has the balls to continue driving even when he shouts at him to stop the damn car with a gun on his neck.</p>
<p>After so many hours of debating, changing, disagreeing and all that, I realize that making a character isn&#8217;t that simple. We changed a lot from this script. The biggest change is with the thief now sitting in the passenger seat and the gun being at his feet. Maybe I&#8217;ll share this version when we are done with the changes.</p>
<p>Or even better, maybe you have any suggestions you would like to share. I&#8217;ll be glad to hear them.</p>
<p>We will probably have this done at summer. Maybe even sooner. Either way, we will definitely upload the result at <a title="TH. - MySpace Film" href="http://www.myspace.com/tadros" target="_blank">Thodoris&#8217; Myspace Film page</a> along with the other projects. So stay tuned!</p>
]]></content:encoded>
			<wfw:commentRss>http://pekalicious.com/blog/sharing-the-pae8397-short-film-script/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Introducing Twitter Followers Checker</title>
		<link>http://pekalicious.com/blog/introducing-twitter-followers-checker/</link>
		<comments>http://pekalicious.com/blog/introducing-twitter-followers-checker/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 20:05:18 +0000</pubDate>
		<dc:creator>Panagiotis Peikidis</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[twitter api]]></category>

		<guid isPermaLink="false">http://pekalicious.com/blog/?p=276</guid>
		<description><![CDATA[Ever so often my Twitter followers list changes and usually that means that somebody stopped following me. Leaving aside their reasons (if you ask me, I wouldn&#8217;t follow me in the first place) I hate the fact that Twitter doesn&#8217;t provide a way of informing me who was it. Instead, I have to remember. And [...]]]></description>
			<content:encoded><![CDATA[<p>Ever so often my Twitter followers list changes and usually that means that somebody stopped following me. Leaving aside their reasons (if you ask me, I wouldn&#8217;t follow me in the first place) I hate the fact that Twitter doesn&#8217;t provide a way of informing me who was it. Instead, I have to remember. And since I have the worst memory anyone could possibly have, I decided to do something about it (about Twitter&#8217;s lack of functionality, not my memory).</p>
<p><span id="more-276"></span>OK, I&#8217;ll admit it, my memory isn&#8217;t the only reason I started this. After all, there&#8217;s <a title="Qwitter" href="http://useqwitter.com" target="_blank">Qwitter</a>, a site that emails you when somebody stops following you. And probably a dozen other similar solutions out there. My main reason for making this is having a chance to finally poke the <a title="Twitter API" href="http://apiwiki.twitter.com/" target="_blank">Twitter API</a> and play around (<a title="Introducing Final Grade Calculator - pekalicious" href="http://pekalicious.com/blog/introducing-final-grade-calculator/" target="_blank">once again</a>) with <a title="jQuery" href="http://jquery.com/" target="_blank">jQuery</a>. Yet another reason would be to avoid doing my practicals, but I doubt I would be doing them anyway.</p>
<p>So, without any further ado, I introduce you to the <a title="Twitter Follower Checker" href="http://pekalicious.com/twitterfollowercheck/" target="_blank">Twitter Follower Checker</a> (name says it all?). This little application took me about a day and still needs a lot of work to actually be any useful, but it quickly tells you what you want to know: Who started/stopped following you.</p>
<p>How does it work? Well, how would you keep track of your followers list changes? Probably the first thing that will come to your mind is to store somewhere (text file?) all your current followers list. Then, when you notice that your followers count has changed you simply compare the old stored list with the new current list.</p>
<p>Well, that is exactly what this does! As you can see, it&#8217;s magic! You enter the users screen name (yes, it can be any user, as long as he is not private), upload the old data and click &#8220;Check!&#8221; to compare the two! Voila! You quickly find out your recent changes and get filled with unattractive numbers.</p>
<p>As in most cases though, no matter how simple an application sounds, there are always some creepy little bugs that can&#8217;t wait to jump in front of you and make your life miserable for a couple of hours at least.</p>
<p>One of those bugs was found while using the <a title="jQuery Form Plugin" href="http://malsup.com/jquery/form/" target="_blank">jQuery Form Plugin</a>. It took me more than an hour to finally find out that a simple change of a string was all it took. See, when you use jQuery Form Plugin with files, you must <a title="Form Plugin: files not supported ? - jQuery Google Groups" href="http://groups.google.com/group/jquery-en/browse_thread/thread/7016828517e5ca47" target="_blank">not have an input with the name attribute set to &#8220;submit&#8221;</a>. That&#8217;s fine. I changed that and my problem still remained.  So I thought that the problem was somewhere else. A couple of hours later I accidentally saw in the Firefox Error Console that &#8220;jquery form plugin form.submit is not a function&#8221;. So I go back to my input field and change the id=&#8221;submit&#8221; to something else and that was it! Or was it? Unfortunately, it was. I wish it was something more sophisticated.</p>
<p>However, the biggest &#8220;bug&#8221; I have is displaying Twitter screen names. I say &#8220;bug&#8221; (with quotation marks) and not bug (without quotation marks) because it seems like one to the end-user but it&#8217;s actually a limitation of the Twitter API (and my time). The problem is fetching the followers list in a human readable way. If you want to fetch a users followers list, Twitter API gives you two options:</p>
<ol>
<li><a title="statuses/followers - Twitter API" href="http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses%C2%A0followers" target="_blank">statuses/followers</a> will return the 100 latest updated followers with full information (name, screen name, location, description etc.)</li>
<li><a title="followers/ids" href="http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-followers%C2%A0ids" target="_blank">followers/ids</a> will return a list of all the followers User IDs (instead of screen names)</li>
</ol>
<p>In the first case, there are two problems: speed and amount. It is dead slow, in contrast with the second case, because you have to download so much information, which is mostly useless, and at the same time it&#8217;s limited to only the last 100 followers.</p>
<p>In the second case there is an even bigger problem. followers/ids provides you with a list of all the followers a user has, but the list contains User IDs instead of usernames. Which would be perfectly fine if translating a User ID to a username wouldn&#8217;t cost you anything. Unfortunately that is not the case. One of the ways of translating is by using<a title="users/show - Twitter API" href="http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-users%C2%A0show" target="_blank"> users/show</a>, which costs one hit for every query. If you have more than 100 followers, it&#8217;s almost impossible.</p>
<p>The end result of this is that, instead of displaying perfectly readable user names, the end-user sees a bunch of linked numbers. Every click on a link costs him 1 hit and takes him to an unreadable xml file.</p>
<p>Of course there are many ways to solve these problems: Caching names, translating the xml etc. But then it wouldn&#8217;t be my one-night-stand application. They all need time, which I have, but prefer spending it on my next one.</p>
<p>On the bright side, I had some fun with the Twitter API. I loved and hated it&#8217;s simplicity. Loved it because it was easy to actually use the API and hated it because the documentation was seriously limited (i.e. you cannot find the 100 followers limitation of the statuses/followers in it&#8217;s documentation page).</p>
<p>Funny story: while trying random usernames, I found that <a title="sdfsdfasd - Twitter" href="http://twitter.com/sdfsdfasd" target="_blank">sdfsdfasd</a> actually is a registered user! Looking closer you will see that he is not that active as one might think. Digging even deeper you find out that the only person he is following (<a title="MITcpw - Twitter" href="http://twitter.com/MITcpw" target="_blank">MITcpw</a>) has many users just like him. Interesting! But boring. Anyway.</p>
<p>One final note. Every time I catch myself using jQuery, I can&#8217;t resist not overusing it. I keep thinking &#8220;can I make this without refreshing the site?&#8221;. So when the time came to add the &#8220;powered by jQuery&#8221; button I said to myself &#8220;this doesn&#8217;t represent me at all&#8221;. So I went and quickly fixed a button that perfectly describes my jQuery usage.</p>
<p><img class="alignnone size-full wp-image-281" title="OVERpowered by jQuery" src="http://pekalicious.com/blog/wp-content/uploads/2009/04/overjq.png" alt="OVERpowered by jQuery" width="110" height="31" /></p>
<p>And there you have it, my latest over-jqueried web app that&#8217;s probably totally useless. Knock yourselves out!</p>
<p>Note to self: start using images in my posts!</p>
]]></content:encoded>
			<wfw:commentRss>http://pekalicious.com/blog/introducing-twitter-followers-checker/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Introducing Final Grade Calculator</title>
		<link>http://pekalicious.com/blog/introducing-final-grade-calculator/</link>
		<comments>http://pekalicious.com/blog/introducing-final-grade-calculator/#comments</comments>
		<pubDate>Wed, 28 Jan 2009 02:15:23 +0000</pubDate>
		<dc:creator>Panagiotis Peikidis</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[calculator]]></category>
		<category><![CDATA[grades]]></category>
		<category><![CDATA[project]]></category>

		<guid isPermaLink="false">http://pekalicious.treazy.com/?p=246</guid>
		<description><![CDATA[I had a lot of free time these days so I sat down to play with jQuery. I ended up creating a small calculator that tells me whether I have a chance to pass a module or not. Turns out, this wasn&#8217;t the right thing to spend my time. There are four types of assessment [...]]]></description>
			<content:encoded><![CDATA[<p>I had a lot of free time these days so I sat down to play with jQuery. I ended up creating a small calculator that tells me whether I have a chance to pass a module or not. Turns out, this wasn&#8217;t the right thing to spend my time.</p>
<p><span id="more-246"></span></p>
<p>There are four types of assessment methods in my college: a practical assessment, a quiz, an asses lab and the final exams. Depending on the module, each method contributes a certain percentage to the final mark.</p>
<p>In the module <a title="Data Structures and Algorithms - City College" href="http://www.city.academic.gr/courses/structure.asp?id=2#dsa">Data Structures and Algorithms</a>, our lecturer <a title="Thanos Hatziapostolou" href="http://www.city.academic.gr/csd/hatziapostolou/">Mr. Thanos Hatziapostolou</a> created a small web page that calculated our final marks. You simply insert the marks, press &#8220;calculate&#8221; and voila, you failed! However, there are two things I didn&#8217;t like about this: a) it is designed for the specific module only and b) you have to insert all the marks, even for the final exams (you guess how much you will get; I also discovered I&#8217;m a bad guesser).</p>
<p>Now I am in the middle of my final exams for this semester and, instead of reading, I&#8217;m wondering how much I need to pass the next module (which I will fail if I continue like this). This module has one practical, that is 30% of the final mark, and a final exam, that is the rest 70%. In the practical I got 61 and I need a final mark of at least 40 to pass any module. I can find how much I need to pass by doing some basic maths:</p>
<blockquote><p>( 40 &#8211; ( 61 * 0.30 ) ) / 0.7</p></blockquote>
<p>So I need to get at least a 31 to pass the module. I know this isn&#8217;t hard to calculate even if there were more assessment methods, but I liked the idea and thought I could give it a shot. So I created my own version of the <a title="Final Grade Calculator" href="http://pekalicious.com/finalgradecalc/">Final Grade Calculator</a>.</p>
<p>In this version, you add the assessment methods you already took and enter the percentage of it&#8217;s contribution to the final mark and the mark you got. You click &#8220;Calculate&#8221; and it will tell you how much you need to pass the module. On the right you enter the minimum mark to pass a module and the maximum mark.</p>
<p>It&#8217;s a single page which uses jQuery. The code is about 170 lines and it took me about two hours.</p>
<p>Enjoy! I gotta go read.</p>
]]></content:encoded>
			<wfw:commentRss>http://pekalicious.com/blog/introducing-final-grade-calculator/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
