Getting Things Done (GTD) is an organizational method created by David Allen, described in a book of the same name. The Getting Things Done method rests on the principle that a person needs to move tasks out of the mind by recording them externally. That way, the mind is freed from the job of remembering everything that needs to be done, and can concentrate on actually performing those tasks.
I read the book and love it. It balances between theoretical reasoning and practical attitudes. It says explicitly that it is not about a computer program, or a special type of note book. You are free to use any system you want. Webmail, Outlook, notebook, folders, color tags… you decide. But the book is smart enough to give you hints about using them, just for the sake of starting soon and being practical.
It at least opens the mind for being more productive in our ordinary life. Just dont go crazy to think about it all the time because, paradoxically, it can be really nonproductive.
PS: I recommend you to strive to use for 3 months, forcing yourself. Its easy to start but because it requires a new mindset, keeping using the system harder and harder with time.
Creating GUI is no easy task. But creating GUI creators is a even more complex task. Almost a nightmare. But the long road walked by GUI creation programs, we already know somethings that are good and somethings that are bad.
Drag and drop
Quite a long time, desktop IDE’s acknowledged that letting developers to create GUI with some kind of drag and drop interface were critical. That were because GUI were less and less created by programmers but more and more by designers, that have little knowledge and patience to deal with programming code. It also facilitate the adoption by beginners.
A too designer/beginner driven interface for creating GUI might also not be a good choice. The whole customization and generalization possible by programming is lost. Its too case-by-case development. Its not cost efficient. That’s why a middle term is needed. Some kind a language that is easy enough for designers but programmable. Drupal CMS uses the Form API, a PHP array that will be used to create HTML forms. Its quite easy to be used by newbies. I heard that QT is preparing some custom language for creating their UI too.
Most GUI element have a fixed set of parameters. But sometimes the GUI should be generated on the fly. Developing GUI like this is very try-and-error. To facilitate the creating phase, its important to be possible to see it working with some generic data.
Widget or data separation
The UI 101 rule is to separate the data to the layout. But it is important to let the users to chance any of them. For example, the user can enter his birth year by a textfield or a dropdown list, or some nice JS calendar. This example show how to change the widget, the GUI element. However, the user might need to change the data type. If the birth year was originally text, the user might decide to change it to integer number. The challenge here is to convert saved data. But for most cases, it is feasible.
Developers of both desktop and internet applications are experiencing a quite interesting phenomenon: the same application must have several outputs, like netbook version or mobile sites. With the rise of HTML5, sites now might need multiple different outputs. Also, we must have different outputs when we are creating, viewing or update content. The concept of multiple contexts might be anticipated by the GUI creators.
Custom data structures
Integers, float numbers, strings… all developers know these data types. But they know that in some cases it is needed a more complex data types; combination of primitives. Some programming languages have structures and objects to address this idea. But GUIs can also be the combination of multiple primitives. Imagine a “password_checker” GUI element that is, in fact, two form fields that will check if the user typed the password correctly or an “address” element that is in fact a group of *country, province and city* fields. Users might be enabled to create and edit these type of custom data structures.
UPDATE (2009-10-05): I just saw a issue posted against CCK module called State of the multigroup module. It has close relationship with this post. Curious is that it is more a hack than a core idea.
Views is the most popular module on Drupal. Its not a coincidence: the ability to create custom lists on any Management System is critical. Views goes even beyond by creating a display API and enabling export some options to the end users.
I’m in fact really puzzled by the fact the Drupal next version, 7, does not integrate it into core. It IS a core module, by any perspective. Several administration pages should be designed as Views from the beginning and the whole DB schema data also should be redesigned to implement integration with that.
But I still see some features that Views could still implement.
The first is external data sources. Today we know that search huge amount of data is no easy task and Drupal core does it poorly. That’s why external programs like Solr, Sphinx are becoming more and more popular among Drupal masters. Views yet does a very little integration with those tools. The whole …8220;query builder" should redesigned to control other data sources. Ideally, it could search on any known data structure. By plugins, it would be possible to search external feeds directly, or some web services’ data, like Twitter, Flickr and Facebook without replicating the whole data locally.
I hope the newly created version 3 implements such abstraction.
200 megabytes is the size of the entire game. And yet, probably one of the most surprisingly good games in some time.
Braid tells the story of Tim and his journey to find the princess. Its a basic platform game, with the controls just like old Mario, except one thing: you can control time. By pressing a button (and further in game, by some other situations) you can turn back time. Even after you died. If the controls are similar to the famous plumber, the game dymaics is completely different. It is a puzzle game.
Braid is an action-puzzle game about manipulating the flow of time. To rescue a princess, the player journeys through a series of worlds; in each world, time behaves differently. The game provides a mind-expanding experience that is filler-free, treating the player’s time as precious.
The puzzles are very well designed and the difficult progression is a state of art. Considering that it is a one-man work (Jonathan Blow. did it alone, except for the music, which he licensed, and graphics, which he hired a guy for the job), it’s amazingly good.
From the series Things I Used To Hate Now I Am Using, now I finally testing Twitter.
I created my account as brmassa and I started to post micro stuff: my favorite football team stupid results, political jokes and things that are REALLY useless for most of people.
After about 2 months, I still dont see much use on this, except on spying on peoples lives (HEY, they are aware of it… they are publishing the tweets). With instant messaging, blog witting and spam reading, they are the Time Wasting Toolkit.
It is now just another fragmented piece of information about people. The only advantage I see is for companies like Google now have another source of free external data about potential customers. They can cross with their own data and offer ads more and more targeted to them. Social networks + search history + email history + tweets + photos = complete profile about you!
And I foresee that soon the site will add a higher level of permissions, so you will choose which people can follow you or can do some operations regarding your profile. In other words: it will gradually transform in a Social Network site.
PS: I just added the Twitter messages list at the bottom of this blog. Its updated hourly.
I simply don’t get the point when the game producers advertise the engine behind a game. Engine, for those are not familiar with, is the piece of software that deals the core functions in a game: 3D rendering, sound, network, etc. They usually say that their own home-made engine is capable of more graphics in the scene, with more details or more effects (mostly about the graphics power). But more than what?
Unless the company license their engines as core business, like Epic’s Unreal Technology, Valve’s Source or id’s id Tech, there is absolutely no point on advertising it or even giving it a name but creating it some pseudo-credibility to the project.
WOW!! Mafia 2 are going to use Illusion Engine!
Whadda heck is Illusion Engine?
These pieces of softwares are complex to create. However, there was a lot of people that were capable to create one from scratch. Today, there are several of them, with different purposes (some are for hookies, some are for 3D pros or only for FPS games) and different quality (some are slow, some have incomplete documentation or lacking of tools). But there are enough that it might be considered almost as commodity.
Unreal Engine is, by far, the most popular among the big companies. Several best sellers were created using its tools and libraries. But dont even think about using it: it costs a fortune! So several companies had the same idea about position their owgame_engines_virtual_war_content_1tely free. Some are worthy to mention: Garage Games’ Torque, Blender/Crystal Space and Radon Labs’ Nebula Device.
Some good games came from they: Torque is quite inexpensive and it was used on the Penny Arcade Adventures; Nebula Device is completely free with the most permissive, the MIT license, and its behind Drakensang, which Im going to play really soon.