# in your dev directory.. mkdir grub; cd grub mkdir objconv; cd objconv # "objconv" is required by the grub build. Its home page is http://www.agner.org/optimize wget http://www.agner.org/optimize/objconv.zip unzip objconv.zip unzip source.zip g++ -o objconv -O2 *.cpp sudo cp objconv /usr/local/bin # rehash if you are running csh cd .. # you may want to pick a more recent release; release_1_97 was the latest as of this writing # http://svn.savannah.gnu.org/viewvc/tags/?root=grub&sortby=date#dirlist svn co svn://svn.sv.gnu.org/grub/tags/release_1_97 cd release_1_97 ./autogen.sh ./configure --with-platform=efi --target=x86_64 # edit kern/misc.c and add after line 53: # void *memcpy (void *dest, const void *src, grub_size_t n); # void *memmove (void *dest, const void *src, grub_size_t n); # edit symlist.c and add after line 19: # #include <string .h> make -j `hwprefs cpu_count` sudo make install # This all results in: # /usr/local/bin/x86_64-grub-editenv # /usr/local/bin/x86_64-grub-fstest # /usr/local/bin/x86_64-grub-mkelfimage # /usr/local/bin/x86_64-grub-mkfont # /usr/local/bin/x86_64-grub-mkimage
The above is my command-line command of the day.
sudo port install git-core +doc +gitweb +svn +bash_completion
I’ve been doing some research over the weekend, reading up on all the current source control systems
(for which, by the way, there is no consistent acronym. The closest I can find now is DVCS – Distributed Version Control System)
and have come to the conclusion that: SVK, you will love git. Because git does what SVK does natively. And SVK is known to be like a castle on shifting sand in terms of stability. Git is rock-solid. For the uninitiated (which would be most of you), SVK lets you check out code from a Subversion (svn) repository, and then do local-only checkins and checkouts. Then once you are happy with your changes (perhaps after 20 revisions, all tracked locally by SVK), you can “push” your changes to the main svn repo. In the same way, git lets you “pull” changes from a central repo, do many modifcations, checking them in to git each time, and do a final “push” back to the central repo. Indeed, the concepts of “central” and “non-central” repos is not embedded into git. The central repo is only central by convention. All repos are equally “central”.
The ActiveCollab project has gone closed source,
so the community took the last open source version and started a new project to take it forward:
This is pretty common in the open source world.
The creators of a project decide they want to close the source and go the proprietary route, and the community takes up the open code and continues on.
it’s called GraceNote now,
and like open source projects going closed, a free replacement sprang up:
an article about the upcoming DirectX 10 specification.
Before the arrival of DirectX, developers had to program their software titles to take advantage of features found in each individual hardware component. With the wealth of devices on the market, spanning from input devices to graphics and sound cards, supporting every hardware device on the market was a tedious, time-consuming process.
Microsoftâ€™s DirectX application programming interface (API) was first introduced in 1995. DirectX was designed to make life easier for software developers by providing a standard platform developers could use to easily make multimedia software and game programming for the Windows Platform.
The only fatual part of that is the first sentence about DicrectX coming out in 1995.
Here is my rephrasing.
Microsoftâ€™s DirectX application programming interface (API) was first introduced in 1995. DirectX was designed to lure software developers into using a proprietary, Microsoft-owned API, providing vendor lock-in and reduced availability of games on other platforms.Before the arrival of DirectX, developers were using OpenGL, a cross-platform, standardized 3D graphics library that allowed developers to take advantage of 3D graphics without requiring deep knowledge of that hardware.
I am asked every now and again what I use to make the panoarmas I occasionally post to Flickr.
Well, until recently I used some OEM software – Canon PhotoStitch.
Then my brother-in-law Tony told me that Photoshop could do it.
I was flabbergasted because he was right!
So I used Photoshop to do this picture, which is Tony’s new cottage, appropriately enough.
I haven’t used them yet, but thought I would post about them in case anyone else was interested.
enblend. I (or maybe Iain if he beats me to it) will post more when I’ve tried them out.
Or maybe Jeff will give it a shot.
For ages, Unix systems have booted by simply running an app called “init”, which in turn read shell scripts from
This is why on almost all Unix systems, every process would have as its ancestor process id 1, “init”.
it first showed up in last year’s release of Mac OS X 10.4 Tiger.
It replaces not only
init, but also
inet) So, now Ubuntu has released something called
which is an even more advanced startup mechanism.
Cribbing some text from the upstart page, here are some of the differences between upstart and launchd:
You can read more in the article about how if Apple had open sourced launchd sooner, Ubuntu would have simply upgraded launchd. I’m hoping Apple will move to upstart. We shall see.
Much of the goal of both systems appears initially to be the same; they both start jobs based on system events, however the launchd system severly limits the events to only the following:
Therefore it does not actually allow us to directly solve the problems we currently have; we couldn’t mount filesystems once the “filesystem checked” event has been recived, we couldn’t check filesystems when the block device is added and we certainly couldn’t start daemons once the complete filesystem (as described by
- system startup,
- file modified or placed in queue directory,
- particular time (cron replacement),
- connection on a particular port (inetd replacement).
/etc/fstab) is available and writable. The launchd model expects the job to “sit and wait” if it is unable to start, rather than provide a mechanism for the job to only be started when it doesn’t need to wait. Jobs that need
/usrto be mounted would need to spin in a loop waiting for
/usrto be available before continuing (or use a file in a tmpfs to indicate it’s available, and use that modification as the event).
They’re falling out of the sky!
Just a brain dump of some useful Ubuntu software I ran across while browsing recently.
[requires universe and multiverse repositories]
Windows TrueType fonts
IEs 4 Linux
Below is the movie I was showing at gaming Friday night.
It shows a Mac running OS X, Windows XP and Red Hat Linux.
an awesome workspace-switching program for the Mac (finally!).
Actually, I just installed it after typing the first 5 words of this paragraph, and I am very impressed.
highly recommended. The OS stuff, however, is being done with
a $40 app similar in some ways to VMWare. Note that there are performance drawbacks to this software, in that you wouldn’t be able to run 3D games at full speed.
Everything else is pretty much full speed though – MS Office (Mac or Windows version), databases, Excel, etc.
Anything compute-intensive (as opposed to video-intensive) will fly at full speed. Note also that this consumes other hardware resources for each OS too, like CPU and RAM. I’m looking forward to getting a quad-core Mac Pro (or whatever awful name they give the new Power Mac) later this year!
(provided you have enough CPUs, of course).Techworld notes
that the Russian-based company
will have details concerning their virtualization support on Macs later this week. Hmm, running Linux at the same time would have appeal for me.
I would run Windows mainly for games, and would thus want as many hardware resources available as possible.