Better error messages from Gulp using gulp-util

Gulp is a streaming build system that can help automate and enhance your workflow. For example, at Base22, in one of our composite tasks, we use Gulp to create a directory structure, compile Less into standard CSS, copy static dependencies, minify JavaScript, compress images, run a simple HTTP server, and then watch for subsequent changes to files while we’re working. Gulp is easy to install, easy to learn, easy to configure, and I love it. But when it happens to bomb on a problem, it doesn’t always log information that you can actually make sense of. Luckily, there’s a Gulp plugin that can help you coax more troubleshooting info out of these errors.

The Awesome Power of the Link in Linked Data

Hyperlinks are dumb. Literally dumb. They link one document to another – one little piece of text to another, but they don’t know how. They don’t know why. They don’t know diddly squat. The only real sense that search engines can make of their incoherent connections is that one page is more popular than another, probably, maybe. They’re dumb, first of all, because while they can relate two pieces of media on the Web, they don’t describe the nature of that relationship. At least – not in any way that computers can understand, which means therefore that we humans have to sort through the mess and – aint nobody got time for that. Second, they’re dumb because the only thing they know how to connect is media. They can link a page to a page or a page to a file, but they can’t link any real-world thing to any other real-world thing. They tell us all about the structure of websites, sure, but they don’t tell us anything meaningful about the real world. The link in Linked Data, however, changes all of that.

Blog post wish list

I wanted to start a page for managing the never-ending list of topics I wish I had the time to study and write about – things I might actually tackle someday. So, here it is (for starters anyway).

Candidate Topics

What about you? Is there something on the list you’d vote for? Something not on the list that you think I should add? What’s piqued your interest lately that you haven’t yet found the time to get your head around?

Leave your thoughts in a comment on this page. I’ll edit and prioritize the list according to feedback.

I think most people just make the mistake that it should be simple to design simple things. In reality, the effort required to design something is inversely proportional to the simplicity of the result.

Roy T. Fielding

Google launches Polymer 1.0, lets developers bring app-like experiences to the desktop and mobile Web | VentureBeat | Dev | by Emil Protalinski

At its I/O 2015 developer conference today, Google launched Polymer 1.0. The Web app toolkit is designed to help developers bring high-quality app-like experiences to the browser, across both desktop and mobile.

Source: Google launches Polymer 1.0, lets developers bring app-like experiences to the desktop and mobile Web | VentureBeat | Dev | by Emil Protalinski

Identifying large objects consuming memory in the Java heap

Recently, we experienced some excessive memory consumption that was leading our servers into an out-of-memory (OOM) condition. To troubleshoot the issue, we needed a way to identify any large objects that were filling up the heap. As it turns out, there’s a JVM argument for this.

Generic JVM argument: -Xdump:stack:events=allocation,filter

If you set this option, whenever an allocation request is made for an object greater than or equal to the given size, the Java stack trace corresponding to the thread requesting the allocation is printed into the standard error log. From this stack trace, you can easily see which actual Java class is eating up all your memory. For example, the following setting will print the stack information for all allocations over 10 megabytes to the native_stderr.log:


You can also view an allocation within a certain range of values. The following, for example, will print the stack information for all allocations between 2m and 4m to the native_stderr.log


You can read more about this in the following IBM technote:

Identifying the Java stack of a thread making an allocation request larger than a certain size

Sometimes, UML doesn’t suck

I’ve had a love/hate relationship with UML. For most of my career, I think there may have been more hate than love; frustration, at least. Usually, I get frustrated when trying to use some kind of tool to draw a diagram. If the tool is too automated, I never get what I really want out of it. If the tool has too little automation, I find myself having to refer to a reference book (I forget if it’s an open arrow, closed arrow, dotted line, whatever).

But more and more, recently, I’ve been learning that UML can be a great way to troubleshoot and analyze code if you just forget all the rules and whip that shit out with good old fashioned pen and paper. Maybe this is not an effective tool for communication, but it can be an effective tool for thinking.


I find that when I’m just writing UML just for myself, it helps me think and keep track of where I’m at in the code (especially complex code or spaghetti code).

Seven ways to get relationships right

Recently, Mike Minardi, our CEO at Base22 sent an email to the staff providing tips on how to build enduring, long term, and trusting relationships. I wanted to share his list with the rest of the world because I thought it was pretty good one – the kind that’s worth reviewing from time to time. Whether it’s a personal or professional relationship doesn’t matter; his recommendations work for every kind.


Enabling SEO Friendly URLs in WebSphere Portal

I always like the products of Michele Buccarello’s studies on IBM Digital Experience software. You may recall previously that I wrote about his Step by step guide to create a custom theme in WebSphere Portal 8.5. Whether or not you approach a solution exactly as he prescribes, you can always learn something useful from his work. When it comes to friendly URLs in WebSphere Portal, things are definitely getting better, but they’ve always been a source of contention. This latest publication from Michele has some informative gems on the subject, so check it out.

Crunch! – a LESS editor and compiler that makes it easy

Less is a CSS pre-processor. It extends the CSS language by adding features that allow variables, mixins, functions and many other techniques that make your CSS more maintainable, themable and extendable. Less runs inside Node, in the browser and inside Rhino. There are also many 3rd party tools that allow you to compile your files and watch for changes.

One such tool is Crunch! It’s an extremely simple editor and compiler that can optionally minify the CSS output it generates. For a no-nonsense, get-the-job-done-quick solution, Crunch! can be a great addition to your toolbox. Check it out.