• Home
  • About
  • Contact Me
  • Projects
  • Post Categories

    • Android
    • Coding
    • Gadgets
    • gaming
    • Gaming
    • Life
    • Mobile
    • Reading
    • Web
  • Archives

    • August 2021 (1)
    • May 2021 (1)
    • January 2021 (1)
    • October 2020 (1)
    • February 2020 (1)
    • November 2019 (1)
    • April 2019 (1)
    • February 2019 (1)
    • November 2018 (1)
    • October 2018 (1)
    • May 2018 (1)
    • November 2017 (1)
    • January 2017 (1)
    • September 2016 (1)
    • January 2016 (1)
    • November 2015 (1)
    • February 2015 (1)
    • January 2015 (1)
    • December 2014 (2)
    • September 2014 (1)
    • March 2014 (1)
    • January 2012 (1)
    • September 2011 (1)
    • May 2011 (1)
    • April 2011 (1)
    • March 2011 (3)
    • February 2011 (2)
    • January 2011 (4)
    • December 2010 (3)
    • November 2010 (5)
  • Projects

    • SudoTape [Android]
    • CameraTest [Android]
  • What am I interested in?

    • @XboxGamePassPC welp, 15 hours down the drain. PC gamepass just upgraded my game and in the process deleted all my… https://t.co/Nojurp9OLv 4 years ago

    • Enter for a chance to win an incredible ASUS ZenFone 6 smartphone! https://t.co/8gLeZuw0xS 4 years ago

    • #LVLUP with a @NVIDIAGeForce powered one of a kind Custom Anthem PC by @CYBERPOWERPC @DIGITALSTORMPC @MAINGEAR and… https://t.co/lILFR29dBb 4 years ago

    • Yeah, no 4 years ago

    • RT @Fanatical: Our huge Summer Sale contest is here and you can win a PC Build worth $1500! Enter here: https://t.co/qjZtxOPLfA https://t.c… 4 years ago

    Powered by HL Twitter

Aug 03

Godot

Coding, Gaming No Comments »

Recently I’ve been playing around with gaming engines, I haven’t spent too much time in the 3D graphics world but rather 2D.  Mostly due to nostalgia, being able to develop games and effects that I recall from my past, this gives you something to shoot for while still learning.  I find it much easier to stay motivated if you have small goals to aim for.

Needless to say I eventually came across the Godot game engine.

Thus far I’m pretty impressed with it, the system requirements are extremely low, installation extremely easy and there are tons of youtube articles on how to be productive.  I used a long old game I played on the Amiga called Omega Race as a guide to learn how to do 2D programming using an engine.  In the past I had simply created my own engines (many moons ago) but it’s clear that most game development done now uses an engine to simplify a lot of the gory details.

You can find the link to the game here:

https://pr0cs.itch.io/omegarace2021

 

 

Oct 06

Fall 2020

Coding, Gadgets, Gaming, Web No Comments »

I haven’t updated in a while but the world has basically changed since Feb, what with COVID and other crap injecting itself into our lives it’s not surprising that so much has changed.  It was clear that COVID early on was going to have a serious impact what with lock-downs, social distancing, mass layoffs, entire businesses that still haven’t really gone back to work.  For me though luckily COVID has been mostly a good thing, work wise anyway.  COVID encouraged companies to ‘work from home’, and I believe initially that the thought was that the company would lose productivity not being in the office but within a few weeks it was clear that most of management’s fears were unfounded.  I can’t help but think it was difficult for management to let go of the concern that people wouldn’t do their job, but with the full time move to AGILE and weekly sprints there really wasn’t much to worry about.  It was clear that if people weren’t doing their job that it would be easy to tell who wasn’t pulling their weight, with weekly retrospectives it was clear what issues were holding people back so being in an office or being at home really makes no difference.  Now people can be comfortable working at home, the company usually gets more time out of it’s employees since they no longer have to potentially spend hours travelling to the office and overall most people’s outlook improved as the work from home concept has helped a lot with the work-life-balance.

My office basically shut down, we moved all the IT infrastructure to AWS (Amazon Web services) and for the most part the overall day-to-day work process has improved.  Yeah sometimes AWS is unreliable, getting IT support can be a mixed bag, voice comms and meetings can be a mixed bag, mostly because I despise Microsoft Teams but I can tolerate it if it means I don’t have to travel on the cattle car daily to downtown to an office cube that is noisy, disruptive and effectively spirit-crushing.  Probably didn’t help that I had to switch offices 4 times in the span of 2 years, each switch worse than the previous.

With COVID and the lockdowns I had a lot of time to improve my knowledge of Angular, bought a few online courses and revised my long-standing game prototype from Thymeleaf and Bootstrap to a pure java REST servelet to an Angular front-end.  The code is a lot easier to understand and maintain as Angular is a great framework as opposed to loose and raw HTML and javascript everywhere.  I did have to relearn a bunch of things that I was familiar with Bootstrap, some things are harder to do (stuff that expects to run on bootstrap javascript) but overall I found work arounds with Angular that work well.

I also found Selenium which I have playing with recently.  In using Angular and Arquillian I was pretty confident that I could unit test a lot of functionality but with Selenium there is no reason why the entire application couldn’t be tested as well.

On the topic of gaming I will likely skip the new console launches this fall, there just isn’t enough compelling software for either machine at launch.  COVID likely put the hurt on a lot of dev houses so it feels like a lot of software won’t really be available to 2021 so I can wait until then, consoles should be a lot easier to come by then as well.

I do want a new GPU but considering how hard it is to get a 3080 I might have to wait until 2021 for that too which is a drag.  I’m hoping AMD has a competitive product so I could skip Nvidia this gen but I’m not convinced yet.  I’ll happily eat crow if the new Radeons are as good as the Ryzen CPUs at being competitive.

I’d also like to pick up the Quest 2 or the Reverb G2 however without a new GPU there isn’t much point, my current 980 just isn’t up to snuff for the beating some of the newer headsets would put on it.

 

 

Feb 10

New Year update

Coding, Gaming, Web No Comments »

I took the last few months off doing development at home, spent some time with family and friends and taking a break from development at home.  I find that I get burnt out programming all day then spending a large part of home time programming as well.  It’s not that I don’t love programming and learning but I personally need that good work/life balance to stay sharp.

In the meantime however I’ve finished the Witcher 3, I had it in my backlog for a long time but didn’t want to start playing it because I knew it would be a significant time investment and not really something you can pick away at without forgetting story-lines, characters or the myriad of controls required to be any good at the game.  I finally finished Witcher 3 and all the DLC which clocked in around 125 hours which was good value if you’re talking cost/vs time spent playing.  I enjoyed the game a lot, it feels like it’s been a really long time since I’ve played a good RPG, I’ve started others but abandoned them due to either boring combat, silly storylines or some other game coming along that caught my fancy.  I had tried previous games in the Witcher series however the combat in there just felt dull so I never did get very far however Witcher 3 is significantly better from an action point of view and the storylines were really memorable so it’s worth your effort if you’re considering it.

 

 

I also got invited to the XCloud beta Microsoft is putting on.  Overall I’m pretty impressed, I can’t help think that much of companies cloud offerings have been a lot of hot wind (Looking at your Stadia) however XCloud has been really stable and really easy to use.  If Microsoft packages XCloud as part of Gamepass they will have a winner in my mind.  It’s biggest downfall is bandwidth used.  Playing for around 45 mins used 1.6gb of data (when I was on WIFI) which is pretty crazy.  You’re not going to be using XCloud when you’re on mobile anytime soon, certainly not with how overpriced mobile data is here in Canada.

 

I also starting doing courses on Angular .  Last year I spent quite a bit of time learning Thymeleaf and Bootstrap as well as familiarizing myself with javascript so I thought it would be interesting to approach web development from a different angle (see what I did there) and since Angular is well recognized it felt like a good topic to learn on.  I’m still very early into my research but thus far I’m excited.  I like how typescript has a lot more type-safety than regular javascript however I find it’s still pretty easy to chop your feet off in Angular and get into a state where understanding where your bug is pretty difficult.  It’s pretty easy to mistype something or poorly name a field or method and have the code break without a lot of feedback why it isn’t working.  Much of that I’m sure is related to my inexperience however.  We’ll see as I get further into my online course if I am off base and being too critical of the tool after being spoiled by using eclipse/intelliJ for so long where I’m very familiar with finding and fixing bugs.

Apr 01

New dev

Coding, Life, Web No Comments »

So for the longest time I’ve been avoiding web development, not because I thought I wouldn’t be any good at it but rather I find that front-end web coding required a lot more artistic skills than programming skills, and since I have difficulty drawing stick men I would struggle making something look good on the web side.  It’s not like I’ve never done web programming.  When I ran my PixelSystems consulting company I wrote some java code that built my HTML website whenever I got new pricing from my hardware vendors.  Yeah that sort of thing isn’t done any more, most systems now build the HTML on the back end, certainly the content specific stuff anyway.  But when I wrote my translator stuff I didn’t have access to hosting that allowed for a java servlet and at best I could only really use PHP for server related functionality so it just was the best way to get a dynamic website and grow my business.

Things are changing now.  There aren’t really that many of us old school ‘application’ developers left.  Most everyone these days are ‘full stack’ web developers, with everything moving to ‘the cloud’ and the notion of ‘SAAS‘ the need for actual application developers to write both computational code as well as UI code in Swing or SWT is lessened. Back in September I forced myself to start looking into servlets, how to develop them, how to connect the front-end to the back-end, build dynamic modern websites, how security, OAUTH works and tying an overall idea into an over-arching website.  So far I’ve learned a lot an am actually having fun.  I’m attempting to re-create a pen-and-paper RPG that I played many moons ago but turn it into a web service/website that allows users to come in, build their content using tools I developed then run through scenarios using the pen-and-paper rules built on the back-end having the server drive and enforce the rules.

It’s slow going because as expected the learning curve is nearly vertical.  Thankfully though the internet is a fantastic source of information.  Sometimes I wonder how I grew up in an age that didn’t have such easy access to information.  How did I actually learn to code without a debugger, without instant access to a search engine that can point me to a problem I’m fighting with in code or ways to troubleshoot issues I’m having with my software?  I don’t think new developers today (the ones I’m trying to learn from now) really understood how much harder things were in the old days, when the only way to really debug your code, certainly on some of the more archaic platforms, was to println or console.log variable contents and try and mentally visualize what was going on in the code and why it wasn’t working properly.  I have NO interest to go back to those days but I do think it’s what made me so resilient today when it comes to troubleshooting problems.  My project has a long way to go before I start talking about it.  I would be lucky if I am 10% done and I have been working on it for about 6 months already.  That being said I am a lot further along with it than I expected and much of that is due to having access to the internet as a resource as having so many years experience in finding solutions to difficult problems.

I also had my 25th anniversary at work this month.  Hard to imagine, working at one place for 25 years.  Well, I suppose it hasn’t been at one place since as with the software industry, even from the beginning, we got bought out lots, but thankfully with each buyout I was allowed to keep my seniority so March 14th was effectively my 25th year there.  Even more strange is that there are 5 of us left that have been working together for all those 25 years.  How many people these days, in the computer industry, can say they’ve worked with the same 4 people for 25 years?  I’ve known some of these people longer than I’ve known some of my family.  I guess it helps that for the most part I get along with them well, that after 25 years we know each others strengths and weaknesses and we are a fine-honed machine for producing good code that the company can sell.  All of us at this point are patented developers, my patent isn’t actually official yet but as with most things government related it will take time but I suspect within the next 2-3 years it will be official so that will be another feather in the cap.  

I suppose I’m simply lucky, to have found something I’m good at, that I enjoy and that I can do to make a living at.  We have to spend so much of our lives working to survive and I was lucky enough to find something I actually love doing that actually puts food on the table.

Nov 28

Three Dee

Coding, Web No Comments »

Many moons ago I used to be pretty proficient at 3D programming.  Not really for work but more side projects, fun, to learn.  I wouldn’t say I’m artistic, hell, I can barely draw a stick-man.  I do know what looks good though thematically, a side effect of 25 years of UI and software design I suppose.

I haven’t kept up with things though, which is part of why it’s always difficult for me to understand people who say “I’m bored”.  There are simply so many things to learn, to spend time tinkering with and have fun playing with that I never have enough time.  I suppose I’m used to the old days, the pre-internet era where you had to learn everything the hard way, going over endless books, chatting on BBSes, finding examples in magazines and so on that I find it extremely easy to find side projects to play with on the internet and relatively quick and easy to become proficient at those new toys and techniques.  Not saying I’m an expert in everything I mess around with but I usually get enough knowledge to have fun and feel like I learned something quickly.

Anyway, back on topic… In one of my numerous daily meetings I found out that there are a number of projects that plan on using the three.js system for 3D rendering.  While listening to the presenter discuss their techniques I loaded up the information on three.js and saw they have a ton of pretty cool demos as well as a very cool example page that shows off the myriad of features the engine supports.  I was impressed.  How is all of this possible inside a browser window?  When did that happen?  I always found web pages rather .. bland.. when compared to the demo/intro scene of yester-year.  This ability to render 3d objects and effects in a browser window seemed like fun.  I hate the logo you see at the top of the screen and wanted to try and replicate it but animated, using this three.js system.

Well, after experimenting and reviewing their examples I had a bunch of things working and was excited to play more but hit a roadblock.  Well not a roadblock stopping me from work but something that I’d fight with every step.  Javascript.  Javascript is the back end language you use to leverage your three.js content.  You might say “well Will, you write java code every day, you have been for more than 15 years, why would you consider Javascript a roadblock, surely you can apply some of your daily practice and be proficient at javascript instantly”.  Well sir, you’d be wrong.  I suppose after 25 years of professional development and countless years learning in grade school I’ve been ruined by structured programming languages.  Javascript is the wild wild west, the rules are so loose that you can chop your feet off and not even know it until you start running.  I found it very difficult to organize my ideas into logical pieces then have them communicate with the code effectively.  I’m very sure it’s an experience thing but I like having organized ideas that are totally encapsulated.  Where the concepts do not contaminate each other except for what you wish to expose.. With Javascript you can do anything anywhere, making the code, in my opinion, messy.  If I try and code up nice tightly composed ideas I find with my idea of keeping the ideas separate and easy to use.

I can work around javascript, its just a matter of relaxing the years abuse of writing small cohesive pieces of code and being more relaxed with my designs.  Sadly though the WordPress CMS backend I’m using for this website it’s exceedingly difficult to embed javascript elements without re-writing much of the theme you’re using.  I wanted to change the logo above to make it animated but realize that I’d have to rewrite the theme I’m using to accommodate for doing that and I’m lazy so I’ll just post my example to a supplemental web page instead you can visit here:

http://www.pixelsystems.net/proto/logo.php

It’s not really a 1-to-1 translation of the graphic logo animated but just me learning how to load 3D fonts, implement tweening, how to programatically fill a cat-mull spline polygon and so on.

What is impressive, after all my complaining is the cost of entry to start learning and having fun with javascript and three.js.  The cost of entry is nothing, beyond the time required to read and experiment.  I was always impressed what you got for free with Java (free language, free IDE, tons of source code), with Javascript it’s even easier, there are tons of good editors out there for writing code, many of which interface with libraries like three.js and offer code completion, running right out of the IDE and other niceties that we take for granted now.  It’s very easy to write code, save it and run it instantly.  You can debug it instantly in your browser so very quick access to the data structures, their contents, console logging and so on, with nothing else to install and set up.

I’ll likely add this stuff to the endless parade of “play more with when I have free time” items on my plate.

 

Oct 24

Secured

Android, Coding, Gadgets No Comments »

Just a little update, my last post was detailing how I’ve renewed my Minix Box, however I’ve since then essentially retired it.  It was still usable (and I may still use it at a different location) I did come into an inexpensive laptop that works flawlessly for driving my TV.  Since it has an SSD it starts significantly faster and with the extra horsepower doesn’t chug like the aging Minix.

I have started a few new side projects worth noting, I’ll discuss the one that’s taken up most of my time recently.  In the past I picked up a few inexpensive WIFI low light webcams.

 

 

 

 

 

 

 

For the better part of 2 years I ran them with some commercial software called WebCamXP which allowed me to configure a wide range of motion sensing security for the cams, off-site storage of security footage, notification and so on.  It worked really well, hence me using it for 2 years but… It required a dedicated Windows PC to JUST sit and monitor and detect camera footage.  It’s not like I don’t have spare PCs lying around but it did use a significant amount of processing power to do complex frame comparisons to provide accurate motion detection.  The cameras also, like most things that are inexpensive, were not terribly reliable, they would often need resetting.  Most likely due to the sheer amount of traffic they were generating (5-12 FPS of a 720×540 feed running 24/7 on wifi).

For the last 6 months or so I sort of just disabled the system and the cams sat idle.  Until I came across a inexpensive deal on DDR around a Chinese home monitoring system, “Xiaomi Mijia 6 in 1 Smart Home Security Kit“.

 

 

 

 

 

 

 

It arrived without issue from China and thankfully works pretty well out of the box.  The initial gateway configuration was a bit strange considering the gateway ONLY speaks Chinese, the prompts however aren’t that important and it integrated with my WIFI fine and was able to detect all the supplemental devices just fine.  The Kit I got came with the gateway (which acts as the hub for the sub devices), a motion sensor, door/window sensor, remote switch, Chinese specific AC WIFI plug and temperature humidity sensor.  The nice thing is that it’s ridiculously easy to add new devices and the devices that came with the package were easily discovered by the gateway and instantly added to the Android app without issue.

I used the MIHOME kit for a few months, happy with how it was working.  The sub devices run on coin batteries, can be placed pretty much anywhere in the home and work flawlessly.

One day I must have just been killing time and happened upon OpenHAB2.  The premise is that it is a self contained package that runs on most systems (Win/Linux/RaspberryPI) which brings together all your internet type devices into one easy to use and manage location.  Since I am running a Linux machine at home to manage my media and other services it made sense to install OpenHAB and see if I could get it to drive the MIHOME as well as the webcams and other devices.  After some installation and configuration I had OpenHAB talking to the MIHOME kit, my garage door opener, Orvibo wifi socket, webcams, cell phones etc.  The system allows me to write some pretty complex rules like:

“If no-one is home and I detect the garage door open then send Will an Android notification message saying….The Garage Door is open, did you leave it open?”

or

“If I detect motion from the MIHOME motion sensor on the main floor and no one is home, turn on the WIFI socket and lamp, start recording the main floor webcam and send myself an Android notification message that motion was detected”

I’m still experimenting with it, I do wish it had a better remote viewing type application that was easier to use than configuring a VPN or other security type layers.  I like that it uses significantly less power, less bandwidth with a lot more flexibility on what activities the devices are available to perform.  I do like that OpenHAB is developed in Java, something I’m familiar with so making changes or investigating improvements is pretty easy, though the build system is quite complex.

I’ve since ordered a few more motion and door sensors for the MIHOME kit which will easily integrate with OpenHAB to provide better coverage for my home.

 

 

Mar 28

HTML5

Coding, Gaming, Web No Comments »

I really haven’t had a lot of time to spend on new things, I’ve had a lot of personal distractions over the past 2-3 years that have really limited my time and interest in learning new things.

I have however spent a little time looking at HTML5 game engines.  Not that I would have time to actually write a game but I always like reading about and experimenting with graphics and HTML5 seems quite suited to that.  I only experimented with a few game engines, I looked at quite a few but the two that I found the easiest to use and understand were http://www.kiwijs.org/ and http://www.pixijs.com/.

I spent the most time using pixijs simply because there were enough tutorials and web resources to get a better understanding how the pieces tied together.  It’s one thing to write your own engine that you think other people can use, it’s another to actually show people how to use it rather than assume they want to spend hours pulling it apart and actually understanding how things fit together.

Eventually I would like to get back using pixijs and modify the pixelsystems.net logo a the top of this page to make it animated, perhaps some simple 2D effect from the good old Amiga demo/intro days.  I’m just surprised how far browsers have gone where you can write a legitimately good looking and fun game in a web based language instead of C++.

Feb 11

SudoTape released

Android, Coding, Web No Comments »

I finally released SudoTape to the market.  The last stretch was around testing and getting some of the final artwork done.

I initially listed it in the photography section of the market but this morning I revised it and put it in the tools section.  You don’t really need to have a camera on your device in order to use it so it makes more sense to put it in the tools section.  I don’t know if the market automatically filters stuff out so even if you don’t have a camera and the app doesn’t really need a camera I’m not sure if you’d see it as available to download or not.  Not that it matters though, I presume most devices come with at least one camera now anyway.

I had problems creating a signed APK, I never really read anything about it and Google’s information online is sketchy at best, at whatever documentation I found was related to Eclipse so it wasn’t much help since I use IntelliJ.  Luckily IntelliJ’s created signed APK wizard wasn’t too tricky so I uploaded the app and some art/screenshots last night.

Going to see if anyone downloads it to see how much I want to support it.  I’d like to add some other features like saving the files to DropBox, perhaps unit conversions on the define markers options dialog, etc.  If there is little interest I’ll hold off adding more features and think of a new project.

You can find SudoTape on the market here:  https://market.android.com/details?id=net.pixelsystems.sudotape

You can read SudoTape’s basic documentation here: http://pixelsystems.net/?page_id=66

Jan 23

CameraTest

Android, Coding No Comments »

I finally figured out how to use GitHub.  It didn’t work well at all with IntelliJ, mostly because the learning curve is pretty vertical regarding to setting up permissions and connecting github with your machine (pgp keys, etc).

You can read about my first github project here and all the trouble I had getting camera images from the camera functionality on your Android phone into my Android app.

Jan 09

What I’ve learned

Android, Coding No Comments »

My project is coming along nicely.  I learned the hard way that the Android emulator is quite different than an actual device so when I got my phone back running my project on it pointed out a number of issues that I hadn’t thought of because they weren’t exposed with the emulator.

Here are some issues I tackled with recently:

  • If you have multiple <intent-filter sections in yourAndroidManifest.xml defining:

<action android:name=”android.intent.action.MAIN” />

<category android:name=”android.intent.category.LAUNCHER” />

then each of those sections will create icons for your application with no other identification saying which is which.. Can be a bit confusing on which icon to press to run what main mechanism

  • If you are launching an custom intent/activity from preferences DO NOT specify data= in your preferences.xml unless you are set to handle it, otherwise you will get a “cannot find activity” exception.  This took me several hours to discover, a lot of head scratching and swearing because I got lazy and never deleted the data= part that I copied from Google’s example code.
  • The bundle as the argument to onCreate() for your activity is actually very useful and tied to onSaveInstanceState(), this I supposed is common sense but no example I read actually showed them being used together so some digging exposed to me how to use it, very handy.
  • PreferenceManager.getDefaultSharedPreferences() is super easy to use, beats property file loading/saving which I use at work a lot.
  • My app is targeting Android 2.1 so I couldn’t use Camera.getNumberOfCameras().  I was using Camera.open() to find out if the device has a camera but not calling Camera.release() which caused some really strange exceptions later on in my code
  • this information on screens proved very important to several UI problems I was having (multi-touch), should be fundamental reading for anyone learning Android programming.
Previous Entries
Proudly powered by WordPress.

cssandhtml