Meet you back here in half an hour.
What are you going to do?
What I always do - stay out of trouble... Badly.

Monday, July 30


Limits Of Shrinkage

I'll have to tidy this up and post it at, but a few notes on the image resizing features in Minx.  Except where noted, these apply to both manual and automatic resizing.
  • If you resize an 8-bit GIF or PNG image with transparency (index or alpha), the transparency will be lost.  If you need to retain the transparency, you'll either need to resize it using a paint program (Paintshop Pro, Fireworks, Photoshop) or use a 32-bit RGBA PNG file instead.  This is an issue with the image library used by Minx, and isn't likely to be fixed soon.
  • If you resize an animated GIF, only the first frame of the animation will be kept.  This is fixable, but not a very high priority.
  • For automatic resizing only, if the resulting image is up to 1100 pixels in dimensions (e.g. 500x600, 300x800), the system will apply a high-quality but CPU-intensive Anti-aliasing filter.  For larger sizes, it will fall back to a bilinear filter, which is good enough for photos but will show some aliasing (jaggies) on line drawings.
  • In Minx 1.05, manually resized JPGs are processed with a quality setting of 75%; automatically resized JPGs with a setting of 85%.  In Minx 1.1, the default for both modes is 80%, with a quality/q option available to override this: [img=/images/foofle.jpg size=50% q=90%]

Posted by: Pixy Misa at 10:35 PM | No Comments | Add Comment | Trackbacks (Suck)
Post contains 219 words, total size 1 kb.


Mmm, Cookies!

Should I call server-side cookies, cookies, or is that going to confuse people?

Posted by: Pixy Misa at 06:11 AM | Comments (7) | Add Comment | Trackbacks (Suck)
Post contains 15 words, total size 1 kb.

Sunday, July 29


Applets, Libraries And Functions (In No Particular Order)

Some of the features discussed in this article are included in the forthcoming 1.1 release. If you try to use these features in 1.0, they probably won't do anything.

The problem with a hosted service like is that you can't extend it with plugins.  You certainly can't upload your own PHP files, at least, not if you expect them to do anything.  Minx templates are very flexible and reasonably easy to work with, but they don't make it simple to use a piece of code someone else has designed.

Or they didn't - until now.


One of the (previously) undocumented features of Minx is template functions. You can define a function in a template like so:
[def comment]
<tr [if comment.even]bgcolor="#f8f4e0"[/if]>


And then call it like so:
[comments count=20 order=desc show=junk paged]
[call comment]
You can pass in parameters the same way you can with templates... which is another undocumented feature:
[include EditorSettings text Text]
Which are substituted into the template (or function... basically the same thing) as indicated by markers of the form {1}, {2} and so on for the first, second, and so onth parameter:
<td align="right"><label for="{1}">&nbsp;&nbsp;{2}</label></td>
Functions, once defined, persist and can be re-used whenever you want. That brings us to the first and simplest of the new features, libraries.


A library is simply a template that contains a set of functions. Libraries do not produce any output directly, but the functions can be used by any other templates, sub-templates, or applets that you use.

Libraries can be called from another site if the library is flagged as shared. A library will only ever be included once in your template; multiple references to the same library will be skipped.

The process of including a library cannot change global template variables, though the library can read global variables and create local variables. The library can read and update user options.

Calling a library creates a library object, which can be examined both within the library and in the template that called the library.


An applet is again just a template with restrictions. As described in the previous post, an applet can be called from another site, and cannot change global variables or template functions.

(I stopped and measured the overhead of an applet vs. a regular template on the test environment. It's about 20μs.)

Apart from producing output in your page, an applet also returns an applet object.  Applets can also read and update user options.  (More on that subject shortly.)

Posted by: Pixy Misa at 10:32 PM | Comments (2) | Add Comment | Trackbacks (Suck)
Post contains 408 words, total size 4 kb.


Ooh, I Just Had A Think

New feature coming in Minx 1.1: Applets.

Applets are just templates, but with some specific features and limitations:
  • Applets are called using the [applet] tag rather than [include]
  • You can call an applet from your local applets pool, from the global applet collection, or specifically from another Minx site, e.g. [applet AU.Sydney]
  • Like any template, applets can include Metl code (Minx Extensible Template Language), HTML, BBCode, JavaScript and CSS
  • Applets cannot update global template variables or global template functions
  • Applets can update user options
It'll only take me about a day to do all of this, but it will allow users to easily share functionality.  It does depend on the user option system... which will also take about a day.

I was going to leave this for 1.2, but I think I'll move it up.  Look for it soon!

Posted by: Pixy Misa at 03:57 PM | No Comments | Add Comment | Trackbacks (Suck)
Post contains 139 words, total size 1 kb.

Saturday, July 28


RSS And All That

Recently Steven had a comment that was held for moderation (it had a junk score between 5 and 10).  He didn't know this, because Minx doesn't notify the blogger when new comments arrive.  It doesn't do that because I really don't want the server sending out thousands, and eventually perhaps millions, of emails every day.

But bloggers still need to know when new comments arrive.

One thing Minx can do is generate an RSS feed for any folder.  There's a folder at yourblog:/edit/comment that presents a list of comments, and an RSS feed of that would give you a feed of all new comments as they arrive.  Perfect!

Except... That folder is private, so you have to log in to read it.  This seems to be impossible under Thunderbird, which is what I use for my RSS feeds.  It works under Firefox, but the Firefox RSS reader is unuseable for this task.

So the question is, do people think this functionality is a good idea?  I like it because can easily be extended to other things, providing you with a feed of everything that goes on on your blog without the server having to grind through the data all the time.

And what feed readers do you use?  Do they support cookies?

I'm considering a little desktop app to help manage this sort of thing, but that's months away, and will probably be Windows-only (though the API will be open) so I'm looking for something I can do in the meantime.

Posted by: Pixy Misa at 06:45 PM | Comments (6) | Add Comment | Trackbacks (Suck)
Post contains 255 words, total size 1 kb.

Friday, July 27


Okay, I Have Got To Try This Out


Heh.  Cool.  Though they should all be the same size.  Blame Microsoft.  (In fact, if I reduce my font size one notch, they are all the same size.  Looks like a glitch in the hinting in Verdana.)


It's all Greek to me...


*¶§&†‡@®™^+<=>×÷±μ-‐‒–—―_ ‗


Posted by: Pixy Misa at 09:40 PM | Comments (9) | Add Comment | Trackbacks (Suck)
Post contains 70 words, total size 3 kb.

Thursday, July 26


Font Set Two Is In The Water!

Font set two, featuring the work of the astoundingly prolific Manfred Klein.  I've only used a small selection of his work, the fonts I felt best suited to blog banners... Out of what I've downloaded so far.  That still makes for over 160 fonts.

Just as I was preparing this post, I heard back from Manfred giving me the go ahead.  So we're cool for school. smile

Samples in the extended entry; 164 files, total about 1.3MB.


Posted by: Pixy Misa at 06:08 PM | Comments (8) | Add Comment | Trackbacks (Suck)
Post contains 84 words, total size 8 kb.


Font Set One Is In The Air!

The first (of two) starter font sets for the theme builder is ready.  I hope to finish the second set today, and then finish coding the theme builder itself.

Samples are in the extended entry. This might take a while to load - it's about 3MB in 152 files.  (Update: Oops, they were 32-bit images.  Squished down to 8-bits now, so it's only about 1MB.)

As I mentioned before, these are all the work of the lovely and talented and all-round nice guy Nick Curtis.  Set two will highlight another font designer, Manfred Klein.*

* Assuming Manfred is okay with this.  I've emailed him about the project and hope to hear back soon.  Unfortunately, another designer whose work I very much like, Derek Vogelpohl, has disappeared from the net and can't be contacted.  Derek's fonts are under a mixture of freeware and non-commercial-only licenses, so I'm hesitant to use any of them without his consent.


Posted by: Pixy Misa at 01:44 PM | Comments (2) | Add Comment | Trackbacks (Suck)
Post contains 162 words, total size 8 kb.

Wednesday, July 25


From The Not Nearly Scared Enough File

Moetan: Because you have to know where to draw the line before you can cross it.

It does at least appear to have a coherent story... of sorts... unlike some entries from last season where the creators apparently just threw darts at a wall.  We're going to make a plink romantic comedy about plink yakuza plink mermaids.

Posted by: Pixy Misa at 05:19 AM | No Comments | Add Comment | Trackbacks (Suck)
Post contains 64 words, total size 1 kb.


New Light Through Old Windows

I think I'm there with the text effects library.

Opaque text with translucent shadow

Translucent text with translucent shadow

Translucent text with translucent shadow on an image

Tinted, translucent text with translucent shadow on an image

The trick was preventing the shadow from showing through the translucent text.  The shadow isn't really a shadow; it's a set of blurred transparent diagonally-offset black copies of the text itself, so it extends under the text.  If the text is also transparent, that means that what shows through is a nasty grey mess rather than the image.

To fix that I had to create two images, one for the shadow and one for the text proper, plus an opaque mask with the same contour as the text so that when I composited the images the colour and opacity values of the text overwrote those of the shadow, so that when I composited that with the image, you got transparent text instead of blah.

And it actually worked.

I might still tweak the shadow settings a bit (or I can just expose those settings so that they're user-tweakable).  It looks fine on a solid colour but comes out a bit weird on some images.

And no, you can't see the examples from where I forgot to turn off the Gaussian blur on the text pass.

Posted by: Pixy Misa at 04:00 AM | No Comments | Add Comment | Trackbacks (Suck)
Post contains 226 words, total size 1 kb.

<< Page 1 of 2 >>
81kb generated in CPU 0.0262, elapsed 0.2287 seconds.
56 queries taking 0.2097 seconds, 392 records returned.
Powered by Minx 1.1.6c-pink.
Using http / / 390