RSSAmplifier

Blog

Oh, thoughts, you know

georgemauer.netRSS feed ↗36 posts

Latest posts

A Heck of a Wild Bug Chase

I just tracked down a bug with more twists, turns, and interconnecting weirdness than I’ve seen in years - maybe ever. I feel like I’m going to be telling the story of Olympic-level Bug-Chase-2024 for years, and I feel compelled to write about it. To be clear, the following is a streamlined retelling. I’m omitting the twists, turns and dead-ends that abounded. Also, now is a good time to mention…

Get That Coding Job

Preface So far during my career, I’ve designed software developer hiring processes at three different companies. I’ve personally conducted a couple hundred interviews, I’ve run teams that have conducted thousands, I’ve written staffing software, and I’ve spoken on hiring at conferences. I have also mentored people for fifteen years, am involved in several online organizations based around helping…

Job Hunt 2022 Retrospective

I recently took an offer as a Director of Engineering with BlocPower where I will be working on creating the Building Data Collective . I am writing up my job search because several people have asked me about my experience of landing a job in climate tech. I am also writing it up because its the sort of thing that I just don’t see written about much. I don’t know who is interested in hearing about…

What is Dependency Injection?

Recently I was asked in the Operation Code Slack to help someone understand dependency injection . What follows is my answer - as always, editted for clarity and to make me seem like a better writer. This is also in the context of javascript, though the concepts apply regardless. So what is Dependency Injection ? This is one of those terms that feels complex but is really so simple it is almost…

TDD With No More Tears

This is a writeup of Talk of the same title , exploring what I consider to be an approach to test driven development that is both more practical and easier to apply on a non-toy project. Let’s begin. Test driven development (TDD) is important, it is useful, it results in better structured code; and - for experienced practitioners - lower development times with fewer bugs. So of course we want to…

Understanding Domino's v Robles

This is about the web accessibility-related Domino’s v Robles court case in the US court system. If you don’t care to read through a big long article and want to skip to the end, head on to the conclusion . I found myself with some time on my hands earlier this month and thought that it might be nice to dive into a high profile and controversial current events in tech issue as - in my experience -…

Announcing Tech Terms for Memorization

TLDR; I created a project to help students in software development via memorization techniques. Project here List of terms here Flashcards here Read on for background! My academic career is that of an all right student. Perennially in the A- to B- range, good at understanding concepts, and able to cram just hard enough to do fine on tests. I never understood the point of doing much more. I always…

The Problem With Repositories

What follows is an edited down version of a chat conversation in the Operation Code slack . The context is that of someone studying up on .Net but, patterns being what they are, this applies elsewhere as well. The question was over explaining the repository pattern. I have strong opinions here and differentiate between how repository is defined, how it might be implemented in a manner true to it’s…

Take Home Programming Interviews Suck

I don’t like take-home programming interviews. You know the type: Hey, here’s a spreadsheet of data. Create a simple web application that will display the data, allow searching and filtering of it using an api, and oh, I don’t know, how about it geolocates the address column to pop up a map when clicked on? Send us a stripped git repo! You’ve got 8 hours. Ready, set, go! At Surge we hire a lot.…

The Absurdly Underestimated Dangers of CSV Injection

I’ve been doing the local usergroup circuit with this lately and have been asked to write it up. In some ways this is old news, but in other ways…well, I think few realize how absolutely devastating and omnipresent this vulnerability can be. It is an attack vector available in every application I’ve ever seen that takes user input and allows administrators to bulk export to CSV. That is just about…

On `this` in Javascript

Nobody listens to me. I’ve been saying for years that the constructor pattern, any use of the new keyword or function constructors in Javascript should be considered extremely advanced and not generally worth the rise in complexity in your code. I’ve been telling people about simple objects, and avoiding the this keyword. I’ve been trying to spread that gospel far and wide. But Javascript went…

On Javascript vs C# and the importance of community

I just got into a Javascript slapfight. It started with a Quora question. Which is the better Language, C# or Javascript? Because I’m sometimes a glutton for punishment, I chose to reply in depth Which is the better language? C#, I have no qualms about saying this. It’s not even a contest. Just examine their origins. C# was designed at Microsoft, a huge and very successful company with a ton of…

Understanding the State of Javascript Modules

If you’re new to the concept of Javascript modules you might be forgiven for thinking that nothing makes sense and the world is mad. You hear about browserify, webpack, rollup, gulp, requirejs, systemjs, jspm, amd, commonjs, npm, bower and it must all seem so insane. Why all these concepts? Why all this choice for something that is so straightforward that in most languages it doesn’t even have a…

Why You Don't Get React

My coworker and friend Emad Ibrahim blogged recently about how he doesn’t really get the hoopla around ReactJs. (Are pingbacks even a thing anymore btw? They were a great way of keeping track of multi-blog discussions.) This is the key paragraph React JS – for some reason I just f***ing hate it. I hate html in javascript. I hate JSX. I hate the lack of CLI. I hate the lack of conventions – every…

Predictions: XHTML

Recently I gave a talk at SQL Saturday Baton Rouge on the history of the Web. This was a version of a talk I had given many times before, largely to codecamp classrooms of novice developers. In sexing it up for a professional technical crowd, I ended up rewriting it completely - going back to a lot of primary sources, reading the www-talk archives and the various books written by people who were…

CSS Only Tabs

There is a tendency of web developers to prefer javascript over other tools of the trade. A lot of this is based in the need to support older browsers or - even more often - the percieved need to support old browsers. Just as often however, it is due to fear and ignorance of how the tools of the internet are meant to work. A great example is ui tabbing systems. I’ve participated in half-hour long…

You don't need to learn map/reduce

During an interview, a candidate - a smart guy just at the start of his career - asked me the following (paraphrased) I feel like the biggest hole in my understanding at this point is how applications work at scale. How does one put together a large application with millions of users and hundreds of thousands of data connections? How does one process big data and use map/reduce. How do I advance…

This can easily be the most important OSS thing I've done

I’m putting together a workshop on estimation of large projects and features for the Operation Spark coding bootcamp and ended up mind mapping several dozen always-make-sure-to-discuss-this rules of thumb. I figure, why keep this private? I have plenty of experience but that’s still just me. Let’s open it up for public contribution. So here is a github repo . It contains a simple .md file so you…

Why width 50% inline-blocks don't display side-by-side

So here’s the thing that’s always confused me about display: inline-block . Let’s say you have two subsequent inline-block elements. If the container has no padding, and the elements have no margin or border, and if you set both those elements to width: 50% then they should appear side-by side, right? inline-block is not side-by-side I’ll assure you that the previous paragraph’s logic checks out.…

Talk Roundup - Be the Es6iest

The below is a talk I did about great features of javascript. Specifically of the es6 version of javascript that is starting to currently drop in browsers. The initial version of this talk was all about the es5 features that have been in javascript forever. I encourage you to read it, we’re still going to cover that stuff but we’re also going to forge on ahead and use the full power of es6 to…

Automated Testing Venn Diagram

Gave a talk to our salespeople at Surge today about Automated Testing. Here is a Venn Diagram I created for the presentation on how the various philosophies in the space fit together.

Learn reduce

So you’re a professional developer and you’ve heard of Array.prototype.reduce (or underscore/lodash’s _.reduce function ), and you’ve heard that it’s an insanely powerful way of working with collections but you don’t quite get it. tsk tsk tsk 1 That’s ok. I’m here to help. It’s a more advanced concept that can be difficult to learn. Or it can be very easy. Because you see, you already intuitively…

Color Mixing Demo App

A simple app to demonstrate color mixing with rgb values

Some self-indulgence from the nolatech chat

Some self-indulgence form the nolatech chat room. (10:40:26 PM) avance: @joeellis_jk_its_joel: Is a "functional alcoholic" better than an object-oriented one? (10:42:14 PM) georgemauer: worse, a functional alcoholic is immutable, you can't get him to stay quiet (10:42:40 PM) avance: ha (10:43:29 PM) georgemauer: and if we're doing jokes on this, I got another groaner: Where does a functional…

Why Not MsTest

This has come up just so many times at this point. A discussion on unit testing frameworks comes up and someone invariably comes up with “Why not MSTest”? Well I’ve been down this road before. Back in late 2010 when I was at EPS we nearly had a rebellion when at first we were forced to use MSTest, then were allowed to switch, and then were asked to switch back. There were a lot of long-winded,…

Stop teaching h tags

Look, I get it, you learned web programming a certain way and heck, that seems as good a way as any to teach others. You know your shit after all. I struggle with this myself. I learned coding Minesweeper on my TI-83 in the back of Mrs. Pappa’s pre-calc class and kinda think others could benefit from this too. But then again, it was the 90s, and like so many things in the 90s, I have to question -…

node-gyp won't install on Windows

So I’ve run into this error like a million times already and every time I have to look up this github issue . I’m on windows, I do an npm install eg npm install -g node-inspector and then, after what seemed like a success you get Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch. C:\Program Files…

Don't Teach Object Oriented Javascript

On r/javascript recently someone asked if you would recommend using javascript with libraries. I responded with my logic for why I think you should, alon with some other opinions on teaching javascript. My position - use libraries. I consider jQuery (and to some degree Underscore/Lodash) to be akin to the standard libraries offered by other languages. When you want to know how to write to a file…

Use Simple Modules To Fix Up Your Ugly Brownfield App 1

At Surge Consulting we have a mentoring program that I’m pretty proud of. In the course of this I get to review a lot of code and it’s not always…shall we say…good. With me prostelitizing javascript modules all the time, I frequently get asked for help adding RequireJs to existing codebases. This is not always easy. CommonJs-based systems like Browserify fail because they require you to bundle…

Talk Roundup - Be the Javascriptiest

Be the Javascriptiest While there is some general philosophizing here, this is largely a step-by-step for building your own jquery collapsing widget. It is a writeup of my talk at Sql Saturday #324 - Baton Rouge . As such, it might seem lengthy and rambling. But the talk was over an hour so there you have it. You might be able to tell from the title, this talk did not start out completely…

On this and new

This is the pattern that a lot things recommend function Person(firstName, lastName) { this.firstName = firstName; this.lastName = lastName; this.name = function() { return this.firstName + " " + this.lastName;} this.printName = function() { console.log("my name is", this.name())} } var george = new Person("George", "Mauer"); What do you think that new does? It’s not what you think. This is what…

Open IIS Express to the Network

How many times have I run into this? A css error that is only happening on the tablet and me with no Browserstack account. Js errors I can handle and heck, I even know how to set up a pseudo remote-debugging environment to the tablet . But I still need to open up my webserver to off-machine requests and love it as I do, ngrok is not going to fit this bill. Since I’m in Microsoft-world usually…

Setting Up RequireJs

This talk is a write-up of a lightning talk I gave at BarcampNola 6 . See here for a sample project demonstrating this techniqe . RequireJs is an awesome module loader that complies with the AMD standard and in most cases the CommonJs standard as well. For my money, a lot of the “structure” that frameworks like backbone.js provide can also come out of AMD’s much simpler, module-based approach. But…

Stop that = this'ing

From our chatlogs at Surge (editted for berevity and to make me seem like a better debater/speller). GM: Can I just say, I hate that = this or self = this GM: Don’t anyone do that GM: The pattern is fine, but at least give it a meaningful name JA: Hmmm…..I’ll bite, devil’s advocate JA: Why not folow an established convention? When javascript programmers see a variable name “that”, they immediately…

Error Handling and the Message Repackaging Anti-Pattern

I currently have an interesting responsibility at work. I am functioning as the manager and single-point-of-contact for a team in India working on imporving the codebase for one of our more important ASP.Net sites. I know what you’re thinkin. Did I say interesting? I meant infuriating. At the very least I should get a good “Lessons Learned” post out of this. Overall the experience hasn’t been too…

QuickTime and a TIFF (Uncompressed) decompressor are needed to see this picture

Microsoft Office on a Mac can’t save imagesQuickTime and a TIFF (Uncompressed) decompressor are needed to see this picture I have run into this problem a few times and I figured I’d blog about it both to vent my frustration and to make a note for the next time this comes back to haunt me. So you get a shiny new Macintosh, you fire it up to discover that the friendly folks over at apple have…