09.11.16 / General / Author: Robbert de Groot / Comments: (4)
It is nice being able to sleep in on a Monday. Taking my remaining two weeks off because of some construction being done at the office. I do not want to be there when they do that. I was thinking of taking two weeks sometime this month or early next month anyway. I have to use days up. Well, I do not have to but I want to.
I fancied the idea of going to Tokyo or Hawaii but then, I have recently been buying a lot of comics due to a shop closing up, and some other things from amazon.ca, I think I have spent enough this year. Plus, the stack of books are looking sheepishly at me, begging to be read.
Not only that, I was thinking of replacing the shelves some time with something that will more efficiently store the books I have. Currently I have quite a bit of Niklas shelves from IKEA. They are nice and all but they really do not efficiently hold my collection. And I’m running out of room… So I was thinking on designing my own shelves and have them made or piece it together myself with stuff from 8020.net. I am still playing with the ideas so far. The last project, the TV and entertainment stand turned out rather nice and matches the speaker system I have. It was pricy though but it will last a long time. Jabez made one solid piece of furniture out of my rather simple looking Corel Draw drawing.
I also want to get going on some personal projects that I keep putting off. I hope these two weeks will get me a good start on one or two of them. Which reminds me, I should really install a bug tracker. Maybe over kill for a one man shop but it is something that has annoyed me for a bit. I have too many pieces of paper lying around the desk making it look cluttered. (Update: bug/issue tracker was rather painless. BlueBug is a simple solution but I am giving it a try to see if it will be good enough. I do not really need anything fancy. I just need something that is accessible from anywhere. The pieces of paper tend to work really well until I need them from somewhere else other than my desk.)
Also, thanks Mike! That e-mail Wordpress plugin worked like a charm. E-mail should be functional.
09.11.11 / Programming / Author: Robbert de Groot / Comments: (0)
For the most part of my programming career I have never had to do any threaded programming. The main reason was that it was unnecessary for the most part. Threaded algorithms can needlessly complicate a solution and debugging can be rather interesting. Also all the hardware had only one CPU on board, going multi-threaded would not add any huge value. It has only in recent years that multiple CPUs have really become the norm and multi-threaded algorithms shine.
Often clients really do not care how the algorithm is coded. A program has to first work. If a program does not work, well, it is pretty obvious as to how much it will be used. A program has to be stable second. I am sure some clients will mention speed would be second but I am sure they avoid unstable programs when they have to baby sit a program while it runs. A client only has to suffer a crash, information corruption or loss of work once for them to deem a program is a piece of crap. Now try shedding that image. It will be a hard thing to fix that perception once it has made an appearance. Plus it will not matter how fast a program is if the program fails at doing what they ask for.
Surprisingly, at my work, our software is generally considered the fastest amongst our competitors and we were not even using any threaded tricks yet. Which shows that our competitors were not doing anything fancy either. We are changing that and we have started converting some obvious programs that could run for hours, and for some of our clients, days (and yes, that will still be faster than some of our competitors options.) Some of our programs run times have dropped like a stone with some of the changes we have made. Which has made us happy. Hopefully our clients will notice.
At any rate, I am still new to the threaded world. So I decided to change a simple and small program for resizing images for the web site into smaller and thumbnail sizes to be threaded. I decided not to use OpenMP or TBB because I really wanted to get some down in the dirt experience. Also to develop some helper wrappers around the threaded routines of the operating system. Converting the business logic, the actual resizing of the image, was surprisingly simple. I was expecting some more issues with going low level and all. But I guess it does not surprise any programmer familiar with threaded programming at the difficulty of my sample project. It was my first threaded program and made me happy that it was not as bad as I was expecting. Speed of the business logic pretty much halved which is expected and was quite satisfying.
The problem is that the reading and writing of the image files, PNG files in this case, was the slow part of the program. So in the end, the program’s run time really did not improve much; but that really was not the focus of why I did this.
More threaded programming is in my future. Hopefully it does not drive me insane.
09.11.07 / General / Author: Robbert de Groot / Comments: (2)
OSNews posted a question. What Would Make Your Perfect OS? This got me thinking. I’ve been thinking of my ideal computer/os/whatever for a while and had entertained the thought of trying my hand at doing something myself. It’s a lot of work, too much work to do it yourself really, and if you bring others along you will have to make compromises in your vision because these others will not share your exact vision. And if you want to keep the good ones, you will have to appease them to some degree just to keep them along. But I’m not perfect and I’m just entertaining the idea of what I would make.
An Ideal OS really can’t live on hardware that isn’t equally in ideals, but hardware is a harder issue. It is also something hobbiests really can’t tackle anymore. Although I’m thoroughly impressed with what people are doing with FPGAs and some lower powered CPUs, they are a far cry from of the shelf x86/x64 based hardware. So I’m ignoring the hardware problem and assume that’s not going to be an issue. Besides, everything can be solved with software… Right? (Ha! Whatever.)
I’ve seen a trend in software which flies in the face of engineering. Instead of removing options until you can’t remove anymore, projects and solutions are adding and adding and making things needlessly more complex than they need to be. It’s disconcerting. Especially when it comes to drivers and other low level stuff. Some of what I’ve written below sort of hints at this.
Ideal OS should not show me unnecessary options. A lot of people really love Linux just because it does give you the option to choose your own file system, kernel, UI and whatever else. 99% of the users out there don’t care. You just need a good enough file system, kernel and UI that will work “good enough” for 100% of the users. I emphasize “good enough” because there is no solution that will be “perfect” in all situations. For example, the filesystem I’d choose will probably not be “perfect” if the computer is running as a web server or something. But I don’t really care. Neither do 90-99% of the users out there. If it works without problem, then there isn’t a problem. I can still be run as a web server, just not as optimally as a tailored solution. I guess I should define my focus for my ideal OS. It’s for users, not for database, web or whatever servers.
So, does the file system have to be so super duper with database features and search capabilities up the wazzoo? I don’t know. Personally, I don’t think a file system should be complicated. It should have features for reliability but everything else should be external. Super duper file system search should be external. I haven’t had to treat my files in anything like a database in all of my 19+ years of using computers. I suppose some people could use these features but it should really be a layer on top of a simple file system.
File systems should be neat. Linux, BSD, *nix systems love to put things in cryptic directories like bin, usr, etc, var… OSX tries to hide these directories, which can be annoying when you are a power user and you just want/need the UI to show them anyway. Why hide your ancestry. If you are going to hide it, then you might as well do a proper job and move them somewhere else altogether. There should be one directory for operating system files. Anything and everything for operating systems should be there (drivers, shared libs, configuration files, os code files etc.) No pagefile.sys, hiberfil.sys, autoexec.bat, config.sys or other directories should exist in the root of the hard drive.
There should be a directory for applications. I like how OSX makes a folder an application. Copying that program is just copying the folder. However, there shouldn’t really be a need to copy a program (folder) to somewhere else. All user executable programs should live here.
To appease some of the UNIX yahoos, there should be user directories at the root level or in a sub folder called user. I’m not fussy. Most of my computers are only used by just one person. And I like to put what ever I like, where ever I like. That basically should be it for folders. The user of the computer should be able to write to any folder or directory anywhere else.
I’m not a fan of the *nix idea of hiding what hard drives you have. I dislike this because it is too much of a black box as to where your files are physically. I’m a little fussy about that. Plus, if someone’s hard drive dies and they have multiple drives, they may not know exactly what they lost. Or if they are running out of room on one harddrive/partition but have plenty on another harddrive/partition, how easy is it to know what directories map to which drive. I find this to be annoying with unix. I’m not a huge fan of Windows/DOS of drive letter allocation either. I’d rather amend my above rule about the only two folders “Operating System” and “Applications” to include drive letters/names at the root. This would mean the os folder and the app folder will be duplicated when you open up the drive where they live but that’s fine in my opinion.
I’m also not a fan of *nix in having folders in the file system for certain devices. A file system isn’t a gateway to the computer in my opinion. To use the other devices (none storage media) of a computer system, the programs should use API calle to the OS and not some potentially arcane method through the file system.
The kernel, from reading some discussions about this, I can say I’m out of my league in commenting here. Personally, computers should be responsive UI wise. Since my ideal is for users and not for servers. Good for gaming, e-mail, web browsing, photo editing, movie viewing, movie making etc. Interactive tools. That should be the focus of the kernel. The kernel should make it simple for driver writers. If you can’t support the most hardware then you really lost all hope for mass appeal. No drivers, no hardware, no users. It should be stable even if it means a little but reasonable loss of performance elsewhere.
UI should be clean. It should not need to be network aware. I understand some of the niceties of X because of it bein network aware but I’m not concerned about this. There are software options that are “good enough” for remote access for those tasks that you need to do remotely. For a good responsive UI I don’t think you need network awareness and I think it is holding back X’s potential as a great UI. I have 6 computers. On none of them do I need UI remote access to another. Over the 19 years, I’ve only needed this ability a few times. And there was software that worked good enough to do exactly that. So why throttle UI with a needless requirement.
Another thing about UI, there should not be an option. You only need one, so you only get one. None of this Gnome, KDE, Enlightenment etc. Give application developers a fighting chance to make applications that work properly regardless of machine or install. No one wants to support Linux/BSD because of the plethora of options and differences. They’d rather look at Windows and OSX where there is only 1 UI to deal with. Often, it is hard enough just having to support one. No point in making it complicated with options.
I like the Machintosh/OSX/Amiga(?) idea of one menu bar. Instead of a menu bar that is part of the application window. I do like Window’s keyboard access to the menu bar though. Something the Machintosh/OSX sorely suffers from. Hot keys are needed as well but until you learn them you have to use the menus. Having to take my hands off the keyboard to fiddle with the mouse is a failure. Yes some programs are really mouse based but a lot of programs need not be and these programs would benefit from better keyboard access.
This brings up a serious annoyance with OSX/Gnome/KDE/whatever for me. The UI should be completely keyboard traversable. Windows is very close to being ideal here. It has some issues but usually, for the most part, I work on the machine rarely touching the mouse at all. If I have to use the mouse, the ui has failed.
All windows should be resizable. I like Windows here. Each edge can be resized. Not just the bottom right corner for that. The easier I can get the windows to the configuration I want the better. And resizing from each side does that. Maximizing a window should fill the screen. Something OSX programs don’t do all the time which is infuriating.
Text keyboard movement should be dictated and settable by the UI. This is one major frustration for those moving back and forth from OSX/Windows/Linux. It shouldn’t matter what OS you use, it should work the way you come to expect. I can hear people make the argument that you just need to relearn the keystrokes but seeing that it’s all software, why can’t the UI do the remapping instead of me having to do a harder mental remapping which invariably ends in a lot of frustration and feeling bad. This is a UI issue and should be a UI solution, not a user one.
Being able to tile a subset of windows. Often you just want two applications to be tiled together and not every application you have open. I though Windows XP used to have this ability but on Windows Vista/7, I have yet to figure out how to do that if it’s possible at all. Exposé on OSX, Win|Alt-Tab on windows only goes so far. I like my windows to use as much of the monitor as possible so they are often maximized. cut/copy pasting between applications isn’t always as fast. It’s also prone to error when you jump to far or have trouble finding the right window in expose. Sometimes drag and drop is faster and it’s easier to do this when the windows are properly tiled and not obstructing each other.
Application branding is fine. However there should be a way for the user to define their defaults that would appear in their main application activation location. I’m not a fan of OSX here. The dock is really pretty and neat but it’s not what I would use. Also if something isn’t there you have to go to finder, then to the applications folder. I do like Windows start menu in that you should be able to easily customize the menu. One thing I don’t like is that Windows Vista/7 no longer lets you rename, say, Firefox to Browser. I also don’t like Vista/7 start menu search field. It gets in the way of letter navigation. You have to use the arrow keys to first get out of the search field before being able to use letter navigation, but even then, you may still require arrow key navigation. Since I’m following OSX with the one menu bar at the top, the top left had corner would be the same as the windows start menu or the dock. This start menu will show the currently open programs as well as the user’s default/goto programs and the spring board to all their loaded applications. This keeps the ui pretty clean. No dock or task bar that takes up valuable realestate. I have so many icons on my windows task bar and I rarely touch any of them. The dock on my OSX installs are always hidden and it sometimes annoys me when it pops up when I push the mouse out of the way causing me to push the mouse out of the way yet again.
One consistent Look and Feel. I really liked the fresh look of OSX when it initially came out. It is very pretty. Then iTunes and certain apps started coming out with the brushed metal look and I was thinking, well, this sort ruined the cohesiveness of the OS look. However Windows isn’t any better. Media player, Office, WinAmp have always deviated from standards. This could just be my OCD kicking in but from my perspective, ’skinned’ or applications that deviate from the norm just feel out of place. From my experience it could be that these applications have always worked “not quite right” which may be clouding my judgement. It just seems that the developer has spent more time on looking cute instead of working properly. But this will really be out of the OS’ hands anyway. Companies/developers/designers will always want to make a unique UI experience even at the detriment of the user or stability. Maybe I should just say, OS dialog UIs will be consistent. The os will make the ui impressively easy to use for developers and more importantly, the widgets will work right! Missing a widget? It will be added. If you ever wondered why Microsoft has nice UI and it takes certain companies a while to minic, is because non of the widgets Microsoft uses are provided by the OS or to the developers. And the default ones that they do provide are not always that great. There are developer programming libraries out there that provide complete widget sets that work that basically reimplement what Microsoft provides via the OS because these provided widgets are rubbish.
… Thought dump complete… I can’t think of what else to say now so I guess I leave it at that.
09.10.28 / General / Author: Robbert de Groot / Comments: (0)
From a recommendation, I installed NextGEN gallery plugin for word press. Well, it’s sort of easyish to use but a few frustrating moments this evening. For a while the plugin seemed to have a mind of it’s own. Thumbs would not be respecting the options. Some galleries would be different than other. Ugh… I’m getting pretty quick at finding that clear cache button.
Changed the old static image pages for the comics and art to using NextGEN gallery. Simple enough. I still have fix the CSS because it’s making a mess of the right side bar. Sigh. It never ends.
Also added some more links to web sites/blogs belonging to friends of mine.
09.10.26 / General / Author: Robbert de Groot / Comments: (0)
The page that they are on are pretty simple. I haven’t prettied it up. Silent Silver Spirit (SSS) was first. Took a while to draw. It’s a bit embarrassing considering some of the mistakes. I do like some things about it. The center pages, the true black and white art, were actually fun to draw and I kind of like how some of the panels came out. The dialogue though is pretty awful. I’m clearly not a writer.
Joe was suppose to be a quickly. Or at least quicker than SSS. It was for the most part. It’s still took me a while. The goal was to just do the pencils on paper and then do everything else digitally. Then I found out that PhotoShop is a royal pain for doing text bubbles.
Recently I’ve been attending a www.meetup.com group for manga artists. They have a ongoing project called “Prison school” which I’ve written a story and done the “Names” for and will be doing the finals eventually. Currently I’ve only got one page inked and scanned; but that’s about it so far. My main computer suffered a power supply failure which paused the project a bit. This time I’m giving Manga Studio from Smith Micro a try; or at least the 30 day trial. I’m not holding my breath. I’m sure some people find it a great bit of software but so far my limited exposure has already found some annoying issues. Maybe I’m just a little too finicky and need to loosen up a bit, but sometimes, I just want it to work my way.
Maybe this Prison School project will be in combination with doing my own paint programming project. Something I’ve been wanting to do anyway in combination with Z:G.Ray. Project Z:G.U.P.P.I. (Zekaric : G.R.L. Universal Paint Program Idea) or something like that.
09.10.25 / General / Author: Robbert de Groot / Comments: (0)
After trying to make a blogging software on my own using Perl and what not, I found out that I really don’t want to make my own blogging software. Not that it is a really difficult programming job to do… Actually it is sort of difficult because all your programming options are crap. Or at least that is my opinion. I know those who work day and night doing web programming will have a different opinion. Me, I’m a desktop application developer. Give me ‘C’ and a good UI library and I’m happy. Which is another gripe of mine. A good UI library doesn’t really exist. There is a reason there are so many of them around.
Anyway. Installed WordPress. That was surprisingly painless. Although I did change the db password to something else and had to manually modify one of the built in MAMP scripts so that it will work properly again. That was a bit of a chore. Also forgot my WordPress admin login recently because I let this install sit for a while before trying to make sense of it. I got a simple template going. I really wanted a right side side bar but I’ll leave that off for now. Cleaning up the left side side bar should be interesting enough. Actually getting it to this point what enough of a chore so I’ll tackle what ever else later.