Category Archives: Daily Blog

Generally a bunch of various small items that come up on a given day. Less focused than other topics, a catch-all…

Steps and Tangents…

Started reading a book on coding CUDA using python so I’ve loaded Anaconda and the CUDA SDK on my machines that have Nvidia video systems. Looks interesting and perhaps useful and the ebook was on sale at Packt for $10. I’ll share here as things progress…as usual with sandbox items, this may move slowly as time permits.

Brought the basement Ubuntu system attached to the TV down there up to a better state. It now auto-launches chrome on boot and does not prompt for credential access on login…less secure overall, but much better user experience for a television.

I’m also loading an internal house use wordpress instance onto that system…it is one of the few machines around that doesn’t get used for software development, stays running most of the time and has Ubuntu Linux running. Hoping to use this for local only notes and tracking that I’d rather not host on my main public hosting.

Getting wordpress setup properly is proving a bit more labor intensive than I remembered with all of the database setup being manual…but is has been a while since I set one of these up.

Waiting for my Pi 4 to arrive though I’m not sure how much priority will go to it when it does as I’ve got quite a few other things going on currently.

I do want to put together a small motion triggered frame capture tool on the pi using OpenCV for data acquisition and image processing. My wife likes watching the wildlife and I expect we could get some interesting shots with a pi and a web cam pointed out a window for a day or two.

RPi-4 is on order

I’ve got a raspberry pi 4, 4 GB on order. I’m not expecting it to arrive until later in July.

I’m looking at this as a way to have a decently generic ARM development platform hanging around for a reasonable price. I’ll likely look at booting it off of a 512 GB USB-3 SSD that I have hanging around to give me a more robust and larger dev system.

The 4 GB of physical memory is particularly interesting as I had to set up a swap file on my pi-3 and pi-2 boards before I could build an up-to-date local version of OpenCV. Without the swap space, the build hangs quietly at the part-way mark and never completes.

I’m hoping that I can use the pi-4 as a build and development machine while pulling executables over from there to the pi-3 and pi-2 machines to run. Being able to develop on a system with plentiful resources yet run on cheap and less capable machines would be a great combination…

A Weekend of Database and CertificateS

Spent some time over the weekend doing some more work on the MySQL database layout for the cluster game and working on getting self-signed certificates prepared for my various development machines.

PHP and MySQL

The database work went smoothly. Still largely on the whiteboard at the moment. I’ve also been going through a PHP re-familiarization as I’ll need to code this stuff in PHP for my hosting and I haven’t worked in that environment in some time. I did grab an evaluation license for PHPStorm a few weeks back, but I fear that was premature as I haven’t reached the point where I need such tools on this sandbox project yet.

Certificates

I finally took the time to create SSH certificates to permit direct logins to my linux machines from my windows systems. That part I’ve done many times before and it went flawlessly.

I created and installed self-signed certificates for various local systems and set up TLS on their Apache servers. The creation and installation went smoothly, but the end-result was not what I was hoping for.

After installing the certificates in several different ways on the systems/browsers involved, I still did not see the secure icon in the address bar. I’m not sure whether this is caused by the certificates being self-signed (shouldn’t be as I installed the keys directly from files into the trust stores) of something else I’m not doing properly. I’ll need to keep looking at that one.

I do want to verify that the connections are using TLS. If they’re encrypted but not ‘safe’ because they’re not signed by a major cert vendor then I’m probably ok with that. If the TLS handshake failed because they don’t have the right certs then there’s a bigger problem.

Sunday evening I started down the road to building a local CA to sign all of my certificates with. I’m wondering if setting this up and loading its public key as a trusted root may give better results. The process is a bit more involved but may be worth it if it gets closer to the results I’d get with a commercial certificate.

I still haven’t found a way to load a FreeTLS certificate on my GoDaddy hosting. One of these days I’ll spend the time to get on the phone with their support folks and see if this can be worked out.

I may try setting up a FreeTLS cert on my dynamic DNS connection that targets a port on my home firewall. That would provide more flexibility, but be less robust and scalable.

Samba SMB Shares

Toward the end of the evening I ran through samba installs on several systems. I had been pushing files around between my windows and Linux machines all weekend and wanted to make things closer to seamless.

I had no real luck on that front. I could get things to the point where windows recognized share names from the Linux machines. I could never get things to the point where my windows systems could connect to a share and see files inside. Not sure what I’m missing and the samba logs were not at all helpful.

I’ll probably re-visit this again sometime soon, but for now the convenience of having it working isn’t worth the effort involved in finding out why it isn’t.

Getting Back to PHP Work for Cluster

Since vacation I’ve been pretty busy working on photo post processing and around the yard.

At this point I’m going to be trying to get back to building a back-end for the unity based cluster game that runs in PHP on my web hosting (initial work on local sandbox PHP instances of course).

I think I’m going to try using Visual Studio Code with PHP Extensions to get this started. I’ve done a little PHP coding in the past, but this looks likely to be far more involved than any of that.

I’d like to get a TLS cert on my site before going live with this, but it appears that my hosting may not support free TLS or similar cert installs and I’m not happy adding the annual renewal cost for a cert to my site at this point so stay tuned. I’ll probably try hitting GoDaddy support some evening soon to see what they can tell me.

First steps will be getting a simple RESTful interface defined and then laying out some simple SQL schema to provide the back-end. If I can get that working, I’ll look at extensions necessary to provide the full back-end to the game as a whole. Not looking for commercial quality here, just something sufficient to allow multi-player turn based gaming.

Looking at InfoSec Stuff a Bit

Information security with a software hardening focus has been coming up a bit lately. Picked up a Engineering Trustworthy Systems over the week end as a refresher along with digging out my copy of Cryptography Engineering by Bruce Schneier to re-read.

This stuff is more about system architecture and design than it is about algorithms and coding so these books should be a good touchstone. Coding standards and use of standard algorithms and protocols can cover the fine grained issues. The larger scale issues tend to be less well attended to and more prone to providing openings to the bad guys.

More WPF and PInvoke

My command of the PInvoke functionality that I need is largely complete. I’m looking at stepping up my WPF skills to build out some more usable UI front-ends to these tools.

Add in some MongoDB back ends for persistence and I expect to be in a much better position to manage my data archives.

I’ll be pushing updates to my github account as I build test projects and useful tools.

Back to a Little VHDL

VHDL keeps coming up in places and my VHDL is more than a little rusty so I was back doing some refresher last night and will likely do some more tonight.

I need to get back to a point where I can read VHDL and make reasonable sense of it (and perhaps make small changes without breaking too much). If I hit the point where I’m feeling comfortable with it again I may dig out the Spartan-6 board I have lying around and see about trying some real work programming it.

This is something that keeps coming up, but once the need fades off I find other things that are higher priority and never get past the early stages…need to reach basic fluency this time around.

Interesting Looking AI Board

Just saw an article on Tom’s Hardware talking about an affordably priced AI board from NVidia here. At $99.00 with 4 GBytes of memory, a pretty capable ARM and a GPU that is usable for neural net work it looks intersting. No wireless (neither bluetooth or WiFi) but should be capable of taking a USB dongle (thought it seems the default kernel lacks driver support).

Unity Investigations…

I’ve been splitting my experiments with Unity between this blog and pandamallet.com (where I put ‘creative’ things.

More graphical content and thoughts on game design possibilities have lived on the creative side while more technical, C# coding and Unity script coding bits have lived here.

I’m going to move to keeping everything in one place for convenience and accessibility. From here on, I’m going to put all of the game programming related content on the creative side and keep my career blog for more directly coding related items and similar things.

As pandamallet.com does not share with linked-in at this time, this will mean that anyone who was watching these goings-on through linked-in notifications will need to pop over to pandamallet to see what’s up going forward. I will look at making sure that all of my sites (pandamallet, my main blog and my career blog) are publishing to my twitter feed when something new is added to make this (perhaps) a bit easier.

Playing with Python

I was playing with Python a bit more over the weekend. It is a serviceable language but I am persistently amused/irritated by a few things.

The python 2/3 breaking incompatibility split seems to be persistent, entrenched and troubling. It appears that the .NET and java ports (jython and iron python) have still not made the transition to python 3. The cython baseline and web site are now confidently stating that python 3 is the present and python 2 is the past, yet I’d expect that if that were really true, the other python implementations would at least support python 3 and ideally would have the same position with regards to python 2.

I was watching a video discussing some python features and they mocked the curly brace languages for having religious wars about where to put the braces. I have a general aversion to using white space (a very poorly conserved type of text) for block scoping as far too many tools consider spaces and tabs to be adjustable and interchangeable. The thing I find amusing here is that I’ve seen far more friction in the python community between use of spaces or tabs and how many spaces per indent level than I’ve ever seen around the placement of curly braces.

I do expect to replace perl with python for various places and the OpenCV support looks quite interesting. I think that in time the style issues will feel less foreign and I very much hope that the 2/3 split will be dealt with in the overall community as JVM and CLR versions of the engine that implement a non-obsolete version of the language would be very nice to have.