Welcome to CrazedSanity Dot Com!
Home of the Dynamic Content System (cs-content)!
Server Time: 02-06-2012 06:46:18 CST
User: Pass:
I Got A Plan
Wednesday, December 28, 2011 08:30 PM

Yes, I have a plan.

No, you can't see it.

Due to the laws of physics and for the good of the space-time continuum, I am only allowed to remember small, usually disconnected fragments at any one given time.





Geek Heirarchy
Tuesday, November 29, 2011 08:04 PM

My mother-in-law sent me this one.  Finally effectively explains the difference between geeks & nerds.

Geek Hierarchy


Geek:

Understands, creates, & fixes
Really Cool S
tuff.

Nerd:

Understands & collects
Really Cool Stuff.

Dork:

Confused by
Really Cool Stuff.






Censoring Censorship Opponents
Tuesday, November 15, 2011 08:24 AM

Irony Alert: The House is holding hearings on sweeping Internet censorship legislation this week -- and it's censoring the opposition! The bill is backed by Hollywood, Big Pharma, and the Chamber of Commerce.

All of them are going to get to testify at the hearing, but the bill's opponents -- tech companies, free speech and human rights activists, and hundreds of thousands of Internet users -- won't have a voice.

Please click here to demand that they let us censorship opponents testify too:

http://act.demandprogress.org/sign/sopa_testimony/?page=154&referring_akid=a2351511.694013.INMu_9&source=auto-taf

As if you need a reminder: This is the most offensive Internet legislation we've seen in years. It will give the government and corporations new powers to block Americans' access to sites that are accused of copyright infringement, force sites like YouTube to go to new lengths to police users' contributions, and put people in prison for streaming certain content online.

This sham of a hearing represents everything that's broken about our political system. Will you click here to demand that opponents of the Blacklist Bill be allowed to testify this week?

http://act.demandprogress.org/sign/sopa_testimony/?page=154&referring_akid=a2351511.694013.INMu_9&source=auto-taf





Wuala, Part 2
Tuesday, November 08, 2011 06:41 PM

You may have read my initial reactions to the backup system, Wuala, back in August ("New Backup System to the Rescue, Wuala!").  This is the follow-up.  I promise.

Have you ever been just sitting there, minding your own business, when someone comes along and offers you something that is totally cool?  Not food, but something else, that can be used indefinitely?  There's some trade-off they're willing to make... imagine somebody offered you an iPad 8 (or whatever the current number is), and says you can use it for as long as you allow them to use your iPad1.

You think to yourself, "wow, that's sweet.  I can use this new system as long as I give them something sort of similar in return... something I'm not using anyway."  Yeah, that would be friggin' awesome, right?

Suddenly, this person tells you that they don't want your iPad1.  They don't give any specific reason, they just don't want it.

The problem is now you're dependent on the iPad8.  Sure, you can go back to the old one, and it will probably do just what you want... but that's not the point

"Oh, no, you can still use my iPad 8 for a year. I realize it was cruddy that I took it away... so here's the deal: I'll let you continue to use it for free for another year, but then you're going to have to pay a monthly price.  If you don't want it, I can downgrade you to an iPad1."

"What the hell!?!?"  Yeah, exactly.  Well, believe it or not, that's exactly what Wuala is doing.

With Wuala, I had:

  • "cloud"-based storage
  • time: if all my servers went down, the files are still out there while I fix the servers
  • easy sharing of files anywhere

Now I'm back to the old way of doing things.  Create backup, put on backup server.  Pray backup server doesn't go down if the main server goes.





Facebook and ADOH
Wednesday, October 19, 2011 08:52 PM

Oh, I just remembered I should check Facebook.  [Name Here] said they sent me a friend request.

[three minutes pass]

Damn.  So many apps, so little time.  I gotta start playing all these games or blocking them.  This is kinda ridiculous.  Oh, I'll just block them.  I've got better things to do than pretend to harvest fields and click links to make me feel like a gangster. 

[two minutes pass]

Oh, somebody tagged me in a conversation!  CLICK!

[about 60 seconds later...]

That's a really cool picture.  So thoughtful of a dry cleaner to put up a sign that they'll clean your clothes for free if you're unemploy....

[30 seconds later...]

Such a cute puppy.  I doubt it's actually the size of a pop can, though.  I wonder if that person was hoping to get money from...

[10 seconds later...]

Mark Zuckerberg has a dog?  POOP ON HIS FLOOR!

[2 seconds later...]

... oh yeah, that's a cool page.  I should 'like' it...

[moments later...]

A bunch of my friends want Beast to poop on the floor.

Hey, when did I get that app installed?

I said something on Twitter?

How do hash tags work?

Hey I know her.

Ooh, shiney.

------------------------------------

Attention
Deficit
Ooh
Shiney





Animal Lover
Tuesday, September 06, 2011 07:44 PM

I was wandering around the Internet the other day (i.e. sometime within the last few months) and I happened upon something that mentioned animal lovers.  And it got me thinking.

I went home and looked at my animals.  All six of the were lounging about like always: Ebby was on my stomach, nonchalantly easing his way ever closer to my keyboard; Lucky was close by Ebby, trying to act so cute while attempting to garner my attention; Lance was cleaning himself on my wife's lap; Garfield (a.k.a. "Little Man") howling for attention after having been left alone for almost two full minutes; Katie was laying on the folded sleeping bag she had stolen from one of our friends; and Goldie was laying on the floor near my chair.

I've always considered myself an animal lover, but it seems I'm nearing the edge of sanity in that regard.  Especially considering my animals, their conditions, and how they came to be in my care.

Ebony (a.k.a. "Ebby") is the only one of my pets that I didn't inherit.  One day while visiting a friend's farm, my girlfriend (at the time) was all warm and gooshey about getting a kitten from the new batch that our friend's outdoor cat had just littered.  I already had a cat ("Tigger," R.I.P.), and I really didn't want to deal with another.  I reluctantly went out to look at the kittens, mostly to quell the gooshieness, adamant that we were not going to have another animal.

We went outside and I picked one of them up.  I figured I'd be safe by picking up the runt, staying firm on my anti-new-animal position... but this black ball of fur started purring immediately after I gathered him up into my left hand.  Each time I tried to renew my position, I was interupted by the realization that this kitten was still purring.  We must have been out there for 20 minutes, and this little thing just would not stop staring at me and purring.

I could count on one hand how many times he stopped purring over the next six months, and I wouldn't have even needed fingers.  He slept on my neck every night, secretly antagonizing my older cat, Tigger, whenever I wasn't looking.

As the years rolled on, he got the alias "BOK," which was an acronym for "Black Ops Kitty."  He somehow managed to hide in plain sight in the middle of the room.  He would crawl onto my lap and announce his presence subtly over the next few minutes by carefully placing his head over my arm and purring.  What a cat.

Now he's getting up there in age.  He was just recently diagnosed as "pre-diabetic," so he's now on a strict diet of a special "dietetic" cat food in a can.  Completely blind in his right eye and nearly as much in his left, he now creeps around with a bit less subtlety, occassionally running face-first into a wall when he's excited and isn't quite paying attention.  After being forced to move a half-dozen times around the time Bismarck's "great flood," I'm still amazed at how quickly he finds his way around a new place.

 Lance (a.k.a. "Stumpy" or "Big Man") is our second oldest cat.  He's a beautiful grey and white cat.  He has quite possibly the softest fur I've ever felt on a cat.

Originally he was my Aunt Hazel's cat, God rest her soul.  When he was just a kitten, he lost his right front paw due to a terrible mishap from declawing.  He was found on my Aunt's bed in a pool of his own blood, paw hanging off after he'd gnawed it almost completely off.

He got shuffled around for a while, living at the Farm, my brother's house, then his girlfriend's, then the Farm, then eventually by me and my Wife.  I'm always amazed by how powerful he is, and how he can still smack you with his stump like he was a little boxer, and how he can manage to hide so quickly when a stranger comes by.

Lucky came upon us while my wife and I were living out at the Farm.  We were moving some massive tree stumps off a trailer when my wife heard this quiet, nearly imperceptible "mew" from the tall grass (it was probably less than a foot tall).  She searched about until she finally found this tiny little furball--smaller than Ebby--crawling toward her with purpose.

This tiny kitten, no more than a month old, was very nearly on her death bed.  Emaciated so badly that every rib was showing, infested with fleas, she was incredibly lucky to have been found at all.  I still don't know how she managed to avoid the truck and trailer, the massive 200+ pound chunks of wood being rolled and dropped off the trailer, or to have been heard over the radio we had blaring at the time.  For all those reasons, and despite all those that told me "Lucky" was a terrible name for a female kitten, she received her official name.

We brought her to our vet, who told us she was incredibly lucky to be alive, and that she probably wouldn't last the night.  My wife put her foot down, saying something like, "she goddamned will survive!" and proceeded to spend literally every waking moment feeding her formula and anything else that would pack on the pounds.

I am happy to say that, two years later, she is a beautiful all-grey kitten.  Everyone that sees her and hears the tale of how she came to be is amazed at how she has become such a healthy feline.

Garfield (a.k.a. "Little Man") came to us just a month after Lucky.  We were having supper when my little brother heard the sound of a herd of kittens outside.  When my wife and I investigated, we found five or six kittens in a half-circle, moving upon our two dogs like an army.  A tiny, hungry army.  Something like a week prior we'd seen their mother's corpse on the road: we'd seen her before with a pregnant belly some time ago, and saw that she had lost that belly at the time of her demise.

Over the next few hours we rounded them all up.  The first few were pretty easy to catch, as we simply put some food out for them; they really didn't care what we did with them as long as we kept those food dishes with them.  A couple of them were more difficult to catch, with the last one, a tiny little orange and white one, giving us the run-around in the bushes and finally ending in the engine compartment of an old car.

We managed to give all but one away to loving homes, even the calico that we had the nasty "rabbit fly larva" sticking out of her side; we found out it was a fly larva (and not a bone or something else just as unsavory) after realizing that it moved when we touched it.  Thank goodness my wife's mom knew just what to do from her time at the Humane Society.

After having no luck getting a good home for Little Man, my wife managed to convince me that we should just keep him.  We'd had him for so long at that point that we'd both become quite attached.

I am happy to say again, after two years, that he's in perfect condition and is a fountain of non-stop energy.

Goldie and Katie are the two dogs we inherited from my Aunt.  When she passed away, we were told that my wife and had the only home (well, homes, I suppose, since we weren't married at the time) that were capable of having them.  They were family, and you don't just let family get split up or sent away.

Goldie is a white and gold colored shitzu.  She's mostly blind, and has this hilarious "howl" where she tilts her head up, starts a howling noise, goes quiet, and ends with a little "sneeze."  Almost like the middle part was muted or something.  Absolutely adorable.

Katie is a dirty white shitzu-poodle cross ("shipoo?").  She's got a skin condition that pretty much keeps us from grooming her, and we have to bathe her in a special shampoo and occassionally spray her with some anti-itch stuff.

Both of them have been trained to do a little dance for their treats at night.





New Backup System to the Rescue, Wuala!
Tuesday, August 23, 2011 09:52 PM

No, that wasn't some terrible spelling for the French word "voilà", it is actually the name of an awesome backup program that sounds the same. 

"Wuala" is just really cool.  Technically it is a monster, but the kind that looks really slick, the kind that you want to have as a pet.  You know, watching a movie, something appears or transforms, and someone else screams, "holy shit, I WANT ONE!"

It's really nice to use as well, especially if you add the "filesystem integration" stuff: in Windows, it gives you a new drive letter, "W:" (in Linux this shows as "~/WualaDrive/"), so it's a breeze to use.  There are cool features like "sync" and "backup" as well: sync ensures that the folder you select is always up-to-date in Wuala; backup is basically the same, but you can set it to only backup in certain intervals (where sync is always "continuous").

Sharing is pretty simple.  Get an account, give your friend the username, add 'em to contacts.  Done.  You can share out folders with them, and it's pretty straightforward.  stuff shared by contacts is viewed by going under "Contacts" and then under that user's name.

Group sharing is also available.  It is a level beyond sharing between users, as you can select who is a user, who's a moderator, and who's an administrator.  Members can't do much of anything beyond just the files; moderators can invite/approve new users, and Administrators always have full access.  Roles can be changed and so can permissions, with the one constant being that, no matter what, an administrator always has full access.

I'm planning on putting up another entry at some point that is more in-depth.  I will cover:

  1. Comparisons to Google Docs
    • maximum storage
    • uploading vs downloading
    • etc.
  2. Security
    • versus Google Docs
    • versus Dropbox
    • versus others
  3. Groups vs sharing between contacts
    • how storage works
    • changing who is storing a file (whose storage a particular file is counted against)

Anyway, I'm sure you're sitting at the edge of your seat... so stay tuned!





If God Were a Geek...
Wednesday, July 20, 2011 10:36 PM

Geeky things seem to always get a much broader scope than others.  I start out wanting to have some simple way of selecting characters to add to a campaign in TTORP, and I spend hours building a bunch of crap that is important, but a lot of it is just crap that might vaguely lend itself to the end goal, but ends up just sitting there... and then, instead of one little project, I end up with a bunch of different, loosely related projects that scream for attention.

But what if God were a geek?

"I just need to see a little better..."   -- AND THEN THERE WAS LIGHT

"I need a source for the light, instead of just 'everywhere'... ooh, what about a big ball?"  --- THE BIG BANG

"Aw, crap.  These little guys keep asking questions I don't have answers for... meh.  Let them fill in the details."  -- BIRTH OF PSYCHOLOGY

"Okay, they're looking too close.  Maybe if I make it so that light has a finite speed..."   -- THE SPEED OF LIGHT WAS BORN

"Seriously, thunder doesn't always need to follow lightning."  -- SH*T YOU CAN"T UNDERSTAND (we call those "features")

"That ball of light is so neat.  What happens if I change this one little number..."  -- THE FIRST BLACK HOLE (oops)





Duke Nukem Forever - No Longer Vaporware
Tuesday, June 14, 2011 09:41 PM

Over a decade in the making, voted vaporware of the year so many times, and now... well, the picture says it all.





The Flood Journal
Monday, June 06, 2011 03:00 PM

So I'm in the middle of a flood, in case you didn't know, and things are just crazy.  I am going to be typing up my thoughts day-by-day here, reminiscing about the first few days, and basically just updates.  I've got a bunch of pictures, so I'll be using those as well... hopefully the timestamps on the pictures will help me remember the sequence of events (I'm chronologically challenged).

I'll be adding entries either by the same name or sub-headings with dates to show what's going on; I'll update the entry date whenever I do an update so you'll know when it is updated (via the front page).

Oh, and presently I'm connected to the Internet via my Droid, which doesn't exactly have pimptastic speeds.  So uploading may take a while.

DISCLAIMER: I'm not sure if the days are right on these or not.  I'm going by the timestamps on my camera & what I can remember based on those pictures.  You'll get the gist, even if it is off a little.

 

Tuesday, May 24th - "No Worries"

One of my co-workers stopped by my desk to ask me about the flooding.  Something about Garrison dam.  I confidently told him that I wasn't worried about any flooding, even though I didn't really know what he was talking about.  I'd heard a very little about it, mostly through the flood advisory on the link to WUnderground on the main page of CrazedSanity.com.

After talking about it for a while, I took off work early to look at some things.  I don't remember exactly what, but I did end up having lunch with my wife and our roommate.  We talked about it, figured out some things so we could survive at the farm in the event that the road got closed-off, and some other stuff.  I was pretty confident that we'd be okay. After all, they were only kicking-up the releases at Garrison Dam by about 20,000 cfs... nothing too big.

That night I went out to do some volunteer work, after having to go back into town to get my car.  I chose to go down my normal route, 12th street, which I found out too late was in the midst of a massive traffic jam.

  

Turns out that an intersection (in the image above) was crammed with people.  Idiots passing through the intersection were stopping to talk to the Sherriff, blocking the intersection while doing so.  It took me an hour to go a single mile.

I went home, got some food, then went to the closest sandbagging location.  My wife bid me farewell, saying she'd see me in 20 minutes (it was already pretty late).  I helped for something like an hour and a half, until there was no light left.  All in all, a very cool experience with a lot of very cool people.  Everyone was really happy to get the help, which I explained was just "paying it forward," in the hopes that I'd get that same kind of help when I needed it.

 

 Wednesday, May 25th through Thursday, May 26th - "Oh Boy"

Sittng at work, I hear some concerning news about how much more water is going to be released by Garrison Dam.  Trying not to panic (rumors always seem to be so much worse than the truth), I started looking up some information so I knew what was really happening... that's when reality struck.  More than a few maps showed projections indicating that the road out to my place--the ONLY road, mind you--would be completely overtaken by water from Apple Creek.

Some information indicated that the river was going to rise much higher than previously expected.  I looked more, found even more alarming reports, so I decided to leave work.  I'd just received an email saying that I (well, any employee) shouldn't worry about taking off work to help with flooding, like filling sandbags or whatnot: "just do what you have to do, we'll figure it out later."  So I left, meeting my wife and some others at Cozy Creek Coffee.

We discussed a bunch of stuff.  Looked at flooding projections.  Called my mom, who was out of town on vacation, to ask her about some things & to see if we had flood insurance (yes, in case you didn't know, I live with my mother).  I got some reassurances from her, so we decided to go do some sandbagging to protect the house.

We spent most of the day making sandbags.  Some co-workers and friends showed up, so the experience was pretty good, though a bit painful.  After a few trips, I took a picture to show those still sandbagging just how much progress we'd made.

It took a few truck loads, but I think we did a pretty good job.

Friday, May 27th - "Reality Strikes"

Driving around town was a real eye-opener.  Even Cashwise was constructing a dike.


 

More sandbagging.  We got to use some heavy machinery, so things went much faster.  Instead of building the entire wall out of sandbags, a backhoe bulit two and half by digging a massive hole in the backyard & using that dirt.  I can't imagine how much work it would have taken otherwise.

Had lots of helpers today, a big thanks to all of them (many were there from previous days, too).

 

Saturday, May 28th - "More of the Same... Kinda"

More sandbagging.  Got to use some heavy machinery again, thank goodness.  Made the day go by much quicker.

Early in the morning, we managed to get to the sandbagging station early enough to get pre-filled sandbags.  Two truckloads worth in just a few minutes, which saved us several hours.

 

Sunday, May 29th

Managed to get enough time to take a few more pictures.

The hole in our backyard started to fill with rising groundwater.  The fear at this point was that it would rise enough to overtake our drainage field, which would cause water to come up through the basement plumbing.

The house from just in front of the hole.  Most of the grass has been trampled by the heavy machinery--a bobcat & a backhoe.  Doesn't really matter anymore that the lawnmower broke a belt & wasn't able to finish mowing I guess. :)

 

Monday, May 30th - "Starting Evacuation"

    

Sitting outside, we contemplate what we absolutely must have.  Apparently, Goldie (first two pics) was looking at the new scenery, while Katie (last picture) was simply not a fan.

The National Guard stopped by and brought some pallets of sandbags.  I didn't see a lot of it, but managed to snap a picture as they headed further down the road to check on my neighbors.

  

The cats weren't thrilled about the move.  But aren't they cute?

 

Tuesday, May 31st - "Picture Day"

Seeing these big trucks everywhere is now a very common occurrance.  Pretty much every intersection has police or National Guard directing traffic, stopping people whenever any of these behemoths are on their way.  Expressway is closed to anything but trucks.

Ten hummers on University Drive as we're getting ready to turn toward 48th Avenue.  Holy crap!

Our sandbagging site.  Doesn't look nearly as packed as it had been.

     

Stopped by the corner of 12th Street and Oahe Bend.  The Missouri is incredibly high, though not quite at flood stage.

The Missouri is poised to strike at this guy's backyard, living on that very same corner.  Can't say I envy their location.

 

The road to the farm is closed.  And the sight of houses with sandbag dikes around them is becoming pretty common... in fact, it is becoming uncommon to see a house WITHOUT sandbags.

    

Apple Creek, just a few miles from the farm.  If this road gets flooded, there will be NO access to the farm or any other places, such as Briardale. 

 

The groundwater rises in the ditches.  People continue to sandbag.

  

The road to South Fork (left) is closed: they've been fighting rising groundwater for quite some time.  The field behind a neighbor's house (right) can be seen completely covered in water; not sure if this was overland flooding or rising groundwater.

 

Updated pictures of the dike around the farm. Over 10 tons of sandbags to cover most of two walls, plus along the top & bottom of the dirt portions.  what a nightmare.





Crazed Ape Comet
Friday, May 13, 2011 08:07 PM

Did you look at the title and suddenly wonder if I'd gone crazy?  Or maybe you clicked the link because of the bizarre name?

I haven't gone crazy.  I may have purposely made the title a little weird, but there's a reason. 

I've been working on TTORP, the Table Top Online RolePlaying system, for some time now.  One might even say it's "my baby."  And one of the components to that system, besides awesome character sheets, is an interactive map: a page where players can see a map of what is happening in real time, so they can see the position of other characters, monsters, buildings, etc.  Far better than trying to explain it all in detail, and players don't have to try to keep the layout of the world in their heads or try to map it all out.

Anyway, blah blah blah.  I ran some testing using AJAX to see how responsive I could make the app, blah blah blah, found out it was incredibly intensive on the server.  Doing things that was simply wasn't feasible.

Then I found a nifty project called "APE" that used something called Reverse AJAX, or AJAX Push Engine (a.k.a. "APE").  Anyway, the difference between using AJAX to poll the server as fast as possible versus APE can be summed up pretty quickly: with AJAX, the browser is flooding the server with, "anything change yet?" requests, most of which are met with "no."  With APE, the browser just says, "hey, I'm listening now," and the server response once something happens.  This type of server is also called a "Comet" server.

There's a bit more to it than that, but you've got the basics.  If you want to know more, check out the APE project.

NOTE TO SELF: this blog could stand to have a few more links to relevant information.  Meh.





TTORP Gets Campaigns... Finally
Wednesday, May 11, 2011 11:58 PM

For those of you that have been following the development of TTORP and/or using it, you know that there's still a lot of work to be done.

One of the fundamental bits of the system is campaigns: linking a list of character sheets together so the GM/DM can easily access them.  It has been missing for awhile, and on the character sheets the "Campaign" field simply showed as "Fix me" (or something like that).  Now the linkage actually works: for the most part, character sheets will simply show "N/A" in that box, because they're not associated with a campaign.  Once the GM/DM gets their campaign created, they can add character sheets to it, and it will show the updated value.  Yay!

For Players

Right now, players don't really have much control over things.  There's no way to link your character sheet to a campaign, and getting it linked really does nothing more than update the value in that campaign box:

Check out the highlighted part

For DMs

Right now it's just a way to keep your list of character sheets handy.  So, the page (when campaigns are listed) looks something like this:

Creating a campaign is obviously the first step.  It's pretty simple, after clicking the "Create a new campaign..." link:

It's a pretty nifty dialog, courtesy of some jQuery goodness.  Anyway, just type stuff in & click create; canceling is done by clicking the "x" in the upper-right corner, clicking "cancel", or pressing the escape ("<ESC>") key on your keyboard.

Once you've got a campaign, just click the "Add Players..." link.  That brings up another dialog.  See below.

There's a bit of a twist, which might seem a little less-than-straightforward: you don't type in a number here.  Instead, just start typing in the character's name, and it'll auto-complete for you.  See the screenshot below for an example.

 

The Future...

The idea of a campaign is a central principle to TTORP.  This will eventually maps to be linked to a campaign; players that have their character sheets linked to that campaign can then be hooked into an interactive map, chat rooms, text-based battle tracking (the DM can see details of who did what in what round, HP/AC/Effects; characters can see basics), and much more.

I've got a lot of work to do, as the system is still very much ALPHA (not even BETA; it is full of bugs, and not even close to being feature-complete).  Some naming conventions need to be cinched-up, along with interface elements (like error reporting).  There's nothing in place to handle situations where two people edit the same page at virtually the same time (whichever did the update SECOND wins), nor is there really anything to keep someone from modifying a character sheet that isn't theirs...

The security aspect cause a lot of frustrations and I eventually just had to disable it.  Initially, the only person that could modify a character sheet was the owner; unfortunately, that meant that the DM couldn't do anything, and sheets that were abandoned by their owners were locked.  That lead me to disabling that security, since there was no permissions system in place to handle it.  I've been working on that permissions system, and it seems done at this point (though I have only my own testing to confirm that); the next set of improvements should include that permissions system.

So, here's the roadmap for development as of right now (subject to change):

  1. General stuff...
    • Fix naming conventions (players vs characters, etc)
  2. Campaigns
    • Edit existing campaign
    • do something with the "description"
    • remove players from campaign
  3. Permissions
    • Designate who can has read/write permissions for character sheets (i.e. owner, DM, and maybe other players)
    • Implement interface for setting these permissions
    • Email notifications ("click here to allow [somebody] to add [your character] to [campaign]")
  4. Back to Campaigns
    • Players can request addition to a campaign
    • DM's must request addition of a character sheet to a campaign
  5. Interactive map
    • create & store it
    • upload map images
    • adding/storing tokens (allow players to upload tokens, linked to character sheets?)
    • players can view; movements are animated (after DM saves them)

Some Notes on Development...

Some of the development is slow because of the javascript stuff.  The jQuery framework makes things an order of magnitude simpler than if I had to write out all the javascript myself, but there's still a lot to do.  I'm trying to make the system as "Web 2.0" as possible, which means I'm doing a lot of AJAX stuff... for a long time, I was hell-bent on using XML for sending & receiving AJAX (that's the "X" in AJAX), but it seems that was REALLY slowing things down.  I'm migrating to using JSON, which is much simpler to create and parse, but that means I have to do a bit of "re-jiggering" of existing systems and cope with some other stuff.

The change from using XML to JSON, while it is a background thing, is actually a bit of an undertaking.  I probably spent a few days (maybe a week) trying to figure out how to get existing systems, like authentication checks, to work with the new system AND the old system; I had a massive problem not too long ago when I upgraded the XML system on the site... yeah.  Anyway, JSON seems to be the path of least resistance.  XML has it's place, but it seems that place is no longer in my AJAX stuff (regardless of its indelible placement in the acronym).

Anyway, long story short: there are a lot of behind-the scenes systems that are affected whenever I make a change.  I'm trying to minimize that ripple effect, but it still takes time.  Oh, and let's not forget that I am currently the only developer that is actively working on TTORP and all the sub-systems.

Conclusion (For Now)

Campaigns can be created, and character sheets can be linked to them.  There's not a huge benefit for players, but it is pretty handy for a DM.  The list of things that need to be done far outweighs the list of things that actually are done, so the system is still in a state of flux.

There is a long road ahead.  Lots of backend systems that need to be created/updated/changed just so the front end can see those updates... about 90% of the work is behind-the-scenes stuff that finally facilitates that last 10%.  So you might look at the new campaign thing and think, "jeez, that's not a lot of progress," but trust me, it is.

Stay tuned.  There is plenty more to come.





I Gots Ideas!!
Friday, April 01, 2011 09:06 PM

After reading up on a lot of different things today, I've came up with quite a few ideas.  So, instead of sharing them by talking about them like a social person might, I'm putting them up on my blog.  Because I'm a hermit.  And a geek.

Battle Tracker's Interactive Map...

I've been working on an interactive map for TTORP (a.k.a. "Battle Tracker" or "cs-battletrack") after having given up on Darkman ever completing one.  :)  Anyway, right now it's all in Javascript, and got it to the point where movement works via selecting the piece & clicking the destination or using arrow keys.  I was pretty happy until I started trying to make my grid line-up with a picture of a map...

Thursday night, also known as "guy's night" or "game night" came, so I showed it off to one of my other geek friends, Prophet.  He's good at the math thing, so he figured out my problem almost immediately: something about the grid lines on my table taking up an extra pixel, and the lines on the map image being one more pixel... it was painful.  I started to figure out how I would compensate for this off-by-more-than-one problem, which promptly made my head hurt.

Dungeon Tile Mapper to the Rescue

Prophet found me a cool little Javascript-based utility that builds maps called "Dungeon Tile Mapper".  First we looked at just using the tiles, which were 32x32 pixels (just a bit smaller than my 40-pixel tiles.  Anyway, after looking into it a bit further, I found that I could probably just use that system to build my maps, and my pieces & movement stuff could just overlay that.

The Conundrum

So I started looking at what it would take to incorporate this code into my own open source code.  I couldn't find any license or contact information, so I started searching... my peeps at the Linux User's Group, very familiar with the concept of open source and these particular licensing problems, started pointing me in the right direction.  I'm still looking into it, but I think I can use it without too many problems, though I still need to contact the creator (hopefully).

Anyway, as I started figuring out how to incorporate their code, I saw that the Javascript library they used could conflict with mine.  It was the old Prototype vs. jQuery debacle... which I actually found out wasn't nearly as much of a problem as I thought.  

jQuery, the Software Freedom Conservancy, and Kickstart

I found out that jQuery, an insanely popular/powerful Javascript framework, was part of the Software Freedom Conservancy.  So I looked it up, and found that it could be a really good fit with my own goals: protecting FLOSS (Free/Libre Open Source Software), promoting its use, and being protected from litigious bastards. 

So I'm going to try to join the elite ranks of the SFC to help deal with donations, fundraising/promotions, and some legal protection (in theory).  More on that to come.  Anyway, CrazedSanity.com will continue to develop & test FLOSS software.  jQuery will help make it more "Web 2.0" and stuff.  And maybe, just maybe, with the help of some generous people at Kickstart.net, I'll be able to have enough money to consider doing just this for a living...

Stay Tuned

For those of you that are interested (and actually made it this far into the post), I'll be posting updates here.  Probably nothing tonight, but hopefully I'll have some time tomorrow.  Stay tuned!

 





Kickstarting An Idea
Wednesday, March 02, 2011 07:53 PM

This blog entry is a directed one.  Some of you might wonder if I'm directing it at you.  But those in the crosshairs will just know.  It will strike a chord that gets plucked so rarely that its note stirs us deeply, emotionally, raising goosebumps like when the air conditioning kicks in during the mind-blowing plot twist of your now-favorite movie.  And after you've dealt with it, you just know everything is going to change.

As I'm sure you both know, I've really been wanting to work on some sort of project that gives us financial freedom.  We all have talent, there's no questioning it: aptitude for learning, thinking outside the box, insane creativity... it's all there.  And when we all get together, we feed off each other, magnifying that talent, sometimes by an order of magnitude.  Especially if we're all excited about th.

And there are those times that we get excited about something, and then all of us actually devote some time into it.  And, for however long we all devote that precious time, we get a lot done.  But eventually, time becomes a factor, and we end up letting whatever it is fall by the way side, because family and jobs are more important.

Eventually, we start thinking about things that will make us money, something we can work together on so that we can all be successful.  So we can have money to do what we want.  So we can have time to do what what want.  Whenever we want. Something that would spawn a business, so we can all work together, make some money, and attain the freedom that lets us fulfill those desires.  And we come up with lots of ideas: games for the Android OS; web applications, either installed on-site or via Software as a Service; and probably a bunch of other stuff that I can't remember.

And once again, time is just too much of an issue.  There doesn't seem to be any real-world motivation, and it is so hard to allot time to something that feels like it is just a pipe dream.  Gotta devote time so we have something that investors will be interested in... but we need investors so we can devote time to have something... ugh.

Well, yet again, I have an idea.  A seed, sitting below the surface of some good all be it dry soil, just waiting for that trickle of water so that it can sprout.  I have the water, but the real question is: are you willing to help me pour it?  'Cuz I got an idea to Kickstart it!

This is a call to arms, gentlemen.  A shout right in your face, like Woody Harrelson in Zombieland, "it's time to nut up or shut up."  Are you listening?





Digital Media: One Step Forward, Ten Steps Back
Tuesday, March 01, 2011 07:00 PM

(Note: this was originally posted on Tuesday, January 05, 2010; I've updated to date so people see it, since it was left as a draft and never actually visible.)

DRM

Have you ever heard of DRM?  It stands for "Digital Rights Management," and at first you might think it is something that protects you digitally, right?  WRONG. 

DIgital Copies--You Know, That File You Downloaded

DRM is a terrible, terrible thing that was conceived by the MPAA (Motion Picture Association of America) and the RIAA (Recording Industry Association of America) to prevent people from doing useful things with movies and music.  You know, digital things.  Like putting copies of a movie you own onto your PDA/phone/gizmo to watch on your 3 hour flight to Whereverville.

Yes, now DVD's come with "Digital Copies" that can be downloaded onto your computer.  "But what is this code," you ask?  It is a bunch of garbage that only allows you to copy that digital file once or twice... there are a few other methods, and I've not actually used them, but that is essentially it.  In the days of yore, one could simply drop a DVD into a computer, run a "ripper" program, and get a full digital copy in no time.  But this is a digital copy that could go anywhere.

Just 'Cuz You Paid For It Doesn't Mean You Own It!

The RIAA and MPAA went crazy at the thought of people spreading these files around willy-nilly.  They cried "piracy" and "copyright infringement" and threw tantrums in courtrooms over it, going as far as suing teenagers, college campuses, and even grandmas for illegally obtaining or transmitting these files.  Worse yet, many of them didn't even know they were doing it.  And they justified it afterward by giving out these "digital copies" that are now present on just about any DVD around, and implementing crazy DRM schemes that force innocent people to constantly be online in order to listen to their music... and may the Lord have mercy on your soul if you moved or (*gasp*) copied it somewhere.

The New Way

Now the MPAA is trying to be "more user-friendly" by introducing an even stricter set of requirements, being built by an organization calling themselves "DECE" (Digital Entertainment Content Ecosystem).  Sounds cool, right?  Maybe like they're starting to think of the consumer a bit instead of focusing so much on that dwindling bottom line?  Nope.

This new proposition involves an even tighter stranglehold on digitizing copies of their movies: now you're going to need to have an internet connection to contact their special servers and special hardware installed.  Oh, and presumably an account with whatever online system they're devising. 

Does this sound like a good thing?

If you answered anything but "hell no," you need to get your head checked.  To use this system in simple terms?  Buy a brand-new computer that specifically has their new hardware installed and ONLY with the operating system THEY SAY you can have.

Seeing the Forest Through All Those Trees

Apparently the MPAA's bottom line is really starting to hurt.  Of course they're blaming this problem on "pirates," because they obviously aren't hurting themselves!  I mean, how would restricting people from doing what they want with what they bought have any possible affect on their bottom line?

Seriously, the MPAA can't seem to find the forest because all those damned trees keeping getting in the way.  They just don't get that their restrictions are causing people to become frustrated and revert to simpler ways of getting digital copies of their movies.  You know, like finding them on a Bit-Torrent site or other file sharing system, regardless of the dangers of being infected by viruses.

The Reality

What does all this mean?  Well, I think this XKCD comic puts it into perfect perspective:





Why Free Open Source Software Works
Sunday, January 23, 2011 03:20 PM

Amazing insight in this video as to why Free Open Source Software works.  It's an important concept because I work on that stuff!

 

 





TTORP Updated
Wednesday, November 10, 2010 08:38 PM

The Table Top Online Role Playing system ("TTORP" for short) has undergone a major upgrade.  The entirety of CrazedSanity.com has also gone through an upgrade, actually, though most of that remains behind the scenes (if someone notices, either they're really clever or something broke).

For those of you that don't know, TTORP is basically a very advanced Dungeons & Dragons character sheet.  There is a lot more coming, though the character sheets are the first part... gosh, I feel like I've said this before.

This upgrade represents a very significant rewrite of cs-battletrack, going from version 0.1 to 0.5.  The database and code was massively changed, leaving only a very small part of the original schema behind--the main character table.  With the help of some other libraries that handle inline upgrades (not to mention months of testing & figuring out conversions), the upgrade only took a few minutes; it would have been faster, but there was a character sheet that had an invalid skill (Nefstophoes!!!).

Anyway, there are still some bugs to work out, so don't try blanking-out values that aren't supposed to be blank and stuff.  Oh, and for those of you utilizing the system, ENJOY!





State of the TTORP Address
Wednesday, November 03, 2010 08:28 PM

I know a couple of you have been looking forward to the new version of TTORP.  This post is meant to clear up the current status of it, along with an explanation of why it is taking so long (other than the fact that there is only one developer, me).

The original version was very simple initially, with the sole capability of storing character sheet data.  It had virtually no automatic calculations, very few database integrity checks, and generally very litle foresight.  As time went on and I added things like AJAX updates and some automatic calculations, it became painfully apparent that the system just wouldn't cut it.

I spoke to one of my developer friends, and came up with some ideas on how to better construct the database and the code that runs it.  So I set on my way to rebuilding the system.  The sheer volume of information stored in one character sheet, I came to find out, was even more massive than I originally realized, and that is without some other fairly important things (i.e. spell lists).

Part of the thing that is taking so terribly long in getting the new version of TTORP running is building the upgrade that will convert the existing character sheet data.  Since there was nothing in place to make sure that the numeric values were actually numeric (among other things), more and more logic had to be added to cope with it.  Some sheets didn't even have all the required data on them!

Anyway, the upgrade script appears to be complete.  I can't guarantee that it will be 100% accurate, so there will definitely need to be some double-checking (I'll setup a temporary site that runs the old version, for comparison) and manual updating.

After converting all the data, I had to get it into the webpage.  Finally, that part is (or mostly is) complete.  There are a few miscellaneous automatic calculations to be made, along with a couple of fields that should be stored (like experience stuff), but that'll come; I may leave it for a future upgrade, just to get this one "out the door."  Here's what is left (I'll try to keep this updated):

  • sending updates via AJAX [~90%]
  • handling automatic update notifications (via AJAX response) [~50%]
  • ensuring all the stuff that was automatically updated actually updates (via AJAX; everything actually updates properly, but the page might not reflect that until it is reloaded) [~50%]
  • adding new records (i.e. skills, weapons, armor, gear, & special abilities; this is stored differently now, there isn't any "padding"/empty fields)
  • re-sorting lists (i.e. skills, weapons, armor, gear, special abilities) after new records added

So there's still plenty to do.  I'm not really sure how long it will take, and there's the consideration of how much time I can set aside to work on it (not to mention ambition or lack thereof).

UPDATE [September 8th, 9:50 p.m.]: I had to spend a lot of extra time handling character sheets without any valid attributes (thanks Prophet): they won't get converted at all.  Unfortunately, that means I didn't get any of the listed items done.

UPDATE [October 5th, 6:30 p.m.]: Ended up spending a lot of time fixing an XML parser library (cs-phpxml), which was an integral part of the AJAX stuff (automatic saving for the non-techie).  After what amounts to a complete overhaul of that system, along with at least one other system that makes the site run (cs-webapplibs), I'm back to working on processing the automatic updates.  If you're interested--and if you got this far, I'm guessing you are--here's a diagram explaining at least a partial view of where things are going:

UPDATE [November 3rd, 4:00 p.m.]: After working with my group of testers, I've found and fixed multiple bugs.  With a few exceptions, the page performs excellently, and rarely requires any sort of page reload.  I have a working copy of the new sheets on my test site for a very small list of users that are willing to test it.  Here's the list of updates:

  1. AWESOME STUFF (changes I'm very proud of):
    • no arbitrary limit for the number of weapons, armor, skills, special abilities, or gear.
    • reloading page not required (except for some known issues, keep reading)
    • page width no longer arbitrarily set; looks good on wide-screen monitors
    • updates will cascade through all affected values (i.e. modifiers, max load, skill modifiers, base attack bonus, etc)
  2. FIXED (the highlights):
    • derived values are marked as such (i.e. you can only change base attack bonus in one spot)
    • most changes automatically update affected values (i.e. changing strength updates values for max load, etc)
    • fields that only accept numbers will show an error and revert your change
    • blanking some fields will cause an error and make that update "stuck" (can't edit it anymore); reloading the page shows the update was ignored)
    • updating associated ability for a skill doesn't update scores appropriately (requires page reload)
    • Adding records for weapons, armor, skills, special abilities, and gear will automatically create a new row at the bottom, no reload required
  3. KNOWN ISSUES:
    • if your browser doesn't allow javascript, you're boned.
    • If you don't use Firefox, things might not work (i.e. you're boned)
    • temporary scores don't take precedence over normal ones (i.e. setting a temporary strength score doesn't automatically update all values with that modifier)
    • no indication of numeric-only fields (frustrating when a change is unexpectedly reverted)
    • base attack bonus and total attack bonus (for weapons) are numeric only, so it is not possible to list full attack (i.e. "+16/+11/+6")
    • missing deflection bonus for AC (yeah, yeah... not really a high-priority for me, okay?)
  4. FUTURE CONSIDERATIONS:
    • delete records (weapons, armor, skills, special abilities, gear)
    • user-defined sorting (weapons, armor, special abilities, gear)
    • Containers for gear:
      • tab/drop-down/expandable list to show containers & items within container (i.e. backpack, bag of holding, etc)
      • indicator of whether container's contents count toward total weight (i.e. the contents for a bag of holding don't count toward total weight, but the bag itself does)
    • unused weapons/armor:
      • avoids having to move item into gear, which loses special info (attack bonus, damage, etc)
      • checkbox to indicate if armor/weapon is in use
      • unused armor/weapons count toward total weight

 





Windows and Slashes
Wednesday, August 11, 2010 02:53 PM

There's more than one kind of slash key on a computer! 

Just because you open up your "My Computer" icon, double-click on your "C" drive, and see that the path has backslashe does NOT mean that everything that resembles a slanted line is a backslash!  If you are ever on the phone with me and utter the word "backslash" when referring to a URL in your browser, I will hunt you down and BACKSLASH YOU.  Well, unless you're family, then you've got a little bit of wiggle room...

Warning: compulsory fictitious dialogue below

The generic caller, whom we'll refer to as "John", calls my phone.  I answer, a bit hesitant to talk to someone after the day I've had.

"Hi, Slaughter, my operating system browser doesn't do what I want it to do, and you have to help me because you do computer stuff and I know you."

"Of course I do.  What is your problem?"

"I clicked on a thing and it won't go."

A bit of a frown crosses my face. "A thing? Can you be more specific?"

"My operating system says my credit card statement is illegal."

I hold the laughter back.  The explanation is like calling your monitor a modem.  "Riiiight... what were you doing when this happened?"

"I clicked the folder to bring up my credit card statement page."

Okay, so this is starting to make more sense.  Based on their lack of technical understanding, the "folder" is more likely the Firefox shortcut that I placed on their desktop.  The homepage was their "credit card" website, so this is making more sense.

"Then I clicked a thing and a screen comes up and my statement didn't download.  It said something about something being illegal.  Am I in trouble?"

"No, you're not in trouble.  What does that screen say, the one that was talking about something illegal?"

"What screen?  I closed it."

A bit of frustration is starting to build, but I hold it back.  All those installers and prompts from Microsoft Windows that one popular operating system have made the majority of people click-happy.  If there's a screen that they're not interested in, keep clicking that "next" or "continue" button in the lower-right corner until they're gone.  "Okay, I need you to go through everything you did before, but don't do anything when that screen appears that talks about illegal stuff."

"Okay.  I just logged in.  Now I click the 'my e-statements' button."

Again, I hold the laughter back.  He calls it a button, I call it a link.  you know, on a webpage.

"Now there's nothing, and I don't have my statement, and I don't know what to do."

Obviously, John is a bit anxious, so I need to calm him down a bit.  "Slow down, buddy, take a deep breath.  Now, where was that illegal screen you were talking about?"

"I don't know.  It isn't here anymore."

To hell with that.  It is obvious to me now that John's problem has far more to do with an inability to view this "e-statement" than anything about illegal stuff.  No three-letter acronym law agencies, no dire warnings, hell, not even an actual error.  Maybe there was an error in John's brain.  "Okay, well, let's not worry about that.  That button--is it really a button, or is it a link?"

"Oh, I guess it's a link from my operating system."

Now I've done it.  Correct one wrong thing, I gotta correct them all.  "Not your operating system John... what does the title of the window say?"

"It says capital one credit card dash online bill statement thing blah blah dash a big long number."

"Right, but at the end it says something, right?"

"Um... eight four three seven six eight five nine nine two four dash mozzarella fire sticks."

"Okay, wait... what?"

"It says mozerrella fire foxes."

"You mean Mozilla Firefox?"

"Right.  That's what I said."

This is where I spend thirty minutes trying to explain some fundamental differences.  You know, like what the operating system is versus an application that runs within the OS.  Or what about folders versus files?  Icons versus desktops?  Yeah, it gets a bit skewed...

"Okay, John, so what you're saying is that your PDF won't open when you download it.  Right?"

"Yes.  That's what I said at the beginning."

Now my face is getting red.  All that chatter trying to sum up these fundamental things that he'd gotten so fundamentally wrong in such a small space of time had really cut my fuse short.  Now he's lying.  For the sake of time, since I've now been on this call for about two hours longer than I wanted, I decided to let that one slide.  "Okay, just double-click that top thing in the downloads window, and tell me what happens."

"Okay.  I double-clicked it, and now has this browser window open."

I almost fell over.  Did he just use the proper term for something?  "Okay.  In that URL bar at the top, where your web addresses go, what does it say?"

"It says file semicolon backslash backslash see semicolon backslash doc you squiggly one backslash..."

Seriously.  I'd spent all day, and now he's not even trying.  Browser URL's don't use backslashes or semicolons, at least not until way after the protocol and the domain name.  There are three front slashes, know to the techie world proper simply as slashes.  He's actually seeing "file:///c:/docum~1/...", with more at the end, but I just stopped listening at this point.  And this is where my compulsory fictitious story ends.

You see, I really hate this thing that happens when a "lay-person" (pronounced by some as "idiot") gets on the phone.  They start qualifying things incorrectly--saying "backslash" instead of "slash"--and blatantly skipping things or lying.  They don't read important screens.  They don't give anything useful, and even start out the conversation by acting ridiculously idiotic, using phrases that are so blatantly vague as to boggle the mind; were they to actually listen to their words even a day later through a recorder or some such they wouldn't have a clue either.

But the expectation is there that anyone that "does computer stuff" will obviously just be able to fix it.  And yes, sometimes--or even oftentimes--when I fix a computer, it can be done really quickly in what would seem like magical means.  The reality is that it isn't that magical, and I explain what I'm doing so they have a chance to comprehend it.

These people get stupid on the phone when there's a "techie" on the other end and the subject is computers.  About 80% of the stuff they spout out is rubbish or speech patterns that only vaguely resemble human speech, and the other 20% is over-quantified or just plain wrong.

So here is what you do to keep me from backslashing you when you call:

  1. If there's a slash character, don't say "backslash" or "forward slash", just say "slash"; it's not as specific, but being less specific is better than saying the wrong thing (imagine the difference if you were to transpose "cougar" with "striped cat" when referring to an animal attacking a human).
  2. If there's a colon, don't try saying it is a semicolon.  I know there's only one pixel difference, but it is easier to say "colon" than "semicolon".
  3. Only be as technical as I ask.
    1. if I ask what the title of the window is, don't use words like "operating system", "browser", or anything else that is not specifically in that window.
    2. If I ask what you clicked, just tell me what it was.  "A little picture of a red thing" is far more helpful than "I went to my microsoft office desktop operating system and opened my bank account": the first is vague, but the second one is just plain wrong.




Need I Say More?
Tuesday, August 10, 2010 12:51 PM

Were you looking for some wisdom by hovering?  DON'T BE A HOVERBOARD!

(From XKCD, #292)