Friday, December 11. 2009Alternative Views
“What do you use two monitors for?… You mean your mouse cursor can move from one screen to another?!”
It’s a rather common question I face when friends see my computer setup. I don’t blame them for asking thus. After all, whenever I did a dual-monitor setup at work to improve my productivity (while reducing Alt-Tabbing), I get a collection of interesting questions too! Here’s how my secondary desktop at its idle-state looks like with iTunes playing a random track:- You’ll see DesktopLyrics (with GimmeSomeTune, an automatic lyrics fetcher), iTunes, EarthDesk, and Things as permanent residents in this secondary-screen estate. Other times, I have Google Chrome running on the bottom-right of the screen with 4 tabs, one for Facebook, another for Gmail, then Munin, and the last for Torrentflux. Safari is still my main browser but I use Chrome for these few site due to its stability and resilience to crashes. The Adobe Flash plugin crashes all the time, so will intensive AJAX sites. I’ll explain why Safari is still my main browser on the Mac in another post. I also use this screen to watch YouTube (in Chrome) or videos. On my main desktop, I run something called iCalViewer which overlays my iCal calendars over my desktop wallpaper, with events represented by boxes all racing towards the finishing line, i.e. the time now—visit the product page for a good visualisation. This is also the place where I have my primary focus, for reading or for writing. All references go to the secondary screen on the right. With the invention of widescreen (16:9) monitors, I now partition the screen area to 2 virtual areas. The standard 4:3 area for work, and a tiny vertical 4:9 strip for all other notifications and communication windows. Never under-estimate what this 4:9 vertical strip of space can do, as it has saved me countless of Alt-Tabbing actions and ‘situation awareness’. I put my various contact-lists (Adium and Skype), Growl notifications, and chat-windows in this vertical space. Only Adium (and countless other non-official IM clients) can consistently and compactly display a chat window into a 4:9 space while retaining usability and readability. This means, the chat-window consists of only a one-liner text entry box and fills the rest of the vertical space with conversation—no formatting toolbars and fancy-feature buttons (think Google Talk client). With tabs right below the text entry box, I can switch between conversations with a click or key-press. Application-specific floating toolboxes or palettes live in this space too. Another reason why I keep my workspace and web browser in the 4:3 layout and not filling the entire 16:9 widescreen is because of 2 main considerations. Firstly, according to screen-readability and eye-tracking studies by Google, reading habits of most people are only concentrated on the top-left vertical column of the screen. In short, the eyes prefer travelling in small vertical motions rather than large horizontal distances. This also explains why newspapers typeset text in columns as our eyes have less horizontal travelling to do. Secondly, most webpages are designed with the resolution of 1024 by 768 pixels in mind, a 4:3 aspect ratio as a lowest common denominator. Stretching the browser window too much horizontally either stretches the site horizontally unnecessarily or that there will be unsightly and uneconomical empty spaces surrounding the site content. So as to reduce strain on my eyes, I restrict most windows to a 4:3 size ratio unless the application design requests otherwise (Adobe Photoshop is a prime 16:9 example). This also explains why whenever I’m browsing or navigating for files in Windows or any other application for that matter, I restore (un-maximise) the window, resize it to 4:3 size ratio and turn on ‘Detail View’. I locate stuff way faster by just looking downwards compared to scanning left-right-down, left-right-down. In fact, I have personally observed the reading efficiency of Windows-users who habitually maximise windows, regardless of the display aspect ratio. Sad to say, their bad-habit negatively affects their productivity. It’s nothing scientific but it’s highly amusing. Of course, all these window arrangements can only be achieved consistently on the Mac as Windows has amnesia when it comes to remembering windows positions and sizes. This also explains why Windows-users have to habitually maximise their windows—it is the only reliably and quick method to get windows into predictable (and familiar) positions and sizes. So please, when you’re on a Mac, don’t be frustrated that the green ‘maximise’ button doesn’t work as you’d expected. It’s not meant to! Don’t be lazy but to just position and resize the window into a 4:3 size ratio and the application will remember it; yes, both size and position. If you’re unfortunately on Windows, like I am during working hours, don’t fret—some applications will remember window size and positions; just adjust for those that don’t. If you value productivity, that is.
Posted by iphoting
in Computers, Thoughts, Work
at
10:00
| Comments (5)
| Trackbacks (0)
| Top Exits (344)
Thursday, December 3. 2009Bird's Eye![]() I run a piece of software called EarthDesk which sets the picture above as my second-screen desktop wallpaper, updated every few minutes with live data. It’s rather therapeutic watching the city-lights go on at night and fade off on sunrise. Then, clouds perpetually cover the place where I live. I get to watch tropical cyclones form and move around. Quite entertaining, just like a fish tank. Wednesday, December 2. 2009Brain Teasers
One of my friends suggested I check out this interesting site, Project Euler, to keep my brain teased and concurrently challenged in coding up solutions. It is somewhat similar to CodeGolf but different.
What Project Euler aims to do is to maintain a repository of member-contributed mathematical problems in ascending order of difficulty. A problem is considered solved when you submit a correct answer into the answer text box. Upon completion of a problem, you gain access to problem notes (if available, written by the author) and a special forum thread which discusses or exhibits solutions to the problem. The fun part is that syntax and schematics of how you arrive at the answer doesn’t matter. You can cheat all you want but it defeats the purpose of even solving the problem—you’ll be better off doing penmanship. What’s different about Project Euler is that you can use any method, software, or language to arrive at the answer; the degree of difficulty completely lies in your hands. You can choose to come up with clean algorithms, copy algorithms off the net, or recursively brute-force your way through, Project Euler doesn’t care. As long as you submit a correct answer, the treasure box opens and you get to see different perspectives to solving that particular problem. The best part of solving a problem is to see geniuses coming up with artistically sparse, concise and elegant solutions in a language of their choice. Trying to understand what goes on in that few lines of powerful code really challenges and changes your ability to think. With 266 problems (as of this writing) waiting for you to chew, you’ll have no shortage of brain exercises, providing you with ample fun for your otherwise idling time, perfectly suitable for boring meetings too! Wednesday, November 11. 2009The Android and iPhone Platforms
I’ve been doing a comparison between the iPhone and Android platform for quite sometime and have come to an interesting conclusion that not many people seem to have seen.
Before I begin, I shall list some of the key differences between the two platforms and then proceed to demonstrate some parallels to formerly failed or failing platforms. iPhone is best known by its 100, 000 application strong App Store, closed and managed eco-system, but balanced by very powerful and easy to use SDK. Interface-wise, it’s the first to pioneer large-scale finger only screen manipulations, with a very polished and unified UI. Flicking the screen to scroll a list were rare when the iPhone was first introduced and it brought a revolutionary change in smartphone UIs, and so did pinching. It has a seamless sync capability powered by iTunes, only seen previously on iPods, and formally inspired by Palm’s very own HotSync. Android on the other hand is like the dialectic twin to the smartphone solution. It also has an app store but it’s open for listing quite freely. Applications are not signed nor controlled — a user can choose to install anything he wants with no restrictions. That’s where the similarities end, if any. The platform offered by Google is rather generic, leaving much of the integration work to the hardware makers. There’s no out-of-the-box sync solution provided by Google’s Android, leaving each hardware maker to come up with their own, and possibly incompatible sync solutions. Also, they are forced to create UIs for their phones for better hardware integration. This leaves each hardware maker to come up with their own set of UI design and philosophy, diluting the visual identity of the Android platform. ![]() Another side-effect for having hardware makers integrate the OS into the phone is that new Android versions from Google cannot be pushed down to consumers immediately, compared to the iPhone OS updates. Individual hardware makers have to reintegrate the OS with their hardware before they can, if they choose to, release to their customers. With that, the iPhone eco-system reminds me of the formerly glorious PalmOS platform (v4), albeit with tighter application quality requirements, but better development SDK. Unified interface across all applications, large developer community, and that every piece of software written for the PalmOS works on all PalmOS devices. It’s like a Mac, in a handheld form-factor. Android however, reminds me of the now fractured and declining Symbian platform. With S60 and UIQ3 interfaces as the main branches, applications are largely split between the two due to different display UI philosophies and input capabilities. Although the Android claims to have a JavaVM as a base component, the varying types of input methods and screen capabilities increases the coding complexity for any piece of software. Without direct vertical integration from the OS maker, Google, customers will have a hard time getting the OS in their phones upgraded should the hardware makers choose to give up on them. It reminds me of the Windows Mobile OS and the PalmOS with no upgradability, requiring the purchase of new hardware to stay current in software — it puts customers off. From the way the two platforms are positioned, I can tell that Apple is marketing the iPhone as a full-fledged miniature computer, while Google is positioning the Android as a software development platform for hobbyists and hackers to tinker around with. The future I believe thus would lie in the iPhone platform. Tuesday, October 6. 2009Efficient Speed
Yesterday, I was given an interesting problem to tackle.
We were given a bunch of laptops, 8 of them to be exact, already cloned but missing almost 15 GB of important user-end data. There’s no way to re-clone all these machines, as the source image is not available to us. The only way is to copy the 15 GB of files to each machine, no two ways about it. The 15 GB of files lie on a 500 GB external USB harddisk. I have Ethernet cables and 2 Ethernet switches. The big question is how? Of course, copying from the harddisk onto each laptop one after another, manually, or via Sneakernet, is the favourite answer, but no. I can only call that desperate, physically constrained, or intellectually apathetic. I’m a person who loves processes, systems, and automation. Having to copy a bunch of files serially and manually, and onto so many computers repetitively is unacceptable, especially when you have to rinse and repeat a whole 8 times. Suffering a little pain to get any infrastructure up, just to let it copy automatically painlessly is what I’m looking for. 先苦后甜. Out of ideas, I pinged a few people via sms, “Hey, what is the most efficient way to transfer 15 GB of data onto 8 different laptops, without cloning.” Portable Harddisk / Sneakernet, Samba CIFS were the few answers that came in. Someone suggested copying from one to two, two to four, four to eight, but that’s too tedious and not scalable, equipment wise. But what if the media used is the Ethernet? I probed further, “multicast network solutions?” “BitTorrent”. Bingo. Thanks to cflee for that great suggestion! That’s the term and I knew it would certainly work. I did read up on the BitTorrent protocol some time back and am quite disappointed that this didn’t occur to me earlier. He also mentioned that uTorrent provides a built-in tracker, and that there’s a handy guide available. Spent 10 minutes reading through and successfully managed to give it a trial within my home network between 2 computers. Conceptually, a prototype has been demonstrated and there’s no way it can fail the next day. Spent the following morning with a few co-workers digging up rarely used networking equipment and proceeded to wire-up the machines. The two 4-port switch cum wireless APs were miserable — they only leave us with 6 usable LAN ports. The other 2 machines had to do with 802.11G wireless. It’ll work, but just a little slower. I was hoping to complete this whole ordeal before the day is to end, i.e. 5.30 pm, and go home on time. After all, copying 15 GB from the portable harddisk onto one of the laptops already took a grand total of 60 minutes. If I had to do this serially and linearly, it’ll take no less than 8 hours. Portable harddisks are rare too, especially for filesizes that huge. I configured the DHCPd and got the whole network running nicely and proceeded to install uTorrent on all the machines (skipping the rubbish, ad-supported nonsense). That took hardly 10 minutes as Samba CIFS came into play. It’ll be cool if there’s a automatic install distributor but I’ve not got time for it. Created the initial seeding torrent according to the guide and that process took almost 15 minutes. Thousands of tiny files, coupled with gigantic files, whatever you can imagine, the limits of the filesystem are being tested here. Started the seed on the tracker, turned on ‘Initial Seeding’ while I distributed the newly created .torrent to the rest of the machines. Changed back to standard Seeding once all the machines have entered the swarm. Thinking about the 8 hours that I would have to take, going by the conventional advice, I grinned and went on to do other work, while giving my forecast of completion to ‘End of the Day’. The seeding started at around 9 to 9.30 am. I drove out to buy breakfast for everyone and came back at around 10.30 am. I took a peak at the progress and I got a shock of my life. All the wired Ethernet clients are now seeding! 100% download complete! With only the 2 miserable wireless clients left struggling with the slow connection. I exchanged the wire and wireless connection with 2 other computers and I saw the download speed race to the roof. 12.2 MB/s. It works out to ~100 Mbps. Every 30 seconds, the download speed will slow a little and a uTorrent would pop a warning at the status bar, “Harddisk overload 100%”. Wow, a solid harddisk LED. I’m impressed. Darned. I thought the transfer would take the whole day, giving me time for a well deserved break, but little did I know, the transfer had completed before I even had lunch! So, now you know. BitTorrent is extremely efficient in one-to-many, many-to-many, and many-to-one distribution tasks. As long as the overhead of installing and running uTorrent on every machine is well distributed and / or paid for, this is an extremely useful piece of software to add into any sysadmin’s arsenal. Some other hidden benefits of BitTorrent are that it is resumable, repairable, distributed (many to many, any seeder / peer can enter or leave the swarm without much disruption nor require any human rectification), lightweight (300k installer), and automated (once past the initial start, and handles disconnections gracefully). Really, BitTorrent has its legitimate use as above, quod erat demonstrandum (Q.E.D.).
Posted by iphoting
in Computers, Life, Thoughts, Work
at
19:54
| Comments (4)
| Trackbacks (0)
| Top Exits (187)
Saturday, September 19. 2009Spanning Sync
I might have mentioned this before but I’ll do this again.
Spanning Sync is a awesome app at its 3rd version. What this application / service does is that it seamlessly syncs between your iCal and Google Calendar; Address Book and Google / Gmail Contacts. As I sync all my personal mobile devices with Sync Services on my Mac, all my contacts and calendar entries flow from my iPod and mobile phone and to my Macbook automatically and beautifully, both ways. I have lived with this setup for a long time before my switch to Google Apps as I handled my mail on my own server. With the dwarfing amounts of spam coming into my mailbox, to the tune of ~40 pieces a day (which works out to ~1000 pieces a month), my SpamAssassin setup was starting to fall behind. My once always clean Inbox started to fill up with false-negative spam pieces despite my dedicated training programme for the Bayes classification system. Having to spend a few minutes daily, looking at spam and repeatedly deleting rubbish is an inelegant chore; I bit the bullet and migrated over to the Google Apps hosted mail solution. Then, it was still in beta and there wasn’t a paid enterprise service yet, but the spam filtering system is top notch. Much better than Yahoo Mail and Hotmail combined. I had to admit, my SpamAssassin setup did a great job of filtering out more spam than Yahoo and Hotmail services then, but Gmail does spam management better. With the move to Google Apps, all my contacts and events are no longer integrated into Gmail / Google’s interface. There were times where I clicked on the To: link and was looking forward to selecting a recipient from my Address Book, but I was disappointed. There is no link with my Mac OS X Address Book! Apple did come up with Gmail sync with the iPod Touch but it is still flaky. In comes Spanning Sync and the missing link is solved. I now have my contacts and events, everywhere, updated and synchronised seamlessly. What elegance! I did try out Spanning Sync previously, but then, the sync was flaky and duplicate entries in Google Calendar were quite common. 2 versions later, the algorithms became way more matured and I can trust it to do its job, with my hands off. So, they’re currently running a promotion, giving out $5 promo codes and a $5 referral bonus. If by any case you do intend to get a subscription or a life-long license, use this link to save $5 or this promo code, KQR9TP, to be entered upon checkout. After which, for every friend you refer, you’ll get to save $5 also. Full disclosure: I paid for a 1 year subscription to this service.
Posted by iphoting
in Computers, Thoughts, Work
at
10:36
| Comments (2)
| Trackbacks (0)
| Top Exits (175)
Did You Know? v4.0
Something very good to watch if you haven’t already done so. It might change your life.
It’s the technological revolution. And the ignorance. Friday, September 4. 2009Open Word
I spend much of my time, fixing broken documents sent my way, commonly due to users misusing Word Processing features, manually doing what the processor can do automatically. There are times where I see people spent no less than 2 hours, trying to get their document formatting into shape, just because they didn’t let automation do their jobs.
I shall list a few very common usage scenarios, how people do it the wrong way, and how it should be done, efficiently. Paragraph Spacing The first I’ll start off with is ‘paragraph spacing’. Ideally, after every press of the enter key, a gap is formed before the next line, as follows:- ![]() However, most people would just press enter twice, producing the ‘same’ effect. This will create consistency issues across a huge document and unsightly gaps at the top of the page would be seen when an empty paragraph spills over to a new page. Then, we’ll see the user, manually and arbitrarily deleting the empty paragraphs to work-around this problem. The ideal solution would be to use the ‘paragraph spacing’ configuration parameters under the Paragraph Formatting dialogue. ![]() Indentation The next significant time waster is paragraph indents. Users would want to move their paragraph in and spam their tab key at every protruding sentence. This is where a disaster awaits when the paragraph is amended. Here’s what I mean:- ![]() The best practice way to do that nicely is to use the indent buttons:- Keeping with the Next Paragraph Sometimes, certain paragraphs, such as headings, list introducers, and titles, must logically follow the next paragraph and cannot be the last item before text flows off to the next page. Users tend to work-around this by creating unnecessary empty paragraphs (by pressing enter) right before the header, hoping to push it down to the next page. This might seem to work, but when text above is amended, stray blank paragraphs will start to pollute the document, increasing the amount of clean-up one needs to do before printing. ![]() My recommended solution is to enable the following option (under Format -> Paragraph) for all headings and titles:- ![]() This way, the headings and titles will stay on the same page as the next paragraph. This can also be applied to table headings if you don’t want your first header row to be alone at the end of a page. Styles If you’re a web designer, think of Styles as cascading styles sheets for your text documents. They inherit their parent styles and helps unify the formatting structure of your document with less clicks. In Microsoft Word, the ‘Normal’ style is used as your baseline style which all body text in your document would take dressing from to have a default look; it is intuitively named ‘Body Text’ in OpenOffice Writer. Then, there are ‘Heading 1’, ‘Heading 2’ and all other levels of headings you’ll need in a generic and simple document. However, if you happen to create the documents that I have a hand in, you might have to deal with numbered paragraphs with alternatively numbered child paragraphs. This way, the Bullets and Numbering feature can work hand-in-hand with the Styles capability of the word processor to relieve you of tedious formatting. ![]() All the paragraph numbering and sub-paragraph numbering is automatically generated. The only buttons you need to click on is the indents button which assigns the paragraph a particular ‘level’. The exact details on how to set this style up is left as an exercise for the reader. I would leave the following screen shots below as hints. ![]() ![]() This concludes my brief gripe about word processor misuse. In a future post, I might talk about version control and document management. Thursday, September 3. 2009Aardvark
There’s this new social service concept that is quite interesting and it’s known as Aardvark. It is basically a question to answer matchmaker. You ask Aardvark a question and it sends your question to people within your social network (facebook, etc) that are on Aardvark. The people your question gets to has matching interests with your question, allowing the answers to your questions more focused and appropriate.
Schematically:- ![]() I think this service has great potential and utility. Check it out!
Posted by iphoting
in Computers, Thoughts
at
23:59
| Comments (0)
| Trackbacks (0)
| Top Exits (182)
Sunday, June 28. 2009reCAPTCHA
For those you who make frequent comments on my blog posts would have noticed that reCAPTCHA is employed to stop spam. Recently, I’ve come across a paper by them, published in Science, that speaks of the results they have achieved – human computation.
They did a comparison page between the results generated by humans from reCAPTCHA and OCRs and the results are rather amazing. Your solving of simple CAPTCHA indeed helps digitise books by tapping into redundant human resource. In addition, they also did an article for Science which details the results of the reCAPTCHA project. Do take a quick peek, it’s an interesting read.
Posted by iphoting
in Computers, Thoughts
at
19:16
| Comments (0)
| Trackbacks (0)
| Top Exits (324)
Saturday, June 20. 2009Make Useful
After having my TA-088 v3 PSP-2000 Slim Piano Black lie on my table for most part of this year, I’ve finally found something for it to do. Keeping a close eye on PSP Updates, I saw a post that talks about a new release of CFWEnabler that works with 5.03 version of the original firmware. Some weeks back, a new discovery by some people about a tiff exploit by the name of ChickHen which allows the loading of homebrew software.
These 2 discovery is extremely significant in the PSP world as this will finally allow PSP-3000 and PSP-2000 TA-088 v3 users to exercise their right to run game backups. If you indeed have one of the abovementioned devices, the procedure to enable this cool unsupported feature is pretty complex but doable compared to previous methods. Requirements:- 1) PSP Slim 2000 (TA-088 v3) 2) PSP original firmware version 5.03 (exactly, not newer, not older) Files:- Follow the 3 links as mentioned to get them. 1) OFW v 5.03 2) ChickHen enabler R2 3) CFWEnabler Instructions:- 1. Ensure that your OFW is at 5.03. Check under system settings. To upgrade, place the EBOOT.PBP into a folder named UPDATE under X:/PSP/GAME. 2. Execute the update by launching it from the game menu. 3. Once the update is complete, proceed to delete the 5.03 update files. 4. Unpack the ChickHen R2 archive and copy the ChickHen folder under either Slim or Phat folders into X:/PSP/PHOTO. 5. Unpack CFWEnabler 3.50 and copy the CFWEnabler folder into X:/PSP/GAME. 6. Go to the photoviewer, select the ChickHen folder and scroll all the way down to the .tiff file and wait for the screen to turn green. If nothing happens or the green screen fails to appear, try again. It took me three times before it crashed. 7. The PSP will automatically reboot and start after the green screen. 8. Go to system settings and check the system version. It should read 5.03 ChickHen. 9. Once the version string contains the ChickHen phrase, go to the game menu and launch CFWEnabler. 10. It will request to write some files into the flash. Just say yes and follow instructions. PSP will reboot. 11. Go to system settings and check for firmware version. It should now read 5.03 M33-6. 12. The CFW is now successful. Before you can launch .cso or .iso backups, you must launch CFWEnabler and go into the configure menu. Look for the UMD mode option and choose M33 driver. 13. Exit the configuration screen and you’re back to the XMB screen. 14. Proceed to fill you X:/ISO folder with your backups and your PSP will be able to launch them. Note however that once the PSP is totally powered off, you must redo the ChickHen and CFWEnabler process. Hence, it is recommended that you leave your PSP to sleep and keep the battery charged.
Posted by iphoting
in Computers, Thoughts
at
15:27
| Comments (0)
| Trackbacks (0)
| Top Exits (444)
Tuesday, May 19. 2009Pre
Looking at the Palm Pre concept demonstration videos, I can’t help but smile – the Palm that I’d known in my primary school days.
![]() A simple, unified and consistent interface, efficient access, flawless synchronisation and a huge 3rd party application eco-system. Assuming that it delivers as advertised, its potential is vast and unhindered. Probably a renaissance for Palm, finally. I look forward to its launch on the 6th of June, 2009.
(Page 1 of 15, totaling 170 entries)
» next page
|
MeGreetings to you, brain surgeon.
Hi there. Welcome to the mind of an INT{J,P}, CDIS. I hope you can find your way around without getting lost. The pensieve is messy to the untrained eye. That's life isn't it. The fun part of life is to untangle the mess you've gotten yourself into. Disclaimer My Delicious Library ShoutboxBoycott
Calendar
QuicksearchTop Referrerswww.raypharma.com (3)
Top Exitsen.wikipedia.org (81)
iphoting.iphoting.com (19) www.mrbrown.com (13) tomorrow.sg (9) www.apple.com (9) www.vainquer.net (9) xenoboysg.blogspot.com (8) edition.cnn.com (7) blog.guykawasaki.com (6) singaporedissident.blogspot.com (6) My del.icio.us
Google ReaderLibraryThingArchivesSyndicate This BlogLicenseAdSense |
|||||||||||||||||||||||||||||||||||||||||||||||||
