NoshBar's Dumping Ground




Bathrooms. Oh my.

Bathrooms are awesome. Not one is the same, even if they’re cloned in a factory, after just one day of use, they’re a unique snowflake (containing the same decaying matter as the others).

Much like next-to-a-dustbin being the safest place to stand to be free of cigarette smoke, the inside of a toilet bowl must be the furthest place away from urine in public bathrooms.
If it’s not acting as lubricant on the perhaps-present seat cover, it’s all over the floor making sure it’s free of insects and snakes (and who doesn’t like stomping in puddles and splashing stuff at people, giggling with glee?).

While the water in the toilet might be urine-free, you can almost be guaranteed that it will be filled with a squirrel-sized poo, warmly snuggled in its entire-forest toilet-paper nest, waiting for the eggs to hatch. Sometimes you may even be lucky enough to spot one of the parents sitting on the maybe-there toilet seat, keeping watch, defending the hive (which is essential, as screw-holes in the stall walls remain as the only hint that locks, or entire doors themselves, once lived there).

Mostly they’re still sitting there staring back at you because the toilet no longer flushes, through malfunction or fear of having to touch the creations in the bowl. But mostly there are those that constantly flush, sending the squirrel-family into a frenzied tumbling, as if they were squirrel-alligators wrestling for territory, in the midst of a death-roll fight. And being continuously emptied, those toilets never have the pressure behind them to send the fight outside, and reunite the squirrel family deep under the sea (if only flushing handles weren’t made of lead).

Like the toilets, the taps seem to be plumbed into the same supply of water in PlentyLand. This however, is a good thing, as the last thing you want to do is touch the oddly-non-reflective chrome handles.

The soap-dispenser handles are safe though, as no one uses soap, they just run water so that it looks like they’re washing their hands, because no one wants to look like they’re a pig, and using soap is basically like coming out to your parents. However, sometimes a piggy must get angry that the soap is judging them, resulting in a battered, drooping hanging piece of pity that remains where the dispenser once was, bleeding down over and past the sink, mixing with the pee on the floor, screaming “whyyy?” the whole way down.

The hand-dryers always state that they’re the hygenic method of drying your hands, which not only sounds like some sort of government conspiracy, but it’s not eco-friendly, all that electricity usage, and you really care about the environment, so you use the paper towels.
They also make great little balls that you can use to practice shooting hoop with, every time a reminder of why you’re not in a team somewhere.

Man, people are awesome.

[ view entry ] ( 312 views ) permalink print article

I was originally going to write a short entry about how people are so ready to apologise for things that aren’t really their fault, but never do for things that directly are.

I initially thought about how someone would apologise for elbowing someone as a result of a sneeze, but not for saying something mean.
I thought that it was difficult for people to apologise when it is actually their fault, admitting they were wrong, and formulated some super intelligent random theory about humans, which I was going to take time to step down off the horse on my pedestal to share with you puny lesserlings.

It was when I first thought about writing this in a different way, that made me realise my arseness, originally brain-written as:
“People will apologise for something that is the result of an accident, but not for something that is a result of who they are.”

And well, there you have it. It’s who they are, why should they apologise?
Sure, you want the apology, you’d like someone to be sorry that they hurt you… but they don’t owe you, love them for who they are, or go somewhere else.

I’m such a douche.

[ view entry ] ( 265 views ) permalink print article

The Uncharted trilogy is a fantastic series of games, 1 and 2 being amongst my favourite games.

I’ve finally started playing Uncharted 3 and can’t help but notice how it’s not so much holding my hand, as holding my head on the sides and rubbing my nose in the answers to puzzles screaming “GOOD BOY, GOOD BOY!”

A lot of talk has been going on about how the new Mario on 3DS is condescending, in that it will basically finish a level for you if you look the other way for too long.
Also, Dark/Demon Souls and Super Meat Boy are heralded as a return to proper hardcore gaming, made intentionally difficult to do anything in (which is condescending in itself, isn’t it? “Oh, the games are too easy for you? Shame, here, try THIS on for size.”)

So, what is my problem with Uncharted? Well, it’s mostly a crapload of shooting, with some puzzle and exploring bits in between.
Puzzle bits. Puzzle. As in, “something to figure out”, or as Wikipedia puts it: ”A puzzle is a problem or enigma that tests the ingenuity of the solver”.

The thing is, I never get a chance to be tested in Uncharted 3.
It “hints” things to me before I get a chance to explore the room (A graphic comes on the screen telling me “HINT” and to push “up” to see it… and won’t go away until I do).
Added to that, I have a hint-book on me in-game at all times, with pretty much everything I could ever need to know in (that the game constantly reminds me about).
But that’s not enough, no, the characters in the game go “DRAKE! DRAKE! I found something! It looks like what we need! I bet if we pushed this EXACT tile then it would open the secret door hidden behind this obviously non-matching textured stone in the wall! Sully want treat, TREAT!”… and walking anywhere within 10 meters of said discoloured-tile brings up an icon telling me to push the green triangle button to make it happen.

So not only do I get told where to look and told to read what to do, I have characters that ruin it for me as I’m exploring the beautiful level design.

The worst part is that sometimes I know exactly what I should do, so I start doing it, and halfway though the puzzle, the characters decide to start warbling on about how I should maybe start doing what I started doing about 5 minutes before.

You know what guys? Why don’t you shut the hell up and get shot or something?
You’re ruining it for me, seriously. I no longer have a desire to search around, to figure anything out, because you interfering bastards are just going to treat me like a moron anyway.

And… AND! I get treated like the stupid one, but Drake seems more than happy to casually look at the hint area while being shot at, no reaction at all.
Not only that, he will gladly dive into some water from a height one time, but another time he’ll fall 1 meter maximum, and seemingly be struck by Zeus himself as he hits the water, letting out a scream and dying like he was made of scream-capable tissue paper.

Kirby’s Epic Yarn is a game that gets it right. You might argue that it isn’t as complex as Uncharted, but the game turns you into several different vehicles along the way, with completely different handling, and all it gives you is a simple icon hinting how to move it around, the rest is up to you to play around with and discover.

So, puzzles are solved for me, gunfights are insane, there is little need to explore anything… why, if I wasn’t having so much fun shooting South Africans, I’d stop playing.

Fortunately, all this fuels me to want to make the most condescending game ever… because spare time was invented so that it could be used to ignore people you care about, right?

P.S. I just played Tintin on the iPad, and the first thing it does is tell you to touch glowing objects. Really? I thought gates just normally glowed with a circle on them. Not only that, while seeing how the onscreen d-pad worked, I happened to walk past a hole in the wall, blocked up by planks. I tapped them as an obvious way to get past the wall, but no, first I have to walk to the gate, try tapping on it, find out it’s locked, THEN I can go to the planks, which are now glowing with a circle on too.

Gah dammit guys.

[ view entry ] ( 372 views ) permalink print article

So, I finally managed to get myself a TouchPad, and it's even more awesome than I thought it would be.
It's currently set up to dual boot between Android and WebOS, and it runs Ubuntu within WebOS just peachily.
WebOS just feels so good to use, the browser just _feels_ nicer to use than Android's or iOS's.

Anyway, kicking the nerdiness up a notch, man oh man is the PDK nice and easy to use, providing OpenGL and SDL from the start, with the ability to test and debug things on Windows.

The fairy tale version of my porting story: I barfed up a bit of SDL bootstrap code to create a window and handle inputs, and everything else just worked!

The real version: I am a bleeding tool. I initially looked at the PDK samples, one called "simple", which included an OpenGL ES 2 header file.
So I went on a learning escapade where I FINALLY addressed my lack of GLSL knowledge and suspiciously loving attachment to the fixed rendering pipeline.
Shaders and whatnot had never made sense to me, until I found this awesome tutorial.

So I finally had some shaders up and running, I had some hand-coded matrix maths stuff going, I had 3d models on screen and rotating and... annoyingly disappearing (some Z issue) and going all over the place.

In an effort to see what else GLES 2 provides, I decided to see if there were any other header files...
There were/are.
An OpenGL ES 1 header file.
DAMN MALE OFFSPRING OF A FEMALE CANINE!

So yes. Drumpster runs on the TouchPad fantastically.
Take that Joggler.

Oh, and I found and fixed the bug in MonkeyBot... and got it running on the BeagleBone and Bifferboard.
I'll upload the new code "soon".

[ view entry ] ( 314 views ) permalink print article

While that's not strictly true, I am overly paranoid about a bunch of things, opening a port on my firewall being one of them.
Not because I think SSH might have flaws, or the firmware on my modem, but because I'm a complete dufus with no self-esteem who doesn't trust himself, and I really don't feel like setting up my PC again, post internet-abuse.

Sooo, introducing (Helper)MonkeyBot, a little instant messenger bot that sits and worships and listens to your commands.
You also get a single-page PHP file to view the stored messages more purdy like.
MonkeyBot is open source and released under the ZLib licence, and is thus compatible with its dependencies, SQLite and Gloox (which uses GnuTLS).



It's a little program that logs into an XMPP account and listens for commands from another specified XMPP account (with a secret handshake phrase), and basically stores whatever you type to it (with a category), with the option of recalling/viewing/deleting/searching the data via IM, as well as downloading files for you so that they are ready by the time you get home.

An example dialog would be:
nashbor@gmail: Hey Asshat.
monkeybot@gmail.com: What do you want?
nashbor@gmail.com: todo: Make Drumpster less poo.
monkeybot@gmail.com: Stored. (MessageID: 1)
nashbor@gmail.com: download:http://www.3dconstructionkit.co.uk/3dkit/PC-3D_Construction_Kit_2.zip
monkeybot@gmail.com: Stored. (MessageID: 2)
...<time passes so slowly, slowly...>
monkeybot@gmail.com: Download finished successfully: PC-3D_Construction_Kit_2.zip
nashbor@gmail.com: search:Drump*
monkeybot@gmail.com: ID1: Make Drumpster less poo.
monkeybot@gmail.com: Search finished.


MonkeyBot is super easy to compile on Ubuntu.
apt-get install gcc g++ libgloox-dev
change to the folder with the 7 or so MonkeyBot source files
compile sqlite with FTS4 support
g++ *.o *.cpp -lgloox -lpthread -ldl

On any other platform though... I came across some PITA's:

Not every version of Linux has a package manager, especially when trying to use embedded systems, so you're stuck compiling things for yourself.
I spent much too long trying to get libnettle to compile (WHY? Why can't you see the libnettle include files? The paths are PERFECT you piece of gangrenous armpit slug!), which GnuTLS needs, which Gloox needs.

For Windows however, you can get a precompiled GnuTLS DLL and DEF off the gnu website, which you can create a LIB file from, and link against in Visual Studio.
I thought it would be:
Compile Gloox, linking to GnuTLS. (of course, you have to remove some files from the solution and make a typedef before it will compile)
Compile MonkeyBot, linking to Gloox.
Make sure all the GnuTLS and Gloox DLL's are in the MonkeyBot.EXE folder.
Run.

But nooo, that gave me weird connection issues in Debug mode, or a crash in Release mode.
However, deleting all the GnuTLS DLL's from the .EXE folder made the Debug build connect just fine all of a sudden.
My random-unproved-and-probably-shitty theory is that the Debug Gloox.DLL includes the GnuTLS stuff, at least it should, given its size.
As for the Release mode crash... some std::string thing that I couldn't be bothered trying to find out about.

I'm considering rewriting the ChatEngine class so that it can use either Gloox or the XMPPFramework for OSX/iOS... with plans to run MonkeyBot and Apache and PHP and the viewing program on a poor abused jailbroken iPhone I got handed down to me by someone rich because I'm so 3rd world.

Anyway, it works for me for now, I discovered a crash when creating custom actions JUST as I was uploading the files to my site... so I guess v0.2 will be coming soon... annnd that you should probably take the time to learn about cron and watchdog scripts...
Lots to still be done on MonkeyBot, like remote shell, not sucking, reminders that do something actively...

Use it, don't use it, I don't care.
Rock on.

[ view entry ] ( 348 views ) permalink print article

<<First <Newer | Older> Last>>