As a long time SVN user it is the version control system I know the best (though I am not a fan of any version control
implementations I've used so far, SVN is just the one I've used the most). I've never setup my own repository before and
looked into doing so today for various code of my own that I develop locally. All in all it is a simple process, but there are
a few gotchya's that you have to look out for.
Well in my first blog post since January 1st, I will be discussing and sumarizing what I learnt over the past few days relating to the GNU Autotools, specifically autoconf and automake. Having been a C++ fan since I learned it (roughly nine years ago, it was my first language), I never got around to learning the GNU build system (seeing as there is not much use in web development). Regardless, I set out to learn it as I need to incorporate it into my new currently-top-secret project. Note, I am writing this as I learn it and am no expert yet.
Theres alot of clutter out there when it comes to these, but to put it simply it all comes down to two files:
Lets work on making the world a better place this year
In my spare time over the last few months, I’ve been working on a project which I dub ‘Snap’. Snap is my attempt at replicating the functionality of ‘Windows System Restore’ on Linux. As the name indicates, Windows System Restore backs up all the important files, libraries, and registry entries on Windows for future restoration. To accomplish this in Linux, the underlying package management system is used. Snap stores which packages have been installed on the machine, and any files not tracked by the package management system or have been modified since installation.
Included is the Snap library, ‘snaptool’ the console frontend, and ‘gsnap’ the gnome gui. Currently only the Yum Package Management system is supported, but Snap supports a simple plugin interface, allowing easy support to work with any distro.
I hope people try it out and give me good feedback (patches are even better :-D), and I look to maintain it as much as I can in the future. I do have other things to work on (namely my master’s thesis which I have been pushing off till now) and since Snap already does what I need it to do (save my packages when upgrading between Fedora versions), I’m not sure how many new features I will add. But thats the beauty of open source, and I’m looking forward to anything anyone contributes
I am in the process of adding a gnome gui interface to my soon-to-be released project. Incorporating Python, GTK, and Glade, I’ve run into several quirky issues relating to running threads and sharing access to GTK widgets. Often I will see a worker thread hanging until the window is closed, at which point it resumes operation, or a more serious error:
Gtk-ERROR **: file gtktextlayout.c: line 1990 (gtk_text_layout_get_line_display): should not be reached
which indicates an illegal cross-thread boundary violation.
After much searching, I found this site which fills in the story concerning pyGTK and threading very nicely.
My current side project (to be announced/released soon) involves using the Yum Python API. Unfortunately I have yet to find a good tutorial or guide, though there are many apps which use the Yum API such as yumex, so I figure I'd share some knowledge about my findings. Note that I am using Yum version 3.2.7 and everything presented here is derived from my studying of the code.
As a fan of Vim and console development and a staunchent opponent of IDEs (not that they don't have their merrits, they are simply too complicated and too prone to breaking when some miniscule setting is changed IMO), I attempted to figure out how to debug Tomcat using the command line java debugger yesterday. To do so, you will need todo a few things; mainly enable debugging support in the server, locate the source code corresponding to the servlet you will be debugging, and familiarize yourself with the JDB tool.
(Standard Disclamer: I am not responsible for any changes you do to your system and their results/outcomes, follow this guide at your own risk!)
I have successfully gotten everything working on this laptop though things can be very finicky at times, Most hardware should work out of the box with the exception of the graphics chip, which you need to install the proprietary nvidia driver for, and the Broadcom wifi chip which takes an arm and a leg to setup right.
(The Dell Latitude Fedora 7 install guide is coming in the near future, I promise)
I'm in the midst of a major infrastructure overhaul, driven by my desire to have simple/robust/always availible hosts. I'm virtualizing all my development environments so that I can hose them at will. The VMWare workstation license that I got from school expired, so I downloaded and installed the free VMWare Server.
Unfortunately there is a problem with the linux ata_piix driver with the latest VMWare Server 1.0.4. Whenever I create the virtual machine and goto install Fedora 7 from the DVD, the anaconda starts up, but hangs indefinately on
"Loading SCSI Driver Loading ata_piix".
Pressing Alt-F4 to open the terminal reveals that it is probing all the possible SCSI devices from SDA to SDZZ (presumably) and since each missing device takes 45 seconds to time out, this is unacceptable. The solution (found here) is to open the vmx file in the virtual machine directory and add the following line:
'scsi0.virtualDev = "lsilogic"'
And then proceed with the installation. You will get a message saying the virtual device was configured for bug logic, prompting you to switch it to lsilogic. Simply click yes (the warning about installed machines not working can be ignored as you haven't installed anything yet) and installation should occur flawlessly.
Stay tuned as my complete infrastructure overhall overview is coming with instruction on competing the more difficult tasks
and no update (shows you how much I'm into blogging :-p). In addition I'm only adding this blurb because I'm about to add a new howto detailing instructions on installing Fedora 7 on the Dell Latitude D830.
But in any case, all in well in the life of Mohammed Morsi, I finished up my internship in New York City (I hope to be back soon, as it is truly an amazing city) and am working full time for Red Hat (the company I interned for (twice)). I'm in Raleigh, NC temporarily (where my company's headquarters is located) so I can work on site with my team, but come early November I can essentially work out of whereever I want. I'm going back to Syracuse (hopefully for only a few months) so that I can finish my masters thesis and get my graduate degree. After that as mentioned I may move back to New York city, out to California to visit my good friend Dave Rappaport, to Boston where my company's main technical office is located (alot of Kernel and Gnome engineers work out of that one), or perhaps to one of the many international offices Red Hat has around the world (I like to travel, and I love that I have the choice).
As for my actual job, I am working on the backend to RHX (http://rhx.redhat.com) and on various other tasks my company is having me do. I'm not sure how much I can talk about the actual code I'm writing, but it is very easy/straight forward for the most part and I was able to pick it up and start being productive from week one. I do have a sweet new laptop (the Dell Latitude mentioned before) and will post my full review and installation guide by the end of the day (hopefully :-/). Take it easy!