Registering as a Foreign Corporation in Virginia

As COO of Prime Radiant, I am tasked with several bits of paperwork like making sure our taxes get filed and tending to our status as a corporation. One such task was registering as a Foreign Corporation in the state of Virginia. This is a step along the path of paying a salary to a remote employee working from there.

In the words of Colin:

You’d think you could say, “Hi, VA! We want to start throwing fistfulls of income tax at you. Is ok?”

and they’d be like, “Awesomez! Here iz tax id #. kthxbye!”

But no.

So, I created a checklist for all the steps needed for this process. Virginia, unfortunately, still uses a paper form. Some states (including Oregon, yay!) have web forms for this. But few states provide a checklist for all the information you need to successfully complete any particular form.
Continue reading

My Postgres Performance Checklist

I am asked fairly frequently to give a health assessment of Postgres databases. Below is the process I’ve used and continue to refine.

The list isn’t exhaustive, but it covers the main issues a DBA needs to address.

  1. Run boxinfo.pl on a system
    Fetch the script from http://bucardo.org/wiki/Boxinfo. Run as the postgres user on the system (or a user that has access to the postgres config).
  2. Check network.
    What is the network configuration of the system? What is the network topology between database and application servers? Any errors?
  3. Check hardware.
    How many disks? What is the RAID level? What is the SLA for disk replacement? How many spares? What is the SLA for providing data to the application? Can we meet that with the hardware we have?
  4. Check operating system.
    IO scheduler set to ‘noop’ or ‘deadline’, swappiness set to 0 (http://www.pythian.com/news/1913/what-exactly-is-swappiness/)
  5. Check filesystems.
    Which filesystem is being used? What parameters are used with the filesystem? Typical things: noatime, ‘tune2fs -m 0 /dev/sdXY‘ (get rid of root reserved space on database partition), readahead – set to at least 1MB, 8MB might be better.
  6. Check partitions.
    What are the partition sizes? Are the /, pg_xlog and pgdata directories separated? Are they of sufficient size for production, SLAs, error management, backups?
  7. Check Postgres.
    What is the read/write mix of the application? What is our available memory? What is the anticipated transpactions per second? Where are stats being written (tmpfs)?
  8. Check connection pooler.
    Which connection pooler is being used? Which system is it running on? Where will clients connect from? Which connection style (single statement, single transaction, multi-transaction)?
  9. Backups, disaster recovery, HA
    Big issues. Must be tailored to each situation.

What’s your checklist for analyzing a system?

Checklist for new event organizers: how to schedule and get people there

I was talking with @schmichael today and he brought up that it was insane how many different organizing tools are out there, and there’s no handy list of tools for new event organizers to use!

So, here’s my list of helpful tools if you’re trying to run an ongoing tech event:

  • Put your event on a calendar like Calagator.org: This may be pretty Portland specific, but if there’s an event calendar in your area, be sure to put your event on it! Calagator is great also because it shows you a list of venues – possible places for you to hold events. When you need space, its likely best to ask other event organizers. In Portland, we have a special list for event organizers. Get in touch if you are an event organizer, and not already on it!
  • Create a meeting event on something like Meetup.org: So many groups still use this. Several PostgreSQL groups do, and PDX Lean Startup Circle swears by it. There’s also Upcoming.org, but we don’t seem to use that as much
  • Create a google group! Mailing lists are still the best way to keep in touch with people. All the research on electronic communication says this. Tweeting is not enough!
  • Don’t put tons of interested people on CC or personally-managed Outlook lists. This is spam, and the people on the CC list can never unsubscribe! It’s not just annoying, it is rude.
  • Make a twitter account for your group! Twitter is a great way for the always-connected crowd to stay on top of what you’re up to. Easy to search, and quick to post. Try out Cotweet if you have more than one organizer!
  • Tell other event organizers about your event. They likely know other individuals and groups that would be interested and can use their best judgement in passing an email or tweet along. Don’t spam a bunch of unrelated groups!
  • Make an event announcement 2 weeks, 1 week the day-before and day-of your event.
  • Include the following in your announcement: event name, date, time, speaker name(s), talk title and location including zip code of your event (so people can use maps to find you easily!)

What else do you think an event organizer should have in their checklist?