Hello, Android

I've been a big fan of Android and the various devices available for awhile, and I became curious about developing something on it, especially when I heard that Kotlin not only recently received native support on it but that Kotlin is developed by one of my favorite developer tools company, JetBrains.

Course the first step is making something as basic as possible. This demonstrates text manipulation, toasts, resource file references, transition and data transfer to a different activity/screen, and button interaction. And a developer's need to immediately find and switch to a dark theme for every IDE.


MEAN Stack

As I'm spending my weekend familiarizing myself with the MEAN (Mongo, Express, AngularJS, Node) stack, I'm reminded and amused how quickly the web moves. Just as I'm getting some packages/dependencies set up using npm, I see a blog that highly suggests to start using yarn for new projects.

Considering I'm following along with some legacy guides, I'll stick with npm, but I'll have to scratch that use-the-newest-tech itch and take a look at yarn later.

Edit: What's better than having 5+ instances of command prompt (to run nodemon, mongo, etc.)? 1! So I downloaded Cmder and all is clean again.

Edit 2: Hours later and with some debugging resulted in the image below. At the moment it's bare-bones -- Bootstrap for the interface, Express for the server, AngularJS for some basic data binding of course data, and Jade for HTML generation. I haven't worked much with Bootstrap, but I love how easy it is to create a clean, visually appealing layout.

The web app is version controlled via GIT and uploaded to Heroku. I've been following a guide from 2016, so needless to say, had to work around some compatibility issues between dependencies and ignore the "this API call is deprecated! use this instead" messages since this is just a quick test application.

In the past I've mainly interacted with GIT using the context-menu based TortoiseGIT for personal projects instead of command line, so that was a bit different -- command line actually seems to be the norm for open source web development. And this is much different than the workflow I've gotten used to at work with .NET development (Visual Studio and NuGET), which is all interface-based.

With the basic structure and dependencies up now, I can move on to more interesting topics: security, testing, and the usual CRUD for data.


Lunch & Learn - Progressive Web Applications

Recently hosted a lunch and learn on progressive web applications. They can be thought of as an attempt to merge the benefits of both web applications and native mobile applications. Although some browsers are still lacking in fully supporting all the features of progressive applications (it was only recently that Google started discussing them and their many benefits), an enhanced user experience can still be "progressively" added in time as feature support is added. 

Download: ProgressiveWebApps.pdf


Lunch & Learn - Developer Productivity Tools

I hosted a lunch and learn on a few of the tools I use to increase general developer productivity, which was motivated by my own experiences with many scenarios in which I thought there had to be something that already existed to help speed up process x or y. 

Download: DeveloperProductivtyTools.pdf


Plastic SCM - Potential as new version control

A few weeks ago I realized that we now have over 1GB of content in our Git repository, which sprung me through a journey of learning about Git's limitations and wanting something that would scale better. While code takes a relatively small amount of space, adding in art assets to version control can quickly take up available space.

I briefly tried to get a server set up with Perforce until I ran into an even better-sounding version control system: Plastic SCM. After a day of headaches while trying to set it up on Amazon EC2 (thankful for the 1 year free trial), I finally finished configuring the server and client to access it from my home PC. I didn't want to use the embedded database file, so it took some extra time configuring it to work with Sql Server Express (dealt with permission issues).

So far I've gone through their quickstart documentation and section of why game developers should use it. I'm pretty excited about what I've read so far as using it wouldn't be too different from our currently workflow, and we'd  get a few extra nice features such as file locking, better branch visualization tools, diffs on images, and of course scaling to accomodate large repositories. There's also Unity3D integration, but we're decided not to to utilize it at this time since it requires both a paid Unity team license and Plastic SCM license.

Through some tinkering, I'll see about us moving all our Git repo content to it. One thing I need to test is bandwidth performance - Bitbucket is pretty slow when it comes to that - but I'm not going to expect anything too note worthy considering I chose the low-performance server instance.