What is a muckhacker?

Historical Context: back in 2013, I registered a domain and hired a designer to work on a logo for something called MuckHacker.com. I also registered a short domain to go along with it, https://muck.cc. The main goal was to launch my own group writer blog as a way to put myself into the same mindset as the publishers we were serving as customers at Parse.ly. The topical focus was going to be media criticism. This post laid out why I picked the name “MuckHacker”. Eventually, this project became a “Custom Domain” at Medium.com. But, over time, I relocated the “MuckHacker content” that was published over the years back to this blog. All the posts from the MuckHacker group blog, which operated from 2014-2017, can be found via this post listing with the “muckhacker” tag.


Some definitions of related terms may be helpful:

  • muck, n: something sordid or corrupt
  • hack, n: a colloquial term for a writer or journalist
  • hacker, n: an enthusiastic or skillful computer programmer, often associated with the Free Software movement
  • hacker, n: someone who seeks and exploits weaknesses in a computer system or computer network
  • muck, v: to mishandle or spoil something
  • hack, v: to cut with rough or heavy blows
  • muckraker, n: a writer who investigates and publishes truthful reports to perform an auditing or watchdog function

Continue reading What is a muckhacker?

The media and “objectivity”

Chomsky — the same one behind “Manufacturing Consent”, an excellent analysis of newspaper and TV journalism in the pre-Internet era — walks us through a structural analysis of modern media here:

There is a concept of “objectivity” to which journalists are supposed to adhere: report honestly what is “within the Beltway” — that is, what is considered acceptable by major power centers, state and private. Departing from that framework is “biased.” There are to be sure exceptions, but there extensive documentation showing that this framework is upheld with quite impressive consistency. It can be changed in so many ways.


Continue reading The media and “objectivity”

An async kind of pair programming

Can pair programming be done in a way that is compatible with async communication?

async_jam

Pair programming is described by the original c2 wiki as a process in which “two engineers participate in one development effort at one workstation”. It would seem the process is inherently synchronous, at least as originally described and practiced.

I experimented with pair programming at my first industrial programming job at Morgan Stanley. It was 2006-2008 and two fads were happening in parallel: “agile” software management techniques and “extreme programming”, with a particular emphasis on test-driven development with Java.

I occasionally found pair programming to be effective, but noticed my results varied wildly depending on the engineer I paired with and the problem we worked on. Some people really enjoyed the “brain swarming” of having two heads attack a problem. Other people found it cumbersome and interruptive. Some problems seemed so indivisible that it always ended up that one person drove, and the other person merely watched. In the end, I couldn’t really say whether I benefited from it, despite many hours of experimentation.

Continue reading An async kind of pair programming

Simple Lego Blocks for Big Data

Data engineers should abstract their code in the most lightweight way possible to facilitate downstream integration in a large-scale data system.

You want lego blocks, not puzzle pieces.

lego_blocks

The creators of the C programming language once famously said, “first make it work, then make it right, and, finally, make it fast.” This adage still applies today.

The difference is, we have tools to take working code and validate that it is right against reams of data. Many of these tools can also be used to make the working, right code run really fast across a cluster of machines, possibly even in real-time, as the data comes in.

But, making code work, then right, then fast, requires some discipline.

Continue reading Simple Lego Blocks for Big Data

Idiomatic Python Resources

Let’s say you’ve just joined my team and want to become an idiomatic Python programmer. Where do you begin?

Well, you can move up the learning curve quickly using resources from this blog:

I also have some good resources on web development with Python:

And on more advanced Python concepts, like dunders and functional programming:

Continue reading Idiomatic Python Resources

Programming: it’s weird

I read the Bloomberg piece, What Is Code?, an explanation of code artistry and programmer/hacker culture in 2015. I love this paragraph about “languages as liquid infrastructure”:

The point is that things are fluid in the world of programming, fluid in a way that other industries don’t seem to be. Languages are liquid infrastructure. You download a few programs and, whoa, suddenly you have a working Clojure environment. Which is actually the Java Runtime Environment. You grab an old PC that’s outlived its usefulness, put Linux on it, and suddenly you have a powerful Web server. Now you can participate in whole new cultures. There are meetups, gatherings, conferences, blogs, and people chatting on Twitter. And you are welcomed. They are glad for the new blood.

Java was supposed to supplant C and run on smart jewelry. Now it runs application servers, hosts Lisplike languages, and is the core language of the Android operating system. It runs on billions of things. It won. C and C++, which it was designed to supplant, also won. A lot of things keep winning because computers keep getting more plentiful. It’s weird.


Worse is better, is worse, is better, is worse, is better…

The 3 Best Python Books for Your Team

Python was the core programming language used at Parse.ly. It is a widely-used language with huge adoption among open source projects. It’s no wonder it’s one of the leading languages for software teams.

I’ve written a couple of blog posts with original material for learning Python, including “import this: learning the Zen of Python with code and slides” and “Build a web app fast”.

Newcomers to Python are often overwhelmed by the wealth of information, available online and in print, for the language. I am often asked by others, “What are the best books for my Python team?” I plan to answer that question with this post, by highlighting what I consider to be the three best Python books on the market today.

Continue reading The 3 Best Python Books for Your Team

Picking tech stacks

I realize now that one of the hardest parts of running a successful startup is “betting” on tech stacks that, 3 years out, will have a groundswell of community support around them.

It’s still shocking to me that when I chose each of the following technologies as a central part of Parse.ly, they were so new/immature as to not even show up on a Google search trends box, but are now very popular technologies.

Continue reading Picking tech stacks

Office extinction for knowledge workers and the rise of fully distributed teams

Esko Kilpi wrote:

For most of the developed world, firms, as much as markets, make up the dominant economic pattern. The Internet is nothing less than an extinction-level event for the traditional firm. The Internet, together with technological intelligence, makes it possible to create totally new forms of economic entities… Also very small firms can do things that in the past required very large organizations.

This is true. But for certain small firms that are run as fully distributed teams (as mine, Parse.ly, is) the Internet is an extinction-level event for the physical manifestation of the firm — the office.

Already, companies such as GitHub and Automattic have minimized the importance of co-location in work collaboration. Successful massive creative projects are delivered not just by distributed teams, but also by volunteer teams. For example: the Linux kernel and Wikipedia. I wrote about this in my essay, “Fully Distributed Teams: Are They Viable?”

Continue reading Office extinction for knowledge workers and the rise of fully distributed teams

What entrepreneurship really looks like

In 2009, Jack & Russ hacked on an early prototype of SeatGeek for the Dreamit Ventures summer class in Philadelphia. The initial prototype came together in the last two weeks before demo day. I remember that Russ hadn’t shaved in weeks because they were spending every night hacking.

You see, before that, the founding pair knew they wanted to start a company, but they weren’t sure about the idea. They had brainstormed ideas ranging from “WebMD for pets” to “amateur art marketplaces”, finally landing at “Yelp for Bloggers”, an idea they called Scribnia. This got them into Dreamit Ventures.

Continue reading What entrepreneurship really looks like