Multi Core CPU Performance in GoLang

I’ve been playing around with Google’s programming language known simply as Go lately, and have learned quite a bit about concurrency, parallelism, and writing code to effectively use multiple CPU cores in the process.

An Overview of Go

Pictured: Not A Serial Killer

If you are used to programming at the systems level, Go is effectively a replacement for C, but also has higher level functionality.

  • It is strongly typed
  • It can be compiled
  • It has its own unit testing framwork
  • It has its own benchmarking framework
  • Doesn’t support classes, but supports structures and attaching functions to variables instantiated from those structures
  • Doesn’t expose threads, but instead uses a construct called “channels” for communication between different parts of a Go program. More on channels shortly.
Continue reading “Multi Core CPU Performance in GoLang”

Running Dorsai Thing 2013: Lessons Learned

The Liberty Bell

Each year, The Dorsai Irregulars have their own annual convention known as “Dorsai Thing”. It is a weekend long event, held in a different city each year, where we all gather, socialize, and hold our semi-annual business meeting. This year, it was held in Phildelphia, and it fell on my shoulders to run the event, dubbed “Liberty Thing” While I’ve worked at plenty of conventions before, this was the first one where I was effectively the Con Chair. This was an entirely new thing for me, and I wanted to write a blog post about some of the things I learned during the experience.

Continue reading “Running Dorsai Thing 2013: Lessons Learned”

Setting up IPv6 on Linode with nginx

So Linode has gotten onto the IPv6 bandwagon. In addition to each Linode getting an IPv6 address, they will also gladly assign an entire /64 netblock to your specific node on request. That gives you all sorts of flexibility for bringing up IPv6 services. And this blog post is going to be all about how to make use of multiple IPv6 addresses.

As of this writing, everything I mention will work on a Linode running Ubuntu 12.04 LTS and Nginx 1.1. There’s no reason that these instructions shouldn’t work on other distros or versions of Ubuntu with some modifications.

Continue reading “Setting up IPv6 on Linode with nginx”

Scaling Anthrocon’s Website to Handle 1,400 Simultaneous Connections

The Challenge

When hotel reservations open, that is the single busiest time of the year for Anthrocon’s webserver. In fact, it even caused us performance problems last year. That was not so good.

So this year, I decided to try something different. Instead of leaving the regular website up and running, which involves using Drupal, I instead decided to replace the entire page with a relatively static “countdown” page, which displayed a countdown timer and automatically started displaying the hotel link at 11 AM on the opening day.

First, some stats for the Anthrocon website:

  • Peak bandwidth: 1.6 Megabits/sec
  • Peak connections: 1,400 concurrent connections

And now some status for Passkey, who handled most of the traffic:

  • Peak bandwidth: 190 Megabits/sec
  • Peak connections: 4,000 concurrent connections
Continue reading “Scaling Anthrocon’s Website to Handle 1,400 Simultaneous Connections”

Final Wishes, or If I get hit by a beer truck

…please read this web page.

This page is here so that if something happens leaving me in a state where I am no longer able to run my websites, people will know what to do.

While I have no plans of buying a farm anytime soon, sometimes accidents and sudden illness happen. That also means that if I am in a persistent coma of some kind, or have a terminal condition, please don’t keep me on life support for months or resuscitate me–just let me pass on peacefully.

Designation of Executor

I designate Samuel C. Conway, PhD as my virtual executor to organize such things. In the event that Sam is not available, then I designate Tom Geller as virtual executor. They’ll know what to do, or know people who will.

My Websites

This beer truck from Denmark could be the very thing that takes me out. Who knows?

All my websites – Including (but not limited to) this one, IsSeptaFucked.com, and SeptaStats.com, Sam (or someone he designates) should be the new webmaster/site admin. Please keep the websites operational where possible. Where appropriate, pages should contain a note about what happened. Please update this page with a link as well.

Social Media

I would prefer that my social media be kept in situ. If you don’t speak Latin, that means “leave it the hell alone!” My Facebook security settings allow anyone to post on my wall, and having had a few of my own friends pass away in recent years, it was really nice reading comments and notes left by their friends and loved ones. I’d love if my friends did the same for me on my Facebook wall.

Source Code

Anything that is publicly available on my GitHub account should already be available under an open source license. If it’s not, please assign the copyright to the Free Software Foundation. They seem pretty chill about letting people use their code.

Funeral, Grave, and Memorial Service

My family has a series of plots purchased in a cemetery, I will leave it to them to bury me there. I expect something about cheetahs written on my tombstone. I mean it! While friends are welcome to come to my funeral, I’d rather there be a Celebration of Life held weeks/months after my passing so that friends can travel from further distances to attend. A hotel would be an ideal spot for this. Having alcohol on hand for guests would be a really good idea. I expect my friends to laugh, cry, and damage their livers while talking shit about me.

For anything else, contact Sam or Tom.

Oh, and I’ll miss all of you. Even the cheetahs.

Updates:

  • 2 May 2019: Changed URI from /beertruck to /final-wishes. Added headings and blurb about social media.
  • 15 Dec 2018: Moved the website over to WordPress, and I’m still around!
  • 1 Apr 2017: I’m not dead yet! (and that’s no joke)

(Based on Aaron Swartz’s page)

I hate pennies. I *really* hate pennies. What to do with them all?

I really hate pennies. Let me count the reasons:

Here, look at my pile of spare change that I’ve collected from the last few years:

I really hate pennies

Just look at it. Half of that pile is pennies! The pile of pennies is worth what, $5? $10? The pile of nickels and dimes on the other side is probably 7 or 8 times that. I seriously think that if I take that many pennies into a bank to deposit that the security guards will shoot me just on general principle. Can’t say I’d blame them.

Continue reading “I hate pennies. I *really* hate pennies. What to do with them all?”

Dial 1-800-GET-ZERG!

We, the Zerg Swarm, believe that our special process, known as “infestation”, can improve your life in numerous ways! Being a part of a group like the Zerg Swarm means that you’re never lonely, and there will always be someone there for you. Your body will become more powerful than you have ever dreamed before; with our patented improvement system, you will be able to lift more, run faster, and eat nearly anything! Many sentient life-forms consider the Zerg look to be attractive:

“He just wants hugs!”

Wow, that’s gorgeous“, says Tserisa, a dragon who later opted for infestation. “Kinda handsome“, says a clockwork gryphon.

Usually, when a being opts for “infestation”, it is a permanent process. But we are prepared to offer, for a short time only, a free 30-day trial infestation! We will send a personal representative to guide you through the metamorphosis, and in adjusting to your new abilities. If at any time you are unsatisfied with the trial, the representative will either correct it or reverse the change.

If you wish to keep the infestation, we accept all major credit cards, Terran credits, Minerals, even masses of glucose! We will make all steps to make the Zerg work out for you.

You will be covered in a toenail-to-eyebrow warranty for the first three years. After market parts, unless obtained from a registered Zerg dealer, will not be covered.

Side-effects: May cause extra limbs, chitin, altered color, and odd looks from others.

[Shamelessly reproduced from http://home.att.net/~sparhawk_YMBAW/Textual/Get-Zerg.html]

Conventions I’ve Staffed

Here is a list of conventions I’ve staffed over the years, and positions held (the full spreadsheet is over here):

  • Anime Central
    • Security in 2009 (through Acen IRT)
  • Anthrocon
    • Communications: 2018-present
    • Technology Director and Board of Directors: 2016-2017
    • Operations Director and Board of Directors: 2004-2016
    • Sysadmin and Webmaster: 2007-present
    • Operations Staff: 2002 and 2003
    • Internet Room Staff: 2000 and 2001
  • Anthro New England
    • Commerce Operations: 2017
    • GoH Liaison: 2018 to present
  • BronyCon
    • VIP Relations (VIPR): 2013 and 2014 (VIP Handler)
  • Camp Feral
    • Staff member and workshop instructor in 2001
    • Past webmaster (2001 or so)
  • Confluence
    • Security in 2011 and 2012
      Security in 2007, 2008, and 2009
  • Dorsai Thing
  • Eurofurence
  • FurFright
    • Security in 2007, 2008, 2009, 2010, 2011, 2012, and 2013
    • Assistant Operations Director in 2006
  • Furry Connection North
    • Webmaster and sysadmin in 2009, 2010, 2011, 2012, and 2013
    • Security in 2009, 2011, 2012, and 2013
    • Security in 2008
  • Furry Migration
    • Operations in 2017
    • Registration in 2018
  • MagFest
    • Security in 2007, 2008, 2009, and 2015
  • MarCon
    • Art Show Security in 2007 and 2008
  • Midwest FurFest
    • VIP Relations: 2016 to present
    • Operations staff from 2011 through 2014
    • Artshow staff in 2008, 2009, and 2010
    • Artshow staff in 2003

How I Decide What Cons to Work

Often this is done on the basis of referrals–if I think a con is interesting/cool, there’s a chance I’ll know someone who is on staff and inquire through them what the staff experience is like. If I receive positive answers, I’ll inquire about joining staff.

If it’s a convention where I don’t know any staff, I’ll volunteer first and see how I like it. If I have a positive experience, I’ll inquire about being on staff in a future year.

Why Do I Work So Many Cons?

Many reasons. First, it gives me a chance to make positive contributions to the community. Second, it provides me with a bit of structure to the convention–having to be in certain places at certain times helps me better organize how I spend my time at the con. And finally, it gives me an opportunity to meet people–I’ve made many many friends over the years just by staffing cons… and getting to see these people again at future cons makes the experience just so much more fun.

The full spreadsheet of conventions I’ve attended and staffed can be found here.

Conventions I’ve Attended

  • Furry:
    • Anthrocon: 1999,  20002001, 20022003200420052006200720082009, 20102011201220132014201520162017, 2018
    • Anthro New England: 201520162017, 2018, 2019
    • Camp Feral: 1999, 2000, 200120022003
    • Eurofurence: 2004, 2014
    • FurFright: 20062007200820092010201120122013
    • Furry Connection North: 20082009201120122013
    • Furrydelphia: 2017, 2018
    • Furry Migration: 2017, 2018
    • Midwest FurFest: 2002, 2003200820092010201120122013201420162017, 2018
    • Pine Fur Con: 2018, 2019
    • Western PA Furry Weekend: 2010, 2016, 2017, 2018
  • Non-Furry:
    • Anime Central: 2009
    • BayCon: 2001
    • BronyCon: 20132014, 2017
    • ConClave: 2005, 2006, 2007
    • Confluence: 200620072008200920112012
    • DexCon: 2006
    • MagFest: 2007200820092015
    • MarCon: 20072008
    • Otakon: 2003
    • PhilCon: 2006, 2012
    • Setsucon: 2014

The totals from the above cons are as follows: 91 total conventions, 65 of which were furry conventions. I staffed 66 of those cons, most (but not all) of which were also furry conventions.   The full spreadsheet of conventions I’ve attended and staffed can be found here.

If you’re looking for artwork of my fursona, that’s over here.

Many of my convention pictures can be found on my Flickr account.