I think effectively banning users by blocking IP ranges is going to become very difficult once IPv6 is rolled out.
Tag Archives: Tech
NT Stands for…
Just saw this interesting snippet:
During a trip to Microsoft’s Redmond campus this week, I had the opportunity to meet with Mark Lucovsky, one of the original architects of Windows NT. We had a long discussion about NT’s development and evolution; one of the more fascinating tidbits he revealed was that NT doesn’t, in fact, stand for New Technology, as documented in books such as “Showstoppers” and “Inside Windows NT” (Microsoft Press, 1992). Instead, the name comes from the earliest days of the product’s development, when Microsoft designed NT to use the Intel i860, a RISC processor. In those days, Intel’s chip was behind schedule, so Microsoft had to use an i860 emulator called the N10. NT was so named because it worked on the “N-Ten.”
Common HTTP Implementation Problems
My effort to integrate Amazon-like features into this website: If you enjoyed the excellent dialogue between Mike and I, then you may be interested in this excellent set of best practices concerning HTTP implementation, as many of the same issues are brought up. It’s really a great read if you’re into that sort of thing. Hat tip: Zeldman.
Lazy Night
Interesting day, woke up early (for me) to head to Fry’s and pick up some computer parts, then headed straight to HPUG. Once I got to HAL-PC by luck Cheryl (leader of the Web-Tech SIG) was giving away a 1.4GHz Athlon box and I nabbed that; there’s something wrong but I suspect it’s just the power supply. It has a really nice motherboard with RAID too so this will be perfect for my Linux file-server box.
Later tonight I took Joe his new Athlon XP box I built for him, and it’s running really great. When the sound card comes in he’s going to have a very nice setup. It’s surprisingly fast and it reminded me that I really need to upgrade my processor on my desktop, more so now that I’m doing .NET development stuff on it. (More on that later.)
Tonight after some testing I finally upgraded the server to PHP 4.3 and MySQL 4.0.10, and things are running beautifully.
What I’ve been avoiding writing about (and thinking about) is the part of today that wasn’t technology related. Helsa had to be taken to the Vet Hospital because she started throwing up several times and also apparently sometime between last night and this morning her skin got this yellow tint. The doctor said that she isn’t in any pain, but because she lost weight so fast her liver is probably overloaded with fat. They don’t know why she stopped eating in the first place, and we have no clue. They did blood tests, an ultrasound, and x-rays, and hopefully we’ll have some better data to know what’s going on. The doctor was very optimistic, so I’m feeling better about things, but it was still painful to se Helsa like that. They’re going to get some fluids and food in her through IV so that should help as far as the liver is concerned. It sounds like if they can get her body some nutrients so it stops trying to process the fat, that will help the liver. The only problem is that “fatty liver” is generally symptomatic of something else, and we haven’t determined the deeper cause.
Benefits of Caching
All around blogspace, blogrolls are down as it seems rpc.blogrolling.com isn’t responding to requests, even though the main site is still working. All I had to do was increase the $cacheminutes
variable in my script to a high number and now it’s returning the cache from the last time it was up. I need to make it so it does that automatically, but that’s a task for when I have more juice left in my laptop.
Strange Mozilla Bugs
Well before I was delivering application/xhtml+xml
to all Gecko-based browsers, but there seems to be a bizarre problem with Mozilla on this page. I had been doing my Gecko testing in Phoenix, which has no problems at all, and is now the only browser receiving the proper content-type for XHTML 1.1. Mozilla 1.0.1, 1.2, and 1.3a all seriously mess things up. First it shows the hostile XML error when it loads the page, which I brought on myself by putting it into super-strict mode, but the problem is there are no errors. I’ve triple-checked the page, and everything validates. It reports the error at a different place every reload, and it points to a random line from inside the blogroll, which is just basic XHTML. Then completely randomly it will show the page, but then stop displaying the content div after the “M” in the third paragraph from the last post, but then it shows the menu, which is after that in the code. When I change the content-type to be sent as text/html
it displays every time, but still stops at the same place. Wait, as I’ve been writing this it looks like it’s working again in Mozilla, but only with the old content-type. Sigh. Hat tip: Mike Little.
Semantically Correct Blogroll
In tweaking the structure of things here in my quest for perhaps the perfect(ly structured) weblog I came to the problem of the blogroll, which is obviously a list but there is no obvious way to format it in list format (I know that’s the XHTML2 module documentation but it’s well-written and applicable). What follows is an explanation of how to create a semantically correct blogroll. I am a paid subscriber to the service, so there may be options available to me that aren’t available to everyone, or you may just need to do things a little differently to get the same result.
- First you can’t have anything in the first prepended or appended to updated links, because as we will see in a moment these are actually put outside the link "goodies" we’re going to play with later. So leave that blank. You can order your links however you’d like, I used to have them alphabetical but now that I’ve lost the visual indication of recently updated ones I’ve ordered them using the "Recent" option. (Should I be using an ordered list because of this? I haven’t decided yet)
- Set there to be no container, we’re going to have to make our own container in a minute.
- Originally I had thought that the opening and closing list item tags (
<li>
) could be put in the link "goodies" section, but it doesn’t work like expected, so for right now use the contributer only "Optional Linebreaks" option and put</li>
in the field. - For global targets I set it to "NOTARGET" but you may or may not need/want to depending on your personal philosophy on this issue.
- In the "Link Goodies" section prepend
<li>
to the link. - You’re done! Almost. Check out what we have so far.
We’re not quite done yet, because we don’t actually have a list yet, all we have is a set of list items with no enclosure. This will work with lazy UAs, but it’s not correct. To enclose it I’m going use a modified version of the PHP method given on the site for including the blogroll, but if you don’t feel like you need the extra feature I’m going to lay out, you can just wrap the output from the stock script above in a ordered or unordered list tag.
Mike Little just dropped his blogroll in favor of his own link manager. He may be biased, but the issue he brought up of the blogrolling server provoked some thought. In terms of features, there’s no reason why I shouldn’t be using Mike’s script, but what really keeps me coming back to blogrolling is the community features, which aren’t easily duplicated without (you guessed it) a large community. So with that in mind, I began to think of ways I could cache things on my end, thereby making things easier on the blogrolling server and faster on my end. Two benefits that come to mind immediately is that it will eliminate an unnecessary request on the client-side (I’m using the javascript version currently.) and that the blogroll can be gzipped with the rest of my page for clients that support it. Here is the code I’m currently using. The code can either be embedded directly or included from another file. It caches using the unique blogroll id, so multiple blogrolls should not be a problem.
Also please don’t think that formatting your blogroll as a proper list entails having it look boring, the power of CSS allows you to customize the look of your list like never before, and though my blogroll isn’t styled (yet) the button-looking menus on your right are actually unordered lists. In fact, you will have more control over the appearance now that your blogroll is formatted as a list than if it was just a paragraph seperated by line breaks. If you have any questions about this leave a comment and I’ll be happy to help out. Of course Jason could add a list option tomorrow and make everything but the cache redundant. C’est la vie!
Mimes Don’t Speak
If you are browsing with Mozilla or its progeny, you are now receiving the entire site sans the photolog as application/xhtml+xml
, rather than the harmful text/html
. Those of us on less-capable browsers are still doing things the old-fashioned way.
Abbreviations Are Back
I think I may have just found a way to get the <abbr>
tag to work right under Internet Explorer for Windows. Unfortunately if this works I’ll have to deal with abbreviations now in my acronym code.
Website Launch: Crystal Awards
Finally! As of about five minutes ago the AMA Crystal Awards site is now live and open to the public. Check it out and let me know what you think. This is actually the second iteration of the design, the first was entirely done in CSS and the barest XHTML and it worked quite well cross-browser but it was decided that we needed more uniformity across the print and web pieces and so this is what I came up with.
If you’re interested in seeing more of Miss Richfield 1981, he has a very informative website where you can find out all about him. I’ve heard rumors that he might be flown down for this year’s awards as well. We’ll see . . .
Bizarre Content-Type Problems
I’ve been having some really weird problems with my mime types lately, which has put a hamper on some of the RSS and standards compliance stuff I want to do here. Every document generated by PHP was being sent with a Content-Type: text/html; encoding: iso-8859-1;
regardless of whatever was being specified with header in the code. I’m still not entirely clear on what fixed it, but I believe it had something to do with no default content type being specified in the php.ini file, but a default encoding specified. This confused things somewhere and it’s all resolved now. There is the default content type of text/html
which works for 99% of stuff, and the overrides now work for the rest. Now I can rest easy.
Updated autop
Most of the scripts I offer on this site are things I’ve written myself, for myself. As part of this living site they are constantly updated and tweaked, yet sometimes I don’t update the scripts section with what’s running live here, usually because I tell myself that the code is so ugly that no one would ever want to use it. Well . . . it works. I’ve decided to put the updated autop code up for all to use. Impetus for the change came almost two months ago from Phil Ringnalda, though my implementation is pretty different from the one he suggested in his post.
Basically what the update does is make the paragraph code ‘smarter’ to deal with lines that end with block-level tags, therefore not creating extra spaces and invalidating your HTML. Try it out! I’ve left the simpler version there for people (like me in some applications) that don’t need the extra code at all.
Sometimes
Sometimes when reading what should be a very dry article you see an unintentional typo or some similar snafu that makes you spurt Dr. Pepper. Sometimes I wish my keyboard had the equivalent of a sneeze guard. From Tuning MySQL Server 4.0 Query Cache:
You may increase or degrease query_cache_size to find the value, which provides best performance for you.
So am I going to need one of these if I want my database to be tweaked to perfection? All joking aside, the query cache in the 4.0x series is, for practical web applications, one of the best improvements thus far. Though it annoyed me back in the 4.02 days when they changed the syntax for the configuration options. Why? No good reason. They’re on 4.09 now and things couldn’t be smoother though. I know of several major sites that run MySQL 4 as their main backend.
Out Damned Spot
There seems to be some sort of Microsoft SQL worm is making things darn slow or outright inaccessible. Of course the patch for this vulnerability was released months ago. This is really cramping my style though; I’m trying to do some web development work, but I guess I’ll have to wait it out.
First Letters
I’ve been noticing now with the fancy caps watermark that most of my posts begin with the letter I, and so I wondered how many of my posts were like this, so I put together a little query like so:
mysql> SELECT DISTINCT LEFT(post_content, 1) AS letter, COUNT(*) as count FROM b2posts GROUP BY letter ORDER BY count DESC;
+--------+-------+
| letter | count |
+--------+-------+
| < | 373 |
| I | 10 |
| T | 2 |
| A | 2 |
| W | 2 |
| C | 1 |
| S | 1 |
| M | 1 |
| O | 1 |
| Y | 1 |
+--------+-------+
10 rows in set (0.00 sec)
What does this tell me? Pretty much nothing except that before I came up with the autop function I started each post with a tag instead of text. Maybe it’s time to go back and clean up some old content.
Winamp
Speaking of things that haven’t been updated in a while, what ever happened to Winamp?
Fancy Caps Thingy
I’m not sure how else to describe it, but if you’re browsing this with a modern browser you should be seeing the first letter of the paragraph of a post in a large serif behind the text. This is something I’ve been thinking about doing for a while, but never got around to it. CSS is a beautiful thing. It can think of a few tweaks for it, but basically the hard part is over. I’m still debating over what font to use behind the text, but I have all of the letter images (which are PNG by the way) generated through a neat PHP script so changing the font or color is a trivial issue.
Let me know what you think! Font suggestions? Too dark? Too big? Oh, and thanks to Rebecca for helping me out with the initial letters. She’s a life-saver.
Powerbook Revisited
Although I touched on the subject yesterday ever so briefly, I really can’t let another minute pass without talking about the new Powerbooks. Never have I seen so much fawning in the blog world about a single product, and I challenge anyone to find a comparable product release in the past year.
That said, I’m completely entranced. The ads are top-notch; the specs are flawless; the screen looks gorgeous; the operating system is everything I’ve ever wanted. I’m so deep in the reality-distortion field I don’t even remember what it was like on the outside anymore. I want to iSync my T68 and iPod and publish my iCal while listening to iTunes and I can’t imagine any other way I’d want it. Bluetooth! 802.11g!
A note on the screen, until relatively recently my laptop had the largest screen of any laptop, ever. Then toshiba released one the same size, and even with higher resolution. (I’ve had a similar Toshiba in the past though, and it was really unpleasant to use though.) I wasn’t phased, but now this comes along. Not only is it thinner and lighter, it has a larger screen and the OS is based on one I have grown to love deeply, despite the lack of any Windows-equivalent GUI. Now I just need to think of a way to scrounge up $3300 fast, before something else comes out.
Not There Yet
My initial glee over getting my laptop back may have been premature, as it seems now that it doesn’t charge when it’s turned on. That’s right, it doesn’t charge the batteries when it’s turned on. And one battery doesn’t seem to charge at all. You think this would have been something they would have noticed before they sent it back.
To Good To Be True?
I love how every link on this site leads back to itself. I just got something identical in the mail from PalmGear, that linked to that page. I’m skeptical, especially when the source shows the whole thing was done with Word.
There is a site that gives away free screen protectors, but they charge unusually high shipping rates. There’s no such thing as a free lunch.