Archive for the 'Development' Category

megaprim.sl

Hello there! This appears to be an actual post, for the first time since 2008. Amazing, no? Anyway…

I have spent the last day and a half or so working on a new website, http://megaprim.sl. It is a megaprim search engine – essentially, enter the required size and it’ll show you the best matches and send you one of your choice. It also does a couple of neat things like allowing greater/less than searches, skipping axes, and searching various permutations that might match better than those you actually entered. Additionally, for more for show than anything else, it renders previews of all the prims. Because it can.

Example search: Any prim with one side of 100m (when would that be useful? No idea!)

Hopefully someone will find this vaguely useful. Comments would be appreciated! :D

Plurk userscripts for Greasemonkey and GreaseKit

EDIT: Updated to actually link to these scripts.

Hello, potentially non-existent readers! This blog shall briefly show signs of life!

On the topic, I have created three userscripts for use with Plurk. Two will work with Greasemonkey and GreaseKit, whilst one will only work in a Fluid SSB.

Collapsible Dashboard

This script will collapse Plurk’s dashboard to save space, and will additionally remove the footer links. The dashboard can be expanded by clicking “? Expand dashboard”, and collapsed again by clicking “? Collapse dashboard”. It’s useful on screens that aren’t very tall. The collapsed dashboard will still respect the CSS style of the dashboard in question.

You may find this script here.

Reply blocker

This script adds another entry to the menu you get when you click the arrow by someone’s name, labelled “Block from replies.” Clicking this button will result in replies from the plurker in question being hidden. This functionality is, for some reason, not provided by Plurk.

To unblock a user, click the “Block from replies” button again (it currently reads “Block” and not “Unblock” even if they’re already blocked). Note you’ll have to use a plurk from them to do so – e.g. on their timeline, or on your timeline if you follow them.

The list of people to block is kept in a cookie, and thus is not shared across computers. Also note that, although any replies by these people will not be visible to you, they will still count as unread (there’s no good way to determine who made a reply until it’s loaded, so this is unfixable).

As a final warning, this script alters the Plurks.renderPlurk function. This shouldn’t be a problem, but if your timeline suddenly starts coming up blank, try removing this script.

You can find this script here.

Plurk Notifier (Fluid only)

This script, which is for Fluid only, will add a badge to your dock showing the number of unread and new plurks. Additionally, a growl notification will be given whenever there is a new plurk indicating the content of the plurk. Screenshots:

Two unread plurks

Growl notifications:

This one alters the Poll.showUpdates function, so in the unlikely event that the notifications in the bottom left stop showing, this may well be to blame.

You may find this script here.

All of the above are used at your own risk and so on. The latter two have some comments at the end noting what the Plurk functions used are for.

Oh yes, and I’m Katharine on Plurk, but I tend to reject friend requests from people I’ve never heard of.

AjaxLife 0.3.2 tomorrow

AjaxLife is going to be updated to version 0.3.2. Here is a pair of screenshots demonstrating the added features:

List of groups I\'m in.

Conversation amongst the members of the AjaxLife test group

Here’s the new feature list:

 

  • Group list in the IM window
  • Group IMs work correctly – including joining, leaving, starting and conversing.
  • The position of the map beacon is shown on the minimap if applicable
  • You can now change inventory item permissions and descriptions via their properties (right click on the item and pick “Properties” from the menu.)
And a bugfix list:
  • Map textboxes now reflect what the map thinks you want to look at
  • Fixed: Issue 9: God Summon Does Not Work. [Lindens]
  • Fixed: Issue 11: No Group IMs, Group IMs go to Instant Message Tab.
  • Fixed: Issue 16: Hebrew in AjaxLife causes profile windows to have unneeded scroll-bars

Additionally, the following was fixed without fanfare in a minor patch to 0.3.1:

  • Issue 10: No Way to Scroll Down Friends List.
And the following changes were made:
  • The map now shows a waiting indicator when attempting to load data for unknown areas – it no longer shows popup messages.
  • The map will let you select blank areas, although teleporting to the, etc. will not work (obviously). These areas will be highlighted in blue instead of red.
I hope you like the changes/improvements/fixes!

 

More AjaxLife development progress

Here are some more screenshots! :D

Going to add the ability to start your own group IMs tomorrow (hopefully), among other things. :)

[COMPLETED] AjaxLife update deploy in progress

[01:57 GMT] We’re back! Release notes as soon as I work out what they are.

[01:52 GMT] Waiting for the server to boot up…

[01:50 GMT] Deploy complete. Booting everyone left online (for the last two hours!) and restarting.

[01:29 GMT] Client deploy complete and tested. Server setup complete and tested. Server deploy in progress.

AjaxLife logins are disabled while we update things. Full release notes will be made available when I’m done.

If you can’t wait, feel free to browse through the svn commits. :P

Subversion structure change

The subversion repository at Google Code is no longer going to contain a “trunk” which is always stable – instead, it will contain whatever I ended up with after I finished working. When I feel happy enough with it to push it out to ajaxlife.net I’ll tag it in svn. The last version I had up there is currently tagged 0.0.1, and is identical to revision 34 of the trunk.

The net effect of this is far more frequent updates to the code, and less of me having to spend hours undoing stuff I did due to not having a copy of it.

Basically, if you want working code, look for the largest number in http://ajaxlife.googlecode.com/svn/tags/. If you want recent code, look in http://ajaxlife.googlecode.com/svn/trunk/. I’ll be dropping my own server code into the trunk shortly. The client code is so hideously broken it gets to be an exception until I have it fixed (which shouldn’t be that hard, really – it needs to be ported back to an old UI library, and it’ll all magically start working again).

I hope this makes people who want more recent code happy. Also, contributions would be welcomed, although this will involve digging through my mess of C#/JavaScript.

[EDIT] I’ve committed the server changed – see here for a list of changes.

Aditi, please

Dear Linden Lab,

It’d be really nice if we could have a beta grid. Please could this theoretical beta grid also include a mono sim.

Many thanks,

The TG

New AjaxLife functionality – coming soon

I’m working on new AjaxLife features. Hoorah.

I’d hoped to have a new version out by last Friday, but I changed my mind about what I wanted to get into this one. As such, here are some screenshots of the upcoming features to make up for it:

See pictures!

[FIXED!] “Error retrieving the login response from the server”

I’m bored, so I’m going to see if I can get round this bug. :P

First step: reproduction. This is easy:
Login error

Step 2: Found the offending XML:

<member><name>name</name><value><i4>1</i4></value></member>

(“i4″ should be “string”)

Step 3: Give up because my internet connection’s dying.

Step 4: Roll out fix.

Step 5: Announce success.

AjaxLife – Request for Translations (also a minor change)

[19:17 06/01/08] I have a Hebrew translation, courtesy of Smiley Barry. I’m waiting on more contributions before I add it in, since doing so involves deploying server code, which is tedious.

[UPDATE 09:39 06/01/08] Fixed a display bug in Firefox, the only browser that actually seems to care about such things, caused by uploading ui.css as text/javascript instead of text/css.

First, AjaxLife now uses javascript files minified and munged by the YUI compressor, then merged into a single file.

Right. Now, it would be very much appreciated if anyone capable of doing so with free time could translate AjaxLife into the language of their choosing, or update the existing translation for that language.

The language file can be found at http://static.ajaxlife.net/translate.txt – to translate it, change the text on the right, in quotes, to the translation of whatever is in it right now. The text outside these quotes must remain unchanged. Additionally, the UI assumes that the strings in some places (e.g. map buttons) will not gain in length significantly – otherwise, the buttons will overlap. Any text in the format #{word} is a placeholder – do not change this text, but place it where the text should go. The word is usually fairly self-explanatory. Please send your files to katharine@katharineberry.co.uk using UTF-8 encoding.

If you know what you’re doing, and there’s already a partial translation for your language, you can find it at http://lab.katharineberry.co.uk/ajaxlife/AjaxLife.Strings.js

Any efforts will be much appreciated.