The five egos of developer meetings

We humans want to believe that all we do is make the world around us better. If we get lots of us in a room, something great will happen, right? Not exactly. Our egos are powerful things, and, without proper precautions, it can lead to a complete waste of time. Here are five of the […]

Read More »

Logging context with Mapped Diagnostic Contexts

Since upgrading my log acquisition platform to be metadata-aware (it’s effectively syslog messages + log flume + “other stuff”), I’ve really started to take advantage of the message diagnostic context available with major logging frameworks for tracking a specific complex interaction. Below is an example of what I’m talking about: public void myThingIDo(String targetUser, UserPreferences […]

Read More »

JADE Setup for Beginners

Introduction Prerequisites This howto is written assuming that you have basic understanding of Java and that you are capable of downloading Maven and get it on your command line. You may also want to choose an IDE (Eclipse or Intellij are both good choices). For more information about what JADE is, visit Their main website. […]

Read More »

log4j2 + rsyslog for the client side of centralized logging

Introduction So right now, the absolute coolest setup is the ELK (Elasticsearch, Logstash, Kibana) stack, and as far as I can tell, that community is growing and doing very cool things. However, you may not feel like installing LogStash on all your servers, especially if they are constrained for memory or older. Luckily, rsyslog is […]

Read More »

The science of top-down debugging

I’ve found that the biggest difference between effective debugging and ineffective debugging is the process used to root out a problem. Inexperienced people too often will hit their head against a wall without even knowing how to take the next step for solving a problem. Their problem is not following an age old technique that […]

Read More »

The Bellman Equation

Back in college, I learned about a tool called the “Bellman Equation”. It’s very nice because it turns into a local calculation for each node, and you only need to know about your neighbors’ previous values. It’s parallelizable. (Do every node in parallel, sync, repeat, until convergence). The only gotcha for using a bellman equation […]

Read More »

Tour de Heuristics: Joint Equilibrium Search (JESP)

The final stop on this heuristics tour, and the last stop for our overview of Cooperative Decision Making is Joint Equilibrium Search. This technique starts with some pre-set horizon T policies for each agent, and then cycles through each agent so that it may tweak its behaviors to maximize the response with all other policies […]

Read More »

Tour de Heuristics: Memory-Bounded Dynamic Programming

Memory bounded dynamic programming is another technique offered in Cooperative Decision Making. This is the first sub-optimal heuristic that is brought up. It takes the same techniques as seen before with an exhaustive backup, but at each stage, only a specific number of trees remain at the end of these operations. Due to this, the […]

Read More »

Tour de Heuristics: Policy Iteration

Policy Iteration is the most available option for dealing with infinite horizon DEC-POMDP’s. In this space, it is sub-optimal. It can be, however, epsilon-optimal. Epsilon optimality means that based on the starting point and a decay factor, we can plan a controller out for enough steps that the expected discounted reward for any more steps […]

Read More »

Tour de Heuristics: MAA*

Multiagent A* is a heuristic that takes the commonly used A* algorithm and applies it to Dec-POMDP’s. Let’s investigate how it works. The Algorithm def estimated_state_value(belief, action): """ The cornerstone of the A* algorithm is to have an optimistic estimator. Because an MDP assumes more information, it will always have at least as much value […]

Read More »