<?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>Ayan Ray&#039;s Blog</title>
	<atom:link href="http://blog.ayanray.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.ayanray.com</link>
	<description>The life and times of Ayan Ray</description>
	<lastBuildDate>Sat, 14 Jan 2012 23:06:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Design Patterns: Useful?</title>
		<link>http://blog.ayanray.com/2012/01/design-patterns-useful/</link>
		<comments>http://blog.ayanray.com/2012/01/design-patterns-useful/#comments</comments>
		<pubDate>Sat, 14 Jan 2012 23:06:11 +0000</pubDate>
		<dc:creator>Ayan</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blog.ayanray.com/?p=510</guid>
		<description><![CDATA[So I felt like writing a new blog post rather than using tumblr or any of the billion other micro blogging or knowledge services out there. I still think there&#8217;s space for a blog, where blogs function as journals more &#8230; <a href="http://blog.ayanray.com/2012/01/design-patterns-useful/">Continue reading <span class="meta-nav">&#8594;</span></a>


No related posts.]]></description>
			<content:encoded><![CDATA[<p>So I felt like writing a new blog post rather than using tumblr or any of the billion other <a href="http://www.twitter.com">micro blogging</a> or <a href="http://www.quora.com">knowledge services</a> out there. I still think there&#8217;s space for a blog, where blogs function as journals more than as primary communication devices. So I&#8217;ll start using it as that (and as tutorials like my other<a href="http://blog.ayanray.com/2010/01/the-best-way-to-render-wireframe-in-maya/"> popular posts</a>).</p>
<h2>Computer Science Shift</h2>
<p>Three months ago I moved from my agency-getting-things-done job to a start up working mainly with comp sci guys from some of the best schools in the country. This change has been full of new and interesting terms from clean code to hadoop. I&#8217;ve mainly worked on the client (Flash for our team) and a little bit on the server (PHP/MySQL/CI). Since joining, I&#8217;ve thought carefully about what it means to support millions of users and have boiled it down to a few select ways (which I can highlight in another post). Anyways, the change has been immense and I&#8217;ve studied very consistently since then. I&#8217;ve read a couple of code related books while keeping up with my regular readings. Most recently, I&#8217;ve finished a book on design patterns &#8212; yes the original GoF one. It&#8217;s come up throughout the last two years a number of times so I felt it was pretty important to read now that I&#8217;m in full blown comp-sci. Here&#8217;s a brief summary and opinion:</p>
<h2>Design Patterns: You Shouldn&#8217;t Live Without &#8216;Em</h2>
<p>If you are programming, or learning to program, and want to build scalable software, I urge you to read the original design patterns book (or <a href="http://www.amazon.com/Advanced-C-Programming-Styles-Idioms/dp/0201548550/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1326525094&amp;sr=1-1">something similar</a>). Within the book, they talk about two dozen or so patterns that help organize common issues in software design. I found it immensely valuable to be able to talk about these design patterns with teammates and other professionals and why we choose certain ones over others. Here&#8217;s a list of the design patterns that interest me and what they do:</p>
<p><strong>Creation Patterns </strong></p>
<ul>
<li><strong>Builder</strong> &#8211; This pattern helps you create objects a certain way and then change them by using inheritance. You code out how you build a certain object in a class by using methods (build legs, build arms, etc.) and then extend that class and override those specific methods for various implementations. This is the same to me as using a similar pattern called template methods&#8230;</li>
<li><strong>Factory Method</strong> &#8211; A pattern that uses a method to create objects. I never embraced this enough until reading this. We use it in our code quite frequently and having something control the creation of your objects is powerful. Combining this with a singleton and other patterns allows you to determine at runtime which class should be used based on which class it&#8217;s being used by. Look up the term <strong>single dispatch</strong> as well (interesting concept), and if you can do double/multi dispatch with this, great.</li>
<li><strong>Prototype</strong> &#8211; An object you &#8220;clone&#8221; to create other objects with different behavior. Think events in flash; they have clone functions. Clone it, change properties, and send it out again is how I&#8217;d use them.</li>
<li><strong>Singleton</strong> &#8211; I heart singletons. Although they can be called &#8220;global&#8221; variables, they are safer to use than static classes and very necessary in almost every application. When there really should only be one instance, this is your friend. Unfortunately there&#8217;s so many ways of faking enforcement of a singleton in flash. I&#8217;ll be trying Casalib&#8217;s way for my next project. In full-blown OO where constructors can be private (like in Java and PHP), Singleton&#8217;s are even cooler.</li>
</ul>
<p><strong>Structural Patterns</strong></p>
<ul>
<li><strong>Adapter</strong> &#8211; The concept behind changing an interface of someone else&#8217;s library so that you can use your library to &#8220;plug&#8221; into it.</li>
<li><strong>Bridge</strong> &#8211; Separates implementation from abstraction. I loved the diagram in this book. If you have a multi-OS application, and need to separate how windows are treated, you can use a bridge to communicate between your windows and their implementations where the bridge is used to communicate to device specific implementations. I&#8217;d wager that most multi-platform dev kits use something similar.</li>
<li><strong>Composite</strong> &#8211; A base object that can contain other base objects. Think DisplayObject, NSView, whatever &#8212; every advanced visual language supports this concept. Parent -&gt; children.</li>
<li><strong>Decorator</strong> &#8211; Adding functionality to something without having to change the original object. Their example was putting a border around a UI element. You can wrap an entire element to manage it as well and still be a decorator (managing many objects = mediator).</li>
<li><strong>Facade</strong> &#8211; I build &#8220;facades&#8221; to make using larger systems easier. It&#8217;s part of making coding intuitive. If something can be made simpler, it can very well be worth while to create a facade to interact with a whole system. I love using tool sets that accomplish certain tasks really well for example. And without having to build an Adapter, I can just create a facade that makes it easier to use it.</li>
<li><strong>Proxy</strong> &#8211; A proxy object is basically something that can 1) be used in place of something else, or 2) an object that communicates between two objects. I like that first point, that it can be used instead of something else. If something hasn&#8217;t loaded, you can use a proxy object to keep it&#8217;s place for fluid layouts or just to hold data until it&#8217;s loaded.</li>
</ul>
<p><strong>Behavioral Patterns</strong></p>
<ul>
<li><strong>Chain of Responsibility</strong> &#8211; Passing objects until someone interested does something with it. Think event dispatcher in flash. You pass objects from parent to child or child to parent while anyone along the chain has the option to stop it (stop/prevent propogation in JavaScript and AS3), handles it, or ignores it.</li>
<li><strong>Command</strong> &#8211; The command pattern is a very useful pattern to wrap requests to a server or servers (think p2p). By siphoning all logic directed outside an application through a pattern of objects, you have a very powerful, centralized hub to control communication (think control tower). This pattern is a must have for most applications.</li>
<li><strong>Interpreter</strong> &#8211; This pattern is very interesting in it that it allows you to create your own notation that gets parsed by an &#8220;Interpreter&#8221; that then opens windows, runs commands, etc.  Think regular expressions on steroids.</li>
<li><strong>Mediator</strong> &#8211; A mediator is a useful UI pattern that can be used to handle communication and states between multiple objects without violating encapsulation (i.e. those objects don&#8217;t know each other, only the mediator knows them all).</li>
<li><strong>Memento</strong> &#8211; Wicked name for a simple concept &#8211; a pattern that uses objects to store the state of an object so you can return to it later. Use mementos with commands to do undo and redo logic.</li>
<li><strong>Observer</strong> &#8211; A pattern that allows multiple objects (observers) to listen to a specific object for changes. Think binding in flex or the model to view or controllers in mvc, where the view or controller can act as observers. I loved CakePHP for this kind of observer behavior.</li>
<li><strong>Strategy</strong> &#8211; I love the strategy pattern. Consider you have an advanced algorithm and you don&#8217;t think it&#8217;s the best in all situations. You can wrap it in a strategy style pattern and build out another algorithm in another strategy and decide at run-time which strategy to use. It&#8217;s technical term would be separating an algorithm&#8217;s context from the algorithm itself so you can create different algorithms for a single context, vice versa, or many-to-many.</li>
<li><strong>Template Method</strong> &#8211; A template method is used when you write a base class with a certain sequence of methods being called in a certain order. The class is designed so that when you inherit from it, you can overwrite certain methods (called template methods) to present different functionality but keep the general structure in order. We use this all the time, everywhere (in good and bad ways).</li>
<li><strong>Visitor</strong> &#8211; Finally, I&#8217;ll talk about the visitor pattern. This pattern allows you centralize a certain behavior where you might want to create an object that scans other objects for certain parameters to do a certain thing or compute a certain result. The object is said to be called a visitor where it visits other objects to look for properties of interest.</li>
</ul>
<div><span style="font-size: small;">There were a few that I didn&#8217;t write about that I don&#8217;t use so much and aren&#8217;t interesting for various reasons. Regardless, if you aren&#8217;t using design patterns in your small or larger projects (much less likely), get on that ship as it could save you an unforeseeable amount of time down the road (more team members, selling your product, version 2, etc.). Chances are though, you are already using it and you either know it or you don&#8217;t. If you don&#8217;t, I&#8217;d recommend the read. It took me a month and a half of light train reading, but it is well worth it.</span></div>
<div></div>
<p>&nbsp;</p>
<h2>You are probably using them already</h2>
<div><span style="font-size: small;">Although I&#8217;ve used design patterns before, many of the former unknown design patterns I used instinctively when designing previous applications. This could be due to my experiences with Papervision, Away3D, AS3, CakePHP, CodeIgnitor, Objective-C, Java (each one brings a few patterns to mind). But after reading this book, it all makes a little more sense.</span></div>
<div></div>
<div>Happy coding.</div>
<div></div>
<div>Ayan</div>
<p>&nbsp;</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.ayanray.com/2012/01/design-patterns-useful/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blog has a new look</title>
		<link>http://blog.ayanray.com/2011/09/blog-has-a-new-look/</link>
		<comments>http://blog.ayanray.com/2011/09/blog-has-a-new-look/#comments</comments>
		<pubDate>Tue, 06 Sep 2011 07:41:01 +0000</pubDate>
		<dc:creator>Ayan</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blog.ayanray.com/?p=506</guid>
		<description><![CDATA[It&#8217;s been awhile since I&#8217;ve updated the blog&#8217;s look and feel. With WordPress, it&#8217;s super easy to do and frankly there&#8217;s no reason why I didn&#8217;t do it earlier. The new theme, which I will still need to modify slightly, &#8230; <a href="http://blog.ayanray.com/2011/09/blog-has-a-new-look/">Continue reading <span class="meta-nav">&#8594;</span></a>


Related posts:<ol><li><a href='http://blog.ayanray.com/2009/07/new_blog/' rel='bookmark' title='Permanent Link: New Blog'>New Blog</a></li>
<li><a href='http://blog.ayanray.com/2006/10/new-blog/' rel='bookmark' title='Permanent Link: New Blog'>New Blog</a></li>
<li><a href='http://blog.ayanray.com/2009/12/getting-things-done-the-personal-wiki/' rel='bookmark' title='Permanent Link: Getting Things Done: The Personal Wiki'>Getting Things Done: The Personal Wiki</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been awhile since I&#8217;ve updated the blog&#8217;s look and feel. With WordPress, it&#8217;s super easy to do and frankly there&#8217;s no reason why I didn&#8217;t do it earlier. The new theme, which I will still need to modify slightly, is simpler, cleaner, easier to read, and a lot less busy with less noise and more focus on the text. More importantly, it is ready for mobile and looks beautiful on small and large screens. My objective with this new template is to help you get to the content you are interested in easily with less confusion and to look beautiful on mobile and desktop devices so you can read on the go, on the couch, or on the desktop.</p>
<p>Although lately I haven&#8217;t written on my blog, there are some posts I&#8217;ve been working on completing. I aim to have a new website out in a few weeks so hopefully around that time I will also post up some new useful content. I&#8217;d also like to take this opportunity to thank my current readers who have found many of my posts helpful and have shared there experiences through commenting and emailing me. I will work harder to improve this blog and provide valuable feedback and advice. Thank you.</p>
<p>Stay tuned.</p>
<p>Ayan</p>


<p>Related posts:<ol><li><a href='http://blog.ayanray.com/2009/07/new_blog/' rel='bookmark' title='Permanent Link: New Blog'>New Blog</a></li>
<li><a href='http://blog.ayanray.com/2006/10/new-blog/' rel='bookmark' title='Permanent Link: New Blog'>New Blog</a></li>
<li><a href='http://blog.ayanray.com/2009/12/getting-things-done-the-personal-wiki/' rel='bookmark' title='Permanent Link: Getting Things Done: The Personal Wiki'>Getting Things Done: The Personal Wiki</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.ayanray.com/2011/09/blog-has-a-new-look/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Application Transparency &#8211; The Need for Proper Feedback</title>
		<link>http://blog.ayanray.com/2011/04/application-transparency-the-need-for-proper-feedback/</link>
		<comments>http://blog.ayanray.com/2011/04/application-transparency-the-need-for-proper-feedback/#comments</comments>
		<pubDate>Thu, 21 Apr 2011 04:36:36 +0000</pubDate>
		<dc:creator>Ayan</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blog.ayanray.com/?p=460</guid>
		<description><![CDATA[I was working on a mobile app today that we were handed from another firm that lacked in a core usability component I consider very important: communication. Like one of my former employer says, communication is paramount. In the mobile &#8230; <a href="http://blog.ayanray.com/2011/04/application-transparency-the-need-for-proper-feedback/">Continue reading <span class="meta-nav">&#8594;</span></a>


No related posts.]]></description>
			<content:encoded><![CDATA[<p>I was working on a mobile app today that we were handed from another firm that lacked in a core usability component I consider very important: communication. Like one of my former employer says, communication is paramount. In the mobile space, it is even more important. Users&#8217; hold onto the device and you can expect that they are looking at it. If you lose their focus, they might just close your app and do something else. That&#8217;s why it&#8217;s critical you let the user know what you are doing at all times. Whether it be hit states for buttons or feedback during potentially long loading times, communication from you (the programmer) to the user (your valued client) is critical.</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.ayanray.com/2011/04/application-transparency-the-need-for-proper-feedback/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Define Your Workspace</title>
		<link>http://blog.ayanray.com/2010/09/define-your-workspace/</link>
		<comments>http://blog.ayanray.com/2010/09/define-your-workspace/#comments</comments>
		<pubDate>Mon, 06 Sep 2010 19:39:58 +0000</pubDate>
		<dc:creator>Ayan</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Productivity]]></category>

		<guid isPermaLink="false">http://blog.ayanray.com/?p=441</guid>
		<description><![CDATA[I have recently started at a new design agency and have had to become re-accustomed with productivity tools I use to speed up my interaction with the machine. During this time, I reexamined my choice of tools and found others that help &#8230; <a href="http://blog.ayanray.com/2010/09/define-your-workspace/">Continue reading <span class="meta-nav">&#8594;</span></a>


No related posts.]]></description>
			<content:encoded><![CDATA[<p>I have recently started at a new design agency and have had to become re-accustomed with productivity tools I use to speed up my interaction with the machine. During this time, I reexamined my choice of tools and found others that help me do specific things. I call this defining your workspace &#8212; carving out what you want from your environment rather than using the tools that are provided to you by default. I believe this also works universally, whether you&#8217;re a fine artist or a chef, you all should start with thinking how you want to work and find that way through various tools available to you. This thinking process, in my opinion, is vital to staying in control and maximizing output.</p>
<h2>My Current Workspace</h2>
<p>As a new media specialist, I work with new technologies to create compelling design. I work within the whole picture from the back-end server and database design of a website to the animation qualities of a video. I design using Windows and Mac applications for the desktop as well as mobile devices like the iPad, iPhone, and Android-based phones. My point is that my workshop is large and complex and it can be bothersome to manage and stay in control of. Below is a list of things I find useful to make sure I use my machine the way I want to:</p>
<p><strong>1) <a href="http://www.launchy.net/" target="_blank">Launchy</a></strong></p>
<p>I love launchy. A friend of mine introduced it to me in school and I&#8217;ve fell in love ever since. It is the simplest and easiest way to access your machine and do simple yet vital processes like calculations. It&#8217;s available for Windows and now OSX, but I&#8217;ve heard QuickSilver is better on OSX.  If you haven&#8217;t heard about it, it&#8217;s basically a 1-box search engine for applications, shortcuts, and folders. It is customizable with themes and can look amazing when you hit the shortcuts that bring the window up. It also gives you quick access to search engines and basically makes it useless to have pinned applications and shortcuts on your desktop. Something like this is a programmers dream as programmers like to use the keyboard as much as possible to speed up how they use the machine.</p>
<p><strong>2) <a href="http://m8software.com/clipboards/freeclip/freeclip.htm" target="_blank">Multi-clipboard</a></strong></p>
<p>Copying and pasting is a necessity when dealing with data. Sometimes you need to copy and paste two or more things from one place to another. You could open one, copy, paste in other, and repeat. Or you can copy each and paste each using a multi-level clipboard like multi-clipboard. Anyways, I like the multilevel clipboard for programming purposes; it&#8217;s almost necessary. This particular application (free) is useful as it has shortcuts to bring it up and you can just click the entries you wish to enter to paste it. It also has a history of 25 and keeps images etc. in this array. If you do a lot of image data copying, it can slow your system down so be cautious too. I have the shortcut set to Alt + Ctrl + C <img src='http://blog.ayanray.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p><strong>3) <a href="http://www.wampserver.com/en/" target="_blank">WAMPServer</a></strong></p>
<p>If you don&#8217;t have a personal server on your computer, you should consider getting one. It is great for showing teammates, sharing files, publishing internally to your intranet, writing scripts for local use, and testing your website, applications, or whatever before pushing to the web.  WAMPServer is what I use on my Windows machine but there are numerous choices for everyone no matter what their setup is.</p>
<p><strong>4) <a href="http://notepad-plus-plus.org/" target="_blank">Notepad++</a></strong></p>
<p>OK, this list is becoming more and more Windows specific. If you were on Mac, I&#8217;d say use TextMate. Otherwise, get Notepad++. Normal notepad is too archaic and unusable. I am still appalled that it has only one level of undo even in 7. I guess they just have it there as a quick alternative to Wordpad. Anyways, get Notepad++. It has plug-ins and can read files in different ways (I.e. code formatting). It loads quick and can integrate into your right click with &#8220;Open with Notepad++&#8221;. It has diff, reads multiple file formats, and supports various file encoding. It is a great text editor.</p>
<p><strong>5) Customization</strong></p>
<p>We all like stuff that looks cool. If we didn&#8217;t, we wouldn&#8217;t keep striving for polished design. The desktop is no different. Pick a background you like. Customize it to your delight. Use something like Window Blinds if you want a more customized experience. I personally stick with a nice background and a nice screen saver (I&#8217;m a fan of <a href="http://blog.pixelbreaker.com/polarclock" target="_blank">polar clock</a>). This customization I think allows you to become more comfortable in your space (and applies to all other trades as well).</p>
<p><strong>6) <a href="http://www.uderzo.it/main_products/space_sniffer/" target="_blank">Space Sniffer</a></strong></p>
<p>This is an interesting application that shows you visually how much space is being used on your hard disk. If you ever find yourself close to running out of space, this kind of application can be crucial in helping to resolve that problem.</p>
<p><strong>7) Gmail Greasemonkey Scripts</strong></p>
<p>Everyone is on email these days and how we use it can take up a lot of time during the day. For a better experience, I use various GMail Greasemonkey scripts. Here are a few that interest me:</p>
<ul>
<li>Gmail Air Skin</li>
<li>Gmail Conversation Preview Mod</li>
<li>Gmail Macros</li>
<li>Gmail Contact List</li>
</ul>
<p><strong> <img src='http://blog.ayanray.com/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> <a href="http://download.cnet.com/File-Renamer-Basic/3000-2248_4-10306538.html" target="_blank">File Renamer Basic</a></strong></p>
<p>If you have ever worked with many files of similar types and naming, renaming them could be a hassle without a program like this one. I use this on occasion to do just that and it works splendidly.</p>
<p><strong>9) &#8230; Suggestions?</strong></p>
<p>Finally, this is by no means complete and thus this post will be an <strong>ongoing list of tools</strong> I find necessary (aside from the obvious Photoshop, etc.) to improve my interaction with the machine. If you have suggestions, please leave a comment and I&#8217;ll add it to the list. Please include a description of what it does too so I can see if it&#8217;s something I need too <img src='http://blog.ayanray.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.ayanray.com/2010/09/define-your-workspace/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Never Fly American Airlines&#8230; if you can help it</title>
		<link>http://blog.ayanray.com/2010/06/never-fly-american-airlines-if-you-can-help-it/</link>
		<comments>http://blog.ayanray.com/2010/06/never-fly-american-airlines-if-you-can-help-it/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 04:41:42 +0000</pubDate>
		<dc:creator>Ayan</dc:creator>
				<category><![CDATA[Travels]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://blog.ayanray.com/?p=424</guid>
		<description><![CDATA[It is unfair to judge a company completely on a sole experience, great or sour.  However, I do believe that a bad experience can be judged in it&#8217;s own class, within bad experiences asking one simple question: how bad does &#8230; <a href="http://blog.ayanray.com/2010/06/never-fly-american-airlines-if-you-can-help-it/">Continue reading <span class="meta-nav">&#8594;</span></a>


No related posts.]]></description>
			<content:encoded><![CDATA[<p>It is unfair to judge a company completely on a sole experience, great or sour.  However, I do believe that a bad experience can be judged in it&#8217;s own class, within bad experiences asking one simple question: how bad does it get? I had a terrible experience with American Airlines and many decent experiences. Unfortunately, the bad gets very bad and the decent isn&#8217;t enough to rave about. Here is my story of that bad experience:</p>
<p><strong>Friday, June 18th, 2010 at 7 AM JST</strong></p>
<p>The beginning of my journey starts at Itami Airport in Osaka, Japan. My flight was scheduled to depart at 8:25 am. I arrived in line around 7 but had to wait in the check-in line until about 8:10 ish as there were many people scheduled to take a connecting flight from Tokyo to abroad. When I finally got through check-in, I had to rush to my flight and wait for the JAL agent that checked me in to provide me an excess baggage receipt. They held the plane for me thankfully.</p>
<p><strong>Friday, June 18th, 2010 at ~9:40 AM JST (Total Duration: 2hr 40min)</strong></p>
<p>The Osaka to Tokyo flight went fairly unhitched. It left relatively on-time and arrived at around the time they said (this is what most people expect from airlines and is not true for my experience with AA). At this point I went through customs and told them I might come back to Japan so I held onto my residency card and filed a disembarkment card.</p>
<p><strong>Friday, June 18th, 2010 at ~11:40 AM JST (Total Duration: 4hr 40 min)</strong></p>
<p>The flight from Tokyo to Chicago also went fairly well. It left on-time and arrived at around the correct time as well. I met some interesting people on the plane and had a very pleasant conversation on the voyage. I have truly come to appreciate JAL and their level of service.</p>
<p><strong>Friday, June 18th, 2010 at approx 9:35 AM CST<br />
Friday, June 18th, 2010 at approx 11:35 PM JST (Total Duration: 16hr 35 min)</strong></p>
<p>We arrived in Chicago on-time as expected. My scheduled departure towards Ottawa was schedule for 2:55 PM CST so I had a 5 hour wait ahead of me. Luckily, the U.S. was playing Slovenia where I watched the controversial game at an airport bar and grill.</p>
<p><strong>Ok so here is where it starts to turn sour&#8230;</strong></p>
<p><strong>Friday, June 18th, 2010 prior to our 2:30 PM CST departure&#8230;</strong></p>
<p>So, I and the other passengers are waiting outside the gate and the weather seems to be as good as it needs to be to fly. At this point, the snobby and irritable flight agent said that the flight was being delayed by 30 minutes due to the flight attendant not being on the ground. My grievance with this is why couldn&#8217;t they find someone who was on ground and route him/her to our flight? Is she the only one who can do this job? In situations like this, they could reroute a flight attendant and get someone else on board. Flight attendants are used to travelling and routing another flight attendant would have been the best solution here. Regardless, it was still the air carrier&#8217;s responsibility to have a working flight and flight attendant by the time we were scheduled to leave and both of which they failed to uphold (more on the &#8220;working flight&#8221; part later).</p>
<p>So when the flight attendant finally arrived, she arrived with an attitude you could measure in her tone. The time was close to 4-4:30 pm so obviously my fellow riders were irritated at how much she delayed our flight (and how many &#8220;it will be just a moment&#8221;s our failed agent uttered). Shortly after boarding the flight, one of the riders needed to go to the washroom and quickly returned complaining of the filth. I remember him saying &#8220;turbulence could not have done that&#8221;. The flight attendant went inside to check and she was also appalled and phoned in maintenance to come clean it up. Thirty minutes later: the maintenance crew showed up and finally cleaned up it. At this point we were ready to fly.</p>
<p>So it was about 5 pm&#8230; We were scheduled to leave at 2:30 but the air carrier let us down by not providing us a suitable air craft (no one checks the aircraft before we board?) or a flight attendant (no provisions to re route someone if the delay is&#8230; 2 hours long?)? Anyways, I am sure I will never take American Airlines at this point and will gladly pay first class airfare to never experience this again but unfortunately, it gets much worse.</p>
<p>So, just before we are about to embark, someone behind me says &#8220;I hate to say it but take a look out the window. We aren&#8217;t going anywhere.&#8221; I took a peek and saw a fog engulf the airport. Rain came quickly after with an onslaught of lighting and thunder. Soon after, an agent came in from the still-open exit to the gate saying we needed to disembark the aircraft as all flights were grounded. After waiting inside the aircraft for about an hour, this was painful to say the least.</p>
<p>So around 6 pm the storm subsides and planes start getting cleared to fly again. I see several gates with tickers saying &#8220;Scheduled: 5:40 pm, Departs: 6:45 PM&#8221;. For some ridiculous reason, our flight said &#8220;Scheduled: 2:45 pm, Departs: 8:30 PM&#8221;. The reason our obnoxious and irritable flight agent provided us was &#8220;the flight is undergoing maintenance&#8221;. It is American Airlines responsibility to have a flight ready for us by the time we are schedule to fly. It is now past 6 pm and we don&#8217;t have a plane that can fly? What is this? Certainly not good service.</p>
<p>So when 8:30 comes by, our flight gets delayed to 9:10 PM. We were able to board starting around 8:50 PM, which was a pleasant surprise at this point. Everyone got seated, we had our snappy flight attendant and obnoxious agent see us through to the point of disembarkation. This time, thankfully, we actually disembarked!  I was expecting that they would pull another fast one on us but they didn&#8217;t.  At this point, after spending hours in travel from Japan, I took a nap expecting us to be in the air by the time I wake up. The pilot said there was about a 45 min wait of planes ready to take off so we would be on the runway for a bit.</p>
<p>I wake up around 10:20 PM and we are still on the ground. Again, I see more lightning and showers and no planes taking off. We are on the runway. The pilot says we are getting re-routed and that we don&#8217;t have enough fuel to follow the intended route. So, we have to go back to the airport. Sighs echo throughout the aircraft. We get close to the airport and we are not allowed to disembark until a crew can get out and usher out those large ports/gates. We wait for 30-45 minutes in the aircraft in front of the airport until the crews can come out. The obnoxious and even more irritated agent from before comes inside and says the flight is now cancelled and that we would have to make bookings with an agent and that the flight is cancelled&#8230; get this&#8230; wait for it&#8230; wait for it&#8230; &#8220;due to weather&#8221;. I quickly reworded that to &#8220;cancelled due to a lack of a flight attendant, lack of a flyable aircraft, lack of service, lack of an ability to check weather forecasts, and finally a lack of competence&#8221;. Obviously, our obnoxious agent wouldn&#8217;t admit to any of those <img src='http://blog.ayanray.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<p>So, we were all expected to get out and make rebookings. No, they would not schedule this same plane full of ready-and-able passengers for the first takeoff in the morning. Instead, you have to go and schedule another flight with an agent. Unfortunately, there are only so many seats available and I was sitting near the front of the plane while my backpack was closer to the back (I gave up my seat so that a father, mother, and two children could sit together). Perhaps if I was with my backpack in my assigned seat, I could have got off the flight and get to an agent in time to schedule a flight the next morning. Too bad though, since by the time I got off the flight, the only flight from Chicago to Ottawa the next day as already full! Oh everyone, sing with me, &#8220;I hate American Airlines&#8230; I hate American Airlines&#8230;&#8221;.</p>
<p>So my choices were: take a flight on Sunday at ~8:30 AM CST (remember my first flight was on Thursday at 5 PM CST) or take a flight from Chicago to Toronto at ~11 AM and then find my own way of getting from Toronto to Ottawa. I would have liked this choice if it wasn&#8217;t 1 AM CST in the morning and I could call a few people in Toronto for a favour. But it was quite late and I was unable to make any international calls (I tried using the pay phones three times and all times they stole my money and said &#8220;we are unable to complete the call&#8221;. So, I decided on the flight on Sunday.</p>
<p>The agents were giving out hotel and taxi vouchers. But since the flight was cancelled due to weather and not any of the multitude of other acceptable answers, the vouchers were not 100%. The taxi voucher was 1-way (the hotel was 20 minutes away $30 USD one-way) and the hotel was $85 /day. Oh and even though I was staying for two nights in Chicago seemingly against my will, I would have to COME BACK to the airport to get another voucher as it was &#8220;the policy that we cannot print out vouchers for more than one night at a time&#8221;. This one agent had no soul.</p>
<p>The first night I was thinking of sleeping in the airport. They had cots in the K section of the airport. All the agents told you to go there and when you went to check and find there were no cots left, the agents had already left so you couldn&#8217;t ask them for a blanket and a pillow! Oh and all the blankets and pillows were gone too. I saw people sleeping on the cold floor, on hard benches, on 1 person-seats with arm rests on both sides (which looked terribly uncomfortable). Anyways, it was a dreadful sight and pathetic how little respect American Airlines has for it&#8217;s customers. I will tell this story to everyone with 100% confidence those who hear it will never fly them if given a choice.</p>
<p>After finding out that there were no cots left and no pillows or blankets, I went to the closest agent (and certainly not that obnoxious one from before). I asked him if there were any pillows or blankets left. Simple answer: no. I then asked him if he could give me a voucher for two-nights instead of one. He started typing something and printed something out. He gave it to me and said here are three new vouchers. 1 voucher was for 2 nights in a hotel all paid for. The other two vouchers were for taxi cab fare there and back. I had found the only reasonable and nice agent in the building. He made the other agent look even more obnoxious as his &#8220;policies&#8221; came under question. I left the secured section of the airport promptly and found even more people sleeping downstairs on the luggage tracks behind the check-in counters.</p>
<p>So it&#8217;s about 1:30 AM at this point&#8230; about 27 hours after starting my voyage in Japan.</p>
<p>After leaving the airport, I got in line for a cab. There were about 100 people in line waiting for cabs. I eventually got a cab that accepted the vouchers (very few of them did and I waited an additional 30 minutes after getting to the front of the line!) and made it the the hotel safely. Another interesting side point is that the bellstaff was all Japanese and they had a famous Japanese channel NHK on TV. I watched that for awhile to feel more relaxed.</p>
<p>Anyways, the hotel was awesome. If I had a change of clothes and some company, I would have enjoyed it more. There was a mall close by that I went to but was pretty much bored for my 1 unenjoyable day in Chicago. Guests are expected to pay for the Internet but when I called the front desk to ask about it they just gave me the password for free so that was nice too. I promptly emailed my family and skyped Chiaki letting them know where I was and what happened. Oh and another thing that annoyed me was the concierge at the hotel. He told me I should leave the hotel at 4:30 AM on Sunday to get to the airport for 6:30 AM for my flight at 8:30 AM. He said there was a lot of traffic at that time! I was like no f*ing way and asked the two hotel front-desks who told me my original estimate of 6:00 AM was fine. I hate bad advice and when people have such conviction in that advice.</p>
<p>When Sunday rolled around, the flight was delayed once again. This time, only by about 45 minutes to 9:15 AM. I was a little distraught and worried it would happen again as the city was suffering from isolated thunderstorms. However, I believe it was because of the strong winds that shut us down that Friday afternoon. Anyways, the Sunday flight took off like Friday had never happened and well like I said, I think it&#8217;s fair to judge a company by how bad the bad times get, and this was certainly one of the worst experiences of my life. Glad I can associate it with a brand and just tell others to never fly AA again. It&#8217;s like if you buy insurance for your car or home to protect you from certain terrible experiences. The only insurance in this case is to simply not fly them again.</p>
<p><strong>Total Duration: 75 Hrs</strong></p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.ayanray.com/2010/06/never-fly-american-airlines-if-you-can-help-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Useful Word Building Tool: AyanRay.com Dictionary</title>
		<link>http://blog.ayanray.com/2010/05/useful-word-building-tool-ayanray-com-dictionary/</link>
		<comments>http://blog.ayanray.com/2010/05/useful-word-building-tool-ayanray-com-dictionary/#comments</comments>
		<pubDate>Fri, 14 May 2010 06:35:21 +0000</pubDate>
		<dc:creator>Ayan</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Dictionary]]></category>
		<category><![CDATA[Free]]></category>

		<guid isPermaLink="false">http://blog.ayanray.com/?p=412</guid>
		<description><![CDATA[Sometimes, when I can&#8217;t find something that fits my needs, I build tools for myself to use to fit those needs. Lately, I&#8217;ve been trying to build my usable, day-to-day vocabulary. I&#8217;ve been reading a lot lately and write down &#8230; <a href="http://blog.ayanray.com/2010/05/useful-word-building-tool-ayanray-com-dictionary/">Continue reading <span class="meta-nav">&#8594;</span></a>


Related posts:<ol><li><a href='http://blog.ayanray.com/2009/12/getting-things-done-the-personal-wiki/' rel='bookmark' title='Permanent Link: Getting Things Done: The Personal Wiki'>Getting Things Done: The Personal Wiki</a></li>
<li><a href='http://blog.ayanray.com/2006/11/google-on-accountability/' rel='bookmark' title='Permanent Link: Google on Accountability'>Google on Accountability</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Sometimes, when I can&#8217;t find something that fits my needs, I build tools for myself to use to fit those needs. Lately, I&#8217;ve been trying to build my usable, day-to-day vocabulary. I&#8217;ve been reading a lot lately and write down words that are beyond my comprehension. Words like circumspect, scant, and vehement are all words I don&#8217;t often use but can describe a particular circumstance quite accurately. And that, the ability to increase my/your vocabulary, is the goal of this tool.</p>
<h2><span style="text-decoration: underline;">Tool: Dictionary<br />
</span></h2>
<p><span style="text-decoration: underline;"><br />
What is it?</span></p>
<p>The <strong>AyanRay.com Dictionary</strong> is a free comprehensive dictionary tool used to help build your vocabulary on a regular and repetitive basis. It offers easy-to-use tools to add any term or word to your dictionary with the ability to have it email you these words regularly for you to review and study. Over a period of time, these words will become second nature to you and will hopefully help build your vocabulary.</p>
<p>Features:</p>
<ul>
<li>Register/Delete your account</li>
<li>Add words to your dictionary using an HTML editor (TinyMCE for those interested)</li>
<li>Edit/Delete words from your dictionary</li>
<li>Alphabetically sorted dictionary page listing all words in your dictionary</li>
<li>Categories for organizing and grouping your words into mini-dictionaries (I.e. if you read a new book, you can create a category for words you learn from that book)</li>
<li>Category to Word Management &#8211; a word can have as many categories as you wish</li>
<li>Auto-parse Google &#8220;define: word&#8221; definitions for easy adding of words to the dictionary</li>
<li>Daily, Every other day, Weekly, and Monthly Emails with any number of words from your dictionary randomly emailed to you</li>
<li>Comprehensive settings page allowing you to customize email frequency, whether you receive emails at all, and more</li>
<li>It&#8217;s free <img src='http://blog.ayanray.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>Coming soon: functionality making it easier to add words :p. I cannot auto-query Google or they will ban my server <img src='http://blog.ayanray.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> , sorry.</li>
</ul>
<p>Anyways, this post was more for an introduction to the application. If you find it helpful, have any suggestions, or find any bugs/errors in the application, please let me know. If you need help with it, please post a comment here and I will do my best to answer your questions.</p>
<h3><a title="AyanRay.com Dictionary" href="http://www.ayanray.com/tools/dictionary">Link: http://www.ayanray.com/tools/dictionary</a></h3>


<p>Related posts:<ol><li><a href='http://blog.ayanray.com/2009/12/getting-things-done-the-personal-wiki/' rel='bookmark' title='Permanent Link: Getting Things Done: The Personal Wiki'>Getting Things Done: The Personal Wiki</a></li>
<li><a href='http://blog.ayanray.com/2006/11/google-on-accountability/' rel='bookmark' title='Permanent Link: Google on Accountability'>Google on Accountability</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.ayanray.com/2010/05/useful-word-building-tool-ayanray-com-dictionary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Custom PHP Install on Dreamhost Shared Hosting</title>
		<link>http://blog.ayanray.com/2010/04/custom-php-install-on-dreamhost-shared-hosting/</link>
		<comments>http://blog.ayanray.com/2010/04/custom-php-install-on-dreamhost-shared-hosting/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 01:20:32 +0000</pubDate>
		<dc:creator>Ayan</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Custom Install]]></category>
		<category><![CDATA[Dreamhost]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">http://blog.ayanray.com/?p=400</guid>
		<description><![CDATA[I like to share what takes some agitation to figure out and doing a custom PHP install on Dreamhost was my most recent tiring endeavor. It&#8217;s hardly difficult, but only if you know what you are doing. There&#8217;s a plethora &#8230; <a href="http://blog.ayanray.com/2010/04/custom-php-install-on-dreamhost-shared-hosting/">Continue reading <span class="meta-nav">&#8594;</span></a>


No related posts.]]></description>
			<content:encoded><![CDATA[<p>I like to share what takes some agitation to figure out and doing a custom PHP install on Dreamhost was my most recent tiring endeavor. It&#8217;s hardly difficult, but only if you know what you are doing. There&#8217;s a plethora of resources out there and unfortunately they all seem outdated (and some are, because I tried them). The ones that are not promise ease and quickness but fail to deliver when it comes down to actually getting it to work or providing the pivotal last hoorah that will accomplish that task.</p>
<h1>The PHP Custom Install Script that Works</h1>
<p><strong>Source:</strong> <a href="http://www.bernawebdesign.ch/byteblog/2010/02/17/custom-php-5-3-1-with-apc-and-xdebug-on-dreamhost-shared-hosting/">http://www.bernawebdesign.ch/byteblog/2010/02/17/custom-php-5-3-1-with-apc-and-xdebug-on-dreamhost-shared-hosting/</a></p>
<p><strong>Note:</strong> This script works and the others didn&#8217;t for me. I post it up here again for my peers who use Dreamhost in case they need it too. If you require help, you are welcome to post here or post on the original author&#8217;s blog.</p>
<p><strong>Note #2:</strong> In order for this script and the .htaccess file to work accordingly, you must use a UNIX friendly text editor and save it in UNIX text mode. I use a tool called metapad and you can get it free here: <a href="http://liquidninja.com/metapad/">http://liquidninja.com/metapad/</a>. Otherwise, you might get 500 Internal Server Errors and those can sometimes be solved simply with this advice.</p>
<blockquote><p>#!/bin/sh</p>
<p># update 16.2.2010<br />
# @author Marco Bernasocchi<br />
# &#8211; Added OPENSSL LIBMCRYPT LIBTOOL and a promt for installing XDEBUG<br />
#   (still uses XDEBUG 2.05, which has basic PHP 5.3.1 support. 2.1.0 is on its way)<br />
# &#8211; removed unsupported php configure switches<br />
# &#8211; disabled &#8211;with-xsl, if you want to use it you&#8217;ll probably need to install<br />
#   libxslt (http://xmlsoft.org/XSLT/) version 1.1.0 or greater.<br />
# &#8211; sets the ini files into the install directory instead than on cgi-bin<br />
# &#8211; to add more domains just copy the cgi binary to the new domain<br />
#   cp &#8220;$PHP_BIN_DIR/php-cgi&#8221; &#8220;$NEW_CGI_BIN_DIR/php.cgi&#8221; and modifiy the .htaccess</p>
<p>#Script for a minimal PHP 5.3.x install with APC<br />
#<br />
#- Prompts for the domain to build for<br />
#- PHP configure line contains only valid PHP5 options<br />
#- Displays colourful status messages<br />
#- Many build messages, which aren&#8217;t helpful to most people, are now suppressed<br />
#- Procedurised, making it cleaner and easier to follow<br />
#<br />
#The only things you may want to change in here are marked with &#8220;@todo&#8221;s<br />
#<br />
#Derived form the original PHP 5.3 install script at<br />
#http://wiki.dreamhost.com/Installing_PHP5<br />
#<br />
#@author Dan Bettles</p>
<p>#Exit on error<br />
set -e</p>
<p>clear</p>
<p>echo -n &#8220;Enter the domain for which you want to build PHP and press [ENTER]: &#8221;<br />
read DOMAIN</p>
<p>echo -n &#8220;Enable XDEBUG (y|n): &#8221;<br />
read ENABLEXDEBUG</p>
<p>#==================================================================</p>
<p>#@todo Update versions, if necessary<br />
M4=&#8221;m4-1.4.13&#8243;<br />
AUTOCONF=&#8221;autoconf-2.65&#8243;<br />
OPENSSL=&#8221;openssl-0.9.8l&#8221;<br />
CURL=&#8221;curl-7.20.0&#8243;<br />
LIBMCRYPT=&#8221;libmcrypt-2.5.8&#8243;<br />
LIBTOOL=&#8221;libtool-2.2.6b&#8221;<br />
PHP=&#8221;php-5.3.1&#8243;<br />
APC=&#8221;APC-3.1.3p1&#8243;<br />
XDEBUG=&#8221;xdebug-2.0.5&#8243;</p>
<p>#@todo Update install paths, if necessary<br />
WEB_ROOT=&#8221;$HOME/$DOMAIN/web&#8221;<br />
CGI_BIN_DIR=&#8221;$WEB_ROOT/cgi-bin&#8221;<br />
HTACCESS=&#8221;$WEB_ROOT/.htaccess&#8221;</p>
<p>INSTALL_DIR=&#8221;$HOME/mycompiles&#8221;<br />
BUILD_DIR=&#8221;$INSTALL_DIR/build&#8221;<br />
DOWNLOADS_DIR=&#8221;$INSTALL_DIR/downloads&#8221;<br />
PHP_BASE_DIR=&#8221;$INSTALL_DIR/$PHP&#8221;<br />
PHP_BIN_DIR=&#8221;$PHP_BASE_DIR/bin&#8221;<br />
PHP_EXTENSIONS_DIR=&#8221;$PHP_BASE_DIR/extensions&#8221;<br />
PHP_CONFIG_DIR=&#8221;$PHP_BASE_DIR/etc/php5/config&#8221;<br />
PHP_INI=&#8221;$PHP_CONFIG_DIR/php.ini&#8221;</p>
<p>#@todo Alter features, if necessary<br />
PHP_FEATURES=&#8221;&#8211;prefix=$PHP_BASE_DIR \<br />
&#8211;with-config-file-path=$PHP_CONFIG_DIR \<br />
&#8211;with-config-file-scan-dir=$PHP_CONFIG_DIR \<br />
&#8211;bindir=$PHP_BIN_DIR \<br />
&#8211;enable-zip \<br />
&#8211;with-xmlrpc \<br />
&#8211;with-freetype-dir=/usr \<br />
&#8211;with-zlib-dir=/usr \<br />
&#8211;with-jpeg-dir=/usr \<br />
&#8211;with-png-dir=/usr \<br />
&#8211;with-curl=$PHP_BASE_DIR \<br />
&#8211;with-gd \<br />
&#8211;enable-gd-native-ttf \<br />
&#8211;enable-ftp \<br />
&#8211;enable-exif \<br />
&#8211;enable-sockets \<br />
&#8211;enable-wddx \<br />
&#8211;enable-sqlite-utf8 \<br />
&#8211;enable-calendar \<br />
&#8211;enable-mbstring \<br />
&#8211;enable-mbregex \<br />
&#8211;enable-bcmath \<br />
&#8211;with-mysql=/usr \<br />
&#8211;with-mysqli \<br />
&#8211;without-pear \<br />
&#8211;with-gettext \<br />
&#8211;with-pdo-mysql \<br />
&#8211;with-openssl=$PHP_BASE_DIR \<br />
#&#8211;with-xsl=$=$PHP_BASE_DIR \<br />
&#8211;with-mcrypt=$PHP_BASE_DIR&#8221;</p>
<p>#==================================================================</p>
<p>#@param string $1 Message<br />
function echoL1 () {<br />
echo -e &#8220;\n\033[1;37;44m$1\033[0;0;0m\n"<br />
}</p>
<p>#@param string $1 Message<br />
function echoL2 () {<br />
echo -e "\n\033[0;37;44m$1\033[0;0;0m\n"<br />
}</p>
<p>#@param string $1 URL<br />
#@param string $2 Output directory<br />
function downloadTo () {<br />
wget -c $1 --directory-prefix=$2<br />
}</p>
<p>#@param string $1 TAR filename<br />
#@param string $2 Output directory<br />
function untarTo () {<br />
cd $2<br />
tar -xzf $1<br />
cd -<br />
}</p>
<p>#@param string $1 Source directory<br />
#@param string $2 Output directory<br />
#@param string $3 configure arguments<br />
function configureAndMake () {<br />
cd $1<br />
COMMAND="./configure --quiet --prefix=$2 $3"<br />
if [ $1 = "$BUILD_DIR/$OPENSSL" ];then<br />
#special command for OPEN SSL<br />
COMMAND=&#8221;./config &#8211;prefix=$2 $3&#8243;<br />
fi<br />
echo &#8220;$COMMAND&#8221;<br />
eval $COMMAND<br />
make &#8211;quiet<br />
cd -<br />
}</p>
<p>#@param string $1 Source directory<br />
#@param string $2 Output directory<br />
#@param string $3 configure arguments<br />
function makeAndInstall () {<br />
configureAndMake $1 $2 &#8220;$3&#8243;<br />
cd $1<br />
make install &#8211;quiet<br />
cd -<br />
}</p>
<p>#@param string $1 Directory<br />
function mkdirClean () {<br />
rm -rf $1<br />
mkdir -p $1<br />
}</p>
<p>#@param string $1 Message<br />
function echoWarning () {<br />
echo -e &#8220;\n\033[1;37;41m$1\033[0;0;0m\n"<br />
}</p>
<p>#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</p>
<p>export PATH="$PATH:$PHP_BIN_DIR"</p>
<p>echoL1 "-&gt; DOWNLOADING..."</p>
<p>mkdirClean $BUILD_DIR</p>
<p>echoL2 "--&gt; Downloading $M4..."<br />
downloadTo "http://ftp.gnu.org/gnu/m4/$M4.tar.gz" $DOWNLOADS_DIR<br />
untarTo "$DOWNLOADS_DIR/$M4.tar.gz" $BUILD_DIR</p>
<p>echoL2 "--&gt; Downloading $AUTOCONF..."<br />
downloadTo "http://ftp.gnu.org/gnu/autoconf/$AUTOCONF.tar.gz" $DOWNLOADS_DIR<br />
untarTo "$DOWNLOADS_DIR/$AUTOCONF.tar.gz" $BUILD_DIR</p>
<p>echoL2 "--&gt; Downloading $OPENSSL..."<br />
downloadTo "http://www.openssl.org/source/$OPENSSL.tar.gz" $DOWNLOADS_DIR<br />
untarTo "$DOWNLOADS_DIR/$OPENSSL.tar.gz" $BUILD_DIR</p>
<p>echoL2 "--&gt; Downloading $CURL..."<br />
downloadTo "http://curl.haxx.se/download/$CURL.tar.gz" $DOWNLOADS_DIR<br />
untarTo "$DOWNLOADS_DIR/$CURL.tar.gz" $BUILD_DIR</p>
<p>echoL2 "--&gt; Downloading $LIBMCRYPT..."<br />
downloadTo "http://easynews.dl.sourceforge.net/sourceforge/mcrypt/$LIBMCRYPT.tar.gz" $DOWNLOADS_DIR<br />
untarTo "$DOWNLOADS_DIR/$LIBMCRYPT.tar.gz" $BUILD_DIR</p>
<p>echoL2 "--&gt; Downloading $LIBTOOL..."<br />
downloadTo "http://ftp.gnu.org/gnu/libtool/$LIBTOOL.tar.gz" $DOWNLOADS_DIR<br />
untarTo "$DOWNLOADS_DIR/$LIBTOOL.tar.gz" $BUILD_DIR</p>
<p>echoL2 "--&gt; Downloading $PHP..."<br />
downloadTo "http://www.php.net/get/$PHP.tar.gz/from/this/mirror" $DOWNLOADS_DIR<br />
untarTo "$DOWNLOADS_DIR/$PHP.tar.gz" $BUILD_DIR</p>
<p>echoL2 "--&gt; Downloading $APC..."<br />
downloadTo "http://pecl.php.net/get/$APC.tgz" $DOWNLOADS_DIR<br />
untarTo "$DOWNLOADS_DIR/$APC.tgz" $BUILD_DIR</p>
<p>if [ $ENABLEXDEBUG = "y" ]; then<br />
echoL2 &#8220;&#8211;&gt; Downloading $XDEBUG&#8230;&#8221;<br />
downloadTo &#8220;http://xdebug.org/files/$XDEBUG.tgz&#8221; $DOWNLOADS_DIR<br />
untarTo &#8220;$DOWNLOADS_DIR/$XDEBUG.tgz&#8221; $BUILD_DIR<br />
fi</p>
<p>#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</p>
<p>echoL1 &#8220;-&gt; BUILDING&#8230;&#8221;</p>
<p>mkdir -p $PHP_BASE_DIR</p>
<p>echoL2 &#8220;&#8211;&gt; Building $M4&#8230;&#8221;<br />
makeAndInstall &#8220;$BUILD_DIR/$M4&#8243; $PHP_BASE_DIR</p>
<p>echoL2 &#8220;&#8211;&gt; Building $AUTOCONF&#8230;&#8221;<br />
makeAndInstall &#8220;$BUILD_DIR/$AUTOCONF&#8221; $PHP_BASE_DIR</p>
<p>echoL2 &#8220;&#8211;&gt; Building $OPENSSL&#8230;&#8221;<br />
makeAndInstall &#8220;$BUILD_DIR/$OPENSSL&#8221; $PHP_BASE_DIR</p>
<p>echoL2 &#8220;&#8211;&gt; Building $CURL&#8230;&#8221;<br />
makeAndInstall &#8220;$BUILD_DIR/$CURL&#8221; $PHP_BASE_DIR &#8220;&#8211;enable-ipv6 &#8211;enable-cookies\<br />
&#8211;enable-crypto-auth &#8211;with-ssl&#8221;</p>
<p>echoL2 &#8220;&#8211;&gt; Building $LIBMCRYPT&#8230;&#8221;<br />
makeAndInstall &#8220;$BUILD_DIR/$LIBMCRYPT&#8221; $PHP_BASE_DIR &#8220;&#8211;disable-posix-threads&#8221;</p>
<p>echoL2 &#8220;&#8211;&gt; Building $LIBTOOL&#8230;&#8221;<br />
makeAndInstall &#8220;$BUILD_DIR/$LIBTOOL&#8221; $PHP_BASE_DIR</p>
<p>echoL2 &#8220;&#8211;&gt; Building $PHP&#8230;&#8221;<br />
#Fixes compile error<br />
export EXTRA_LIBS=&#8221;-lresolv&#8221;<br />
makeAndInstall &#8220;$BUILD_DIR/$PHP&#8221; $PHP_BASE_DIR &#8220;$PHP_FEATURES&#8221;</p>
<p>#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</p>
<p>echoL1 &#8220;-&gt; INSTALLING PHP&#8230;&#8221;</p>
<p>mkdir -p -m 0755 $CGI_BIN_DIR<br />
mkdir -p -m 0755 $PHP_CONFIG_DIR<br />
cp &#8220;$PHP_BIN_DIR/php-cgi&#8221; &#8220;$CGI_BIN_DIR/php.cgi&#8221;<br />
cp &#8220;$BUILD_DIR/$PHP/php.ini-production&#8221; $PHP_INI</p>
<p>mkdir -p $PHP_EXTENSIONS_DIR</p>
<p>echoL2 &#8220;&#8211;&gt; Building $APC&#8230;&#8221;<br />
APC_SOURCE_DIR=&#8221;$BUILD_DIR/$APC&#8221;<br />
cd $APC_SOURCE_DIR<br />
$PHP_BIN_DIR/phpize<br />
configureAndMake $APC_SOURCE_DIR $PHP_BASE_DIR &#8220;&#8211;enable-apc &#8211;enable-apc-mmap\<br />
&#8211;with-php-config=$PHP_BIN_DIR/php-config&#8221;<br />
cp modules/apc.so $PHP_EXTENSIONS_DIR<br />
echo &#8220;extension=$PHP_EXTENSIONS_DIR/apc.so&#8221; &gt; $PHP_CONFIG_DIR/apc.ini<br />
cd -</p>
<p>if [ $ENABLEXDEBUG = "y" ]; then<br />
echoL2 &#8220;&#8211;&gt; Building $XDEBUG&#8230;&#8221;<br />
XDEBUG_SOURCE_DIR=&#8221;$BUILD_DIR/$XDEBUG&#8221;<br />
cd $XDEBUG_SOURCE_DIR<br />
$PHP_BIN_DIR/phpize<br />
configureAndMake $XDEBUG_SOURCE_DIR $PHP_BASE_DIR &#8220;&#8211;enable-xdebug\<br />
&#8211;with-php-config=$PHP_BIN_DIR/php-config&#8221;<br />
cp modules/xdebug.so $PHP_EXTENSIONS_DIR<br />
echo &#8220;zend_extension=$PHP_EXTENSIONS_DIR/xdebug.so&#8221; &gt; $PHP_CONFIG_DIR/xdebug.ini<br />
cd -<br />
fi<br />
#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>if [ -f $HTACCESS ]; then<br />
HTACCESS_NEW=&#8221;$HTACCESS.old&#8221;<br />
cp $HTACCESS $HTACCESS_NEW<br />
echoWarning &#8220;&#8211;&gt; Copied $HTACCESS to $HTACCESS_NEW&#8221;<br />
fi</p>
<p>#The backslash prevents a newline being inserted at the start<br />
HTACCESS_CONTENT=&#8221;\<br />
Options +ExecCGI<br />
AddHandler php-cgi .php<br />
Action php-cgi /cgi-bin/php.cgi</p>
<p>#Deny access to the PHP CGI executable and config files</p>
<p>Order Deny,Allow<br />
Deny from All<br />
Allow from env=REDIRECT_STATUS<br />
&#8221;</p>
<p>#Preserve newlines in the content by quoting the variable name<br />
echo &#8220;#######ADDED BY installPHP script&#8221; &gt;&gt; $HTACCESS<br />
echo &#8220;$HTACCESS_CONTENT&#8221; &gt;&gt; $HTACCESS</p>
<p>echoL2 &#8220;&#8211;&gt; Created $PHP_INI&#8221;</p>
<p>#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</p>
<p>rm -rf $BUILD_DIR</p>
<p>echo -n &#8220;Delete the downloads directory? (y/n): &#8221;<br />
read DELETE_DOWNLOADS_DIR</p>
<p>if [ $DELETE_DOWNLOADS_DIR = "y" ]; then<br />
rm -rf $DOWNLOADS_DIR<br />
fi</p>
<p>echoL1 &#8220;DONE&#8221;</p>
<p>exit 0</p></blockquote>
<p>After running this script, it creates a folder in your domain called &#8216;web&#8217; and within that another folder called &#8216;cgi-bin&#8217;.  I wasn&#8217;t able to get anything working within this folder at first so I am guessing it is meant to be off limits? Anyways, I was able to get PHP 5.3 working ultimately with the following within your <strong>.htaccess file</strong> in the root of the your.com folder. This information came from the <a href="http://wiki.dreamhost.com/PHP5_installscript#Alternative_Example_3">Dreamhost Custom PHP Install Wiki</a> itself.</p>
<blockquote><p>AddHandler phpFive .php<br />
Action phpFive /web/cgi-bin/php.cgi</p></blockquote>
<p>After getting your custom PHP build installed correctly, you should create a php file with phpinfo(); and check that the PHP version is 5.3 or whatever you might have altered the script to. At that point, you are free to edit your<strong> php.ini</strong> file located at <strong>/home/user/mycompiles/php-5.3 (or whatever it might be)/etc/php5/config/php.ini </strong>for further modifications.</p>
<p>Phew, well that took me a few hours to figure out and I hope it saves you some time :p. Trying scripts left and right can really eat up time. Some literally just &#8220;stopped&#8221; or as Dreamhost might say was &#8220;killed&#8221;. Others just produced errors during the php build of the operation with no indication of why it failed. Helpful? Not at the very least.</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.ayanray.com/2010/04/custom-php-install-on-dreamhost-shared-hosting/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>The Best Way to Render Wireframe in Maya</title>
		<link>http://blog.ayanray.com/2010/01/the-best-way-to-render-wireframe-in-maya/</link>
		<comments>http://blog.ayanray.com/2010/01/the-best-way-to-render-wireframe-in-maya/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 02:28:56 +0000</pubDate>
		<dc:creator>Ayan</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Maya]]></category>

		<guid isPermaLink="false">http://blog.ayanray.com/?p=377</guid>
		<description><![CDATA[A quick google for render wireframe in Maya will get you some sound results. Unfortunately, I tried them and they didn&#8217;t consistently produce the results I needed. So here is the most consistent, and thus in my opinion best way &#8230; <a href="http://blog.ayanray.com/2010/01/the-best-way-to-render-wireframe-in-maya/">Continue reading <span class="meta-nav">&#8594;</span></a>


No related posts.]]></description>
			<content:encoded><![CDATA[<p>A quick google for render wireframe in Maya will get you some sound results. Unfortunately, I tried them and they didn&#8217;t consistently produce the results I needed. So here is the most consistent, and thus in my opinion best way to do wireframe in Maya.</p>
<h2>Method 1: &#8220;The Best Way&#8221; &#8211; Mental Ray Contours</h2>
<blockquote><p><strong>Why is it the best?</strong></p>
<p>It does not tessellate your objects. It can be applied to multiple objects without having to do new UV Snapshots. It can render in smooth shaded. It is quick and easy. And it uses the power of mental ray, and can look sweet if you do it right.</p>
<p><strong>Process</strong></p>
<ol>
<li>Assuming you have something to render, create a new material (can be anything that has a shader group &#8211; lambert, blinn, phong, etc.). In this example, I will be creating a lambert.</li>
<li>Call the new material WireFrameMTRL and the shading group WireFrameSG. Who doesn&#8217;t like being a little organized <img src='http://blog.ayanray.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ?<br />
Note: If you clicked somewhere else and can&#8217;t get to the shading group easily, you can just go to the Hypershade and find the tab Shading Groups to find it.</li>
<li>Go to the newly created lambert&#8217;s shading group WireFrameSG.</li>
<li>Open the mental ray -&gt; Contours tab.<br />
Note: If it isn&#8217;t there, you need to enable mental ray in your plug-ins Manager. Mental ray is called &#8220;Mayatomr.dll&#8221; so find it and load it.</li>
<li>Click Enable Contour Rendering.</li>
<li>Set the color to something you&#8217;d like. I like white.</li>
<li>Set the width to something like 0.2 &#8211; 1.0. This setting is the absolute width of the wire frame lines. You can comeback and play with this later.</li>
<li>Apply the material to the object.</li>
<li>Open Render Settings</li>
<li>Select render using Mental Ray (if it&#8217;s not there, go see the note for #4).</li>
<li>Find the Contours Tab (it is under the features tab in 2009)</li>
<li>Select Enable Contour Rendering</li>
<li>Open the Draw By Property Difference Tab</li>
<li>Select Around All Poly Faces</li>
<li>Render!</li>
</ol>
<p>And that is the easiest and most consistent way to get wireframe without the flaws of the other methods.</p>
<p>Here&#8217;s a shot of the result from one of my recent projects (with render settings fine tuned):</p>
<figure id="attachment_379" aria-labelledby="figcaption_attachment_379" class="wp-caption aligncenter" style="width: 522px"><a href="http://blog.ayanray.com/wp-content/uploads/2010/01/atomicBoot_inVector.65.jpg"><img class="size-full wp-image-379  " title="Wireframe Render" src="http://blog.ayanray.com/wp-content/uploads/2010/01/atomicBoot_inVector.65.jpg" alt="" width="512" height="288" /></a><figcaption id="figcaption_attachment_379" class="wp-caption-text">Rendering Wireframe with Mental Ray</figcaption></figure></blockquote>
<h2>The Worse Ways</h2>
<p>For full disclosure, here are some other not so good ways to render wireframe.</p>
<h2>Method 2: UV Snapshot</h2>
<blockquote><p>I don&#8217;t feel like doing the process for this one. It is somewhat of a pain to explain without pictures and frankly I don&#8217;t want to take them since it isn&#8217;t a method I&#8217;d advise. So here is a pretty decent video that does: <a href="http://www.youtube.com/watch?v=ZUFAtkVJdpg&amp;NR=1">http://www.youtube.com/watch?v=ZUFAtkVJdpg&amp;NR=1</a></p></blockquote>
<h2>Method 3: Maya Vector</h2>
<blockquote><p>Rendering in Maya Vector is fairly painless to test. Unfortunately, Maya needs to tessellate all quads whose vertices do not fall on the same plane.  There is a way to find these planes if you have a few but in my case, almost all my quads are non-planar so there was no point trying to fix them.  So here we go on the process:</p>
<p><strong>Process</strong></p>
<ol>
<li>Assuming you have objects to render, open up your render settings dialog.</li>
<li>Render using Maya Vector.</li>
<li>Go to the Maya Vector settings.</li>
<li>You can select Fill objects if you&#8217;d like. It will fill the object with a color you can select through the settings or leave it fill-less. For the example below, I unchecked fill objects.</li>
<li>Un-check show back faces.</li>
<li>Select Include Edges in the Edge Options Tab</li>
<li>Choose an edge weight. I chose 0.5 for the example below.</li>
<li>Choose Entire Mesh for Edge Style.<br />
Note: Outlines gives you a pretty cool effect. So try that too <img src='http://blog.ayanray.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>Render!</li>
</ol>
<figure id="attachment_382" aria-labelledby="figcaption_attachment_382" class="wp-caption aligncenter" style="width: 522px"><a href="http://blog.ayanray.com/wp-content/uploads/2010/01/wireframe-render.jpg"><img class="size-full wp-image-382 " title="wireframe-render" src="http://blog.ayanray.com/wp-content/uploads/2010/01/wireframe-render.jpg" alt="" width="512" height="384" /></a><figcaption id="figcaption_attachment_382" class="wp-caption-text">Wireframe render using Maya Vector. Oh boy look at the tessellation.</figcaption></figure></blockquote>
<h2>Method 4: Hardware Buffer</h2>
<blockquote><p>Hardware buffer is another painless way to render out in wire frame. Unfortunately, it doesn&#8217;t look nearly as cool as the previous two images. Anyways, here&#8217;s the process:</p>
<p><strong>Process</strong></p>
<ol>
<li>Open up the Hardware Rendering Buffer from Window &gt; Rendering Editors.</li>
<li>In the Hardware Rendering Buffer, open Render &gt; Attributes.</li>
<li>In the Attribute Editor, change the Rendering Mode &gt; Draw Style to Wireframe.</li>
<li>Render!</li>
</ol>
<p>This one looked terrible so I didn&#8217;t capture an image of it. I couldn&#8217;t figure out how to do back-face culling so this quickly became the worst of the techniques.</p></blockquote>
<h2>Method 5: Toon Shader</h2>
<blockquote><p>The second best method to render wireframes in maya is to use the toon shader. I personally like the mental ray method better for the control and power of mental ray but this one seems just as good for simplicity&#8217;s sake.</p>
<p><a href="http://www.artbycrunk.com/blog/2008/09/rendering-wireframe-using-toonshader/">http://www.artbycrunk.com/blog/2008/09/rendering-wireframe-using-toonshader/</a></p></blockquote>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.ayanray.com/2010/01/the-best-way-to-render-wireframe-in-maya/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>Japanese Visemes and Phonemes</title>
		<link>http://blog.ayanray.com/2010/01/japanese-visemes-and-phonemes/</link>
		<comments>http://blog.ayanray.com/2010/01/japanese-visemes-and-phonemes/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 12:27:00 +0000</pubDate>
		<dc:creator>Ayan</dc:creator>
				<category><![CDATA[3D]]></category>

		<guid isPermaLink="false">http://blog.ayanray.com/?p=371</guid>
		<description><![CDATA[I&#8217;m currently working on an interesting project that involves Japanese speech lip-syncing of a 3D character. Since it was difficult to find resources on this from an English speaker, I decided to write on it. Firstly, visemes are the unique &#8230; <a href="http://blog.ayanray.com/2010/01/japanese-visemes-and-phonemes/">Continue reading <span class="meta-nav">&#8594;</span></a>


Related posts:<ol><li><a href='http://blog.ayanray.com/2007/11/japan-japanese-version-of-punkd/' rel='bookmark' title='Permanent Link: Japan: Japanese Version of Punk&#8217;d'>Japan: Japanese Version of Punk&#8217;d</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m currently working on an interesting project that involves Japanese speech lip-syncing of a 3D character. Since it was difficult to find resources on this from an English speaker, I decided to write on it.</p>
<p>Firstly, visemes are the unique facial positions required to produce phonemes, which are basic sounds from a particular language. Each language has multiple phonemes and visemes and each viseme can have multiple phonemes. In the English language, there are about 10 basic phonemes (a-i, e, o, u, c-d-g-k-n-r-s-y-z, f-v,th,l,m-b-p,w-oo-q) with one viseme each totaling 10 visemes.</p>
<p>When I first began looking into Japanese visemes and had luck finding resources, I decided to try to develop my own solution with my understanding of the language. In my view, the Japanese language is composed of some very basic sounds that are construed to make more sounds. Although the phonemes begin to add up, the actual visemes are almost exact. Combinations like じゃ(jya) can be formed accurately by combining their similar visemes  い (i) and あ (a). The following diagram depicts the 5 visemes:</p>
<figure id="attachment_374" aria-labelledby="figcaption_attachment_374" class="wp-caption aligncenter" style="width: 510px"><a href="http://blog.ayanray.com/wp-content/uploads/2010/01/japvisemes1.png"><img class="size-full wp-image-374" title="Japanese Visemes-" src="http://blog.ayanray.com/wp-content/uploads/2010/01/japvisemes1.png" alt="" width="500" height="452" /></a><figcaption id="figcaption_attachment_374" class="wp-caption-text">Yours truly making visemes for animation</figcaption></figure>
<p>Again, I believe that with these 5 basic visemes, it will allow you to construct every mouth pose required for Japanese speech. Unfortunately, the character I am using lip-syncing for will most likely never have a tongue. This is important because, in Japanese speech,  the tongue is used more often than other languages (I&#8217;m thinking of English, but similar Latin-based languages fall in that category) and requires less movement of the lips to make the language&#8217;s basic phonemes.</p>
<p>Finally, near the end of my researching for this particular topic, I found this webpage that explains everything I just did and more: <a href="http://www.ordix.com/pfolio/research/">http://www.ordix.com/pfolio/research/</a></p>
<p>I don&#8217;t particular like the visemes for the first two sounds as the character&#8217;s teeth stick out far too much for my liking. It is entirely possible that the character is making the correct sound, but when I try the phoneme in her pose, it feels quite strange.</p>


<p>Related posts:<ol><li><a href='http://blog.ayanray.com/2007/11/japan-japanese-version-of-punkd/' rel='bookmark' title='Permanent Link: Japan: Japanese Version of Punk&#8217;d'>Japan: Japanese Version of Punk&#8217;d</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.ayanray.com/2010/01/japanese-visemes-and-phonemes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Japan: New Years Celebrations</title>
		<link>http://blog.ayanray.com/2010/01/japan-new-years-celebrations/</link>
		<comments>http://blog.ayanray.com/2010/01/japan-new-years-celebrations/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 05:47:17 +0000</pubDate>
		<dc:creator>Ayan</dc:creator>
				<category><![CDATA[Japan]]></category>
		<category><![CDATA[Travels]]></category>

		<guid isPermaLink="false">http://blog.ayanray.com/?p=345</guid>
		<description><![CDATA[It&#8217;s been awhile since I&#8217;ve written on Japan. This has been because of mostly the fact I&#8217;ve been here before for an extended period of time and simply ran out of things to write about. There are some things that &#8230; <a href="http://blog.ayanray.com/2010/01/japan-new-years-celebrations/">Continue reading <span class="meta-nav">&#8594;</span></a>


Related posts:<ol><li><a href='http://blog.ayanray.com/2007/05/japan-my-first-run-in-with-the-police/' rel='bookmark' title='Permanent Link: Japan: My first run in with the police!'>Japan: My first run in with the police!</a></li>
<li><a href='http://blog.ayanray.com/2007/01/happy-new-years/' rel='bookmark' title='Permanent Link: Happy New Years!'>Happy New Years!</a></li>
<li><a href='http://blog.ayanray.com/2007/09/japan-shopping-and-department-stores/' rel='bookmark' title='Permanent Link: Japan: Shopping and Department Stores'>Japan: Shopping and Department Stores</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been awhile since I&#8217;ve written on Japan. This has been because of mostly the fact I&#8217;ve been here before for an extended period of time and simply ran out of things to write about. There are some things that have crossed my mind that could be interesting topics, but I&#8217;ll save those for later. This post however is on a new topic that I never got to experience the first time I was here. This time I truly got to experience Japanese life in regards to Christmas and New Years.</p>
<p><strong>Christmas</strong></p>
<p>Christmas isn&#8217;t much different in Japan than the North American version. You still get presents for your friends and family and they still get presents for you (or else would it really be Christmas?). Unfortunately for us, and I still don&#8217;t know if this is common, we didn&#8217;t have a Christmas tree. Instead, we used some makeshift plant as a tree and put presents around it. Hooray. The stores were their usual self playing Christmas music with Christmas decorations galore. It was interesting to see the local KFC with their statue of Colonel Sanders dressed up in a Santa outfit and to see at the local mall not Santa but guess who? Ultraman. Who needs jolly old saint Nick anyway? Why not a super hero sent from space to defend Earth from aliens? Way cooler.</p>
<figure id="attachment_361" aria-labelledby="figcaption_attachment_361" class="wp-caption alignnone" style="width: 550px"><a href="http://blog.ayanray.com/wp-content/uploads/2010/01/IMG_0116_resize.jpg"><img class="size-full wp-image-361" title="Ultraman at the mall" src="http://blog.ayanray.com/wp-content/uploads/2010/01/IMG_0116_resize.jpg" alt="" width="540" height="397" /></a><figcaption id="figcaption_attachment_361" class="wp-caption-text">Ultraman @ AEON mall</figcaption></figure>
<p><strong><br />
New Years</strong></p>
<p>The most interesting Japanese holiday traditions involve New Years. I was kind of surprised at how important it is here in Japan after experiencing how similar Christmas was. Firstly, Japanese people support the Chinese astrology and subsequently the animals of the Chinese Zodiac. The new year brings the tiger to replace the cow so likewise, you see images of tigers and stuffed fluffy tigers everywhere. Secondly, New Years brings the most fun and interesting concept to shops: fukubukoro! Fukubukoro is a Japanese New Years tradition at shops where shops include random goods into a sealed container and sell it for one flat price. They tempt you with what could be in the boxes like for example some electronic stores package $500 worth of stuff into a $250 fukubukoro and hide it randomly among other lower valued fukubukoro. I did end up buying one as I&#8217;ve looked forward to this all year long. I got a Police fukubukoro for $50 that contained a necklace, bracelet, and a hat. If you know Police, you know that&#8217;s a steal. Thank god more people don&#8217;t know Police here or that price would go through the roof.</p>
<p>Among other things, Japanese people tend to have a very specific diet on New Years. They generally start eating a prepared meal of raw fish and traditional Japanese foods in the morning. From there, I think it&#8217;s up to the family. Specifically, we had sushi for lunch and sukiyaki for dinner, which are both still very traditional Japanese meals. Also during this time, older people are expected to give money to younger people in the amount of generally more than $100. No it&#8217;s not an early birthday gift or late Christmas gift; it&#8217;s extra.</p>
<p>Another interesting tradition for New Years is one I took part in early New Year&#8217;s morning. Not all Japanese do this but many have done it at least once in their lifetime. The tradition is to climb the local highest mountain, visit the mountain&#8217;s temple before sunrise, and then view the sunrise with everyone on the summit. As it can be very cold during January and at 5 &#8211; 7 am, it&#8217;s understandable people don&#8217;t do this every year. However, it is a thrilling experience when you climb a mountain in the dark and see the sun break from the clouds in the freezing cold.</p>
<figure id="attachment_364" aria-labelledby="figcaption_attachment_364" class="wp-caption alignnone" style="width: 471px"><a href="http://blog.ayanray.com/wp-content/uploads/2010/01/IMG_2128.jpg"><img class="size-large wp-image-364" title="Sunrise" src="http://blog.ayanray.com/wp-content/uploads/2010/01/IMG_2128-768x1024.jpg" alt="" width="461" height="614" /></a><figcaption id="figcaption_attachment_364" class="wp-caption-text">Peaceful sunrise on New Years Day</figcaption></figure>


<p>Related posts:<ol><li><a href='http://blog.ayanray.com/2007/05/japan-my-first-run-in-with-the-police/' rel='bookmark' title='Permanent Link: Japan: My first run in with the police!'>Japan: My first run in with the police!</a></li>
<li><a href='http://blog.ayanray.com/2007/01/happy-new-years/' rel='bookmark' title='Permanent Link: Happy New Years!'>Happy New Years!</a></li>
<li><a href='http://blog.ayanray.com/2007/09/japan-shopping-and-department-stores/' rel='bookmark' title='Permanent Link: Japan: Shopping and Department Stores'>Japan: Shopping and Department Stores</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.ayanray.com/2010/01/japan-new-years-celebrations/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

