Older blog entries for ahosey (starting at number 26)

barryp: Logarithms... it's starting to come back to me now. Maybe I'm not just stupid, maybe I'm just out of practice. I'm reading back thru schoen's diary now to try and limber my brain.

Using the integer coefficient vs. the float coefficient would be a decision of "fast fit" vs. "best fit". Integer multiplication would be a little faster but you'd waste a few more bytes in some circumstances. Space vs. time, the classic tradeoff in computerized problem solving. Of course that decision is a "micro-optimization" anyway - unless n is really freaking big - and micro-optimizations are mostly frowned upon these days. On the other hand Musashi said that the true tests of skill are "the small, fine works."

I've found that most of the programming one does as a sysadmin doesn't strain the "advanced" fields of programming theory and it doesnt't require any math at all. There's a lot of "glue" programming, which often requires one to be clever but not very deep. And in my case I do a lot of patches to free software, which makes me feel good but again these are very small hacks. There is one large piece of software done for the company in which I am applying increasingly sophisticated techniques. And it's working out well which makes me feel good about being able to use that knowledge, but I'd like to do that more often than this job really requires. I mean I could structure my solutions in ways that would require a lot of custom code but that's hardly good business. It's better in the long run to take established (free software) tools, shim them together with a little code where needed, and set it loose. That's why I love well structured modular softwares (like Apache) cause they readily lend themselves to that sort of approach.

Wow. Three top notch reponses to my little theorem. Props to barryp, Pseudonym, and especially schoen. In case anyone was wondering I wasn't trying to get you to do my homework. I haven't done homework in years... perhaps if I were doing homework my math wouldn't be so rusty.

I took a lot of math classes in college, some calculus, and statistics, and discrete math thru the computer science department. I did well in most of them, but when it comes to real world application my math skills seem so feeble. It's like I know enough math to want to prove my ideas but not enough math to actually get the job done.

For instance, how did you guys know log(256^n) was the way to get the maximum number of symbols in an encoding? In my first attempts at a proof I had a function maxlength(n) but I didn't know how to break that function into mathematical elements to reach a QED.

14 Nov 2000 (updated 14 Nov 2000 at 02:21 UTC) »

Assume 8-bit bytes and strings composed of 1 byte per character. For an unsigned integer stored in n bytes prove:

(a) 3n bytes will always provide enough space to hold the decimal string representation of the integer.

(b) 3 is the smallest coefficient to provide enough storage for all values of n.

I know this to be true but proving (a) is harder than I thought.

9 Nov 2000 (updated 9 Nov 2000 at 19:33 UTC) »
ajv: I totally agree with your ideas about the "ramp up" time for a free software contributor, and that good architectures reduce ramp up time and make contributing more enjoyable, which vitalizes the project. For example I was able to make my first modifications to sawfish in less than an hour from the first time I looked at the source code.

I have, tucked away, an unfinished essay on pluggable scriptable software, with about half of it devoted to the social (or survival) advantages of such software in the free software world. I don't claim credit for the seed of the idea, I was just trying to flesh out some things that I heard Jim Blandy mention one time.

Chris keeps bugging me to post up the essay even though it's not complete. Maybe I'll do that.

Then sej said:

1) all the external documentation and design documents were no substitute for the direct reality of inspecting the architecture in a debugger. They served as a map for the territory, but were not the territory by any stretch of imagination. A large dose of experimentation, reasoning, and inter-programmer dialogue was required to build up a more detailed understanding of how things actually worked.

This is true. To return to my sawfish example, it was extremely useful to me to have sawfish-client available to examine the data structures of the running window manager, and interact with the window manager in real time and see my results either on the screen or by examining the internals of sawfish using sawfish-client. It was the excellent design of sawfish, combined with the excellent debugger/interpreter, combined with the excellent API documentation, that made working on sawfish easy and fun.

Interpreted languages usually have an advantage over compiled languages here, or at least they do if the language provides some form of eval(). eval() makes available the entire scope of the language from the debugger instead of just limited calls to API functions. This allows richer interaction with the running program.

Back in, oh... let's say the 80s, a slutty pop star was at least recognized as a slutty pop star. They were millionaires, they were successful and popular, they were even admired by many, but they were acknowledged as a sex symbol with all the positive and negative connotations thereof.

But in today's world we have Brittany Spears and Christina Aguilera being touted as positive role models for young girls. What the fuck is going on here? Yeah, I know this has already been debated in many circles. What I find interesting/disturbing, the point I'm trying to make here, is that 15, maybe even 10 years ago, there wouldn't have been a debate, they would have been teenage sex symbols, period. Something has changed in our culture since then, and maybe not for the better.

There's something I want to know, vis a vis the whole GNOME/KDE debate: There's more than one free software kernel out there. Why aren't people bitching about that? I don't see anyone saying the FreeBSD guys should shut down and work on Linux. Or the Linux guys should shut down and work on FreeBSD. I bet there are people out there that think that, but my point is that I'm not seeing those people because the kernel project dichotomy is not blown out of proportion like the desktop seperation is. What gives with that?

We rolled out new web services, replacing one machine with three machines. I'm now convinced there are no web problems which can't be solved with mod_rewrite.

I've set up sawfish so a giant gong sounds when a new window is opened. You should hear it when I restart a session and 20 windows start up. I am amused. Chris is appalled.

Do you ever do that thing where you talking to someone about a problem or an idea, and as you bounce around the ideas your brain kind of switches gears and the solution starts to come out of your mouth and you're thinking as fast as you're talking and it feels like you're going too fast but it doesn't matter because you know that everything you're saying is exactly right anyway.

I find that exhilarating.

I could spit a lot of bile about sendmail right now, but I won't. I'll just say that even when sendmail tries to be secure, it does it badly.

17 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!