rfunk: (Perl!)
posted by [personal profile] rfunk at 05:39pm on 08/07/2008 under ,
Today there was a security alert released covering almost all DNS server software, and in response a bunch of them were updated to improve the way they randomize one aspect of the protocol.

But I noticed that there was as yet no word on one DNS server program I use on my networks, dnsmasq. So I checked a bit, and discovered that the author had just released a release-candidate before going on a two-week vacation. I grabbed the latest code, and did a search for "random" in the supporting documentation. The result of that search?
Upgraded random ID generation - patch from Rob Funk.

Oh yeah! I'd forgotten about sending in a patch way back when. I checked my own machine, and found that I still have a copy of that original patch in a backup folder, dated 2002. And when I looked deeper in the current code, I found the part I'd sent in, still unchanged. (Hey, those comments sound like something I'd write!)

Of course, that didn't answer my original question; my code improved the way the program gets random numbers, but other parts of the program determine how those numbers are used. And the ultimate answer seems to be that it relies on the underlying operating system for the randomness I was looking for.....

Update: I think my random code may finally need to be updated, as part of the mitigation for this whole problem. Needs more bits.
Mood:: 'surprised' surprised
rfunk: (about time!)
posted by [personal profile] rfunk at 01:11pm on 24/04/2008 under ,
A decade after finishing college, where I took most of a computer science track before finishing with an electrical & computer engineering degree, I'm now picking up some books on topics I feel like didn't I learn enough about back then, or topics I learned but feel like I should review in a new light. I figure having a decade of experience (and O'Reilly books) should give me a perspective I didn't have back in school. I'm trying to pick the classic or canonical books on the topics.

So far I've ordered these, via Abe Books:
Structure and Interpretation of Computer Programs (Abelson & Sussman)
Compilers: Principles, Techniques, and Tools (Aho, Sethi, & Ullman)
Database Management Systems (Ramakrishnan & Gehrke)

Of course, I'm also feeling like I should catch up with the kids who went to school after the age of Java began, so Learning Java is in the pile too. That's in addition to other books that are more directly relevant to what I do every day.

Not that I'll have time to really study all this, especially now that spring is here and I want to go out and play, but it can't hurt to occasionally read bits here and there.
Mood:: 'geeky' geeky
rfunk: (Default)
Salon is running a story wherein author David Brin complains that the computer world's deprecation and collective purging of the BASIC programming language (which of course he grew up with) is somehow hurtful to the technological development of today's kids, including his own. He seems to think that BASIC is a low-level programming language that helps kids understand how the machine works. Of course, the only way BASIC is low-level is that it encourages use of goto, like machine language and unlike modern high-level languages. Otherwise it is designed to insulate the programmer from the machine.

It seems to me that Brin is stuck thinking that the way he learned things is the only way to learn them, and he doesn't seem interested in modern options. I grew up on BASIC too, but I got away from it as soon as practical, and I wouldn't recommend that as a way for anyone to learn programming today.

If Brin wants his kid to learn something close to the machine (his major professed goal), he should choose C. If he wants his kid to learn a language that lets him ignore the machine and do higher-level algorithm work (part of the original goal of BASIC), he should choose Python or Ruby. Responses at Salon also mentioned programming TI-82 calculators, Lego Mindstorms, and other options that modern kids have and were unavailable to past generations.

On top of all that, today's technically-interested kids can put Linux or BSD on their computers and not only choose from a wide selection of programming languages to use (rather than the BASIC interpreter built into the computer and whatever else their parents could afford, as the previous generation did), but also delve as deep as they want into how all the pieces of the software and operating system work.

In one sense, however, Brin has a point. He mentions that his son's math textbook includes BASIC programs to demonstrate the algorithms. Since the computer world has rejected BASIC (a message the textbook writers seem to have missed), there is no single universally-accepted replacement. But that's mostly because of Microsoft - unlike every other common operating system today, Windows doesn't come with any development tools since they deprecated QBasic starting with Windows 95. On the other hand, MacOS, Linux, and BSD usually have Perl, Python, and others either built in or readily available for download.

Perl may be the closest we have today to a universally-available programming language -- it's an easy download and install on Windows, is generally built-in everywhere else, and is quite mature and popular. Many complain about its syntax, though most of that weirdness is obsolete and easily avoided. Python would be second (and a better first language), but it too has its quirks (well, one major quirk plus an object-orientation annoyance). Maybe Ruby is the way to go these days.
Mood:: 'geeky' geeky
rfunk: (Default)
Lately I've been noticing a lot of cases where the successor to a given instance of web technology (specifically within the so-called "LAMP" stack of Linux, Apache, MySQL, and PHP/Perl/Python) isn't necessarily the next version of that instance, but rather something different. "Say what?" Let me explain with the specifics:

Web Server: Apache 1.3 -> LightTPD )
Programming Language: PHP4/Perl5 -> Ruby (On Rails) )
Database Server: MySQL4 -> PostgreSQL ? )
Operating System: Linux 2.4 -> FreeBSD ? Not much. )
Mood:: 'geeky' geeky
rfunk: (Default)
posted by [personal profile] rfunk at 11:01am on 07/12/2005 under , , , ,
A year and a half after I started a revolution, I can finally say that the revolution is complete.

Of course, I'm mostly just an instigator. Someone in Germany did most of the work.
Mood:: 'pleased' pleased
Music:: Sugar - "After All The Roads Have Led To Nowhere"
rfunk: (Default)
posted by [personal profile] rfunk at 10:30pm on 02/02/2005 under , , , , , , ,
After an exhausting day of multi-website programming debugging, I just have one question.

Whose bright idea was it to regularly use FIVE totally different but mutually interacting programming languages to create any given modern web page?

2. CSS (Cascading Stylesheets)
3. JavaScript (aka ECMAScript)
4. PHP (or Perl)
5. SQL (Structured Query Language)

And of course each one is implemented imperfectly or inconsistently, so properly-written code doesn't actually run properly everywhere it's supposed to.
Mood:: 'tired' tired
rfunk: (cartoon)
posted by [personal profile] rfunk at 11:30pm on 07/12/2004 under , , , , , , , , ,
My apologies to the vast majority out there who don't care about any of this....

PHP is annoying )

Soekris + m0n0wall = nice small firewall )

Geek Showdown: Debian vs Cartoon Nudity )
Mood:: 'geeky' geeky
rfunk: (Default)
posted by [personal profile] rfunk at 08:00pm on 01/09/2004 under , ,
Today was the first day of my new job at WRL Advertising, a small local company. Even though I've lived in Canton for three years and had two previous jobs in that time, this is my first job located in Canton rather than in Columbus.

What, an advertising company? Yeah, well, besides the traditional stuff they also do web work, creating web pages for clients. And some of those web pages are pretty in-depth, such as including online purchasing.

They originally wanted someone just to help with their PHP/MySQL programming (I'm now one of their two programmers, though I'm discovering a healthy distaste for PHP compared to Perl), but they also really liked my networking/sysadmin experience. The plan is to get some backlogged web sites done, then work on improving their network infrastructure, then start doing network stuff for clients who might otherwise take that business to consulting companies who can also do their web sites. So I'd be helping to avoid losing some web business.

Since it's a small company (though well-established) and I'm now the one there with the most networking and Unix experience, I'll have the opportunity to lead the way in where their internet department goes technically. Should be fun, once we get out from under the immediately pressing projects. One project will be to move their existing servers off Windows; it's more of a Mac shop than anything (with a few Windows people and two of us Linux guys doing the programming), so luckily that'll be more of a technical issue than a human one.

The worst part? They want me there at 8am. I'm used to going to bed at 2am and sleeping for eight hours. Meanwhile, some nights [livejournal.com profile] nontacitare doesn't get home until after nine. I guess I'll see her again at the next break she has.
Mood:: 'tired' tired
rfunk: (Default)
posted by [personal profile] rfunk at 01:30am on 27/05/2004 under , , , ,
This week I've attempted to be a bit of a minor revolutionary, but things have stalled a bit....

Read more... )
Mood:: 'frustrated' frustrated
Music:: Aimee Allen - Revolution


13 14