The Insider News

The Insider News is for breaking IT and Software development news. Post your news, your alerts and
your inside scoops. This is an IT news-only forum - all off-topic, non-news posts will be
removed. If you wish to ask a programming question please post it
here.

Get The Daily Insider direct to your mailbox every day. Subscribe
now!

Did you know you could traceroute over the TCP protocol? The regular traceroute usually uses either ICMP or UDP protocols. Unfortunately firewalls and routers often block the ICMP protocol completely or disallow the ICMP echo requests (ping requests), and/or block various UDP ports. However you'd rarely have firewalls and routers drop TCP protocol on port 80 because it's the web's port.

Build a JPEG decoder? Whatever for, when we have so many of them already? JPEG is something we all take for granted: most of the Web comprises pictures transmitted as JPEG files, and video files based on JPEG technology. As it turns out, the concepts that lie behind these images span nearly two hundred years of mathematics and computing theory, and going from the raw file to an image takes a bunch of interesting work.

A three-part (and growing) series of tutorials on building a DIY decoder.

These days I only use JPegs in printing, publishing, photograpy only at max quality no loss or min loss. Lossy compression was fun a decade ago. But nowadays it exists because of the widespread base. Relatively speaking LibTif by Sam Leffler is a piece of Engineering Marvel.

Despite the advantages offered by FPGAs and their rapid growth, use of FPGA technology is restricted to a narrow segment of hardware programmers. The larger community of software programmers has stayed away from this technology, largely because of the challenges experienced by beginners trying to learn and use FPGAs.

In many organizations, it's expected that any persistent data will be stored in relational databases that are managed by a central database management group. There are various reasons for such central control, usually centered around using IntegrationDatabases. Central data groups worry about keeping out malformed data, queries that can slow down important shared resources, and consistent data models across the enterprise. Worthy these aims may be, but one consequence of them is considerable ceremony about storing data.

Using a NoSQL database to avoid the DBAs when a relational database would be a better choice.

A prospective new college hire recently related an odd comment from his professor: systems programming is dead. I was nonplussed; what could the professor have meant? Systems is clearly very much alive. Interesting and important projects march under the banner of systems. But as I tried to construct a less emotional rebuttal, I realized I lacked a crisp definition of what systems programming is...

Any layer on which people build applications of increasing complexity is systems software?

A simple piece of software means that there is no interleaving. It doesn’t combine things. It has focus. Something is simple when it addresses: one role, one task, one concept, one dimension. Simple doesn’t mean there is only one of them. Its not about an interface with one operation or a class with one instance. It’s not about cardinality. By contrast, a complex system is braided or folded together. There are interleaving roles, tasks, concepts, or dimensions. Identifying a system as simple or complex is thus objective. If there are twists, its complex. If there is no interleaving, it’s simple.

There’s a good reason why Mozilla was able to get more than a dozen carriers to line up behind its browser-based phone operating system. First off, carriers love anything that threatens to lessen the power of Apple and Android. It’s why they always express hope and optimism for any new release of Windows or BlackBerry and have for years....

What was a total oddity a year ago, and little more than an experiment just 18 months ago is now starting to look like a real product. One that could be in the hands (or on the heads, rather) of consumers by the end of this year. A completely new kind of computing device; wearable, designed to reduce distraction, created to allow you to capture and communicate in a way that is supposed to feel completely natural to the wearer. It’s the anti-smartphone, explicitly fashioned to blow apart our notions of how we interact with technology.

What better way to start a Monday than with a hearty helping of Coffee(script)? The new version[^] adds "literate" mode, allowing you to write your scripts with MarkDown[^]. This could let you combine your documentation with your scripts, or maybe just write a little story to entertain your users. Or make some reference to Plain E^H^H^H^H^H^H^H.

To say that understanding polymorphism is critical to understanding how to effectively utilize an object-oriented language is a bit of an understatement. It’s not just a central concept, it’s the concept you need to understand in order to build anything of size and scope beyond the trivial. Yet, as important as it is I feel it is often quickly glossed over in most computer science curriculums. From my own experience, I took two courses that focused on OOP, undergraduate and graduate, but I don’t think I truly understood its importance until later.

When I was developing an RSS reader, users often asked me if I would make it sync via Dropbox (or WebDAV or iDisk or similar). For a while, years ago, before Dropbox existed, my reader did sync by writing files to iDisk. It didn’t work very well at all, and, looking back, I shouldn’t have shipped this feature. I made a mistake.

Syncing shared data in the cloud is never easy. Here are just a few of the possible pitfalls.