Recently, I’ve been toying around with a little web framework called Zappa. Well, I guess you could call building two fully-functional websites, one of which is running for a live client with decent traffic “toying”. I must say, I’m very, very impressed by what I’ve seen so far.

For those of you who haven’t heard of it yet, node.js is a recent serverside framework that uses Google’s V8 Javascript engine serverside. That’s right, you run JavaScript on your server, and it serves up your html pages and can do low-level sockets. If that sounds a little backwards, it kind of is at first. Node.js itself is very much a low-level framework, essentially just an asynchronous sockets library and the standard javascript functions, so trying to do much of anything using just node.js is a pain.

Enter Express. This wonderful little framework imitates Sinatra (and several other web frameworks) and turns the process of defining routes, handling html templates, and setting up a proper MVC into childsplay. On top of this, we run Zappa, which takes everything that makes Express great, and lets you code it in Coffeescript instead of straight JavaScript. Suddenly, you’re using a super-clean language that’s just a joy to use.

This leads to something interesting. Zappa ships with CoffeeKup as the templating engine, so you write your HTML templates, serverside logic, and clientside behavior all in CoffeeScript. No more funky data formats and weird convention differences– your client and server can literally share libraries and source code if you so desire. That alone speeds up the process of development tremendously. On any given day, I touch the database, controllers, several views, and the CSS stylesheets. The fewer times I need to re-adjust my slow, human brain to parse a different language syntax, the happier I am. (The only part of my codebase that isn’t in CoffeeScript right now is the CSS, because Stylus is cleaner, and CSS is sort of weird to begin with.)

This is not without some oddities of course. node.js is primarily an asynchronous framework– this means that all of the library calls pause execution while waiting for IO, and then resume that execution later. Rather than using functions that, for example, return data from a database, you instead pass a callback function as an argument, and deal with the data in the callback whenever IO gets around to finishing. For anyone who’s used to a traditional procedural language, this is a royal pain to adjust to. The main benefit of course is performance (because node.js can serve other pages while it’s waiting for your IO to complete) but it’s a rather unconventional way to code coming from a background in PHP. CoffeeScript does make anonymous functions and callbacks very easy, which helps a lot.

The other major benefit is performance. The way node.js works, when you start up your server, it parses and JITs your code (V8, Google, totally awesome) and leaves the instance running in memory. Because node.js can queue up requests and handle everything asynchronously, it doesn’t need to spawn a new processing environment for each pageload, but does it all using the instance that’s already
there. That means response times are quick and memory usage is minimal. It does mean that all of your code is always loaded, but that’s hardly an issue for the vast majority of sites. I find that, running no less than 4 node.js instances during development, the small PHP site that my server runs still uses 4x the RAM as all of the node instances combined, and that’s running through lighttpd with some rather restrictive process spawning limitations. I’m not sure how well node.js can balance high traffic, and I’ve yet to try load balancing, but I’m hoping this new project gives me an opportunity to do both.

Yesterday, I started doing gruntwork on a new project in Zappa, one that I’ll reveal later this month as it starts to come together. In the course of a single day, I was able to put together a fancy ajax navigation system, a real-time chat window, and a forums system. All that in a one day using Zappa! In any other framework that might have taken me several days. It is some seriously rapid development. The community is already strong around nodejs as well, even though it’s so young and not widely adopted. I’m using Sequelize to make MySQL work a breeze, Cradle for CouchDB when I’m feeling adventerous, node-validator to sanitize inputs, and several other odds and ends that make things breezy.

Would I recommend node.js? Absolutely. Is it the best language for any job? Of course not. No language is. It’s certainly capable of being a general-purpose server, especially with its low level socket APIs, but right now the support isn’t quite there for everything. As an HTTP server it totally rocks. If you’re willing to take the time to learn it, I think it’s well worth the effort.

Just to follow up my last post about how I couldn’t wait to sleep 20 minutes.  Later that day, after the nap, I took note about how I didn’t understand how I could stay up over 24h and feel horrible, sleep 20 minutes, and wake up feeling great.  I just don’t understand polyphasic math.

Last month I created this system.  I’ve always wanted to use grades (letter grades) in place of numbers in a system.  I think that managing too many numbers and bonuses focuses the mind incorrectly… in a game that should be about playing in roles, relative skill levels are what need to be challenged… not maximizing your skill numbers.  Also, this system is intended for those who want to focus more on roleplaying and don’t require supplements and rules to strictly define their world.  If your group works better with numbers, lots of rules, and splatbooks, there are plenty of systems that will cater much better than this.
I got to DM with this system on one occasion.  Setup for the NPCs was quick and easy, the players made characters they liked, and the 3-hour session went well.
This document is sort of two parts.  The main system, followed by a combat system that adds rules on how to develop and use combat and magic.  I’m publishing this primarily for discussion and to spur some ideas, secondarily for anyone else who might want to try it out.

==Foundation: a graded Skill system==

All skills are graded:
E, D, C, B, A, S
To gain a rank in a skill, a unique experience source is required.  Unique sources may be from a trainer, from character experience, from literature, from various masters, and from various places.  Gaining skill in combat, magic, and blacksmithing are all very different.  When tracking the rank of a skill, it is useful to track the source of that rank.  For example…
Knowledge of an ancient culture, D
E (bedtime stories), D (literature)
Gunblade User, C
E (longsword trainer), D (gunblade trainer), C (combat experience)
Weapons Master, C
E (longsword), D (spear), C (hammer)
The Knowledge skill would probably be ranked up from now on by discovering ruins and secrets that were passed down by the civilization, and may enable very rare supernatural abilities, contacts, or such things.
The Gunblade User intends to specialize, and he will learn tricks at higher ranks in order to get all sorts of strategic advantages over his opponents.
The Weapons Master assumes that his combat style incorporates all of his different weapons.  As long as he isn’t limited from using one or more of the, he can function at rank C in combat, comparable to the Gunblade user, and it assumes he will be swinging his sword, spear, and mallet all during combat (unlike a specialist who will use a single weapon, or who will switch weapons entirely, rather than incorporating them all into one fluid style).

==Foundation: Skill checks==

Skill checks are based on the difference.  If it isn’t an even match, whoever is the higher rank will get a +5 bonus for each grade he is above the opponent.  The difference an S grade has over an A grade is a +10, instead of a +5.  Examples:
C vs C, no bonuses
C vs B, B gets +5
C vs A, A gets +10
C vs S, S gets +20
To perform the skill check, each player rolls a d20.  If a 19 or 20 (a “critical”) is rolled, you can continue to reroll and add the values together.  Then, add your bonuses.  Bonuses come from being higher rank, and from advantages (explained below).  The higher number wins, and attacker wins ties.  If increments of success are needed, the act of winning counts as 1, plus another 1 for every 5 points that the winner exceeded the loser’s roll by.

==Foundation: Damage and Health==

For damage, a skill check is made (include all bonuses).  If the attack succeeds, the damage is 1 plus 1 for every 5 points the winner exceeded by.
Health uses a slightly different grade list: E, D, C, B, A, A+
Each point of damage lowers health by one grade.
There are two kinds of damage (terminology needs to be changed here): lethal and non-lethal.
Lethal damage is dealt by heroes (players and important NPCs), and can be dealt by otherwise unimportant NPCs that roll criticals.  Anyone else can only deal nonlethal damage, and heroes can choose to deal nonlethal damage if they wish.
If nonlethal damage drops health below E, the character is subdued and at the mercy of his opponent.  He may be knocked out, bound, kidnapped, or otherwise controlled, slowly digested, infected, etc.  Nonlethal damage usually heals after simple rest, and does not scar the characters.  Lethal damage is more realistic and may take an extended period of time or special skill in order to heal.

==Foundation: Combat and Advantages==

For combat skills:
E and D are “entry” ranks.  Pretty much you are expected to learn weapon(s) at these ranks.
At C and up you can begin to learn custom combat advantages (you learn 2 combat advantages per rank, if you choose to learn combat advantages).
At B and up you can learn skill tricks instead of combat advantages.  A skill trick would be something like a strike that doesn’t harm the innocent.
To reach S rank you must develop something new, it cannot be obtained from any source except yourself.  It implies mastery and breakthrough in the field.  It may be a completely unique fighting style, a completely new spell.
In noncombat skills, C, B, A, and S ranks are handled similarly.  A blacksmith becomes able to create more advanced works with each rank, but at each rank he could learn to forge a new mythical material, and at S rank he could create his own new material or forging technique.
Advantages when fighting:
Strategic advantages are advantages you make on the fly.  If you have some cover, better footing, higher ground, a longer weapon, etc, you can get a strategic advantage.  If you change the environment in a way that favors you or hinders your opponent, you have a strategic advantage.  Each strategic advantage gives you +2.
Combat advantages are advantages that come from skills.  A monk may learn an anti-slashing-weapon technique and get +2 against slashing weapons.  Fighting with restricted space, or a blatant expertise with a particular weapon (can only be learned once) could also be combat advantages.
The Gunblade User has gained the combat advantage for fighting with restricted space.  He can get this advantage with the gunblade or the longsword, since it is situational and applies to his entire skill (which isn’t 100% gunblade, since the longsword training was the foundation for learning the exotic gunblade weapon).  Later, at B or A rank he may specialize with gunblade usage and get a permanant +2 any time he uses the gunblade in combat.

==Foundation: Magic==

Magic is still not completely designed yet, but it is based on a few fundamentals:
Each spell requires 1 to 5 verses, where the simplest spells require 1 verse, and stronger spells require more.
Each verse requires one turn of casting.  If you are attacked and hurt while casting, you make no progress casting for that turn, but it doesn’t cancel out progress you’ve already made.
Magic up to 3 verses consists of the usual Element, Element-ra, and Element-ga sequence.
Magic ranks E, D, and C will probably each be gained by learning a new basic element (E could unlock the Fire set, D the Ice set, and C the Lightning set).  B and A ranks are gained by learning a single, powerful spell (Flare or Meteor, for instance).  To gain S rank in magic you must invent a new spell (or perhaps revive a long-lost ancient spell, or mix magic with technology, or something like that).

==Example Stuff==

I’ve encouraged the players to have (at least) one combat skill, one defense/perception/survival skill, and one hobby/job/interest skill
(the ninja-sorceror elf and warrior-mentalist guy) is now playing a dwarf-esper blacksmith-weaponmaster
his esper magic supports his forging ability, and his weaponmastery has a special twist.  Rather than mastering different weapons, he specialises in “his signature weapons” (he forges them with his own magic signature).  So he could become stronger with his weaponmastery than another weaponmaster, but he has to forge all of his own weapons, with the magic signature, which raises the rank of the item by a grade.
His focus is on the blacksmithing though, which was easy to tell when he cared more about hauling half a bag full of heavy ore than of being able to run fast (as a dwarf, lol) to save his apprentice from a bandit.
The two characters (this is their almost entire character sheets, minus the rank sources):
*Vlallin Stoneskewer*
Blacksmith C
Signature Style C
Perception D
Esper Magic D
Repairing D
*Leon Hart*
Gunblade User C
Survivalism C
Knowledge of a particular ancient culture D
Disciplined Magic D

I get to sleep for 20 minutes on the floor, 2 hours from now, and I can’t wait!  I’ve been awake for 26 hours now.  This next nap will begin my second attempt to adapt to Uberman.  This time, no more silly mistakes, like ruining Uberman after I’ve already stabilized on it.

In fact, I’m going to really be taking more like ~25 minute naps for a while, so that what happened last time won’t happen again.  26 hours ago, I woke up from only 4 hours of sleep.  I’ll need to restore my energy while doing break-in so I don’t hit that regressive state again.  After I am back up and running I’ll trim off the excess nap time to 20 minutes.  I’ll be sleeping on the floor, during break-in at least.  I have also purchased caffeine (in the form of Code Red Mountain Dew) and Monster energy drinks.  The side effects they’ll cause (some lack of sleep) will be countered by me having slightly longer naps to begin with.  I only intend to use these drinks to help me get through the difficult periods of sleep deprivation, like how I used them during my E3 break-in.  I’m going to be hooking up my cell phone to my computer speakers… I will definitely not be able to sleep through alarms now.  I’m combining this with my 3-very-hard-math-problems tactic, which requires me to get on the computer in order to solve the math problems.

I guess I can try and describe my current state… I didn’t exactly return to E4.  I’ve had, and dealt with, some alarm problems, and basically my sleep has been very chaotically (unscheduled) biphasic.  I’m quite sure my total sleep hasn’t hit 8 hours on any particular day.  Probably close to about 5 or 6 hours?  So I’ll be attacking Uberman from a not-quite-as-great position this time (my E3->Uberman transition was very ideal, I think) but I’m not too worried.  It might not be as easy as my first attempt, but… my first attempt was… very very easy.  It should still be within the realms of bearable, not as bad as my original mono->E3 was.

It’s simply not going to happen.  I was too strict while trying to adapt to an already strict and harsh schedule.  This may sound a bit silly, but I believe I sleep deprived myself too much.  I’m going to be falling back and returning to Everyman.  I’d like to move to Everyman 4 (1.5 hour core + 4 naps).  The naps and beginning of the core will all match nap times from my existing Uberman schedule.  After having a week or so to settle down, I would like to attempt Uberman again.

I overslept 3 times.  And by overslept, I mean I slept an extra hour or two.  Meaning, even when I oversleep, my total sleep for the day barely hit 5 hours total.  It’s sort of amusing, really.

The adaptation to Uberman never occurred, so I felt none of the benefits that are commonly associated with Uberman.  Overall, the two big things I felt were:  losing track of time.  It’s hard for me to believe its been a week and a half.  It felt like no time had passed at all.  Looking back on it from today, though, I’m thinking… it was only a week and a half?  It felt like much longer.  The other thing I felt was… disconcerted, from the lack of a core sleep with which to separate my days by.

Right in the middle of this attempt, I think I was at a stable point, but I blew that chance by being too strict.  At that stable point, it was exciting, because I was at almost my full power (surprising, because I expected more backlash from adaptation than I ran into) with only 2 hours sleep per day.

edit: So to clarify, I’m withdrawing because I observed regression after the point I think I had actually begun to become stable on Uberman, which is very bad.  The observed oversleep was a sign of the regression, not the cause of it.  Next time I attempt to adapt, I will try to be more strict about getting to bed, but I will also be careful to designate enough time for wind-down, and I won’t short myself on nap time as a penalty for being imprecise.

On the 2nd, I slept from 4am to 7:40am.  My cell phone was muffled and I couldn’t hear the 4:20am, 5am, 6am, or 7am alarms go off.  So for that entire time, my cell’s screen was turned on (and it got really hot) and it vibrated (the battery was on empty).  I had been doing well so far so I had skipped setting my second alarm that night.  When I woke up I plugged in my phone, set my other alarm, and went back to sleep for my 8am nap.

4am to 7am was the time of my Everyman 3 core.  I had a bad headache when I woke at 7:40, and another when I woke up at 8:20.  I haven’t had any mess-ups like that since then.

On Wednesday, around 8am, the brick wall of sleep deprivation slammed me.  I did not give in, but it stuck with me until 8pm, when it lightened up some.  Waking up from naps since then has been difficult.

I think this is the result of my strict sleeping (lay down at the hour, always get up at :20, even if you laid down late)… because I seem to have sleep deprived myself in a rather thorough manner that’s not shrugging off after 4 or 8 hours.  I will start laying down 10 minutes early, to give myself time to wind down (I have been… not winding down recently) and to make sure I actually get the complete 20 minutes of sleep.  In the future I’ll trim down on these times as appropriate, but I need to be getting sleep so I can at least be somewhat productive.

I also need to start drinking more water (I have become a bit dehydrated recently) and strategically drink soda (caffeine-free) to combat the drowsiness.

I decided to start a minecraft challenge map called SkyBlock 1.1, which can be found at the other end of this elegant and finely crafted link. I’ll be playing this in Normal mode at all times. That’s not a big issue at the beginning, because the map isn’t exactly large:

That's a tiny island!

That tree is *precious* at this point, as it’s my only source of renewable anything. Oh, before I forget, this map comes with a set of challenge objectives:

Challenges:
1.Build a Cobble Stone generator.
2.Build a house.
3.Expand the island.
4.Make a melon farm.
5.Make a pumpkin farm.
6.Make a reed farm.
7.Make a wheat farm.
8.Make a giant red mushroom.
9.Build a bed.
10.Make 40 stone brick’s.
11.Make atleast 20 torches.
12.Make an infinite water source.
13.Build a furnace.
14.Make a small lake.
15.Make a platform 24 blocks away from the island, for mobs to spawn.
16.Make 10 cactus green dye.
17.Make 10 mushroom stew.
18.Make 10 Jack ‘o’ lanterns.
19.Build 10 bookcases.
20.Make 10 bread.

These are going to be interesting. I lack iron or any ores, so I’m stuck with wood and stone tools. I also cannot make pistons or redstone mechanisms of any kind. The pumpkin worries me the most, as I’m still running 1.8. The only way to get pumpkin seeds is to break the stalk, which has a chance to drop 0 seeds. That’d kill the run right there, so it looks like I’m stuck with just one pumpkin plant for now.

I started out by flattening out the first 2 levels of the island. In the process, I discovered 3 sand blocks buried inside the floating island. I chopped down the tree, picked up the 1 sappling that fell from the leaves (just one? Really? -_-) and looked in the provided chest to see the following:

A Chest!

 

The first thing I build is a bed, so that I can set the night back to day at will. I use the 12 string provided for the wool. This is not necessary, but it makes my nights less worthless at the start because I have no torches to grow trees. That bonemeal is an option, but until I have a steady, safe supply of skeletons, it’s precious like everything else in that chest.

Challenge 9: build a bed, complete.

My attack plan at this point is to get a tree farm running pronto. This is slow going, but it’s steady progress and I’m collecting a lot of wood. (I watch quite a few youtube videos while this is going on.)

It speeds up considerably once more sapplings drop and I can grow more than one tree at a time. I split the logs into planks and expand the island outwards. I fill in the bottom of the island to create a dirt square, and then expand the island 8 blocks in every direction. Finally, some room to move! This is still less than 24 blocks in width, so no mobs will spawn. (I have a plan for those guys later.)

Tree farm + Youtube for hours = Platform ^_^

Challenge 2: Expand the Island, complete.

I built an infinite water source using the two ice blocks, and a cobblestone generator using the provided lava bucket. This gives me infinite cobblestone, the first 8 of which go directly into a furnace. Hooray progress!

Water Pool

Cobblestone Generator. Semi-automatic too, using just one water source block. I replaced the dirt with cobblestone after I took this screenshot.

Hooray! A furnace finally!

Completed:
Challenge 1: Build a Cobblestone Generator
Challenge 12. Make an infinite water source. 

Challenge 13. Build a furnace. 

Next up on my list is a series of farms. I decide to tackle the pumpkin, watermelon, and reed farms all in a small area. The pumpkin is especially slow because I can’t harvest seeds, but I eventually get 3 melon plants going, and I can refill my food bar again. That’s a relief– I don’t like running around with half a heart for that long. While I’m at it, I set up the 3 sand blocks and get cactus growing. I don’t see much point in making an automatic cactus farm for just 3 plants, so I harvest them manually. Once I’ve got 10 cactus, I use the furnace to make my 10 green dye. So far so good. ^_^

It's so lonely...

Completed:
4.Make a melon farm.
5.Make a pumpkin farm.
6.Make a reed farm.
16.Make 10 cactus green dye. 

I’ll eventually have enough reeds to make the 10 bookcases, but that’ll take a fair bit longer to grow. I just have to remember to collect every once in a while as I work. While I’ve got the furnaces going, I cook up a large amount of the logs and finally have coal with which to make torches. Huzzah! Now my place is lit up at night, and it’s safe to venture forth outside the 24 block radius without fear of wandering creepers.

My tree farm still isn’t particularly fast, and there’s a limit to its speed because I only have so much dirt to work with. I decide to use the cobblestone generator to give myself some more building materials, and then get to work on building a mob pad. I use a design by ethoslab which is quite effective, and which also happens to avoid spawning endermen, which would cause me all sorts of trouble. I build this 27 blocks in the air, with the bottom block at height 92. Mobs are directed to an opening in the bottom and fall to their deaths, leaving a nice pile of goodies for me to collect.

This gives me an infinite supply of sulfur, string, arrows, bones, and rotten flesh:

That was a *lot* of cobblestone. Those generators are not fast.

The inside has water channels that push the mobs to a central hole for processing.

Rotten Flesh! YES!

 

By the time I finished building this mob tower, I had collected way more than enough reeds to make the 10 bookcases. (I was running to my farms in and out while grinding cobblestone.) Since I’m going to need lots of mushrooms, I take the leftover wood and build a simple mushroom farm. Just a semi-dark room really.

I missed a golden opportunity to conceal the door behind one of the shelves. Alas!

 

Completed:
11.Make atleast 20 torches.
15.Make a platform 24 blocks away from the island, for mobs to spawn. 
19.Build 10 bookcases. 

I use my newfound source of bonemeal on the grass and create seeds, allowing me to create the wheat farm. Hooray! This also gives me a limitless supply of roses and dandelions, should I find a use for them. I’ve since expanded my melon farm a bit, and my poor pumpkin is still lonely. I’m up to 6 pumpkins at this point, not quite enough. My mushrooms are also taking *ages* to spread. Ah well.

Bread! Delicious.

Completed:
 7.Make a wheat farm.

The major challenges that remain are the House and the Lake, which will expand the island even more. I decide to work on the Lake first, as I want a lakefront house. I’m not sure how extravagant this is going to get. I’m rolling over in string, so I also start collecting wool and various dyes for a side project.

I get started on the lake first. I figure, with limited time, resources, and patience, it’ll really end up being a small pool, but it’s a lake in spirit. While I’m at it, my brown and red mushrooms finally spread. Yay! I grow a brown mushroom on the corner, then I get the brilliant idea to kill two birds with one stone: A giant mushroom house. This is the end result:

A small pond with big dreams

I spent ages getting the red mushrooms to all spawn at their smallest height, and ended up with nearly 2 stacks of them by the end of it.

The interior's a bit... lacking. Ah well.

Completed:
 2.Build a house.
8.Make a giant red mushroom.
14.Make a small lake.

I’m finally nearing the end of this challenge! The only things remaining are number-based puzzles, and I quickly get to work on those. I’m up to 8 pumpkins so far, so I should have those done by the time I finish collecting everything else. A couple of hours later, I stash the goods in a chest in my new house:

The Pumpkins took nearly the entire challenge to grow!

Completed:
10.Make 40 stone brick’s.
11.Make atleast 20 torches.
17.Make 10 mushroom stew.
18.Make 10 Jack ‘o’ lanterns.
20.Make 10 bread.

All in all, this was a fun challenge map. ^_^ For grins, this was my final inventory in the other chest, with all the items I collected during the entire challenge:

Mob spawner -> Bonemeal -> Roses -> Red Dye + Bonemeal -> Pink Dye + (String -> Wool) -> Pink Wool!

The mob spawner didn’t seem to be very good at killing spiders (they kept climbing up the drop tower, which I might have fixed if it were made of glass, as I don’t think spiders can climb transparent blocks) so the string production was low. I might have collected enough wool to make some fine art, but alas! Maybe another day.

This kit can be obtained via torrent, here.Stage Listing  (torrent is 3.05GB, and you’ll need about 10GB free for the install process)

Getting started with modding Oblivion is a very daunting task, with so many different tools needed that must be used in particular ways in order to get everything flowing properly.  I have read many instructions that explained step-by-step how to mod Oblivion, but hunting down and making sure the pieces are all compatible is still left up to the inexperienced new modder.

I think this kit will be useful to new modders and more experienced modders alike, providing a conclusive foothold to get your Oblivion ready for the majority of other mods you will come across.

I created this kit while following “Knots’ guide to a beautiful Oblivion”.  You will find a loose correlation between the guide and this kit.  I was compelled to create this kit when I found out how much hunting I had to do to get all the different pieces for each step of the guide, and I decided I didn’t want to put my future self through the hassle when I inevitably would return to mod Oblivion at a later date.

I appreciate all the help I can get with seeding!  This was the most convenient way I can provide it for everyone, as I cannot host it from this server, and free file distribution sites would have been a big hassle for people trying to obtain the kit.

Happy modding!

edit: it has come to my attention that OBSE (a critical part of many, many mods) has begun to require that you have Shivering Isles installed.  You can obtain it legitimately via Steam, and that edition will also come with Knights of the Nine.  Also, this guide was written with the Steam version in mind (though it will work fine with a non-steam installation that has both Oblivion and Shivering Isles installed).

The extreme sleep feeling went away after my 8am nap.  It returned later around 8pm, but it was much more bearable then.  Seems that as long I keep occupied with mindless business, I don’t get struck by that urge to sleep.  Went over to hang out with my friend and his wife, had a lot of fun (and a delicious, homemade dinner).

Zombie Mode, Engaged

I woke up without enough sense to shut off my alarm.  It wouldn’t be quiet even though I tried turning it down a lot, it would turn right back up to [too loud to sleep].  So, no oversleep.  Just some aggravated-at-my-alarm-in-bed time that did not involve sleep.

© 2011 Polyphasic Programmers Suffusion theme by Sayontan Sinha