Category: *BSD

  • My OSX Development Environment

    My work powerbook was out at Apple for a week or so getting a tan, a new motherboard, memory, and processor. While it was out of town I settled in to a Linux development environment focused around Ubuntu Dapper, Emacs 22 + XFT (pretty anti-aliased fonts), and whatever else I needed. Ubuntu (and other apt-based systems) are great for hitting the ground running because you just install whatever you need on the fly only when you need it. I also got pretty in to emacs and all of the stuff that’s there by default with a source build of the development snapshot. My co-worker James helped me get through some of the newbie bumps of my emacs immersion program.

    When the powerbook came back I decided it was time to reboot my development environment, so I started from scratch. Here’s what I installed, in the order that I installed it:

    • Updates. Oh. My. Goodness. I rebooted that thing so many times I started looking for a green start button.
    • Quicksilver (freeware): I use it all the time to get at stuff I need.
    • Transmit (commercial, $30): Worth every penny.
    • Firefox (open source): My browser of choice, though I really dig Safari’s rendering engine.
    • Textmate (commercial, 39 euro): I spend all day in this text editor and it rocks, though I do miss emacs.
    • Then I disabled capslock. I never hit it on purpose, it’s always getting in the way. I should really map a modifier key to it, but I’m not sure which one and I don’t know if I can convince my pinkey to hit it on purpose.
    • Xcode: A man has to have a compiler.
    • Subversion (open source): I used the Metissian installer since it has treated me well in the past, and I often have flashbacks of building subversion pre-1.0 from source.
    • Django (open source): I checked out trunk, .91, and magic-removal from svn.
    • Ellington (commercial, starting at $10-15k): I checked out ellington and other work stuff from our private repository.
    • Firebug: Essential for web development.
    • Python 2.4 (open source): I’m not a big fan of the Python 2.3 that ships with OSX.
    • Python Imaging Library (open source): It’d be really nice if this made its way in to the standard Python distro.
    • ElementTree (open source): I usually use either ElementTree or Sax for parsing XML documents.
    • GNU Wget (open source): It’s what I use to download stuff from the commandline.
    • PostgreSQL (open source): It probably hogs resources to always have this running in the background, but I use it often enough.
    • PostgreSQL startup item from entropy.ch
    • mxDateTime (open source): I’ve never really used it directly, but psycopg does.
    • Psycopg 1.x (open source): Django uses this to talk to Postgres.
    • Colloquy (open source): A really nice IRC client for OSX. I’m also rather fond of Irssi and screen over SSH.
    • Growl (open source): It’s not work critical but I like it.
    • Pearl Crescent Page Saver (freeware): I find it indispensable for taking screenshots of entire web pages.
    • Session Saver for Firefox: I hate looking at 15 different forum threads to find the latest version of this, but I love what it does for me.
    • Adium (open source): Best darned IM client for OSX that talks just about any protocol.

    While I may have missed an app or two, I think that just about covers my OSX development and living environment. I find the Ubuntu desktop useful enough that it’s still humming under my desk at work. The work LCD has both analog and DVI inputs so I’m able to switch between my two-screened powerbook and a one-screened Linux desktop in a pseudo-KVM kind of way.

    I can’t say enough how impressed I was with Dapper, and how productive it kept me. Aside from my emacs learning curve, I felt at home and had the command line and any app that I wanted to install at my disposal.

    I hope that this laundry list is helpful, if nothing else it’ll be a place for me to start the next time I’m looking for a clean slate.

  • Just Browsing: Books that Caught my Eye

    As a break from classwork last night my wife and I headed to the local Borders to do a little book browsing. I didn’t pick anything up, but several titles caught my eye. Here are the books that I would have picked up if money were no issue and there were a few extra hours in each day:

    • Novell Certified Linux Engineer (Novell CLE) Study Guide: I almost went for a cert with the previous SUSE cert system. I also remembered that I’m a Java Certifieid Programmer and would do more Java certs if I had the time. I really wish that there were a J2ME cert book out there that I could study in my downtime.
    • Secure Architectures with OpenBSD: This looked like a meaty book with lots of information on hardening the already paranoid OpenBSD as well as ways to use it without making stupid mistakes.
    • Managing Security with Snort and IDS: There aren’t enough yellow O’Reilly books. Snort has intrigued me for some time and I’d love to read up on it someday.
    • Advanced Unix Programming: I’ve never been a really low-level guy, but I’ve had a newfound respect for plumbing since I’ve been shoving 0’s and 1’s around this semester. This looks like a great reference for low-ish level programming in a Unix (or Unix-like) environment.
    • Knoppix Hacks: I swear, if you leave two Hacks books alone for 20 minutes they’ll mate and have offspring. There really are a lot of things you can do with Knoppix.
    • Essential Mathematics for Games and Interactive Applications : A Programmer’s Guide: This one was showcased a little bit and gets down to the nitty gritty of stuff that you need to do in order to know your stuff. I’m always amazed at how much you need to know about whatever subject you’re coding for.
    • XML Hacks: What did I tell you? There’s another. A bunch of tricks with XML from cool but useless to wow.
    • Python Programming Patterns: I don’t think I’ve seen enterprise-grade patterns using Python before. This looks like a good book for those looking for an excuse to use Python in the workplace.
    • Moleskine by Kikkerland: Some great small notebooks and stuff. They could be great for jotting down notes before they can make their way to my wiki.

    It was great to get out and graze at the bookstore a bit. It has been awhile since I’ve done so. Of course I have a similar number of tech books already on the shelf that I haven’t had a chance to read, but I always want more.

    What books have you looked at lately? I was bummed not to find Mono: A Developer’s Notebook on the shelf, but considering that there were several there last time, I think that’s a good sign.

  • /me is back.

    It’s been a long couple of months and I apologize for the hiatus. It’s a long story for another day, but lets put it this way, I’m back! I’ve moved from Radio Userland to WordPress. I promise that I’ll share my (semi-painful and procrastination-ridden) migration process in due time.

    The .css that is currently driving the site is Dots by Alex King, which I’m currently tweaking. I’ve still got some random bits that I need to find and url rewrite to fit the new engine, but I’ve done my best to keep the old permalinks. If you find something that’s whacky, please drop me a line at matt at the domain ooiio.com. Thanks!

  • OpenBSD: First Impressions

    I took a bit of time this morning to download OpenBSD 3.5, fresh from the oven.  It took me awhile to find a near-ish mirror that had 3.5 on it, but I booted from the tiny CD ISO and away I went.

    Overall the install process was the usual no-frills text-based system that gets the job done but isn’t pretty.  I was pretty happy with it, except for one thing:

    Disk partitioning/disk labeling

    Jeez.  There’s really no excuse for this.  I’ve done my fair share of installing *nix systems.  My first experience involved downloading disksets of Slackware (in a subdirectory called slakware) over a 14.4 modem.  The whole process was new to me, but I got through it.  A, AP, D, K, etc.  I did a whole lot of rawriting.  The text install system was good but not pretty (albeit prettier than the OpenBSD installer).

    It worked.  I moved on.  I’ve since installed pretty much every major version of Red Hat in addition to modern Slackware, Debian, SUSE, Fedora, Mandrake, the BSDs, and more that I can’t even remember.

    I’m not a *nix newb by any stretch of the imagination, yet the OpenBSD disk partition/disk label system totally makes me step back and say “WTF?”

    After I look at the install guide and blink several times, it all comes back to me and I’m able to limp through the partitioning and disk label process.

    Hey guys, it doesn’t have to be this hard.  When I was lost at the partition prompt, I typed ‘?’ and was only able to see about half of the help.  Where was the rest?  Oh, it had already scrolled off the screen.  It’d be great to know that at the size: prompt 150M is an option.  It’s not obvious by any stretch of the imagination.

    All of my complaints aside, the rest of the process went smoothly and made a lot of sense to a veteran Linux user.  OpenBSD managed to find the el-cheapo NIC that is in my test box, DHCP gave me all of my settings, and away I went.  I opted to load the basic OpenBSD packages from CD.  They loaded quickly, and I soon rebooted the system in to OpenBSD.  SSH works great out of the box, and we should all thank the OpenBSD team for the glory that is OpenSSH.

    It’s lean and mean, baby.  It’s not like a default Red Hat install where you’ve got a bajillion processes running and a bajillion ports open.  In fact, it’s the opposite.  There are just enough processes running for the machine to be able to function.  This is the reason that only one root exploit has been found in the default install.

    Since installing 3.5, I’ve used adduser to add a non-root user to the system (remember to add youself to the group wheel if you’d like to su), set up and used X using xf86cfg, and added a few packages using pkg_add.  I’ll probably start playing with the ports collection soon.

    Summary: OpenBSD is a tight little secure distro that gets the job done.  The install process is bare-bones but makes sense except for disk partitioning/labeling.  You don’t get a lot by default, but if you only add what you need, you won’t have to deal with insecure bloat.

    Congrats to the OpenBSD team on a great release!

  • Redundant Firewalls with OpenBSD

    Via Slashdot BSD, Ryan McBride explains the new redundancy features in OpenBSD 3.5.  The article explains why redundant firewalls are good, goes through a real world scenario, and gives examples of how to set up a redundant firewall system using OpenBSD 3.5.  The release of 3.5 is just around the corner.  Also check out the release song for 3.5 and hear why the invented a new protocol from scratch to accomplish redundancy.

  • OpenBSD 3.5

    OpenBSD 3.5 is out. The release song this time is a Monty Python skit with a message. Check it out.

  • Breaking WEP With OpenBSD

    LinuxSecurity has a great little tutorial about how to crack WEP pretty darn quickly to wow your friends and scare the crap out of your coworkers.  The tutorial was run on an old laptop running OpenBSD with a PCMCIA 802.11b card.  I’ve got similar hardware just kicking around.  I might have to have a go at it.  The Airtools package (installed by default) covers pretty much everything you need for sniffing out Wi-Fi, logging wireless packets, and breaking yourself some WEP.

  • FreeBSD 5.2 Released!

    BSDatwork covers the announcement that FreeBSD 5.2 has shipped.  More details are in the release notes.  Go grab a copy at your local mirror.

  • Itty Bitty NetBSD

    RootPrompt points to a BSDnewsletter article on building NetBSD for small and embedded systems.

  • Optimizing FreeBSD

    Newsforge points to two excellent papers on optimizing FreeBSD: Tuning the FreeBSD kernel and Tuning FreeBSD.  I’m skimming them right now and they look quite useful.  I’ll be filing this away for the next time that I take a FreeBSD out of bone stock configuration.

  • OpenBSD 3.4 Released

    OpenBSD 3.4 has been officially released.  Of course I’ve been rocking out to the release song for a few weeks.  I should probably upgrade my Sparc Classic…

  • NetBSD Crossbuildable on AMD64

    In NetBSD news:

    Frank van der Linden announced that the NetBSD/amd64 Port is now completely crossbuildable. Please see his message to the port-amd64 Mailing List for details.

  • Tendra in OpenBSD

    OpenBSD Journal notes that Tendra (an open source BSD-licensed C compiler) is now in the OpenBSD ports tree.

  • Most Reliable Web Hosts Still Run FreeBSD

    Netcraft has released this months list of most reliable web hosting companies.  Here are the top five: USWest, Cable & Wireless, Hypermart, Pair Networks, OLM.  FreeBSD is still king:

    Following June, when the top five hosting company sites with fewest failed requests were all running FreeBSD, FreeBSD is again disproportionately represented at the top of the table with five of the top 10 and seven of the top 13 sites running that operating system, but in other respects the Top 10 again come from all segments of the industry from shared hosting through to high end colocation services.

  • Enterprise FreeBSD

    OSNews:

    After three years in the making the FreeBSD Release 5.0 operating system has been made available to the general public. Released towards the end of January, the OS provides first-time support for Sun’s Sparc64 and Intel’s IA64 platforms. And while some effort has been put into AMD’s Hammer architecture, there is presently no usable support for the 64-bit mode of Hammer, said FreeBSD engineer, Scott Long.” Read the article at LinuxWorld.

  • Matthew Dillon Looses Commit Access to FreeBSD

    OSNews:

    One of the most prolific and active developers of FreeBSD, responsible for a lot of the latest advances in the FreeBSD kernel, lost his right to commit code to the source tree. The FreeBSD Project didn’t give a solid reason on what lead them to this decision. Last year, OSNews interviewed Matt about his (truly immense) work on FreeBSD.

    Ouch.

  • NetBSD 1.6.1 Release Process Has Begun

    From NetBSD.org:

    The NetBSD Project is pleased to announce that NetBSD 1.6.1 has been branched and the release engineering process has begun. NetBSD 1.6.1 is a maintenance (or patch) release for users of NetBSD 1.6, not to be confused with NetBSD-current (which will become the next major release). As a patch release, it is not branched off the head of the CVS source tree, but instead includes all security fixes and patches applied to the 1.6 branch.

    Looks like we’re looking at a RC followed by a release in the near future.

  • FreeBSD Fun Stuff

    Dru Lavigne has some really cool FreeBSD tips and tricks.

  • Downloading FreeBSD 5.0-RELEASE

    I’m downloading FreeBSD 5.0-RELEASE on the off chance that I’ll get some free time to play with it.  I really like the Early Adopter documentation, it makes me feel cool.  The release notes are also fun to read while downloading.

  • NetBSD Gets pThreads!

    NewsForge:

    Jan Schaumann writes “Jason Thorpe has merged the nathanw_sa branch with -current. NetBSD now has a high performance, modern kernel thread implementation using Scheduler Activations in the main source tree. This work was performed by Nathan Williams with contributions by several other developers.”