Tuesday, December 8, 2009

The curse of configuration ...

./.config/gtk-2.0/gtkfilechooser.ini -- a single file that has been the reason of so much cursing these last months. Okay, i'm "migrating" my user profile for probably too long now, and i inherit previous defaults, etc. Yet, despite how much I love the "new" gtk file picker, I have been repeatedly annoyed by the fact it was listing all the "hidden" files & directories here. This combined with the fact that it also started at home directory by default led to useless waiting time everytime i want to attach/upload/download/open/save-as/whatever.

I've been hunting for that single file with all my skills, including inotify, google and strace, but it remained hidden, unnoticed. What I mostly dislike, of course, is the absence of a "configure this dialog box" (or so-called "preferences") in gnome-ubuntu. Another perplexing fact: the file seems duplicated: there's a .ini and an extension-less file (in XML encoding) detailing the same stuff.

Making it "for humans" isn't everything, dudes. You've got to document what you're doing and keep in mind that humanity also include your power users.

Tuesday, September 29, 2009

Getting Started

[[edito]] I once was active as PypeClicker, working on my dream Operating-System project: Clicker. Despite this time is over, there are thoughts on OS programming that I wish I could share. None of my other blog seems to be the proper place to do this, so I open this one, that will also compile recovered parts of the OSFaq I was involved in or the Wiclicker (the project's wiki that has been disabled by some unknown events). I am afraid all the links below are broken by now.

Selecting your destiny ...

First things first, it's best to have a good setup of GNU tools on your system. Linux distributions usually have all the utilities you could want preinstalled; for a Windows installation, installation of Cygwin is recommended.

This is a list of the most valuable ones
  • binutils (containing the assembler as, linker ld, disassembler objdump, and other useful things);
  • Compiler Collection (GCC) (containing the C compiler gcc and the C++ compiler g++, plus more exotic ones e.g. for Fortran or ADA);
  • grep and sed (which allow for powerful and complex search / search & replace from the command line);
  • make (for automating the build process, which becomes really helpful once you have more than a handful files);
  • diffutils (containing diff, cmp and diff3 to show where files differ).
  • perl which can save you hours in miscellaneous text-manipulation tasks. You'll be using sooner or later, so rather install it soon ;)

Visit some Recovery-and-Save-Point Inns

Using some kind of version control system is also strongly recommended, so you can easily undo changes, or check what changed since the last known working version of your code. There is a wide variety of VCS packages available. If you're working alone and on one machine only, RCS might be enough for you. Traditionally, CVS has been the package of choice for collaborative, networked development; but that has found strong competition lately, e.g. in Subversion being easier to set up, maintain, and use as well as being more powerful, while being largely compatible in syntax.

People keep arguing about whether to use the Netwide Assembler (NASM) instead of GNU as which comes with the binutils package. NASM is probably the more powerful of the two, while 'as' integrates better with GCC (and supports a variety of platforms).

Getting Additional Equipment (Weapons, Shield, Armor etc.)

Make sure you downloaded the latest Intel Manual and got a deep look through it. Check Operating System Resource Center for tutorials about 'how to set up protected mode' and don't hesitate to spend Kbps in downloading the preciousss informations about all the PC internals you'll find there. Then head yourself to Bona Fide's inn and fill your bag with all the tutorials you may wish to have about ProtectedMode, interrupts, etc. Another good resource point is the OSDEV Community Portal.

Don't miss GRUB too. It's given for free at the southeast corner of the village and will be a very valuable help in the first dungeon in your Quest for DPL0 ring ...

Join the Fellowship

If your questions are still unanswered, you can find Schol-r-lea the Wise, TimRobinson the Grey, and the others on the OS development board of mega-tokyo's forum.

Good Luck....

Monday, September 15, 2003

Dialog Boxes: pros and cons

Design => Ideas => Message started by: pype on September 15, 2003, 04:06:33 AM



Title: Dialog Boxes: pros and cons

Post by: pype on September 15, 2003, 04:06:33 AM

here comes this week's rant about classic UI designs. Dialog boxes.

Seeing popping up windows asking me "are you sure you want to quit without saving ?" or "timeout while trying to connect to ..." is, imho, a productivity blocker. In most of the case, the question is repetitive, so will the user's answer be. What is the point from asking "are you sure you want to delete XYZ ?" if the user machinally replies "Yes", or worse, do not even take the time to read the message and click "yes" for every asked questions.

I think that a 3rd generation OS
should be able to provide operation status and report by some other way than popup boxes everywhere.

On the other side, the Unix way of graving everything in log files is probably not very enjoyable as well: you need to be a system expert to notice something is going wrong and
read the *right* logfile to learn what has gone wrong. Moreover, log files leave no room for user prompts.



Title: Re:Dialog Boxes: pros and cons

Post by: BI lazy *yawn* on November 05, 2003, 04:34:16 AM


Dialog Boxes ... In case of "are you sure" questions, they are something kinda awful, for one often knows, that he/she wants to do.

The unix way is only to moan about error. If no response, requested operation has been executed. I like this approach.

the dialog boxes aim at the otto normal user who sometimes clicks around the screen with his lousy mousy pointer and may cause severe damage to his filesystems - by erasing small unimportant files which reveal their importance upon the next start up. Any areyousureyouwannado? boxes are very welcome in such situations. they *might* wake up that otto normal user.

the message boxes on the other hand, which are used to report events ... why the hell can't this stuff be dropped into some
"report system events" window instead of bothering the users attention?
there is no need to popup for a time out event. The user recognizes it anyway, coz he canna do what he wishes to.

Stay safe



Title: Re:Dialog Boxes: pros and cons

Post by: pype on November 06, 2003, 08:43:11 AM
Quote from: BI lazy *yawn* on November 05, 2003, 04:34:16 AM
the dialog boxes aim at the otto normal user who sometimes clicks around
the screen with his lousy mousy pointer and may cause severe damage to his filesystems - by erasing small unimportant files which reveal their importance upon the next start up. Any areyousureyouwannado? boxes are very welcome in such situations. they *might* wake up that otto normal user.

Well, i would like to end with a system where the 'lousy mousy' user does not have the opportunity of doing any damage. But i admit that confirming sensible actions is important ...

However, depending on who's interfacing the chair with the keyboard, the definition of 'sensible'
may vary, and i'd like Clicker to be able to adapt this (or at least to be taught about this).

For instance, we could have for Joe Average

Code:

<question class='file' operation='delete'>
<accept> $file.hasBackup </accept>
<accept> $file.noContent </accept>
<accept> $file.source.exists and $file.source.builder.exists</accept>
<ask/>
</question>


while Mr. Anykey would love to have:

Code:

<question class='file' operation='delete'>
<ask/>
</question>


And Sarah Programatzi would rather have:

Code:

<question class='file' operation='delete'>
<accept> $program.name eq 'make' </accept>
<accept recovery='never'> $file instanceof 'multimedia' </accept>
</question>

Quote:
the
message boxes on the other hand, which are used to report events ... why the hell can't this stuff be dropped into some "report system events" window instead of bothering the users attention? there is no need to popup for a time out event.


That's
exactly what i had in mind... The 'system tray' of Windows (and clones) partially fulfill this by the way of changing icons (i can visual notification of a flow has been denied by the firewall by looking at the red flashing arrow near the firewall icon), but i'd like to have file copies and "make all depend " progress ...

Mozilla's download manager is almost what i'd like to have except that it should be "out of the window" ... some kind of Application Socket that would
be called "report" and that would announce the operation progress, saying that

Code:

<reports>
<progress title="download">
<item type="File:name">downloaded item</item>
<item type="File:directory">target location</item>
<full type="File:Size">total lenght</full>
<current type="File:Size>downloaded length</current>
</progress>
<event title="Broken Link"/>
<action title="cancel"/>
<action title="suspend"/>
<action title="resume"/>
</reports>