What I am reading

My Reader


Developer’s Blogs

CodeSlut

  1. Feature Flags made easy
  2. Mapping Immutable Value-Objects with Dozer
  3. Sending Emails using Spring-Mail
  4. Software Craftsmanship
  5. Event Horizon

@Blogger public class Bivas

  1. Factory Pattern
  2. Prevent EhCache From Storing Null Values in Cache
  3. Running Play Framework Application on CloudFoundry
  4. Why Do We Care?
  5. Using Compile-Time AspectJ Weaving as @Transactional Proxy Provider

Bits and Bytes

  1. ConcurrentHashMap – avoid a common misuse! - If you program systems with Java, you have probably long been using ConcurrentHashMap. This post explores a caveat. ConcurrentHashMap is often introduced to simplify code and application logic. For example: HashMap<String, MyClass> m = new HashMap<String, MyClass>(); ... synchronized (m) {     for each (Entry<String, MyClass> e in m.entrySet())         system.out.println(e.getKey()+"="+e.getValue()); [...] What I am reading
  2. Fight My Monster in TechCrunch - Fight My Monster was in TechCrunch today, which deserves a big hooray and thank you!!! We’re working hard and hope we can fulfill expectations. Thanks too to Moshi for setting an inspiring example. Please note we want to be as big as Moshi Monsters, not imitate them! The game design and vision are very different. [...] What I am reading
  3. PayPal recurring payments and bonkers docs - If you’ve ever tried to integrate with PayPal recurring payments, you’ll know that the documentation only covers most of the API. I started a thread to try and clarify the key issues, here https://www.x.com/message/204623 What I am reading
  4. 10 steps to upgrade a Cassandra node - The following steps might prove interesting to those with a new Cassandra cluster who are wondering how to upgrade, or to those investigating Cassandra who are interested in what an online upgrade looks like. The good news for those in production, is that if your cluster has a replication factor (RF) of at least 3, [...] What I am reading
  5. New UK “prospective entrepreneur” Tier 1 visa. Much ado? - The UK is trying hard to be more enterprise-friendly and is loosening bureaucracy and introducing legislation designed to spur growth. Some legislation coming into effect 6 April 2011 is designed specifically with the tech startup sector in mind, and has some similar aims to the Startup Visa Act 2011 proposed by John Kerry in the [...] What I am reading

prettyprint.me

  1. Visualizing our Deployment Pipeline - Cross posted also here: http://techblog.outbrain.com/2011/08/visualizing-our-deployment-pipeline/ When large numbers start piling up, in order to make sense of them they need to be visualized. I still work as a consultant at outbrain about one day a week and most of the time I’m in charge of the deployment system last described here. The challenges encountered when developing the system are good challenges, [...]
  2. The Three Axis of Software Management Complexity - The title sounds bombastic but hopefully the content is going to be trivial… For anyone who’s been doing software provisioning in a non trivial environment this post should only be calling names to things he may already know. Yesterday I was chatting with Nati Shalom and we were analyzing the difficulties of maintaining software for [...]
  3. Creating a Minimum Viable Product start page with WordPress - Update: Cross posted here and at recipitor’s blog This post is a how-to for launching a simple Minimum Viable Product (or even less) web page for a new product I’m working on. If you want to read the story go ahead, otherwise skip right to The Point. The Story When I started working on my [...]
  4. Continuous Deployment at outbrain - Warning: very long but interesting write-up It gives me great pleasure that the last project I’ve been working on at outbrain is one with the potential to speed up product development and is at the frontline of many web companies: Continuous Deployment. These are my last days at outbrain (I’ll share more about where I’m [...]
  5. Hector API v2 - Update: This post is now close for comments. If you have any questions please feel free to subscribe and ask at hector-users@googlegroups.com Update: The API was change a bit, it was mainly package renaming and interface extractions. To get a consistent snapshot of the api usage have a look at github on the release tag [...]

kaChing

reversim

  1. 123 final class 14
  2. 122 - algo trading
  3. 119 final class 13
  4. 121 Kickstarting invi
  5. 120 android

Robert C. Martin’s Weblog

  1. Apprenticeship -- The untold story. - The trials and tribulations of an apprentice at Object Mentor.
  2. Differentiation through Obfuscation - Every software vendor needs to convince you that their product is _different_ from all the others. Unfortunately, one of the most common strategies for differentiation is obfuscation.
  3. The Tortoise and the Hare - In software the race goes to those who go well, not those who go fast.
  4. Modelling the real world. - The concept of modeling the real world has been so badly abused in the OO community, that I want to find the person who first coined the notion and flay him alive. (not really.)
  5. YAGNI - There's a lot of emotional reaction and baggage surrounding this controvertial saying. And yet it's synonymous with the old KISS principle. Keep It Simple Stupid.

Eclipse On E

  1. Skip over certain classes when using Step Into in Eclipse’s debugger - Whenever I use the Step Into feature (F5) in Eclipse’s debugger, I’m mainly interested in stepping through code in my own classes, not the ones from external libraries or even Java classes. For example, there’s almost no reason to ever want to step into Spring’s code or proxy classes (other than to learn more about [...] What I am reading
  2. The easiest ways to navigate methods in a class using Eclipse keyboard shortcuts - Java classes can get big and hairy, making it difficult to find the method you’re looking for when browsing or editing a class. There is no specific order to where methods can be in a class and different developers have different preferences about where to put them. You could use the mouse wheel and scroll [...] What I am reading
  3. Generate, rename and delete getters/setters instantly in Eclipse - Despite the arguments and debates about getters and setters in Java, the fact is that they’re a reality and you have to work with them. But managing getters and setters is a time-consuming effort. Creating a getter/setter for 5 fields in a class can take minutes, renaming one is error-prone and deleting one is just [...] What I am reading
  4. The fastest ways to open editors in Eclipse using the keyboard - Something you do a lot in Eclipse is open files such as classes, XML files and property files in editors. But using the mouse to hunt through the Package Explorer folder hierarchy takes a long time, especially if you forgot where the files are located. The problem gets worse the more projects and files you [...] What I am reading
  5. Configure those annoying tooltips in Eclipse to only popup on request - Whenever you hover over any piece of code in Eclipse, it pops up a tooltip that displays more information about the item, such as its declaration, variable values or Javadoc information, as in the example below. Although useful at times, this becomes extremely annoying after a while, especially when you’re using your mouse to browse [...] What I am reading

Jenkov.com

  1. jQuery Compressed - New book published! - I have published my first book! It's about jQuery, version 1.7. It's an e-book for Amazon Kindle. It took a lot of sweat and tears, but I finally got it out!
  2. Java Logging Tutorial - In this new 12 text tutorial I explain Java's built-in logging API, in the package java.util.logging. The tutorial does not cover the other popular Java logging API's like Log4J, LogBack, SLF4J etc.
  3. HTML5 Canvas Animation - The 16th text in the HTML5 canvas tutorial explains how to enable browser supported animation, with the possibility for hardware acceleration added by the browser automatically.
  4. HTML5 Canvas Pixel Manipulation - The 15th text in the HTML5 canvas tutorial explains how to manipulate the pixels of a canvas, eg. by copying pixels from a canvas, or writing raw pixels to a canvas, or both.
  5. HTML5 Canvas toDataURL() - The 14th text in the HTML5 canvas tutorial explains how to use the toDataUrl() function of the 2D Context object, to grab what is on the canvas and convert it to a URL with data in, which can be displayed on a different canvas, or in a separate browser window.

snax

  1. ideal hdtv settings for xbox 360 - My XBox 360 broke, and since my new one supported HDMI, I reworked the connection to the TV (a Samsung PN50A450 plasma). It’s tricky to get the best performance out of the combination so I wanted to mention it here. scalers Even though the HDMI connection is digital, both the XBox and the TV have [...] What I am reading
  2. memcached gem performance across VMs - Thanks to Evan Phoenix, memcached.gem 1.3.2 is compatible with Rubinius again. I have added Rubinius to the release QA, so it will stay this way.  The master branch is compatible with JRuby, but a JRuby segfault (as well as a mkmf bug) prevents it from working for most people. vm comparison Memcached.gem makes an unusual [...] What I am reading
  3. simplicity - Maximizing simplicity is the only guaranteed way to minimize software maintenance. Other techniques exist, but are situational. No complex system will be cheaper to maintain than a simple one that meets the same goals. ‘Simple’, pedantically, means ‘not composed of parts’. However! Whatever system you are working on may already be a part of a whole. [...] What I am reading
  4. performance engineering at twitter - A few weeks ago I gave a performance engineering talk at QCon Beijing/Tokyo. The abstract and slides are below. abstract Twitter has undergone exponential growth with very limited staff, hardware, and time. This talk discusses principles by which the wise performance engineer can make dramatic improvements in a constrained environment. Of course, these apply to [...] What I am reading
  5. distributed systems primer, updated - Well, it’s been a long time. But! I have five papers to add to my original distributed systems primer: coordination CRDTs: Consistency Without Concurrency Control, Mihai Letia, Nuno Preguiça, and Marc Shapiro, 2009. Guaranteeing eventual consistency by constraining your data structure, rather than adding heavyweight distributed algorithms. FlockDB works this way. partitioning The Little Engines [...] What I am reading

Java Tuning

DevIL’s Diary

  1. False Positives in Database Integration Tests
  2. The Danger Of Mislead Solutions: Constructor Over-Injection
  3. Spring.NET AOP - Behind The Scenes (3)
  4. Spring. NET AOP - behind the scenes (2)
  5. Happy New Year!

Doron’s .NET Space

  1. Tip for Profiling NUnit Tests
  2. How to Save a Unicode Text File That Excel Can Read
  3. A Trip to Java Land
  4. Visual Studio x64 is Not to Be
  5. Sets of Mutable Objects is a Bad Idea

All Things Distributed

  1. Expanding the Cloud - The AWS Storage Gateway -

    Today Amazon Web Services has launched the AWS Storage Gateway, making the power of secure and reliable cloud storage accessible from customers’ on-premises applications.

    We have been working closely with our customers on their requests to bring the power of the Amazon Web Services cloud closer to their existing on-premises compute infrastructures. The Amazon Virtual Private Cloud extends on-premises compute with all the power of AWS, making it elastic, scalable and highly reliable. AWS Identity and Access Management brings together on-premises and cloud identity management. VM Import allows our customers to move virtual machine images from their datacenters to the Cloud and Amazon Direct Connect makes the network latencies and bandwidth between on-premises and AWS more predictable. With the launch of the AWS Storage Gateway our customers can now integrate their on-premises IT environment with AWS’s storage infrastructure.

    The AWS Storage Gateway is a service connecting an on-premises software appliance with cloud-based storage. Once the AWS Storage Gateway’s software appliance is installed on a local host, you can mount Storage Gateway volumes to your on-premises application servers as iSCSI devices, enabling a wide variety of systems and applications to make use of them. Data written to these volumes is maintained on your on-premises storage hardware while being asynchronously backed up to AWS, where it is stored in Amazon S3 in the form of Amazon EBS snapshots. Snapshots are encrypted to make sure that customers do not have to worry about encrypting sensitive data themselves. When customers need to retrieve data, they can restore snapshots locally, or create Amazon EBS volumes from snapshots for use with applications running in Amazon EC2.

    arch diagram storagegateway What I am reading

    Here are three example use cases that we envision for the AWS Storage Gateway. The first one is using the AWS Storage Gateway to back up your data to Amazon S3’s highly reliable storage environment. Amazon S3 is designed to sustain the concurrent loss of data in two facilities, redundantly storing your data on multiple devices across multiple facilities in an AWS Region. So, backing up your data to Amazon S3 means a lot less headaches worrying about your local storage environment.

    The second use case is where customers want to move data between local infrastructure and the Amazon Web Services cloud to provide access to applications and other computations running in Amazon EC2. The use of the Amazon EBS snapshot format means the data that was on-premises can be restored as an Amazon EBS volume mounted to an Amazon EC2 instance.

    The third use case, cloud-based Disaster Recovery, is a specific variation of the previous two. If there is a failure in your local infrastructure, you can quickly launch a DR environment in Amazon EC2 which will have full access to the data snapshots backed up into Amazon S3 by the AWS Storage Gateway.

    For more information on the AWS Storage Gateway, you can visit the detail page Jeff Barr over at the AWS Developer Blog has more details.


Sites

SpringSource Team Blog

  1. Spring Integration 2.1 is now GA - Spring Integration 2.1 has been released! You can download it here or configure your Maven POM. This version is the result of more than one full year of work, and the team has resolved hundreds of issues since Spring Integration 2.0 was released. Interestingly, it has been 4 years and a few days since the Read more... What I am reading
  2. Spring Framework moves to GitHub - Today we're happy to announce that the Spring Framework has moved to GitHub! As you've probably noticed, nearly every other Spring project has already made the move, and those that haven't will soon. Git helps us with many of the challenges of managing a large codebase like the Spring Framework, but what's most exciting is Read more... What I am reading
  3. Spring Python 1.1.1, 1.2.1, and 1.3.0.RC1 are released! - Amidst the flurry of Spring releases this month, Spring Python has it's own. Versions 1.1.1 and 1.2.1 are maintenance releases that patch some bugs. Version 1.3.0.RC1 is the first release of 1.3.0. In this release we have commits from team members, and have also merged pull requests through github. If you want to make contributions Read more... What I am reading
  4. Spring Roo 1.2.0.RELEASE available - It is my pleasure to announce that Spring Roo 1.2 GA has just been released. This release represents a significant amount of engineering effort by the Roo team and includes all the most popular features that the Roo user community have requested as well as many performance and usability improvements. The new features of Roo Read more... What I am reading
  5. Web Development Evolved: Grails 2.0 Released! - After nearly a year in development, we are extremely excited to announce the GA release of Grails 2.0 – the second major revision of the web framework that is changing the face of web development on the JVM. This release brings a greatly enhanced user experience. Everything from the command line, to the test reports, Read more... What I am reading

InfoQ

  1. Presentation: Questions for an Enterprise Architect - Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building? By Erik Dörnenburg
  2. Presentation: Wrap Your SQL Head Around Riak MapReduce - Sean Cribbs explains what Map-Reduce and Riak are, why and how to use Map-Reduce with Riak, and how to convert SQL queries into their Map-Reduce equivalents. By Sean Cribbs
  3. Debugger Canvas 1.1 Adds Easy On/Off, Improved Navigation - Debugger Canvas, the tool that introduced 'Code Bubbles' to the Visual Studio Ultimate debugger, debuted last summer. Debugger Canvas 1.1 launches with new features including an easy on/off switch that can be used while debugging, and the ability to view multiple threads at once. By Jenni Konrad
  4. Presentation: Polyglot Persistence for Java Developers - Moving Out of the Relational Comfort Zone - Chris Richardson shows how he ported a relational database to three NoSQL data stores: Redis, Cassandra and MongoDB. By Chris Richardson
  5. Interview: The Web Platform as a Limitless Pool of Innovation, with Andreas Gal - Andreas talks about the benefits of the Open Web and how it compares with proprietary closed-stacks. He also talks about various projects like Boot to Gecko, Broadway, pdf.js and more, that bring the web platform in a whole new level. By Andreas Gal

JavaLobby

  1. Building updated packages for sun-java6 6u30 - Recently, Oracle withdrew the ability for Linux distributions to repackage Java and distribute their own packages.  This has been widely regarded as a bad idea.  I tend to agree. So, let's re-roll an old sun-java6 deb file, with a new content to contain the latest 6u30 java release. You will need:    Preview Text:  Recently, Oracle... What I am reading
  2. How To: Install graylog2 on CentOS 5 with RVM + Passenger - Graylog2 is an open-source self-hosted centralized log management tool. Think of it as a do-it-yourself version of loggly.com, or perhaps a simpler alternative to Splunk. Logs are stored in a MongoDB database. I won’t go into too much detail, so if you want more info check out graylog2.org Preview Text:  I decided to see if RVM – Ruby Version... What I am reading
  3. Informer is dead: long live Informer! - Well, who’d have guessed it? After two long years, the new edition of Informer is finally out. Preview Text:  Read several articles by search experts like Charlie Hull and Tyler Tate. A great resource for enterprise search followers. Mitchell Pronsc... What I am reading
  4. The Best Default Setting is not to Have a Setting - It is easy to think that letting users change all aspects of an app UI makes the UI better. We've all heard the "if they don't like it they can change it" argument. It is also very easy to come up with theoretical scenarios where users would actually want to change any one aspects of the UI.  Preview Text:  It is easy to think... What I am reading
  5. jOOX and XSLT. An XML love story, continued - The somewhat functional way of thinking involved with jOOX’s XML manipulation cries for an additional API enhancement simply supporting XSLT. XSL transformation has become quite a standard way of transforming large amounts of XML into other structures, where normal DOM manipulation (or jOOX manipulation) becomes too tedious. Let’s have a look at how things are done in standard Java ... What I am reading

dzone

  1. This week in #Scala (03/02/2012)
  2. A Checklist for a Move to the Cloud
  3. NoSQL: An Analysis of the Strengths and Weaknesses
  4. Getting started with the Sensu monitoring framework
  5. An approach to many - to - one relationships in MongoDB with Morphia

TheServerSide

  1. x += x++ * x++ * x++; Really? Just a little mock OCAJP exam question to get you thinking.
  2. TheServerSide Java Symposium hits the road and the Web in 2012
  3. Tiggzi: Cloud-based HTML5 And Hybrid Mobile App Builder Is Now Free!
  4. Spring 3, Spring Web Services 2 & LDAP Security
  5. Apache JMeter 2.6 released