mu.nu - It's mackerel stewed in chocolate!
June 16, 2006
Minxlets June 16 Edition
Block tags are in!
Sort of. The only working block tag handler right now is comments, but it shouldn't take too much work to get it going for posts as well. Most of the work involved was refactoring the template engine. The requirements for block tags aren't that complex, about fifteen lines of code - but since the template engine had no real support for block tags, I would have had to add fifteen customised lines of code for every new tag.
The refactoring cut that down to
four one zero.
Plus, it provides the beginning of a plugin system for template tags, because it dynamically loads the handling routines for the block tags.
Other than that... not much. Busy day. Forms are still coming. More later.
Posted by: Pixy Misa at
08:48 AM
| Comments (16)
| Add Comment
| Trackbacks (Suck)
1
That one line of code was a SQL query, I presume.
I once wrote a very simple blogging tool (it took less than a day) in which there was a special tag for a SQL query. That tag took as an attribute its own template, which had one special tag: a column tag.
The algorithm was like this:
1. Read the template, and write out
2. When you got to a SQL tag, do the query, for each result
a. Read the query template
b. Write the query template
c. When you got to a column tag, write the column value
Query templates could also contain SQL tags.
That's all!
Posted by: David Boxenhorn @ at June 16, 2006 09:46 AM
2
Since you've thought of everything, I'm sure you've thought of this too, but I'll mention it anyway (I hope you don't mind)...
One thing that absolutely, positively, must be true, in order to get me to move to Minx: The old URLs must continue to work.
Of course, I could just archive the old stuff and use Minx for the new stuff, but I'd rather not do that.
Posted by: David Boxenhorn @ at June 16, 2006 10:19 AM
3
Wow, I love the way that adding comments is really fast!
Posted by: David Boxenhorn @ at June 16, 2006 10:35 AM
4
That one line of code was a SQL query, I presume.
Nope, a function call. And now I've optimised that out as well.

One of the things that makes this templating system harder to write is that I have to be very careful to abstract out all database queries and programming. Being able to to do queries and execute code right from the template is enormously powerful - and a recipe for disaster when end users can create their own templates. (Which is why almost all the existing template libraries are useless for this sort of thing.)
The old URLs must continue to work.
Yep. The requests for the old (static) pages will get redirected and served up dynamcally. It's just another mapping of URLs to Minx functions.
That will also let me delete half a million files from the server, which is always fun.
Posted by: Pixy Misa @ at June 16, 2006 10:59 AM
5
Sorry for second-guessing you, Pixy. I just can't help reverse-engineering stuff.
I have to be very careful to abstract out all database queries and programming
I'm aware that you can't let end-users write SQL queries, but I figured there must be someplace where you say tag X is implemented by query Y.
Nope, a function call. And now I've optimised that out as well.
There must be something that differenciates one tag from another!
It's just another mapping of URLs to Minx functions.
Cool. Is this a general function? It would be cool if the end user could define alternate URLs for posts, something that would be filled in by the conversion program. This would solve a problem that I've seen a few times in the blogosphere: If your URL is the name of the post, then when you change the name of the post, the old URL breaks. You could use this feature to give the old URL as an alternate for the post when you change its name.
Posted by: David Boxenhorn @ at June 16, 2006 11:20 AM
6
Well, there's two main ways Minx handles tags.
One is a simple lookup table (a Python dictionary, which is a hash table). Queries that are being processed (or have already been processed) have their results stashed in this table.
So if you want the text of the current comment, all it has to do is look up the key "comment.text" in that table. (I'm probably going to change that to nested tables, though the basic idea remains the same.)
The other method is another table, this time of functions. When the template engine sees tag X (for example, comments:here), it calls the appropriate function with the required parameters. Most of those functions then perform queries and add the data to the main lookup table.
Plus there are a handful of stubborn ones that need to be handled by a good old if-then-else.
Oh, and the full version of Minx lets you have as many URLs pointing to a given post as you want. This was a fundamental design requirement, for reasons that will become clear very soon.

Can't do that with the MT database, unfortunately.
Posted by: Pixy Misa @ at June 16, 2006 11:30 AM
7
Well, so much for regression testing. The smilies are borked!

Posted by: Pixy Misa @ at June 16, 2006 11:32 AM
8
Minx lets you have as many URLs pointing to a given post as you want.
This was a fundamental design requirement, for reasons that will become
clear very soon.
Cool. I can't wait. Hope you don't mind my core-dumps. Did you see the one on yesterday's report?
Posted by: David Boxenhorn @ at June 16, 2006 12:24 PM
9
Yep. You can write a good template editor, but it's not necessarily easy.
Just added some formatting options:
Numeric formatting:
Flag
Meaning
#
The value conversion will use the ``alternate form''
(where defined below).
0
The conversion will be zero padded for numeric values.
-
The converted value is left adjusted (overrides
the "0" conversion if both are given).
(a space) A blank should be left before a positive number
(or empty string) produced by a signed conversion.
+
A sign character ("+" or "-") will
precede the conversion (overrides a "space" flag).
Conversion
Meaning
d
Signed integer decimal.
i
Signed integer decimal.
o
Unsigned octal.
u
Unsigned decimal.
x
Unsigned hexadecimal (lowercase).
X
Unsigned hexadecimal (uppercase).
e
Floating point exponential format (lowercase).
E
Floating point exponential format (uppercase).
f
Floating point decimal format.
F
Floating point decimal format.
g
Same as "e" if exponent is greater than -4 or
less than precision, "f" otherwise.
G
Same as "E" if exponent is greater than -4 or
less than precision, "F" otherwise.
c
Single character (accepts integer or single character
string).
%
No argument is converted, results in a "%"
character in the result.
Date/time formatting:
Directive
Meaning
%a
Locale's abbreviated weekday name.
%A
Locale's full weekday name.
%b
Locale's abbreviated month name.
%B
Locale's full month name.
%c
Locale's appropriate date and time representation.
%d
Day of the month as a decimal number [01,31].
%H
Hour (24-hour clock) as a decimal number [00,23].
%I
Hour (12-hour clock) as a decimal number [01,12].
%j
Day of the year as a decimal number [001,366].
%m
Month as a decimal number [01,12].
%M
Minute as a decimal number [00,59].
%p
Locale's equivalent of either AM or PM.
%S
Second as a decimal number [00,61].
%U
Week number of the year (Sunday as the first day of the
week) as a decimal number [00,53]. All days in a new year
preceding the first Sunday are considered to be in week 0.
%w
Weekday as a decimal number [0(Sunday),6].
%W
Week number of the year (Monday as the first day of the
week) as a decimal number [00,53]. All days in a new year
preceding the first Monday are considered to be in week 0.
%x
Locale's appropriate date representation.
%X
Locale's appropriate time representation.
%y
Year without century as a decimal number [00,99].
%Y
Year with century as a decimal number.
%Z
Time zone name (no characters if no time zone exists).
%%
A literal "%" character.
Strings use regular expressions for formatting.
That's too complicated to explain here, but for example, you can display only the first 10 words of a comment using [comment.clean format="(.*?\s){10}"]. (comment.clean is a version of the comment text with all HTML tags removed. You have to do that otherwise you will end up with unclosed HTML tags and your entire blog will be bolded or struck out.
Posted by: Pixy Misa @ at June 16, 2006 01:28 PM
Hide Comments
| Add Comment
CPanel Don't Like Me!
Hi Pixy,
When I try to get to CPanel, it never gives me the login screen - I never get an error, but it isn't loading for me at all. Can you give me some advice? I know my hubby was having some issues previously, so thought I'd check with you.

Take care!
Posted by: Merri at
05:57 AM
| Comments (7)
| Add Comment
| Trackbacks (Suck)
1
Cpanel has lost track of your site, like it did with David. I'll get it fixed for you.
Posted by: Pixy Misa @ at June 16, 2006 06:31 AM
2
Thanks a billion, Pixy!

Posted by: Merri @ at June 16, 2006 06:44 AM
Hide Comments
| Add Comment
June 15, 2006
Blacklist Update
Much as Trey Givens' blog was blocking "tr com," it would seem that "br com" is also being blocked.
I have a regular commentor who keeps getting blocked. That doesn't really stop him; he just changes his email address to .net instead of .com, but that dirty pervert is now pestering me to have this fixed instead of for sexual favors.
Let's just say I thrive on routine. Can we do something?
Posted by: Flibbertigibbet at
08:27 PM
| Comments (5)
| Add Comment
| Trackbacks (Suck)
1
Hmm. I can't see br com listed anywhere. Let's see if this comment works.
Posted by: Pixy Misa @ at June 16, 2006 01:56 AM
2
Someone must already have fixed it.

Posted by: Pixy Misa @ at June 16, 2006 01:56 AM
3
Just testing the comment thingamajig whatsis.ÇÌ©®
Posted by: Demosophist @ at June 16, 2006 03:25 AM
Hide Comments
| Add Comment
Slightly Broken Blog
So is the "old" system still limping along in various states of brokenness, or is it just me? My blog still has issues when posting that sometimes the post doesn't actually make it to the main page until I rebuild all. And sometimes when I make a post, it goes to the main page, but the comments and permalink pages generate 404 errors until I rebuild all. Mostly this seems to be with posts that are posted with deferred, but I haven't been able to narrow it down just yet.
I'm excitied about the new system, but I'm going out on vacation for a couple weeks very soon and I hope to have deferred posting going on for that whole time I'm gone -- so I'd not want to switch over (unless I have to, I suppose) until after I get back...
Thanks again, Pixy!
Posted by: Ogre at
02:22 PM
| Comments (7)
| Add Comment
| Trackbacks (Suck)
1
It shouldn't do that, though I did get a glitch yesterday while posting comments. I'll take a look.
Posted by: Pixy Misa @ at June 16, 2006 02:10 AM
2
Now I can see exactly what it's doing.
I write a post and mark it deferred. When the deferred magic machine processes the entry, it marks the entry as published, but it doesn't actually appear on the main page.
When someone makes a comment on a different post, the main index gets rebuilt, and the deferred post then shows up on the main page -- but there's still no individual page built for the deferred post.
The only way to get the deferred post to have an individual page is for me to manually rebuild the individual pages.
Posted by: Ogre @ at June 16, 2006 07:59 PM
3
I'm having the same problem with deferred posting :-(
Posted by: Gir @ at June 19, 2006 04:42 PM
4
I'm really enjoying the theme/design of your weblog. Do you ever run into any browser compatibility problems? A small number of my blog audience have complained about my site not operating correctly in Explorer but looks great in Chrome. Do you have any ideas to help fix this problem? It feels good to find such an interesting topic on the internet like this one nowadays.
christian louboutin pumpsherve leger dressmoncler jacketschristian louboutin heelschristian louboutinchristian louboutin shoesshoes christian louboutinchristian louboutin discountsale christian louboutinherve leger dressherve leger bandagediscount herve legerherve leger bandage dressmoncler jacketsmoncler jacketmoncler jacketmoncler for salechristian louboutinchristian louboutinherve leger dressherve leger dressherve leger dressherve leger dressherve leger dresseschristian louboutinchristian louboutin pumps
Posted by: herve leger @ at June 06, 2011 04:51 PM
5
said his position is evolving but he still supports civil unions."I unions."I
supra shoes on
saleunions."I believe that gay couples deserve the same legal rights as
every other couple in country," the president said at the fundraiser, his first
geared specifically to the gay community. community. supra footwear online
community. Obama said he was confident that there will be a day "when every
single gay or straight or lesbian or bisexual or transgender, is free to live
and love
Posted by: supra footwear @ at July 06, 2011 09:56 AM
Hide Comments
| Add Comment
Minxlets June 15 Early Edition
I got the form processing framework in place this morning. This includes customisable template-driven forms and a dynamic system for form handlers. That allows us to have plugins that add entirely new processing features to Minx, and can be installed or uninstalled on the fly, per blog.
(We don't have plugins for new template features yet, but I will be adding that.)
Later today I'll implement forms for comments, searches, and (if I have time), post, comment, and trackback management. Once those are working, you'll just about be able to switch over to Minx completely.
The last big thing left to implement is block tags. These are fiddly because to implement them fully I need to dynamically construct SQL queries from the options specified in the template, but think I can get a fair way by just validating the options and plugging them into a set of pre-defined queries. I can probably get that in on the weekend.
From there, it's all about features, more features, more more features, and lots of testing and performance tweaking, but the basic system will be in place.
Update: Just replaced the template loader with a template cache. The new forms system will lead to a
lot of new templates, even if you don't normally look at them at all, and it doesn't make sense to load them up every time. So templates are now loaded on demand and cached.
The new templated comment form will go in tonight, and more forms will follow tomorrow.
Posted by: Pixy Misa at
01:49 AM
| Comments (20)
| Add Comment
| Trackbacks (Suck)
1
Pixy, I "heart" the new comment interface!
Posted by: caltechgirl @ at June 15, 2006 01:58 AM
2
I'm looking forward to it. Don't know if I'll have the time, but if I do I'd like to try moving Rishon Rishon over to the new system. One key factor might be (there could be other key factors as well...) sub-templates (AKA modules). I use a lot of them, and I definitely don't have time to totally re-think my template architecture.
Of course this is for the distant future, if at all, but do you know what MT is really lacking? A WYSIWYG template editor. I can't use WYSIWYG HTML editors (I normally use Nvu) with the templates because the special tags screw up everything. What I would like is a system that automatically interprets the tags and gives me something like, "Comments go here" where the comments go. Maybe the InnovaStudio editor can be tweaked for this purpose?
Posted by: David Boxenhorn @ at June 15, 2006 09:19 AM
3
Something weird happened with the comment above. It seems to have lost its formatting...
Posted by: David Boxenhorn @ at June 15, 2006 09:21 AM
4
Comment #3 appears in my comment tab, but when I refresh the Minx-Munuviana blog it doesn't appear there...
Posted by: David Boxenhorn @ at June 15, 2006 09:24 AM
5
Okay, now both comments appear. Must have been a hiccup.
Posted by: David Boxenhorn @ at June 15, 2006 09:25 AM
6
Oh, I know. It's the cache. Maybe posting a comment should clear the cache?
Posted by: David Boxenhorn @ at June 15, 2006 09:30 AM
7
Okay, in order:
Yep, we have sub-templates/modules. Already in and working fine.
Minx tags should work fine in any WYSIWYG HTML editor; that's the major reason I used square brackets instead of angle brackets. I'm going to include a WYSIWYG template editor using Innova.
Also, I'll have TinyMCE as a drop-in replacement for anyone who has problems with Innova. But Innova is a lot more powerful than TinyMCE.
There's an issue with the way Innova works in Firefox that means that formatting is currently getting stripped out. This will be fixed.
Currently the cache gets cleared after five minutes, but knows nothing of comments or posts. I plan to fix that. If you are logged in, though, it doesn't cache pages at all (because it assumes you will be commenting and/or posting).
Posted by: Pixy Misa @ at June 15, 2006 11:27 AM
8
The updated build is in and has passed regression testing, but I'm too splorgled to try the forms system right now. Tomorrow...
Posted by: Pixy Misa @ at June 15, 2006 12:28 PM
9
I see you've thought of everything!
Not that I want to be a nudnik, but a WYSIWYG template editor that supports sub-templates won't work automatically...
Sleep Tight!
Posted by: David Boxenhorn @ at June 15, 2006 01:09 PM
10
Making a template editor fully WYSIWYG is kind of tricky, not least because templates are inherently anti-WYSIWYG. But we should be able to do something pretty nice.
Posted by: Pixy Misa @ at June 15, 2006 01:55 PM
11
Some sort of Ajax-y preview is what I have in mind. Well, I'll start with a single-template editor and work from there.
Posted by: Pixy Misa @ at June 15, 2006 01:57 PM
12
I am getting the feeling that when this happens I am going to be forced to access long dormant parts of my brain that understands any of this.
I guess its a good thing.
Posted by: Stephen Macklin @ at June 15, 2006 05:38 PM
13
Just thinking out loud here...
Displaying a template WYSIWYG is easy - just give it a fake post and/or comment and display it like you always do.
The first problem is knowing exactly which element you're in when you do something - but that shouldn't be too hard either. Javascript has the tools.
The second problem is knowing which template the element belongs to. That's not too hard - as you climb the element tree, eventually you'll come to the point where the template is included, and then you know. Just make sure you put an element there (a div?) with name="templateName", or some such.
Third problem: display the change. Again, not too hard, just reset the innerHTML. There might be one complication: if there're multiple instances of the same template, you have to redisplay all of them. Not too hard, though, just do getElementsByName("templateName"); (You can even add some weird characters to the name to be 1000% sure that the name is unique.)
Fourth problem: I thought there was a 4th problem, but I can't think of it now... I need to go to sleep. Oh yeah, there's all the regular stuff, like how to undo italics, but that's already been done somehow...
Posted by: David Boxenhorn @ at June 15, 2006 09:37 PM
14
Pixy:
Thanks for this ongoing gift to the community. Can hardly believe you're actually writing brand new blogging software?? In fact, I'm still not sure I know what's going on.
Some time in the next few weeks I'll figure out how to install a blogroll too. It's just a matter of getting a few hours that aren't committed to something else.
Posted by: Demosophist @ at June 16, 2006 03:19 AM
Hide Comments
| Add Comment
Pixy, Urgent Question!!
Were the movies Airplane! and Airplane 2! really released in Australia as Flying High and Flying High 2? 'Cuz, like, if they were, that would be kinda really weird n' stuff. Thanks in advance for the info!
Posted by: Tuning Spork at
01:25 AM
| Comments (2)
| Add Comment
| Trackbacks (Suck)
June 14, 2006
one more blacklisty thing
Evidently "blogsome.com" is being rejected now. Can we get this rectified? I have a couple of regular commenters who would like to leave their URL/blogmail.
Thanks!
Posted by: caltechgirl at
07:19 PM
| Comments (4)
| Add Comment
| Trackbacks (Suck)
1
I found and pulled it, CG. It was blacklisted by Pixy back on May 31. If he's found that a substantial amount of spam is coming from that service, it could very well end up back on the list again, but for now, it's cleaned.
Paul
Posted by: Light & Dark @ at June 15, 2006 12:46 AM
2
On May 31 I was doing a cleanup of the blacklist, which had had suffered a terminal case of fatal death. I collapsed a lot of sub-domains, like evilspammer1.blogsome.com and evilspammer2.blogsome.com down to the main domain, eliminating about 8000 entries in the process.
I tried to weed out sites that we didn't want to blacklist en masse, like Blogspot and Typepad, but I missed a few.
Posted by: Pixy Misa @ at June 15, 2006 01:39 AM
Hide Comments
| Add Comment
Trackback spam
Can trackbacks on the edit page where the "5 most recent pings" are recorded be configured to take us to the appropriat post rather than as a link to the site of the spammer. That way, we could do our own blacklist perhaps on our sites based on the ping and/or delete the ping from the post in question.
Posted by: GM Roper at
06:22 PM
| Comments (6)
| Add Comment
| Trackbacks (Suck)
1
If that can't be changed, there is still a relatively painless way to do it: the title of the post that got pinged is in the email notification, so just use the MT search thingy to find the post, delete the offending TB and re-save the post (which also rebuilds it) and kills the evil spam.
Posted by: caltechgirl @ at June 14, 2006 07:18 PM
2
great idea, however, my trackback emails are not reaching me (gmroper@gmroper.mu.nu) for some reason I will look in "old" posts for dates and see if I can find them. Thanks again...
Posted by: GM Roper @ at June 15, 2006 12:01 AM
3
This is really easy to do - in Minx.
Hang on a couple more weeks and you'll have it all, baby!

Posted by: Pixy Misa @ at June 15, 2006 01:41 AM
4
And of course, the version of Minx we'll be using initially, Minx/MT, is fully compatible with Movable Type, so the minute I get the new trackback view working you can start using just that bit, even if the rest of Minx isn't ready yet.
Posted by: Pixy Misa @ at June 15, 2006 01:42 AM
Hide Comments
| Add Comment
Technorati issue and promoting a blog
If you look at my blog, you may notice that a part of the search button is blocked off. How would I fix this (being not as experienced in HTML is everyone else)?
What advice or articles would you direct a person to to learn how to promote a blog?
Posted by: Matthew at
11:50 AM
| Comments (7)
| Add Comment
| Trackbacks (Suck)
Optimising SQL For Fun And Profit, Part The First
I replaced the separate comment counter for each post with this combined query:
do_sql('select *, count(comment_id)
from mt_entry, mt_author
left join mt_comment
on comment_entry_id = entry_id
where entry_blog_id = %s and
entry_status = 2 and
author_id = entry_author_id
group by entry_created_on desc
limit 20 offset %s',
(tags['page.blog'],(page-1)*20))
Result: 27 queries taking 0.01 seconds, 121 records returned.
20 down, 20 to go.
Okay, I made the comment routine a little smarter: Don't query the database for the comments for a post when you already know there aren't any.
Result: 19 queries taking 0.01 seconds, 111 records returned. (There are less records now because a post with 10 comments have been bumped off the front page while I was testing.)
Posted by: Pixy Misa at
11:49 AM
| Comments (12)
| Add Comment
| Trackbacks (Suck)
1
Or maybe not. That ran really, really slow when I tried it during a database backup.
I need to get a proper Minx test environment set up, pronto.
Posted by: Pixy Misa @ at June 14, 2006 01:43 PM
2
My experience with joins in mySQL is that they are really slow - slower than multiple queries. Don't know how general that result is, though.
Posted by: David Boxenhorn @ at June 15, 2006 09:52 AM
3
I appreciate theI appreciate the ideas and information you provided. I ideas and information you provided.
Posted by: Jordan Sneakers Sale @ at April 18, 2011 05:55 AM
4
buy cheap louboutin sandals when people are looking into the Win a new net on September 21 and give or get an electric shock according to"place agency" briefing,christian louboutin heels the disaster Sun amount of money first quote is 251,660,000
Posted by: Wholesale blog @ at May 20, 2011 03:25 AM
Hide Comments
| Add Comment
Minxlets June 14 Edition
New stuff today:
The SQL query manager I mentioned before is in. You'll see at the bottom of the page a line like
47 queries taking 0.06 seconds, 157 records returned.
Which shows you the number of SQL queries sent, the elapsed time spent performing the queries, and the total number of records retrieve. I'd like to reduce the number of queries... In fact, I'm not sure how it even gets to 47. Unfortunately, if you're displaying comments inline, Minx needs to issue a separate query for each post to fetch those comments. It seems to perform reasonably well anyway; once the data is cached, the time for those 47 queries drops to 10 milliseconds.
Ah, I've worked out where the 47 queries comes from:
1 query to read the blog record.
1 query to read the site record (which is something I've added to the standard MT datbase; it holds extra settings for Minx/MT).
1 query to load the default templates.
1 query to load the blog templates.
1 query to validate the user, if he/she has an active login.
1 query to load the entries for the page.
20 queries to
count the comments.
20 queries to load the comments.
Uh... that's 46. I have no idea what the other one is. But I can definitely reduce that number.
Macros
Like templates for your posts! You can define a macro such as - say - {DWL}, and whenever you write {DWL} in a post, it gets turned into <a name="DWL" title="Don't write letters!">DWL</a>, which looks like this:
DWL
(Mouse over it to see the popup description.)
Macros also support field expansion, so you can define your {DWL} to be something like "Don't write letters $1", and then when you use it in your post, you can have something like {DWL "and this time I mean it!"}. The parameters that you put in your post get substituted into the macro, and expanded version replaces the macro call in your post.
With me so far?
Cool.
Well, macros can do more than that: They can also pull template tags right into the text of your post. If you define {comments} as "This post has $1 comments", and then write in your post {comments [post.comments]}, the correct value will get plucked from the database and put right into your post, wherever you want it.
Currently, the actual macro text doesn't get template parsed, but that would be an easy to do if I decide it would be a
sane thing to do. There's such a thing as making a system
too flexible.
Simpler Stuff
If that broke your head, then never fear, there are some nice simple things in today's release as well. New magic tags:
[quote:random
template]
[quote:cycle
template opt_time]
[image:random
template]
[image:cycle
template opt_time]
[quote:random] pulls a random quote out of a selection stored in a template, one quote to a line. You can't have a line break inside a quote, but you can format it with HTML however you want. I've put one of these on the demo version of Munuviana, though I've forgotten what most of our tag lines were.
[image:random] does the same thing with images. Just put the <img src="blah blah"> tags in the template, one to a line. Great if you have a set of rotating banners (and I know some of you do). No PHP or Javascript hacking required!
[quote:cycle] cycles through a list of quotes, changing by default every hour. opt_time optionally changes this to however many seconds you want.
[image:cycle] does the same thing for a list of images.
I think that's all right now. I'm still working on the forms processing module, and unfortunately I just got a big distraction dropped on me so the pace of development will slow down until next Tuesday. There's still lots more goodies to come, though, and I'll try to keep releasing an update every day with at least one new thing.
Update: Oops. I edited the program on my notebook, uploaded it to the staging area for testing, got it working, put it in the live area - and then, instead of copying the new live version to mu notebook, I copied the version on my notebook over the live version, wiping out an hour and a half of debugging.
Of course, I had a backup. I always have a backup. Sometimes I manage to really screw up and overwrite my backup too, but not this time.
Posted by: Pixy Misa at
08:27 AM
| Comments (9)
| Add Comment
| Trackbacks (Suck)
1
Best thing about the internet... I'll be on the road this weekend and I'll still be able to check in for Minx updates.

(unless of course my laptop dies... but let's not ask for trouble).
Posted by: Teresa @ at June 14, 2006 10:46 PM
2
two specialists were trapped on the Falls
reported the same day at 7 am, and 4 from the hillside into the mountains behind the begin of ground investigation into the mountains and got lost unknowingly trapped in the top of the waterfall. Due to hot weather, carrying mineral water has long been drunk. 4 people in starve and thirst,christian louboutin black suede Guerriere 120 wrapped boots, heat stroke and one of them has collapsed, merely to the Police.
into the mountains with Wizard Fire Rescue
4 geologists trapped for 12 hours
Fire Insurance under the rope to save them
head, according to the project description Tashi Norbu, who is the Sichuan Geological Survey Geological Survey 606 Brigade workers, is running to the city of Wuxi County Zhenping County, Shaanxi Province, a standard highway tunnel Baoshan Geological Survey section of the project tasks. Allegedly, this highway is the gateway to Shaanxi, Chongqing, the main traffic.
corner of the cliff up to 12 hours, one of them collapsed of heat stroke symptoms arise. Search alarm bombard brigade into the mountains, the four human rescued.
4 名 Geologist trapped in the mountains
responded an hour afterward to hear the sound
4 fire commanders and infantry and sorcerers, and then climbing to the depths of the mountains. Mountains everywhere overgrown with weeds, shrubs interlaced,Christian Louboutin Simple Pump Nude, there namely not way. Accidentally, it ambition fall into bottomless cliff. As soon for likely to ascertain the trapped, fire officers and men while hiking, while shouting aloud.
a platform in the mountains, the fire brigade discovered the first trapped by Sun A. Sohn said there are 3 trapped in the cliff near the front, not down because of physical causes.
deep jungles investigation expressway
in the instruction by Sohn, fire officers and soldiers persist ascent quest,Christian Louboutin Very Prive suede black, found under a cliff,Christian Louboutin Yolanda Black, different trapped, project pate Rob Tashi (sound). Officers and men found that the cliff is a dry cascade,Christian Louboutin Coral Patent Pump, 20 meters lofty. Sohn and Rob Tashi 2, slid down the tilt from the cliff's. The top of the cascade, the additional two were found trapped,Christian Louboutin Sexy 85 patent pump, they tin no be down for of extremely feeble.
fire officers resolved according to the situation: the search and rescue groups composed of four officers and males, Insurance rope to carry,Christian Louboutin BIANCA 140 KID, light, heatstroke drugs,christian louboutin hot pink suede Short Tina 120 fringe pumps, food,Christian Louboutin New Declic python, and water equipment items, the mountain advisers in the local search, and the remaining officers and males stand at the foot of the mountain.
rescue laborers to pass a rope to medicine, water and food brought to the top of the waterfall, so they multiplication strength. Meanwhile, rescue laborers skirmished from the side of the mound climbing to the top of the cliff,Christian Louboutin Mater Claude Red, finally reached the cliff top. They nailed one end of the warranty rope in a tree, two experts in rescue personnel plucked the insurance rope under the arm, along the slopes of the success down to the waterfall beneath.
fire emergency rescue
After nearly an hour's quick march, fire officers and men arrived at the foot of the mountains of geological experts were trapped. At a glance is always infinite mountains, do not know in which direction trapped. Fire officers made tel adjoin with the trapped experts, but still do not understand the specific place 4.
After extra than an hour of searching,Christian Louboutin Patent Slingback, rescuers finally heard the voice responded:
4 experts trapped for 12 hours
7:36 that evening, after nearly 3 hours of intense relief,Christian Louboutin New Declic suede pump, 4 Geological Survey of experts successfully reached after 12 hours trapped in the safety zone. But one hospital due to heat stroke,Christian Louboutin Very Prive black suede, the other 3 no serious body.
Chongqing Evening News correspondent Songlin Wen Fan Yongsong photo coverage
speed scrutinize for the Yu-Shan lost
fire brigade rushed to the scene to rescue
4 名 safety of geological experts were escorted down the mountain rescue personnel. microblogging Recommended | today's hot microblogging
introduced,Christian Louboutin red patent calf So Private 120 slingbacks, according to fire brigade in Wuxi County, the day of 16:16,Christian Louboutin Pigalle Point-Toe Pumps, the battalion received a report: the town is located in Wuxi and Nanjing factory town at the coalition of Long Gui , a small location called the olive groove of the mountains, there are four experts trapped Geological Survey, one of them collapsed of heat stroke, the request for rescue.
Posted by: louboutin cheap @ at May 16, 2011 02:37 AM
Hide Comments
| Add Comment
Moveded
blog.mu.nu is now back on Yuri. If you can see this, that should mean it's working. Unless it isn't. You know how these things work.
Posted by: Pixy Misa at
07:44 AM
| Comments (2)
| Add Comment
| Trackbacks (Suck)
Cpanel woes
Pixy, I get this when I click on the File Manager in Cpanel:
[a fatal error or timeout occurred while processing this directive]
Posted by: Vinnie at
12:27 AM
| Comments (7)
| Add Comment
| Trackbacks (Suck)
1
Yay CPanel!
(Hack hack hack...)
Try now.
Posted by: Pixy Misa @ at June 14, 2006 01:02 AM
2
I got a 404 error

Posted by: Vinnie @ at June 14, 2006 01:04 AM
3
Couldn't even log in to test. Heh!
Posted by: Vinnie @ at June 14, 2006 01:06 AM
4
Scratch that, it was a 500 error, with an additional 404 error
Posted by: Vinnie @ at June 14, 2006 01:07 AM
5
Bad CPanel! No cookie!
For some reason the cpanel redirect for your blog has crapped out.
You can still log in by going to http://vinceautmorire.mu.nu:2082
I just tried that, and it works.
Posted by: Pixy Misa @ at June 14, 2006 01:35 AM
6
That'll do!
Thanks Pixy.
Posted by: Vinnie @ at June 14, 2006 03:06 AM
Hide Comments
| Add Comment
June 13, 2006
Disk write test failed
When I try to add an email forwarding in cPanel, I get:
The disk write test failed. You may have exceeded your quota, or the disk is full.
Posted by: David Boxenhorn at
04:02 PM
| Comments (1654)
| Add Comment
| Trackbacks (Suck)
1
Hi David. Give it a try now.
Posted by: Pixy Misa @ at June 13, 2006 09:56 PM
2
Thanks. But now I can't enter my domain (there is nothing in the list box, and I can't enter anything). Also, the forwarding that used to be there is gone.
Posted by: David Boxenhorn @ at June 14, 2006 05:48 AM
3
CRAPWEASELS!!!!!!
Ahem.
I'll take a look.
Posted by: Pixy Misa @ at June 14, 2006 07:25 AM
4
Cpanel doesn't believe you exist. Bah.
I'll see if I can find you.
Posted by: Pixy Misa @ at June 14, 2006 07:28 AM
5
I'm copying your account back from the other server now.... Done.
It should work now.
Posted by: Pixy Misa @ at June 14, 2006 07:36 AM
6
It works! Thanks a lot!
Posted by: David Boxenhorn @ at June 14, 2006 01:17 PM
Hide Comments
| Add Comment
One More Time
During the Great Blog Whiteout of last Friday, I moved the blog.mu.nu site from Yuri (where the blogs live) to Kei (where the blogs really live) because I thought that was part of the problem. It wasn't, but since then all the blog processing has been happening on Kei. Ace of Spades HQ and The Jawa Report are now also hosted on Kei, because Yuri was running out of bandwidth. The result is that Kei, which was lightly loaded and generally zoomy before, now grinds a bit a times.
I'm going to move blog.mu.nu back to Yuri, leaving blog2.mu.nu on Kei. That should balance things out a bit. There
might be a hiccup or two while this is happening, but I'll do it during the day, my time, which is the middle of the night for the US, so most of you should miss the excitement.
Posted by: Pixy Misa at
01:33 PM
| Comments (1)
| Add Comment
| Trackbacks (Suck)
Minxlets June 13 Edition
What's new in Minx today? Well, I cleaned up the code, splitting up a big chunk of code into nice, easy-to-manage procedures... and breaking everything in the process. Then I fixed that, which got me back to where I started, function-wise.
Added smilie support.
You can see that in action now. See:
You can configure any smilies you want using your mxSmilies template:
Smilies Template
:) <img src="http://www.mu.nu/Forums/images/smiles/orange_smile.gif">
:( <img src="http://www.mu.nu/Forums/images/smiles/orange_sad.gif">
:-) <img src="http://www.mu.nu/Forums/images/smiles/orange_smile.gif">
:D <img src="http://www.mu.nu/Forums/images/smiles/orange_biggrin.gif">
:p <img src="http://www.mu.nu/Forums/images/smiles/orange_razz.gif">
:-p <img src="http://www.mu.nu/Forums/images/smiles/orange_razz.gif">
:P <img src="http://www.mu.nu/Forums/images/smiles/orange_razz.gif">
:-P <img src="http://www.mu.nu/Forums/images/smiles/orange_razz.gif">
;) <img src="http://www.mu.nu/Forums/images/smiles/orange_wink.gif">
Just put the smilie code, for example, :
), followed by a space, and then the img tag that will replace it. One smilie to a line, please!
Added gzip support. This makes pages download faster - 10 milliseconds of compressing can reduce the HTML file to one quarter the original size. As far as I know, all current browsers - Internet Explorer, Mozilla, Firefox, Safari, Opera and Konqueror at least - support this. It also saves bandwidth on the server, which means we can host more blogs at munu without sending Pixy bankrupt.
Working on form processing. Currently the comment entry and search routines are separate programs; I'm merging them into the main program and adding full template support for both forms and form results. That will probably be in place tomorrow.
Also, something I did yesterday that you might not have noticed yet: If you are logged in to Movable Type at blog2.mu.nu, Minx can now pick up your login, and confirm that it is valid against the MT password file. This means that Minx and Movable Type can share logins. Also, since Minx knows you're logged in even when you're just reading the blog, it lets me do things like allowing users to edit comments. No more oopsie, I made a typo and now I'm stuck with it - you can go back and fix it. Well, right now you can't, but tomorrrow for sure.
I was digging around in the code for the first version of Minx (or possibly the 0.2 or 0.3 version; I can't remember which is which) and found that I had already written a much more powerful conditional processing system that is 95% compatible with the new template engine, so I'm going to patch that in as well.
That's all for Minx for today; see you all tomorrow. I'm off to watch cartoons on my
new TV.
Oh, that's the other thing I was doing: A database wrapper that tracks the number of queries executed, the time each one takes, and the number of records returned. Useful for tuning your templates and for automatically aborting templates that run out of control.
Posted by: Pixy Misa at
01:25 PM
| Comments (5)
| Add Comment
| Trackbacks (Suck)
Tracks Are Back
Hi all!
Trackbacks are back in business. Some of them were lost during the attack, either rejected immediately or logged and then overwritten, but we do have about 50,000 that made it through and were waiting to be processed.
And that's after the stage 1 and 2 trackback-blocking methods (1 is changing the name of the trackback script; 2 is blocking the worst of the bastards either in the firewall or in Apache, before the trackback is even recorded). All told, the number of trackbacks arriving at munu is something like 100,000 per day.
Yuck.
Anyway, of the 50,000 that made it through, 49500 were rejected by Snark, leaving 500 to actually update the blogs. Normally Snark rejects about 99.8%, but since 80% of the trackbacks now don't even make it to Snark, that's probably about right.
One minor hitch - I lost the latest copy of the Snark blacklist, and had to go to an old backup. Since Snark builds its blacklist on the fly based on Snarkian probabilities, that's probably not too much of a problem. If someone sent us 200,000 trackbacks before but got lost along with the blacklist, they will very quickly and automatically find themselves back on it if they try that again. (And the
worst thing they can do is try to get lots of trackbacks through very fast. Anyone who sends more than 5 trackbacks in a minute gets blacklisted temporarily; send 50 in 10 minutes and Snark makes it permanent.)
Snark is currently crunching away updating blogs with the new trackbacks... Which takes
forever. The sooner we move to Minx, the better.
Posted by: Pixy Misa at
01:09 PM
| Comments (1)
| Add Comment
| Trackbacks (Suck)
Missing Files
Ever since the server craziness, I've gotten the following message after clicking on any file I uploaded with cPanel:
Not Found
The requested URL/[folder]/[file name].[extension] was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Apache/1.3.36 Server at www.sithoughts.mu.nu Port 80
Again, this only happens with cPanel, as I can still get to files that were uploaded the conventional way.
Suggestions? Sorry if this has been covered and I missed it somehow.
Posted by: CD at
07:31 AM
| Comments (3)
| Add Comment
| Trackbacks (Suck)
1
Okay, I took a look. Something crashed in CPanel when I was copying your blog across during the attack, and some of the directories are messed up.
I can straighten it out, but I'll need to be careful lest I make things worse.
Posted by: Pixy Misa @ at June 13, 2006 07:48 AM
2
It's cool. I'm in no hurry.
Posted by: CD @ at June 13, 2006 07:52 AM
Hide Comments
| Add Comment
Yes, I Know What It Looks Like
What can I say? I like that design.
Posted by: Pixy Misa at
04:42 AM
| Comments (17)
| Add Comment
| Trackbacks (Suck)
Posted by: Pixy Misa @ at June 13, 2006 05:19 AM
Posted by: Pixy Misa @ at June 13, 2006 05:21 AM
3
No smilies?

Posted by: Pixy Misa @ at June 13, 2006 05:24 AM
4
Ah, the HTML sanitiser was eating them. Solution: Process smilies after sanitising HTML.

Posted by: Pixy Misa @ at June 13, 2006 05:30 AM
5
Is MuNu Minx the same as your employer's Minx? That is, will the "real" Minx also work with MT tables?
Posted by: David Boxenhorn @ at June 13, 2006 01:33 PM
6
No, the real version uses its own database. I'm testing ideas and code at munu, but have to change it for the real system. (Actually, I've made a number of changes to the MT database to make Minx work, but in such a way that MT either ignores them or benefits from them itself.)
What I'm installing at munu right now is what I call Minx/MT. Minx proper will follow in a couple of months, but that will require you to migrate your blog and stop using MT.
I'm trying to do two things here: Get us off MT as fast as possible before it kills us, and develop a complete next-generation blogging (and lots more besides) system. Minx/MT allows me to quickly try out code on an existing database and userbase before committing it to the new system, and gives us the goodies a lot sooner than if I wrote the whole thing from scratch.
The new database design makes Minx a lost faster and more flexible than Minx/MT, but we probably won't see any of that until late July or August.
Posted by: Pixy Misa @ at June 13, 2006 01:46 PM
7
Cool. Will there be an automatic port from MT to Minx? (Both posts and templates?)
Hey, how about a spell check in the comment box? I think you can get free spell check source code on line...
Posted by: David Boxenhorn @ at June 13, 2006 01:58 PM
8
There will be an automatic port - that's the first thing I wrote.

Templates will have to be tweaked manually, but the templates for Minx/MT will work fine with real Minx. I might be able to do an automatic template converter once real Minx comes along, but there are a lot of differences to cope with.
I'll definitely look into a spel-cheker.
Posted by: Pixy Misa @ at June 13, 2006 02:48 PM
9
So far, so way cool Pixy! I am just astounded at the progress you're making on Minx. Can't wait to try it out.

Posted by: Teresa @ at June 13, 2006 03:04 PM
10
Sounds great. The MT port would probably be important for anyone, not just us. So your employer (are you at liberty so say who it is?) would probably like that.
While I'm kibbitzing, how about a blockquote button on the toolbar?
Posted by: David Boxenhorn @ at June 13, 2006 03:23 PM
11
The editor doesn't have a blockquote function.
It does have have an indent function, but no blockquote.
It also allows me to set up custom buttons, which is what I might need to do.
It has a lot, a lot more features than I'm using now, and you'll see them once I get a the post entry form up, but it doesn't have blockquote.
Posted by: Pixy Misa @ at June 14, 2006 08:52 AM
12
Cool. Indent is fine with me.
Posted by: David Boxenhorn @ at June 14, 2006 05:44 PM
Hide Comments
| Add Comment
<< Page 20 >>
Processing 0.01, elapsed 0.2269 seconds.
46 queries taking 0.2164 seconds, 114 records returned.
Page size 93 kb.
Powered by Minx 0.8 beta.