<?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>psychopyko</title>
	<atom:link href="http://psychopyko.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://psychopyko.com</link>
	<description>psychopyko</description>
	<lastBuildDate>Wed, 01 Jan 2014 03:52:25 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.2</generator>
		<item>
		<title>Mr. Tiddles has been released!</title>
		<link>http://psychopyko.com/general/mr-tiddles-has-been-released/</link>
		<comments>http://psychopyko.com/general/mr-tiddles-has-been-released/#comments</comments>
		<pubDate>Wed, 01 Jan 2014 03:52:25 +0000</pubDate>
		<dc:creator>pyko</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://psychopyko.com/?p=575</guid>
		<description><![CDATA[After many months of hacking away at the computer, learning to use Gimp and Inkscape, cursing at Google&#8217;s horrible in-app billing testing environment, and general game dev stuff&#8230; my first game, Mr. Tiddles is now available on the Google Play Store! It&#8217;s a simple game in all aspects, but I&#8217;m still happy with the result. The main [...]]]></description>
				<content:encoded><![CDATA[<p>After many months of hacking away at the computer, learning to use Gimp and Inkscape, cursing at Google&#8217;s horrible in-app billing testing environment, and general game dev stuff&#8230; my first game, <a href="https://play.google.com/store/apps/details?id=com.psychopyko.dx3.mrtiddles">Mr. Tiddles</a> is now available on the Google Play Store!</p>
<p>It&#8217;s a simple game in all aspects, but I&#8217;m still happy with the result. The main goal for this game has been achieved &#8211; create a game, finish it, and make it available on the Play Store for all to enjoy!</p>
<p>Throughout the process, I have learnt many many things &#8211; some which I have started to blog about, others which are still blog posts yet to be written.</p>
<p>So, if you feel like playing a simple game on the first day of 2014, head over to <a href="https://play.google.com/store/apps/details?id=com.psychopyko.dx3.mrtiddles">the Play Store</a> and give Mr. Tiddles a whirl <img src='http://psychopyko.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>ps. this is a cross-post from: <a title="http://dx3.psychopyko.com/" href="http://dx3.psychopyko.com/">http://dx3.psychopyko.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://psychopyko.com/general/mr-tiddles-has-been-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Productivity and Focus</title>
		<link>http://psychopyko.com/nifty-tips/productivity-and-focus/</link>
		<comments>http://psychopyko.com/nifty-tips/productivity-and-focus/#comments</comments>
		<pubDate>Fri, 11 Oct 2013 11:43:28 +0000</pubDate>
		<dc:creator>pyko</dc:creator>
				<category><![CDATA[Nifty tips]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[focus]]></category>
		<category><![CDATA[pomodoro]]></category>
		<category><![CDATA[productivity]]></category>

		<guid isPermaLink="false">http://psychopyko.com/?p=548</guid>
		<description><![CDATA[This post is very much inspired by Kris&#8217;s Girl Geek Sydney talk several months ago titled Do ALL the Things! From her talk, I decided to try two of the &#8216;Productivity Hacks&#8217; that I felt was most applicable to me: Pomodoro and Inbox Zero. Neither of these were new to me, though I had never sat down [...]]]></description>
				<content:encoded><![CDATA[<p>This post is very much inspired by <a title="web_goddess" href="https://twitter.com/web_goddess" target="_blank">Kris&#8217;s</a> <a title="Girl Geek Sydney" href="http://www.girlgeeksydney.com/" target="_blank">Girl Geek Sydney</a> talk several months ago titled <a title="Do ALL the things!" href="http://web-goddess.org/archive.php/postID/11485" target="_blank">Do ALL the Things</a>!</p>
<p>From her talk, I decided to try two of the &#8216;Productivity Hacks&#8217; that I felt was most applicable to me: Pomodoro and Inbox Zero.</p>
<p>Neither of these were new to me, though I had never sat down and gave either a serious attempt &#8211; mainly because I was unconvinced with at least one aspect of each. However, Kris was very convincing so this time I decided to give each a decent chance and see how it would go.</p>
<h2>Pomodoro Technique</h2>
<p>If you&#8217;re unfamiliar with the <a title="Pomodoro Technique" href="http://en.wikipedia.org/wiki/Pomodoro_Technique" target="_blank">Pomodoro Technique</a>, the concept is simple:</p>
<ol>
<li>Decide on the task to be done</li>
<li>Set the pomodoro (timer) to 25 minutes</li>
<li>Work on the task until the timer rings; record with an x</li>
<li>Take a short break (3-5 minutes)</li>
<li>Every four &#8220;pomodori&#8221; take a longer break (15–30 minutes)</li>
</ol>
<p>The idea behind the Pomodoro Technique is to increase your focus in the 25 minutes (get more stuff done) but also have breaks in between to prevent burning out.</p>
<p><strong>What prevented me from trying it earlier?</strong><br />
As a developer, the best thing that can happen is to get into the <a title="Flow (psychology)" href="http://en.wikipedia.org/wiki/Flow_(psychology)" target="_blank">flow</a>; the worst is to be disrupted from this flow. My thought was: with a forced 5 minute break every 25 minutes, this would surely break my flow!</p>
<p><strong>What did I find?</strong><br />
Suprisingly, I found the 5 minute breaks didn&#8217;t break my flow in the traditional sense. Yes, the alarm went off, stopping me from typing that extra line or two. However, because it was a planned break I was able to start where I left off almost immediately.</p>
<p>In fact, the feeling of &#8220;Just 5 more minutes and I can keep coding&#8221; helped greatly with concentrating and getting back into the flow easily.</p>
<p>Additionally, because 25 minutes of no distraction is a concrete goal, it was easy to stick to and made concentrating and focussing on the task at hand much easier.</p>
<p><strong>A couple of tips</strong> (that helped me a lot, in no particular order)</p>
<ul>
<li>Use a timer, don&#8217;t just look at the clock. There are lots of free online timers (eg. http://tomato-timer.com)</li>
<li>Work so you can&#8217;t see the countdown, an alarm will go off when time&#8217;s up</li>
<li>Close the usual things that you know will distract you, for me it is email. Other possible distracitons: twitter, instant messaging, facebook etc</li>
<li>Know what your ideal environment for getting stuff done and get into it! eg. I find playing music helps prevent my mind from wandering</li>
<li>Instead of checking email/facebook in the 5 minute break, go and stretch your legs, grab some water, walk away from your computer!</li>
<li>Before you start your first Pomodoro for the day, take time to do all the usual things that distract you (facebook, email etc). Once you start your Pomodoro, that&#8217;s it, no more!</li>
<li>Stick to it. Really try and conciously avoid distractions. There should be no reason that you need to check email or facebook in these 25 minutes. Don&#8217;t open them at all.</li>
</ul>
<h3></h3>
<h2>Inbox Zero</h2>
<blockquote><p><em>It’s about how to reclaim your email, your attention, and your life. &#8230; It’s not how many messages are in your inbox &#8211; it’s how much of your own brain is in that inbox. Especially when you don’t want it to be. That’s it.<br />
~Merlin Mann. Inventor of the &#8216;<a title="Inbox Zero" href="http://inboxzero.com/" target="_blank">Inbox Zero</a>&#8216; concept</em></p></blockquote>
<p><strong>What prevented me from trying it earlier?</strong><br />
My original email inbox workflow would be to read messages as they come in, and leave them in the inbox marked as read. For the ones that needed attention, I&#8217;d star them or leave them unread. In my mind, as long as I had an unread count of zero I had, in my own way, achieved Inbox Zero.</p>
<p>However, even though I had already read and processed the emails, to some degree they were still on my mind. Each time I opened my email, I would see a full inbox (of read emails) and have to think a bit to find the one I needed.</p>
<p><strong>What did I find?</strong><br />
After a few times of failing to find important emails, Inbox Zero seemed like it deserved a try. It was a big leap. I had 9000+ emails in my inbox, but I bit the bullet and went ahead. I selected everything in the inbox, labelled them &#8220;DMZ&#8221; and then archived them. The next 20 min or so was spent cleaning up old filters, creating some new labels to help with organisation and finally I was at Inbox Zero!</p>
<p>Since then, I&#8217;ve had on average 3-5 emails in my inbox (so not quite Inbox Zero) but it has definitely made a huge difference. Although I never realised it, simply having old emails sitting in my inbox was adding to my mental load. Now, for emails to remain in my inbox there needs to be a good reason, otherwise they are archived or get moved to a different label.</p>
<p>It was such a huge difference (one that was not anticipated) that I dreaded opening my work email (which still had the thousands of old/read emails sitting in the inbox). Thus, I found some time and also archived all the emails. Now it longer gives me a headache opening either of my inboxes <img src='http://psychopyko.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Couple of tips</strong> (these are from Gmail, but should be somewhat applicable to other clients):</p>
<ul>
<li>Don&#8217;t be afraid to archive &#8211; chances are you&#8217;ll forget about that email in a couple of days time anyway. No point leaving it in your inbox, all it will do is clutter your inbox</li>
<li>Remeber, when you archive, your email is not lost! You can still get to it (via &#8216;All Mail&#8217;). If you keep this in mind, it makes it so much easier (and less scary) to archive your email</li>
<li>Have some labels (or folders) to help organise your emails so you don&#8217;t have to keep them in your inbox</li>
<li>&#8220;Out of sight, out of mind&#8221; really applies here &#8211; if it needed your attention, you should&#8217;ve already addressed it</li>
</ul>
<p>If you are to take anything away from this post, it would be the following. Firstly, work in such a way that you can focus; distractions, multitasking and context switching will only hinder your productiveness. Secondly, actually give those productivity hacks you&#8217;ve read about a good shot; don&#8217;t dismiss them without making a serious attempt.</p>
<p>To productivity and getting all the things done!</p>
]]></content:encoded>
			<wfw:commentRss>http://psychopyko.com/nifty-tips/productivity-and-focus/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Meteor: 6 Simple Tips</title>
		<link>http://psychopyko.com/cool-stuff/meteor-6-simple-tips/</link>
		<comments>http://psychopyko.com/cool-stuff/meteor-6-simple-tips/#comments</comments>
		<pubDate>Tue, 03 Sep 2013 13:06:00 +0000</pubDate>
		<dc:creator>pyko</dc:creator>
				<category><![CDATA[Cool stuff]]></category>
		<category><![CDATA[Nifty tips]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[meteor]]></category>

		<guid isPermaLink="false">http://psychopyko.com/?p=532</guid>
		<description><![CDATA[As part of the &#8216;Poison Blog&#8217; concept, I decided to write a small web app to display a listing of the posts since I thought it would be nice to have an index stored somewhere. After looking around a bit, I decided to use Meteor. Meteor is a JavaScript framework that smartly bundles other JavaScript [...]]]></description>
				<content:encoded><![CDATA[<p>As part of the &#8216;Poison Blog&#8217; concept, I decided to write a small web app to display a listing of the posts since I thought it would be nice to have an index stored <a title="Poison Blog" href="http://poison-blog.meteor.com/" target="_blank">somewhere</a>. After looking around a bit, I decided to use <a title="Meteor" href="http://www.meteor.com/" target="_blank">Meteor</a>.</p>
<p>Meteor is a JavaScript framework that smartly bundles other JavaScript packages to allow you to create web apps super fast. What usually takes quite a bit of effort (setting up database, getting templates to work etc) is there, out of the box when you create a Meteor project.</p>
<p>Won&#8217;t go into the details of how it works (to be honest, I don&#8217;t know myself), instead I shall share some tips that I have come across whilst playing around with Meteor.</p>
<h2>1. Read the docs, they&#8217;re good</h2>
<p>Although you may feel like jumping straight in after watching a video or two about Meteor, I highly recommend reading (or at least skimming) through the <a title="Meteor Documentation" href="http://docs.meteor.com/" target="_blank">Meteor Documentation</a>, they are very well written. Go to them as your first point of reference when you&#8217;re confused or stuck. One tip when reading the docs, take careful note of the Server/Client availability, not only will it help with using it properly, it also helps with understanding it.</p>
<h2>2. Unofficial Meteor FAQ</h2>
<p>If the official docs don&#8217;t answer all your questions,  another goto place is the <a title="Unofficial Meteor FAQ" href="https://github.com/oortcloud/unofficial-meteor-faq" target="_blank">Unofficial Meteor FAQ</a>. It has a pretty good list of questions, answers, misc tips and is fairly well maintained. There is always Google; but often there is too much information and you don&#8217;t always know good from bad. Reading through this FAQ could potentially save hours sifting through random answers/results from Google.</p>
<h2>3. MongoDB</h2>
<p>Out of the box, Meteor uses <a title="MongoDB" href="http://www.mongodb.org/" target="_blank">MongoDB</a> for persistence which allows you to use <a title="JSON" href="http://www.json.org/" target="_blank">JSON</a> as the one data format across your entire app. This is great, except if you are very new to Mongo or never used it before. Meteor collections and Mongo syntax are pretty much the same (with some very minor differences), so if you know Mongo you&#8217;ll be fine. If you don&#8217;t, here are two quick tips that will hopefully save a lot of pain.</p>
<ol>
<li><code><strong>fetch()</strong> - eg. Posts.find()<strong>.fetch()</strong></code><br />
Running <code><strong>Posts.find()</strong></code> will return a <a title="Meteor.Collection.Cursor" href="http://docs.meteor.com/#meteor_collection_cursor" target="_blank">cursor</a>, but calling <code><strong>fetch()</strong></code> returns the JSON object. This is extremely useful when debugging via the browser console. The cursor has other usages, but when debugging to find out what data is available to use, you probably just want to see the JSON.</li>
<li><code><strong>{multi: true}</strong> - eg. Posts.update({}, {$set: {graduated : true}, <strong>{multi: true}</strong>})</code><br />
This maybe basic knowledge to those familiar with Mongo, but not so for those who are not. By default, Mongo&#8217;s <code><strong>update()</strong></code> method only updates one document. In order to update several documents, you need to use the multi option.</li>
</ol>
<h2>4. Default packages: autopublish and insecure</h2>
<p>By default Meteor comes with two packages: <strong>autopublish</strong> and <strong>insecure</strong>. These are great for debugging and prototyping, but not so much for production, since they will definitely be a security concern if left in.</p>
<ul>
<li>autopublish &#8211; publishes all the collections automatically (ie. all collections will be available on the client)</li>
<li>insecure &#8211; gives the client full read/write access to the database</li>
</ul>
<p>As you can imagine, you would only want the client to know about collections (and fields) that you have specified, and definitely only want the client to make certain database calls.</p>
<p>To remove these packages simply run &#8216;<code>meteor remove autopublish</code>&#8216; and &#8216;<code>meteor remove insecure</code>&#8216; from the command line. On the Server side of things, you will now need to specifically <a title="Meteor.Publish" href="http://docs.meteor.com/#meteor_publish" target="_blank">publish</a> collections you want to expose to the client and <a title="collection.allow()" href="http://docs.meteor.com/#allow" target="_blank">define the access</a> permissions the client has to the database.</p>
<h2>5. Publishing/Subscribing + ready()</h2>
<p>In general, Meteor apps are blazingly fast&#8230;with the exception of the initial load when the server is pushing the database documents to the client. There can often be a few seconds before the collection is ready for the client to use (especially true when not running on localhost). In general you will want to do something while waiting for the collection to be ready before accessing the collection. Checking if the collection is ready is quite simple. Below are code snippets form the client/server that demonstrate how this can be achieved.</p>
<pre class="brush: jscript; title: ; notranslate">
// Server
Meteor.Publish('posts', function(){
   return Posts.find({}); // publish the posts collection
});

// Client
postsSubscription = Meteor.Subscribe('posts');

if (postsSubscription.ready()) {
   // Posts collection is now ready!
}
</pre>
<h2>6. Single page app</h2>
<p>From my understanding of Meteor, it is ideally used for single page apps. However, if you want multi page apps that is also possible, you just need to add a router to handle this. Meteor doesn&#8217;t come with a router package, however there are many available in <a title="Atmosphere" href="https://atmosphere.meteor.com/" target="_blank">Atmosphere</a>. To install packages from Atmosphere, you will first need to get <a title="Meteorite" href="http://oortcloud.github.io/meteorite/" target="_blank">Meteorite</a>.</p>
<p>You will notice that many tutorials will refer to &#8220;meteor-router&#8221;, however development on that project has now shifted to &#8220;iron-router&#8221;. <a title="Iron Router" href="https://github.com/EventedMind/iron-router" target="_blank">Iron Router</a> is a bit more complicated, but it is also a lot more powerful. It is well worth the effort in reading up and learning Iron Router if you want to have mult-page apps. If you want a quick overview/introduction to Iron Router, here is a good <a title="Metero Iron Router by EventedMind" href="https://www.eventedmind.com/posts/meteor-ironrouter" target="_blank">introduction video</a> by the guys who made Iron Router.</p>
]]></content:encoded>
			<wfw:commentRss>http://psychopyko.com/cool-stuff/meteor-6-simple-tips/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mail Merge, GMail Style</title>
		<link>http://psychopyko.com/cool-stuff/mail-merge-gmail-style/</link>
		<comments>http://psychopyko.com/cool-stuff/mail-merge-gmail-style/#comments</comments>
		<pubDate>Sun, 04 Aug 2013 10:16:46 +0000</pubDate>
		<dc:creator>pyko</dc:creator>
				<category><![CDATA[Cool stuff]]></category>
		<category><![CDATA[Nifty tips]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://psychopyko.com/?p=501</guid>
		<description><![CDATA[A few days ago, a friend asked me if it was possible to do mail merge with GMail. No out of the box solution came to mind, but a bit of Googling revealed that it would be possible with a bit of scripting &#8211; in Google Spreadsheets! The scripting I speak of is Google Apps [...]]]></description>
				<content:encoded><![CDATA[<p>A few days ago, a friend asked me if it was possible to do mail merge with GMail. No out of the box solution came to mind, but a bit of Googling revealed that it would be possible with a bit of scripting &#8211; in Google Spreadsheets! The scripting I speak of is <a title="Google Apps Script" href="https://developers.google.com/apps-script" target="_blank">Google Apps Script</a> which allows you to write JavaScript to interact with various Google apps.</p>
<p>The concept is very similar to VBA and Excel, however I think it is even more powerful because it has several convenient methods that allows you to easily leverage other Google apps. For example, to send an email as the currently logged in user all you need to do is: <code>MailApp.sendEmail(email, emailSubject, emailBody);</code></p>
<p>As you can probably imagine, to get a mail merge working would require a fair bit of learning the spreadsheets API. However, luckily for me, Google has an excellent <a title="Simple Mail Merge" href="https://developers.google.com/apps-script/articles/mail_merge" target="_blank">Simple Mail Merge</a> tutorial <img src='http://psychopyko.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>The tutorial takes you through the basics and explains the code quite clearly. However, my friend had a few extra requirements, so I needed to make few changes. I will go through a couple of the more interesting changes.</p>
<p>Firstly, sending a test email before sending out all the emails was high on the &#8216;nice to have&#8217; list. This led me to discover <a title="Google Apps Script: Browser" href="https://developers.google.com/apps-script/reference/base/browser?hl=en" target="_blank"><code>Browser.inputBox</code></a> which is like the JavaScript <code>window.prompt</code>.</p>
<p>So a new method came to light:</p>
<pre class="brush: jscript; title: ; notranslate">
function sendTestEmail() {
	var testEmail = Browser.inputBox(&quot;Send test email&quot;, 
									 &quot;Enter email address to send test email to&quot;, 
									 Browser.Buttons.OK_CANCEL);
	
	if (testEmail != 'cancel') { //inputBox returns 'cancel' if Cancel was clicked
		//...
		// Code that grabs the relevant information from spreadsheet
		//...
		MailApp.sendEmail(testEmail, emailSubject, emailText, extraOptions);
	}
}	
</pre>
<p>If you&#8217;ve had a look at the tutorial, you&#8217;ll notice they had a hard-coded email subject. To make things flexible I also made that template-able &#8211; essentially an extra cell in the spreadsheet that was dedicated for the subject (same pattern as the email body).</p>
<p>The more interesting addition would probably be <code>extraOptions</code>. This was added for two reasons: sender name and attachments.</p>
<p>1) Sender name<br />
Apparently <code>MailApp.sendEmail()</code> is supposed to use the user&#8217;s name by default, but in my testing, it defaulted to my email address. Could&#8217;ve been that my account wasn&#8217;t set up properly, but regardless, added the functionality to allow for a custom sender name.</p>
<p>2) Attachments<br />
This was surprisingly easy. From the docs for <a title="Google Apps Script: MailApp" href="https://developers.google.com/apps-script/reference/mail/mail-app" target="_blank">MailApp</a>, you can source the attachment from Google Drive, or an external URL. I opted for the latter. My friend only needed one or two attachments, so I took the lazy path and did not accommodate for more. However it should be just a bit more work to make it take an arbitrary number of attachments.</p>
<p>The code for the <code>extraOptions</code> object is as follows:</p>
<pre class="brush: jscript; title: ; notranslate">
var extraOptions = {};
var senderName = templateSheet.getRange(&quot;D1&quot;).getValue();
extraOptions.name = senderName;

var resp;
var attachmentUrl1 = templateSheet.getRange(&quot;D3&quot;).getValue();
var attachmentUrl2 = templateSheet.getRange(&quot;D4&quot;).getValue();

if (attachmentUrl1 || attachmentUrl2) {
	extraOptions.attachments = [];

	if (attachmentUrl1) {
		resp = UrlFetchApp.fetch(attachmentUrl1); 
		if (resp.getResponseCode() == 200){
			extraOptions.attachments.push(resp);
		}
	}

	if (attachmentUrl2) {
		resp = UrlFetchApp.fetch(attachmentUrl2); 
		if (resp.getResponseCode() == 200){
			extraOptions.attachments.push(resp);
		}
	}
}
</pre>
<p>Finally, although it was relatively simple to run the desired script via &#8220;Tools -&gt; Script Manager&#8221; I felt it would be nice to have dedicated buttons or menu to make it even simpler. This was made almost trivial with the ability to add a custom menu to the spreadsheet ui.</p>
<p>A few lines of code&#8230;</p>
<pre class="brush: jscript; title: ; notranslate">
function onOpen() {
	var ss = SpreadsheetApp.getActiveSpreadsheet();
	var menuEntries = [ {name: &quot;Send test email&quot;, functionName: &quot;sendTestEmail&quot;},
                        {name: &quot;Send email to ALL&quot;, functionName: &quot;sendEmails&quot;}];
  	ss.addMenu(&quot;Send Mails&quot;, menuEntries);
}
</pre>
<p>&#8230;resulted in a relatively user-friendly menu:<br />
<img src="http://psychopyko.com/wp-content/uploads/2013/08/custom-menu.png" alt="custom-menu" width="306" height="135" class="alignnone size-full wp-image-515" /></p>
<p>Overall, the experience was quite positive. From not even knowing about Google App Scripts, to having a working mail merge working in a few hours was very satisfying. However, as always there are a few not so nice parts.</p>
<p>The main one would be speed. From the user side, the scripts seemed rather sluggish. It wasn&#8217;t as responsive as I had hoped. From the development side, the built-in script editor was a bit slow and not that nice to use, especially the debugger. During development, the editor/debugger even crashed my Chrome.</p>
<p>The authorisation process (it asks for permission to send emails as you), though required was a bit confusing and didn&#8217;t feel very smooth. When I first shared the document with my friend, the custom menu didn&#8217;t appear. It was only after a refresh did the authorisation prompts appear and *then* the menu showed up after several seconds.</p>
<p>Although I can&#8217;t think of any other application for these scripts at the moment, hopefully you have found it useful. I know that next time I need to automate something related to Google&#8217;s apps, I will definitely have a look into these scripts to see what can be done.</p>
<p>One final comment. In the <code>sendEmails()</code> function, the tutorial makes use of <code>dataSheet.getMaxRows()</code>, however I don&#8217;t see a reason why it shouldn&#8217;t use <code>dataSheet.getLastRow()</code> instead &#8211; anyone have any ideas?</p>
]]></content:encoded>
			<wfw:commentRss>http://psychopyko.com/cool-stuff/mail-merge-gmail-style/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Challenge accepted!</title>
		<link>http://psychopyko.com/general/challenge-accepted/</link>
		<comments>http://psychopyko.com/general/challenge-accepted/#comments</comments>
		<pubDate>Thu, 11 Jul 2013 12:18:33 +0000</pubDate>
		<dc:creator>pyko</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[musings]]></category>
		<category><![CDATA[poison]]></category>
		<category><![CDATA[psychology]]></category>

		<guid isPermaLink="false">http://psychopyko.com/?p=437</guid>
		<description><![CDATA[During a random conversation with a group of friends, we realised that all of us wanted to blog regularly. Thus began the idea of a &#8216;Poison blog&#8217;. So, to avoid the wrath of the deadly poison post (which apparently can cause a horrible death) below is my first contribution&#8230;in the form of a book review [...]]]></description>
				<content:encoded><![CDATA[<p>During a random conversation with a group of friends, we realised that all of us wanted to blog regularly. Thus began the idea of a &#8216;Poison blog&#8217;. So, to avoid the wrath of the deadly poison post (which apparently can cause a horrible death) below is my first contribution&#8230;in the form of a book review (sort of, but not really).</p>
<p>The book in question is &#8220;Thinking, fast and slow&#8221; by Daniel Kahneman, and the reason it&#8217;s only sort of a book review is I haven&#8217;t finished reading it! In fact, probably only about a fifth of the way. Nevertheless, it is a very interesting book and I would like to share a few of the things I&#8217;ve read so far and have found interesting.</p>
<p>The book explains how our mind consists of two very different systems that determines the way we think and make decisions. Kahneman has named these systems: System 1 and System 2.</p>
<ul>
<li><span style="line-height: 13px;"><strong>System 1</strong>: intuitive, fast and emotional. It&#8217;s automatic so you can&#8217;t really stop it from doing it&#8217;s thing. For example you when you see 1 + 1 your System 1 has already calculated the answer.</span></li>
<li><strong>System 2</strong>: deliberate, slow and logical. It&#8217;s controlled (and somewhat lazy) so you need to actually focus and work for System 2 to perform it&#8217;s magic. For example when you see 42 x 38 you know you can calculate that in your head (or maybe on paper) but that&#8217;ll require some effort.</li>
</ul>
<p>Generally speaking, System 1 is always running in the background and making sense of the world around us. This means that it is common for System 1 to jump to a conclusion and System 2 (being lazy) assumes that the conclusion System 1 has provided is correct and makes decisions based on it.</p>
<p>Of course our minds work this way for a good reason. If we didn&#8217;t have something that very quickly and automatically made sense of the world around us we would probably be in a lot of trouble. The assumptions that System 1 makes are often correct or good enough. For example, picture this: &#8220;A large mouse crawled over a small elephant&#8217;s trunk&#8221;, chances are that in your mind&#8217;s eye the mouse was still small when compared to the elephant.</p>
<p>However, there are flaws. When asked: &#8220;How many animals of each kind did Moses take onto the ark?&#8221;, many fail to see the error in the question. Moses didn&#8217;t take any animals onto the ark, Noah did. The fact that Moses is also a biblical character is enough to trick System 1 to not raise any flags and jump to a plausible answer.</p>
<p>There are several other weak points where System 1 can often make mistakes, leading us to provide an incorrect answer or choice. What makes this disparity between System 1 and System 2 interesting (and somewhat scary) is that often System 2 believes it is in control and making the correct decisions!</p>
<p>The important thing to make a mental note of is that this happens to everyone, including you! We have no conscious access or control to what System 1 is gives to System 2, and since System 2 believes that it is the one that came up with the conclusion, it is often hard (maybe sometimes even impossible) to notice what has happened. Though the knowledge that System 1 can at times fail us is a good start to turn on System 2 bit more frequently, take a second look and question one&#8217;s immediate reaction to a particular situation.</p>
<p>So next time you make a decision, maybe take an extra moment to think it over. Have you made any assumptions that could be incorrect? If so, will that change your original decision?</p>
]]></content:encoded>
			<wfw:commentRss>http://psychopyko.com/general/challenge-accepted/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Six tips for the Chrome Developer Tools</title>
		<link>http://psychopyko.com/nifty-tips/six-tips-for-the-chrome-developer-tools/</link>
		<comments>http://psychopyko.com/nifty-tips/six-tips-for-the-chrome-developer-tools/#comments</comments>
		<pubDate>Sun, 27 Jan 2013 04:59:41 +0000</pubDate>
		<dc:creator>pyko</dc:creator>
				<category><![CDATA[Nifty tips]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[degugging]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[shortcut]]></category>

		<guid isPermaLink="false">http://psychopyko.com/?p=405</guid>
		<description><![CDATA[If you&#8217;ve done any web development, you&#8217;re probably familiar with the Chrome Developer Tools and how handy it is for debugging those nasty css/js bugs. You&#8217;re probably familiar with the bread and butter of the toolbar &#8211; inspect element, css tweaking, setting breakpoints in the JavaScript etc. So instead of going through those, I&#8217;m going [...]]]></description>
				<content:encoded><![CDATA[<p>If you&#8217;ve done any web development, you&#8217;re probably familiar with the Chrome Developer Tools and how handy it is for debugging those nasty css/js bugs.</p>
<p>You&#8217;re probably familiar with the bread and butter of the toolbar &#8211; inspect element, css tweaking, setting breakpoints in the JavaScript etc. So instead of going through those, I&#8217;m going to list a five tips here that you may not yet know and will hopefully make your debugging experience slightly less painful.</p>
<h1>1. Super search: Cmd + Opt + F (Mac) / Ctrl + Shift + F (Win)</h1>
<p>This shortcut is super useful for the times when you just do a massive &#8220;search all&#8221; to find a keyword across all your files. It will search through all your source files &#8211; html, css, js <img src='http://psychopyko.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Once you&#8217;ve found what you were looking for, click on the search results to jump to the corresponding file.</p>
<div id="attachment_406" class="wp-caption alignnone" style="width: 410px"><a href="http://psychopyko.com/wp-content/uploads/2013/01/search-all.png" target="_blank"><img class=" wp-image-406 " title="Search all sources" alt="" src="http://psychopyko.com/wp-content/uploads/2013/01/search-all-300x144.png" width="400" height="192" /></a><p class="wp-caption-text">Cmd + Opt + F (Mac) or Ctrl + Shift + F (Win) to search all your sources</p></div>
<p>&nbsp;</p>
<h1>2. Dock the toolbar on the right/bottom &#8211; the easy way</h1>
<p>By default, the dev toolbar docks at the bottom and opens in a new window if you need more screen real estate for debugging. I personally don&#8217;t like opening the toolbar in a new window &#8211; more than one debug session and it&#8217;s easy to get lost between the windows. Depending on the page layout, what you&#8217;re debugging etc you may want more vertical space than horizontal&#8230; introducing docking the toolbar to the right!</p>
<p><img class="alignright" title="Switch to dock right" alt="" src="http://psychopyko.com/wp-content/uploads/2013/01/dock-right.png" width="165" height="78" />The easiest way is to long-press the bottom left button and select the &#8216;dock to right&#8217; icon. You&#8217;ll notice when the toolbar is docked to right, the icon will change to &#8216;dock to bottom&#8217;. You can now easily toggle between dock on bottom and right by clicking on that icon. If you do ever want to open the toolbar in a new window, just long press on the icon and choose the &#8216;new window&#8217; icon.</p>
<p>&nbsp;</p>
<h1>3. Clear console: Cmd + K (Mac) / Ctrl + L (Mac/Win)</h1>
<p>This shortcut clears the contents of your console &#8211; useful when you&#8217;ve got a lot of debug stuff in your console and want to clear it out so there is less stuff to get in the way. You can also type &#8220;clear&#8221; as a command, but two keystrokes is much better than six.</p>
<p>&nbsp;</p>
<h1>4. Open/close the console: Esc (Mac/Win)</h1>
<p>The console is very useful, but sometimes you want to hide it. Alternatively you might be inspecting an element when you want to open the console for a bit of sanity checking. If your hands are already on the keyboard, just hit the &#8220;Esc&#8221; key when you&#8217;ve got focus on the developer toolbar and it will open/close the console.</p>
<p>&nbsp;</p>
<h1>5. console.log(&#8220;foo&#8221; + bar) vs console.log(&#8220;foo&#8221;, bar)</h1>
<p>Using <strong><em>console.log(&#8220;foo &#8221; + bar)</em></strong> is primitive, but definitely useful. This works if you&#8217;re after the value of the variable; but being told that <strong><em>bar</em></strong> is an <em><strong>Object &#8211; [object Object] </strong></em>isn&#8217;t all that helpful when debugging.</p>
<p>However, if you use a comma instead of a plus, Chrome Dev Tools will very kindly print the object and let you inspect the object instead <img src='http://psychopyko.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://psychopyko.com/wp-content/uploads/2013/01/console-log.png" target="_blank"><img class="alignnone size-medium wp-image-409" title="console-log" alt="Example of difference" src="http://psychopyko.com/wp-content/uploads/2013/01/console-log-300x181.png" width="300" height="181" /></a></p>
<p>&nbsp;</p>
<h1>6. Make minified code suck less (ie. slightly more readable)</h1>
<p>Unfortunately there comes a time when you&#8217;ll be debugging and you&#8217;ll step into some minified code which is pretty much completely uncomprehensible. Luckily, you can make the minified code slightly prettier by adding some formatting at the click of a button! The magic button to click is the one that looks like a pair of parenthesis: <strong>{ }</strong></p>
<p>The variable and function names may still make your head hurt, but at least you can now set breakpoints and make educated guesses as to what is going on.</p>
<p><a href="http://psychopyko.com/wp-content/uploads/2013/01/prettify.png" target="_blank"><img class="alignnone size-medium wp-image-410" title="Prettify minified code" alt="" src="http://psychopyko.com/wp-content/uploads/2013/01/prettify-300x153.png" width="300" height="153" /></a></p>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://psychopyko.com/nifty-tips/six-tips-for-the-chrome-developer-tools/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sandbox: CSS transforms and animations</title>
		<link>http://psychopyko.com/cool-stuff/sandbox-css-transforms-and-animations/</link>
		<comments>http://psychopyko.com/cool-stuff/sandbox-css-transforms-and-animations/#comments</comments>
		<pubDate>Sun, 19 Aug 2012 03:41:16 +0000</pubDate>
		<dc:creator>pyko</dc:creator>
				<category><![CDATA[Cool stuff]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[sandbox]]></category>

		<guid isPermaLink="false">http://psychopyko.com/?p=393</guid>
		<description><![CDATA[You are now reading the first of my &#8220;Sandbox&#8221; posts The idea of this &#8220;Sandbox&#8221; is that there are so many cool things on the web that I keep seeing and wanting to learn/try out. I&#8217;m very much a hands-on learning person, so the sandbox is going to be a collection of my random explorations [...]]]></description>
				<content:encoded><![CDATA[<div id="attachment_395" class="wp-caption alignright" style="width: 310px"><a href="http://psychopyko.com/wp-content/uploads/2012/08/cube.png"><img class="size-medium wp-image-395" title="CSS Cube" alt="CSS Cube" src="http://psychopyko.com/wp-content/uploads/2012/08/cube-300x270.png" width="300" height="270" /></a><p class="wp-caption-text">Cube &#8211; created by CSS!</p></div>
<p>You are now reading the first of my &#8220;Sandbox&#8221; posts <img src='http://psychopyko.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>The idea of this &#8220;Sandbox&#8221; is that there are so many cool things on the web that I keep seeing and wanting to learn/try out. I&#8217;m very much a hands-on learning person, so the sandbox is going to be a collection of my random explorations of things that have caught my attention. Hopefully I&#8217;ll be able to regularly update the sandbox!</p>
<p>The first thing to go into my sandbox is an exploration of CSS transforms and animations. On Thursday, I went to &#8220;<a title="What do you know? Webdirections" href="http://whatdoyouknow.webdirections.org" target="_blank">What do you know?</a>&#8221; (it&#8217;s awesome!) and listened to <a title="Patrick Catanzariti" href="http://www.patrickcatanzariti.com/" target="_blank">Patrick</a> talked about &#8220;Moving to a 3D web with CSS&#8221;, in which he showed us how easy it was to make a cube using CSS.</p>
<p>Been meaning to look into CSS transforms for a long time, so this was a sign! Thus I spent most of my Saturday hacking at CSS <img src='http://psychopyko.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  For the impatient, here&#8217;s the <a title="pyko's sandbox" href="https://bitbucket.org/pyko/sandbox/src" target="_blank">source code</a> (under 2012-08-18).</p>
<p>Here are two tutorials that I found extremely helpful when poking around with the CSS:</p>
<ul>
<li><a title="Keyframe Animation Syntax" href="http://css-tricks.com/snippets/css/webkit-keyframe-animation-syntax/" target="_blank">Keyframe Animation Syntax</a></li>
<li><a title="The Guide To CSS Animation: Principles and Examples" href="http://coding.smashingmagazine.com/2011/09/14/the-guide-to-css-animation-principles-and-examples/" target="_blank">The Guide To CSS Animation: Principles and Examples</a> (used this as a tutorial for the bounce example)</li>
</ul>
<p>The above two links will give you a good start on your CSS animation journey, so instead of writing a tutorial, I&#8217;m going to highlight some &#8220;gotchas&#8221; that I hit yesterday.</p>
<p>&nbsp;</p>
<h1><strong>Animation is cool &#8211; but you have to define it!</strong></h1>
<p><strong></strong>When you see something like this:</p>
<blockquote>
<pre>-webkit-animation: spin 8s infinite linear;</pre>
</blockquote>
<p>Don&#8217;t be tricked! The &#8220;spin&#8221; is actually not a built-in animation, you have to define it yourself. At first, it might seem like more work, but it&#8217;s quite simple and it also means you can specify how the animation works. For example, here is my &#8216;spin&#8217; definition:</p>
<blockquote>
<pre>@-webkit-keyframes spin {
   from { -webkit-transform: rotateY(0) rotateX(0); }
   to { -webkit-transform: rotateY(360deg) rotateX(360deg); }
}</pre>
</blockquote>
<p>I&#8217;ve decided to rotate on both the X and Y axis to make the rotation more interesting. The syntax is fairly simple (but powerful) once you get the hang of it. For a detailed explanation of the syntax have a look at: <a title="Keyframe Animation Syntax" href="http://css-tricks.com/snippets/css/webkit-keyframe-animation-syntax/" target="_blank">Keyframe Animation Syntax</a></p>
<h1><strong>Required properties</strong></h1>
<p>Now I could be wrong here (please correct me if I&#8217;m wrong!), but at least from my experience so far it appears that you need these two properties for things to work:</p>
<ol>
<li><strong>position: absolute;</strong><br />
Seems to be needed for both 2D and 3D animations, otherwise the transforms don&#8217;t seem to have something to &#8216;anchor&#8217; to.</li>
<li><strong>-webkit-transform-style: preserve-3d;<br />
</strong>Needed for 3D animations if you want your shape to keep it&#8217;s 3D-ness when it&#8217;s being transformed/animated</li>
</ol>
<h1><strong>The axes rotate with the element when you transform it</strong></h1>
<p>By default, if you are looking at a webpage, the x-axis is the horizontal axis, the y-axis is the vertical axis and the z-axis the one coming out of the screen. The origin is the &#8216;<em>-webkit-transform-origin</em>&#8216; of the element, and like the cartesian plane, right is positive x, up is positive y, and out of the screen towards you is positive z.</p>
<p>Now, when you transform your element, the axes for that element rotates with it &#8211; that is, each element has it&#8217;s own set of axes. So, if you rotate an element 90deg by the x-axis &#8216;<em>-webkit-transform: rotateX(90deg)&#8217;, </em>the positive y-axis is now pointing out behind the screen (away from you) and the z-axis is now what the y-axis used to be.</p>
<h1><strong>Each element can only have one transform property</strong></h1>
<p>A transform property for an element, looks something like this:</p>
<blockquote>
<pre>-webkit-transform: rotateX(90deg) translateZ(100px);</pre>
</blockquote>
<p>Now, if you apply another transform to this element (maybe via animation) that new transform property will override the initial property. It is quite annoying that you can&#8217;t stack the transform properties, but the &#8216;transform&#8217; property is actually a single property (and not shorthand) so you can&#8217;t specify to change just one type of transform.</p>
<p>This means, if you want a more complicated animation, you will need to wrap the element in a div and animate both the inner and outer div. This can cause your HTML to become quite ugly, but can&#8217;t see a way around this.</p>
<h1><strong>Upgrade your browsers!</strong></h1>
<p>I did all my development using Chrome, and after everything was working, added the &#8216;<em>-moz</em>&#8216; versions to the CSS, opened it in Firefox and the cube didn&#8217;t rotate! After spending some 15min of debugging, realised I was using an old-ish version of Firefox (version 8). Upgraded to version 12 and the cube magically rotates <img src='http://psychopyko.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
<p>That&#8217;s all I&#8217;ve got for now, hopefully it has been helpful and/or made you want to go and try some CSS for yourself. If you missed it, you can see the <a title="pyko's sandbox" href="https://bitbucket.org/pyko/sandbox/src" target="_blank">code here</a> (under 2012-08-18).</p>
]]></content:encoded>
			<wfw:commentRss>http://psychopyko.com/cool-stuff/sandbox-css-transforms-and-animations/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Time</title>
		<link>http://psychopyko.com/general/time/</link>
		<comments>http://psychopyko.com/general/time/#comments</comments>
		<pubDate>Thu, 31 May 2012 14:17:40 +0000</pubDate>
		<dc:creator>pyko</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[musings]]></category>
		<category><![CDATA[reflection]]></category>
		<category><![CDATA[time]]></category>

		<guid isPermaLink="false">http://psychopyko.com/?p=378</guid>
		<description><![CDATA[Don&#8217;t ignore your dreams; don&#8217;t work too much; say what you think; cultivate friendships; be happy. ~The Top of My Todo List by Paul Graham Believe it or not, we are almost halfway through 2012 &#8211; just one more month to go! The passing of time still often gets to me &#8211; I find it [...]]]></description>
				<content:encoded><![CDATA[<blockquote><p>Don&#8217;t ignore your dreams; don&#8217;t work too much; say what you think; cultivate friendships; be happy.<br />
~<a title="The Top of My Todo List - Paul Graham" href="http://paulgraham.com/todo.html" target="_blank">The Top of My Todo List by Paul Graham</a></p></blockquote>
<p>Believe it or not, we are almost halfway through 2012 &#8211; just one more month to go!</p>
<p>The passing of time still often gets to me &#8211; I find it hard to believe that 5 months have already passed since I last posted, but at the same time, reflecting on the past couple of months, I find it hard to believe so much has happend in 5 months. So somehow, time is both short and long at the same time!</p>
<p>One thing that I know for certain, there never seems to be enough time. There just seems to be so many things that one needs to/wants to/should do &#8211; yet only 24 hours in a day. Not only does my &#8216;todo list&#8217; seem to be forever growing, but life seems to be very adept at providing a constant stream of distractions. Thus, plans to work through the list are often futile; resulting in the feeling of being overwhelmed by the sheer amount of tasks and things happening everywhere.</p>
<p>What I try to keep in mind though, is that the &#8216;constant stream of distractions&#8217; is really just an excuse &#8211; life will not stop for you, you have to stand strong and find a way to manage/control the constantly flowing stream. However, having said that, there are times that you can stop, relax and let everything around you flow by. As recently shared by a friend, in the words of Billy Joel:</p>
<p style="text-align: center;"><iframe src="http://www.youtube.com/embed/idDOW8JeR04" height="315" width="420" frameborder="0"></iframe></p>
<p>So whilst we shouldn&#8217;t make excuses for not always being able to get things done, we should also take some time off, relax and enjoy life!</p>
<p><em>ps. It is quite interesting reading my previous post (from last year!) as it is somehow still very relevant. Unfortunately, I have been very slack with regards to the challenge I set myself &#8211; must admit I haven&#8217;t really been taking time to reflect at all.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://psychopyko.com/general/time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reflection</title>
		<link>http://psychopyko.com/general/reflection/</link>
		<comments>http://psychopyko.com/general/reflection/#comments</comments>
		<pubDate>Sun, 25 Dec 2011 09:18:53 +0000</pubDate>
		<dc:creator>pyko</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[challenge]]></category>
		<category><![CDATA[improve]]></category>
		<category><![CDATA[musings]]></category>
		<category><![CDATA[reflection]]></category>

		<guid isPermaLink="false">http://psychopyko.com/?p=349</guid>
		<description><![CDATA[Firstly... Merry Christmas and Happy New Year to everyone! Believe it or not, we are near the end of 2011. As the year draws to a close, it seems to be the time when we reflect on what has happened throughout the year - or at least I do.

A lot has happened in the past year - in some ways you can say it's been like a roller coaster ride. Some of the observations below are in some ways obvious, but I would still like to write them down here to share and to serve as a reminder for myself.]]></description>
				<content:encoded><![CDATA[<blockquote><p><strong>&#8230; we rarely take the time to pause, breathe, and think about what&#8217;s working and what&#8217;s not. There&#8217;s just too much to do and no time to reflect.</strong><br />
~<a title="The best way to use the last five minutes of your day" href="http://blogs.hbr.org/bregman/2011/01/the-best-way-to-use-the-last-f.html" target="_blank">The best way to use the last five minutes of your day</a></p></blockquote>
<p>Firstly&#8230; Merry Christmas and Happy New Year to everyone! Believe it or not, we are near the end of 2011. As the year draws to a close, it seems to be the time when we reflect on what has happened throughout the year &#8211; or at least I do.</p>
<p>A lot has happened in the past year for me &#8211; in some ways you can say it&#8217;s been like a roller coaster ride. Some of the observations below are in some ways obvious, but I would still like to write them down here to share and to serve as a reminder for myself.</p>
<ul>
<li><strong>Things can change at a moment&#8217;s notice</strong> &#8211; adapt to change when the unexpected happens</li>
<li><strong>Appreciate what you have</strong> &#8211; don&#8217;t take anything for granted</li>
<li><strong>Friends are awesome</strong> &#8211; talk often, look after and care for each other</li>
<li><strong>Take things as they come, don&#8217;t worry too much</strong> &#8211; if it&#8217;s happened, you can&#8217;t change it; if it hasn&#8217;t happened yet, it might not happen. Worrying won&#8217;t do you any good.</li>
<li><strong><em>&#8220;This is your life. Do what you love, and do it often&#8221;</em></strong> &#8211; <a title="Holstee Manifesto" href="http://shop.holstee.com/pages/about" target="_blank">Holstee Manifesto</a></li>
<li><strong>Smile, be happy. Relax, enjoy yourself</strong> &#8211; not everything in life is all that serious, take time to have some fun <img src='http://psychopyko.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
<p>I feel it is quite beneficial to reflect on what you have learnt from things that have happened. The act of learning and reflecting on what you have learnt are two very different things. In my opinion, reflecting enables you to better understand what you have done right or wrong and allow you to improve.</p>
<p>Unfortuantely, I believe we rarely reflect enough &#8211; I tend to reflect sporadically, especially after major events. However, we learn and do so much on a daily basis, it seems like we should really reflect at the end of each day. By not pausing and taking time to reflect, it means we are more likely to repeat the same mistakes, or fail to repeat something we did right.</p>
<p>I am going to challenge myself to take 5 minutes each day to reflect over what has happened; what I have done during the day; anything I could/should have done differently etc, I challenge you too do the same.</p>
<p>Once again, Merry Christmas and Happy New Year to all <img src='http://psychopyko.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Hope you will have all an awesome and memorable holiday with family and friends!</p>
]]></content:encoded>
			<wfw:commentRss>http://psychopyko.com/general/reflection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Puzzle is awesome!</title>
		<link>http://psychopyko.com/cool-stuff/puzzle-is-awesome/</link>
		<comments>http://psychopyko.com/cool-stuff/puzzle-is-awesome/#comments</comments>
		<pubDate>Tue, 12 Jul 2011 11:22:48 +0000</pubDate>
		<dc:creator>pyko</dc:creator>
				<category><![CDATA[Cool stuff]]></category>
		<category><![CDATA[coke]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[photography]]></category>

		<guid isPermaLink="false">http://psychopyko.com/?p=318</guid>
		<description><![CDATA[A long time ago in a galaxy far, far away&#8230; many CokeUnleashed coupons were collected to obtain the long sought after 1500 piece &#8216;Coca-Cola&#8217; Puzzle. An unknown number of weeks later the long awaited puzzle finally arrived. Not long after it&#8217;s arrival, two crazy friends took up the challenge to assemble it. After roughly five [...]]]></description>
				<content:encoded><![CDATA[<p>A long time ago in a galaxy far, far away&#8230; many <a title="CokeUnleashed" href="http://www.cokeunleashed.com.au/" target="_blank">CokeUnleashed</a> coupons were collected to obtain the long sought after 1500 piece &#8216;Coca-Cola&#8217; Puzzle. An unknown number of weeks later the long awaited puzzle finally arrived. Not long after it&#8217;s arrival, two crazy friends took up the challenge to assemble it. After roughly five nights of sorting, colour matching, confusion and awesome fun the puzzle was completed <img src='http://psychopyko.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Some photos for all to enjoy&#8230;</p>
<p><a href="http://psychopyko.com/wp-content/uploads/2011/07/progress0.jpg"><img class="alignnone size-thumbnail wp-image-323" alt="" src="http://psychopyko.com/wp-content/uploads/2011/07/progress0-150x150.jpg" width="150" height="150" /></a> <a href="http://psychopyko.com/wp-content/uploads/2011/07/progress1.jpg"><img class="alignnone size-thumbnail wp-image-322" alt="" src="http://psychopyko.com/wp-content/uploads/2011/07/progress1-150x150.jpg" width="150" height="150" /></a> <a href="http://psychopyko.com/wp-content/uploads/2011/07/progress2.jpg"><img class="alignnone size-thumbnail wp-image-321" alt="" src="http://psychopyko.com/wp-content/uploads/2011/07/progress2-150x150.jpg" width="150" height="150" /></a> <a href="http://psychopyko.com/wp-content/uploads/2011/07/complete.jpg"><img class="alignnone size-thumbnail wp-image-324" alt="" src="http://psychopyko.com/wp-content/uploads/2011/07/complete-150x150.jpg" width="150" height="150" /></a></p>
<p>&#8230;if piecing together 1500 pieces wasn&#8217;t enough, I was crazy enough to make a stop motion video. After approximately 5 hours, 270 photos later, some iMovie magic and awesome music knowledge from awesome friends&#8230;</p>
<p><object width="640" height="510" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/PUQsNut0PrA?version=3&amp;hl=en_US" /><param name="allowfullscreen" value="true" /><embed width="640" height="510" type="application/x-shockwave-flash" src="http://www.youtube.com/v/PUQsNut0PrA?version=3&amp;hl=en_US" allowFullScreen="true" allowscriptaccess="always" allowfullscreen="true" /></object></p>
]]></content:encoded>
			<wfw:commentRss>http://psychopyko.com/cool-stuff/puzzle-is-awesome/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
