Showing posts with label programming. Show all posts
Showing posts with label programming. Show all posts

Thursday, March 18, 2010

All-Super Bar

After reading this Windows 8 Concept I was inspired to come up with my own concept All-Super Bar.

The idea is really simple: The Super Bar in Windows 7 merged the Quick Launch bar and the task bar into one bar, the All-Super Bar merges the system tray with them too.

How will that work? Here's how:

You can still pin applications to the Super-All Bar, when you click on them they will run. However, instead of having a context menu pop up, it shows whatever commands and buttons the application needs, not necessarily in a menu; it could be a mini dialog box (kinda like what WMP's play, previous, and next buttons in windows 7).

The applications that reside in the system tray will appear in the same bar which increases their efficiency and usability.

The All-Super Bar will also replace the panel applets in GNOME.

The idea is still vague but it seems very interesting, instead of having 3 separate bars for not running, running, and hidden applications you just have one bar from which you can manage all your applications.

In my GNOME desktop I have DockBarX, the system tray, the notifications applet, the time applet, the logout applet, the show desktop applet, the Main Menu applet, and the Workspace Switcher applet.

I imagine a bar in which all of these are items on the bar.

The menu is an item that has the applications the custom menu I referred to earlier, the system tray items are added to the bar as individual items, the clock is an item by itself, so is the Logout and the show desktop. the Workspace Switcher can be different shortcuts for the different Workspaces, changing icons periodically to reflect the changes in that workspace.

Notifications will pop from whatever application in the bar.

Saturday, January 2, 2010

The Little Details

As Jeff Atwood said:
Ah, yes, the stereotypical programmer response to most projects: it's trivial! I could write that in a week!*

I thought it was just me, apparently it's not. It turns out that all programmers think that way, they see Twitter and they think "A table for users, a table for tweets, a user page, and a settings page."

Let's face it, we all think that way, and the surprising part is? It's true; you CAN create a usable version of Twitter over the weekend, you CAN create a usable browser in a weekend, and you CAN create a usable version of Stackoverflow in a weekend.

Why does software take us so long to create then? There are two reasons: The little details and the little details.


  • The little details: The first little details refers to the little details of writing code, for example, the little silly bugs that take ages to find, spelling mistakes, forgotten variable definitions, wrong passwords, wrongly placed files, difficulties with the programming language/framework being used, etc.. All these are problems that a programmer faces that take much of his time but there's no way to predict them.
  • The little details: The other little details refers to the little details of a website/software that a programmer usually doesn't think about when making the one-weekend claim.
The best example of this is the reason why I wrote this blog post: In the project I'm working on now, it took me barely 30 minutes to create both the interface and the tables (what programmers usually start with in a project). What comes after that is what usually takes long. Because of some previous experience with Flex, I decided to implement the login system next, so I googled for a way to do it with Flex and Zend and the way that I found required the use of Cairngorm, having used it before, I didn't mind using it now. So I started changing my project to use Cairngorm, separating the different screens into views, adding the model, the controller, the VOs, etc... I started creating the PHP files. After about two hours I had a working login system. Next I wanted to populate a tree control with some data from the database, now because I didn't know how to do that in Flex it took me about 6 hours just to do that, as simple a task as it is.

Programmers don't like planning ahead and dealing with charts and stuff, we like writing code, and I don't see any way to change that any time soon; programmers will still want to write code before they plan, it's in our blood.

Thursday, September 18, 2008

Deep Linking in Flex

Two weeks back I was looking for a Flex-based social network when I found Doof and I couldn't help but notice that the address in address bar changes as I switch between the different states of the site.

I asked at #flex and googled a bit and found that it's using something called deep linking to do that, here's the article I read.

After reading that article I thought that it's too hard to do that every time so to day I created a class to make life easier, you can find it on my website.

Have fun :)

Thursday, August 28, 2008

Alan Kay

I'll start by saying "I LOVE OOP"!

It's just amazing! I can't imagine myself writing Claire without using OOP! And I feel so grateful to Alan Kay who coined the term object-oriented programming!

I don't know how I used to live without OOP! I'm not an expert in it yet, I still have difficulties designing an app with OOP but I'm getting used to it.

Pleasure of programming!

Remember I said I got rejected by programming but I'll keep fighting for it? Well, today it finally started to work out: I was working on Claire, trying my best to create an application with OOP and I finally did it! I have two classes, one interface and one MXML file that all "work together in a magical way" :)

I'm so excited! If I wasn't so sleepy I'd be jumping all over the room like I usually do when I accomplish something.

Tuesday, August 12, 2008

Toolmaking Predilection

So the day before yesterday I started working on Claire, it's something new in the programming world that should cause programmers to make less bugs, you can find more about it here.

Today, I started thinking about how I'm going to manage my time to work on both Claire and Deviyo, then only I realized that, the reason I got the idea in the first place is because I had problems with Deviyo, I started creating Claire to make developing Deviyo easier, suddenly, something I read in Dreaming in Code came to my mind, here it is:

In software management, coordination is not an afterthought or an ancillary matter; it is the heart of the work, and deciding what tools and methods to use can make or break a project. But getting sidetracked in managing those tools is a patent temptation. When the cry of "Let's build it ourselves!" arises, geeks are all too happy to rally and cheer. A celebrated (and perhaps apocryphal) bit of graffiti from MIT captures this: "I would rather write programs to help me write programs than write programs." Similarly, there is a saying attributed to Abraham Lincoln: "Give me six hours to chop down a tree, and I will spend the first four sharpening the axe." This principle, which found its way into the business advise manual The 7 Habits of Highly Effective People, appeals to every programmer's passion for toolmaking. But if it becomes an end in itself, it can drive the best-organized projects into a ditch.

I don't know what to say, that book is amazing! Everything it mentions seams to be true, I'm so happy I bought it, it's the only book I bought, usually I either borrow books or get free e-books from the Internet and print them.

Monday, August 11, 2008

Falling in Love with Programming

The other day I was reading Dreaming in Code, it's a book that talks about software development and why we still have bugs after more than half a decade since the invention of computers, when I found a saying by Jaron Lanier that I've been thinking about since I learned about OOP, here's what he said "We start off writing little programs--'Hello World,' or whatever it might be. Everyone has a wonderful experience. They start to love computers. They've done some little thing that's just marvelous. How do you get over that first love? It sets the course for the rest of your career. And yet, as you scale up, everything just degenerates."

It's true, I started programming when I was 8! I started with BASIC, just writing sentences that are executed one after the other from top to bottom. Then I was introduced to VB, I never knew about classes or anything then, I just dragged controls to the form, I set their properties, put code in events and voila! I have a working GUI application, which is probably why people recommend against it for beginners.

Then I moved to C, there were some features that I wasn't aware of (recursion, pointers, etc) but that wasn't hard to get used to.

Then came C++, I borrowed a book from the library and started reading it, I thought the only difference was just in the sentences and the libraries used (iostream, cout, cin, etc) but then I reached chapter 7, it started talking about OOP, it was complicated and I started thinking "Why on earth would I want to learn this?", so I just read it because I didn't want to skip anything, what made it worse is that chapter 9 (chapter 8 is about OOP too) was about programming for windows which is the main reason why I borrowed the book.

It wasn't until recently when I started using Flex and started planning for Deviyo that I realized that OOP is important.

All this time I've been in love with programming, I used to think it's the coolest thing on earth, I'm taking a course in IT, I'm convinced it's what I'll be doing for a living.

The result is? I fell in love with programming, it rejected me and I can't seam to get over it, but I'll keep fighting for it.

Friday, August 1, 2008

Now what?

OK, so I'm back from my "vacation", it was nice, I had lots of fun but I'm starting to wonder what I'm gonna do now.

Should I work on Deviyo? Should I read the book I downloaded about design patterns in Actionscript 3? What about the game of the generals? I don't know.

The most probable thing is that I will try to finish reading the book ASAP and then I'll resume working on Deviyo, meanwhile, I'll be working on GoG especially that I received an email from a guy asking about it :)

That's all for now.

Tuesday, July 8, 2008

I'm on "vacation"

Sorry for not posting for over 2 months now (as if anybody's following up), I've been busy with my assignments, exams, etc...

3 days ago my parents and I came to Malaysia on a vacation (not really, my dad is doing his PhD here and he took us with him.

Just when I thought I'll stay away from programming and computers for a month, I was asked to create a system for a local company, and I can't complain; this is the best vacation I've ever had, I'm not "hired" so I'm not obliged to do anything but I did say I will create it for them and I will.

Why am I doing this? Well, first of all, I can't help it, second, it's a good thing to add on my CV, and last but not the least, I can submit this as my final project in college.

Tuesday, January 1, 2008

New year's eve

This is probably the geekiest way to spend new year's eve: Reading a tutorial on QT programming on Linux :P

I'll make learning QT/KDE programming my resolution for 2008 :)

Happy new year!