Tuesday, November 12, 2019

Granular Collection

Granular CollectionI am currently returning to my PHP MVC application project. It is a collection of objects. The idea is to build a super granular item database / search tool. My particular implementation of it is wrist watches. I can do a pretty good search for watches on sites like Chrono24 and the gray market site Jomashop. But these have definite limitations.
For example, I like watches that are categorized as dress watches. I also like watches that do not have a date complication. With this app users can search for watches with a specified case size, lug width, date or no date and many other attributes that other sites cannot search on.

I am very new to this particular framework, however, so it'll be interesting to see how I can pull it off. I am using categories and a linking table for them, as well as an attribute table and a linking table for them. The attributes will drive the search page so it can be expanded as needed. The idea is to build a framework for collections of any number of items, not just watches.

As I make progress on this I will post the project's URL.

Wednesday, November 6, 2019

Oh the Memories

The next month or so, at work, will be mostly one project and one language ...

VB6

It is so weird coding in the first desktop language I ever learned. I remember back when I was just learning HTML and a little bit of CSS. I knew just enough to put up pages of info and horrible GIFs. I wanted to build desktop applications so I installed Visual Studio and began laying out forms etc. At the time I had no idea how to actually make it do anything, but my neat looking forms would display when I ran my creations.

Now I have nearly two decades of coding in various languages, project types, and platforms under my belt. It's interesting dealing with VB6's quirks and 'features'.

Most notable, it seems that IF statements consider every check in them, even if the first check(s) fail. At least that is how it was behaving. I had to break up the IF I was working on, nesting the second check inside the other - then it behaved as I expected. I am still able to web search any questions I have and there are plenty of topics and articles still out there. That's a good thing.

I'm guessing I'll have plenty more to say in the coming weeks and months.

Friday, November 1, 2019

Android Takes Something Else Away

Ah security. We have to use clear purses for our own safety. We can't carry backpacks, bags, etc in some places, for our own safety. We have to endure body scans, metal detectors, pat downs, for our own protection.

And now, thanks to changes in Android 10, we have to give up clipboard managers - a tool I use ALL the time EVERY single day. A clipboard manager is one of the first apps I tracked down and installed. Now, instead of allowing users to grant clipboard access like other permissions, Android has simply rendered all clipboard managers useless.

It appears that using developer tools, permissions can be granted via console on a computer (I do not yet know if this requires rooting). But I don't yet have a USB-C to USB conversion cable, so I'm stuck for now.

The feature removal trend continues. Ugh.

Thursday, October 10, 2019

ReGenesis

When I last worked on the arcade-style space mining game I had achieved an endless universe of randomly generated planets and elements. Minerals and fuel could be gathered. Fuel was burned up and the game ends if the player ran out. Planets could be landed on (Their topography was randomly generated) and walked around. There were enemy bases and the player could shoot.

But I had HUGE problems doing collisions. There were major issues with the navigation and position detection portions of the code. These issues were at the core of the game's logic. They were so bad that I didn't even want to attempt to code enemies.

Now that I am circling back to it I felt that a rewrite was necessary. So tonight I built the core game loop and the coordinate logic. I also coded a movement class and game element class. Wrapping when going off screen is simply a flag same with random repositioning on wrap (For the starscape). Reverse movement is also a flag so that the player can stay in the center and the background moves opposite the key direction for the illusion of the player moving.

I've created a test element to verify the moving etc works. Next I will code the collisions to ensure position checking etc is now good.

Once collision is coded I will begin building the various level types, starfield, planet, maybe even inside bases. Then I will build all the random generation / restoration logic.

So far it is going FAR smoother than the previous attempt.

Thursday, October 3, 2019

Reaper Bug

I use subprojects often in Reaper. Recently I've begun using two levels of subprojects more often than not. I do this so that I can duplicate my VST tracks without them blowing up Reaper. I've been burned that way more than once.
I've found that doing such crazy subprojecting can result in Reaper crashing. Such a crash happened the other night. When I relaunched Reaper, my first level of subprojects was showing blank events instead of rendered waves.

Fortunately I was able to work around this issue. Instead of double clicking the tracks to open their subprojects I manually opened the first level subproject. Just doing this seemed to resolve the trouble.

Monday, September 9, 2019

Awesome

I like the idea of tiled window managers. In the past I've tried the Suckless solution as well as others, but the learning curve was more than I felt like dealing with or the default key combinations messed with apps like Blender etc. I recently saw a review of Awesome WM and decided to give it a shot. Out of the box it is great. Once you learn it keyboard combinations, most activities work well. However it seems to not like my Java Swing window used in the Galaxynet space mining game project.

Also I haven't been able to get it to run some of the start up commands and apps I've tried to specify. So sadly, at best I'll have to use it 3/4 of the time.

Also it would be nice to be able to autohide the main task bar, but so far the solutions I've tried for that are kind of buggy and weird, and I haven't been able to get their scripts to run at start up.

I'll probably mess with it more in the future but will likely use Plasma for the most part.

Wednesday, August 7, 2019

Pff DataStage.

Kill me now. My first impression of DataStage was: 'Eww'. So all the beautiful SQL queries are hidden inside horrible GUI 'stages', in text fields that become single line textboxes when you double click (You know, like when you are selecting a word). So all day I'm turning fields into single line textboxes on accident... because that's useful.

As solutions grow, you get to scour through dozens - or hundreds - of jobs, filled with who knows how many stages. What if you need to find something? Hehehe. Welcome to DataStage.

What if you have a job that pulls data from a database and runs that data through a dozen stages (You know to do joins and stuff, cuz SQL is haard) and outputs it to a dataset or something. Uhoh, you forgot you needed the LastName column. Hehehe. Get your mouse finger ready. You get to double click every single stage, click on inputs and outputs and mapping tabs. Type out the column name, specify its datatype etc, drag stuff around, go back and forth hooking up your new column to pass it down the chain.

Time to debug? Hehehe. Get Toad or SSMS fired up, because you get to go back and forth from DataStage to the actual database. Records are getting dropped somewhere? Hehe. Good luck with that. Stage X SHOULDN'T be dropping my record. But it is. Have fun.

Maybe DS isn't so bad and I'm just a noob - but my team supports apps built in it - and I have two days to make it happen.

DataStage. Pffffff.

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