Signed up for a few Udemy courses during their $10.00 sale

I signed up for several Udemy courses while they were offering them for around $10.00.

The first pair was a pure impulse buy. I have been poking at OpenGL and related 3D rendering technologies for some time. Written a bit of code in that area a long time ago. When I saw the match pair of Blender and Unreal Engine courses I decided to dive in.

I’ve also grabbed some coursework in the web UI and full stack side. Probably totals to more than I have time to complete reasonably, but at $10.00 a course I’m willing to take that chance.

Currently I’m spreading a pretty wide net. The web side is probably where I have the greatest need for outside guidance as things move incredibly fast and there are many options to choose from. Figuring out what makes sense and isn’t already obsolete is challenging from the outside looking in.

We’ll see how things go…just getting started…

And…just added one more…and Android programming course. That completes the list of pieces (mostly) that will make my photography management tool for vacation work…adding more content to an already full slate but…

Getting the code sandbox rolling…

I’ve finally gotten around to dedicating some time to home front sandbox coding.

I’ve had a github account for some time (with nothing in it until recently) at https://github.com/ninecrows.

This weekend I started finally using it. I’ve wrapped together a little windows service coded in C# that can monitor (or selectively stop) selected services on a given system at C9ServiceManager.

I’ll likely keep moving forward and putting more toy projects up here as things move forward. I’ve got plenty of things, large and small, that I want to play with and I’m going to be making time to mess with them.

I expect that by the end of the weekend I’ll have this little tool doing its base job of logging service state changes and selectively stopping or starting services.

There is quite a bit more I want to do with this one so stay tuned:

  • Persistence for previous state…probably JSON serialization stored under a registry key.
  • RESTful interface for external access and control. Likely to use OWIN and NancyFX though .NET Core might get the  call (reading Microservices for .NET core).
  • Simple, probably single page, Web UI to allow human interaction without excess pain. Likely through the same infrastructure as the RESTful interface. May very well use Angular2 to support the client side part. Things to play with here that are worth learning about.

Once that is all in place I’ll most likely move on to another project (and/or spend some time on the Udemy classes I signed up for that parallel some of this effort).

Windows services with single page web apps

I’m getting things going on some sandbox software projects that have been sitting on the shelf for some time. Perhaps a bit spread out but should be interesting.

I want to be able to put together free-standing service applications that expose both RESTful programmatic control and single page interactive GUIs without involving an external web server.

Looking like C# and either OWIN or .NET core as the sweet spot here. Need to choose a javascript library for the client side bits…Angular2 seems interesting but may be more involved for first attempts than I want.

I’ve also signed up for several of the sale Udemy courses…started out with an impulse buy of the Unreal Engine Programming course and an associated Blender course. Added in some Angular, Node and web programming stuff. Probably more in there than I’ll have time to get to,  but at $10 each I can deal.

Definitely need to come up to speed more on the various web programming environments and tools as they’re looking like the right way to do UI at this point. Leaves me with ASP.NET, Node and Apache with PHP, Javascript, C# and Typescript on the plate 🙂 Each of these shows up somewhere in my environments of interest. Should be fun…

Looking at WebGL and Three.js

I’ve been reading my kindle copy of WebGL: Up and Running as a way of starting to play with OpenGL and related technologies.

Adding in three.js (main site here) to the mix seems like a good idea as it provides pretty decent tools for wrapping the details of WebGL. I’m also going to dig through the code a bit to see what the back-end looks like…I’m more than a bit curious about how the tools add in elements along the way (the samples I’ve seen have no explicit canvas so I’m guessing it gets added by three.js.

If I can get some WebGL code up and running, next step will be to build some PHP based RESTful interface code to talk to the front end and see what makes sense (JQuery, Angular) for the rest of the browser side code.

Looking at putting together a simple web based board game as something to play with. Can add sophistication later. Plenty to play with.

Web Implementation Options for SandBox Projects

Looking at some sandbox projects that need web interfaces.

Winding up with a big split here

  • PHP/Apache (LAMP) for real site work.
    Anything that needs to run up here on my hosting will be something LAMP-like. Code needs to be PHP (at least locally) with back end persistence in MySQL.
    Front end should be more flexible. As long as the back ends can provide what the browser side code needs all should be good.
  • IIS/ASP.NET looks like the easiest choice (with .net core MVC as the tool set) for windows integrated work. I have a few things that want to run locally on a system but present a web interface externally. These tools should provide lots of ‘traction’ with close windows integration. Probably an Angular front end and perhaps a full service on the back-end.
  • Node.js shows up in many places. It provides a fast to deploy web server that is flexible and easy to code for. It is on my list in part because it has been showing up in places that are interesting and it part because it promises to support light-weight tasks where IIS would seem like over-kill.

For the front ends there are a huge number of choices out there. Of the ones I’ve seen

  • Angular 2 seems to be pretty capable and well respected. I expect to do at least some work with Angular and if it proves easy to work with I may focus on it.
  • Bootstrap is older (I think) but appears to provide a similar set of tools and infrastructure. If I run into issues with Angular, I may give this a try for something small and see how well it works.

I am also looking at free-standing, light weight web server options that run in C#. This is primarily aimed at RESTful interfaces to back-end code. OWIN and Katana seem to promise something like this while on the C++ side (and I expect C++ will show up now and then) microhttpd looks promising (with GPL restrictions, but these are sandbox projects).

Currently doing quite a bit of reading. Soon I’ve got to kick off from reading and get to some doing. Not sure what I’ll tackle first but I will probably try to list the things I’d like to kick around before I pick one…stay tuned.

 

A Little bit of python…

Someone at work asked about shuffling cards in software (or similar type problems) so I write a small bit of python for them. Python isn’t a language that I’ve had much need for in the past but it was the language they are familiar with:

#! /usr/bin/env python3
import random

# Cards in each suit
cards = ['Ace', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'Jack', 'Queen', 'King']

# Suits of cards
suits = ['Clubs', 'Hearts', 'Diamonds', 'Spades']

# Start with an empty deck and fill it with on card of each type in each suit
deck = []
for card in cards:
 for suit in suits:
 deck.append(card + " of " + suit)

# Make sure we got the right number of cards in the deck
decksize = len(deck)
print (str(decksize) + " cards in a deck")

# Shuffle the cards by walking through each location and swapping it with a
# randomly chosen location in the deck.
for item in range(0, decksize):
 dest = random.randint(0, decksize - 1)
 # Swap by saving the contents of the destination spot, copying the source
 # spot there and then placing our saved card in the source location.
 temp = deck[dest]
 deck[dest] = deck[item]
 deck[item] = temp
 
print(deck);

Classic bit of swap based shuffle.

I was a bit surprised to see that python has split into two largely incompatible languages with the transition from 2.x to 3.x being drawn out and there seems to be some question whether there will ever be a full transition.

It does appear that with a bit of care it is possible to have both versions on one system with distinct names. Makes things workable if not exactly pleasant.