Eli B1405 Boling

I've worked on software development tools most of my career. Started with a small Lisp company called Gold Hill Computers, and moved on to Borland, in its various incarnations. Took a hiatuses to work at a games company, and a massively parallel computing company (Ambric), and then moved back to the tools group, now at Embarcadero. And here I am.

Posted by on in Blogs
Minor Emacs Utility I use Emacs quite a bit.  It's very common for me to be looking large dumps of data that are tabular in nature.  Symbol table information, usually, but it could be lots of things.  Usually it's the output of one or another command line utility for dumping some file format.  In any case, it's also very common for me to get a few hundred lines down into some table, and be looking at an entry, and to forget which column is which.  And so I go back to the header, and look again, then back to the ent...

Posted by on in Blogs
Bad API Design So I almost got burned by a function.  Partly my fault, because I didn't read the online documentation on it.  I looked at the API in the header file, and it had very limited documentation, but mostly enough for me to figure out it.  I also happened to be looking at the implementation, and noticed that I was hanging onto a live wire. So the API looks like this, with the names changed to keep this general: char *RenderSomeStringConversion(const char *in, char *out, size_t *out_size); Now, the...
Tags: C_Builder

Posted by on in Blogs
Well, _that_ was painful: #1 The title of posts like this is intended to indicate events that were pretty painful, and where the fault was all mine. So, shortening up the damage chain, on IA-32, if you do this: FSTP [some location] ... FILD [some location] and the FPU stack was empty at the FSTP, you'll die on the FILD instruction.  The FSTP just sets some condition bits and fails silently.  So, in this case, the '...', of course, was really a long long distance.  Specifically, it was in either Move or FillChar in ...
Tags: Delphi

Posted by on in Blogs
Safari, Flash and _MEMORY_ This is a little bit of a dead horse beating, but it's still relevant, so what the heck, why not.  RAM is extremely important to me as a developer for the obvious reasons, so every once in a while, I look around at my processes, and see who's being an oinker.  I was a little surprised at the results. First of all, a reminder about my dev system:  Macbook Pro, running VMWare 3, which is constantly running Windows 7 Ultimate (32bit just now).  I keep a number of Mac apps up pretty much all the ...
Tags: OS X

Posted by on in Blogs
OS X nslookup Yesterday I finally switched from a Cisco add-on VPN to the built-in VPN support in Snow Leopard.  The built in stuff is much nicer.  Easy to use, performant.  I had, however, a little hitch along the way. I have a Windows VM running on the Mac on which I do all my dev builds.  My dev machine is a Macbook Pro. I run VMWare Fusion, in unity mode, and life is generally good; it's a very nice cross targeting solution.  The hitch was that when I switched VPNs, DNS no longer worked from the Window...
Tags: OS X

Posted by on in Blogs
Surrealism/Irony So, I'm sitting in the Denver airport, on my way to Massachusetts, on a longer layover.  I went to some crappy sports bar, and they had some very unpleasant food, and so I found a cantina upstairs that I thought might be able to wash away the sports bar.  Corn Poblano soup, and a reasonable local wheat beer, and I was feeling better.  Reading my book at the bar, as the soup arrives, and I pull the soup in, so I don't dribble, and the book goes in front, and I lift it up a bit, so I can see, and ...

Posted by on in Blogs
Mac Gripe:  the CD/DVD drive I love my Mac.  I hate the CD drive in my Mac.  I've hated all the CD drives in the Macs for a while.  What I can't stand about them is the lack of a physical manual eject capability.  Others have had this complaint.  I don't know why Apple did this thing, but they did it a while ago, and they continue with it.  It's the conversion of the Mac to a little CD/DVD ATM machine.  You put the thing in, and if it isn't quite the right thing, you really can't be sure you are going to get it back, and on...
Tags: OS X

Posted by on in Blogs
Dynamic Symbol Binding:  Origins and Effects Introduction Dynamic linking has been available on most operating systems for a long long time now.  It is interesting, however, to peer into the origins and resulting behavior of some aspects of symbol binding on various systems.  You might be surprised by the results. To focus this discussion, what I'm talking about here is basic support for linking to symbols in shared libraries.  These are DLLs on Windows, shared objects (.so) on Linux, and dynamic libraries (.dylib) on OS X.  There are ...

Posted by on in Blogs
Mac OS X shared library initialization I was part of the team that was passed through the Kylix threshing machine originally, so I decided to do a little research into shared library initialization and termination early on.  Some very difficult to debug things can happen to you if you get surprised by library load/unload sequencing on a platform. When we did the original linux work, we started out with the assumption that the loader worked the same as Windows with respect to initialization order.  We assumed dependencies were init...

Posted by on in Blogs
Mac OS X Exception Handling Purists and pragmatists will argue over the feature of converting hardware level exceptions into RTL exceptions.  This is the feature where you catch, for example, a memory access violation and keep running your application. Purists will say you should never do that, because you could wind up doing serious damage down the line to users' data, if you don't know what caused the bad pointer in the first place.  Pragmatists will observe that some very large percentage of these come from things like ...

Check out more tips and tricks in this development video: