InfoQ: Riak NoSQL Database: Use Cases and Best Practices

InfoQ: Riak NoSQL Database: Use Cases and Best Practices:

InfoQ: Can you talk about some limitations about the Riak databases and what use cases it’s not the best solution to use?

Basho: Applications that require ad-hoc querying and heavy analytics tend to be less of a good fit for Riak. Since we are a key/value store at the core, applications that require ad-hoc queries and/or heavy analytic processing can be difficult to implement on top of Riak. Our main focus is predictability and scale, and there are some tradeoffs that have to be made with data model and queryability to stay faithful to this focus.

That said, we plan to enhance Riak in various capacities to address these use cases in 2012. Riak already exposes deeper query possibilities via our MapReduce, Secondary Indexing, and Search components, and we’ll continue to make these more robust in future releases.

[Good stuff.]
Source:

‘Gamification’ sucks

‘Gamification’ sucks:

It should be obvious that one conclusion respects people and one doesn’t. It should also be obvious that the first conclusion is correct and the second is incorrect, cynical, and low.

I can’t prove that good software respects people, but I can look at good software and show how it respects people. I can look at bad software and show how it doesn’t respect people.

“Gamification” treats people like children — children who need to be manipulated, who need to be tricked into doing what’s good for them.

And it makes bad software.

[Just because something feels like a game doesn’t mean that you should make it more like a game.]
Source: inessential.com

The End of the Web? Don’t Bet on It. Here’s Why

The End of the Web? Don’t Bet on It. Here’s Why:

I think there’s a TCO argument to be made against the proliferation of the App Internet. The more companies build their own apps, the more maintenance work they’ll need to do, the more employees they’ll need to maintain their apps and the further the innovation drain. I know this is a harder concept to quantify and intellectualize but I’ve seen it first hand in 20 years of working with large corporation on “legacy” IT projects. The App Internet opens the door to many more legacy apps.

This argument never features into any young developers mind because it takes years to see the decaying effect of legacy infrastructure in corporations (plus, many app developers prefer the sexy world of consumer apps).

To be clear … I think that the App Internet won’t disappear overnight. I also think certain apps will always be more effective built natively. But the same is true of today’s non-mobile computing. Still, most apps need not exist. Long live the Mobile Web.

[I agree.]

How I’d Build an Apple Television Set

Super thin tv sample

kickingbear» How I’d Build an Apple Television Set:

I’ve done a lot of thinking about the Apple TV. For some reason it fascinates me. It’s entirely different from the other applications of software. First, it’s a shared experience rather than a direct experience like a Mac or an iOS device. Second, this shared experience means there’s necessarily an indirection of input — if a screen is big enough to be seen by everyone in the room you’re not going to be close enough to it to mess with it directly. So when the rumours went around of an iOS based Apple TV coming I became intrigued and tossed some ideas back and forth with a friend. Mostly the discussion came down to input methods — what could they do and what’d that mean for the interface? Around that same time Bluetooth 4.0 was ratified and the specification includes a low power mode. I guessed that if the Apple TV had a Bluetooth 4.0 chip then we’d see a new remote, if not we’d likely just stick with what we had.

[Interesting thoughts. Still not convinced Apple will do something, but I have no doubt they could if it made business sense.]
Source: inessential.com

The problem with CSS pre-processors | Miller Medeiros

The problem with CSS pre-processors | Miller Medeiros:

I’ve been considering to use a CSS pre-processor like SASS, LESS, Stylus, etc, for a very long time. Every time someone asked me if I was using any of these tools/languages I would say that I’m kinda used to my current workflow and I don’t really see a reason for changing it since the problems those languages solves are not really the problems I’m having with CSS. Then yesterday I read two blog posts which made me reconsider my point of view so I decided to spend some time today studying the alternatives (once again) and porting some code to check the output and if the languages would really help to keep my code more organized/maintainable and/or if it would make the development process easier (also if they evolved on the past few years).

[This is one of those issues that pushes a to of buttons and I appreciate that MM went out of the way to try and not start a meaningless flamewar. That said, the piece caught my eye when he got to the postscript “PS: I love CSS, for me it’s one of the most rewarding tasks on a website development, it’s like solving a hard puzzle…”. I agree. It’s like solving a hard puzzle… and one that provides no business value. It feels like there’s a store room where I keep stuff I need to get all the time, but instead of a door, I pile stones in front of the opening. Each time I have to get something I have to unpile the heavy stones, get what I need, and then re-pile the stones. Over and over and over again. That’s not good is it? Anyone would suggest a door or moving the stuff somewhere that didn’t require all of that unnecessary effort. That’s what working with CSS feels like. Considering how similar the web looks overall, it seems silly that we hand generate so much CSS. And the tools being debated are more about making CSS more programmable because that’s the way developers think. But if you step back that’s not what we need and that’s what these preprocessors do. We need to get all this stuff back into the hands of the designers where they can do as they please. The point of collaboration would only exist when crafting something uncommon or unique.]

Redis for win32 and the Microsoft patch

Redis for win32 and the Microsoft patch:

When dependencies provide a lot of added value it is worth adding them. Instead when you need to switch to something bigger and more complex without any gain, why to do it?

Ah, and about the gain being some kind of feature only exciting for we code nerds and having zero effects on how a system works, please read my next article in a few days, we are programmers and we need a revolution.

[Stay tuned. There’s more of this scintillating tech stuff coming. (It is important if you’re a developer, but otherwise it’s totally in the weeds, and should remain there atmo.) There is a larger lesson to be gleaned from the dependencies issue. If something requires that you do something complex for little or no gain, it’s probably the wrong thing to do. It should be noted that we often completely organize our lives in this complicated fashion for little gain. Worthy of more thought.]

Wunda’s World: Clarifying purpose

Wunda’s World: Clarifying purpose:

How can we do this? By understanding and buying into what we are creating and how we see it experienced. We can create a mission, vision and values to clarify and create distinction.

The mission statement is all about purpose. Its about the problem you are trying to solve, the information you are trying to share and/or the service you are trying to provide. Its about the long term goals.

On the other side, the vision statement is an abstraction of the experience. It can include words like fun, simple, quality, quickly, stable, reliable, responsive, etc. It does not include ideas like color schemes, mechanics, technology specifics or other implementation details.

Time can also be spent on value statements (users own their information, we strive to directly connect with and respond to user feedback, all user feedback is valid, etc)

Continue drilling down into these ideas until everyone knows what they are doing, are excited to work towards the goals and know in their hearts they are working on an effort they accept fully.

For new teams, taking time to manifest an understanding of team dynamics, quality and creativity with as much openness and honesty as possible can help ensure the best “good-enough” software gets created in a way that is enjoyable, sustainable and collaborative.

Finally, read these statements every morning. When discussions become long, unclear or hostile, refer back to them. Use them as a method to stay detached to what is no longer serving and focused on the underlying issues.

[Well said!]

Experience with Git

Experience with Git: From time to time, a test fails.  One of the first things I typically do is run git bisect.  All I need to do is to identify a good version, a bad version, and a test to run.  Even if the test takes 2 minutes and there are 30 or so revisions between the good and bad points, I get an answer in about 10 minutes without needing to be further involved in determining where the problem is.

[Yeah there’s good stuff in all this.]
Source: Sam Ruby