Chad Ostrowski

A biped doing my thinking with an Indo-European language. Ruby developer at PipelineDeals.

Read this first

AngularDart vs. Coffeescript + AngularJS: How Dart won over Coffeescript halfway through the game

About a month ago, I attended a Dart Flight School with the Philly JavaScript Developers meetup. As someone embroiled in “optimized for developer happiness” languages like Ruby and Coffeescript, I found it easy to make fun of Dart’s superficial ugliness. @NgController declarations lol! Why are they making me use this crappy Eclipse editor? And srsly, what’s with the semicolons?

I wanted to give Dart a fair chance. Victor Savkin, who used to blog about Ruby and make cool projects with it, had started raving about Dart, and it made me curious. Still, writing all of those semicolons and curly brackets made me wonder what the same simple little app would look like in Coffeescript and AngularJS.

Intended audience/About the author

This article is written from the perspective of and thus mostly for developers who:

  • have little experience with AngularJS but have...

Continue reading →


I’m the many-armed warrior queen of clubs today, how about you?

a queen of clubs playing card; the queen has four arms and is carrying a bow & arrow, a sword, a spear, a man's head, and a flame

At The Fire Works, we wanted a fun, visual way to indicate if our coworkers could talk to us our not. Sometimes, people need to put their heads down and get stuff done. Which makes sense! It’s a work space, and people working here ought to feel more productive than they do at home. However, we also want a culture where people are encouraged to talk to each other.

At Indy Hall, they came up with a fun way to walk this fine line: scattered around the space are Brazilian steakhouse-style coasters. On one side, these coasters are green and say “coworking”, and on the other they are red and say “working”. Unfortunately, in my experience, these coasters are not widely used at Indy Hall.

We’re hoping for better results here at The Fire Works, and part of how we hope to accomplish that is by making it more fun. Right near the top of the steps where you...

Continue reading →


Why You Shouldn’t Use Vagrant: Real talk from a Vagrant burn-out

Hey, kid. Someday, some charmer is going to smooth talk you.

“Why would you want MySQL and PostgreSQL both running on your machine all the time?” they’ll probably ask. “Just run them when you need them.”

Then they’ll tell you about some slick way their company allowed all of their developers to click buttons on some website, like ordering a Fatty Meal at a McDougle’s: “MySQL, Redis, a custom queue server, and our main app, please.” Then BOOM. They get a fully configured VM, just like that! With exactly the things they need and none of that other crap. They spin it up, they get their work done. No fuss, no hassle. No having developers waste time configuring their environments.

And most of all, your charmer will woo you with how you’ll never again have developers saying, “it works on my machine!” That’ll be...

Continue reading →


Coworking in West Philly: Introducing The Fire Works

Philadelphia is a great city for coworking. In no particular order, we have Benjamin’s Desk, CultureWorks, Impact Hub, SeedPhilly, Venturef0rth, Quorum and of course, the grandparent of them all, Indy Hall. (Let me know if I missed any!)

Personally, the only one of these that I’ve sampled is Indy Hall, of which I am a member. I love it there. I love the JFDI culture and the enthusiastic, community-oriented members. Indy Hall really is a community that cares for itself, not just an office.

However, if you’re in West Philly, you may hesitate to commute three to five miles into a different part of the city every day. You may rightly recognize that West Philly is already all about community. Why don’t we have a an awesome coworking community and workspace right here?

Well! Wish no more! Because now we do. It’s called The Fire Works.

some community members laughing about something on someone's computer Photograph by Lisa Yoder

...

Continue reading →


Work at it like a kitten: Great advice from the feline kind

We adopted a six-week-old kitten from a couple who were moving cross-country the next day. Her ears were too big and her limbs moved as if each had its own motor that wasn’t in sync with the others. We named her Harper Lee.

harper as a kitten.png

After Harper became friends with the resident cat (named Pablo Honey), she would see Pablo sitting in high-up window sills or on the bathroom counter. Harper’s jealousy showed in her face. She wanted to reach these great heights. But her small, uncoordinated legs didn’t get her anywhere close.

And somehow, Harper knew just what to do about it. We humans flail around, convinced that because we can’t make it even halfway up to the window sill that it just isn’t meant to be. “Oh well, I guess I’m cut out for some other line of work,” we say, and move on, bouncing from thing to thing. Perhaps this is a blessing and a...

Continue reading →


Hello, Svbtle. This is me, committing to writing.

2014 is my Year Of Creative Things Again.

Mid-2012, Lisa and I made an important discovery: I don’t have enough time to maintain a full time job, more than one hobby, and a happy marriage. So I restricted myself to one hobby at a time. And the rest of 2012 and 2013, that hobby has been web development projects. Approximately the same thing I do for work.

In 2014, that’s changing. I plan to create (with an illustrator) a children’s book, and dive back into creating music. One thing at a time, so that marriage stays happy.

And write. I’m working to fit in writing, just a little bit here & there, when I can. Nothing big or elaborate, but consistent. “Never hurry, never rest.”

And Svbtle’s going to help me. I hope y'all enjoy it.

Continue reading →


Subconscious Life Lessons: My (white, male) narrative is more important than yours

My mind is split in two: Research psychologist Jonathan Haidt describes the mind as a small rider, the concious, sitting on a giant elephant, the unconscious. The rider thinks he is in charge and can tell the elephant where to go, but the elephant has his own ideas. THE RIDER CANNOT FORCE THE ELEPHANT INTO A DIRECTION, BUT CAN TRAIN HIM SLOWLY OVER TIME. If the rider and the elephant work as a team—when the conscious and the unconscious are close—my life is going to be rich. Image from [The Happy Show]; a phenomenal exhibit by [Stefan Sagmeister] Confession time.

As a child, my brother Seth and I would often go visit some friends, Sarah and Chelsea, and play at their house. One of our favorite games was Cowboys and Indians.

A description for the unfamiliar: Cowboys and Indians is a improv-based role-playing game built around common American Western motifs. At the beginning of a game, one of the participants suggests a basic storyline, and everyone debates it into a shape they all agree to.

I’m sure we played this game many times, but one rough storyline I remember is this: Seth and I were cowboys, and we somehow ended up with Sarah and Chelsea, who were Indians, as captives in our camp. (Let’s for now avoid pondering the troubling means by which they may have ended up being captured.) The rest of the story was going to be that, though in the...

Continue reading →


The Revenge of MySQL, Episode 2: How to Handle Bytes That Think They’re Supposed To Look Like “Mike’s”

Episode -1: Background

Consider thee the Right Single Quotation Mark (the “smart quote” used in words like “it’s”):

UTF-8 Latin1
0xE2 0x80 0x99 0x92

Notice that in the “Latin1” encoding (also called ISO-8859-1), the humble is represented by one byte. In UTF-8, it’s represented by 3.

If you’re feeling like you need an Episode -2 to explain what the heck 0xE2 means, I’ve got you covered.

Episode 0: Introduction

MySQL is partly popular because it’s so easy to get up and running with it.

At least, it makes you think so. But if you don’t know what you’re doing (and you used MySQL, so you probably don’t!), it may be secretly fucking you over, allowing you to live a terrible lie for years before laughing in your face when you notice all your corrupted data.

This is a three-part series documenting my year...

Continue reading →


The Revenge of MySQL, Episode 1: Extravagant Gymnastics for a Small Data Problem

Episode -1: Background

Consider thee the Right Single Quotation Mark (the “smart quote” used in words like “it’s”):

UTF-8 Latin1
0xE2 0x80 0x99 0x92

Notice that in the “Latin1” encoding (also called ISO-8859-1), the humble is represented by one byte. In UTF-8, it’s represented by 3.

If you’re feeling like you need an Episode -2 to explain what the heck 0xE2 means, I’ve got you covered.

Episode 0: Introduction

MySQL is partly popular because it’s so easy to get up and running with it.

At least, it makes you think so. But if you don’t know what you’re doing (and you used MySQL, so you probably don’t!), it may be secretly fucking you over, allowing you to live a terrible lie for years before laughing in your face when you notice all your corrupted data.

This is a three-part series documenting my year...

Continue reading →


Episode -2: 0xE2? Wtf? Addendum to the MySQL series

Hello, human. You probably learned to count to ten. You probably use 0 to 9 to write numbers.

That’s great! But there are other ways to do things.

Computers, you’ve probably heard, store everything as ones and zeros. Fortunately, most of the time modern programmers don’t have to care about this. But character encodings are one of those times when we get pretty close. But don’t worry! You can totally comprehend this.

So computers learn to count to 2, using only 0 and 1. “Wait, what?” you may ask, “How do you count to 2 without a, you know, a ‘2’?” Great question! But consider: you count to ten without a character representing ten! You just put a 1 in the “tens” column, and a 0 in the “ones” column.

Computers do something similar, but instead of having a tens column, they have a “twos”...

Continue reading →