We got chickens from Murray McMurray Hatchery on April 14th and 6 weeks later we had a full freezer. This was super worthwhile, we're doing this again next year. I already miss the routine.

Some pictures!

A box full of chicken nuggets

Picked them up from the post office. Giant smile on my face while driving home with a softly peeping box.

Extra-large chicken nuggets in grass

A week and a half in it was too cold to get them onto the lawn full time, so we had Chicken Enrichment Time instead. This was their first time touching grass.

Wood box full of chicken nuggets

Finally got them into the garage. Saw this brooder box design online and the price was definitely right, 2 sheets of plywood and a few cuts with the saw. Easy. They loved this space, they had zoomies, scratched and pecked around, just had a great time.

Chicken tractor

Their final home. We had a few wet nights, and a few cold nights, but once they were in the chicken tractor, we didn't lose any birds to the elements. Just one to rank stupidity. This thing was probably overkill, definitely too heavy, but I scooted it around the lawn every morning to get them onto fresh grass. A few months later, the grass is happier and healthier with the extra fertilizer. Next year we're doing the first batch of chickens later so they can snack on some mulberries.

Chonkins

And here they are at finish weight. Most of them were over 6 pounds, and all of them (except the silkie) were over 4 pounds processed.

Frozen chickens in a deep freezer

And here they all are, 116lbs of broiler chickens, 8lbs of livers & hearts, 7lbs of feet, 7lbs of gizzard. This was a very fulfilling way to ensure that the creatures I eat are treated right from beginning to end. Next year we're going to do more. We've run through half our stock in just a few months from selling chickens to friends and family. And, they're the best chicken I've ever had in my life.

Uhhh we bought a farm. My wife and I decided we needed to get a little less city-bound, so we got 6 farm-zoned acres that we can raise chickens on. Going to do my best to live the meme of "I'm going to quit this sysadmin job and become a goat farmer."

I'm still alive! I just don't have it in me to post blog updates.

First prototype of the ErgoDOX eXtended works great.

Pardon the keycaps. I've just got one spare set at the moment.

Next up: A proper switch plate. Friends and I got the CNC minimally functional, and I've done some successful tests with 2mm aluminum, so that shouldn't take too long.

I haven't even received the prototype board yet and I've already had that awful thought: "How could I make this better? ...Cooler?"

So, I've made revision 2. It's the same schematic layout as rev1, just arranged differently on the board. I'm familiar enough with kicad at this point to know how to modify footprints and remove pins, so I've got the teensy and the i2c expander sharing a footprint now. I also went ham on the angles:

 

I also thickened up the traces by 50% just in case, and just in general arranged everything much more cleanly. It's really starting to shape up.

It's been about a month since I first had the idea to rebuild my keyboard and I got bored this weekend, so of course, I scrapped all the work I did before and started from scratch. This time, though, I started with the PCB... because placing components in OpenSCAD was never a good idea. Fun idea, but a bad one.

So I installed KiCad and immediately died a little inside. This thing is massive. There's a lot to it. So I took to YouTube and found a few tutorials. Turns out, banging your head against complex applications for 12 hours isn't that bad. Going through a few tutorials and using the existing ErgoDOX project as a reference, it took about 12 hours total for me to learn enough KiCad to do this:

It's ugly, sure, but I'm a little proud of it. Especially since this is the first pcb I've ever taken a crack at. I mean, look at this render:

 

I designed the board to be universal, like in the existing project. KiCad didn't play nice with the chips sharing pins and I'm not experienced enough with it to get it to work, so they're going to occupy different parts of the board. They're also going to be in the center of the board instead of on top, since I think that desk space is more valuable than the inch or so on either inside half. I also decided to use a 9-1u-cluster instead of using 2u (enter, backspace) keys. I was thinking I could use those as arrow keys, macro keys, and other stuff. More keys, more power. Plus, with this layout, it came out to a perfect 49 keys - 7 rows, 7 columns. Waste not, etc.

The next question is how in the hell do I prototype this.

10-minutes-later-edit: Answered that question with Elecrow. 5 prototype PCBs ordered for $62 shipped. Let's roll.

It's about time I made another post. A lot has changed... got a new job, relationship is super steady, got a truck, built a 3d printer from scratch, 3d printed a LOT of pikachus, went on 2 vacations that required trips by plane (Seattle is fun, albeit full of homeless people and a guy named Jim who tried to pay for his tab with heroin), and I've finally gotten sick of my Ergodox. Don't get me wrong, it's a great keyboard. I'll never do a non-split keyboard again. But it leaves a bit do be desired. Call it laziness from not wanting to make a profile that works, but I miss the F-keys. This was especially evident when I tried to play Star Citizen on the first. My new Freelancer was pretty well unflyable.

So, what to do? Go back to the tried-and-true chocolate bar keyboard? 60%? 110-key max configuration? Oh, I could just pull out the K70...

Nah. I'll spend waaaaaay too much time designing my own. After a long weekend I'm finally satisfied with the layout. Built a rudimentary thing and some scripts that output DXF files for each layer, including the pcb's layout to import into tracing software.

Keys are just there for making sure it all fits. BUT, I think this is coming along nicely. So. The plan here is to design a pcb, build a prototype by hand using transfer paper (something I've never done before), finalize it, order a small batch, and see who in my friend group/professional network is interested. If interest is high I might make another small batch to sell kits for. No preassembled ones because that takes ages and you should have your own choice of switches and caps, but, it'll be fun to assemble regardless. This keyboard will probably cost me six thousand dollars.

Alright, now that I've gotten a lot of the thinking done, the real fun begins.

Problem: I need a bit of data available to all templates

I decided to add a sidebar that has a list of posts - a standard "Archive" bit with links. So, naturally, I set about modifying all my views to include a helper function that returns data. I went through each of them and had them return the output of a function into the context. And hey, it worked!

But, there's an issue with how this was written. Django encourages a DRY philosophy - Don't Repeat Yourself. And I was repeating myself quite a bit here. Going through each view and doing the same thing is inefficient and can get to be hard to maintain in large codebases. This blog won't ever be all that big, but, I figured I'd try to find a way to make things better. You know, do it right. So I hit Google and found a bunch of possible answers. One, though, seems like the "right" way to do it.

Solution: Context Processors

Context processors in Django work to gather and process data at runtime. From there, you can have them return data and make it available to templates. There appears to be additional functionality to context processors, and I'll have to look into that in the future. But for now, this seems to do exactly what I want.

First, I created a file in my blog module (since this is a blog-related function) called 'context_processors.py'. I created my function, which had to return an ordered dict of years containing a list of post titles and url slugs.

def sidebar_archive_processor(request):
    posts = Posts.objects.filter().values('title','posttime','slug').order_by('-posttime')
    archive = {}
    for post in posts:
        try:
            year = archive.get(str(post['posttime'].year), [])
            year.append(post)
            archive[str(post['posttime'].year)]=year
        except:
            pass
    archive = sorted(archive.items())
    return {'sidebar': archive}

 Quick and easy. It looks like Django's context processing loads this dict into a high level of the templating system, making the variable "sidebar" available to templates.

*(Todo: Add try-catch for getting data, I haven't experimented with what happens when a context processor has an exception yet, and if there are no posts, this won't return anything.)

After that, I had to add it to settings.py:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [ os.path.join(BASE_DIR, 'templates'), ],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
                'blog.context_processors.sidebar_archive_processor',
            ],
        },
    },
]
 

 So that loads sidebar_archive_processor from blog.context_processors. Very straightforward. From here, it's just a simple matter of accessing that data in the template.

Here's the loop I used:

{% for year,posts in sidebar reversed %}
    <div class="sidebar-box">
      {{ year }}
      <div id="sidebar-{{ year }}">
          {% for post in posts %}
          <a href="{% url 'blog_slug' post.slug %}"><div class="sidebar-link sidebar-button">{{ post.title }}</div></a>
          {% endfor %}
      </div>
</div>
{% endfor %}

 I wanted to have it so that the most recent posts appeared first, so I loop through the sidebar backwards. I've given each sidebar div a unique id so we can eventually hook javascript into it for an accordion-style collapse. Oh, and I could have done a regroup here, but I like to keep code out of the template as much as possible, so I figured it would be best to put that logic in the context processor itself.

And there you have it. Works as intended, feature addition complete. I'll have to look into the other things that context processors can do next. Or, maybe start adding other modules to the site. Right now the Games, Code, and About links just go link to blog_home, so that should probably be updated. Those placeholders should probably have someplace more apt to link to.

 

Now that wasn't too hard. Imported the old db into the database server, created a script that connects to that database using pymysql, loops through the old posts and returns a data structure. Use some Django model bits to import the data I needed... ah well, might as well just show you:

# blog/oldblog.py
from blog.models import Posts
import datetime
import pymysql, pymysql.cursors

usermap = {
    '2': '1',
    '3': '2',
    }

def runimport():
    connection = pymysql.connect(settings)
    try:
        with connection.cursor() as cursor:
            sql = "select ownerid,date,post,title from blog order by date desc"
            cursor.execute(sql)
            result = cursor.fetchall()
    finally:
        connection.close()
    for record in result:
        record['date'] = datetime.datetime.utcfromtimestamp(float(record['date']))
        importrecord(record['title'],record['post'],usermap[str(record['ownerid'])],record['date'])

def importrecord(title,content,author,date):
    try:
        p = Posts(title=title, content=content, author_id=author)
        p.save()
        p.posttime = date
        p.save()
        print("Post import successful: {}".format(title))
    except:
        print("--Error: Could not import post: '{}'".format(title))

Then, from there, it's into the Django shell using the production server settings:

DJANGO_SETTINGS_MODULE=drunkserver.settings_production ./manage.py shell
>>> from blog.oldblog import runimport,importrecord
>>> runimport()

Code's a little jank and some of the metadata that was part of the old blog system was lost, but that's okay. I can take the hit. Also, a few records failed to import due to not having titles. No big loss there, they were from when I was first building the old blog from scratch in php. Almost entirely "test post", "test post 2", "asdf" type posts. I had to convert the unix timestamp I was using in the old blog (bad) to a proper datetime for the new one (good); Super straightforward with datetime.

Now, this solution worked because I don't have a large dataset. If the blog was millions of lines of posts, I definitely wouldn't want to return the entire table in a single variable; I'd want to return one record at a time, and move the cursor down the dataset, allowing the script to free up memory as it moved along.

There's also the issue of the static usermap. I did it this way because:

  1. It was quick and dirty
  2. I only had 2 users to import posts from

 The right way to do it would be to do a nested sql lookup against the 'users' table in the old blog, and map the old user to the new user that way. But I didn't maintain usernames across those databases; Old usernames are our handles, new usernames are our names. We'd need a static map anyway.

Last issue, no meaningful error handling. The old posts that failed to import don't get handled, just ignored with a message. But, for reasons stated above, no big deal for something this quick.

Overall: Success. Quick and dirty works a lot of the time, especially for one-off import scripts like this one. Didn't take long to hammer out all the kinks, like the date change thing you may have noticed. Thing about the Django DateTimeField with auto_now_add=True, is even if you specify the date in the field initially, it'll get set to the current time when the record is added. So you've gotta save it, update the time, and then save it again. I'm not sure if there's a way around that, but this method seems to work.

 

btw, the new blog system makes posting longer/more technical posts much easier and more fun. So I'll probably be doing a lot more of them in the future.

Peace

Trying out this whole Django thing, and so far I'm really digging it. Modules (called "apps" in django) make adding features without affecting other code pretty straightforward. The database models make just about everything a lot easier and faster to build. Even gunicorn didn't give me any trouble, and I thought it would. Sweet.

So, here we are, a more minimalist approach to Drunkserver. More to come as we update the backend and frontend.

We have servers up. Vanilla servers. They're auto-magically managed and updated within a half hour of release, so they should always be up. You can find them at minecraft.drunkserver.com and snapshot.drunkserver.com. Snapshot will always be the bleeding edge development version, and the other will always be the latest stable version. Enjoy!
Sorry for the lack of updates, it's been rather busy! I'm on my 7th draft beer of the night (from my own keg) and I figured that I am appropriately drunk to make a post. I've been making a lot of progress in system management, including Ansible and one-off scripts. Ansible is so hardcore... I love every bit of using it. Every time we come across a system-wide issue, instead of thinking "How long will this take 6 people to complete" I think "How could I implement this in Ansible and knock it out today?"

So far as I've seen, Ansible is an incredibly sturdy system with a lot of built-in modules that can already accomplish 99% of what I need to do. The other 1% can be accomplished with a 50-100 line shell script that I can integrate directly into Ansible and provide extra functionality for custom applications... which is absolutely fantastic. System consistency and integrity is just a few lines of BASH, and voila! I can run it against the entire datacenter in one go.

"But G4," you might ask, "Why not use Puppet or Chef?" Why, the answer is simple! Puppet and Chef require a lot more time and effort to set up. A lot of companies need to dedicate an entire team just to configuring these systems. With Ansible, I've gotten an entire datacenter's worth of configuration management finished in just two weeks. I haven't gone it alone, though... I've had a bit of input from one of the Sysadmins and a few people from my team. But seriously... The number of people it takes to get Ansible going effectively can be as low as 1. Especially if you're running a simple Apache stack or simple clustering. If you're clever and learn quickly, you can knock this stuff out by yourself. It really is incredible.

In personal news, I got my new copter all tuned in so that I can do flips. It feels a lot more responsive than my old flight controller (Multiwii (old) vs KK2.0) and I feel like I can do a lot with it. The only things I'm missing now are GPS position hold and return to home... plus a little bit more granular control over flight characteristics. The KK2 doesn't have board-controlled curves, so I have to do that on my transmitter... but that's just a little issue, and I'm not really concerned about it. What really matters is that I can still do lazy rolls through the sky, and have a nice, solid link and responsive feedback. I'll post some videos up on here when it warms up a bit.

In other news, I now have my own draft system for beer. It's been quite a hassle... Midwest Supplies is normally very reliable for me, but this time has been quite a misstep for them. They initially told me they'd have my keg to me last Tuesday at the latest, and then it took a week for them to ship it, and another 3 days to get to me. I was pretty happy when I saw the package at the door, and then I opened the box... and it was a keg short. Kegs are easy to count. They're big. How do you miss one? Normally you'd expect that if you spend over $300 somewhere they'll actually pay attention to the order. But, I suppose not. I'm definitely going to think twice about ordering kegs from them again.

At any rate, though, my beer is turning out better than I expected after the initial taste test. It absorbed a lot of flavor from a previous failed brew (superclove cider), but it seems to be balancing out quite nicely after only a day of conditioning. I'm excited to see how it turns out in a few weeks. But, until then, I'll be doing my next brew on Saturday. Glory to Arstostka!
...While drunk! I've gotta keep with the theme, you know?

I'm sitting here with a gin & tonic, pretty buzzed, and charting a course between planets. Funny thing is, I've been drinking since around.... 3-ish, off and on, and I've visited a lot more planets than I have while sober. I don't know if that's skill, or just dumbing my brain down enough that I don't overthink every little thing. In my experience, a little booze increases skill exponentially; A lot of booze, and you end up with Windows ME (XKCD reference).
So, the company I work for was bought by Oracle, the second largest software company in the world. Am I excited? Yes. Am I terrified? Definitely. I might lose my job, I might hate the new corporate culture, or something entirely unknown might happen. But I'm still excited, because this means new opportunities to learn.

I'll get exposed to entirely new things that I've never had the opportunity to be exposed to before. Massive enterprise culture, enormous systems and integration, incredible minds that mold and shape the future of the tech industry. This is going to be a fun ride, no matter what happens. I just hope I enjoy it as much as I anticipate.

The things that I'm really afraid of are the changes to the culture and separation from my comrades in arms. I've gotten attached to my current cohorts, and I'd rather be able to diagnose issues with them well into the future. The beer on Fridays is definitely awesome too. It gives us a chance to unwind after a long week of involved tasks. But, I have to take things as they come. Complaining won't get me anywhere.

Hopefully the world stays in a state that I enjoy. If not, I'll probably be looking elsewhere... either by my own choice or by another's. I have a lot of passion to offer, even to a tech giant... Hopefully they see me in the same light as I see myself -- I'm clever, driven, and constantly learning new tricks and intricacies in every system I can get my hands on. Just ask my coworkers... I'm always figuring out new hacks, shortcuts, and ways to keep things as simple as possible while maximizing output. And I have no intent to change that.

Well, anyway. Time to sleep. Peace out.
The Drunkserver forums are back, and with a stylish new skin! Hop on and start making discussions! Also, I'm going to figure out a way to integrate the forums into the main logon for the site, but that might take some doing. I'd very much like a central login point for everything. Also, taking requests for new Minecraft servers. I'll make a post on the forums about it.
Look! I have an SSL cert! You can tell because there's a lock by the url up top, in the address bar. Thwarting the NSA one secure site at a time. What does this mean for you? Anything you do on the forums, site, or whatever will be encrypted from your browser to my server. People watching won't simply be able to read what's going on in plaintext; they would have to decrypt it beforehand, and that's pretty difficult because of the inherent strength of SSL, providing there are no backdoors. This also makes user accounts more secure. Hell, I can't even watch from my own server. It's that secure.

This isn't optional simply because for security to be unsuspicious, security must be the default. The more sites that have SSL turned on by default (Facebook, Google, etc.) the more costly it is to watch people. If they want to make it easy to search your data, It's our job to make it hard for them to get it.
Hey guys! This year I'm going to be participating in Extra Life, a charity gaming marathon that supports hospitals in the Children's Miracle Network. On November 2nd, I plan to have raised $200 total to help children get better. Doesn't take much, just a few bucks here and there. If you want to help, you can donate at drunkserver.com/extralife/, or you could just pass the link along.

Help me make a kid's day by making me game. Pitch in guys!

Oh, and keep an eye out for more charity stuff coming up. I want to make this an ongoing thing.
I got the email server properly set up this time, instead of taping it together and calling it good. Now it authenticates using a database instead of system authentication. Using this method, I can easily set up a secure system that I *might* open up to users sometime, meaning you'd get your own drunkserver.com email address... but don't quote me on that, I'm not sure about it.

Some tech stuff: The server authenticates using SSL/TLS through Dovecot, and I'm using Postfix as the MTA. Anyone who knows those applications will know they're a huge pain in the ass to learn the first time. After running through 6 tutorials and starting from scratch a bunch, I finally started building my own queries for authentication and used those instead. Still didn't work, so I started meticulously reading the config files and found a single line that broke authentication by clients but not dovecot's internal admin... Talk about frustrating.

But! PROGRESS! Onward to the new forums, and after that's squared away I'll be building out a new Minecraft server.
I got the mysql server moved over to a separate VM, so in theory, running queries on it should have minimal effect on gameservers and the webserver. Previously, each server had its own mysql server, siphoning resources from otherwise important things. Easy peasy. Progress!
Would you look at that, I got the domain back this morning! And we're running on my personal server in Chicago! Welcome to the Animus Project people. I'm going to be breathing new life into what once was amazing. This is the real deal.

Stay tuned for more details, but the long and the short of it is that I'm going to do a backend redesign on the site, followed by frontend and new forums. After that, a pure vanilla whitelist server (with website integrated registration, moderation, and approvals). I'm not shooting to make this a hugely accepted project, just something for the peeps that care about us and want us back up.

Feels good to be back guys. I'm excited :3
I installed an IRC server! Check it out at irc.drunkserver.net
After much delay due to lack of funds, the server's back up and running, and I had to buy a new domain until I can get the good old familiar one back. The site's running on the server in Chicago, so enjoy better speeds and uptime. More updates to come!
Edit: Gifs broke our load times, so here are some videos instead.

First one has more consistent audio, but the second one is nothing to be scoffed at.

Smashing.



I made a post on the forums about a new server I'd like to build. It'll require quite a bit of development, but I think this will be VERY fun.

The post is here: http://forum.drunkserver.com/smf/index.php/topic,308.0.html

Let me know what you guys think!
I made a widget! It's in the lower right hand corner. Just mouse over it and it expands, showing who's online, how many people are online, and it has a link to the pvp leaderboard. I've posted the source code to Reddit here.
Fans of Drunk! We're still alive! And the same day that a 1.4 recommended build of bukkit is out, we'll be updating the server to 1.4 and increasing the Survival map's border by 1000 blocks. That's 1 kilometer. Awesome.

I have some awesome changes ahead! I'm moving one of my servers to Chicago. Eventually we'll move Drunk's main systems to that server, which will have 100MB down and 100MB up, and by all accounts, should never go down. I should also be able to set up our email systems to mail any domain, since we'll have rdns record (cue technical jargon).

I've been making periodic improvements to the webpage when possible. I have a leaderboard page, and a kill database that you can search. It's pretty awesome. Next up is blog searching, but that should only take a day or so to implement.

After I implement blog searching, I hope to implement the first stage of DrunkLink: Automatic whitelisting of donators on the Private server. That means if you donate more than $5 to Drunk, you automatically get access to the private Survival server. Vanilla, no addons, no bans; It's pretty much chaos there. Of course, that means I have to bring that server back up, and that probably won't happen until I move a server to Chicago. Hopefully I get on that soon.

Anyway, drunken G4 out! Much love guys!
How to be an Excellent Programmer for Many Years
(Excellent==Successful. Money & fame are more difficult to control.)

  1. Choose a small subset of available technology, learn it intimately, and embrace it. Then evolve that subset.
  2. Understand the pros and cons of various data structures, both in memory and on disk.
  3. Understand the pros and cons of various algorithms.
  4. Understand your domain. Get away from your computer and do what your users do.
  5. Be ready, willing, & able to deep dive multiple levels at any time. You must know what's going on under the hood. There is a strong correlation between "number of levels of deepness understood" and "programming prowess".
  6. Use your imagination. Always be asking, "Is there a better way?" Think outside the quadralateral. The best solution may be one that's never been taken.
  7. Good programmer: I optimize code. Better programmer: I structure data. Best programmer: What's the difference?
  8. Structure your data properly. Any shortcomings there will cause endless techincal debt in your code.
  9. Name things properly. Use "Verb-Adjective-Noun" for routines and functions. Variables should be long enough, short enough, and meaningful. If another programmer cannot understand your code, you haven't made it clear enough. In most cases, coding for the next programmer is more important than coding for the environment.
  10. Decouple analysis from programming. They are not the same thing, require different personal resources, and should be done at different times and places. If you do both at the same time, you do neither well. (I like to conduct analysis without technology at the end of the day and start the next morning programming.)
  11. Never use early exits. Never deploy the same code twice. Never name a variable a subset of another variable. You may not understand these rules and you may even want to debate them. But once you start doing them, it will force you to properly structure your code. These things are all crutches whose use causes junior programmers to remain junior.
  12. Learn how to benchmark. Amazing what else you'll learn.
  13. Learn the difference between a detail (doesn't really make that much difference) and an issue (can end the world). Focus only on issues.
  14. Engage your user/customer/managers. Help them identify their "what". Their "how" is not nearly as important.
  15. Write a framework, whether you ever plan to use it or not. You'll learn things you'll never learn any other way.
  16. Teach others what you know, either in person or in writing. You'll accidently end up teaching yourself, too.
  17. Always tell your customer/user "yes", even if you're not sure. 90% of the time, you'll find a way to do it. 10% of the time, you'll go back and apologize. Small price to pay for major personal growth.
  18. Find someone else's code that does amazing things but is unintelligible. Refactor it. Then throw it away and promise yourself to never make the same mistakes they made. (You'll find plenty.)
  19. Data always > theory or opinions. Learn the data by building stuff.
  20. At some point, run your own business (service or product). You will learn things about programming that you'll never learn as an employee.
  21. If you don't love your job, find another one.

Link: http://news.ycombinator.com/item?id=4626201
I'm working on something to help manage projects, bugs, and feature requests better than the forums. Behold! The Drunk Ticket System! You can find it here:

Drunk Tickets

Only donators or above can access it, though. Sorry, but when we're beta testing software that can post directly to our sql server, we need to be at least a LITTLE bit careful ;)

Edit: If anyone actually sees this, try your best to break the hell out of the page. Report bugs as tickets. Just be like, Yo. Bug. Right here.

Another Edit: In case you're wondering, you can access the tickets page by mousing over the "Account" square in the upper right corner. If it's not there, you don't have access. Simple.
Sorry about the outage. My Comcast connection went out. I wasn't supposed to get a technician out until Saturday, but it appears to have rectified itself. So, YAY!

My new job is going well. The people there are pretty awesome, and they're actually giving me TIME to learn things, instead of throwing me into the mix with no instruction and high expectations. This is truly excellent. I'll want to work here for a while, I think, if the hour-ish drive doesn't get to me.

OTHER NEWS. Anime. I like anime. My gf convinced me to watch a Magical Girl (see: Sailor Moon) show. It's called Madoka Magica, and it has seriously grown on me. The plot is good, the characters aren't annoying... It's a fun watch! I recommend it.

Anyway, still getting settled in with things at work, so I'll slowly be getting back into the swing of Minecraft and such. Just give me a bit to get used to how things are going.

Peace out! ^_^
Let's play.

I got a new job! This means a lot of things. First, I'll be commuting. This means I'll be spending 2 hours in the car 5 days a week. Second, it means I'll likely be moving in the beginning of next year. Expect maybe a week of server downtime during the move if I can't find hosting somewhere else. Third, it means I'll be better suited to maintain the servers and get a ballin internet connection, while saving for my future and being fully covered by insurance. Awesome.

Now, the current situation with the servers is we're doing a bit more testing before we roll out ads and posts on forums and such. We have to fix that little bit of lag and a few issues with anti-cheat plugins before we decide to proceed. We're also still deadlocked on figuring out new mods, so, there's that. I'm setting a deadline of Friday to have those figured out, at least.

Alright, now I'm off to try to look through the clouds and see the meteor shower at a cabin in the woods. I might be killed by an axe murderer, in which case Flame gets my apartment and the servers and my bro gets my new desktop. You guys can all fight over the rest. ^_^
Rolled out a Dev build of Bukkit 1.3.1. So far, it looks like all of our plugins -- even the custom ones -- are working pretty flawlessly. I'm doing some rudimentary testing, and if I find any major issues, I'm going to roll it back.

I RESERVE THE RIGHT TO ROLL THE SERVER BACK. Build on 1.3.1 at your own risk. I figured now was a good time to test it out, since the login servers have been flaky.

More updates to come!
You can now 'like' our blog posts on Facebook! That was easy. ...Seriously. Like, 1 line of code. That's it. But now, for something more important.

Props to Flame for being more on the ball on this than I am, but mankind continues to take great strides forward, and with great tenacity we strive toward the heavens, so that we may satisfy our curiosity. Hence the namesake of our latest endeavor: The Curiosity Mars Rover. We had a safe touchdown, and the rover is.. well.. roving. We've seen some seriously awesome things in our time; The popularization of the Internet, countries being overturned, new technologies like Augmented Reality coming to light... but none compare to the achievement that NASA has accomplished today.

For the first time in history, mankind got to see a live stream of a spacecraft landing on another world. This is our moon landing, folks. This is a defining moment. And it's only a matter of time before we do it again... with people. I, for one, can't wait. Can you?
Well, I guess it was a long time coming, but we're discontinuing Drunkserver. I'm unregistering the domain and selling the servers. I have a lot of reasons to do this, but first and foremost is time.

JUST KIDDING. Survival is live. We're not bringing the server down as long as I can afford it. SO LOG ON NOW AND ENJOY SOME PVP AND BUILDIN.
I had to fill in some dates after some *ahem* unpleasantness, but the blog system is now completely re-integrated! All of our posts from the past are now saved in a database. ^_^

Not too impressive, you say? Well, not until I tell you I wrote a few scripts to do it all for me. Damn straight I automated a parser and a SQL interface. I'm just cool like that.
Getting all the dates converted to Unix time, so that we can customize stuff and maybe add a calendar in the future. Also, it'll make our dates look a little less funky. All in the name of progress people! ALL IN THE NAME OF PROGRESS! And now, off to the bar.
Good news! I got all the archived news posts into the database.
Bad news! I fucked some of the new-er posts. So, we have to manually go change the dates and titles (and I can't remember a bunch (see: any) of those). Anyway, I've gotten my fuckery accomplished for the day, so it's time to clock out and go to Flame's house for an emergency hysterectomy.
I broke the database. Look! All the posts are by me now, and they all have the same title! Good thing the script errored out before it got to the bulk of the info...
It's looking like we're all set to make things go boom by August 1st. Flame's been chugging along nicely, I'm getting a business line with static IP's Tuesday, and I got my hard drives in for the new server. 2TB mirrored. We'll have plenty of room, and we'll be safe if one drive dies or some drunk person (not me, I swear! >_>) decides to pull out a hard drive while it's running and make the server beep for 4 damned hours while it's rebuilding the array...

ANYWAY. Lots of good stuff is on its way. After Minecraft is back up and running I can start making headway on some new paid hosting services. Minecraft servers and the like. Maybe some other goodies too. I'd also like to make it so that donators get a few more perks as well. Not anything like "GOD MODE FOR FIVE YEARS" or something ridiculous like that... Maybe when you donate, you get a survival kit, or you get a few emeralds, or an emergency teleport for free... You know, little things. I might even make it random. All it takes is a little Paypal integration and a PHP script, really.

I babbling. It happens. So, tl;dr: I set my apartment on fire, looks like there will be no Christmas this year.
Mojang is doing something crazy again! Theyre staying up for 60 hours to write a game -- Live -- in front of the entire world,to help various charties! You can help them out by going here and donating.If you match Drunkservers donation and tweet to us, well give you something special!

Alright, theres been an excess of complaints lately on the grief-to-kill rules, so Im revamping them. Heres a rundown:
1. Griefing is now defined as the malicious destruction or damaging of a structure with only the intent to destroy or damage.This means that breaking through walls is now ALLOWED to get a kill or explore, so long as the offending player FIXES the damage.
2. Preventing a player from fixing damage will grant the offending a pardon. Thats only fair. If you feel you must kill them,do so, but know that if theyre trying to fix your structure and you willingly and purposefully keep them from doing so,we will not count it against them.
3. This ruling is to encourage pvp, craftiness, and stealth, not to discourage building. In 1.7 we had some of the mostgorgeous and creative structures weve seen -- including cities, monuments, and devices -- all with the original grief to killrules. Were going back to that.
4. Im sorry about all the drama disallowing grief to kill has caused. I never should have changed the rule in the first place.

Ok, now to address the problem you guys have with PurgeMe. You seem to think he is above the law, and to be frank, I canunderstand that you guys feel that way. Want the truth? Hes been the biggest pain in the ass to try to find something hesactually broken the rules with. He rides that line so finely that its caused a huge hassle for the admins, and weve beenfrantically TRYING to find a legit reason to ban him. Teleports? Fucker stocks up on ender pearls. Xray? Weve found NOTHING.The ONLY thing hes really done so far that might warrant a ban is grief to kill, but, as the rule is being changed as of now,no ban will be given. We dont ban people for being assholes. (Except for Pieman50. But he threatened to hack the server, and was a child.)

The last thing Id like to say is that I apologize for not being around as much. Between classes, work, and social obligations,Im having a hard time finding periods where I can actually log on. Im making an honest effort here, and Im still goingto keep maintaining the server for you guys, even if I cant be online 24-7.

Much love. G4 out.

SURVIVAL SERVER IS GO! Everyone log on and begin your adventures!

Destruction day for our final Beta map has begun! Everyone will start at the spawn in creative mode, be able to fly, and useTNT to blow everything sky high! Burn stuff down, blow stuff up, destroy all your hard-won accomplishments!Were running this destruction day until Monday. Hopefully we can get addons ready to go for you guys right after that. Also,the map will be available to download Monday after we get stuff set up.

There is currently a bug in 1.0 that affects connecting to servers. From what Im told you just have to keep refreshing/tryingto connect. Eventually itll go through. Happy destructing!

Today is going to be EPIC. Minecon starts today at the Mandalay Bay in Las Vegas. The game is finally getting released! Stay tuned for details, but here's something to get you going: There are several surprises that were unveiling that will make thisserver really stand out from the rest. We've been working on this stuff for a lot longer than we thought we would,but it turned out better than we had hoped. Keep checking back today and tomorrow for updates!

When I installed the new router firmware, I configured the ports incorrectly. This affected the TF2 and Killing Floor servers... in such a way that made them not work at all. I fixed that though, so have at them!

Brought the killing floor server online! Now you can kill zombies in style on our always-running dedicated server! Tell your friends!
Oh, and I had to password it because otherwise random people will drop in. But the password is "password" so its easy to remember. Right?

We'll be officially bringing the Survival and Creative servers online on August 1st, to correspond with the next Minecraft release. I intend to have beta testing completed by then, so we might have pre-'release' maps up (like the one we have up now) so you guys can still play. They will be vanilla maps, however, without the epic spawns and roads and features we usually have in our maps.

In other news: My girlfriend and I are working on a new thing. We're building a website where you can pay for your own minecraft server. This will be cheaper and better than other services, as we will provide more ram and storage space, plus, room to expand. In the future we'll also add a service where you can pay for your own individual IP address and domain name. Hopefully this service brings in some capital, so I can start building better servers and spring for a business line and static IP's.
We get to meet the Pyro. YES.



It's about damn time, if you ask me.
4 cores, 6 gigs of ram, 6 hard drives... This machine is now beastly. We're going to enjoy this one, my fellows.
Just got 3 Dell PowerEdge servers to use for Drunk. They're the real deal, folks. Expect load times so fast you'll simply explode with surprise. Creepers will now be super-intelligent. They will know where you live. They will question the matrix into which we have placed them.

Technical specs and details, if anyone's interested: two Dell Poweredge 2850's and 1 2650. Each has 2 Intel Xeon processors and at least 2GB ram. Hard drives are arranged in a Raid 5, Raid 1, and Raid 5, accordingly. All have redundant power supplies, turbine fans, ducting, dual Gigabit LAN, hardware RAID controllers, and ECC Registered RAM.

One of the 2950's is being put aside for the time being as we don't have a use for it, but the more powerful one will be used as our primary webserver and as one or two Minecraft servers. The 2650 will be our new lab. We should be able to support 60+ concurrent users on our primary server, plus Mumble, plus the website, plus more stuff.

So, our current schedule for this is to get our servers migrated over to the new hardware this week, then get back to work on the Minecraft servers. Sorry everything's been slow-going, but life has been pretty ridiculous all around.
Drunk Chat! Make an account, log in, and chat with friends, enemies, and admins in real time! Still need to work out a kink or two, but it's perfectly functional as a chat thing right now, so log in and check it out! I'll try to be on it as much as possible during the development process, so you can pop in and bug me. (Finally, an actual reason to make an account!)

Edit: I'm also making the status lights function in real time. So far, the Survival light works. During the week, it'll be green, but until we make it live we'll probably have a whitelist. Donators, mods, and contributors will have access from the start, though, to help us with beta testing.
The site is VERY close to going live. Newsblag editing functions are set. All that's left is the servers page, and gratuitous testing.

Veterans of Drunkserver will appreciate the familiar layout and style, and we've updated the hell out of it to make it look more professional, more streamlined, and more, shall we say, suave. Hopefully we'll bring it up within the next few days. Until then, enjoy some youtube.



Peace out.
Just a LITTLE bit more and the site will be good to go. All it needs is blag-management options. Account control, settings, password reset, all that stuff is good to go. We'll probably be rolling by the end of the week ^_^
s
Alright, back to coding. *cracks whip*

Edit: I can edit posts now, too. Sweet.
Flame got most of the new site all designed out. It looks very slick guys, you're going to love it. Things are coming along very smoothly. We're also making a bit of progress on getting game integration implemented on the site, but that's coming along considerably slower, unfortunately. We're still strapped on time. However, a fair amount of my free time has gone into Drunkserver again. We'll be rolling with quite a bit of steam in a bit.

Some stuff: Logins. That's right, you'll have a login to the site. This will make it possible to keep track of your stats and such. Right now, it does nothing for you guys, but admins can make news posts. This particular system gets revamped in the morning, and it'll have some more really cool features.

Project Lazarus is go. We're breathing new life into our little community we've made. Hopefully you guys like what we've been working on recently. ^_^
Flame doesn't know yet. Don't tell him. But the blog system has gone live. Now we can post news straight from the site! We don't need to do HTML editing via terminal or FTP anymore! YAY!

So, this system pulls stuff from a SQL database. It's fucking rad. I love it. Also, it means we're making progress on the site. We also have working email addresses, so you can use those too. If you want to make an account, I'm pretty sure this is the database we'll be using in the future. Just keep in mind we might force a password reset eventually. OH and make sure you use a valid email address, since our email doesn't have a RDNS record. Can't get one, can't even ask for one. Doesn't work on a dynamic IP. Other stuff does, though, so we have DKIM and SPF set up. Our email is secure and legit! I promise!

Alright, so the site's coming along. All the formatting and stuff you see now? That's old news. Flame's got some cool ideas in mind for making our stuff 100% hardcore. You guys are going to love it.

Hardware! The new system will be set up before long. More (and faster) hard drives, faster processor, more ram... Possibly running more servers on it as well. Cool beans.

Alright, I'm out. Much love, as always!