~/devreads

2 Mar 2013

1 Mar 2013

Craig Gilchrist 1 min read

Welcome to the Mashery-powered Bazaarvoice Developer portal. We strive to give you the tools you need to develop cutting-edge applications on the Bazaarvoice platform. Some changes you’ll notice: You no longer have to login to see documentation. Just click the Expand icon () to drill down to the information you need. If you want to […]

conversations apideveloper portalgeneral announcementsmashery

0xADADA 8 min read

Every selector you write is additional complexity that will need to be maintained. Can you generalize or abstract that selector so other components can use it? Write your CSS selectors to be as concise as possible Write your CSS selectors to be as performant as possible, efficient as possible and even more efficient Don’t overqualify your CSS selectors Use the…

essayssoftware-engineeringcssweb-development

28 Feb 2013

1 min read

In this post we’ll expand our toolbox of proof techniques by adding the proof by contradiction. We’ll also expand on our knowledge of functions on sets, and tackle our first nontrivial theorem: that there is more than one kind of infinity. Impossibility and an Example Proof by Contradiction Many of the most impressive results in all of mathematics are proofs…

27 Feb 2013

Timur Celikel 5 min read

We, Kolja and Timur, attended the jQuery Europe conference in Vienna, Austria this year. We met Sebastian Helzle who used to be developer at Small Improvements about a year ago and contributed a lot back then. The baroque location was breathtaking; the Gartenparlais Liechtenstein (Liechtenstein Garden Palace) is spectacular, especially the room were speeches took […]

frontendhtmljavasciptjqueryvienna

1 min read

I recently came across this paper describing how they do ML at Twitter. TL;DR Their approach is pretty interesting. Everything is a Pig workflow and then they do everything as UDF’s. This approach seems pretty interesting. As long as your data can be expressed as small atomic machine learning functions, I’m sure it works great. But there’s so much more…

26 Feb 2013

25 Feb 2013

1 min read

Recently we ported Discourse from CoffeeScript to plain old Javascript. The process was straightforward since CoffeeScript spits out fairly good Javascript, although I did have to spend the better part of a day cleaning it up afterwards. (Note: we’d love any patches to further tidy up the generated Javascript.) One thing that CoffeeScript does by default that’s nice is it…

23 Feb 2013

1 min read

"Google's grip on your digital life: A tongue-in-cheek journey through a day with the tech giant."

22 Feb 2013

1 min read

In this post we’ll cover the second of the “basic four” methods of proof: the contrapositive implication. We will build off our material from last time and start by defining functions on sets. Functions as Sets So far we have become comfortable with the definition of a set, but the most common way to use sets is to construct functions…

Per Fragemann 1 min read

Using the right technology is important to boost your development efficiency. But efficiency alone isn’t sufficient, you need to boost employee morale as well. Among the core ingredient to employee happiness are the company’s working conditions. And of course the office space itself plays a major role in that. We just moved into our new […]

how we work

21 Feb 2013

Badrinath Janakiraman 1 min read

When you start out with your project, it would have been sufficient for you to push your application out to a single environment. You may have called it development or staging and deployed every build that passed your tests onto it. However, soon enough, as your application grows, there is typically a need for multiple environments between the first one…

20 Feb 2013

19 Feb 2013

Per Fragemann 1 min read

We’re a tiny startup, and yet we’re able to compete with some heavy weight companies. For instance, our main competitor Rypple launched two years ahead of us, received millions in funding, was led by a team of experienced entrepreneurs and staff, and got acquired by Salesforce last year. We have: No funding, no entrepreneurs, mostly […]

how we work

18 Feb 2013

17 Feb 2013

16 Feb 2013

1 min read

I recently posted an exploratory piece on why programmers who are genuinely interested in improving their mathematical skills can quickly lose stamina or be deterred. My argument was essentially that they don’t focus enough on mastering the basic methods of proof before attempting to read research papers that assume such knowledge. Also, there are a number of confusing (but in…

1 min read

Shortly after we began working together on Discourse, Jeff wrote a post about infinite scrolling. At first, I was surprised at how many people claimed to hate sites that used it. However, after reading through many comments about it, I realized that most didn’t hate the scrolling itself, they hated how it broke their browser! Infinite Scrolling done wrong: Twitter…

13 Feb 2013

Schakko 5 min read

A few days ago I finished my bachelor thesis with the title Integrating Xtext in an existing Software development process. I developed a domain specific language with Xtext and some extensions for easily adding new generators as new Eclipse plug-ins. After finishing the thesis I added a Maven Tycho based build […] The post Build and deploy your Xtext DSL…

software developmentxtextautomaticbuildserverdsl

12 Feb 2013

kevin 3 min read

If you've ever tried to teach someone HTML, you know how hard it is to get the syntax right. It's a perfect storm of awfulness. Newbies have to learn all of the syntax, in addition to the names of HTML elements. They don't have the pattern matching skills (yet) to notice when their XML is […]

codeimprovementusability

16 min read

This is a transcript of the Kara Swisher / Jack Dorsey interview from 2/12/2019, made by parsing the original Tweets because I wanted to be able to read this linearly. There's a "moment" that tries to track this, but since it doesn't distinguish between sub-threads in any way, you can't tell the difference between end of a thread and a…

11 Feb 2013

10 Feb 2013

kevin 3 min read

How should you design the controls for a shower? Let's take a quick look. Affordance A device should make clear by its design how to use it. Take a hammer for example. No one has ever looked at a hammer and wondered which end you are supposed to grab and which part you're supposed to […]

designusability

1 min read

This week, I was delighted to finally reveal Discourse, the app I’ve been working on for most of the last year in secrecy with awesome people. The launch got a lot of attention - we were featured on Hacker News, Slashdot, Wired, Reddit, Techcrunch and countless other places. Personally I’ve been floored with the amount of feedback so far. It’s…

8 Feb 2013

1 min read

For those who aren’t regular readers: as a followup to this post, there are four posts detailing the basic four methods of proof, with intentions to detail some more advanced proof techniques in the future. You can find them on this blog’s primers page. Do you really want to get better at mathematics? Remember when you first learned how to…

1 min read

Git has a lot of features, and I bet that 90% of who use it (including me) doesn’t know half of them. Well, maybe, someday, one of those “unknown features” can “save your life”.

7 Feb 2013

Schakko 1 min read

Play SQL is a an Atlassian Confluence plug-in for querying database tables and displaying the results inside a Confluence page. The plug-in has only native support for PostgreSQL and HSQL but other drivers can be used via a JNDI datasource. For using MySQL with Play SQL you have to download the […] The post Use Confluence Play SQL Plug-in with…

application serveratlassianconfluencedatabasejira

6 Feb 2013

1 min read

This article from today in Mashable describes some of the fun stuff I get to work with: Erik Bernhardsson is technical lead at Spotify, where he helped to build a music recommendation system based on large-scale machine learning algorithms, mainly matrix factorization of big matrices using Hadoop. He moved into this role after heading the Business Intelligence team, where he…

5 Feb 2013

1 min read

Rails 3.1 introduced the asset pipeline, which makes it easy to include versioned external assets as application dependencies.

4 Feb 2013

1 min read

A common problem in machine learning is to take some kind of data and break it up into “clumps” that best reflect how the data is structured. A set of points which are all collectively close to each other should be in the same clump. A simple picture will clarify any vagueness in this: cluster-example Here the data consists of…

1 Feb 2013

Matt Cutts 3 min read

Hey folks, I just finished January’s 30 day challenge: no news, no Twitter, fewer emails, and no social media in general. For February, my wife and I are trying a gluten-free, wheat-free month to see what that’s like. Okay, so how was January? I started with a week completely off the internet, which coincided with […]

30 days

30 Jan 2013

1 min read

Today I struggled to get OmniAuth and Google apps to work properly together. I just wanted to add authentication to my application and restrict access to only my Google Apps domain users. I was hoping it would be straight forward since I could use Google’s OpenID service. Turns out it wasn’t that hard, but the lack of documentation made me…

29 Jan 2013

kevin 6 min read

I've worked with Twilio's client libraries pretty much every day for the last year and I wanted to share some of the things we've learned about helper libraries. Should you have helper libraries? You should think about helper libraries as a more accessible interface to your API. Your helper libraries trade the details of your […]

codeusability

28 Jan 2013

Adrian Jones 1 min read

Sales Commission? Outmoded. We’ve taken the decision. It’s gone. Let’s be clear. I am proud of my career in software sales leadership. I am also proud that as a team we (Thoughtworks Studios Sales) focus on trying to do the right thing for our customers. But over recent years I have become increasingly aware of two things: Market changes mean…

27 Jan 2013

1 min read

Slides from the talk. Slightly edited because (a) some of the slides make little sense taken out of context (b) Slideshare seem to have problem converting some of the stuff. Collaborative filtering at Spotify from Erik Bernhardsson

25 Jan 2013

Malcolm Beaton 1 min read

I get a lot of push back on this – especially when doing Mingle implementations. People inevitably start down the “Access control” route. “So I should make it so only QA’s can move a card to done! Right?” Wrong! I think so anyway – It is true that the QA should be the only person actually exercising this change, but…

24 Jan 2013

23 Jan 2013

2 min read

Last weekend, we sponsored and attended our first PennApps, the world’s largest student run hackathon held at the University of Pennsylvania in Philadelphia. Nearly 500 students participated from a variety of universities across the US and elsewhere. Students were given 36 hours to get into teams, hack on projects, then show them off to the judges. The results were astounding.…

Twist Team 1 min read

There has been a lot of debate in the past about which style is good and which is bad. If I were to ask a developer or a QA to write a scenario, I can rest assured that it will be an Imperative style whereas a BA or an end user would probably adopt a declarative style. There is no,…

22 Jan 2013

1 min read

The graph is among the most common data structures in computer science, and it’s unsurprising that a staggeringly large amount of time has been dedicated to developing algorithms on graphs. Indeed, many problems in areas ranging from sociology, linguistics, to chemistry and artificial intelligence can be translated into questions about graphs. It’s no stretch to say that graphs are truly…

Mike Long 1 min read

“How often we neglect to address the purposes of those who are in the system and those of the environment.” —Béla Bánáthy “No man is an island, Entire of itself. Each is a piece of the continent,

17 Jan 2013

16 Jan 2013

1 min read

ShitRedditSays and The Downvote Brigades of Reddit (note: if you’re familiar with reddit and ShitRedditSays, you can skip to the next section.) As you probably know, Reddit is a site that revolves around voting. All users are encouraged to vote on things, which are then prioritized based on their total scores. Over time, Reddit’s userbase has grown a lot. It…

15 Jan 2013

Schakko 1 min read

As I mentioned in my last post the current Xtext DSL I am working on provides annotation support. Every artifact generator plug-in can provide additional annotations which influences the generation process of different artifacts. My unit tests were all green but at runtime in Eclipse/OSGi environment I received the following […] The post Processing annotations in Xtext and receiving “Could…

xtextannotationclassnotfoundeclipseimport

Craig Gilchrist 2 min read

We are pleased to announce that the following functionality has been developed for version 5.4: Submission forms pre-filled for non-anonymous users Full text search on all UGC and on includes Product family queries Photo upload accepts URLs Brightcove Smart Player Javascript integration Story rating field exposed in the response Special product attributes exposed in the response […]

conversations apirelease notes

13 Jan 2013

1 min read

The Economist just published an article called The best, the worst and the ugly. By looking at historical performance for mutual funds, they find strong support for momentum and mean reversion. Picking the best or the worst fund over the previous five years gives great returns over the next five years. I think this is just confusion around what risk…

12 Jan 2013

1 min read

Being part of the subject of algebraic topology, this post assumes the reader has read our previous primers on both topology and group theory. As a warning to the reader, it is more advanced than most of the math presented on this blog, and it is woefully incomplete. Nevertheless, the aim is to provide a high level picture of the…

Schakko 1 min read

Today I implemented the last feature of my bachelor thesis and struggled upon a small problem: My DSL makes use of XAnnotation to annotate various grammar elements. The generators can extend the DSL by introducing new annotations which can be used for modifying the generation process of the resulting fragments. […] The post Accessing the values of an annotation inside…

xtextannotationannotationscastobject

11 Jan 2013

10 Jan 2013

1 min read

A story of a game exploit Once upon a time I developed a somewhat popular web game called Forumwarz. At its peak, we were serving about 6 million dynamic requests a day off a single quad-core server. Forumwarz limits how many turns a player can take in a day. We designed it this way so that the competitive aspect of…

8 Jan 2013

7 Jan 2013

Barry O'Reilly 1 min read

We are in one of the most interesting and disruptive eras of business change the world has known. The landscape and competitive environment is evolving at rates we have not seen before, and it’s only going to accelerate. The average life expectancy for an organisation is plummeting from 67 years in the 1920s to 15 years today, according to Professor…

6 Jan 2013

1 min read

Turbolinks Turbolinks is a new Ruby library, enabled in Rails 4 by default, that is designed to speed up your web applications. It does this by binding a Javascript handler to all link clicks. Instead of allowing the browser to load the new page, it fetches it in the background via AJAX. It then parses out the body, and injects…

4 Jan 2013

1 min read

It is a wonder that we have yet to officially write about probability theory on this blog. Probability theory underlies a huge portion of artificial intelligence, machine learning, and statistics, and a number of our future posts will rely on the ideas and terminology we lay out in this post. Our first formal theory of machine learning will be deeply…

3 Jan 2013

1 min read

Recently, I wrote a short essay on privilege and programming. It was quite popular on /r/programming and generated hundreds of comments, both there and on this blog. I was surprised and flattered to see the majority of the comments agreed with my post, however a few people brought up a concern which I’d like to address: Why this is person…

1 Jan 2013

Sriram Narayan 1 min read

How do you use Go to address the following situation? Say your QAs do some manual exploratory testing in addition to all the automation. They might want to have the last good build automatically deployed to their test environment for them every morning so that they don’t have to spend time manually figuring out the last good build and deploying…

31 Dec 2012

Henrik Warne 1 min read

The WordPress.com stats helper monkeys prepared a 2012 annual report for this blog. Here’s an excerpt: About 55,000 tourists visit Liechtenstein every year. This blog was viewed about 170,000 times in 2012. If it were Liechtenstein, it would take about … Continue reading →

uncategorizedmetastatisticsstats

30 Dec 2012

Matt Cutts 1 min read

The end of the year is a perfect time to think about goals. Did you get done what you wanted in 2012? What do you want to accomplish in 2013? Instead of setting year-long goals, I’m a big fan of trying out new things for a month at a time: This month I’m going to […]

30 days

1 min read

When I was in grade 6, I handed out a couple of 3 1/2" floppy disks to a couple of friends in my class whose parents had recently purchased PCs. On each disk was a game I created. You’d fly a ship horizontally through outer space. It had two controls, up and down, to avoid asteroids. The longer you survived…

22 Dec 2012

1 min read

The First Isomorphism Theorem The meat of our last primer was a proof that quotient groups are well-defined. One important result that helps us compute groups is a very easy consequence of this well-definition. Recall that if $ G,H$ are groups and $ \varphi: G \to H$ is a group homomorphism, then the image of $ \varphi$ is a subgroup…

21 Dec 2012

Srijayanth Sridhar 1 min read

In this video Srijayanth Sridhar from the Twist team describes a new feature in Twist 2.5 that lets you explore the way your fixtures are laid out, thus giving you a high-level view of test coverage.

20 Dec 2012

Melissa Doerken 1 min read

On the Mingle team we believe continuous improvement is paramount to consistently delivering real value to our customers. We invest in it heavily to minimize waste and always look for opportunities--both large and small--to improve how we work. A recent example of how we’ve improved our process has been whittling and “WIP-ing” our wall. And it all began with a…

Sriram Narayan 1 min read

Pipeline templates are useful when you need two pipelines to do the same things except that they build against different repositories or different branches of the same repository. This latter case is common. You might have a short lived branch and a long lived mainline. Using templates here is better than cloning the mainline pipeline because any future change to…

19 Dec 2012

Per Fragemann 1 min read

I recently did a presentation at the Berlin Java User Group, during which I summarised the past two years that we’ve been operating Small Improvements on the Google App Engine platform. Some things went great, others not so much. Here are the slides (German only) [slideshare id=15704136&w=510&h=410&sc=no]

infrastructureapp enginegaejava user group berlin

18 Dec 2012

1 min read

So, I just bought “Seven Languages in Seven Weeks”. I’ve read the Ruby chapter, not a big deal at all, so I skipped it. I also skip Io, Prolog and Scala (for now), and then, fall in Erlang!

Simon Reekie 1 min read

Learning a language can be a challenging task. The absorption of a lexicon takes time and patience. Twist can help keep this task achievable for consumers of acceptance tests by allowing the definition of confirmation language to be natural. This is assuming that the consumers will be business customers or other non-technical people. If that is not the case, I…

17 Dec 2012

Sriram Narayan 1 min read

A Go-Environment is a grouping of pipelines and agents. By assigning an agent to an environment, it will be used to run only those jobs that belong to the pipelines of that environment. An agent can belong to more than one environment but a pipeline can only belong to a single environment. Once an agent is associated with one or…

Melissa Doerken 1 min read

As part of our efforts to embody lean and agile principles, we always try to limit how much we’re working on at any given time. Working in small batches and employing WIP limits not only focuses our attention on what’s already underway, but also helps us break down, prioritize and rank upcoming work.

16 Dec 2012

1 min read

After a while using Jekyll Bootstrap, I just realized that it was so much bloated. Then, few days ago, I forked the old Zach Holman’s blog, and started to tweak my own theme based on theirs (that now is opensource). At first, I like it, but after a while, I just start thinking that it had a “old style” design.

Ranjan Sakalley 1 min read

Software testing and verification needs a careful and diligent process of impersonating an end user, trying various usages and input scenarios, comparing and asserting expected behaviours. Directly, the words "careful and diligent" invoke the idea of letting a computer program do the job. Automating certain programmable aspects of your test suite thus can help software delivery massively. In most of…

15 Dec 2012

13 Dec 2012

Suzie Prince 1 min read

Here on the Mingle team we use Mingle not only as a way to manage our day-to-day software delivery and development, but also as a tool for product management. We’d like to share with you some of the ways that we use Mingle to do that.

Sadique Ali 1 min read

Twist 2.5 has greatly improved support for testing secure web applications using the Sahi driver. Testing secure sites with Sahi has not always been a pleasure. It involved accepting the Sahi generated certificates for each of the secure sites that your application loads resources from.

12 Dec 2012

Henrik Warne 8 min read

I recently gave a presentation on what it is like to work as a software developer to first-year engineering students at KTH taking an introductory programming course. I wanted to give my view on the main differences between professional software … Continue reading →

learningprogrammingproduction softwareprogramming courseuniversity

9 Dec 2012

1 min read

Neurons, as an Extension of the Perceptron Model In a previous post in this series we investigated the Perceptron model for determining whether some data was linearly separable. That is, given a data set where the points are labelled in one of two classes, we were interested in finding a hyperplane that separates the classes. In the case of points…

8 Dec 2012

1 min read

The study of groups is often one’s first foray into advanced mathematics. In the naivete of set theory one develops tools for describing basic objects, and through a first run at analysis one develops a certain dexterity for manipulating symbols and definitions. But it is not until the study of groups that one must step back and inspect the larger…

Suzie Prince 1 min read

When thinking about scaling agile to aggregate levels such as programs and portfolios, it is very important to be even more vigilant against convolution and waste. At Thoughtworks Studios we have made it our goal to help teams stay true to agility and support working at scale. In this blog article we’d like to take the opportunity to share some…

7 Dec 2012

5 Dec 2012

2 min read

This was posted on the Twitter Engineering blog a few days ago: Dimension Independent Similarity Computation (DISCO) I just glanced at the paper, and there’s some cool stuff going on from a theoretical perspective. What I’m curious about is why they didn’t decide to use dimensionality reduction to solve such a big problem. The benefit of this approach is that…