Hatred of Angular

I've been booting up some old Angular projects and found myself running into retrospectives on Angular and numerous articles about "Why Angular will fail", e.g., "Angular, just say no" which explains "why you should avoid the entire thing at all costs unless you want to spend the next few years in hell." The points these articles make about Angular's somewhat unstructured development, changing goals, audience and requirements are interesting. Some of the comparisons are arbitrary, e.g., comparing Angular to jQuery, but most of these pieces are well considered. "The Problem with Angular" is particularly interesting because it reveals Angular's paradoxical design motivations, which I see as the heart of the matter.

Read more »

Jekyll is broken

I'm practicing my controversial developer opinion piece blogging skills. Jekyll is not broken for everyone but it is behaving poorly for me, so I created my own static blog generator. My motivation stems from the fact that, after a year of working with JavaScript front-end frameworks and dabbling in Node, Jekyll's liquid templates, Ruby rake tasks, and what-not are looking just a little foreign and over-engineered. I'm also increasingly a fan of building my own tools and doing things in "my own style" when it comes to programming.

Read more »

The State of Angular 1 in 2016

I saw some haughtily titled articles (The State of Javascript in 2016 by Francois Ward and The State of Javascript: Front-End Frameworks by Sacha Greif) and they struck me. I cannot talk with the same breadth and authority on Angular or JavaScript but I do know--from having to hack together a project in Angular 1 in less than 2 days just now--a little bit about the "health" of Angular.

Its actually looking good.

Read more »

who am i? what am i doing here? why am i talking?

This blog constitutes my first foray into computer science. The topics here cover fundamentals like data structures, basic functions like sorts and the fundamental concepts of object oriented programming. I am by no means an expert and this constitutes a kind of excursion into totally foreign lands for me. If you want to know how a person with zero to no mathematical training understands computer science than you've come to the right place (you will no doubt hear some griping about the US education system and its consistent failure to teach math in a fair/interesting/useful manner).

Read more »

CS: trees, binary trees and tries

Note: Most of this information was gained from a basic Google search and is presented here for the sake of distilling some basic concepts of computer science into an easily understandable form. This post concerns Tree data structures.

tree/shameless Laruelle plug:[^1]

Trees

A tree is a data structure that consists of a parent or root node which stores a data element and which possesses at least one child or branch. These child nodes in turn possess their own values and may have their own children (note: all nodes have 1 parent except for the root node which has 0).

Trees are particularly useful for storing heirarchically arranged data. They are also very human readable since their visual organization resembles that of an actual tree. Further, for a relatively complex data structure (relative to a stack or queue) they can be traversed or "walked" through relatively quickly, although this is highly dependent on their depth. Further, in the case of natural language processing, a large corpus of text can be stored as a tree which significantly reduces the query time required to find a sequence of words (as is the case with n-grams) and the memory requirements for its storage.

Read more »

CS: bubble, merge, insertion, quick, and selection sorts

Note: Most of this information was gained from a basic Google search and is presented here for the sake of distilling some basic concepts of computer science into an easily understandable form. This post concerns the variety of sort types.

Bubble sort

The first sorting method we will deal with is the bubble sort. For something like this I immediately want to know why it is called a bubble sort. Fortunately the good folks at wikibooks have an answer: "The bubble sort gets its name because elements tend to move up into the correct order like bubbles rising to the surface."[^1] Interesting, so why does it have this behavior? The scary-smart brogrammer (who like myself could use some decent acne wash) who does the Harvard CS50 course explains: "the right most elements are garaunteed to be in their correct place." He then takes the worst case scenario for sorting an array of numbers (the case that involves the most iterations) to demonstrate.

Read more »

CS: abstract data types

Note: Most of this information was gained from a basic Google search and is presented here for the sake of distilling some basic concepts of computer science into an easily understandable form. This post concerns Abstract Data Types or ADTs.

Queues

A queue is a simple data type which functions basically as a line (e.g., a line of cars at a tollbooth or line for a bank teller) where linearly or sequentially ordered elements are added on one end and retrieved at the other (another term for this type of data structure is “sequential collection”).[^1] Operations on the queue are limited to two types: adding elements to the end (called enqueuing) and the removal of elements from the front (dequeuing).[^2] As such, a queue is an example of a “First-In-First-Out (FIFO)” data structure where “the first element added to the queue will be the first element removed.” Queues are useful when only limited computing resources are available or can only handle a limited number of requests. In situations where system resources are scarce, the order of the data must be maintained and timeliness isn’t an issue, queues can be an appropriate way to process something like server requests.[^3]

Read more »