For the first half of the summer, I took the online Functional Programming Principles in Scala course on Coursera. I should probably point out that I didn’t take the $50 official I’d heard good things about the language, mostly from Dick Wall on Java Posse podcasts, and it seemed like a good way to try functional programming again after a brief, rather unpleasant, introduction to Lisp in college. Overall, my main goals were to a) re-acquaint myself with functional programming and b) get a basic, can-start-on-some-code-now understanding of Scala.
A couple of months ago, Mayday.us launched a big crowdfunding push to raise a crapton of money to form their own Super PAC, meant to fund and support candidates who would run on campaign platforms of reducing the influence of Super PAC money in elections. The overall goal, reduce corruption in federal politics, is a great agenda, but a SuperPAC built around limiting how much money people can spend in elections isn’t actually solving problems with American democracy. Continue reading »
After a lot of thinking a blogging aloud about what I think social networks are and what I think a social network (and social applications) should be, it’s time to revisit my original thoughts about a next-generation social network and see how well they stand up, as well as flesh out just what features a social network should support. After trying to get myself to separate the social network itself from the application people may be using to tap into their particular social networks, I wanted to re-visit how my original app idea and see what features should be moved to the actual network itself.
I wasn’t very happy with where my last post ended. It all boiled down to “I wish Facebook was open source” or “I wish App.net had worked out better”. Part of that was that I spent the whole post operating on the assumption that underneath any application using this social network would be, well, 1 central model that everything would use. I think that assumption may be flawed. What if there wasn’t a central model behind all of these applications, but rather just a single protocol creating multiple models of people we connect to and how.
When my friend Warren posted his issues with commenting on posts shared across social networks, it got me wondering how commenting would work in my hypothetical “next-gen” social network. My initial write-up on the idea focused mainly on the idea of the main content itself, so it got me wondering how to integrate things like comments into a feed-based social network. As I thought about how comments might fit into this new concept, I also started wondering about just what purpose comments served in a social network. I don’t mean in a “don’t read the comments” sense, but rather what role are comments serving in a social network? Continue reading »
Have you ever been working on something, and had a thought how something should be done, started to talk it out with somebody, only have the phrase “it’s not that important” get used? If it’s not important enough to think about doing well, why are we thinking about doing it at all then?
Work anywhere long enough, and you’re going to become the <something> person. From that point on, all questions, advice, etc. on that topic by default go to you. In my experience, this isn’t usually the result of some deliberate action to make a person the <something> “expert”, it’s the result of the work they get assigned and end up doing. The bigger questions are, what are your areas of expertise, what would you like your areas of expertise to be, and what are you doing to make the 2 previous answers line up?
I hardly do anything in Windows anymore. My work machine is Ubuntu, and my personal machine is a Mac. The only Windows computer I ever really use is an old machine at my church. However, that doesn’t protect me from having to deal with files made in Windows. And those things are starting to become the bane of my existence. Continue reading »
1 of the things I work on regularly was originally created with a fairly consistent data set. We had a very good idea of what fields were going to be in the data. As a result, we thought we knew where exactly we needed to check for null data, and when we didn’t need to know. Then the data set expanded, and the new data wasn’t nearly as consistent as what we started with. That’s when we realized that we were very much wrong in thinking we knew what needed null checks. Continue reading »
Dogfooding is an important part of software development. Google “dogfooding blog post” and you’ll have reading material for weeks. But what do you do when it’s tough to dogfood your own product? What do you do when dogfooding your own product isn’t even a viable possibility? Continue reading »