[The Obligatory Firefox Post]
1.5. Get it. Or don't get it, whatever.
I can't be bothered to make a long-winded post here, but just so I fit in, pretend this post contains at least one of the following:
- Copy/pasted release notes.
- Comment about how "it feels much faster".
- Rant about (menu appearance|extension compatibility|Slashdot not having the story yet).
Oh, and Neowin is down. Hah.
ChatZilla source viewer update
Not being able to search has been annoying me, so I finally got back to coding. I'm currently testing the "raw" view and search features, but I haven't added any UI yet. Here's how to get to them:
- Raw view: add "?raw" to a file address, eg. http://chatzilla.rdmsoft.com/trunk/js/lib/utils.js?raw.
- Fulltext search: add ?search=query to any folder or file URL, eg. http://chatzilla.rdmsoft.com/trunk/?search=geturlspec.
- Whole word search: add &word to a search URL, eg. http://chatzilla.rdmsoft.com/trunk/?search=nsifile&word.
- More results: Some searches, eg. var, produce lots of results. When this happens, I limit the number of results shown to avoid overloading the server. "Search incomplete" is shown and a link is provided to the next page of results.
Overall, I'm pretty happy with it. It's the first indexing/search script I've done, and it's probably wildly inefficient, but never mind...
Clear Bug View
Bugzilla's bug display annoys me. I get a huge form, even though I can't edit the bug and generally don't want to. Usually I just want to scan a few bits of information to see if the bug is relevant to my existance, and maybe read some comments.
I should really develop something that's remotely useful. I've done too much PHP recently, and I feel the need to use a language that doesn't have functions like nl2br :|.
Not even trying...
Just got another spammer. I happened to spot the comments early, so I blocked its static IP. Took four hours of 404 errors before it went away.
And the daftest thing is, the links didn't work.
Google Sitemaps Updates
Fairly recently, I quietly addeed a Google Sitemap to this site. The final bit of motivation I needed, after being unsure back in June, was being able to see errors raised by Googlebot in the process of crawling my site.
And now Google's made the deal even better: I can verify my site ownership, and see search query information, page type analysis, and PageRank information (some medium, mostly low, by the way).
I think the most interesting thing about these changes is the query stats: not only can you see which queries cause your pages to appear in results, you can also see which results people clicked. Although I usually get this information from server logs, it's interesting to see Google revealing more information about other people's searching. Cue conspiracy theories...
Five treatments down, x-5 to go. Where x=14±2, naturally.
I fixed the listings. Didn't take as long as I expected, and the new code is actually smaller than the old stuff. It even worked first time in Internet Explorer (the first version didn't work because IE doesn't like
<td rowspan="0">). Still, a couple of minor issues with the new stylesheet need working around to get it perfect.
Just one thing: My IE6 setup seems to support the double right arrow (⇒), but not the double left arrow (⇐). One of the many things that just doesn't make sense...
I got the listings view to work. Then I got it to work in IE. Then I broke it. Tomorrow I'll fix it, then probably break it again.
Development is fun.
As I said before, there are still things I want in my TV guide that aren't started or planned in any great detail yet. I want:
- UI to delete channels, and possibly stop them from appearing again even if they're still in a datasource.
- Cleanup routine to get rid of old listings and channels that are no longer available.
- UI to re-order channels, preferably with fancy scripting.
- Simple "watchlist" of programme names, automatically starring them when found.
- More complicated watchlist, per channel rules, etc..
Today I wrote the little bit of code that creates the listing pages and sets their titles, and started the hard bit: the listings themselves.
Horizontal space will be limited on listings pages, so I've written stuff to split the channels into groups based on a "maximum columns" setting. It works so far, though I only have two channels in the database at the moment.
Once they're split into groups, I need to get the listings from the database and generate nice HTML with all the times lined up. A good chance to re-learn tables...
Numbcast, playing at your house
Joe has more details, but I'll summarize: we talk a load of crap.
Can't see the tags for the markup.
I just finished my XMLTV pulling/parsing code, tested it a bit, then told it to suck up the data I'll need for developing the guide display.
Then noticed a typo, emptied my table, and pulled it again.
Then noticed i hadn't actually fixed the typo, fixed it, emptied my table, and pulled it again.
Now I know why the bleb.org guy wanted my email address in the user-agent...
On a vaguely related note, I still fucking hate time zones. I would hate them slightly less if this server (and all the servers I might ever want to use in the future) had PHP 5.1, but meh, what y'gonna do?
So far, it looks at the datasources table, and finds out which days have listings available that haven't been downloaded yet. Just a bit of network code and I'm on to the XML parsing fun.
I'm pretty sure I'm finished with the stylesheet on my local RdMise install, at least until I get it uploaded and start using it more. It's basic, and very light, but I like it.
Suck Fony: Rootkit.
I just realized I hadn't posted anything on this.
Then I realized I don't really need to. So there.
RdTelly - database plotting
First, a note of explanation. A "day" in telly-land starts at roughly 6am. After midnight tonight, it'll be Tuesday, but the listings for that time are on the Monday page in magazines, and in the data file on bleb.org for Monday. This makes sense to most humans, but not machines and programmers. So whenever I download data, or decide which programmes to show for "Today", I'll have to think in GMT-6.
And just to make things a little bit harder, the bleb.org data provides 8 days of listings (yesterday, today, and 6 future days) in folders named by their offset from the current date. These change at the same time the listings run out. So I have to be careful not to pull data when I can't predict what date "Today" might be on bleb.org. Phew...
Yes, I say "phew" too much. Anyway, bleb.org limits data grabbing to 10 channels at a time, and I'll probably want more than that, so the first table I need is called "datasources". It's also generally a Good Thing to avoid hardcoding that sort of stuff. The datasources table has three columns: a primary key, a data URL (with %d or something where the required day goes), and the last (telly-land) day it was pulled.
It's fairly obvious I would need a "channels" table. I'll be using XMLTV data, which stores any number of channels and programmes in one file, so I'll make the parsing code fill the channels table as it finds them. The channels table will have a primary key, which will hold the hostname-like IDs used by XMLTV, and the channel's name. I'll also store the ID of the datasource the channel's data is from, to help me debug and manage datasources. Finally, I'll have a "starred" boolean that stores whether the channel is any good or not. Starred channels get displayed higher on the page when horizontal space is limited.
Finally, "programmes" (not "programs"). Obligatory primary key, secondary key linking programmes to channels, start time, stop time. (There's a minor problem with stop time, in that it's not provided for the last programme in the day, but meh, I'm not planning on watching much 5am TV.) Title, subtitle, and description of the programme are provided, so I might as well store them. And again, I'll have the ability to "star" (since when was that a verb?) programmes I plan on watchng and be politely reminded about them later.
I think now I'm entitled to say "phew". Amazingly, I've made what would seem to be a complete logical plan...
...if it wasn't for the fact that my mind is still making more ideas and I can't type them fast enough. Oh well, time for bed.
Extending the extension
I tried a while back to get the Extension Manager to work with ChatZilla on XULRunner. I failed. Well, Mook actually bothered to read the source, and it turns out I wasn't far off. One line missing in the ini, which isn't documented yet.
Anyway, I've updated the CVS patch on my XULRunner page so it builds a package that works on current builds, plays nicely with the extension manager, and has an application.ini instead of one of those nasty custom names...
Opening the Extension Manager is as simple as running the ChatZilla command
/eval openDialog("chrome://mozapps/content/extensions/extensions.xul?type=extensions"). At the moment I'm making it simpler using this ChatZilla plugin, which I plan to rewrite as an extension.
Native-looking menus to return in Gecko 1.9
Well, it missed 1.8 (== Firefox 1.5), but native theming for Windows menus should be returning at some point. James Ross (Silver) has posted the master plan on his weblog, which, if nothing else, should keep testers busy after 1.5 gets released.
I plan to make some screenshots of a few themes to make sure they look right, though I'm not sure if I'll be fighting to the last pixel on this stuff...