Getting Things Done: The Personal Wiki

One application of David Allen’s Getting Things Done principles is the personal wiki (google Monkey GTD). Although the book is on my reading list and I have yet to touch it, there’s no reason to start ‘working on it’ early, eh? Well, I’ve been using a personal wiki for a few weeks now and let me tell you it is the best think since peanut butter. A personal wiki allows you to share knowledge with the most important person in your life — you! No, it’s not egotistical, it’s brain centric. Humans are notorious for forgetting things. If we stop, we forget. If we forget, we might lose information or skills that are necessary down the road. A personal wiki is beyond that. It is exactly like any wiki — it is searchable, indexes items, and can be used from any computer and certain mobile devices. If you know you are going to forget something, or want to write something down that could be important or interesting, why not save it in your own wiki? I don’t advocate being dependent on a machine to look up content you forgot or writing everything you read down; I’d rather you remember. However, as it’s impossible to remember everything, it could be a good source of knowledge kept just forgotten. Here’s an example of how I use it. Currently, I use it for is for writing book reviews to myself — at least for now. I remember a lot of details from books I read and yet I still forget a lot of the good stuff. The great stuff sticks, but it’s those one-liners and unique examples that might be peripheral to the solution but could really interest me down the road and allow me to remember complicated discussions and some of the reasons to support theories. Too bad I forget those the most. So, lately, I’ve been writing book reviews and keeping track of valuable information chapter by chapter — in my own words. I write a post to myself, indicating the main points of chapters and in a language I’m comfortable with. I don’t edit it as much as I edit assignments or work projects; it’s for my eyes only so that I can revisit it without having to read the whole book again. I also use it for jargon, definitions within my problem domain, that would otherwise be forgotten in a few hours if not minutes after look up. It’s a useful tool that maybe won’t pay off immediately, but in the long run for sure.

As for recommended personal wikis, I use TiddlyWiki. It is a 1 file HTML page that can be stored locally, on a jump drive, or on a server. It needs write permissions on the local drive to run but that’s certainly worth it considering how valuable it is. There are a ton of plugins for it if you know where to look. Goto this page to find them. All you need to do is download the index.html file and load it up in your personal wiki and it automatically detects the plugins and transfers it over. Neat eh? I was impressed on how powerful that one file is. I would hate to be working on it with a team of developers, but I can’t complain because it fits my needs perfectly. Anyways, I can’t express how useful this will be if you start using it. It might take some time getting used to but it can be like your own private journal — except this has a search function you might need 2 years down the road.

Posted in General | Tagged | Leave a comment

Productivity and Motivational Tip: Time Cost Table

I’m not sure if this is a standard tool, but I created it for myself to start seeing where my time was going and thought it could be valuable to others. Your personal time is valuable. And like anything valuable, you need to know what’s happening on a regular basis. It may not seem sensible at first, but I suggest creating what I call a time cost table. At the heart of it is knowledge — knowledge of where your valuable time is going. It is flexible in that you can use it in a relaxed or a strict way and still receive the benefits of using it.

So here’s what it looks like:

Start Time End Time Duration Item
7:02 pm 8:15 pm 1 hr 13 min Studied for GMAT – quantitative section
8:16 pm 8:45 pm 30 min Ate Dinner
8:46 pm 10:32 pm 1 hr 46 min Studied again for GMAT
- - - Total for the day:  2 hr 59 min GMAT // 30 min break

To use it, simply create your own in a word processing suite etc.  using the full page and the column headers in the example and start writing down start time and end times for work and break blocks. If you are working on homework, write it down. If you are watching TV, write it down. I try to imagine that I’m being paid for work or a goal for a certain day, say studying for GMAT for example, and that I have to work 7 hours for example on a free Saturday. By writing down the time, I can see where I take breaks, how long I take it, when I wake up, how long I actually study and subsequently how much I should be ‘paid’ for my time. Lawyers and other professionals use the concept of billable hours and a plan like this makes it easy to see how many hours are you billing per day. Imagine billing 9 hours per day for a goal, can you do it? What about 13? Now that’s hard.

Hopefully this helps make you more productive, procrastinate less, and reach and plan your goals accordingly.

Posted in General | Tagged | 2 Comments

Self-Service: Subservient Video AS3 Flex 3

As my first self-service application, the Subservient Video AS3 application allows users to build a fun, creative, and interesting interface for their website guests. This application is an upgrade to the popular AS2 subservient chicken open source application I released a few years ago. Since it was time for a revamp, I created this self-service counter and home for a new AS3 version – powered by Adobe Flex. If you aren’t familiar with my AS2 subservient application, check it out here.

What is Subservient Video?

Subservient video is a powerful video application that allows you, in a sense, to have a conversation with a video. While using the application, a user would enter in text in the form of sentences, keywords, or the like, and the video application will respond to these queries by playing pre-configured videos that match with the words being searched. All of this is fronted by a powerful Adobe Flex layout using skins, allowing the site owner to easily modify the look and feel of the application.

Sample showing subservient video teleport action
Sample showing subservient video teleport action

Try the demo online now

Licensing

The application is sold by the license. Please purchase the one you need. If you need assistance, please email me at ayan [at] ayanray.com.

Buy Now

With the power of PayPal, you can purchase a license now and receive the software and appropriate license via email/YouSendIt with instructions after payment.

License #1 $200 USD Single Character License for 1 site Includes manual, getting started guide, application files, two skins, sample application, and 30 day support (limited)
License #2 $400 USD Single Character License for 1 site no credit link Includes manual, getting started guide, application files, two skins, sample application, and 30 day support (limited)
License #3 $500 USD Site wide license for 1 site unlimited characters Includes manual, getting started guide, application files, two skins, sample application, and 30 day support (limited)
License #4 $900 USD Site wide license for 1 site unlimited characters no credit link Includes manual, getting started guide, application files, two skins, sample application, and 90 day support (extended)
Extras $200 USD + any license Source code included with any license Purchase a license and have the option of purchasing the source code for an extra fee

Note: There are different pricing available for NGOs and NPOs and for bulk license purchasing. Please contact me at ayan [at] ayanray.com for more information. Custom tuning is also available by request.

Definitions
Limited Support – Questions only.
Extended Support – I will help setup your application and answer questions. I won’t implement it but I will help configure it.


Feature Requests/Road Map:

None planned yet.

What is Subservient Video?

Posted in Flash | Tagged , | Leave a comment

Coming Soon – SWFWindow AS3 Framework

They are a dime a dozen – a framework for Flash/Flex and AS3. It’s really quite simple making your own framework. You come up with what you want to accomplish and you develop general classes to accomplish that. It is very much like building a product. SWFWindow was my first attempt at building a framework that I designed and I used on a couple of well-known websites (global leaders in their industries). Now, I am finally planning on releasing it so people can pick at it and enjoy it while it’s still applicable. I won’t be supporting this framework as much as I have supported AssetLoader but I will nonetheless provide the documentation, example code, and code base required to get up and running in SWFWindow projects.

More on this later :)

Ayan

Posted in Flash | 2 Comments

Code Agitation – The Perils of Duplication

Recently, I noticed something funny in a code base that I view seldomly. I was scrimmaging through the code of a maintained code base and noticed something sour – duplicated code. Duplicated code is not bad, when it is in the form of syntax of a language (haha)! And that isn’t real duplication! What I noticed was something that frustrates me, and surprisingly, wouldn’t have frustrated me 4 months ago. The duplication was basically 10 duplicated functions that were essentially identical to each other with hard-coded differences that should have been parameters and were written when the quantity of functions were low and the purpose was minor. What really irritates me is that this code has been updated many times and someone, in the words of Andy Hunt and David Thomas, did not fix the broken window. I’m not writing this post to complain, but to rather preach.

If you see something you know just isn’t right, take ownership of the code and fix the problem. It is easy to say it’s not yours or that you can do it next time or that the code base is so old it will be replaced. Well those excuses may or may not be true. But chances are, you will have to look at it again, or someone will, and you should fix it now while you know. If you aren’t familiar with this or it sounds familiar, it’s basically the principle of controlling the entropy within your project, which is preached within 3 of the 4 programming books I’ve read in the last 4 months. Whether it’s building an application, playing a game of pool, or anything for that matter, you should try to control the chaos and be pro-active and decisive with reason.

Thankfully, I fixed the problem. This is something that I do regularly and consistently now that I’ve gone through quite a learning curve. I refactor, refactor, and refactor some more. Perfection isn’t what you can add, it’s what you can take away.

Posted in General | Leave a comment

AssetLoader Updates – we have video!

As promised, I’ve updated the AssetLoader and pulled it into the 21st century. It is a lot more… flex-ible if you get what I mean (of course you do). Anyways, as a reminder, you can sync up with the following repository to get the code: http://assetloader.googlecode.com/svn/trunk

A word of warning: the new repository is now a home for all my code related to AssetLoader and that means it’s larger and more complex. What could be in there other than the value-added loading code you might ask? Well, I’ve got loader tests, which include examples to prove to myself that video, sound, images, and xml work (I assume images and xml work since it’s been working since the beginning) and I’ve got unit tests (with hamcrest and flex unit 4). Although the tests and the unit tests are not complete, I will be adding more as I get more experience using video in flash and more experience using flex unit.

A note about the video loading: Take a look at the video example in the AssetLoaderTests folder. You will notice that I have to save a reference to the netStream. In order to close out the AssetLoader and remove all references (clean up for garbage collection), I must null all variables created within the AssetLoader. Thus, if you try to add the video without storing a reference to the netStream, you will either see a blank screen or a frame of the video (however far it got until the netStream was deleted). So, keep a reference of the netStream for all videos you load and show (you can delete the references if you don’t need it of course) in order to get around this issue.

If you really only care about the source code, and I expect most of you to fall into that category, sync up with this repo: http://assetloader.googlecode.com/svn/trunk/AssetLoaderSource

It’s got everything you need to get up and running.

And finally, if you really just want the source to play around, you can download the SWC source from google repository: http://code.google.com/p/assetloader/source/browse/#svn/trunk/AssetLoaderSource/bin

or the zip file here: http://www.ayanray.com/downloads/assetloader_v1.3.8

Comments, feature requests, and feedback are always appreciated! I’m making this class available to help you! If it doesn’t do something that you think it should, hit me back.

Roadmap


1.5  -> Array Support

1.6 -> Perhaps I’ll do support for wave files and other embeddable but not loadable files (through ByteArray)

Posted in Flash | Tagged , | 2 Comments

AssetLoader has a new home

As promised, I am going to fix up AssetLoader so it delivers all that it originally promised. As I have been using flex lately, I realize that the AssetLoader class is more valuable than I originally intended. Flex itself has some rather bloated but powerful loading mechanisms and yet still has various interfaces to load different media at run-time. This new AssetLoader will intend to solve these issues and continue to be the light-weight, production safe utility class as it has always been.

Planned Features:
1) Add Array as an accepted method of loading assets (solves inability to load duplicate media issues)
2) Add Video and fix Sound Loaders
3) Automate ASDocs documentation for up-to-date documentation
4) Distribute AssetLoader.swc as the supported library package

Anyways, like the title says, AssetLoader has a new home. And it’s at GoogleCode – http://code.google.com/p/assetloader/

REMINDER: If you are using an AssetLoader below version 1.2, please sync up now so you have the most recent AssetLoader code. It truly is better than anything below 1.2.

Posted in Flash | Tagged , | Leave a comment

10 Reasons to Start using WordPress (in general)

I have almost finished configuring my blog to my liking and let me tell you that I am really liking it. It is honestly such an easy process to get up and writing that you need to know next to nothing about web servers, PHP, MySQL. So, in order to start writing, which is what this blog is all about, I wanted to share some insight into the custom blog to wordpress experience. Here are my top 10 reasons to use WordPress:

10. Dreamhost One-Click Install

Let’s start from the beginning. I was navigating Dreamhost (my hosting provider) and I saw the swanky WordPress logo in the one clicks. WordPress has been around a long time in the one clicks but this time I was feeling venturous as the pressures of not writing in awhile from my current blog were weighing me down. Anyways, I clicked it and low and behold it installed it! I went to the site and I was up and running within 5 minutes.

9. Pages

A blog is not just a blog these days. Take a look at Lee Brimelow’s blog at TheFlashBlog.com or Keith Peter’s blog at bit-101.com. These aren’t really the best examples of using pages but they definitely use it to separate their blog from additional content that would be of interest to their readers. So having pages makes the blog into more of a website and less of just a blog.

8. Settings Managers

The settings managers in WordPress are awesome. I want to see their implementation. It looks so modular!

7. E-mail Notifications

I love getting emails when I get comments so I can approve them and move on with my life. However, coming from my own custom blog, I appreciate not having to do it manually in CakePHP with the various options and installation that are required with those options.

6. Administration Panel

The administration panel is sweet. It emphasizes writing new content and getting your blog setup how you like it. I would definitely like to see them set up auto redirects like after I hit publish I don’t want to see the same post again. I’d rather be taken to my blog or back to the dashboard or something else that is I haven’t been staring at for the last little while.

5. Importing/Exporting

When I setup my new blog, I wanted to preserve what little content I had from my previous site. In order to do that, I pointed my new WordPress blog at my RSS feed from my old blog and presto, it all came in! I had to write a custom script for my comments though but that wasn’t as hard as it would have been for the posts.

4. Install Plug-ins without using FileZilla!

I thought this feature deserved it’s own title. One of my issues with these blogs is the installation process. I don’t want to develop to write. I want to write. Period. Having a plug-in like Plugin manager allows me to download plug-ins from an interface, install them with one click, and activate them in another. Now this is what usable applications are all about. Automate whatever you can and this is a feature that is worth a gold star.

3.  Themes

When I installed the one-click Dreamhost WordPress, I was impressed with how fast it was and how easy it was to setup. The initial design was the standard blue pill look and that was so outdated. So I spent a good 30 minutes looking for a new design and looking at how to install it onto my server. Little did I know that Dreamhost actually installed the top 50 designs already and all I had to do was go to my Appearance tab and navigate through them. Wow is that ever easy to switch the design. I love it cause if I am not feeling the design anymore, there’s plenty of pay and free designs out there that can fit my bill.

2. Plug-ins

I love plug-ins. Need I say more? They are short, simple, and sweet. They are like little utilities that do specific tasks and do them well. They are free, well-done, and there are tons of them. Blogging isn’t new – what I need has already been developed. Using this open source community to leverage my development of my own blog makes my life so much easier so I can write about how much I love WordPress more often.

1. Less programming, more writing mantra

At the end of the day, it’s all about writing. I don’t care if no one reads this post. I don’t even care if this post ever makes it to page 2000 on Google let alone that. What I do care is that I write and that I practise writing. I read that in some MBA programs, one of the tasks the professor gives students is to wake up in the morning and write 3 pages about anything. All they have to do is write. In the beginning, it is tough to get the 3 pages and it feels silly writing the 3 pages. But after awhile the author begins to notice patterns in their writing. They start talking about common problems, business ideas, and solutions to these issues. They talk about what’s bothering them and they have a place to vent it out. They become more involved in how they think and value their thoughts more than before. Some even more remarkable things occur and that is what I’d like to aim for. I do sometimes do the morning ritual, but those writings are generally not shareable and generally you don’t need to look them over. My blog posts are for sharing and for offering insignt and advice to someone who might be interested. Getting back to the point, if I spend more time developing, I am practising programming. But if I practise blogging, I am practising a very core and basic skill that is just a tad under appreciated.

Thank you WordPress. You Rock.

Ayan

Posted in General | Leave a comment

New Blog

Hello everyone!

As you might be able to tell, I have a new blog. I have finally resorted going back to WordPress. Around 2 years ago, I transfered from a WordPress blog to a CakePHP blog; deciding in favour of the custom cake caching and control CakePHP had to offer. Unfortunately, with this new found CakePHP blog and the skills I acquired by making it, it caused me to develop more and write less and this is what is causing me to switch back. WordPress allows me the beauty of OpenSource without the trouble of developing. Don’t get me wrong, I love CakePHP. It is an awesome framework with fun and entertaining analogies to create beautiful code. However, I don’t want to have to develop more than I write. I also don’t want to have to change so much when I feel like switching blog layouts. So… back to WordPress. I’ll be transfering over all my posts from my previous blog in a few days (I’ll have to write one last script).

Please stay tuned and I hope you enjoy this new direction.

Cheers,

Ayan

Posted in General | Leave a comment

My First Adobe AIR App (a 3D Music Player)

This past semester (yes school is back), I had a chance to play around with Adobe AIR for my Human Computer Interaction term project. For the term project, I wanted to create a 3D Music Player, that allows you to travel around the room and basically control the sound. Pretty cool eh? Well download it for yourself and check it out.

3D MUSIC PLAYER

The basic core of my 3D music player uses Papervision3D. I have been following Papervision3D for awhile now and wanted to give GreatWhite (v2 alpha) a try. This creates a 3D space for me to use sound. The sound itself is using HRTF, Human Related Transfer Functions, to project sound in 3D space. This mimics how audio behaves in free space without reflections, refractions, etc. Most of HRTF is covered within Papervision3D so I utilized that and added my own functionality.

THE DESIGN

The design of the player mostly came from my own vision of how this should look like. I was not only doing the 3D music player as the only function, I was also planning on doing 3D video with sound (as a bonus). I was pretty much short for time so I decided it would not be able to meet my bonus expectations. Also, the Joystick navigation system that I use, shown below, is inspired by Air Jordan XX3. Their website was created by Blast Radius I think, so they have plenty of talented artists to steal ideas from! Just kidding… You should read up on how they created that website if you have a chance, it is a very interesting read.

So if you wanna give it a look, here’s the download:

IMD3004_TP_AyanRay.zip

UPDATE [12/19/2009]

After reviewing this post, some of the comments indicated a desire for the source code. You can download the whole package from the following link: http://www.ayanray.com/downloads/air_3D_music_player_full

3D Sound Experiment in Flash
3D Sound Experiment in Flash
Posted in Flash | Tagged , , , | 11 Comments