Development KongFu

The (martial) art of programming

Gal Segal (deprogrammer)

22 Dec 2013 » Happiness At Work?

Yesterday I read a great article about happiness at Buffer. This issue, about happy people working together in a stressful environment like startups is fascinating me for quite a while. An organization who whats to go this path requires to do some brave moves to facilitates happiness as a key value. Immediately I twitted it, feeling happy and pleased with the latest finding. It looked like this: A few hours later I had an uncomfortable...
Read more...

08 Aug 2013 » .Net Build Script For Continuous Integration

Going forward to CD is a blessed improvement in a developer’s life. The first step in this process is a the ability to build, test, package the code and send it to the CI orchestration tool (Jenkins, TeamCity etc.). This small repo aims to help in this step. We are now developing our CI process and as a developer I had to give the CI pipeline the executable that needs to be deployed. As in...
Read more...

30 Jul 2013 » Statsd C# Client And Aspect Oriented Programming

Statsd is a state of the art measurement tool created by Etsy. It collects metrics and uses Graphite to visualize them as graphs in unobtrusive way with minimal performance impact. There are some C# clients for Statsd, and all of them take the approach of giving the developer the ability to send metrics via one code line. When I started to use Statsd I felt this approach is not enough for me. I needed to...
Read more...

17 Jul 2013 » Better Searches In LogEntries

Just had a great talk with the guys from LogEntries. We were talking about some major improvements they are about to make and I wanted to share some thoughts. One thing that came up was the ability to make more complex searches on your logs. LogEntries Search Engine LogEntries search engine uses Reg-ex to filter the wanted results. It is great and offers some flexibility, but if you want more complex queries, well, you have...
Read more...

14 Jul 2013 » TDD In The Real World - Is It Worth It?

TDD has become a standard in the development process in the last few years, but still, when an organization needs to decide if to go this way it may raise some resistance from the developers and product teams. Many people already wrote tons of opinions about it, frameworks were built to support it, yet it is not obvious when comes to taking this decision and enforce it. I know this is a hard one, because...
Read more...

19 Jun 2013 » DDD Boilerplate - A C# Project Template For Visual Studio

Creating a DDD solution involves creating many projects for to support DDD structure. This is a tedious job that repeats itself on every new project you create. I noticed most, if not all, projects could use this structure naturally and wanted to speed things up I have created a DDD project template for VS2012 that makes all the work. It includes all the projects and test project needed. There is no code - just the...
Read more...

08 May 2013 » LogEntries Tips And Tricks

LogEntries is an online logging dashboard. It allows you to collect your logs and view them online, search them, collect events and more. DevOps needs a good visibility and alerting in their applications and LogEntries is a good tool to start with. Here are some tips and tricks for better usage: Arrange Your Logs LogEntries allows you to query your logs via a Regex engine. In order for you to group events and ease the...
Read more...

07 May 2013 » Feed Update: Improving The Watchlist

Short update about the feed: the watchlist (or “My feed” on Openbook) is a special type of feed, which is unique for a user, showing all activities (trading and social) of all other users he follows. It is similar in concept the the Twitter feed or Facebook wall. Over the time we saw the watchlist is getting cluttered with many events that are not interesting enough, especially copied trades. The result was the watchlist became...
Read more...

30 Apr 2013 » Dependency Injection, Decorators and Simple Injector

Using Dependency Injection is a common practice that been with us for a long time. It is one of the foundations for TDD and DDD and helps you manage your code dependencies in one place, as well as use abstractions and not implementation, as suggested in the DIP principle of SOLID. I stared using Microsoft’s Unity several years ago, which was fine. Over the years many other DI frameworks got more attention, especially Ninject, which...
Read more...

28 Apr 2013 » Openbook's Event Bus

We have just released a new version of our Feed API with some great features. Event Bus - WTF? Openbook and its peripheral services obtain data from our database replicas. These are copies of the original databases, and used as read only database. We created them to offload the calls from the original databases. The problem is that replicas has a delay. Most of the time the delay is not noticeable for humans (5 seconds)...
Read more...

17 Apr 2013 » Great Scaling Lessons From Pinterest

Pinterest is one of the fastest growing social media website. With a huge user base and constant growing community, the guys at Pinterest had their hands full dealing with all the traffic. The exponential grows forced them to constantly improve their architecture and learn several interesting lessons on the way. Marty Weiner and Yashwanth Nelapati gave a take about scaling Pinterest at the QCon conference. This is a must see presentation for all developers who...
Read more...

14 Apr 2013 » How Twitter Delivers Tweets

Twitter has its ups and downs over the years, but in the last year or so the Fail Whale is not in sight. Judging from several publications, the guys on Twitter changed architecture, used many different tools and created some themselves, which makes it quite interesting to follow. One of the latest presentations, given by Raffi Krikorian ([@raffi], Director of the Applications Services group at Twitter) at the QCon last October, shed some light about...
Read more...

13 Apr 2013 » What Great DevOps Leaders Think?

Just stumbled upon a great read about DevOps. The best part was reading about next generation stack monitoring. Monitoring your apps and measuring key factors are the bread and butter of DevOps. You don’t need to guess - you measure. DevOps Friday just published some thoughts from DevOps leaders. I especially liked the article about monitoring stack. Great tools are the ones that need simple implementation, has minor performance impact on apps and give good...
Read more...

12 Apr 2013 » Making Our Feed Better (Preview)

Our feed is a major, if not the major component on Openbook. We use it to show users’ trading activities, discussions and badges. It is the most engaging component and have a crucial role in our community. Over the years we added several features to the feed and got great feedback along with many feature requests and complaints. Our focus was on developing other parts of the website and smooth the entrance of new users...
Read more...