on Apple's iPad launch : the Aftermath

The iPad was launched yesterday. What was, perhaps, the most hyped and anticipated product of this eon, finally became known as Steve Jobs held it proudly in his hands. These kind of products usually wind up being the recipients of all kinds of crazy expectations. Everyone wants the next-big-thing to do everything, better, in new radical ways and, if that is not enough, they expect even more in the end (in the case of Apple, that comes after Job's "one more thing" statement). All in all, most people are not pleased with the iPad. I am not one of those people. Here is my take on (some of) the 'issues' raised so far.

The name
'iPad' indeed feels wrong. I was expecting it to be called 'tablet' or 'Applet tablet' or something along those lines. Of course, I failed to consider the fact that this would not be a tablet, according to Apple at least. This is not a netbook either. In fact, this is a product that carves a new niche and defines it. So Apple didn't use tablet in the title. I remember when the first Macbook came out. People didn't like the name. They don't mind about it now - in fact they may even come to like it.

Multitasking
The iPad does not allow multiple apps to run at the same time. This made much sense on the iPhone, but would make little to no sense to a laptop or netbook. Well, again, this is neither of those. My gut feeling tells me the reason Apple chose to go with this is threefold.

  • The existing iPhone apps are built and executed in a way that just doesn't translate well to a multitasking environment. It is not impossible of course. Apple decided to play safe with this one.
  • The RAM on this thing would not allow for a multiple applications to run in parallel efficiently. Lets just say that Apple, again, decided to play safe with this one too.
  • Apple's vision for the iPad is very specific. A consumption device that does some things extremely well, one thing at a time.

Cameras
I would have loved it if iPad had a front-facing camera so that I could video chat with my brother. Well, actually, I never use video chat, but that need is valid for enough folks to make it an important omission. Apple has been keen on adding an iSight camera on just about every Mac product it has released. iMacs, Macbooks, the cinema displays, you name it. They love it when people video chat over iChat, use PhotoBooth to go silly and whatnot. What became apparent with the iPhone and even more apparent with the iPad is that Apple, presumably, has a very good set of reasons that led it to (at least for now) make it impossible (one way or another) to do so on this class of devices. It is likely that AT&T and other carriers are to blame here. Apple is giving up some features in exchange for others(better deals with the carriers?). Win some, lose some.

Adobe Flash support
Apple doesn't like Flash. It can't be more obvious than that. They could list a number of technical and semi-valid reasons as to why this is a bad thing, but none of that would matter. I personally couldn't care less about Flash support on Safari, but the vast majority of potential users would, especially the folks in the US where, I hear, Hulu has become the go-to site for all things entertainment there. Unless things go way south for Apple, I don't see it changing its stance on the subject.

On screen keyboard
When the iPhone came out, naysayers and pessimists sure had lots to say about the onscreen virtual keyboard. Nowadays though, people seem to actually prefer those kind of keyboards to the traditional physical ones, me included. Why waste device physical space, weight and looks for a 'real' keyboard, which is there even if you don't want it, when this new virtual keyboard works for you? I have been trying to type using both hands for the past few days. I can type now at least x2 many words/minute than I was able to do so in the past, when I was using just my thumb and I hope, expect, to get better at it. On the iPad, which features even bigger keys, things should be even better for me.

Books and magazines
I wanted an ebooks reader for quite some time now. I was hoping for an ebooks store tightly integrated to iTunes and the iTunes store, the ability to subscribe to magazines (Wired, Edge, ..) and have them delivered to my 'subscriptions inbox' ( with a nice badge indicating new subscriptions count; me and Stelios would sure love that ) and a reader that would provide all benefits PDF readers come with, but with even more thrown in. Well, it won't really work like that on the iPad, at least for now, but this iBooks application sure looks sweet and well done. Apparently, each magazine, newspaper or other content provider will come up with its own solution to the digital content challenge ( NYTimes app demoed was pretty impressive ), which is one way to do it. Apple is playing safe there, again. There is no subscriptions aggregation place/app, or anything like that. Wired will need to build its own app and same will be true for everyone else. I can't wait to see what they will come up with.

All in all, this is v1.0 of a new product that, again, occupies and defines a new category on its own. Recall v1.0 of OS X, the iMac, the iPod, or any other product, produced by any company. Most v1.0 products are there to establish a baseline. Evolution bless them with more feature in later releases. This will certainly be the case with the iPad too. I never needed a tablet device ( my MBP 17" is everything I would 'ever' need ), but I am so buying one for me and Dora ( and for my brother and Dimitris if they themselves wont get one ). Exciting times (ahead).

Ideas for iPhone applications

I thought of two ideas for iPhone applications yesterday and I thought I would share it with anyone interested in pursuing the tasks. I may do it myself if time and motivation allows it, but do feel free to try your luck with them. So here goes nothing.

Life-tracker

The main principle idea is that you could use your iphone to keep track of your life through time, specifically where you have been, what have you been doing and what your thoughts on any given date. The said application would be really simple to use. You launch it, two buttons will make it possible to record your existing location (geolocation coordinates) and/or record thoughts or, say, what it is that you are doing at the moment. You can do that as many times as you wish, whenever you wish. Sometime later, you can sync all that with a web-based service. You could access your life activities through that service ( what have been thinking a year ago this very day? where have I been last week when I was on vacation in London? you want that on a google map - there you go) and so on, so forth. A more or less trivial application to build.

Javascript driven native iPhone applications

This is a no brainer, in fact I wonder why someone ( Apple even ) hasn't thought of it yet. One can expose the iPhone functionality(framework facilities) through Javascript (Javascript objects), have a simple runtime application that 'all' it does is act as the VM/runtime for javascript code. 'Everyone' knows Javascript, everyone(?) likes Javascript, why not make it possible to build real (i.e not hosted on Safari, web-apps ), native applications using the language? A developer would still submit an iPhone application ( the Javascript VM/runtime, with the javascript files and resources in the bundle ) to Apple, Apple, nor the users, would be able to tell the difference. Hey presto, a gazillion apps flood the App store - most will be crappy ( the nature of things ) some will turn out to be gems. If I could make it possible for my brother and my fellow javascript gurus at work to build any app they want as easy as they build our web-apps, that would be kinda cool. Here is what it could look like:

var myButton = new UButton();
myButton.text = "Hello World";
myButton.addListener('click', function(event) 
{ 
alert('Your geolocation is:"+(new ULocation()).toString(); 
}));
thisWindow.containerView.addView(myButton);
or something.
Random thoughts produced on the balcony

Terry Pratchett on the right to die : Pratchett is one my favorite authors. His books ooze hilarity. He seems an all around awesome person, all things considered, too. Recently, he was diagnosed with Alzheimer's and he seems brave(?) enough to wish to die before this treacherous disease disrupts his mental abilities.

Every single time I need to use Windows, it feels wrong in a profound way. Every single time.

Paypal now available for US Xbox Live Accounts : A great idea, I hope it wont be long before this option becomes available for everyone else, too. Dealing with Microsoft points is an often laborious, not to mention futile, process. You would think MSFT would make it easy for us to give them money.

Check out the water crisis article on wikipedia and HowStuffWorks's why can't manufacture water? topic.

I got to spend some more time on the SGL revision, mentioned in previous post. The Garbage Collector (initially a mark and sweep based facility with a single heap for objects allocation, but will experiment with tri-colour marking and generation based segmentation (i.e generational GC) later on ) is almost in place, the main runtime component seems to be operating as expected(values are stored in 'registers', no stack manipulation, will use thread dispatching using GCC's goto *pointer extension ). I went through the WebKit's JavascriptCore source code for ideas. Came up with lots of notes and concepts that I want to toy with, if time and motivation permits. I am looking forward to diving into Google's V8's source code next week. I am afraid I will have to freeze the project in 2 weeks though and switch gears to work on our new file system (PFS, for lack of a better name), based on design decisions applied on Gooogle's GFS and Amazon.com's Domino.

I am somewhat let down by myself; over 5 projects are left in a semi-complete state. I need to focus on one at a time, wrap it up and move to the next one. Its just that August is mostly about trying out new stuff and research. Its the least demanding month of the year for us, most of the folks at work are away on their much deserved vacations. Little to no sound is produced ( I can't deal with sound, laughter, yelling, phone calls, you name it ) and that does wonders for my (currently degraded, due to Summer) productivity.

On Javascript and simplicity

If you still have doubts about Javascript: becomingbeing the most popular programming languge, its probably because you are not exposed enough to the web-based Applications paradigm shift efffects.

Not only there seems to be more javascript code (in terms of sheer volume) out there, its also about the number of users using applications that are driven by it, most of them not really knowing, or wanting to know, what it is, but thats an entirely different story for someone to tell, again.

We are relying on 4 primary programming languages. C/C++ for backend 'stuff', PHP, Javascript and SGL for frontend/light-weight 'stuff'. Well, we do use bash scripting for _so_ much systems and operations 'stuff', some python and perl here and there, as well as some java and Flash/AS3 for more frontend 'stuff'.

SGL is our home-grown programming language, it stands for Switch Glue Language, Switch being the main framework/library everything - all services, tools, other libraries, etc - are based on. The idea is that we can use this language anywhere we want to script operations and 'glue' things(services, resources, operations, etc) together. Currently, its used for two major services.

Our frontend developers eventually have to learn, or at least get familiar with, all those three main frontend languages, PHP, Javascript, SGL. Interestingly enough, Javascript code output surpassed PHP output, in terms of volume, mostly because our apps got more functional, fancy, whatever cool bang you get from client-side logic on the browser -- I wouldn't know really, I don't know much about frontend development, our main frontend team do though and that's all that matters (partial unordered list: phaistonian, hatdi, sug, stelabouras).

Given that SGL has been long due for a rewrite ( the currenty language syntax and semantics ), I thought I put aside some time to rwrite it, this time around using Javascript language syntax and semantics so that, when its ready, we could replace PHP with SGL thus, effectively, switching from 3 frontend languages to just one. Our developers, current and future ones, would only need to learn a single language, which may be the greatest benefit to this shift, but it sure is not the only one.

This will be my third attempt to writing a programming language ( SGL being the second, PASTE was the first.. those were the days) and thanks to Javascript being a standard, its a 'simple' enough matter of writing an efficient enough VM that will run the emitted bytecode ( I am toying with the idea of being able to target PHP and other languages, eventually, generating - say, PHP code from SGL code and so on ).

So far the lexer, most of the parser and some parts of the VM are in place. Hopefully, there will be enough time and sustained motivation to keep this going (its a side project, so it can't really preempt current major Phaistos projects ) until its ready, perhaps by the end of the month.

Simplicity is the ultimate sophistication- Leonardo da Vinci

Go for the eyes, Boo!

My (by far) most awaited movie release is Tarantino's new film 'Inglourious Basterds', coming out in August. Check the latest trailers. Pitt's talent in bringing to life the badass character Tarantino penned, coupled with the overall theme makes for an exploding, action-packed funny movie, the way I see it. I can't wait to watch it.

Google Says Mobile App Stores Have No Future : Unless web-based applications offer the same kind of functionality native applications can and do offer, I don't see how everything will be moved off to the Web. It may make sense for a class of applications, but, realistically speaking - there are a few hoops that are just too difficult to jump over for this to come to pass. Palm is betting big on this concept, now, with Pre and its Mojo SDK - which is really not working out for them. Maybe in a few years when the underlying hardware and operating system services will be, somehow, become available/exposed to remotely executed apps it will make more sense to expect this to be the case.

Serious Doubts : Marco Arment argues it is hard or next to impossible to run a serious business of writing iPhone applications. I still haven't developed a 'real' iPhone app, though I wouldn't really do it for the money, not that I would mind getting any in the long run. As far as I am concerned, those digital distribution systems solve, well, the physical distribution problems(which are many) and facilitate access to content that has traditionally been hard to access. Everything else is a byproduct of competition and demand.

Now that Monkey Island Special Edition and the first episode of Tales of Monkey Island are out, my new most awaited game is Bioware's Dragon Age : Origins. I have high hopes for the spiritual successor to Baldur's Gate, not the least concerned with the somewhat negative previews so far( people seem to dislike the 'adult' content in the game). It will ve possible ( much like it was the case with Baldur's Gate and other Infinity Engine games ) to issue orders to party members in real time, or pause and queue up actions that will be carried once upon unpausing the game. As far as I am concerned, this is the best control scheme for CRPGs ever devised. Who knows, maybe Minsc will make a surprise cameo appearance. "Go for the eyes, Boo! Go for the eyes!"

I want to be a pirate!

I downloaded and played The Secret of Monkey Island : Special Edition on Xbox Live Arcade. It took less than few minutes to download the 500+ MB demo and no more than 10 seconds after I launched it to be excited. The classic intro screen was on display with the classic - much beloved - monkey island music theme(youtube video) and then it faded out to the new and improved screen, spotlighting the most exciting enhancement to the remake.

The folks at Lucasarts pulled it off; it is the same wonderful game we 'all' know and love, outfitted with gorgeous hand drawn graphics, dialogue voice-overs and a user interface that actually works on the consoles.

I wish I could purchase the full game, alas, the whole Microsoft Points deal is messy due to the fact that Xbox Live is not 'officially' supported in Greece and the implications related to credit cards processing. Links: Review on Gamespy, Guybrush Threepwood

I turned on my dekstop PC tonight in order to look for Trine on Steam. I came across a review on Giantbomb and was really impressed by the premise and the visuals of the game. Some friends have played it and had nothing but words of praise for it. Hopefully, I will play for a while this weekend. Speaking of my PC, in retrospect, it was one of the least meaninful purchases I ever made. My intentions were to install Linux so that I could work on the Linux Kernel and prepare for Larrabee's arrival so that I would eventually get to develop for it ( I am very excited about Larrabee if previous posts haven't made it clear by now ). Turns out, I only use my beloved MBP anyway for I have so little time to spare lately. Oh, well.

Being Amiga users back in the day was a lot like choosing a platform with a soul over PCs. I feel the same away about using Apple products (especially OS X). It feels great, it feels right, it feels much like it felt when I was using our Amiga. Whenever I have to use Windows ( thankfully, not often nowadays ) it feels wrong in so many ways. Come to think of it, the only thing I like about Windows is the Win32 API

Just like every summer, I am going through a huge productivity slump. I can't wait for Autumn. This time around I intent to try to deal with it though.

Computer Games and Music

Here follows a list of some of my favorite computer games themes.

Diablo 1 by Blizzard Entertainment. Released in early 1997, this game took the concepts laid out by Nethack, Rogue, Angband and the rest and run with them. Truly amazing game. The Tristram village theme is an epic, wonderful tune. Youtube video

The Curse of Monkey Island, by LucasArts, released in 1997. An amazing adventure game, packed with wonderful moments and great characters. Masterful. Youtube video

The Legend of Zelda, by Nintendo. Zelda games are widely regarded as the best games ever devised, for a good reason. Youtube video

Agony, by Art & Magic/Psygnosis. This is one of the most incredible shoot'em'ups to come out for the Amiga. You are Alestes turned into an owl, flying through surreal backgrounds trying to make it to the end. Youtube video

Turrican by Factor 5, Loriciels and others. Chris Hόlsbeck composed the music for this great shoot'em'up. Youtube video

The Elder Scrolls IV:Oblivion by Bethesda Softworks. This game didn't leave up to the hype, though it certainly is a masterpiece in too many ways. I love the introductory music following the Emperor Uriel Septim VII's monologue (voiced by Patrick Stewart). Epic and powerful. Youtube video

Gears of War promotional 'Mad World' video. Epic released a promotional video featuring Marucs Fenix and Gary Jule's Mad World(originally by Tears for Fears). This video led me to buying an Xbox 360 just to play tis game. Epic. Youtube video

Bard's Tale 1 - Tales of the Unknown, Volume I by Interplay. I was so addicted to playing this game, drawing maps, questing and exploring dungeons and Skara Brae. A legendary game. Youtube video

On important technologies: LLVM, CocoaTouch, Caching, Multi-core designs

As far as I am concerned, LLVM, CocoaTouch and memory based cache servers make up the the set of software technologies that will affect all things computing next year onwards.

LLVM is going to push code compilation and optimization to the next level. Building a new language is borderline trivial using LLVM technology. You produce the IR and the LLVM backend takes care of everything for you. I will be surprised f the 'fastest' Javascript implementation for 2009 won't be based on LLVM.

Apple's CocoaTouch is so well done, so well thought out (we are still on iPone SDK 1.0 and that speaks volumes) that it will be hard not to imagine Apple advancing and reusing the technology on, say, tablets and even making available the CocoaTouch extensions to OS X existing frameworks features set.

The ever increasing complexity of web-based services along with the rising number of users of those services and the need to sustain a user experience that depends on responding to user's actions as fast as possible, calls for the kind of tools and services that utilize intelligent RAM based caching. By caching just about everything, thanks to the ratio of reads/writes, gets/puts, resources (CPU, disks, etc) use drops by orders of magnitude while at the same time satisfying the need for a perceived fast responses to a matching requests. Developers and researchers most likely will come up with even better systems, ones that deal with cache coherency transparently, mirroring and synchronization, etc. This new realization may even render expensive, large and over-complicated systems irrelevant(e.g Oracle RDBMS). The only potential problem is the saturation of the network links, which is another class of problems researchers should look into in the near future.

On the CPUs side, everyone seems to have finally agreed that we can no longer scale vertically. We have to scale horizontally by exploiting parallelization and multi-core designs, potentially coupled with technologies such as NUMA. The Cell processor, Sun's UltraSPARC T, Intel's and AMD Multi-Core designs are build on that principles. Using all those cores('threads') efficiently, both in therms of throughput, scheduling and access to system resources is not (going to be) an easy task, but the benefits and the need to go forward justify this new approach, if not make it necessary. I personally couldn't be more excited about the possibilities availed by those architectures.

Where the hell is Matt?

4 months in the making, 42 countries, and a cast of thousands.. more about Matt Harding.
Everything burns

'Everything burns' by Anastacia ft.Ben Moody.

'With great power comes great responsibility' ( Spiderman )
'You would have no power over Me if it were not given to you from above' ( Jesus )
Software Rendering, Filesystems

Core i7 beats Intel IGP in DirectX 10 software rasterizer : I am very excited about the upcoming Larrabee GPU (or rather, hybrid-GPU) Intel is working on. I never found it particularly interesting to be restricted to a set of APIs for for defining and drawing scenes, as opposed to the good old days where it was all about relying on optimization techniques and clever programming to get get the most out of a pure software based rasterizer. Nowadays, at least on PCs and most game consoles, you must use either DirectX or OpenGL which provide a set of benefits (everything is taken care for you by the the GPU, the driver and the API implementation layers, etc) but also take away the fun. There is a multitude of reasons why the existing model works, but one could argue that innovation and advancement of the technology is hindered by being bound to a constrained environment and set of interfaces. I can't wait to see what near-future Carmacks, Sweeneys and Abrashes will do with the return to software rendering made possible by Larrabee and new, similar products by Nvidia and AMD.
Related references: Twilight of the GPU: an epic interview with Tim Sweeney, RAD Game Tools's advanced software rasterizer for x86, Michael Abrash, legendary x86 assembly and code optimization programmer, Software Rendering on Wikipedia, Nvidia's David Kirk on CUDA, CPUs and GPUs

Migrating to ext4 : We are looking into switching to ext4 filesystem for a few nodes on our 'testbed' environment now that ext4dev is considered stable enough to be renamed to ext4. ext3 has been sufficiently stable and performs well for our data set. Hopefully ext4 will be better in both aspects. We put XFS and ReiserFS to the test a few years ago and that didn't work out very well, though XFS, at least in paper, is impressive. Sooner or later we will need to work on our own file system, which would introduce a great number of benefits to our environment and would be fun to build.
Related references: Google File System, Lustre Filesystem

Jeff Buckley - Hallelujah

Jeff Buckley on Wikipedia

World of Warcraft, keeping track of TODO items, and more.

Phasing in World of Warcraft : One of my biggest gripes with current gen MMOS is that, in fact, you as a participant in those online, virtual, worlds usually don't get to shape in any way or form the world structure, physically or otherwise. It seems the wizard at Blizzard found a way to ease by employing the 'phasing' concept. Read on for more.

Erlang vs Scala : I like Erlang (related post) for various reasons, none of them related to it being partially a functional language. Apparently, twitter switched to Scala from Ruby (the kind of mistakes people make) and it has worked pretty well, so far, for them.

As I was, perhaps not so actively, looking for better ways to organize my life, I have been lucky enough to realize the obviousness of the truth; nothing beats using a text file for my needs set. I maintain a single TODO.txt file. This file resides in ~/Dropbox/TODO.txt, my Dropbox folder. There is an alias (symbolic link) to my desktop for that file. So whenever I think of something, I write it down there. Most of the times I devote a whole space (virtual desktop) to an vim window for that file so whenever something comes in mind, I switch to that desktop and write it down. Because of Dropbox, whenever I use another computer ( be it my iMac at work, my MBP, etc ) I will continue to use the file the same way; it will be kept in sync thanks to Dropbox's mirroring facilities. Because its a text file, I can format and rearrange the text it however I want, find stuff on it using spotlight, move things I consider more important to the top, build lists, you name it. I also tend to 'migrate' things from that file to my bookmarks, my 'notes vaults' folder files, other text files that I use for keeping track of 'domain specific' information(related post). Other times, I just complete tasks or implement ideas and remove the respective content from the file. If you are tired of trying one application after the other hoping to find the one true solution to this problem, perhaps you should sit back and look at the bigger picture; Simple solutions work best.

Links 26.11.2008

Javascript - The Good Parts : Yahoo's chief javascript architect, revered Douglas Crockford talks all (good) things Javascript.

The Art of Hashing : Most high level programming languages performance and dynamic nature is defined by the efficiency and power of the hash table implementation(s) they employ. Enough said.

Programming with Linux on the PS3 : In case previous blog posts didn't make it clear enough, I absolutely love the Cell processor architecture, much as I like Sun's Ultraspark and Intel's Core 2, albeit for different reasons.

Tamarin Internals : I wonder how long it will take for someone to do the smart/right thing. Use LLVM to build a super fast Javascript runtime. Not long, most likely.

RISC vs CISC in the mobile era : RISC, FTW!

Linux assemblers: A comparison of GAS and NASM : GAS has been more than fine for my needs, plus I prefer AT&T syntax over Intel's.

Links 25.11.2008

Detecting spam just from HTTP headers : Simple ideas sometime work unexpectedly well.

Google Exec hints at Future Open Platform : This comment sums it up nicely.

Which Phone to develop for? : Almost 4 billion cell phones in the wild, what are the odds an app, any app, wouldn't sell in such a market? Speaking of which, I am extremely let down by Apple Developer Connection folks. I faxed them my credit card information ( you need to pay them $99 before you are able to deploy an application on your iPhone and eventually to the App Store ) and haven't heard from them since ( over a month now ). I even tried to call them and contact ADC US, to no avail.

CouchDB implementaton : I am not big on document oriented databases, mostly because of the performance penalties that come from the lose (i.e not based on well defined structures ) representation of objects(that is, rows).

Sorting Algorithms Animations : A page that provides visualizations of the operation of 8 different algorithms. What is indeed the most important thing to remember, as noted by the author, is that there is no best sorting algorithm. Quicksort may be the most frequently used (at least, I would hope so..) sorting algorithm, but others can be more effective ( depending on the set size ) or more appropriate (i.e merge sort for sorting large data sets ).

Getting to now GCC 4 : We are moving from GCC 3.2 to 4.1 soon. Code compiles over 50% faster across the board and it seems the compiler backend is able to generate much tighter code this time around. I still wish I could get my hands on icc

id Software Code Style Conventions

3d engine technology of latest games : Gears of War 2 and Fable 3 indeed look gorgeous. I have to second the author's comment on Fallout 3 though. If they had implemented world shadows the lame would probably look at least a whole lot better, not that it doesn't look spectacular any way.

Friends

I had a blast sharing fun moments, pizza, diet coke, thoughts and laughs with an assortment of great friends last night. We crashed Stelios's place (my brother, Sug, GeorgeG, yours truly), had throw-in-the-oven-wait-for-a-while-and-devour snacks while the pizza was on its way, drank Carmack Potion to our health ( GeorgeG is an ale person), played games on Xbox 360 and put our laptops to good use. I had to leave early for I had to drive back home ( 1 hour + drive ), but I was told they all had even more fun later on, as they all jumped into Warcraft till the wee hours of the morning. Next time we should probably try our luck with DnD (dices, figurines, the whole thing). Good times.

Filtering information flow

Like all most of the people I know, I too find myself struggling to keep up with the increasing information flow and the need to come up with means to filter that information stream as to spend as little time as possible evaluating and putting it into good use, and focus on the kind of information that matters to me the most.

Naturally, it would have been best to store/collect/accumulate every bit of information that comes your way. However, unless you be able to identify the usefulness of that information in timely fashion since the acquisition, you are merely storing what you coul/should most probably be able to acquire/lookup later on anyway ( Google, usenet, etc ).

There are various tools and services that make it possible to throw everything at them ( textual content, multimedia, URLs, .. ) which they will happily store away, optionally encrypt them, make them searchable, place them in 'smart lists', you name it. Examples of such applications on Mac OS X are Together, Soho Notes, Yojimbo. I have tried over a dozen of those applications but nothing really worked for me ( pun intended ). They are mostly fine applications, mind you, and may very well turn out to be the perfect tool for your needs so you should try them. ( Sugar is apparently a happy 'Together' user ).

I am relying on NetNewsWire for acquiring information. My subscription list is rather short. I keep track of my friends, some 'interesting folks', various dedicated technical sites and a couple sources providing me with gaming and other entertainment news/meterial. It turns out that having a like minded (sub)network of friends is more valuable than having access to a highly comprehensive list of sources.
Your friends will filter the information for you. They know what you are interested in. They will happily forward you stuff they consider cool/interesting/useful. Thus, its not really that useful to subscribe to popular information sources, for your friends and other sources even, are monitoring them anyway.
I usually check for subscription updates once day, when I get back home from work. I quickly go through the list of items and the ones that seem interesting/worthy I open in a NNW tab for later. Sometime that list of tabs grows to over 100. I go through the opened tabs list whenever I have available time to do so; ones deemed really interesting/useful end up in my Safari bookmarks ( more on that later ) list. Eventually all tabs/pages are consulted and closed. This two-phase process helps me make the most out of the information that reaches me via NNW.

Safari is my web browser of choice for various reasons. I maintain a hierarchical list of bookmarks folders which help me keep references to URLs, obtained mostly via NNW, organized. Most of the bookmarks are tagged by means of adding a list of keywords describing the content within [] in the title. For example, I bookmarked http://www.pragprog.com/ as 'The Pragmatic Bookshelf [store, books, technology]'.

I also maintain text files that hold content specific to a given information domain. For instance, there is a file entitled 'Syntax compilation hints' which I use to store useful, interesting phrases and writing techniques I can refer to in the future. There is another file named 'Quotations', a folder 'Studying Src' which contains files such as 'Algorithms', 'x86 Assembly', 'Cocoa', 'Interesting Findings' etc. In fact, whenever I am studying the implementation details of an application ( say, Lua or Quake III ) I create a text file where I document my findings and thoughts on those. There are over a dozen of folders holding over 100 or so 'notes files', ranging from 'personal rules to follow', to 'ways to deal with stress' to 'ideas about work projects' and 'My Books'.

It all comes down to the fact that thanks to Spotlight ( one of my favorite features of Mac OS X ) I can locate the information stored away as text files ( of course, you can locate anything on your system using Spotlight anyway ) and bookmarks instantly, consult them and update them with little effort. In addition to that, you can easily synchronize and backup that information to locally attached media ( external disks, CDS, etc ) or over the Net (.Mac, online storage services, rsync to a server you have access to you, .. ).

The rules of evolution, thankfully, apply to most systems and processes. What that basically means in this context is that I will eventually figure out a better way to approach the problem. Until that time comes though, I am sufficiently pleased by the benefits the existing solution is providing me with.

How to deal with Burnout

I have been meaning to outline the benefits of keeping your body's health in sync with your mind's for a while. Ancient Greeks knew all about that. Put it simply, they practiced their own 'healthy mind in a healthy body' doctrine religiously. But I digress. If you are having trouble dealing with stress, anger management, fighting off productivity loss, severe burnout related problems, do your self a favor. Put aside a tiny portion of your time, on a daily basis, dedicated to body exercises ( it doesn't have to be weight lifting ). Keep it going for a week and the aforementioned problems will slowly fade away. It worked for me. As a side benefit you stand to lose some weight and feel good most of the times - even if it would seem impossible prior to to getting yourself to exercise. It is literally making me a better person. Good luck!

Favorite RPGs videos : Wonderful 'forgotten' RPGs. I have some very fond memories playing and reading about them.

"Burned Out"

I am browsing some code I wrote a couple of months ago, and, for the life of me, I can't really understand how I built it, how I thought of the algorithms and data-structures I used. Often enough I get to this point, whereas I just can't get my mind to recall things, process input and produce output efficiently ( i.e think straight ), help me focus and, indirectly, provide me with confidence and motivation.

That otherwise malfunctioning mind is leading me to believe this is all due to me overworking the crap out of it, coupled with a good dose of depression and insufficient stimulation of my pleasure center. I remain hopeful that I will restore its efficiency someday soon and along with it, stabilize my sanity and feel good, maybe even happy if I am lucky enough. What a clusterfuck.

New Theme, iPhone, Google AppEngine

My brother provided me with a theme for my blog. Its pretty clean and simple - yet not a simple or clean as I would have wanted it to be, but that's entirely my fault. Its a matter of modifying the structure of the various elements and using font families and colors that make sense.

I purchased two iPhones from Las Vegas ( Thank you for the invitation Patrick ). I used to dislike cell phones with a passion. Especially those engineered by Nokia. Complicated for no reason, cumbersome to use, fancy for the sake of being fancy and loaded with a gazillion crappy applications and 'services'. The only cell phone I actually liked was the original Nokia phone ( short-lived moment of glory for them ) used in the Matrix 1 movie. So, naturally, my expectations were rather low when it came to putting the iPhone to the test.

"The iPhone is a revolutionary mobile phone". It actually is. Everything just works, supported by an ultra sleek UI, robust facilities and solid design decisions. It is by far the best mobile device I ever used, far surpassing any expectations I may have had.

Amazon kick-started the cloud computing era by introducing an ever expanding array of facilities and services, from S3 to EC2, to SimpleDB. Microsoft is entering the game with SSDS. Google made available a dozen APIs and WebService as a means to interfacing with their core services but everyone knew Google would come after Amazon and co, big time. It did. What is perhaps the most important benefit and side-effect of the availability of such a platform is that the everyone can build any web application without having to shelling out for the kind of resources that would have made this application possible. The AppEngine service is going to provide everyone with free access to resources and documentation - all one would need to do is signup with them, build the application on his computer using the provided SDK and then push it back to the cloud. Once the application gets successful (say, 4-5 million page views / month ) that said developer would pay Google for access to more resources. Everyone wins.

I am looking forward to similar offerings from IBM and Sun. For those who are into buzzwords, Web3.0 is here.

Mark Papadakis

Moires, Heraklio, Crete, Greece
Bytes conjurer. Seeking knowledge 24x7
About MarkP

Tags

Archives

Favorite Quotations

  • Focused, hard work is the real key to success. Keep your eyes on the goal, and just keep taking the next step towards completing it. If you aren't sure which way to do something, do it both ways and see which works best.
  • Focus is a matter of deciding what things you are not going to do.
  • Simple is Beautiful
  • In the information age, the barriers [to entry into programming] just aren't there. The barriers are self imposed. If you want to set off and go develop some grand new thing, you don't need millions of dollars of capitalization. You need enough pizza and Diet Coke to stick in your refrigerator, a cheap PC to work on, and the dedication to go through with it. We slept on floors. We waded across rivers.
  • Fear is the path to the Dark Side. Fear leads to anger, anger leads to hate, hate leads to suffering.
  • Easy is what I know, difficult is what I don't.

    Activity Log

  • 07.02 15:15  Making anything easy to use/access(whatever) eventually renders it addictive. (iTunes/AppStore purchases, OSX/iPhone environment/apps, etc).
  • 07.02 01:04  Had a great time around beloved, wonderful people, eating, drinking and enjoying stories exchanged among said people.




Search

Next Page