Saturday, September 30, 2017

Users Need to be Free!

Sorry, but this is another tirade against mobile OS's. I am very much a Yankee in the traditional sense of the word. Back in the 1800's the British sent the world's moat powerful Man-O-War to the U.S.'s east coast, to intimidate us. We sunk it.
I am  firm believer in Hump An Git It individualism. I can't abide tyrants and oppressors.
Data must be free... OS's are data, just like  applications. They must be free. Mobile OS's go against every philosophy I hold dear.
I have an old HP 10 G2. Why in the world am I not allowed to be an admin on MY OWN DEVICE?! It's not like it's tied to a mobile contract. I should be able to do what I want. As it is I'm stuck with Lollipop and all of HP's bloatware. Ugh.
Apparently I need to begin the journey. It's time to 'know thy enemy'. I need to get to know Android inside and out. I will need to be able to not only root it,  but to fully understand the process and go even deeper. I want to COMPLETELY take control of my tablet.
I would also like to root my SmartWatch 3... if Sony is going to not allow me to run Android 2.0 -- I'm gonna hump an git it. It's my watch, it's not tied to a contract. I'm going to keep it up to date.
Free the Users!

Reflection... Well Not Reflection but Reflection

I was just thinking back to when I was building IF games in TADS. I had a couple cool ideas and enjoyed pushing the bounds and the rules of the TADS engine. But I really wasn't learning anything useful. I still love TADS, what an amazing piece of software. I would be delusional if I thought I could ever rival it.
 
I was thinking about how it was suggested to me that I build my own IF engine. The idea seemed ludicrous. What a waste of time. Why would I want to reinvent the wheel? True, having an IF engine and client that are Java based would be cool. And I could later port the client to mobile OS's etc. Hmm .... And I could later attempt the impossible, a networked multiplayer IF game!

But wait... There's no market for IF, so it will just be another hobby project. How is that any different than sitting around building TADS games?

Well fast forward a LOT of days. I now have a pretty robust client IF application, and an admin tool for interpreting and compiling games. I have written my own data notation language and written an interpreter for that, as well as a parser to turn that data into a game. So my engine can use either XML or Norman to define games - and their help systems.

I've learned a ton about Java, and its weird nuances (Silently crashing etc). And have become a much stronger developer. So even if this does end up being a hobby project forever, I'm at least doing far more than just sitting around building IF games.

Thursday, September 28, 2017

Mysterious Deaths

I have now rewritten my Norman interpreter three times. It is now, so far, this iteration is working great. The previous attempt was riddled with strange silent crashes.
Java would run, reading through the game definition files, performing trimming and substrings and other String parsing methods. Then unexpectedly Java would just crash. No error message, nothing. I spent hours adding output messages all throughout the code, but was never able to pinpoint the source of Java's sudden death.
After giving myself numerous concussions on my desk I decided to scrap the interpreter and rebuild it. This time around I filled every block of logic with try/catches and more comprehensive output messages. And I improved how it processed the files.
So far so good. we'll see how it does as I convert more of my game definitions to Norman Notation.
I would really like to know what methods are prone to causing Java to quietly and horribly die. If this ever comes up again I suppose I'll be spending days and days trying to solve the mysterious mystery.

Wednesday, September 27, 2017

The # is for Channel

I miss IRC. I remember back to when I was working at a company that was me, a buddy of mine, and the boss. We rented an office in the lower level of a small building. No windows, no ambient music. Just working away in silence. To keep away and stay sane I kept an IRC window open. Soon there was a small tight knit group of chatters in our # - and later we became friends in meatspace as well.
I remember poking fun at the noobs in #teen and other high drama channels. We developed our own dictionary of slang, entertaining chat bots... essentially we had a culture all our own.
But as time passed, meatspace crept in. We all got busier or work changed so IRC access changed. Then social media phone apps drove in the final nail. And now our virtual coffeeshop is just a memory.
The funny thing is, people are still into chat, only now it's on Facebook etc. And it seems like #teen has taken over everything. It's like the vast majority of people online now a days are n00b current affairs trolls. I have yet to find a SINGLE social feed where I can just mindlessly hang out and interact with others. I have a twitter feed of JUST music and development, and I swear every other post that comes through is political or some other kind of drama.
I miss IRC. Where you can just chat and hang out. Where you chat more like you would at a party or in real life. Where no one ever just randomly blurts out:
"I believe in <INSERT CAUSE> and if you have a problem with that just unfriend me now"
If you do that at a BBQ, you're an arse. But apparently it's totally Ok online.
RIP : Chat.

Monday, September 25, 2017

In Defense of Square

I have a shelf full of futuristic or retro-futuristic watches. A couple 01theOne AniDigi watches. One with a black X and one with a blue/green X.  A crazy 01theOne binary watch. Nixon Comp, Rip Curl, etc.
One thing in common with all of these watches: They are all square.
So when I decided to add a smartwatch to my scifi collection I wanted a square one. As you can imagine my options were limited. I ended up getting the steel SmartWatch3 for a great price. And I love it. It looks futuristic and square is perfect for code/console watchfaces.
As a watch guy, I personally don't understand round smartwatches. Why buy a watch that pretends to be a 'real' watch? But to each his own. It IS interesting to read reviews of watches like mine. The comments are filled with the likes of:
"Not round, so don't care."
There are TONS of round smartwatches, why get down on one of the very few square ones? At least companies are bold enough to try them.
I say get a smart watch that is conducive to an actual screen. I say get a smartwatch that knows what it is and isn't trying to be what it isn't.
I say be square.

It's Time to Get Out the Big Guns

If you hate trackball mice, you're gonna want to skip this post. It will be very painful for you.

I have been using trackball mice pretty much as long as I have been using computers. I started with the Logitech Track Man. That was my go to. I had one for every computer and laptop I owned. And it's a work horse. I have NEVER had one die.

But after so many years of using it I just felt like a change. Maybe something with a scroll wheel / mechanism. So reluctantly I tried other trackballs. I went with an Elecom. I liked its all black coloring. It's a great little mouse and so far is serving me well.

But I wanted to try the big balls. After all I'm on the computer all day every day, maybe I should get a power user trackball. So I saved money and bought the Ferrari of trackballs, the Kensington Slimblade. It truly is a beautiful mouse. And I can't believe how smooth it rolls. The ball truly glides. The scrolling mechanism works but is not ideal when scrolling through very long files. It is definitely my current favorite.

I didn't want to have to carry the Slimblade around back and forth between work laptop and home machines, so I decided to get another big ball mouse. I almost bought a second Slimblade but decided to go with Clearly Superior's L-Trac (The all-black, not the glowing ball). I must admit I was very unhappy with this mouse at first. It was as expensive as the Slimblade but compared with the Slimblade it felt like a $30 mouse, not the approaching $100+ price range. The ball movement was rough. Zero glide. You cannot remove the ball without completely disassembling the mouse (This DOES make it great for packing around, although it is a huge beast), and it just doesn't look as cool in person.
But I use it with my work machine and in time the ball movement has loosened a little, to where it isn't distracting. And I have to say, the scrolling! There it DOES glide. Scrolling through huge files is cake. So I've come to enjoy this trackball also. It's still no Slimblade, but a solid #2.

Sunday, September 24, 2017

Impressive Line Count, Dawg

While huge source code line counts make for great fish tales they are no good. At least in the context of this post. So I've created NormanNotation (nrmn), an interpreter for it, and a parser that uses the parsed objects to populate WorldWeaver (My IntFiction game engine) game databases. The problem is my interpreter is kind of basic so far and requires property elements to be on their own line. That means defining an attribute goes from XML's single line to four lines in nrmn!
This makes game definition files very difficult to read. Half of an element's definition is off the screen so all you see are a bunch of closing brackets. Even if your editor does code collapsing it's tough to keep track of where you are in the nested element nodes. So I've updated the interpreter to allow inline properties so instead of:
{object
  alias=sword1
  type=long sword
}
You can do:
{object alias=sword1 type=long\ sword
}
Closing brackets still must be on their own at this point, I'll probably correct that tonight. For most elements it isn't a problem but things like attributes would look weird. So it will go from:
{attribute alias=strength value=15
}
To:
{attribute alias=strength value=15}
Then I'll go through my definitions and make them much more readable.

Introduction to WorldWeaver

A New Iteration  I've been working on the second manifestation of my Interactive Fiction engine - WorldWeaver - for about a year now. I ...