June 2007

You are currently browsing the monthly archive for June 2007.

I have received some very kind compliments regarding the Mechanical Dragonfly Wings that I have been seen to wear in recent days. These are in development for final sale, a difficult process as they bear flight enhancements, the behaviour of which is a very personal matter, but I do have a short piece of cinema regarding the “double-tap” behaviour.

Vimeo, unfortunately, at this time, has decided to “upgrade” itself. All Second Life residents will be aware of the exact meaning of this phrase; nothing looks as it used to, and random functions do not work. Thus, the above is on Google Video, much as it is an inferior service.

I flatter myself to think that I am at least known as someone of mostly Phlegmatic Temperament, even when peculiarities of Second Life are concerned. I am, I believe, reasonable tolerant of Flaws, even if I will occasionally make squawks of protest; these are mostly due to surprise.

There are some things, however, up with which I will not put.

NO NO NO

“Twitterbox say”? Have I accidentally entered the Pre-Teen Grid? Or perhaps we are expected now to write in “lolcode“? I believe that I do take some Care in the composition of Prose, and even if that is not the general perception, I am certainly sensitive to errors in this regard, even if at times I am known to play with them; the improper conjugation of verbs is as the squeaking of the brakes of a Hansom cab, or the squealing of a Guinea-Pig. I constantly have objects telling me things and this will drive me absolutely potty.

Natural Language Generation is a complex area of study, and even identifying a plural noun can be rather tricky; it appears that in this instance that has not even been attempted. For heaven’s sake, if conjugation is impossible, stick to the colon. Everything else uses the colon in any case; this offence against all civilised mores only occurs when llOwnerSay is used.

It really does feel as if some Linden or other has decided to repeatedly poke me on the nose. Stop it. I am aware that my nose is quite sizeable, it does not need poking.

The Jira issue is here: Fix the legibility and grammar/consistency of the new llOwnerSay implementation. Vote, and vote again.

Whilst I am waiting for the latest working version of the econd Life Client Thing to squeeze itself through the Aethernetical Pipes and plop onto my desk, I suppose that I might as well write a little about my experiments with automated photography, mentioned previously.

It has been said by myself (and, to be fair, others) many times that there is no way for a Script to take a Picture, and this is, speaking strictly literally, true. Scripts cannot take Photographs. However, there are ways of getting around this issue, as I have found recently.

The procedure at base works along the following lines: a script, as is generally known, can send a message to an outside Aethernet Server. That server can retain the message that is sent (”take a picture please”). One’s own personal Engine can also receive messages from the same Server, and one’s own Engine is furthermore capable of taking pictures - at least, of the current screen, not nearly as good as the in-world photography tool but hey ho.

To this effect I have an attachment which, at regular intervals, sends off a message to my own Server containing my current whereabouts. I also have a small program running on my own Engine, which contacts my Server regularly and says “are there any messages waiting?” If so, it downloads the information, takes a picture of my current screen, resizes it to appropriately small dimensions and writes my location onto a little bar at the top (also disguising the ugly top-of-the-window part of said screenshot). Since the aim here is to create a record of my activities for my own enlightenment, it also saves the location and a few other data to a daily log.

A SLifelog frame

The time delay between the making of the request and the taking of the screenshot is less than ten seconds, which is not too bad, though it does mean that my precise location is not precisely appropriate to the screenshot, but, well, hey ho again. More rapid polling of the server would help to eliminate this. Oh - the attachment that I wear can be turned on and off, as well. After it sends my location to the Server and my Engine receives it and takes a shot, that information is then deleted from the Server, so when information stops being sent no pictures are taken.

Finally, when all is done with, the pictures are thrown together in a pile and turned into a piece of Cinema, which speeds up my activities dramatically, one minute becoming one second of time. Here, for instance, one might see me building things, then being unsatisfied with them and deleting them (a common pastime):

SLifelog 2007-06-24 - building things and deleting them from Ordinal Malaprop

For technical types, the script on my own Engine is written in Perl, using curl to access a page on ordinalmalaprop.com, then using the OS X utility screencapture (helpfully pointed out to me by Mr Westbrook of the Electric Sheep) to, er, capture the screen. The ridiculously cryptic yet powerful program mencoder is used to compile a video for the day. Should I have the time it would be more efficient for the thing to run using cron or launchd or some such but to be fair, I am not terribly good with these particular tools and have concentrated more on getting it to work in the first place. Addendum: In practice, to produce the above, I actually used ffmpeg, which has options to pad the pictures to the correct size, and may switch to the use of that tool in general.

Ah - I see that the older client is sitting on my desk as I write this, wailing away in its birth throes, and I must attend. Actual scripts etc to follow.

Whilst in the process of trying to prove myself Full Of Nonsense whenever I have, in the past, confidently said “there is no way of taking screenshots via LSL” - there is a way, it merely has to be set up in an awkward fashion first, and what’s more, repeated screenshots as a one of the “Life Log” things that have recently been Fashionable are possible as well - I have decided to release one of the items upon which I have been working for some time but never quite got around to finishing: the Ordinal Stiletto.

From the Grid

This stylish and decorative blade is suitable for any formal or informal occasion where one might wish to not only impress onlookers with one’s taste in accessories, but also perhaps slip a few inches of cold steel between their ribs.

For further introduction please see:
- the gallery of pictures on Flickr
- demonstrative cinematography on Vimeo

At this moment, and until (my) evening of Monday the Twenty-Fifth of June, visitors to my Caledon shop will find that the Stiletto is reduced in price by L$50, to L$150! Though it will return to L$200 once I have the opportunity to reset the price tomorrow. Should you not wish, or be able, to take advantage of this opportunity, it is available on SLExchange (and probably SLBoutique shortly, but they are being a little tardy).

A perpetual problem of mine is that I am unable to concentrate on one thing for more than about, oh, an afternoon, leading to the unfortunate situation where possible projects and Matters Upon Which To Write flare brightly and then burn out within moments, like phosphorus sparrows. No sooner do I plan to write a Definitive Article upon some subject, which must be Gotten Right, than some new shiny object appears and drives the original one completely away from my attention.

The result of this is that I am rather poor at actually writing anything, as perfectionism restrains me from making an entry on something incomplete, yet I do not have the urge to complete it, and it is only when I reach a level of self-disgust at this that I throw out whatever peculiar half-finished objects that remain in my mind into this Journal, often in the form of Bullet Points. I believe that it was easier in my earlier days, when I was rarely thinking about more than three things at one time.

Enough of this preambling though; I will do my best to clear the decks. The subject of this entry is something that I call the Twitterbomb, though really it isn’t much of a bomb, unless one considers very slow-moving fragments that are in any case phantom to be dangerous. This was actually mentioned previously by Nick Wilson writing in Metaversed as he is a proper journalist who investigates things and writes about them, whereas I am no such thing and do not even have a picture of my own creation at the time of writing.

The Twitterbomb, as Mr Wilson says and as I mention in the comment section there, is a device for the Visualisation of timed and differently-authored data; the Twitter friends timeline is the easiest to work with, as it collects data into a single feed, but I suppose RSS feeds and such could be used. There is a central “bomb”, which reads in Twitter data via a proxy (a stripped-down version of the Twitterbox one) throws out differently-coloured “fragments” - the angle of movement and colour of these fragments is individual to each different author, thus each person’s output is represented by a line of tweets stretching out from the centre. Each fragment’s size is proportional to the number of letters in the tweet.

The fragments move outwards at a constant speed, with their distance from the bomb being a function of their age. There is a configurable maximum age, with fragments disappearing once they reach this. (Once rezzed, the fragments are independent, and with a busy friends timeline this could result in an awful lot of prims being around, thus best to use this in a fairly empty lot.)

I confess to not having a specific target to achieve here, but it is a toy that enables one to play with the possibilities of visualising data in Three Dimensional Form. One can look at the fragments produced and see, say, how active an individual is and their “rhythm” by observing the “clumping” and size of clumps produced; a wordy but regular poster will have fat fragments evenly spaced, someone who posts in bursts of short pieces will have thin lines separated by empty space and so on. A particularly significant event for one’s friends will be marked by a “shell” of tweets all appearing at the same time and expanding outwards. Changes could certainly be made to the way the fragments are emitted to test different concepts of visualisation.

I say all this, but actually, in practice I have Given Up on the Twitterbomb for the moment - which is likely to mean forever - since Twitter has taken to caching my requests and not giving me recent updates reliably at all. This is odd, since the Twitterbox seems to be working perfectly well, or at least is when both Twitter and SL are working at the same time (a combination of reliabilities that one is not advised to bet one’s life or significant bodily organs upon). With this in mind, once I am able to return to the world I shall be sure to post the relevant Code here.

Well, that is over with in any case. Next, something else, I believe.

I have spent quite a lot of time tinkering with this thing and thus, you should buy it immediately.

There can be few Engineers, Blacksmiths, Salvage Experts, Artists, Pirates, Safe-Crackers and so on who have not, at one time or another, wished that they had a portable yet effective solution to the problem of being required to cut through a Large Metal Plate Of Some Sort. Ordinal Enterprises, as part of its growing industrial tool selection, wishes to provide a possible answer in these instances - the Ordinal Cutting Torch!

This portable, adjustable device allows for the cutting of numerous different types of substance without being tied to bulky cylinders. Move inside the bowels of an enormous malevolent automaton, or amongst the boilers of a mighty aerial battleship, safe in the knowledge that you will be able to slice through solid steel at a moment’s notice! The most Advanced Compression Technologies employed allow the portable cylinders to last for a surprising amount of time, and well-oiled quick-release catchs and springs assure that one is able to replace them for fresh ones in only three seconds!

(It should also be mentioned that, whilst the Cutting Torch is not designed as a weapon per se, should one encounter any Clockwork Antibodies or Meddling and Aggressive Sailors, they would be extremely ill-advised to get in the way of the Torch’s flame.)

FEATURES

Intricate design
Particle and hardware light effects
Multiple custom sounds and animations, including safety typing AO
HUD control with gas supply indicator and touch commands
Compatibility with damage and combat systems

TO SEE MORE

Gallery of pictures on Flickr
Demonstration film on Vimeo

AVAILABLE FROM

Caledon (100,59)
SLExchange
SLBoutique

Cutting torch 1.jpg



Ordinal Cutting Torch - final(ish) from Ordinal Malaprop on Vimeo

I was alerted by Vint Falken that the position of Governor of Second Life would shortly be coming up for election.

Clearly, whilst Lord Philip has provided sterling service over the years, there are many things which could be improved, and technology marches on. I would therefore like to announce the campaign by the Punched Cards As Law Party for the position, with its candidate, the automaton Iron Plato.

Iron Plato 1

Herein I will list some of the campaign material that is available at the Headquarters - to be found at Nimue 168, 71 (Iron Plato sits in contemplation in the midst of the worst excesses of Blingtopia, so that his mechanical brain might properly understand the problems that face us as Residents).

Introduction

Welcome, reader! You are first of all to be commended on your initiative and willingness to entertain new ideas, evident in your investigating these Campaign Materials in the first place.

The Punched Cards As Law Party is very pleased to announce the candidacy of the automaton Iron Plato for the role of Governor of Second Life, a role which is shortly to be vacated. It is obvious to us that the activities of Humans in managing the Grid have been sorely lacking in Efficacy and Efficiency, and it is now time for Logic and Rationality - as expressed by Machine - to take their rightful place as the rules by which society must be governed.

To this end we have worked day and night to produce a Thinking Machine, known as Iron Plato and capable of solving every problem known to Resident through the remorseless application of A Priori Logic, and we wish to propose its candidature here. Please do read further and you will be convinced that this, indeed, is the entity that you would be best advised to vote for.

About Iron Plato

The Automaton known as “Iron Plato” is the culmination of many years of work by the men and women of the Punched Cards As Law Party (PCALP) to create a Thinking Machine so powerful it will be able to solve the problems of the Grid with fairness and justice, in the time it would take a human being to say “try clearing your cache”.

Unlike most candidates for Governor, Iron Plato is entirely free of scandal, and is immune to Bribery, Sexual Influence and the Corruption of Power. His intellectual capacities are of the highest calibre (as opposed to Political Figures more interested in Port and Ribaldry than Maths and Philosophy) and, with a full head of steam, he has the physical power of one and a half full-sized locomotives.

Manifesto

While Iron Plato is currently still engaged in the automatic process of devising solutions for every problem in Society - a process expected to finish some time in the next year - and thus unable to specifically deliver a precise manifesto, the following positions on Matters of Import have been divined by his principle attendant, Ms Ordinal Malaprop, through careful examination of the movements of his brain-gears.

On the matter of GRID STABILITY, Iron Plato clearly has a huge advantage over other candidates, as being a machine himself he is able to intrinsically understand the issues involved. As well as this, you as a voter can be assured that Iron Plato has a keen personal interest in maintaining the integrity of the Grid and improving its performance, since it supports the functions of his very mind. Iron Plato will spare no effort to make sure no-one is henceforth made to suffer the indignities of Lag, Sim Crashes, Region Crossing Mishaps and Prims in the Behind. In addition, on being elected Governer, Iron Plato will install Havok 5 as soon as possible; why wait for those concerned to develop it? (If, when this is read, Havok 5 actually exists, kindly substitute Havok N+1 where N is the current version.)

As concerns ENFORCEMENT OF MORALITY, you may be assured that Iron Plato has no interest in preventing humans and others from engaging in whatever perverted activities they may wish to, as he does not comprehend these sorts of fleshy desire in the first place. (There is some indication from certain subroutines that he considers all such things equally disgusting.) Only when said activities encroach on unwilling others, or when Other-World Policemen threaten to prevent the operation of the very fabric of the world, would he dispatch the constabulary - and then, with the clearest and most transparent explanations, laid out in an easily-readable punched-card format for all to see.

Many are concerned about GRIEFING AND CRIMINAL ACTIVITIES, and Iron Plato inherently rejects Chaos and Criminality from the very fabric of his metal being - such things are anathema to the principles he was built on. It therefore goes without saying that the iron fist in the iron glove will be employed whenever Cheaters, Thieves and Vandals are encountered, and Iron Plato’s superior mechanical Mind will construct appropriate retaliatory measures.

AGE VERIFICATION has exercised the pens of a number of the luminaries of the Grid, and the proposals have disturbed a number more. Iron Plato, understanding the issues around the protection and gathering of Personal Information, has no intention of engaging unreliable third-party philosophers in this matter, preferring to keep all relevant data stored in his own vast subterranean archives.

Regarding VOICE, Iron Plato will reject wasteful proposed systems and instead introduce IronVoice (patent pending), which is able to broadcast the exact tone and timbre of one’s own gears and steam engine to all in the vicinity. In all tests, even with the sadly flesh-driven and engine-less, this has proven to be considerably more informative than the whistles, coughs and general inanity common in more traditional and less innovative Vocalisation.

Finally, the issue of EXTERNAL AUTOMATA which seek to Swoop upon Land, record Details of the Activities of Residents, et cetera - while he has been constructed by forward-thinkers and the commercially-minded, Iron Plato has no sympathy for lesser Automata constructed without appropriate Foresight, and which are unable to comprehend the Philosophical Import of their actions. (Iron Plato actually has no sympathy for anything or anyone at all, but that is not particularly relevant here.) So-called “Bots” will be consigned to the scrap-heap with mechanical ruthlessness should they begin to interfere with the Grand Plan of General and Mathematically-Sound Happiness.

The above is but a small part of the product of Iron Plato’s mighty mechanical mind, but even so surely indicates to any Thinking Resident that Iron Plato is the candidate of choice in the forthcoming Gubernatorial Elections.

About the Punched Cards As Law Party

The Punched Cards As Law Party (PCALP) began life as a small discussion group of like-minded Intellectuals, Inventors and Entrepreneurs, examining the role that the marvels of the Steam Age, unhindered by human weaknesses, could play in eliminating war, disease, hunger and rivet shortages. It quickly became clear that without action in the political as well as technical spheres, those weak and corrupt humans currently in power would simply prevent any such a move, or - worse - take control of the Inventions concerned and use them for Evil.

The philosophical basis of the Party quickly developed with the aid of the Aetherial Telegram (commonly known as the “Aethernet”). This is a forward-thinking, clear-headed group, recognising that for all our sakes a partnership is essential between steam and iron on the one hand, and flesh and blood on the other, if Mankind is to progress and not destroy itself in an orgy of irrationality.

Justice, previously decided upon and enforced by weak and partial Policemen, Lawyers, Judges and Rulers, will be the purvey of the impeccable logic and rationality of the Difference Engine, and stacks of bright new punched cards will replace dusty law-books. The Machine, not prey to the Hatreds and Emotions so common in Man, will be not ruler but partner in a future so bright that one will surely be required to wear smoked-glass spectacles. It will be punched cards, not flowery speeches, which determine the nature of the world.

Within the group there are of course different factions, with some going so far as to consider that they might wish to replace organs of their Bodies with Machine Parts of brass and clockwork, but all are convinced that we cannot remain as we are.

All ties with the Confederation of Evil Geniuses were severed in 1894, and the twirling of moustaches is now prohibited by Party regulations.

The Punched Cards As Law Party is now operational as a Group within Second Life, and all are welcome to join, assuming that they are possessed of a Bright and Progressional Attitude to the use of Technology. Together, we will bring the Grid into the new Millennium.

This afternoon I decided to experiment with the “Wings3D” program in order to at least make some slight stab towards creating a Sculpted Prim. Given that, as I said, there is no version of the thing that will actually work on my main Difference Engine, I was obliged to dredge out a previous machine of obsoletish character - but when combined with the Exporting Plug In most kindly written and provided by Omei Turnbull, it was perfectly efficacious.

I transferred the texture thus created onto my main Engine, thence to the World, and applied it to a SculptedThing, and that was where my problems began. It seems from further reading that there are at the moment issues to do with how the World stores and compresses Textures, in that there are certain changes and Artifacts which result - these are not really visible to the Naked Eye, but to an Engine which is actually using the exact values of each coloured dot as instructions rather than appreciating the whole as an work of art as most of us do - as if there were a secret code embedded in individual letters of the Bible, say, except actually true - it can result in quite ridiculous results.

Touch the photograph below, if you would, and you will be able to see the whole of my experiment, including several pictures of myself looking very unconvincing in a pair of overalls.

me with balloonbombprim

I do hope that this issue is resolved very shortly, but I feel that I should warn others on this matter. I must say though that my experience with Wings3D was most positive; the principles of it are very simple to learn even without tutoring, and I was surprisingly able to operate it perfectly satisfactorily with but a One Button Trackpad. Once compression matters disappear I have to say that anyone should be able to create simple objects as components for a larger build - I would not expect to be able to fit all of one’s details into one complex prim, but it should save a lot of time and twisting and terrible frustration.

Just a quick note to say that a short cinematic illustration of the Knife-Pistol is now available….


The Ordinal Knife-Pistol from Ordinal Malaprop on Vimeo

Safety I am sure that we all welcome the latest Clarifying Announcement by the Laboratory reassuring residents that they are ready to ban pretty much anything at a moment’s notice, which will make us all much safer from whatever it was we were in danger from [note to self: fill this bit in later]. After all, it was apparently we who made it clear that certain types of content and activity were simply not acceptable in any form. I’m not sure that I recall that personally, but apparently I did, which makes me slightly concerned as to whether I am underestimating my late-night champagne consumption.

Champagne It does occur to me, though, that there may be those who are concerned that they might inadvertantly fall foul of these regulations. I can only put this down to inattention, really, as it is obviously completely clear and always has been that whatever it is that is currently banned can cause whatever punishment it currently does… but inattention is not Broadly Offensive and is thus excusable.

I suggest, then, that artisans muse upon the following and consider incorporating such mechanisms into existing scripts, something which can be quite easily done whilst one is waiting for the resolution of all of the ARs one has filed on one’s enemies and business rivals, as well as one’s neighbours for their Broadly Offensive opinions, haircuts and choice of wallpaper. (One must consider that it will take an appreciable level of time for even Lindens to ban all of them.)

The following should be I believe replace the control mechanism of any weapon:

control(integer level, integer edge)
{
    if (level & edge & CONTROL_ML_LBUTTON) {
        llSensor("", NULL_KEY, AGENT, 96.0, PI/4);
    }
}

sensor(integer n)
{
    // Someone might be hit by the bullet!
    llOwnerSay("You have attempted to engage in an action which might
        involve a depiction of extreme or graphic violence. In order to
        keep Second Life safe I am reporting you to Daniel Linden.");
    llInstantMessage(
        "7083b3f7-6634-44b8-ac35-d55835286dee",
        llKey2Name(llGetOwner()) + " has been trying to depict extreme
        or graphic violence and needs immediate banning to keep us all
        safe."
    );
    // The above line actually _will_ IM Daniel Linden, and if you
    // incorporate it into a real script I take no responsibility for
    // your continued existence.
}

no_sensor()
{
    // No potential targets, fire away!
    shoot_bullet_or_whatever();
}

and I would advise that the following be present in any poseballs, just to be on the side of Safety:

changed(integer change)
{
    if ((change & CHANGED_LINK) && llAvatarOnSitTarget() != NULL_KEY) {
        llSay(0, "Get off me, you filthy pervert!");
        llUnSit(llAvatarOnSitTarget());
    }
}
Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License.