Tuesday, September 18, 2018

You Hate Me Don't You?

Dear Firefox,
Was it something I did? Why do you hate me? Although no one I know uses you, I do. When people talk about Chrome and the extensions they use for work stuff, I mention you and what you can do. But apparently you are trying to make me break up with you.

I came back to you a few years ago, because in the age of Chrome with its locked down interface and restrictions on what plugins could do, you still allowed extensions like Vimperator to do whatever they wanted to you - hide tabs, footer, menus etc. I really just wanted to use Vimperator. But I came to really like you.

Then you took Vimperator away. I guess no one wants to customize the look of their applications, or use plugins that do all kinds of crazy fun stuff to them.

But I still stuck by you, Firefox. Even though I couldn't hide your tabs anymore or use you like VIM. Your bookmarks were far better than anyone else's. Keywords and notes... perfect. I could take notes and access them even at work thanks to your bookmark sync.

Then you took bookmark notes away. Seriously. What is your problem. Why does everyone keep taking things away? Visual Studio took macros away (Absolutely ridiculous), Windows keeps trying to take away the desktop for big Duplo blocky nonsense. Our cell phones are taking away our headphone jacks. Apple nearly took away the caps lock key.
We can't customize our software, we aren't allowed to have admin rights on our own tablets and phones.l, we can't use our headphones without a special adapter (So we can't charge our phones while listening to them via said adapter).

As ugly and crazy as it was I miss the days of customization and MySpace.

Monday, September 17, 2018

Buh Bye

Well I've spent a few nights beating my head against my desk trying to make the quadrant system work. It has been maddening. The quadrants could be either created if they don't exist, or loaded from a saved config file. But each one also has compass direction neighbors that also must be handled before they need to be drawn to the screen. Everything I tried ended up in thousands of neighboring files being created or glitchy, messed up game experiences.

I decided to ditch the whole quadrant thing and just did a huuge level instead. Since it only considers elements that would be shown in the current screen I've been able to make the level large enough to appear to be endless.

Now that level elements stay where they are, and are adjusted by the level moving, collision checks are MUCH easier. So I've been able to do the energy collection piece of the game with very little headache.

Now for landing on planets and dealing with their surfaces.

Wednesday, September 12, 2018

Quadrants

Building an endless universe is a new challenge for me. I want to manage data much like signal processing plugins do. They work with thousands and thousands of sample points so referencing them is a challenge. To deal with this they reference relatively. The current sample is the reference point and the next and previous are +1 and -1 etc. I am trying to do similar with quadrants. I have the active one and relative compass coordinates to it.

If the player moves up (north) the north quadrant is loaded or defined and its related south quadrant is the current one. One challenge is speed. I don't have the Zelda luxury of pausing to load the next screen, it must happen smoothly, in real time. If this proves impossible I will have to switch from a 'player always in the center' interface to a Zelda in space type scenario. In this case the player would move around the screen until they hit the edge, then everything shifts to the new quadrant.

I want to avoid this if possible.

I'm using files to house the data to try to keep it fast. Sqlite has proven slow in my previous attempts. Another problem is rendering the quadrant contents, currently I have one active quadrant but I'll need to handle multiple for when the screen is shifting between them.

All this without creating any processing lag.

And then there are planets. Players can land on planets, switching the game view to planet surface mode. This will be similar quadrant behavior, except that is a finite set of quadrants. And there's the added complication of the player having the ability to build bases on the planets. I haven't even begun to ponder that conundrum yet.

Well, we'll see if Java can handle it...

Monday, September 10, 2018

The Sci Fi Collection

It had to be done. A review of my scifi watch collection. Most of these are discontinued, some were bought back when they were first released. Others were very hard to find. The Stark, for example, I've only seen a couple in decent shape. Others are still in active production, such as the GShock and the Nixons. If you are into scifi, hopefully, you will find it entertaining.

http://horologous.blogspot.com/2018/09/no-love-nope-not-bit.html?m=1

Thursday, September 6, 2018

ASCII Power

I am working on a vintage arcade style space mining / building game. I am using pure Java. Coded in Vim, so graphics are a challenge. I am building all the graphics pixel b pixel. Doing so in Java code would be tedious and impractical. To deal with this I have built an ASCII art to Java graphics class. I've also built an ASCII to scene class. In that one each ASCII character represents an ASCII to art reference.

So far this method has worked well. Animations are still a bit tedious so I'll probably expand on it a bit to convert a list to animation frames.

I've also built an image to ASCII converter. This tool makes it easier to define colors per character. I just used these tools to build the main menu image. It turned out great, even the gradient from gray to black. Now I need to do some more testing of the scene builder.

Wednesday, August 29, 2018

MisDirection

I've spent a month at work trying to track down a nasty production bug. At the beginning of August one of our web services started blowing up for about a half an hour every morning. I've been living on about four hours of sleep per night, getting up early to attend meetings trying to uncover the root cause. We've looked through all of our production code, nothing has changed. We looked into other jobs that might be running, that we are unaware of. We've scoured the database, the server, the service calls. Nothing yielded anything useful. It looked as though early mornings would be the new normal.

Then in the course of analyzing the database again, a coworker notices one single materialized view. It was on a development machine. Hr dug deeper. There was a dev job that had been updated to point to production. This was causing the view to be recompiled and was most likely the problem we were seeing (We'll know for sure in the morning).

We had looked everywhere but development. This was production after all. But the key lay in a completely different environment. It was a problem of misdirection. Like a magician tricking us to look at his left hand as he manipulated an object in his right.

Remember when debugging, not to let misdirection cause you to overlook what is truly going on!

Sunday, August 26, 2018

Second Time is Not a Charm

At the beginning of the year, I switched from Android to Fitbit, and with that began coding watchfaces in the Fitbit Studio. It was great, In one evening I coded a binary watch. Another evening I coded a Linux Console - looking watch face. Later I made a text - based binary watch. But it was at that time I realized, my original binary watch was gone. And of course I hadn't backed it up locally.

I've recently decided to try recreating my first binary watch. I'm not sure how I made it so easily the first time. This time around is a nightmare so far. I am building it in such a way that I don't already know the screen size. I originally tried doing the layout using CSS and percentages, but the grid I'm building isn't evenly divided so it is not quite right.

Just when things were at their darkest, I found a snippet that gets me the screen height and width. I know it's JS but I thought I had previously not been able to grab the screen size for some reason. Well I thought wrong. Once I have the screen res, everything slowly falls into place. I got the grid worked out. It took a bit to get the lines in there. There were some headaches on the dynamic colors and re-purposing my binary time code.

It was still a stroll through a swamp. Then POOF! it was suddenly done. Two little tweaks to fix bugs and so far it's working like a champ. I want to add a touch listener ao it will cycle through some other screens, like binary date etc, and maybe a cheat screen with the time/date/steps etc.

Oh! Maybe that third screen could be my Linux console like watchface. A two for one! Hmm....

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 ...