Archive for September, 2010

24th Sep 2010

What To Learn?

I’m in a bit of a Quandry.

I’m in all out job search mode, and I get a fair number of inquiries from recruiters each day.  They seem to like my resume.

So far, so good.

The thing is, I do know a wide range of tech, and much of what I see fits me well, but there is often some skill that I dont have, such as some language or some bit of technology.   Either I dont know RoR well, or .Net, or am rusty on Java, etc.

There is so much that I could learn, but there is only so much time.

So that is the fun part.. I am a great generalist, and am interested in a lot of facets of Tech.  So what to focus on?  It’s no good changing gears every day.

My idea at the moment is:  I’ll jot down the things I am very interested in learning. and hopefully a couple of folks will write me and say “well hell, Daniel, just dont sleep — you mean to say you dont know all of this already!?”

Languages and Frameworks

  • PHP – I know 5.x, and a bit of CakePHP.  So, Zend FrameworkSymfonyCodeIgniter? Others?
  • Python / Django? – I’ve gone into python and have made minor changes.  I like Python from what I know of it.
  • Ruby / RoR – I’ve done some Ruby on Rails tutorials, and dug it.  I have not had a project to really get my feet wet with it.
  • Perl – actually, I am pretty good wth Perl.  I  just have not touched it much since 2006 at Friendster.  I actually wrote a perl shell back in 1992.  Catalyst FrameworkMason?
  • C# / .Net / Mono – this may come as a surprise to anyone who knows my leanings to all things Mac and Linux.  My interest comes from wanting to do more with two key projects:
    • OpenSim – yep, OpenSim is written in C#, and runs on .Net or Mono
    • Unity – the scripting languages for Unity (JavaScript, C#, and Boo) run on top of Mono, and access underlying .Net libraries.  I also love the idea of Embedding Mono for other projects.

In the category of “well, if I need to go back to…”:

  • Java -  I have not done new java code since 1996!  I would not want to work on client side java at this point (who is doing applets at this point?)  — I would be into the whole Eclipse + server side angle (I’ve worked a bit with Weblogic and Presto)   Java has so many technologies associated with it at this point, that it is hard to know where to jump in.
  • Flash / AS3 -  I have not touched flash much since 2005.  I think HTML5 + JS + CS3 is the way forward.  I do like ActionScript, which is a close cousin of JavaScript.  When I dealt with AS2, I had one entry point on the first frame and used a lot of classes.  I didnt do the snippets attached to the timeline deal.  My leaning is that I could back into flash again for a specific project, but there are many other things I’d like to learn first
  • C / C++ – It’s been forever ;)

Content Management Systems

Ok, which to learn?  DrupalJoomlaWordPress?

NoSQL / SMAQ

I’ve been reading a lot about NoSQL, and just came across this article about SMAQ (Storage, MapReduce and Query)

What to learn?  HadoopCouchDBCassandraVoldemort?   etc…

Besides Programming

It’s obvious I am interested in a wide swath of the programming side.

Now, if someone were to ask me what I would do besides programming, I would say photography, writing, or possibly speaking / demoing.

The other big interest of mine is multimedia.  I know a bit, but wish I could just dive into
it for a year and learn a lot more.  Some apps I would like to know would be:

Logic Studio
Final Cut Studio
PhotoShop CS5
Maya / 3DS MaxBlender

A lot of the output of this would be directed towards work in Virtual Worlds (assets in
a Unity project, as one example)

(in other words, I know a bit of the creative side, and wish I had the time/money/chance to
really learn a lot more of it)

Anyways, to sum up, I’m interested in a lot, but every situation wants different skill sets.  Hard to know where to focus!

Posted in Daniel, Musing, Tech, WebTech | 4 Comments »

19th Sep 2010

In Unity, A Way Forward

Overview

I’m a longtime SL user (March 2006), and I think the 1.x and 2.x codebases are becoming an evolutionary dead-end.  I think the community will face a day of reckoning, and developers will show a way forward.  In some ways, this mirrors the situation of the LL server versus OpenSim.  The Unity development tool would seem to be a very attractive avenue forward.

The server side has been reinvented by OpenSim.  The client side needs a huge reset.

1.x and 2.x Codebases

The current situation with SecondLife / OpenSim viewers is that we have two codebases: 1.x and 2.x. The overwhelming majority of users are on some variant of the 1.x codebase (SL Viewer,
Imprudence, Phoenix).  The 2.x users are, for the most part, on the SL Viewer 2, or on Kirstens Viewer.

Another factor in the current situation is that Linden Lab has put all development effort into 2.x.  They know that the UI issues for the 1.x users are pretty significant.   Since most of the community doesn’t want anything to do with the 2.x interface, Linden Lab will have a hard time attracting much unpaid developer effort to their side.

The other trend affecting LL is that they have some features coming up that will require the 2.x viewer (meshes come to mind).   It’s an unfortunate mix of variables.

For some time to come, the 1.x viewer community will thrive.  They have made significant progress in giving the community what it wants (double click teleports, area search, inventory mirroring, better LSL editing options, more convenient Windlight UI access, just to name a few).  If LL were to pull support for 1.x viewer access [1], it would backfire in a big way — it would be an event that would lead to mass migration.  Whether they like it or not, they are somewhat forced to keep the 1.x viewer community connected.  They have clearly painted themselves into a corner.

[1] nah, they wont — I have a backchannel on this, as well as what was stated on The Developers List and also this one

In short, the 1.x UI is clearly the winner, but on the server side, the way forward will require 2.x.  The LL server / client situation is messy.

… And… neither viewer stream could hope to compete with an AAA level game engine within, say, the next year or two.  My concrete example is that the Unity engine is far ahead in many areas.

Enter the Unity Game Engine

What of true advancements?  What would have to happen to the viewer to bring it up to the standard of a AAA game title?

Looming on the horizon, there are significant walls for the 1.x and 2.x codebase.  To explore but a few areas, what can be done about Graphics, Animation, Sound, and Terrain?

Let’s focus on the positive for a bit :)

Graphics – A quick look at Unity demos (for instance, Tropical ParadiseShadows, and Butterfly) gives a strong hint as to its power.  Observe more lights in one scene, dynamic shadows on older hardware.  Custom shaders that can be written by 3rd parties.   Unity 3.0 will be released soon, and goes even further:

Physics – Physics in Unity are very advanced:

Animation – Unity has advanced object and character animation:

Sound – so much control as to mixing and where the Audio Listener is positioned

Terrain – very powerful from the built in editor, as well as from scripting, and a very well done extension (Terrain Toolkit)

Editing (3.0)Snapping & Marquee Selection — also note that there is a lot of scripting support (in JavaScript, C#, and Boo) which could be used to develop in-world editing.

Deployment – Here is the Overview for 2.6.  Unity is very well suited for Windows (Direct3D 9), Mac (OpenGL), the Web, Nintendo Wii, and the iPhone.  They are working on deployment for the Android, Xbox 360 and the PS3.

Where To Go From Here

It should be pretty clear that the 1.x and 2.x have little hope of catching up to something like Unity 2.6.  In the year or two it would take to get close, Unity and other game development engines will be that much farther along.  To me, it seems clear that there is a choice:

  1. Keep advancing the 1.x and 2.x codebases, picking up some of the features of Unity, but still being limited to Mac, Windows, and Linux
  2. Freeze current codebase (Linux will have to stay where it is…), and take the things about SecondLife and add them to an app built with Unity.  This will pick up additional platforms, and will tap into a much larger development community.

I note that there are at least two OpenSim + Unity projects underway:

Enjoy the links, ponder it, and think about where you want to put your development efforts for the next 2 years ;)

Posted in opensim, Tech | 4 Comments »

grupa LGBT