Recently in personal Category

SouthEastLinuxFest 2012 After Action Report

| No Comments | No TrackBacks

This last weekend I took the 3.75hr trip up to Charlotte, NC for the southeastlinuxfest. This was my first trip to SELF and I was very impressed by the number of good talks and presentations.

Friday

On Friday, I arrived a little after the conference got underway and spent the morning in the “hallway track”, talking with and meeting a good number of people.

After a rather hasty lunch with herlo. We hurried back to the conference where I helped him give his presentation on the GoOSeProject. That presentation went VERY well, we ended up passing out all 10 of the GoOSe cds we had.

Sometime on Friday I also went to a presentation on OpenShift. However, I forgot to write down the name of the presenter so I don’t know who gave it. My schedule says it was likely Russel Bryant but I’m not sure.

I then skipped out on the afternoon sessions to go to a business lunch with some associates. The evening’s after-party, however, was lots of fun. I got to know a lot of folks: zonker, SUEHLE, Zach, Brian (the two aussies, didn’t get their addresses/emails), and others.. A lot of fun was had, good music, cards and discussion.

Saturday

Demoggification

The real meat of the conference for me came on Saturday. After the keynote which I arrived late to. I went to the “Demoggification” talk by John Rose. This talk was awesome. It was about a lot more than just removing the “useless use of cat”. I got the following tips out of it:

  • Use Here STRINGS

    Herestrings are like Heredocs but lighter. Instead of doing:

    echo "foo" | some_command
    

    try this:

    some_command <<< "foo"
    
  • The /dev/tcp and /dev/udp files in Bash.

    I’ve used these before, they’re a great lightweight way of testing connectivity. I didn’t get a demo written down so I’ll research and do a blog post on them later.

  • Brace expansion tricks

    The common use is just to spit out generated strings.

    mkdir -p foo/{bar,baz,qux}
    

    However, brace expansion can do much more (like replace seq)

    echo file{01..10}
    

    It can also do both at once

    echo {foo,bar,baz}{01..10} # < no space between
    
  • Regular expression matching =~

    Try this instead of a case statement if you only have one fork of your condition.

    if [[ $foo =~ (FOO|BAR|BAZ} ]]
    then
      echo "found the string"
    else
      echo "nothing there"
    fi
    
  • You can also do pattern matching on your variables.

    $ FILENAME=/usr/share/doc/tmux-1.6/examples/screen-keys.conf
    $ echo ${FILENAME%/*}
    /usr/share/doc/tmux-1.6/examples
    $ echo ${FILENAME##*/}
    screen-keys.conf
    

I had seen a few of these tricks earlier when I attended a talk by Michael Potter called Seatbelts and Airbags for BASH.

How to Quit Your Job (or How to Fire Your Boss)

My favorite presentation was the Saturday talk by Ryan C Gordon on how to quit your job. As I was recently let go from my full-time position and have been working for three months as a contractor/consultant this one hit home a lot of the points I’ve heard elsewhere. It also did a lot for giving me the “PEP TALK” I have needed in recent weeks. I kept three whole pages of notes. Here is what he talked about in brain/notebook dump format:

  • Pluses to being your own boss

    • more money (potential)

    You are not tied to just a single line of revenue, your potential for growth/income is no longer limited by one budget.

    You’re not going to be stuck on a single project for long. There is more diversity.

  • Minuses to being your own boss

    • less money

    you are going to start out making less money, so jumping into consulting without a safety net (something I was lucky enough to have) is almost always painful.

    • no medical insurance, no 401k, no safety net

    • more Lumberghs

    You no longer have to deal with one Lumbergh, but many Lumberghs. Luckily you don’t have to deal with them for the long term.

    • more hustle

    Being your own boss is a LOT of work. If you don’t have hustle you’ll starve.

  • Find a vertical market

    If you find your niche in a vertical market, you then need to stand out from the crowd. Which isn’t too hard, you only need to “Be better than the dumbasses.”.

    Ideally you would want a market with a lot of money and not many people in it.

  • “Your product is named ‘You’”

    You are your product. Sell yourself. Work hard at selling yourself. Don’t sell yourself short.

  • Milk your contacts

    Finding work is the hardest part. Milk your contacts for as much as you can.

  • Do Open Source

    A github page (with good content) is an excellent resume.

  • Always build your resume

    Your resume should always be easily found. Mine is http://blog.friocorte.com/resume/

  • Always be interviewing

    This helps your people skills. It also helps you sell yourself properly.

  • Your online persona should be awesome

    Don’t post pictures of yourself puking in your twitter/facebook account. Always be aware of what your online persona looks like.

  • Hustle, do, ship

    It’s of tantamount importance that you actually SHIP aka deliver a product. If you never deliver you will never be invited back as a consultant.

    I always like the way Dave Ramsey puts it

    Get up.
    Leave the cave.
    Kill something.
    Drag it home.
    
  • Always be learning

    Ryan talked about how he was playing around with Lua once and blogged about it. That blog post led to a contact being made because of his “Lua knowledge”. If you play with stuff, learn stuff and blog about it you will have a working resume.

  • Keep records

    Not only of your timesheets for customers, but of what you’ve worked on. Again back to the living resume.

  • Married == uphill struggle

    Your relationships will have a harder time when you are contracting as the stress can cause issues.

    It is paramount to find a good balance

  • Budget Carefully

    Not just your money but your time.

  • Ask for more than the job is worth

    Always negotiate. Always go up. Double your rate.

    No one will walk away from a number without saying something like “hey that’s too much”.

    Have a minimum price, if the customer can’t match it, walk away.

  • Schedule well

    Over estimate times two.

    DON’T MISS DEADLINES

  • Fire customers if they suck

    “The customer is always right” isn’t always right. Fire the hard ones.

    I first heard this advice from the guy who wrote “The no asshole rule”.

    Have a contract breaking clause.

  • Never say you are running out of money

    Always present yourself to customers as if you are on good footing

    Ryan mentioned the talk F#@k you, Pay me!. Good points, but LANGUAGE WARNING

  • Hire a lawyer

    You should talk to a lawyer at least once, and have a relationship with one for when you get sued.

  • Hire an accountant

    Not only for tax purposes, but for investing your money when you start to do well. Remember you don’t have a pension or 401k anymore.

  • Business type

    Sole Proprietorship, Default and easiest. Most risk.

    LLC, little harder, more protection. Hard to sell (the business).

    C or S Corporation, most difficult, lots of tax considerations.

  • Self Esteem

    Work on your self esteem, you need it to sell yourself.

  • Contracts

    If it’s not in writing, it didn’t happen. No verbal contracts.

    At a minimum, follow up with an email to any phone conversation.

  • Get health insurance

    Without insurance, one trip to the ER can bankrupt you.

  • Take care of yourself

    Buy a nice chair, nice monitor and a desk which sits at the right height.

  • Don’t rent space

    If you don’t have a space in your home, don’t rent/lease space. Find a coffee shop. Many multi-million dollar companies have been founded/sold without ever buying or leasing office space (more so in recent years).

  • Stick it out

    Don’t give up. Working for yourself is hard work and takes time to build a base. Hard work most often will turn around down times. Get out and pound the pavement.

    However, you should have an escape plan/failsafe. Start with a ‘failure condition’ in mind.

  • Have balance

    You need to balance your work, play, sleep and love. When any of these don’t get the attention they deserve you’ll end up burnt out rather quickly.

This morning I got bit by what appears to be a nasty grub/anaconda bug. I was upgrading my Fedora 16 laptop to Fedora 17 and ran into some issues.

This is the best I can tell what happened:

I installed Fedora 15 using the following partition scheme:

1G /boot partition 122G windows vista partition (NTFS) 50G Fat16 partition 526G lvm partition * swap, /, /home and /srv are each LVs on this VG

upgraded to Fedora 16 using the DVD.

upgraded to Fedora 17 using the DVD, anaconda had an error message stating there were "bootloader problems" and said there would be issues rebooting.

rebooted and got the grub rescue prompt.

rebooted again into rescue mode, using the fedora 17 DVD, and tried to do 'grub2-install /dev/sda' which is where I got the above error:

    Path `/boot/grub2` is not readable by GRUB on boot. Installation is
    impossible. Aborting.

After some googling I found this bug report but there didn't seem to be any resolution.

So I banged my head against this problem and stumbled into a work-around. (this should be done in a chrooted environment inside the rescue method of the Fedora DVD)

  • backup the /boot partition

    mkdir /boot-backup
    rsync -rav /boot/. /boot-backup/
    
  • unmount and zero out the boot partition

    umount /boot
    dd if=/dev/zero of=/dev/sda1 bs=1024k
    
  • create a new ext4 filesystem

    mkfs -t ext4 /dev/sda1
    mount /dev/sda1 /boot
    
  • re-run grub2-install

    grub2-install /dev/sda
    
  • copy the files out of the new /boot into /boot-backup

    rsync -rav /boot/. /boot-backup/.
    
  • copy the backed up files BACK into place

    rsync -rav /boot-backup/. /boot/.
    
  • re-generate the grub2 config

    grub2-mkconfig > /boot/grub/grub.cfg
    

at that point you should be able to exit the rescue mode, and reboot and things should be back to normal.

If not ping the bug and have them fix it.

Also, it's nigh on impossible to replicate by just installing Fedora 16 then trying to upgrade. It appears to be an issue with the Fedora 15 created partition scheme.

Introducing the GoOSe Project

| No Comments | No TrackBacks

Introducing the GoOSe Project

Recently I blogged about how some friends and I were talking about what it would take to rebuild an enterprise Linux project. We started researching what we would need and we got started. The result? The GoOSe Project.

What is the GoOSe project? It is a community rebuild of an enterprise Linux distribution based in the USA. But it is also more than that. The GoOSe project is more importantly a practice in building an Open Source community. We wanted to practice what we preach about how best to build a community. It just so happens that the product that this practice produces is a Linux distro.

Why "GoOSe"?

The name of the project was just a bit of riffing done on IRC(look around 20:03.38). We have quite a bit done as far as getting things rebuilt and have some ideas as to how we want to run this community. We have an ethos. A Koji instance running our builds. And we are just about done with the Buildroot needed to make a fully functional system bootstrap.

The GoOSe project is "in progress" to getting the first build out. We are currently just about done with the first step which is to compile all the upstream packages into a buildroot we can use to compile our packages. A more detailed status update will be blogged about later.

Why another rebuild project?

As I mentioned above, community is the hard part. And although there are various other projects similar to ours, we think we can fill a certain niche.

The centOS project for example is probably the biggest rebuild project out there and it caters to those who are looking for a 100% drop-in replacement for the upstream Linux distribution. Scientific Linux is built as a base for supporting computing clusters and experiments.

The GoOSe project is not out to replace or out-do any of these projects. We are here to build a community of passionate folks to build the best community-based enterprise operating system around. We will be sharing everything that we learn, everything we modify, and everything we build to help use create this distribution. We all benefit from an improved community structure. We also benefit from having more than one project meeting different goals/niches. The things we learn also help all the other projects out there to have a well functioning system themselves.

GoOSe Goals

Our goal with building the GoOSe project is to have a cool community built around an easily constructed set of enterprise-grade software. The technical pieces of the equation taking the hard part out of building an enterprise operating system. Herlo said it best when he said this with regard to the vision of the project:

"[I see the GoOSe project as a] group of friends hanging out, building cool things with an enterprise-ready technology. Not exclusive to building the technology itself."

Come help us

We're already working away on these goals. You can come and help us. Here are some resources to get you started:

There is still plenty to be done. Come join us. It'll be fun I promise.

Nagios Config Template -- Goozbach rewind

| No Comments | No TrackBacks
Last week I got an email out of the blue.

it said:

While trying to organize a complete mess of an nagios install (half borked
by a nagiosql install) I ran across a post where you offered up an example
of your nagios configs. The link is now password protected, I know the
post is over 2 years old and things change....but I was wondering if you
still had that info available?

I did poke around your github but didn't find any nagios info.

Thanks!
This email was in reference to a comment I made to this blog post by the Standalone Sysadmin.

Well recently I re-did my webserver and the link mentioned in that comment has disappeared. So I took the time to drop the previously mentioned config template into a github repository.

I should mention that I've not done any Nagios work in a few years now, and moreover I only dumped the contents of the tarball mentioned in the original comment into the github repo without any changes or updates. So I don't know how well this would work with more recent Nagios configs.

If you find it useful, drop me a line.

--
Goozbach

Broken Post

| No Comments | No TrackBacks

I just realized that my last post got eaten by the feed.

If you didn't see the sample files, please visit the post directly instead of reading it via a feed reader.

-- goozbach

Bootstrapping a RHEL Clone

| 1 Comment | No TrackBacks

There was some interesting action on the CentOS mailing list recently which stemmed from a tweet posted by Dag Wieers.

The question posited is: "How does one rebuild RHEL in a timely, open and collaborative way?"

Well, a few of my UTOSC friends and I did a little brainstorming and came up with what we think a good bootstrapping infrastructure for just such a project would entail:

_Dot_files

Dot File Management

I have always wanted a simple way of managing my bash file settings (.bashrc, .bash_profile and the like). I had built a system much like this one, but it didn't work very well. So I created a ground-up rewrite.

You can find the latest code for _Dot_Files on the project's github page.

Enjoy

Utah Open Source Conference

| No TrackBacks

I'll be presenting at the Utah Open Source Conference (UTOSC2009).

My two presentations are on the Cobbler project.

I'll be giving a presentation entitled "Introduction to Cobbler" which deals with the installation, configuration, and initial use of the Cobbler system.

My second presentation is "Cobbler Power Tools" and will teach you how to make your Cobbler server that much more useful and powerful.

Come out and enjoy the conference, there will be many different presentations and something for the whole family on Saturday. More details can be found at the UTOSC home page.

Liveblogging ALF -- Charitable Giving and OSS

| No TrackBacks

The second conference presentation I attended was "Open source and Charitable Giving". Which was a married couple talking about a project called Qimo which is a Linux distro for kids, which they use for the computers they give away from their charity.

I hadn't thought a lot about it before but working on Open Source Software/Tech segues well into the charitable realm.

Liveblogging ALF

| 1 TrackBack

Today I'm going to be liveblogging from the Atlanta Linux Fest

The first presentation I attended was "Her PR Problem/Tooting the Horns of Women in Open Source" by Rikki Kite. Even though her presentation was about women in Open Source, there were many things she covered on marketing yourself.

She talked about overcoming "Imposter Syndrome" which is simply not being able to internalize your accomplishments. Another topic was the a good way to self promote, she called it:

Self promote without self promoting aka Tooting someone else's horn.

Also she talked about something called the "Daily Affirmations for Women in Open Source" by someone named Tiffany B Brown, which are:

  • I know my shit
  • Stop Trippin'
  • Pretend I know
  • I will be a braggart

The only item above I HAD a problem with was the one "Pretend I know" I thought that pretending that you know could cause problems, but after asking Rikki about it she said it was more of a confidence thing instead of a knowledge thing.

More to come as I get to other sessions.