All Posts
I'm going to (slowly) migrate things over to this site, but the original posts are all still in Blogger. I ran the import to bring them over, but haven't spent the time to update the content to make sure that it appears correctly. So maybe check out the original blogger site for the time being.
- Guavate: tiny library bridging Guava and Java8
Java8 is great and adds some useful abstractions to the JDK that have found popularity in the Java community via the wonderful Guava commons library from Google. Group discussion indicates that there will be a Guava version soon that requires Java 8 and closes the gap between Guava and Java8.
Read More
- Some neat Spring4 and Spring Boot features
Here's a few slides on some of the Spring4 and Spring Boot features that I used on a recent project that are interesting. This is not really an introduction to Spring Boot -- but just highlighting a few features. This talk was
Read More
- Whirlwind tour of data science
I'm giving a talk to the local Data Science / Machine Learning meetup. The topic is a shallow tour of data science topics including tasks and methods. This is a new group and many of the attendees do not have a data science background but are interested. Therefore,
Read More
- Streaming standard deviation and replacing values
I'm working on a problem right now where I need to calculate the mean and standard deviation of a value in a streaming fashion. That is I receive a stream of events that generate data points and I need to calculate standard deviation without retaining all of the data points in memory. This has been covered ad nauseam in the literature -- I will
Read More
- Using ELK (elasticsearch + logstash + kibana) to aggregate cassandra and spark logs
On one of my current projects we are using Cassandra and Spark Streaming to do some somewhat-close-to-real time analytics. The good folks at Datastax have built a commercial packaging (Datastax Enterprise, aka DSE) of Cassandra and Spark that allow you to get this stack up and running with relatively few headaches.
Read More
- Bushwhacker to help team members debug unit test failures
Right now I'm working on a project with a few people who have never worked in Java before. There have been times where they'll experience some problem that they can't easily figure out. They send me the stack trace and instantly I know what the problem is. I wanted a simple way to automate this.
Read More
- Single record UPSERT in MSSQL 2008+
I guess I just don't use SQL's MERGE statement enough to remember its syntax off the top of my head. When I look at the Microsoft documentation for it, I can't find just a simple example to do a single record UPSERT. When I google, I don't get any brief blog posts that show it. So
Read More
- Spring Test Context Caching + AspectJ @Transactional + Ehcache pain
Are you using AspectJ @Transactionals and Spring? Do you have multiple SessionFactory's maybe one for an embedded database for unit testing and one for the real database for integration testing? Are you getting one of these exceptions?
Read More
- Java final fields on x86 a no-op?
I have always enjoyed digging in to the details of multi-threaded programming, and always enjoy that despite reading for years about CPU memory consistency models, wait-free and lock-free algorithms, the java memory model, java concurrency in practice, etc. etc. -- I still create multi-threaded programming bugs. It's always a wonderfully humbling experience that reminds me how complicated of a problem this is.
Read More
- Database intro for developers
Most of my academic background focused on low level database research. I wrote a dynamic programming based join-order optimizer for the open-source SQLite database as project in school.
Read More
- Introduction to multi-threaded java programming
I gave a talk for our group about multi-threaded java programming for some of our junior members. I lifted a bulk of the slides from the interwebz, but
Read More
- Java implementation of Optimal String Alignment
For a while, I've used the Apache Commons lang StringUtils implementation of Levenshtein distance. It implements a few well known tricks to use less memory by only hanging on to two arrays instead of allocating a huge n x m table for the memoisation table. It also
Read More
- Some Java Puzzlers in a powerpoint
Every week our team gets together on friday afternoons and have a presentation. The presenter rotates each week, and the topic can be programming language related, cool new libraries, theoretical -- or whatever related to our work.
Read More
- Why and how we use Spring
We brought on some new team members recently and I couldn't find a good intro to Spring that went through the motivation of why one might use Spring. Thus, I created this presentation. Don't know if anyone else will find it valuable:
Read More
- The Manufacturing of Software
Among non-technologists, I think there is a common belief -- a wishful thought-- that building software is like any manufacturing process. You just need to design the process, and then get the widgets on the assembly line to execute the process-- and viola! If a widget quits, you just buy a new widget at
Read More
- Bye bye Eclipse -- my disorganized, irresponsible little brother
I have been an Eclipse fan-boy for the last 7 years. I have participated on a number of open source Eclipse plugin projects. I have evangelized it to others. I also have a personal connection to it as my father was one of the project principles when it was still an IBM project.
Read More
- Hibernate4 SessionFactoryBuilder gotcha
Just upgraded one of our projects to Spring 3.1.1 and Hibernate 4.1.1 today and ran into a small problem that ate up some time.
Symptom:
It appeared as if all of my hibernate <property>'s in hibernate.cfg.xml were suddenly not being picked up -- they were just silently being ignored.
Read More
- Multi-tier application + database deadlock or why databases aren't queues (part1)
Databases aren't queues.
Read More
And despite the ubiquitous presence of queuing technology out there (ActiveMQ, MSMQ, MSSQL Service Broker, Oracle Advanced Queuing) there are plenty of times when we ask our relational brethren to pretend to be queues. This is the story of one such folly, and along the way, we'll delve into some interesting sub-plots of deadlocks,
- MSSQL non-clustered indexes INCLUDE feature explained
Today I received a question from someone about the nature of the INCLUDE feature when creating a non-clustered (secondary) index on a table. My response was a bit long, and I haven't posted in a while -- ergo blogpost! Here's the question:
Read More
- Delegates or interfaces? Functional and OO Dualism
I have a mixed background: doing C#/.NET for ~4 years then switching to Java (switched jobs). I have been in the Java enterprise ecosystem for the last 4 years. I do mostly Java, but enjoy doing a little C# every now and again. C# is really a nice language. Shame its in such a horrible Microsoft-centric ecosystem.
Read More
- I <3 Robert C. Martin
Im reading Clean Code by Uncle Bob. I have read sections of this book before when it came out and actually had the pleasure of watching Robert Martin present it at SDWest in 2008. I've decided to read the whole thing. Read More
- Maven -_-
I have spent the last few days mucking about with POM files. Anyone that has done this understands where I'm going with this. So I'll just leave these two quotes that fit nicely:
Read More
- OO Reading List
One of my favorite parts of Pragmatic Thinking is the description of the Dreyfuss model of skills acquisition. This describes the phenomena of how people are frequently distributed along some non-trivial "skill" (like programming), and defines metrics about what differentiates each skill level.
Read More
- Spring 2011 Reading List
I gave last Spring's reading list (which was more what I had read in the previous year) in this post. This spring, I am going to write what I am currently reading or hope to finish this Spring.
- Building Derby with Eclipse gotcha
This is partially a reference for myself and for anyone else trying to build Derby 10 from source using Eclipse. My thesis project involves modifying the on-disk page layout for a database (long story for another post). I am currently using Eclipse for my IDE. I just wanted to document a quick pain point in case anyone else is Googling for the answer:
Read More
- Defender Methods: Neal Gafter is *not* painting a bike shed
I follow the lambda-dev mailing list, and there is a discussion going on regarding defender methods and automatic disambiguation. Defender methods are a language feature that allows some interesting things:
Read More
- Notes on the Synthesis of Form
I just got in Notes on the Synthesis of Form by Christopher Alexander. This is an academic, theoretical treatise on design. It deals with "what is design", etc. It was written in 1962, but the ideas are obviously still relevant today--even though some of the motivating examples seem a little anachronistic.
Read More
- Deadlock two ways (Microsoft SQL Server)
Think of "Duck two-ways" or some other delicious meal. This is as tasty ;-)
If you have done any development with Microsoft SQL Server with even a moderate amount of concurrent processing, then you have probably witnessed the dreaded:Transaction (Process ID 42) was deadlocked on lock resources with another process and has been chosen as the deadlock victim
Read More
- Some JIRA / GreenHopper Love
This will be another brief, non-technical, un-informative post to rant..but in a positive way! I actually will post something informative and useful one day ;-)
Read More
A team member and I have been using JIRA and recently started using the GreenHopper plug-in. The plug-in advertises that it is "agile" focused.
- Naming Matters
This title is kind of a two-for: "Naming matters" as in matters pertaining to naming and naming matters as gee golly-- names really do make a difference! So hurray for homonyms and making a neat opening to what is likely to be a boring post :-)
Read More
- Save the commentary, please
I am working on a thesis right now on optimizing data structures and algorithms in database systems. I am doing my implementation for the first part in MySql, and will be augmenting one of the storage engines (maybe InnoDB, maybe something else) to test out some of the ideas in my paper.
Read More
- Wow...erm...your database is leaking
It's no secret that some of the traits that go into making good software developers are: problem solving, analytical, and abstraction skills. As we write code and design a software system, we exercise all of these skills -- in particular: abstraction. Abstractions allow us to build larger and more complex systems without needing bigger and bigger brains.
Read More
- Spring Reading List
Wow...I really haven't posted regularly, have I? I'd like to catalog some things for my own reference, and to come back in years and chuckle at my musings and naiveté. This leads naturally into a topic: knowledge and learning.
Read More
I am an avid reader. I don't really enjoy much fiction, but I love computer science and technology books.
- Welcome! Do you prefer a bold or mild brew?
Hello,
Read More
My name is Steve. I am currently an enterpise Java developer in a high volume transaction processing oriented domain. We do a lot of 'batch' workloads, and so my day is filled with lots of interesting challenges.
- Building Derby with Eclipse gotcha
- Maven -_-