That push back there was short lived

I’ve had other things on my mind so I’ve been back to gaming more, proj’ing less. I’m not sure what all grand plans I’ve recently booked about, but I’m totally going to get back to them.

Working on my projects isn’t a means to an end, but a form of mantra. Whenever the world gets on my nerves, I work on a project either in person or my head and that gives me a focal point that’s completely unrelated. It’s not a great mantra, but it does the job. Over the last few weeks though my other stressors started bleeding forward enough that I couldn’t focus on the other. Since I couldn’t escape into my projects, I had to compact my downtime into the wee hours, which means that it’s too late to think on bigger things.

Now though, my day-to-day has started normalize again, which means I can start trying to get perfective again.

Or I could keep on killing it as Clan Eshin wrecking house, yes-yes.

Books

I’ve always (second grade and on, long story) been a voracious reader. Since many of these books are like old friends, I almost only buy my books, which means that in my forties that I have quite a few.

Stop. Had a delay on this thought. Thought a bit. Changed the music in listening to. Sorry for the disjointed thought process. Reasons.

Right. So I’ve got books. I was going to get in the why, dance around the discussion, sweet-talk the why of this post. It doesn’t matter why. I’ve got books. A lot of them are trash. A lot of them are in series. So the issue comes in that o don’t know what books I have. I don’t know what books I don’t. I don’t know where any given book is. I don’t know which Verizon of which book I have. I don’t know what I need to build a set.

Secondary issues come down I don’t want to use someone else’s property system they can turn off for reasons. I don’t want my book ownership to be used to define me. I don’t want to be stuck with the tools someone else says. Not every book has an ISBN. Not every ISBN is unique.

So we have a few constraints.

  • Enter all the books with limited work
  • No Amazon or Google as a primary tool
  • No current app I’ve found to organize
  • Be able to find the books I need

So the best way would be an infinite memory and organizational skill. That’s not happening. Second best. With a minimum number of steps define the book, and it’s version. Now I can identify book and author by looking at spines, but how.

  • Depth perception tells me distance which gives me size
  • Geometry gives dimensions
  • Spine gives me an author and or title
  • Front cover fills in the gaps

Looking through a bakers dozen on one of my auxiliary shelves I saw quite a range. Authors not on every spine. Some titles smaller. The works. So how do I know which one is which?

I’m thinking a bit of machine learning will do the trick. A vocabulary of name or author would probably do the trick. King could be either for example, but Stephen is probably an author. Shining could be either, but The is an is name. This won’t be perfect, but I’m not perfect.

Another push

When I’m left with a little alone time I tend to gravitate towards video games, which I find nothing wrong with so long as I feel like there’s nothing wrong with it. Lately though, I’m not sure if that’s the case so much. To be clear, I still have no issue with playing video games, and I still will play video games. It’s just, maybe not so much.

This is probably hand-in-hand with me deciding to start mixing in a non-fiction title with my regular dose of fiction. Again, I see no issue in whatever I choose to read, but I’m actively making myself read outside of my usual fare.

Back to video games, or not video games I guess. Last night, after the Wif went to bed, I started doing this. In this case I decided to flash an LED with a 555. I didn’t get it done working before I decided it was time for Snake to rehash the proxy wars in Central Asia. This want a failure, though it might feel like it. I found all the components I need, organized some things a wee better, and unsuccessfully hooked up an astable 555 circuit.

The thing is now I need to look at what I did and do it better. So I expect to build enough circuits that eventually I’ll master* the process? Probably not. I can make a good show if it though, and there are enough crossover points with other tasks in my life, while I might not reach mastery, I can reach for competence.

So what about tonight? Tonight I’ll start building blocks up to figure out where I went wrong.

What about a later date? It’s building blocks all the way down.

Working Part 3, Addendum

A bit deeper into data, a bit of a rundown of different data structures. All items should have a creation date, modified date, agent.

A blog – text blob, author

Data logging (continuous) – sensor, name, data/datum

Data logging (intermittent, bread rising, beer fermenting) – sensor, name, project, data/datum

Quote – text blob, author, text source, character if applicable, why, id (for citing and reverse citing)

Image – creator, media, xyzt dimensions

Stop. This is me three days later.

I want all the days to be conflated. There will be no separate tables other than to keep who can separate from whats.

Mostly.

Let’s get a bit into the weeds. I want to be able to view the data, sorted by a range of options, filtered for a range of options, and displayed by a range of options. The first two are gimmes seeing as how this is a blog, but what about the third? This isn’t just a blog, but also a data display service. I’m sure someone could come up with other descriptors, but we’ll start there. Now most days, the number of words I might type won’t have any causal relationship when the moisture content of a given planter, but there might be a correlation between hours of sunlight and rate of beer fermentation. This wouldn’t be the ideal way to look for it, but it’d be fun to graph it that way on a lark. So how do I do this? I could either join tables, which sounds like a lot of overhead or I have one* table with all the data. Now there might be other tables, such as comments or footnotes, but even those would be almost easier to do in the following format:

  • User – who posted (person or device)
  • Agent – what posted, web interface, app, API, web interface to the web interface (comments)
  • Time stamps – created and modified
  • Contents – …
  • Flags or tags – TBD

This will need to be expanded fairly quickly, but I don’t see that as a major roadblock.

Now about implementing Eliza as an interactive agent, that’ll be interesting.

* Users, and other truly different projects would be separate.

Working Part 3

Last night I did another chapter of the Flask tutorial I’ve been working through. It’s well written and bite size, but since I’m insisting on actually topping rather than just skimming the text, it takes time. Of course this is in the middle of me doing all the other things I do, so it’s always a bite here, a bite there.

Do I think the final product will be based on Flask? Maybe?

Working Part 2, addendum

I decided I should keep things separate. This way what and when can be read cleanly, while my normal junk can be seen for insight. While I have the syntax of Perl, I do love the back story on the O’Reilly book about where that syntax came from.

Interestingly enough, last night I didn’t play video games. Not due to a time constraint, but because I felt like working on a project. This hasn’t been happening a lot lately, so it was a nice change of pace. My sleep may have suffered as a result, insomnia to, but we’ll see how this plays out tonight.

Now, while I’m away from the keyboard as I’m riding a bus to work, let’s dog into what I’m doing rather than the how.

So this will be the nth iteration of my vanity blog, secondsuitor.com. I’ve done it in raw HTML, PHP, and currently PHP a la WordPress. I even considered doing it in Flash back when that was a thing. It’s always been serviceable, but never really have me the happy. For something I’ve been passing for hosting on for over a decade, that seems kinda weak tea.

First and foremost this is a vanity project. I’m so came I think my blog is about me. Now to clarify, when I say vanity, I think I’m talking bathroom cabinet-sink-mirror combination.

Last listed and foremost important, this needs to reflect me like a mirror. There should be no part that isn’t part of my core. It’s why WordPress just doesn’t work for me. It started me from the process. Also, it’s an effing huge attack vector, that is only not an issue due to obscurity and blind luck. While I update continually and have whatever good security practices in place, other than HTTPS as I’ve been lazy, there are probably more vulnerabilities than… A lot of vulnerabilities. Back to the task at hand. It needs to reflect me. While being able to pop back and forth between PHP and HTML is nice at times, it’s an effing headache when you realize that your content is missed in with the presentation. Again, I just can’t be assed to straighten that out. Things like this develop a life of their own, and untangling them to maintain the longevity of the base blog just didn’t sound fun. That’s why after a lot of soul searching I decided to go with Python. It was about JavaScript, but at the end of the day, I just don’t like JavaScript. I’ll use it for work, and maybe for some DOM manipulation, but not for a back end thank you very much.

It’s also a sink. Not just a time sink, but a kitchen sink. Everything needs to be able to get scrubbed in it, everything needs to be able to fit down it’s drain. I don’t care what I throw is way, it’s taking it like a champ. That means it needs to be extendable. I’m working on how, but that’ll be another addendum. On the base we’re taking a blog, right, but there needs to be more. I want to be able to store measurement data passed from sensors. I want to store the days weather report. I want to

Last, it’s a cabinet. A cabinet with a tonne of drawers and storage. So all those things that are being taken above, they’re being stored here. I don’t mind a bunch of unlabeled drawers, but there are drawers, and things go in drawers. That’s where I need to do some deeper planning. I want a data paradigm that is overly complex and infinitely interchangable.

Further thoughts, some 36 hours since that last sentence. Each app should be separate. This means each app should have it’s own table. This might be for me in some long term, but it’ll definitely be for anyone else in any term. While I don’t think I’ll be doing anything unique or transformative, I do have some thoughts on potential and needed democratization and decentralizing.

The big bad social networks are only a problem because still use them. It’s not like they’re intrinsically better than an upstart, better sold than the competition, or better liked than the plague. They’re used because they’re used. The challenge is they all need to make a payment, which they do with ads. You could fix this with a subscription and lock out the poor. You could legislate away the problem, until someone gets around it. Or, just maybe, you build a framework for anyone. While people have done this (Blogger and WordPress) there still beholding to someone else. The better worksy would be if anyone who wanted to make their own site. There are some definite big issue, but for the minute let’s just talk a blog.

Every app should have it’s own table. Every app should he registered as okay with the main.

Working Part 2

(Part 1 was work on Sunday)

Last night I got PostgreSQL installed. I followed that with the tutorial sample Python interactions. I’m happy to say that my SQL insane nearly as Rusty as I thought. While there will be differences later on, at least I didn’t feel lost out the door.

This is what I followed.

Next, ideally tonight, will be getting Flask going and getting a response from another system.

In the mean time though, let’s have a separate post to keep things clean.

Working

So I’m actually going to do this. Starters is getting the pi-top cooking along. I want to do it on that like harder so I can know whatever I’m doing won’t be aggressively large. I want something lean. I also need to be able to do this while not watching TV. It’s a long story. Now the best of that is the pi-top, while it has a battery, can’t run in the darn thing. Whatever.

I went to start and saw I didn’t have virtualenv installed. I’m trying to be better about that. So I went to install virtualenv and then realized I should check what other Verizon’s of things I have installed. Especially as how Python 2.x is no longer going to be standard soon, I made the decision I should go to 3.x. The host I’ll probably go through is 3.6 in that regard, I had 3.5 installed. I don’t I’d have a version change it the gate, but better safe than sorry. So let’s do a full update. On a pi3 over WiFi. So I thought I’d blog while the update runs. Whatever.

Back to it?

So I’ve been in a funk, now I’m in a fury. Or a flimsy. I’m not even sure anymore.

Whichever.

So I have a few things I need to get on, and most of them seem to be interconnected. I don’t like my site as it is right now. It’s not a big issue, but it’s not quite what I want anymore. I’d like to have:

  • Easy ability to add whatever data structure
  • Correct said data structures as appropriate
  • Not be reliant on others secure updates
  • Showcase what I can
  • Learn what I can’t

Let’s hit the highlights. I want the ability to have non-conforming data. I want to be able to add free form new uses. Some of the real world applications would be the Internet of Basil, blogging, SOWs got all of the above, anything. Now this of course sounds like it would be best to go NoSQL, but it seems a little too sloppy for me. Not in a bad way as far as what others would use it for, but terrible for me. I like a bit of freedom, but not tons, and a good about of what I want to do is pretty temporal. I could go a normal SQL, but there’s a different rub, in that the standard option for most hosting would be MySQL. I don’t mind building something in MySQL, but I do have a bone for Oracle. So, best of both worlds. I’ll go PostgreSQL. That’s totally open source, not Oracle, and even had built in JSON joy. I could build something from scratch, but not today.

What to build it on? I’ve mentioned before that I really dislike PHP, and I still do. It’s not a hard feeling, but it’s still a feeling. The main issue is the size of the attack vector, and it’s not a language I want to dig into any more than I already have. JavaScript is familiar as heck, bit it’s hear dirty. Now I could bang together something on top of NodeJS, but that seems like a pain waiting to happen. While I could do it all quick and dirty, and my JavaScript is the most current, it’s definitely not what I want to do going forward, especially not at home. So Python it is.

In terms of homegrown versus, out-of-the-box, homegrown. Always homegrown. There is a rational to that though. While I’ve said before, what the issue with an out-of-the-box is for me, is that it has features I don’t want, and it misses features I do. Admittedly I’m already rethinking one item, multiple users, but that’s because I want a separate service account for each hook. More importantly, if I do roll my own, I’ll have a nice couple of work examples.

I’ll start looking at some of this later this month.

Litter

One of the many projects I have pop in my head repeatably is an automated litter picker. In my home neighborhood, there’s normal city litter combined with the spare sharp. In my work neighborhood, there’s everything. I started by thinking about how to dispose of difficult items like needles and dog poop bags, but I think I need to start by figuring out how to identify the litter.

We have a lot of categories, some of which we don’t want to touch on quite yet. I think what’s be best is start by building a rover with a few sensors. The first iteration should be able to follow me around the block, taking continuous stills, ideally normal, IR, and whatever else. These stills should ideally be pointed out to the sides, and not straight ahead. I can then use these images to start training some image identification. While that’s going on I’ll start looking how to build the more in-depth mechatronics. Once I have the mechatronics done, I can then reach out to the city about how to pick up and dispose of the more difficult of the dead skin cells of the city. I don’t want to be on the hook for poop bags and needles. I see enough of them that I know there’s a need for safe and clean disposal, but not enough that I’m ready to die on the slopes of Mount Filth.

The major things that I think I’ll be identifying are size, color, proximity and liveliness. If it shows up on IR it might be living with bacteria. If it is, is biodegrading and the problem is solved. I don’t want to build anything large enough to pickup a pallet, let alone a stool. There should be no weeding, only litter. Glass will be a weird one, do I want to puncture plastic, etcetera.

The start though has to be identification. It’s like the classic Rumsfeld trope: “There’s the knows, the known unknowns, and the unknown unknowns. It’s the last ones that get you.” I probably butchered it, but I thought he was an ass outside of a couple good sound bites, so meh. If a thing isn’t positively identified, it should be flagged for the next round. It shouldn’t be touched unless it needs to be.

Then it’ll be motion. I still really like the Godzilla concept. Either that or a trash picking up scorpion. A scorpion would be appropriate (Scorpio here) and easy to do system in terms of balance, but it will be a lot of motors which reduces the deployability. I don’t know how will it would climb stairs. I could think of using the tail to help push it, but could be a definite weak point in the design. Godzilla would be fewer bigger motors, maybe, but would definitely suck on doing the balance being fixed with the tail.

I’m leaning scorpion the more I think. Stairs are going to be a challenge either way, and a scorpion will be more applicable to other future needs.

Admittedly, I could go sideways on the design, but somedays straight and easy sounds pretty good. I do like the idea of the visual-behavioral gestalt.