Tag: This website
-
John Resig - HTML 5 Parsing ~:
What's interesting about this particular implementation is that it's actually an automated conversion of Henri's Java HTML 5 parser to C++. This conversion happens automatically and changes will be pushed upstream to the Mozilla codebase.
Normally I would balk at the mention of a wholesale, programmatic, conversion of a Java codebase over to C++ but the results have been very surprising: A 3% boost in pageload performance.
When I finally get my new Django-based site running I'll switch my markup over to HTML5 
¶ (0)
Tags: [Django, HTML, Mozilla, This website]
Just noticed at Earl's site ~ he uses a tilde to represent "via" links. I like it.
Notes: 1. He only puts it at the end of a paragraph. Not sure whether I'd do the same. 2. It looks ugly with underlined links. I should create a via link style that's not underlined.
-
I dunno if I have a recent version of my blogging bookmarklet on my site anywhere... last time I tried to find it I think the version I found was outdated. So here it is: Blog.
¶ (0)
Tags: [Bookmarklets, Code, This website]
-
Why you should be using disambiguated URLs. Yep, all urls on my site each have a single resolved URL, no-www and all.
¶ (0)
Tags: [This website]
I've had a bug in my procmail blacklist over the past < 24 hours that made it so that if you mailed me through my web form I didn't receive your mail. Sorry, please try again.
-
Digg: Good List of "Programming Fonts". That's me 
¶
Tags: [This website]
In my referrers I commonly see things like this (first URI was the referrer for all the other requests):
/weblog/archive/2002/Dec/26/LordOfTheRings - 86
/weblog/archive/2002/Dec/22/PoorIraqiSoldiers... - 1
/weblog/archive/2002/Dec/30/JamesBrownRULES/rss - 1
/weblog/archive/2002/Dec/28/FunnyCoding/rss - 1
/weblog/archive/2002/Dec/22/WriteCode/rss - 1
/weblog/archive/2002/Dec/23/MetroidMusic/rss - 1
/weblog/archive/2002/Dec/22/WriteCode - 1
/weblog/archive/2002/Dec/31/ProgrammingLanguagesUserInterface - 1
/weblog/archive/2002/Dec/31/ProgrammingLanguagesUserInterface/rss - 1
/weblog/archive/2002/Dec/28/NoCompile-TimeIncludeFunctionPHP - 1
/weblog/archive/2002/Dec/23/FireflyTimePersonalStories/rss - 1
/weblog/archive/2002/Dec/23/GoogleKnowsSpellcheckName - 1
/weblog/archive/2002/Dec/28/NoCompile-TimeIncludeFunctionPHP/rss - 1
/weblog/archive/2002/Dec/28/FunnyCoding - 1
/weblog/archive/2002/Dec/23/GoogleKnowsSpellcheckName/rss - 1
/weblog/archive/2002/Dec/21/Firefly,OneMoreTime - 1
/weblog/archive/2003/Jan/01/WillFiltersKillSpam - 1
/weblog/archive/2002/Dec/23/TotalInformationAwareness - 1
/weblog/archive/2002/Dec/31/BenSteinAmericanEnterprise/rss - 1
/weblog/archive/2002/Dec/22/SeasonOfFriends - 1
/weblog/archive/2002/Dec/31/BenSteinAmericanEnterprise - 1
/weblog/archive/2002/Dec/23/MetroidMusic - 1
/weblog/archive/2002/Dec/28/TheLadderTheory - 1
/weblog/archive/2002/Dec/23/Schaeffer - 1
/weblog/archive/2002/Dec/23/ProgrammingFunForDay/rss - 1
/weblog/archive/2002/Dec/30/DontGoShoppingHungry - 1
/weblog/archive/2002/Dec/28/MeaningfulProgramming/rss - 1
/weblog/archive/2002/Dec/23/ProgrammingFunForDay - 1
/weblog/archive/2002/Dec/28/MoreQuickLinks/rss - 1
/weblog/archive/2002/Dec/28/MeaningfulProgramming - 1
/weblog/archive/2002/Dec/23/BabyFactories - 1
/weblog/archive/2002/Dec/23/ScienceMagazinesHighlightOf2002/rss - 1
/weblog/archive/2002/Dec/28/MoreQuickLinks - 1
/weblog/archive/2002/Dec/28/ReasonsDidntTwoTowersNearlyLotR/rss - 1
/weblog/archive/2002/Dec/23/ScienceMagazinesHighlightOf2002 - 1
/weblog/archive/2002/Dec/23/ChristianityAndFreeWill/rss - 1
/weblog/archive/2002/Dec/30/DontGoShoppingHungry/rss - 1
/weblog/archive/2002/Dec/28/ReasonsDidntTwoTowersNearlyLotR - 1
/weblog/archive/2002/Dec/30/JamesBrownRULES - 1
/weblog/archive/2002/Dec/30/ThePerfectParser/rss - 1
/weblog/archive/2002/Dec/23/TotalInformationAwareness/rss - 1
/weblog/archive/2002/Dec/23/ChristianityAndFreeWill - 1
/weblog/archive/2002/Dec/23/IraqInvitesTheCIA - 1
/weblog/archive/2002/Dec/25/CharlieBrownChristmas/rss - 1
/weblog/archive/2002/Dec/30/ThePerfectParser - 1
/weblog/archive/2002/Dec/30/Relbookmark/rss - 1
/weblog/archive/2002/Dec/28/TheLadderTheory/rss - 1
/weblog/archive/2002/Dec/23/BillFrist - 1
/weblog/archive/2002/Dec/23/Schaeffer/rss - 1
/weblog/archive/2002/Dec/30/Relbookmark - 1
/weblog/archive/2002/Dec/23/IraqInvitesTheCIA/rss - 1
/weblog/archive/2002/Dec/23/BillFrist/rss - 1
/weblog/archive/2002/Dec/25/SnowballFight/rss - 1
/weblog/archive/2002/Dec/28/PHP4.3.0Released - 1
/weblog/archive/2002/Dec/28/PHP4.3.0Released/rss - 1
/weblog/archive/2002/Dec/28/IanMcKellenPlayDumbledore - 1
/weblog - 1
/weblog/archive/2002/Dec/25/ItllBeGreat - 1
/weblog/archive/2002/Dec/24/YouGottaSeeThis - 1
/weblog/archive/2002/Dec/28/IanMcKellenPlayDumbledore/rss - 1
/weblog/archive/2002/Dec/30/PoliticsForToday... - 1
/weblog/archive/2002/Dec/28/D.B.WoodsideInterview - 1
/weblog/archive/2002/Dec/26/ConversationBeach/rss - 1
/weblog/archive/2002/Dec/26/LetsBlowStuffUp - 1
/weblog/archive/2002/Dec/25/ItllBeGreat/rss - 1
/weblog/archive/2002/Dec/25/ChineseFoodForChristmas - 1
/weblog/archive/2002/Dec/27/OfficialLogoForDarwin - 1
/weblog/archive/2002/Dec/23/BabyFactories/rss - 1
/weblog/archive/2002/Dec/27/Reformed.OrgDown - 1
/weblog/archive/2002/Dec/25/ChineseFoodForChristmas/rss - 1
/weblog/archive/2002/Dec/26/LetsBlowStuffUp/rss - 1
/weblog/archive/2002/Dec/25/SnowballFight - 1
/weblog/archive/2002/Dec/27/Reformed.OrgDown/rss - 1
/weblog/archive/2002/Dec/25/Best.Cheesecake.. - 1
/weblog/rss - 1
/weblog/archive/2002/Dec/26/ConversationBeach - 1
/weblog/archive/2002/Dec/27/OfficialLogoForDarwin/rss - 1
/weblog/archive/2002/Dec/28/QuickLinks - 1
/weblog/archive/2002/Dec/25/CharlieBrownChristmas - 1
/weblog/archive/2002/Dec/24/McGreeveysDamnMoron - 1
/weblog/archive/2002/Dec/24/McGreeveysDamnMoron/rss - 1
/weblog/archive/2002/Dec/23/FireflyTimePersonalStories - 1
/weblog/archive/2002/Dec/26/LordOfTheRings/rss - 1
/weblog/archive/2002/Dec/24/YouGottaSeeThis/rss - 1
/weblog/atom - 1
/weblog/archive/2002/Dec/28/QuickLinks/rss - 1
/weblog/archive/2002/Dec/28/D.B.WoodsideInterview/rss - 1
Sorry to post the whole thing here, but that was the only way to give a sense of how annoying this is to me, and how much bandwidth and server resources these people waste. And, annoyingly, it doesn't just spider, but drops referrers everywhere. This must be a browser plugin that some people are using (or could it be one of those "accelerators" that some dial-up Internet providers provide?). I've checked my Apache log and there are no identifying marks such as a user agent appended to the browser's user agent string.
Anyone have any clue what this is?
Hey, check it out. I now have a tag cloud based on power laws 
Just tagified my site (does that make me web 2.0?). Incidentally, I just discovered that MySQL's API returns all result data as strings. So, even if your field is a number (say, your primary key), you get a string back. Weird.
Update: Incidentally, tag renaming is a pretty hard problem. You have to watch for recursive renames... and what happens if there's already a tag for the tag name you're trying to rename a tag to? You'll have to run through every associated tag table and update all the old ids to the new one, but it's not like there's only ever one association table (i.e. if I tag my weblog entries, and I make a tagged bookmark system, and have my wiki pages tagged, I'll have three different associated tables), so the tag library can't know what it has to update unless you tell it about all those tables. So, it's messy.
-
Eric Sink: Yours, Mine and Ours (via Keith Gaughan). Good article, but then I realized I still had about half of it left. Maybe I'll finish it later. FYI, my weblogging tool is an example of MeWare too. 
¶
Tags: [Programming, This website]
-
Netdisaster.com ★. My site's under attack! AAaaaaah! Mindless fun...
¶
Tags: [This website]
test57 - Anne’s Weblog about Markup & Style:
You really want to bookmark test57. It is the answer to all footer at the bottom while using CSS instead of a table with height="100%" (you there, put away that gun) problems you might have. (What a sentence.) I have used it a few times over the past few years and found it extremely useful and simple.
Ooh, maybe I'll de-table-ify my site now.
Update: Hah, I'm still right. Test57 doesn't show off why that layout breaks compared to tables. And... I tested it and I'm right. Try assigning a background color to the "nav" element in test57 and see what happens. Lame.
Anyway, there are other css-based column layouts I've seen that might not have this problem... maybe I'll revisit this later.
-
I love my site. I can go to a non-existent URL, click edit, add some text and submit, {back*2}, refresh, and the page is there.
¶ (0)
Tags: [This website]
-
Now that Atom is an RFC I implemented an Atom feed for my site. And it validates. It was actually basically done a few days ago but for bragging rights I wanted to get actual XHTML in the <content> element instead of entity-escaped HTML before I "went live", and that took a minor modification to my XML library.
¶ (0)
Tags: [Programming, This website]
-
I just found out Atom now has an RFC number: 4287. Congrats to all involved. Now it's definitely time for me to provide an Atom feed.
¶ (0)
Tags: [Programming, This website]
blo.gs seems to be broken for good this time. It'd be very easy for me to write some code to manage my blogroll, but the thing I liked about blo.gs was that it told me when sites updated. I wish I could get that data out of Ping-o-Matic somehow. Without ping data, I'll have no choice but to poll.
Maybe I could use PubSub, but I'd have to have a Jabber client running on my server.
Update: Testing PubSub. Also, what's always been frustrating to me about Blogrolling is that even though they must have the information about the time a site updated, they only expose a flag indicating whether the site has recently updated, where "recently" is some fixed time period you specify in your preferences.
Update: blo.gs just worked for the first time in days for updating my blogroll, but the blogroll on my site isn't mine. Weird.
-
I've actually been keeping up with comments lately. Go me.
¶ (0)
Tags: [This website]
I've been meaning to write a replacement for PHP's built-in urlencode so that characters that don't have to be escaped in the path part of a URI won't be. Here 'tis:
<?php function uriescape($uri){ static $invalid_chars = '/([^-A-Za-z0-9_.!~*\'():@&=$, ])/e'; return str_replace(' ', '+', preg_replace($invalid_chars, '\'%\'.dechex(ord(\'$1\'))', $uri)); }
$uri = ' -_.!~*\'():@&=+$,'; var_dump(urlencode($uri)); var_dump(uriescape($uri)); ?>
Gives:
string(43) "+-_.%21%7E%2A%27%28%29%3A%40%26%3D%2B%24%2C"
string(17) "+-_.!~*'():@&=%2b$,"
Note that this is only valid for the path component of the URI. In particular, it's not valid for a query string since the extra characters ":", "@", "&", "+", ",", and "$" are reserved there. Though "+" is interpreted as a space anyway, so I don't know what it means to say that it's reserved in the query and not a path segment. And I don't know why characters like "/" and "?" are reserved in the query as well.
Update: Fixed so that the '+' would still be escaped, as it needs to be, despite what the spec says, to not be interpreted as a space. Where did that convention of using a '+' to represent a space come from anyway? I didn't notice that specified anywhere in the URI spec.
I've found this simple clipWords function I wrote to be really handy. I use it for my quotes thing to generate page titles and such. Check your browser bar on this page, for example.
<?php function clipWords($str, $word_count){ preg_match('/^\W*(\b\w+\b\W*){0,'.$word_count.'}/', $str, $matches); return trim($matches[0]); } ?>
You can use code like this to generate an elipsis:
<?php $short = clipWords($full, 7); if(strlen($short) < strlen($full)) $short .= '...'; ?>
Update: Or, alternately:
<?php function clipWords($str, $word_count){ return join(' ', array_slice(preg_split('/\s+/', trim($str)), 0, $word_count)); } #or function clipWords($str, $word_count){ return join(' ', array_slice(preg_split('/\s+/', trim($str), $word_count+1), 0, -1)); ?>
Joseph Scott’s Blog » Google Analytics. Ooh, I may sign up.
Update: From their service agreement:
You will have and abide by an appropriate privacy policy and will comply with all applicable laws relating to the collection of information from visitors to Your websites. You must post a privacy policy and that policy must provide notice of your use of a cookie that collects anonymous traffic data.
I have to post a privacy policy? Ick. Lame.
Also, under proprietary rights, does this:
(c) use the trademarks, trade names, service marks, logos, domain names and other distinctive brand features or any copyright or other proprietary rights associated with the Service for any purpose without the express written consent of Google;
mean that I can't talk about the service at all (since to talk about it I'd have to say "Google Analytics", for instance)?
And, if I stop using their service, I have to notify them in writing?
15. TERM and TERMINATION . Either party to the Agreement may terminate it at any time and for any reason.
Upon any termination or expiration of this Agreement... You will delete all copies of Google Analytics's UTM code from all Pages and certify thereto in writing to Google within three (3) business days of such termination.
No thanks.
I used to have a feature on my site that let you choose to be e-mailed when someone comments on a post if you give your e-mail address. In the notification e-mail you'd get a copy of the comment that was left, an 'unsubscribe' link, and so on. In fact, all the code for this is for the most part still in my weblog application code.
The main reason it's not enabled now is because I don't want people getting my comment spam (and flames) in their e-mail, but the only way around this is for me to approve comments before subscription e-mails go out.
Should I re-enable subscriptions despite the fact that people might occasionally get spam or flames? I suppose I can have a disclaimer that will tell people to beware. What do you think?
Update: Ned just implemented this feature.
Sam Ruby: Sometimes the dragon wins. Not here: ɥɦɐ. And you can search for it.
My dirty little secret, however, is that I'm storing everything in MySQL in fields declared to be encoded in latin1, storing UTF-8 in there anyway, and trusting the browser to get Unicode right. I've tried storing everything in Unicode-encoded fields in MySQL, but it mangled some of the rarer characters when I tried to convert this post once my host upgraded to MySQL 4.0 or 4.1 (whichever one first supported Unicode fields). Some characters worked, some didn't. My only guess is that MySQL only handled an older version of Unicode and stripped everything it didn't understand.
I've decided that my wiki has long since been dead. Editing has been disabled for a while, and I don't even remember whether that was an accident or not (i.e. whether I was working on the software and left it broken (and whether that was intentional or not) or whether I just decided to disable it). Public editing just did more harm than good (extraneous pages were created, comments would be left I didn't need, and discussions would form (and a wiki isn't a good place to conduct a discussion)).
But, I still want a place to put random pages. So, should I:
- Put all random pages at my root (i.e. right under keithdevens.com/)?
- Clean up the /wiki and put all random pages there?
- Create a new namespace like /pages and put random pages there?
I'm leaning towards A because:
- I already have certain content pages at my root, such as the pages in my tabbed navigation at the top
- Even though they're at the root, random pages can still have structured (i.e. nested) URLs
- Why have the extra nesting of a /pages or a /wiki? It's like "of course they're 'pages'. They're on your web site, after all". Or alternatively, "Huh? /wiki, but uneditable pages?"
Chris Langreiter puts all his stuff under "space". Ian Bicking puts all his stuff at the root, but that's the root of blog.ianbicking.org so that doesn't count. Main reasons I'm reluctant to choose A are:
- It pollutes my root namespace and seems "messy" to me
- Lots of little pages at the root make trivial little pages as important, as far as the URL is concerned, as important pages like /about or /software
- I feel like it's hard to change to something else later if I do it this way
Opinions very welcome.
I keep moving around time zones, so my blog comment times are getting all inconsistent. My post times are all made local to where I happen to be, and the time and zone are displayed. But for comments, they're all timestamped with my local time zone when they're made, but no record is kept of the GMT (UTC) time. So, I'm going to store both time zones, and display the local time as relative to the parent post, and the GMT (UTC) time. The third option is to display something like "22 minutes later" so time zone issues go away, but I don't fancy that.
As another site related thing, I may convert my calendar on the right to use this nifty Javascript calendar (via Michael) and maybe hook it up to some Ajax as a first foray into it.
Is someone pinging for me to tell sites like blo.gs (which powers my blogroll) that my site's been updated? According to blo.gs my site was updated 1 hour ago, but I didn't do it.
Update: And it keeps doing it. I've been watching it, and it's "pinged on its own" a bunch tonight. It says my site was updated 22 minutes ago, but I didn't do it. Given this strangeness, plus the fact that blo.gs' search has been disabled for weeks making it impossible to add new sites, it looks like it's time for me to move away from blo.gs.
Oh, not to mention the fact that they've been inexplicably displaying apostrophes as ''' for a long time now.
-
Ned Batchelder: CSS-only RSS badge. Gonna do that. Also gotta compare with this version.
¶ (0)
Tags: [This website]
-
Please don't comment and put a fake e-mail address. I made the field optional so that people wouldn't need to do that.
¶ (0)
Tags: [This website]
-
Well, it's been a few years.
¶ (0)
Tags: [This website]
-
Woo, my site's moving to San Diego.
¶ (0)
Tags: [This website]
-
ongoing · Atom 1.0. Time for me to support Atom I'll do that this weekend, along with autodiscovery.
¶ (0)
Tags: [Programming, This website]
|
Generated in about 0.193s. (Used 10 db queries) |
I hate ASP.NET
I hate ASP... I was doing wonderswith PHP, then suddenly one of myclients...
Johnies: Mar 17, 6:14am