Yet another crazy Git idea

As you probably know, Git has been getting a lot of attention and momentum lately and all kinds of crazy usages for Git are devised almost daily. Besides the usual source code management, writers are using it to track their books sources(think postscript), digital artists are using it to track their content creation, lots of people are using it for backup purposes and some crazy people are even thinking about creating a filesystem based upon Git’s workflow and paradigms.

I myself am using Git for all kinds of things, be it backup, bookmarks, documents and of course source code(basically everything that is subject to change, versioning, snapshoting and reverting), but in the last couple of months i’ve been using Git to track something special, the /etc/ configuration directory on *NIX systems. I am sysadmin on several boxes, including the one that’s hosting this site and let me tell you, in these couple of months that i’ve been tracking /etc/ directories using Git, it saved my ass a couple of times and lots of productivity, thus resulting more free time to drink beer and do mostly useless stuff. 🙂 It saves your ass when you fuck up, it gives you hassle free opportunities to test out new configurations, you can keep an eye on automated or undesired configuration changes and of course the usual lazy snapshots/backups. This is great, because once you get comfortable with git, all of this comes naturally to you, i didn’t have to read about it or anything like that, the idea just came to my mind and seemed pretty normal and right. Once you get into the git mindset, this becomes conventional thinking.

No wonder that Git’s man page first line is “git – the stupid content tracker”, because indeed it is stupid, stupid in the sense that it doesn’t care about the actual content you are tracking, the content is transparent and not interesting to git. This kind of stupidity is great, it is simplicity and simplicity leaves room for innovation and creativity. Cool.

Tagged with:
 

I just released this nifty little tool, NetcatGUI, a graphical user interface equivalent to the popular netcat. It is a simple tool, supports both connecting and listening on all local interfaces, you can save session logs, have multiple tabs open and it has keyboard shortcuts for most actions so that you can achieve maximum performance(think command line) and it is cross platform(Windows, Linux and Mac OS X, though i didn’t test on the latter since i don’t own a Mac). Here are a couple of screenshots of NetcatGUI in action:

NetcatGUI on Gnome NetcatGUI on KDE NetcatGUI on Windows 7

I wrote it just because i couldn’t find a consistent simple netcat like gui tool that works on all major platforms out of the box and that supports multiple connections(tabs), session log saving and fast navigation/usage using keyboard shortcuts.

It currently supports only tcp connections, though i am planning to expand it to udp too, ssl support and many other features.

NetcatGUI is written in C++ using the Qt Application Development Framework.

I built a static binary of the current version 1.0, NetcatGUI-v1.0-win-portable.zip, that includes the Qt libraries for Windows so that it is easily redistributable. For Linux, the main distribution point will remain the source, though i am considering building a static build or at least a .deb package(yes Debian, my favorite distro) for Linux too. For the first approach, i would have to statically build Qt for Linux too in the first place, since i currently have a Windows static build of Qt, which takes around 6 hours or so and now i just don’t have the time or the CPU resources(:D) at hand to do that, thus i’ll delay that to another time. In the meantime you can find build instruction for Linux/UNIX in the README file. Mac OS X should be really fine too, but since i don’t own one i can’t do much about it here, though if you want to test it and have conclusions, patches or questions feel free to e-mail me.

You can find more about it on the project’s homepage on my main site.

The source code is on my GitHub, clone it, build it, play with it and then mail me with your thoughts or diffs. 🙂

Happy hacking!

Tagged with:
 

NeXTSTEP Release 3 demo by Steve Jobs

Long time no post, i’ve been very busy with work and all kinds of side projects, but i couldn’t resist, this one i have to share:

I just stumbled on this NeXTSTEP 3 demo presented by Steve Jobs himself and i must admit, i was purely shocked about what NeXTSTEP was capable of in 92! YES, 1992, NeXTSTEP 3 was released in September 8, 1992, and this video is demoing the release in advance. Interface Builder(desginer as we call the today), the fluidity, responsiveness and usability of the GUI, the database backends, the image and 3d rendering, not to mention network interoperability, all of these on the humble hardware platforms that were available at that time, i think that was pure magic and way head of its time. Some the features presented there aren’t even available in todays(2011) Operating Systems and Platforms. In 1992 Microsoft was releasing Windows 3.1, Linux was just born a year earlier(still a baby) and Apple had the Macintosh OS. Nothing could compare with NeXTSTEP. Watch it, it’s worth it and inspiring, not to mention the subtle jokes Steve is making at the competition, including Apple. That’s probably the first time i’ve seen Jobs talk against Apple and its products. 🙂

Tagged with: