Saturday, August 18, 2012

Updated Gource visualization of the Haiku Git repository

I had done a version of this around 5 months ago, but had a few glitches in it due to features that weren't working at the time (since fixed), and some bugs in the physics parts of Gource that I since learned how to work around... so recently in response to a request for an updated version in relation to an upcoming Haiku on-line conference, "Haiku Down Under 2012 - Beta Blockers", I decided to tackle it again and make a slightly improved version.

Just to be clear, the conference starts tomorrow morning Australian time, but actually tonight at 7PM EST time (Sunday 19st August, 2012 - 9AM (GMT +10))! So be sure not to miss it! See the conference website for more information. Also try this time zone converter: http://wwp.greenwichmeantime.com/gmt-converter/ I found it easier to use than the one linked on the conference website.

For convenience I'll include the full description here;

Visualization of activity on the Haiku OS git repository done with Gource.

https://www.haiku-os.org/ http://code.google.com/p/gource/ https://www.haiku-os.org/guides/building/get-source-git

I used a combination of the Gravatar script ( http://code.google.com/p/gource/wiki/GravatarExample ) and some custom done icons for some of the users, replaced the default user icon with a modified "People" icon from Haiku, dropped in the Haiku logo, and did a number of other tweaks.

Command line:

gource --hide filenames -c 2 --load-config gource.cfg --max-user-speed 100 -r 25 -o gource.ppm

Encoding line:

ffmpeg -y -i audio.mp3 -vcodec ppm -r 72 -f image2pipe -i gource.ppm -vcodec mpeg4 -r 29.97 -preset veryslow -q:v 1 -threads 8 -b:v 10000k -bf 0 -comp_duration 204 -ac 2 -acodec copy gource.mp4

Config file:

[display]
viewport=1280x720

[gource]
auto-skip-seconds=0.01
camera-mode=overview
default-user-image=person.png
font-colour=ff7600
hide=progress
highlight-colour=ffe980
dir-colour=d5eaff
#highlight-dirs=true
highlight-users=true
key=true
logo=HAIKU logo - white on transparent - small.png
seconds-per-day=0.01
stop-at-end=true
time-scale=1.2
user-image-dir=.git/avatar/
user-scale=8

This is about as good as I could get the video without the size being too excessive.

I also kept having trouble with YouTube making all my video uploads into grey pixelated useless garbage. :( So I'm trying this one as MPEG4 to see if it makes a difference.

I might do a nice 1080p copy of this after my new monitor arrives, if I can get this YouTube video scrambling problem figured out, and if I can free up enough disk space.

I decided to add music to this version on the suggestion of someone in #haiku... and I think it adds a fun little twist to it. The selection I used was "Flight of the Bumblebee", which seemed perfectly fitting to the frenetic pace of the development shown in the video.

Friday, August 10, 2012

ioQuake3 update for Haiku

Over the past several days I've been playing with some of the open sourced id code on Haiku. As part of that I decided to try updating the version of Quake3 that was in Haiku Ports.

Based on some of the previous patches that were submitted, and some invaluable help from the folks in #haiku, I updated the ioquake3 open source version to the latest revision (r2306 as of today) and got it to compile and run again.

You need one of the latest Haiku nightly revisions, an install of SDL 1.2.15 from Haiku Ports (or from installoptionalpackage), and the proper pak files (either official ones from id with the accompanying q3key file(s), or possibly some open source versions but I'm not sure about those) as prerequisites. It won't compile and run properly without these.

Currently the frame rate is unplayably low (2 to 4fps on default settings) due to the current lack of hardware acceleration. So even with the details turned down etc you're probably not going to get more than about 7 to 10fps at most.

I was playing it yesterday just fine on Haiku r44483 gcc2h on bare metal (installed directly to my hard drive), but today when I was finishing up the patch and bep file on Haiku r44507 gcc2h while running under virtualbox, I kept getting KDLs (system crashes to the kernel debugger) after I exited the game.

I've submitted the updated bep and patch to Haiku Ports, and a bug report about the KDLs to Haiku's Trac.

If you want to try this out yourself, first make sure you have HaikuPorter installed (follow the directions on the main HaikuPorts page), then grab the r2306 bep and patch I submitted and place the bep file in "/boot/common/develop/haikuports/games-fps/quake3/" (you'll probably have to create the "games-fps" and "quake3" folders), and then place the patch file in "/boot/common/develop/haikuports/games-fps/quake3/patches/". Then run "haikuporter -i quake3" to compile and install it.

I haven't tested this under a gcc4/gcc4h build yet, so I have no idea if that works or if it performs any differently.

Although I'd like to hope that this might help motivate some folks to work more on the hardware acceleration issue, I think the issue is more complex than that. The up to date Mesa builds require gcc4, and probably any related stuff like current hardware drivers for the video cards etc... so it's impractical to consider both a fork and a backport of these to gcc2 that would have to be maintained independently etc.

So we probably aren't going to see a lot of improved features like this in Haiku until after R1 (the first full official release of Haiku, meant to have binary compatibility with the last release of BeOS, which was gcc-2.95.3 based) when the builds can switch to gcc4 as the default and pull a lot of modern code into the main official build.

The "Team Arena" mission pack seems to work fine as well, as shown below.

New red/green color blind friendly Pe icons

Well, for those who are red/green colorblind like I am at least. ;)

Since I started using Haiku this has always been an irritation to me and up until very recently I didn't even have a clue that the StyleEdit and Pe icons were actually different colors. I thought they were both yellow.

Only when I finally got fed up with confusing the two did I finally take a very close look in preparation to change the color and notice that the Pe icons were in fact green and not yellow.

Here's some of the description from a bug report I filed on the issue;

For people who have red/green deficient vision, the icons for StyleEdit and Pe are almost indistinguishable, especially at smaller sizes where the slight difference in the pencils becomes less pronounces and the overall color of the icon (from the paper) becomes the major visually distinguishing factor.

This is the most common form of color blindness, affecting from 7% to 10% of males.

These 2 links give you an idea how the icons look to color deficient folks. (For me the lightness/darkness is even less pronounced and the papers appear essentially identical.)

So to make a very clear differentiation, I redid both the color of the paper and the writing on the paper (borrowing from the XEmacs hvif icon).

More recently I started working on the Doom 3 source code here on Haiku and again got irritated by not being able to tell the file type icons apart, so I made up new icons for the different Pe filetypes using a variation on the main Pe application icon. So the little document papers have pseudo-code style writing on them instead of the plain lines of a normal text document.

Yes I know about the iodoom3 project. The problem for me was that the iodoom3 source currently is in much worse shape than the albertz repo. Albertz and others already did a lot of work to add things like FreeBSD support and clean up a lot of the numerous warnings in the code and generally make it a lot nicer to work with. So that is the code I decided to work with.

I then used the FileTypes application to drag and drop replace the icons for the main Pe file types.

Just drag the new icon onto the icon preview in the Icon box and it will replace that icon for the selected file type.

Once I'd done that, I could easily distinguish StyleEdit, Pe, and unassociated file types in Tracker and I was a very happy camper.

And last but not least, here are the actual HVIF Pe icons: Download PeIcons2.zip

Monday, July 23, 2012

24 Hour time in Haiku.

NOTE: In retrospect, this issue turned out to be a good example of how not to interact with a volunteer development community. It was a humbling lesson for myself that I followed up with an apology to the development mailing list, not because I was asked to, but because I felt my behavior warranted it and the rest of the development community deserved it. Read the rest of this article while keeping that in mind. Thanks.

After a question in #haiku today I went on a long quest to figure out why 24 hour time settings weren't immediately present under Time preferences when I right clicked on the clock.

First I posted on a previous ticket about 24 hour time in the Deskbar, where I learned that the option was in fact present in Haiku, but had been removed from the Time preferences and was to be found now only in the Locale settings. When I was pointing out that this was still bad design and should be fixed, I was told to stop hijacking closed tickets and go create my own... so I did.

https://dev.haiku-os.org/ticket/8769

Humorously, and as is sadly my inefficient and overly verbose style, I started out by making a long argument about usability... then actually did an informal survey which ended up completely supporting my previous assertions (basically everyone looks at the clock settings first when they want to change a time related setting)... and only in the end did I place the proverbial cherry on top... pointing out with a screen capture that even BeOS R5 gets it right. The very operating system that Haiku very closely bases its design off.

As the ticket points out at length, Windows also gets it wrong and has for years... but at least 2 of the Linux desktop environments I checked did get it right, placing the option easily accessible under Time & Date preferences.

I also did some more digging after that because I wanted to understand the reasoning behind this option being removed, which led me to this exchange on the source commits mailing list: http://www.freelists.org/post/haiku-commits/haiku-hrev43984-srcappsdeskbar (scroll all the way to the bottom to the "Other related posts:" section that shows the rest of the discussion)

What that discussion doesn't take into account however is that this is not merely a subjective change like whether or not someone likes the AM or PM showing, or if they want some separator other than :, or if they want to show seconds or not.

This is an international standard time keeping format that is a necessity in numerous fields in every country around the world, regardless of what other standard they might use. It is a fundamentally basic option.

The 24-hour clock is commonly used [in countries where 12 hour notation is generally used] only in some specialist areas (military, aviation, navigation, tourism, meteorology, astronomy, computing, logistics, emergency services, hospitals), where the ambiguities of the 12-hour notation are deemed too inconvenient, cumbersome, or outright dangerous, with the military's use being the most famous example.

Treating it like some meaningless fluff tweaking option totally fails to understand the issue at hand.

Now with that hopefully settled (and hopefully fixed soon)... I can get back to my Icon-O-Matic UI refactoring mock-ups. And then back to the Qupzilla Haiku theme to go along with the icon I already did for it (which you can see me editing in Icon-O-Matic in the screenshot in my previous post). Busy busy...

Thursday, July 19, 2012

A journey of a thousand miles begins with a single step.

And so I begin a new blog.

I've been using Haiku a little on and off over the past several years as a fun little side hobby, but recently I've started to feel like it's getting much closer to being able to be a full time desktop. It already is for a number of people.

So I've been using it more often... and in doing so I've noticed lots of little things that I would like to work on, or that I have thoughts about... and some that I just don't like, or would do differently etc.

All of this led me to this blog; a place where I can put together all these ideas in my head for later reference, to point others to to help explain a point I might be trying to make, and so forth.

I will probably only be posting on here once in a great while when I run across some new issue that I feel really deserves some extra attention, either for myself or others.