Have you heard of the adage "All problems in computer science can be solved by another level of indirection."? If you are a programmer, chances are you have read about it in a book or an article talking about how to best structure the software you write. It's been dubbed the fundamental theorem of software engineering (the FTSE) so you should know what it is about. If you...
Originally written by Dylan Tian
After the most recent WWDC, most iOS developers aren’t talking about cool new iOS 8 features or APIs. Instead, they’re talking about a whole new language: Swift.
a world cup! I do feel bad for 50% of the MuleSoft team though (given
that we’ve got a big office in Buenos Aires). It’s exciting though,
because this was a very exhilarating competition that truly reached a
fever pitch here in the US where “football” is traditionally a game with
pads, helmets, and ball that doesn’t really roll.
A developer over at StackMonkey wrote a bot that sells instances of his OpenStack cluster for Bitcoin, and the Twitter user @obitcoin is using it on Twitter. Truly we live in a frightening but awfully convenient digital age, made more convenient by devs like Kord Campbell, the developer in question.
A developer over at StackMonkey...
For the past two months I've had the pleasure of working with The Lampo Group developing Hypermedia-Driven REST services using Spring Boot. Spring Boot makes it super simple to get started writing REST services. One of its biggest advantages is by default it embeds tomcat as the servlet container, allowing the developer to focus on other important things.
We got a customer question about a map/reduce index that produced the wrong results. The problem was a problem between the conceptual model and the actual model of how Map/Reduce actually works.
Let us take the following silly example. We want to find all the animal owner’s that have more than a single animal. We define an index like so:
This article was originally written by Brett Goldman at the Axosoft blog.
Since Scrum is an iterative process, you can have great success by focusing on things that you can say with a fair degree of confidence, while still allowing for some uncertainty in all planning and estimates.
In my last post you can see the Tracker in action. This post I will explain the code running in Raspberry pi that controls the Tracker. I use Wiring Pi to control the GPIO instead of the default RPI.GPIO. The intention of using Wiring pi is because Software PWM is easy to implement. Any way after the first run of the tracker I realized that my tracker is slow moving one and no need to...
An introduction to Ansible Configuration Management
A brief history of Configuration Management
* CFEngine - Released 1993. Written in C
* Puppet - Released 2005 - Written in Ruby. Domain Specific Language (DSL. SSL Nightmare.
* Chef - Released 2009 - Written in Ruby, also a DSL, more like pure Ruby
* Juju - Released 2010, Python, Very ubuntu.
Some of the major challenges today when building infrastructure are predictability, scalability and automated recovery. A predictable system will promote the exact same artifact that you tested into your production system so no intermittent failure can cause any trouble. A scalable system make it trivial, especially automatically, to deal with any rise in traffic.
For no particular reason at all, Redis Labs' Itamar Haber took a D3.js swing at the bulk of Redis' 160-ish commands, creating an interactive visualization of the lot of them - in Redis colors, of course. According to Haber, it's set up like this:
For no particular reason at all, Redis Labs' Itamar Haber took a D3.js swing at the...
Simple real life problem. The proper service implementation is taken from a map based on a given service key. For an unknown/unsupported key a meaningful exception should be thrown. How could it be implemented without an if statement?
Business context. PriceProvider allows to get price for the requested product. A concrete implementation call proper provider via Web Service (REST or SOAP). There...
In this blog we will show you step-by-step how to
use PHP memcached support, combined with our new library to store PHP sessions
directly in Oracle Coherence using the memcached protocol.
In this blog we will show you step-by-step how to use PHP memcached support, combined with our new library to store PHP sessions directly in Oracle...
Originally written by Stephane Combaudon I recently worked on a case where one node of a Galera cluster had
its schema desynchronized with the other nodes. And that was although
Total Order Isolation method was in effect to perform the schema
changes. Let’s see what happened.BackgroundFor those of you who are not familiar with how Galera can perform schema changes, here is a short recap:
I was recently asked how to process an ‘array’ of values inside a column in a CSV file using Neo4j’s LOAD CSV tool and although I initially thought this wouldn’t be possible as every cell is treated as a String, Michael showed me a way of working around this which I thought was pretty neat.
Let’s say we have a CSV file representing people and their friends. It might look like this:
In this post, I’ll go through the
first steps of getting Glassfish installed and clustered with Apache to proxy
requests. All this will be set up using one CentOS and one Fedora instance, but
the steps should require little to no tweaking for other Linux platforms.
In this post, I’ll go through the first...
Scott Jenson leads a project called The Physical Web within the Chrome team at Google. Project members are working to take the scalability and openness of the web and use it to talk to the exponentially exploding range of smart devices.
Nearly every company today working on the IoT comes up with the same basic solution: use my server and you'll be fine. But if we really believe there will be trillions of these devices, that just can't scale. We need a system that is open a scalable and by using the URL as a basic building block, we open this up and get the same resilience that the web enjoys.
A good clean application design requires discipline in keeping things DRY:Everything has to be done once.Having to do it twice is a coincidence.Having to do it three times is a pattern.— An unknown wise manNow, if you’re following the Xtreme Programming rules, you know what needs to be done, when you encounter a pattern: