Skip navigation

Open Source

warning: Creating default object from empty value in /var/www/vhosts/ on line 33.
Original author: 
Megan Geuss

A website built by two programmers, Stephen LaPorte and Mahmoud Hashemi, displays recent changes to Wikipedia in real-time on a map of the world. When a new change is saved to the crowd-sourced encyclopedia, the title of the edited article shows up on the map with the editor's location according to his or her IP address.

Not all recent changes are counted, however. Actually, the website only maps the contributions made by unregistered Wikipedia users. When such a user makes an edit, they are identified only by IP address. This is just as well—a similar website called Wikistream logs all changes to Wikipedia (although not in such a graphically-friendly way), and watching the flood of new entries can get overwhelming, fast.

LaPorte and Hashemi said they built their map using the JavaScript library D3, datamaps-world.js, a service for searching the geolocation of IP addresses called, and Wikimedia's recent changes IRC feed. The two programmers note in their blog that “you may see some users add non-productive or disruptive content to Wikipedia. A survey in 2007 indicated that unregistered users are less likely to make productive edits to the encyclopedia.” Helpfully, when you see a change made to a specific article, you can click on that change to view how the page has been edited (and change it back if it merits more editing).

Read 3 remaining paragraphs | Comments

Your rating: None
Original author: 
Jon Brodkin

Ubuntu 13.04.

The stable release of Ubuntu 13.04 became available for download today, with Canonical promising performance and graphical improvements to help prepare the operating system for convergence across PCs, phones, and tablets.

"Performance on lightweight systems was a core focus for this cycle, as a prelude to Ubuntu’s release on a range of mobile form factors," Canonical said in an announcement today. "As a result 13.04 delivers significantly faster response times in casual use, and a reduced memory footprint that benefits all users."

Named "Raring Ringtail,"—the prelude to Saucy Salamander—Ubuntu 13.04 is the midway point in the OS' two-year development cycle. Ubuntu 12.04, the more stable, Long Term Support edition that is supported for five years, was released one year ago. Security updates are only promised for 9 months for interim releases like 13.04. Support windows for interim releases were recently cut from 18 months to 9 months to reduce the number of versions Ubuntu developers must support and let them focus on bigger and better things.

Read 11 remaining paragraphs | Comments

Your rating: None

NASA has begun to open source some code if you are looking to dig into a cool project you might start there: Today we are launching, the latest member of the open NASA web family. Through this website, we will continue, unify, and expand NASA’s open source activities. The site will serve to surface [...]

Your rating: None

Back in the late 80s/early 90s I was very much into computer viruses - the harmless, fun kind. To a young boy, no doubt the concept of an invisible, mischievous, self-replicating little program was very inviting - and a great technical + creative challenge.

The very first virus I wrote was for an 8088, and it was called RESDELET.EXE. This was back in the age of DOS, before windows. In those days to 'multitask' - i.e. keep your own program running in the background while the user interacted with another application in the foreground - was a dodgy task. It involved hooking into interrupt vectors and keeping your program in memory using the good old TSR: Terminate, Stay Resident interrupt call 27h.

So RESDELET.EXE would hang about harmlessly in memory while you worked on other things - e.g. typing up a spreadsheet in Lotus 123 - then when you pressed the DELETE key on the keyboard, the characters on the screen would start falling down - there and then inside Lotus 123 or whatever application you were running.

RESDELET 2011 is an adaptation of the original. It hangs about in the background, and when you press the DELETE or BACKSPACE key, whatever letters you have on your screen start pouring down - with a bit of added mouse interactivity. This version does *not* self-replicate - it is *not* a virus, just a bit of harmless fun.

Source code coming real soon (as soon as I figure out how to add a git repo inside another repo)

This is a speed project developed in just over half a day, so use at your own risk!

Sorry for the flicking, there was a conflict with the screen recording application I couldn't resolve. Normally there is no flicker it's as smooth as silk.

Your rating: None

It's been quite a while in the making, but I am very pleased with the news today that Adobe will be embedding Alfresco technology as part of its LiveCycle Suite. A while ago, I wrote a blog about embeddable content repositories. It was clear then and more clear now that the old generation of content repositories is not really designed to be embedded as part of content-oriented applications. Yet, we all know that there is more information in content than there is in databases. Why can't applications use a set of services for managing content the way they manage data in embedded databases?

On this particular news, ComputerWorld reports Raja Hammond, Group Manager for Adobe LiveCycle, as saying, "Alfresco has a fantastic lightweight installation. It
is J2EE server-based, so it is very much aligned with our architecture.
We're able with this release to totally embed it. We've done extensive
customization to the UIs to add additional capabilities to them. We've
integrated them tightly with the various solution components within

At InfoWorld, Brian Wick, Director of Product Marketing at Adobe said, "It's much easier, much quicker for our customers to build LiveCycle apps with the content services piece built in." This should be the sentiment of any product manager whose product handles content. This clearly the case of LiveCycle which handles potentially huge numbers of PDFs and forms.

Over at CMS Watch, Alan Pelz-Sharpe, a long-time ECM observer, blogged on the announcement that, "It's been a while since there was a big product announcement in the ECM world, but today's announcement by Adobe that they will be embedding Alfresco into their LiveCycle Enterprise Suite will doubtless garner a few headlines. Alfresco, the UK-based open source ECM company, has certainly done a great job of marketing themselves since their launch a couple of years back, stealing some limelight from more established and much bigger vendors such as Interwoven, Vignette, and OpenText. The question we have to ask is whether this announcement is another marketing
  triumph, or whether it suggests something more substantial. First off is the fact that it is a real OEM (Original Equipment Manufacturer) deal, and the technology will actually get embedded into the Adobe offering, so it is more than simply a paper partnership."

It is also significant that the Alfresco platform is open source. Open source allowed Adobe and our dozens of other OEMs to try out Alfresco before even approaching us. Open source also provides a level of comfort and confidence in a platform for services like content services and content repository. It is much better than providing code in escrow. it actually provides a community as well to ensure the long-term success of the platform.

We look forward to a fruitful and simbiotic relationship with Adobe. We believe that this is the beginning of looking at content management as a peer of database management of an essential component of any enterprise-class application. Congratulations to Adobe on all the hard work and the new release.

Your rating: None

Tink posted a great library manager for using external assets in your flash projects. When you start getting deep in projects you end up either having to roll your own that might end up being project specific, or you can just grab this from Tink and it is nice and standardized now for you.

Here’s and example of our Library & LibraryManager classes that we use in some of our Flex and AS 3.0 projects to manage our external assets stored in SWF’s.

The classes enabled you to create multiple libraries of embedded (retaining and giving access to code) or loaded SWF’s.

You can create instance of Library wherever you want, but you can also create them through the LibraryManager giving you a single class to gain access to all your Library instances.

As you develop more and more flash/flex projects with AS3 these types of utilities come in handy. Another that comes to mind is Arthur Debert’s BulkLoader and polygonal labs Data Structures for Game Developers that are all great kits.

Add Tink’s Library and LibraryManager to your arsenal today! Thanks Tink.

Your rating: None

What turned out to be just something to finally scratch a strict typing itch i'd had with tweening has no become and full blown side project. Not only did Moses get me started, but Graeme Asher and John Lindquist fueled the fire as well. Graeme's been working on Tween3DCamera and John's been helping me add some other properties like scale/scaleX/scaleY/scaleZ to the property types as well as a small refactor.

If you've tried Go3D lately, you'll notice that I had put static property methods (yeah kinda weird name, but that's what they do ) in, but have now moved them to in the properties directory. It seemed to make alot more sense with what their function was, and has been deleted for now since it serves no purpose.

check out the project here:


One thing I added just today was the ability to pass a tweenTarget for a 3D object. If you look at the code samples below, you can now just pass a target and it's position and rotation will be used to tween to. You can also use constants to just tween to position or just rotation. You can also pass custom properties for it to use with the target. The swf demo I've posted in the playground basically tells the Cylinder object to use the properties of the orange sphere.


  1. protected function tweenAll(e:Event=null):void
  2. {
  3.     resettargetObject();
  4.     tween = new Tween3D(targetObject, [Value.tweenTarget(middleObject)], duration, Easing.easeOutElastic);
  5.     tween.start();
  6. }
  8. protected function tweenXYZ(e:Event=null):void
  9. {
  10.     resettargetObject();
  11.     tween = new Tween3D(targetObject, [Value.tweenTarget(middleObject, Value.XYZ)], duration, Easing.easeOutElastic);
  12.     tween.start();
  13. }
  15. protected function tweenCustom(e:Event=null):void
  16. {
  17.     resettargetObject();
  18.     tween = new Tween3D(targetObject, [Value.tweenTarget(middleObject, [Value.X, Value.Y])], duration, Easing.easeOutElastic);
  19.     tween.start();
  20. }
  22. protected function tweenRandom(e:Event=null):void
  23. {
  24.     tween = new Tween3D(targetObject, [Value.x(getRandom()), Value.y(getRandom()*.5), Value.z(getRandom())], duration, Easing.easeOutElastic);
  25.     tween.start();
  26. }

Value.tweenTarget() returns an array of Go3DProperty objects that Tween3D expects to get to do the tween. It's basically a convenient, yet strictly typed way of doing things. I'd say we're having as much fun as untyped objects at this point - Even more probably ;)

I'll be teaching on Go3D at the Toronto class in 2 weeks, and if you haven't signed up yet, I seriously suggest getting out there asap - seats are filling up

Now, the reason I say we need base 3D classes for all 3D engines to use is because in a situation where I want to open this up for Sandy3D or Away3D or any other 3D engine that uses x/y/z/rotationX/Y/Z/scaleX/Y/Z, I'd have to write specific classes tailored to their api and object types.

We need to have one set of common 3D classes that define the atom level of a 3D object with the main 10 properties:

x, y, z, rotationX/Y/Z, scale, scaleX/Y/Z

So, I'm going to be starting such an effort and see how that pans out ;) It makes too much sense especially when you consider any project that has to work with a 3D engine, but isn't integrated with the code base. ASCollada being one, and Go3D being another.

I'd love to hear people's thoughts on this matter.

Your rating: None