Sharing Angular 5 Modules

     

If you’ve ever worked on a project where you’ve tried to share code between two (or more) projects, you probably understand the pain. Sadly, I’ve worked on a few.

Admittedly, on the surface it seems like a tempting proposition. On paper, it sounds quite easy. For example, one system I worked on we had a single nuget library where we kept our domain objects. The logic went: “All you have to do when you want to make a change is update the domain object project, build, push the new library to the nuget server, then pull down the new library to the other projects, and then rebuild those. It’s easy.”


Using AWS Codebuild with Yarn and Chrome

     

I am a big fan of using CI / CD. As most software engineers are. That’s not a very controversial stance.

For open source projects there are some really nice services out there. One such service is Travis CI. I really like their service for open source projects, but I have a few side projects that I don’t want to open source.

My side projects are not for monetary gain so there is no revenue from them. They aren’t going to be businesses or anything like that, but I also have no desire to open source them. When I went to look at using Travis CI for these type of projects, the pricing model is, well, way too pricy - $69 USD per month… per month. My entire Amazon infrastructure bill isn’t that much.


A More Interesting Retry

     

I’ve been playing with writing my own Typescript / WebGL 3d game engine from scratch and fumbling about with machine learning (which oddly have a lot in common). The hobby has led me to studying linear algebra, which has got me looking at lots of problems in a different light. I blame a lot of my recent thinking on the YouTube Channel 3 Brown 1 Blue. The author of that channel lays out maths in a very visual way - it is much to my liking. The way he explains things has really re-sparked my interest in mathematics.


Poor mans UML / Emacs Artist Mode

     

When building or designing software, I love to draw diagrams. I find the old adage “a picture is worth one thousand words” to be spot on.

I also find that the diagrams are the most useful when they are right next to the source code. Having to drudge though a wiki or search though a separate documents folder to find the diagram that refers to the code I am looking at seems like a waste of time.


What are closures in javascript

     

In my pursuit of gainful employment, I was asked an interview question about closures in javascript. The question kind of threw me for a loop because when writing javascript I have never consciously thought “ok, now I need to use a closure here.” I answered the question poorly - mostly just passing on it - and decided to research it later.

Now, I have used closures in Groovy which look something like this:


How to fix "Soft 404s" in Wordpress

     

We’ve been moving a somewhat large site from a proprietary platform onto Wordpress. As you probably know, when you move a site from one platform to another, a lot of the URLs will change. In our case, amongst other things, many URLs went from having an .aspx extension to having none. On top of that, some features or pages just don’t exist anymore.

To combat the URL confusion, we proactively monitor and attempt to fix 404s before, during, and for a few months after a move. To do that we have some proprietary tools, some log parsers, and we also use Google Webmaster Tools.


Vegan eateries by location and budgets

     

The end of the year is one of my favorite times of year. It’s when I see how I did with the goals I set for the current year and start to plan out my next adventures for the new year. I also like to either delete old ideas, or finish up random, playing-around code I have sitting in the old Projects folder.

This year I made a conscious effort to refrain from putting out bits of code, but there are two proof of concept apps that I found useful and kind of fun. Instead of sending them to the trash, I thought I’d put them up. The hopes are that the examples may help someone just starting with a few of these technologies, but keep in mind these were just things I made to learn a particular technology. I wouldn’t call them finished products.


One-time pad in Javascript

     

Recently, I was doing some research on encryption for a project. I’ve used encryption libraries in past projects, but I’ve never written any actual encryption algorithms myself. And as the Internet does from time to time, I got sucked into looking around at the various algorithms. I came across an interesting encryption algorithm that I had never heard of. Apparently, it can not be cracked: the one-time pad.

This is the one that most movies reference when you see the spy guy with his little flip book of paper. He’d write down some random numbers he heard off the radio, or what have you, then burn up the page. It’s an incredibly simple algorithm, and that makes it very useful because you don’t even need a computer to do the encryption / decryption.


Watching YouTube videos without Flash

     

I’ve been trying to eliminate flash from my system, and one pain point I’ve run into is watching YouTube videos on the YouTube website. The videos play fine on an iPad or iPhone, but for some reason when I browse them on my desktop, YouTube really wants me to use the Flash player.

There used to be an HTML5 video option (set for the whole account), but I can’t seem to find it anymore. However, it seems that when you embed videos from YouTube into another site, the video can play just fine on an iPad.


Ordering iPhoto in Reverse Chronological Order

     

This is a very small thing that has been bothering me lately, and a benevolent voice from the void showed me how to resolve most of my woes.

I’ve noticed that everywhere photos are displayed on all my devices, the order is oldest to newest. It’s a very small thing, but I have photos from around the year 2000, and scrolling through 13 years of photos to get to a recent one started to bother me a bit.