Monday, August 30, 2010

Make Win7 Fonts as Smooth as OS X

If you've ever used a newer Macintosh computer system, you'll know that the fonts seemingly appear to be crisper and better looking than the fonts on a standard Windows 7 desktop. Cleartype technology is Microsoft's attempt at making the best of those jaggy fonts and smoothing the edges, but in hindsight (since Windows XP) I've noticed that Cleartype isn't all it's cracked up to be.

Take into account also that the Windows fonts aren't exactly the best to begin with, (regardless if they are still an improvement over the earlier fonts in
Windows), and what we have is the equivalent of a font lover's nightmare.

For those who use a Mac, you are safe to ignore this post. You already have the benefit of GDI ++ type rendering of fonts in the form of Quartz, and your text displays look absolutely wonderful for it. However, for Windows users (XP, Vista and Windows 7) I offer a solution.

To better appreciate something like GDI ++ rendering of fonts, you first have to understand what it is that Cleartype is doing versus GDI ++, so I'll make an attempt to explain it below (using pictures whenever possible).

When comparing Microsoft to Apple one will immedia
tely think of countless ways to say one is better versus the other, and countless Internet wars have been fought with no end in sight. In this instance, though, I will only be giving a quick explanation of the two types of Font Rendering employed in each Operating System, so feel free to leave the Apple vs Microsoft debate for another forum.



Quartz and ClearType. Source: Smashing Magazine. Full Sized Image [+]

"Microsoft and Apple have both delivered technological advances in the world of anti-aliasing, but they have somewhat different approaches. The current versions of both operating systems use anti-aliasing and subpixel rendering. Both vendors have dramatically increased legibility within their operating systems, but controversy has arisen over the aesthetics and legibilty of each. Microsoft’s entry in the competition — which is characterized by tight grid-fitting — is aptly named ClearType. By forcing characters tightly into the pixel grid, ClearType increases contrast along the edges of glyphs and renders more crisply.

Distinctly different is Apple’s Quartz 2D, which puts emphasis on maintaining the shape and integrity of the typeface. This certainly makes sense, given the high proportion of designers who work on Macs. But Quartz rendered type often appears blurry, which can cause eye strain with extended reading." Smashing Magazine, The Ails of Typographic Anti-Aliasing


This is possibly the best explanation aside from the full Wikipedia entry about the subject that I can offer in order to illustrate the difference. For people who are much more curious and would like to really get in-depth about it, I'll offer both links:

Microsoft Cleartype: http://en.wikipedia.org/wiki/ClearType
Apple Quartz 2D: http://en.wikipedia.org/wiki/Quartz_2D

In any event, the point I'm making here is that the two different methods for font display can be a blessing or a curse depending on who you are talking with at the time. Cleartype has a slight advantage in that it often times makes on screen legibility a bit better for reading, but at the cost of font accuracy and smoothness. Quartz 2D goes for the smoothness and font accuracy approach (great for design, but maybe not so much for on screen legibility). My personal preference is for the font accuracy and smoothness versus the alleged legibility boost from Cleartype, and quite honestly I actually find it easier to read fonts rendered with Quartz 2D and GDI ++ methods over Cleartype methods.

There is a minor drawback to using something like GDI ++ on Windows, which is to say that not all programs in Windows will respond well to it. Paint Shop Pro, for instance, has a bit of trouble with GDI ++ running as some of the fonts in that program actually become worse as a result in the interface. However, the majority of windows and programs seems to fare well with GDI ++ enabled, including Firefox.

Now that the explanations are complete, let's get to actually putting this in place.

The first thing about GDI ++ to be aware of is that while it will make most of the fonts on screen look better, it can never hurt to actually have some of the Apple fonts installed in Windows 7. A good place to begin for this is to head over to Iceman's Emulation Page and download the converted OS X fonts:

http://www.jonmega.com/iceman/stuff/fonts/

After you install those fonts, we'll be ready to move onto installing GDI ++ to swap the on-screen rendering over to something smoother. A quick note about Iceman's OS X Fonts; The last one in the set doesn't seem to be a font that Windows will recognize, but it is safe to ignore it for this purpose. The rest, such as Lucida Grande, and Garamond series are the ones you really want. Also, if you have the extra money laying around (and are a hardcore Font lover) nothing spells font perfection quite like having Helvetica on your system, Neue Helvetica and Helvetica World. Unfortunately for many, Helvetica series is a commercial font and quite likely out of your price range. Each Font family has numerous iterations and types within the family listing and each individual font usually sells for about $26 each.

You may be wondering what the point of getting these fonts installed on your Windows machine is, and I'll tell you simply that it never hurts to be able to see how projects are rendered on a Mac. Secondly, one must also consider that the core Windows fonts are optimized for ClearType use and not Quartz use, and as such may result in lackluster results without adding the other fonts. Overall the reason would end up being "Why the heck not?".

After we've installed the fonts, it's time to head over to the GDI ++ page (english version) here: http://drwatson.nobody.jp/gdi++/index-en.html and download the GDI ++ program (it's free). You may want to note that the program is no longer being developed or updated, but for this purpose it still works just fine. After unzipping the download, simply place the folder in the Programs directory and run it. From there you can find it in the system tray and have access to all of the options it supports, including the ability to enable or disable the GDI ++ as you see fit.

After GDI ++ is running, you may want to select Redraw Desktop from the right-click menu on the icon in the system tray to get everything switched over to GDI ++. Also in firefox (and any program that allows it) you should go to the Tools -> Options menu and under Content choose Lucida Grande as the default font and possibly a font size of about 16 on a higher resolution screen for clarity. The prior step would apply if you went ahead and installed the Apple OS X fonts on your system.

The Final Verdict is truly up for debate, because either Quartz style font rendering or Cleartype have their advocates. Some will swear that Cleartype rendering makes it easier to read on an LCD, and that Quartz style rendering actually makes it harder. Still, you'll find that there are others who swear by Quartz style rendering for accuracy and legibility for reading. I happen to fall into the latter camp in that I prefer the GDI ++ rendering style (Quartz 2D) over Cleartype styles. Whenever I get a new computer I make it a point to install the Apple fonts, Helvetica Series and GDI ++ before I do any serious work.

You could say that I'm trying to make my Windows machine into a Mac, and am making up for something that a Windows system cannot do... but I like to think that because I'm a Windows user, I'm paying a bit of homage to Apple by tipping my hat in their direction for the ability to render fonts on screen beautifully.




Thursday, August 26, 2010

Stormtrooper Tattoo?

I've been thinking up tattoo designs and ideas for my first tattoo for awhile. Mainly in my head but this is the first time I've sketched out and idea, coloured it and been happy.

Introducing Storm Trooper Mickey. As I've collected Mickey Mouse collectibles since I was younger so I thought this would be a good start to my tattoo collection (I'm thinking about getting 3 tattoos in total eventually) and hey, my brother has a tattoo so I've got to get one too. I never thought he'd ever get one to be honest.

The cupcake is a nod to those who also bake and the Stormtrooper is from my Starwars obsession. Nerd bakers UNITE! I love baking (and had quite a cupcake obsession for a few years) so I had to get somewhat of a cupcake tattoo. I just didn't want to get a cupcake tattooed on it's own. That's been done and I wanted to get something original and combines my 3 loves. Cake, Cartoons and .. *thinks of a c word* Comics? No, geeky stuff that starts with C. Dammit can't think of it.

Anyway what do you think?


Wednesday, August 25, 2010

Is ' bad' teaching better than no teaching? (ie is it worth attending the only church in my town even though I know the teaching is not ' good' ?)

Is 'bad' teaching better than no teaching? (ie is it worth attending the only church in my town even though I know the teaching is not 'good'?)

>From the fact that you have been able to discern that the teaching at your church is not good I suspect that you are reasonably empowered in your spirituality and knowledge of the Bible etc. My gut says that here is an opportunity for you to be a giver rather than a taker.

If you remain in your church you can remain part of the (only) community of faith in your town. You can speak life where you can, lead "up" with humility and love to those who are appointed in the church to teach. You can use sacrificial service as a platform for the gospel. Without knowing the detail of your situation, my default advice is "stay in and bless."

A couple of caveats though:

1) You do need to ensure that you are being fed. Bible study with godly friends is one option. There is plenty of teaching material available online which you could access. Be careful to maintain your own discipline of devotions.

2) If the church is militantly anti-gospel (some are, I'm just not assuming that for yours) then it may be untenable for you to remain part of that church. But be very very careful here. It is very easy to be correct in your theology but not right in your attitude. It is very easy to "leave" in a way that is unwise and does damage to people. Seek godly counsel from people who know your context before you consider making this step - and if you do it, do it with humility, humility, humility.

Blessings,

W.

URL: http://www.formspring.me/briggswill/q/1010862419

Should You Trust Emerald?

Oh what wicked webs they weave... and what an amazing storm that has engulfed the SecondLife community.

Emerald-gate as it has come to be known, is the DDoS attack implemented by Fractured Crystal (formerly) the head of Modular Systems. The problem is, before this turned into the public storm it has become, it was indicated to me that a much larger portion of Emerald team actually knew what Fractured was up to, and were likely accomplices. Of course, it seems more plausible in the wake of the aftermath seeing as it never once occurred to me that Fractured was a "lone gun" in this.

It has been shown that a large part of the team actually were aware of what Fractured was doing, and we can leave the plausible deniability at that point, since the original blog postings from Modular Systems (which at that point came down to Arabella) implied that:

  • The team did not have prior knowledge of the planning or incident
  • It was not a DDoS attack
  • Was simply a "prank"
However, upon closer examination, we find that no matter how they try to spin this, it was a DDoS attack that cost the target to the tune of 2.1 terabytes of traffic with the same amount leeched from unsuspecting Emerald users in that time frame. Hearing Arabella play it off as if it were a harmless prank, and denying outright that it was a DDoS attack immediately puts her credibility in shambles in my book.

However, for the sake of argument, we'll let those two attempts to cover up what was done and side step the issue slide for the moment.

"Another YouTube video recording reveals that the entire Emerald dev team knew Fractured had been planning on adding the DDoS code, but did nothing to stop him until it was discovered. Arabella herself didn’t want to “scare the users”, so she made up the story about traffic." - Nelson Jenkins: via Alphaville Herald
Well son of a... ok so she definitely knew all along, as well as a number of the Emerald team developers, and not a single one of them lifted a finger or opened their mouth to stop it. But why would they stop him? By Arabella's own contempt for Hazim Gazov when being asked very legitimate questions about what happened and why, I believe I've lost even more respect for Arabella.

Considering she more than likely knew all of the details about the DDoS attack, and quite honestly how could she not have known if she was close enough to Fractured to get him to turn over the entire project to her in his leaving, I find it a slap in the face that when confronted by the man who has every right to press Federal Charges (or maybe International depending on where she is) and very easily link her to the incident as an accomplice, she brazenly tells him the equivalent of "f**k off, I don't owe you any answers".

Is she actually sorry that Hazim was the target of the attack? Not at all, she's actually glad about it. The only thing she and many of the devs are sorry about is that they were caught red handed. Regardless of whether Hazim is not respectable as a person or whatever exploits or damages he may have done, it still doesn't make it ok to launch a DDoS attack using the 170,000+ Emerald viewer users as your botnet to attack him. It isn't funny, it isn't excusable, and it wasn't done entirely by a single person.

Hazim Gazov questions Arabella Steadham's "Shennanigans" blog post.





Therein is a point I am making here and now in this post. Fractured Crystal may have been the highest profile in that group to have been involved, but I find it highly doubtful that he acted on his own when implementing the DDoS attack. Based on the relationship between Fractured and other devs acting in a close-knit fashion for prior acts:

"Phox and Fractured both conspire to get the third party’s ISP to cancel their service because of the leak, which they also did numerous times to the creator of the NeilLife viewer, but were ultimately unsuccessful. However, Phox still claims he was successful, and brags regularly about it." - Nelson Jenkins: via Alphaville Herald

Emerald Point April 10th 2010



Ok, now we have precedence for collaboration, and after watching and listening to the conversations, I can safely say there is much higher chance that a number of the devs were involved, and that the ones who weren't directly involved were fully aware of what was planned and being implemented. I'll give a number of exceptions, however, because I cannot possibly say that they all knew about it. We can surmise, however, that this wasn't the act of a lone developer in the team.

Whether or not Fractured Crystal has left the team is of zero consequence. There is nothing stopping him from jumping back into the development team using a new alt, not to mention that we're overlooking the very likely aspect that there were others involved who are remaining in the team unnoticed.

More importantly, the person most likely to have been in a position to speak up and stop it, not only did not speak up, but instead chose to attempt to cover it up or downplay the importance of what had happened. This person is now in charge...

Point blank: I do not trust Arabella, nor a number of the Emerald team which still exist today. I do not believe I will trust them at any point in the future, or anything they say in public. As far as I'm concerned, every word that comes out of that camp is suspect at best.

Short of a miracle, there has been entirely too much damage done not just with Emerald-gate, but before as well, to warrant my support for Emerald as a viewer.

Why Would Anyone Trust These Emerald Guys? Nelson Jenkins


After listening to the conversations, and doing a bit of backtracking to see what else has been done on behalf of that team, I can safely say that there is no amount of convincing that can be offered to sway me to use Emerald for the foreseeable future. If you are still able to convince yourself, after reading this, and subsequent materials contained, that it's still alright to use Emerald, then more power to you and I wish you the best.

Blindly remaining faithful to Emerald, despite very seedy dealings and now outright illegal dealings, is what managed to give them the ability to use 170,000 lemmings at their whim. I don't know about you, but I'm not willing to continue being a lemming... you never know when it'll lead you right off a cliff.

- Aeonix Aeon

Monday, August 23, 2010

Who did you vote for and why?

Who did you vote for and why?

I voted pragmatically and cynically. I did not vote informally, but I was tempted. I perceived no clear vision for the nation, nor a set of coherent principles underlying the policy base. The personalities tired me. Only one issue had distinction in my field of view - would I prefer no NBN, or no Internet Filter?

When I received the ballot paper my reaction was "is that it?" My choice (which I shall not reveal to you) was not an affirmation but simply the result of a random vibration in my indecisiveness balancing on the knife edge between two pits of mediocrity. If my numbering had truly reflected my affinity it would have been 1.4999995, 1.5000005, 3 (we had 3 candidates on our form).

URL: http://www.formspring.me/briggswill/q/1001407581

Do you have any interesting comments or analysis of the closeness of the Federal Election or the implications of a hung parliament?

Do you have any interesting comments or analysis of the closeness of the Federal Election or the implications of a hung parliament?

I am not disappointed that it's a hung parliament. I am no Antony Green but I think the prediction of Coalition 73, Labor 72 or 73 (depending on Denison which is now, sadly, is predicted for Labor), 1 Green, and 3 Formerly-National Independents is a good guess. This would make it anyone's game as the 3 Independents would truly hold the balance (able to bring the Coalition up to 76 or Labor+Green up to 76). If the Coalition lose Hasluck and are stuck on 72 then I think we'll see Gillard returned with the Independents support because there is no way the Independents will be able to offer stable government to the Coalition.

So I'm hoping for a 73-73 result with the independents (who seem to be quite sensible people) empowered to do some good.

If they choose for the Coalition I think there would be a push for a change in policy on regional infrastructure, including the NBN. I would suspect a decent commitment to _regional_ broadband at least. That would be a good thing.

If they choose for the ALP I think there would be a benefit in the form of increased transparency in government and parliamentary processes and some sort of detail (in terms of cabinet positions or so forth) that may reduce the power of personalities in the government ranks. That would also be a good thing.

Let wisdom and principle prevail. I will be disappointed if the three independents settle for some extra pork in their own electorates. Their rhetoric is that this is a "national interest" issue and I hope they stick to that.

It's obvious that Tasmania was sacrificed in this election. The 5% swing to the ALP in Tasmania was all about the NBN and the Libs knew it. Guy Barnett is right to be peeved at his machine just as much as Sid Sidebottom can blame his 2004 defeat on Latham's forest policy. I am hoping for Wilkie to get up in Denison just to prove a point that you can't/shouldn't ignore Tasmania.

All in all, this is a fascinating outcome for a governance geek. Any discussion between now and when the seats are officially called (not likely for days) is just commentary in a holding pattern. So I'll hold off further until then.

URL: http://www.formspring.me/briggswill/q/1001458172

why won't you say who you voted for?

why won't you say who you voted for?

Because, unless there's a significant issue at stake that relates to the mission of God through his church, flying my party-political colours simply gets in the way of doing my job. I do not want the reality, or the perception, that I use my "pulpit" to spruik for politicians or political parties. I try and stick to the issues.

URL: http://www.formspring.me/briggswill/q/1001468068

Sunday, August 22, 2010

Is Carmack working on a ray tracing based game engine?

At least that's what his tweets (http://twitter.com/id_aa_carmack) seem to suggest:

# There has GOT to be a better way to exactly test triangle-in-AABB than what I am currently doing.

# Idea: dynamically rewrite tree structures based on branch history to linearize the access patterns. Not thread safe…

# The valuation strategy behind the Surface Area Heuristic (SAH) used in ray tracing is also adaptable for rasterization engines.

# It is often better to use a global spherical sampling pattern and discard samples behind a plane instead of local hemispheres.

# @Wudan07 equal area but not shape. Got a better non iterative one? Poisson disc for higher quality.

# To uniformly sample a sphere, pick sample points on the enclosing cylinder and project inwards. Archimedes FTW!

# I need to decide if I am going to spend some quality time with CUDA or Android. Supercomputing and cell phones, about equally interesting…

# @castano triangle intersection is 33% of the wall clock time and a trace averages 12 triangle tests, so gather SIMD tests could win some.

# Doing precise triangle tests instead of just bounds tests when building KD trees makes a large difference with our datasets.

# For our datasets, my scalar KD tree trace code turned out faster than the SSE BVH tracer. Denser traces would help SSE.


If Carmack's pioneering work still has the same impact and influence on the game industry as it had in the 90's, ray traced games could become the standard "soon" (which in id terms means about 5-8 years :-).

UPDATE: I wasted a couple of hours and transcribed the part of Carmack's keynote at Quakecon 2010, where he's specifically talking about raytracing (from http://www.youtube.com/watch?v=LOdfox80VDU&feature=related time 3:17 ) English is not my mother tongue so there are some gaps here and there, this part is not about real-time raytracing, but about precomputing the lightmaps and megatextures with raytracing instead of rasterization:


"We were still having precision issues with shadow buffers and all this and that, and finally I just sort of bit the bullet and said “Alright, we’re on the software side, let’s just stop rasterizing, let’s just raytrace everything. I’m gonna do a little bit of rasterizing for where I have to, but just throw lots and lots of rays." And it was really striking from my experience how much better a lot of things got. There are a lot of things that we live with for rasterization as we do in games with making shadows, trying to get shadow buffers working right, finding shadow acné vs Peter Pan effect on here and this balance that never quite get as things move around. Dealing with having to vastly oversize this trying to use environment maps for ambient lighting. And these are the things that people just live and breathe in games, you just accept it, this is the way things are, these are the issues and things will always be like this just getting higher and higher resolution. But it was pretty neat to see a lot of these things just vanish with ray tracing, where the shadows are just, the samples are right. We don’t have to worry about the orientation of some of these things relative to the other things. The radiosity gets done in a much better way and there are far less artifacts. And as we start thinking about things in those terms, we can start thinking about better ways to create all of these different things. So that experience has probably raised in my estimation a little bit the benefit of raytracing in the future of games. Again, there’s no way it’s happening in this coming generation, the current platforms can’t support it. It’s an open question about whether it’s possible in the generation after that, but I would say that it’s almost a foregone conclusion that a lot of things in the generation after that will wind up being raytraced, because it does look like it’s going to be performance reasonable on there and it makes the development process easier, because a lot of problems that you fight with just aren’t there. There’s a lot of things that, yeah, it’s still you could go ahead and render five times or ten times as many pixels, but we’re gonna reach this point where our ten times as many pixels or fragment samples going to give us that much more benefit or would we really like to have all the local shadows done really really right and have better indirect ambient occlusion. Or you can just have the reflections and highlights go where they’re supposed to, instead of just having a crummy environment map that reflects on the shiny surfaces there. So, I can chalk that up as one of those things where I definitely learned some things in the last six months about this and it modified some of my opinions there and the funny coming back around about that is, so I’m going through a couple of stages of optimizing our internal raytracer, this is making things faster and the interesting thing about the processing was, what we found was, it’s still a fair estimate that the gpu’s are going to be five times faster at some task than the cpu’s. But now everybody has 8 core systems and we’re finding that a lot of the stuff running software on this system turned out to be faster than running the gpu version on the same system. And that winds up being because we get killed by Amdahl’s law there where you’re throwing the very latest and greatest gpu and your kernel amount (?) goes ten times faster. The scalability there is still incredibly great, but all of this other stuff that you’re dealing with of virtualizing of textures and managing all of that did not get that much faster, so we found that the 8 core systems were great and now we’re looking at 24 thread systems where you’ve got dual thread six core dual socket systems (?) it’s an incredible amount of computing power and that comes around another important topic where pc scalability is really back now where we have, we went through sort of a ..."

Wednesday, August 18, 2010

Cookie Monster overdose

I made m&m cookies today. The weather is so crappy that it's bringing everyone down. Dare you to still frown when you look at my (above) Cookie monster animation. Om nom nom nom

I can't blog properly yet. That requires thinking.

Tuesday, August 17, 2010

The Spare Parts of SecondLife

When you are building something complex, it is said that if you are left with spare parts in the box when it's finished, there is a high likelihood that something important is missing. Now that we've been using the SecondLife viewer for a number of years, it's time to take a look at this box full of spare parts sitting in the corner.

Global Atmosphere Settings

Related JIRA: http://jira.secondlife.com/browse/VWR-7677

W
ith Windlight in 2007 came a number of atmospheric effects such as water, sky and lighting which allows us to change the look and feel of the sims we are in if we feel so compelled. From brilliant sunsets, to an eerie fog and overcast day, the atmosphere settings allow us to truly set the mood of an area and create a better immersive environment. However, since the inclusion of windlight settings in 2007, there has not been the obvious inclusion of Global Atmospheric Settings along with it.


Would it not make sense to allow the sim owners and parce
l owners to set the atmospheric settings for global use? Imagine going to a sim and the skies are darkened with overcast clouds, or a brilliant shade of pink. The water would be tweaked as per the sim owner as well, allowing for countless water possibilities with the atmosphere to create just the right look and feel.

What does it take to actually do global atmospheric settings? I'm assuming those settings are in an XML file, and as such it would only require that the global settin
gs are saved as a server asset for the sim (just like all the other settings in estate and Land management) and thus would be downloaded as an asset to be applied by the user automatically (unless they are manually overriding the settings locally). The transition from one global preset to another should be set on a slow fader in order to go from one transition to another smoothly (and not suddenly switching).

Weather Effects

Associated JIRA: http://jira.secondlife.com/browse/VWR-6632

Windwardmark Interactive: http://www.windwardmark.net/

Again, with the inclusion of Windlight in 2007, Linden Lab has acquired a very powerful atmospheric system for their viewer, but seem to have ignored one of the major components of the Windlight system: Weather.

The Windlight system includes built in weather effects such as rain, snow, and more but by some fluke of logic in 2007 they were never enabled in SecondLife. Instead we are left with third party solutions which essentially require a ton of particles in 3D space and are not nearly as good looking or effective as would be the native solution such as found in Windlight. The reason the native solution looks better and runs much faster than an in-world solution with particles, is because the Windlight system runs the weather effects natively and attached to the user camera viewport, versus partic
les in the 3D space.

Video Courtesy of Windwardmark Interactive (makers of Windlight)


The weather effects for Windlight are actually quite impressive, considering they use the local viewport to render the effects quickly. I believe that using Windlight Weather effects would not require processing time on the server, as the effects can be run locally at full speed. It's not as though each individual raindrop needs to be able to be scrutinized by each person, so locally running the effects via camera screen space should suffice. Of course, weather would also be an option in the the Global Atmosphere Settings for the sim owner (and land management).

An excellent place to begin in order to figure out why weather was not implemented when Linden Lab acquired Windlight would be to understand that there is a missing essential in SecondLife (yet another spare part) which would effectively make enabling weather natively not feasible.

User Created Zones

"Zones are 3-dimensional areas in the scene. Within a zone the normal environmental world rules can be changed. The world itself can be thought of as one or two large zones. The primary zone is the main part of the world above the world water level. If water is enabled, the area below the water level can be thought of as another zone. However, what if you want an area below the water level that is not flooded with water, such as a doomed city or submarine? Or what if you want water that is not part of the world's "ocean", such as a swimming pool? This is where zones are useful.

Using zones, you can define areas that have different gravity, water, or fog settings, as well as change some of the sounds used within."


This is a quote from another system that already has this solved. Under water should be treated as a zone and as such the ability to "swim" should be native to the viewer. Likewise, the concept of defining zones is inherent to game design as a basic staple. In a sandbox system such as Second Life, allowing the participants to define Zones via special permissions on a prim, whereby the containing space of said prim would be the defined zone whereby those rules are in effect, would be the ideal route.


In the context of Second Life, Zone creation should require a Group Specified permission as it is a specialized prim whereby the laws of gravity, lighting, VoIP Exclusivity, and yes even Particles can be limited or expanded. The usage of Zones is also something to consider when creating an in ground swimming pool, for instance, whereby one of the faces is declared to be Linden Water and act as such, while the inside of the zone acts as modified gravity (buoyancy) and automatically trigger the swimming animation and movement archetype.


Defining zones for buildings and structures which would normally impede or block weather actually take about 30 seconds when the ability to do so exists in the building interface. It's simply telling it that particles outside of that zone do not enter that zone.


And that, is how to implement the already built in weather system of Windlight while ensuring it does not rain, snow, etc inside of buildings. Restricting via Parceling would be a bad idea because the parcels extend upwards into the sky, and would not look natural as you would see columns of no weather extending into the sky (and not in shorter limits of a zone space)



Linden Water Should Invoke Swimming Natively

Coming from the topic of Zones, most game engines define two zones immediately much like you can only have 6 lights in view at any given moment (and two of those lights are the Sun and Moon by default). The two zones which get automatically defined are usually the Above Water zone of the sim space and Below Water zone in sim space and are defaults. Above water, your avatar acts normally unless acted upon by another zone or force, and below water your avatar automatically swims unless acted on by another zone or force.

I find it odd that this basic foundation of programming a 3D environment was neglected since day one and continues to be neglected to this day. When I jump into the ocean, I should automatically swim - not walk along the bottom of the ocean like I have concrete shoes on.



While there are third party solutions available such as Scuba HUDs and swimming wearables which do this for you, it only goes to show that the community is making up for lack of basic functionality in the viewer, and presumably doing so with the ease that should have been present in actually incorporating that functionality natively in the viewer.

Particle Effects Natively in Build Window Options

Of course you can script particle effects in SecondLife, and there are now a number of HUDs you can purchase which give you some basic particle making abilities with a point and click interface, but a Tab on the Build Window natively allowing a user to have a prim generate particles would have been a no-brainer. This is one of the options that I actually miss from Activeworlds in that the Particle system is tied to the building window with a tab and GUI options to modify the settings of the particles you are generating, including ability to specify an image asset to use for the particle itself and glow.

When I first entered SecondLife a few years ago, I was baffled that particles weren't a native option on the build window, and that I either had to script them from scratch, buy a script and modify it, or purchase a separate HUD to use a function that was native to the SecondLife system.

This is one of those spare parts that have been sitting in the box for years (and probably since day one) collecting dust, forgotten. I think it's time to take the part out of the box, dust it off, and put it to use properly.

Enable Dynamic Reflection

Related Web Address: http://secondslog.blogspot.com/2007/01/first-look-into-mirror.html

Way back in the first look viewer when water reflection was enabled (2007), Linden Lab also temporarily enabled Reflection by itself, allowing prims to act as mirrors. At the time, this was huge news and was shown off quite a bit by users in SecondLife via videos online. However, something happened where the normal reflectivity option was removed prior to the release and the only thing we were left with was the water reflections. In effect, the mirrors were disabled before release, and seems to have been relegated to the spare parts box, forgotten.

In the world of Viewer 2 series where Dynamic Lighting and Shadows are being worked on, I feel it is wiser to go back and enable Dynamic Reflections before we continue forward. The reflectivity option would simply use the existing shader that is used for the water reflections, and the Graphics Settings would read "Reflections" instead of "Water Reflections".

I see no reason why mirrors should be disabled and forgotten in SecondLife, since it is clearly not a lag concern if we can already enable water reflections and choose "Everything" on the graphics setting. It has been about three years or longer since reflective surfaces were introduced and then subsequently removed before release, so I would believe at this point that whatever limitations there were to implementing it at the time (three years ago) should be easily overcome today in the year 2010. Below is a video from 2008 showing the use of the water reflections as a mirror (by turning the structure 90 degrees).

Video Courtesy of Adeon Writer in SL



Native Translation of Text


I'm fairly certain something similar exists for Emerald users, but I'd like to take it a step further and suggest browser language be used as the Google Translate API Language pairing, but instead of showing the original text, simply show the translation in text chat to the user's native language so all text is in their native language (whenever it's possible to detect the language properly and translate). Again, there are lots of third party HUDs which translate chat for you, but this is a feature which should be native to the viewer.

RTF Formatting of Notecards

In a world of Web 2.0 and text editing on the web, you would think that it would be possible to have a rich text formatting ability in our notecards by now. I'm writing this blog entry on blogger, and even the interface for blogger is more advanced than SecondLife notecard editing (which is really just sad).
I have the ability to choose a font, text size, bold, italic, text color, web link, text justification, bullet point options, text quote formatting, spell checking, as well as picture and video embed into the document. Don't you think it's about time that we should be able to use rich text formatting in our notecards as well?

Sailing the Null Space Oceans

When you look out into the vast seas of SecondLife, you often get a yearning to sail a ship. Unfortunately this is only possible in Linden protected waters, but really should extend to the null space oceans that extend outward in all directions from sims. Avatar tracking would be done by nearest sim or a central server which simply hands off connections to the users so that users in vicinity of each other connect via a multicast P2P and update each other as to movement, actions and VoIP proximity. In the null space ocean, it wouldn't be possible to build so a majority of those authorizations would be a moot point. Items left in the null space ocean would be set to autoreturn in a set amount of time by default if not being interacted with. This would essentially make it feasible to sail a ship or vehicle out into the infinite oceans without requiring costly servers to handle regions for them.

Allow Multicasting P2P

If there are hundreds of people in an area, it is safe to say that their local cache's are very similar. This is redundant data, and should be shared among peers in order to lessen the load on the main asset servers. Cascading Multicast information would allow the servers to lighten their load by instructing viewers to cascade redundant information to their peers (such as movement) and would remove the burden from the main servers greatly when attempting to process the simultaneous users in bulk. Aside from actions that require authorization such as building, there is quite a lot of information that can skip the main server and simply cascade to nearby peers in a multicast fashion. In the long run, this limited decentralization would allow for many more people to be in a single area without server issues.

Epilogue

Over the course of time, SecondLife as a system has left quite a number of useful additions aside, and forgotten them in their haphazard rush forward. Looking over the things which were forgotten in the past, as well as very obvious things today, it is safe to say that part of the disappointment with SecondLife isn't what it is unable to do, but instead what the viewer is able to do but has been relegated to the spare parts box in the corner to collect dust and remain forgotten.

Can you think of anything else that should be on this list? Go ahead and leave them in the comments.

Monday, August 16, 2010

Just like a zombie dinosaur, I have risen again. Reanimated if you will. I've decided to bring my blog back to life. Not that I actually used this as a real blog. It was more a visual diary of crap I've taken photos of and things I have drawn. OK so it was a real blog by the standards some people hold on the net.

Why have I decided to start blogging again? Well because I've blogged since I was 18 and recently I turned 28 years old and realized that I don't have much of an daily output to put my thoughts and writings into. Yes, I have Twitter. Some call Twitter a microblogging site. I call it more of a global chat. You can talk to anyone and that's what I usually use it for. I also have a Tumblr. A visual commodity of... photo junk that I post and don't usually expect anything in return (followers, notes, reblogs are beyond my understanding on Tumblr anyway) but all in all those are more social networking sites. The real social network is a blog. Kind of.

So here I am with my blog again. It's aliveeee aliveeeeee or dead because I'm lazy and won't remember to blog weekly if at all. I shall have to jazz my blog up with a decent layout and some fancy smancy curtains, I mean .. no curtains would look nice actually but it'll come up good.

Away I go to bake and do Motherly things.

The Kaaos Effect | Operator's Station

This is the second part of The Kaaos Effect in SecondLife, by MadPea Productions and presented by Orange Island. Covered here is the Operator Station (Telephone Era). Since I've already beaten this game, my slipstream points are all open and I do not automatically teleport to the next area. Instead I always teleport back to the Help Desk (last level).

Note: I did the 1933 Era first because that's the era I see most people get hung up on (aside from the Dark Room)

Wanna Play? Here's the Link:
http://maps.secondlife.com/secondlife/MadPea%202/21/217/42


The Kaaos Effect | Intro, Helpdesk & 1933

#SecondLife

This is the first part of The Kaaos Effect in SecondLife, by MadPea Productions and presented by Orange Island. Covered here is the Entry Area and Help Desk, leading to the 1933 Newspaper Office. Since I've already beaten this game, my slipstream points are all open and I do not automatically teleport to the next area. Instead I always teleport back to the Help Desk (last level).





Better Living Through Viewer 2

#SecondLife

We're going to start this post out by saying that most people who read the title immediately called their friends and told them to gather the torches and pitchforks. However, I'd like for you to suspend your disbelief (and possibly get off my lawn) long enough for me to tell you that this isn't an article that will entirely be praising the merits of Viewer 2.

If you aren't already aware, I'm a Viewer 2 user and probably one of ten people in SecondLife who actually like it. You're probably asking, "Aeonix... have you gone insane?" , and I completely understand where you are coming from. Rest assured I am not wearing Rosedale colored glasses, or drinking the Linden Lab Kool-Aide. I am, however, looking at Viewer 2 completely from an objective viewpoint which I find it hard to believe that most users of Emerald or other TPVs are able to do.

This doesn't mean that I am gung-ho about Viewer 2, because let's face it; there is quite a lot that needs to be fixed before it is the choice of a new generation (did I just use an old Pepsi slogan? uggh). Anyway, for what it is, Viewer 2.0 is not as horribly bad as people make it out to be. What we really have here is a situation where people are comparing Apples and Decepticons, in that many people who criticize Viewer 2 are people who are already biased from being die hard users of Emerald. As such, it's incredibly hard to remain non-biased when checking out the latest Viewer 2 from Linden Lab.

So let's take an objective look at Viewer 2, and along the way I'm going to make some suggestions on how to improve the Viewer 2 experience in order that we can find a middle ground for more experienced users.

To begin, I'm going to say right now that Viewer 2 isn't entirely up to par but by no means should we be advocating throwing the baby out with the bathwater. Let's focus a bit on what needs to be corrected:

That @#$%! Sidebar

Some like it, some absolutely loathe it with a passion usually reserved for lesser demons of hell. It's a simple solution: Allow the sidebar to detach as a separate window, and switch from docked to button on the bottom. I'm not saying to get rid of the sidebar, but an option to have it only as a button on the bottom would be nice.

I'm also not saying the sort of button where you click it and a little tooltip with more buttons pops up either, because that's just stupid (TPVs you know who you are). What I'm saying is as a button on the bottom, the sidebar is no longer docked to the side of the screen and upon clicking the button it simply opens a window with the tabs on it.

In Preferences, the user should have the choice as to which they prefer - button or docked.

Advanced Layout

In the great battle between which is better - Emerald or Viewer 2, (before you say anything just hear me out), many people have neglected the obvious. Viewer 2 is not the NASA console you've become used to with 1.23 and Emerald style viewers (especially Emerald). For the advanced user, Emerald is absolutely wonderful since it allows you to tweak to your hearts content. You open the Preferences and there are so many tabs it makes the mind boggle. However, if you hand Emerald to a first time user who has never used SecondLife, that amount of complexity will likely overwhelm them.

This is where Viewer 2 comes in. The point of Viewer 2 was to address aesthetics as well as first time user experience by making the interface more comfortable for people who are accustomed to a web browser. This layout is surely going to rub advanced users the wrong way (as I have seen from the mountains of feedback people leave concerning Viewer 2), but it's all misguided anger.

So let's look at a middle ground that makes sense.

When you activate the Advanced Menu (CTRL ALT D) you should be presented with a dialog asking if you would like to use the Advanced Layout for the viewer. Obviously if you are activating the Advanced menu, and even the Developer menu, you are knowledgeable enough to be using something like 1.23 or Emerald layout and functionality. Therefore it would make sense that activating the Advanced menu would give you the option to switch the UI to 1.23 or Emerald style (with an easy way to switch it back to standard Viewer 2 layout).

In terms of Viewer 2, the Advanced Layout would automatically take the sidebar off the side and make it a button on the bottom, the address bar at the top would be hidden, and most viewer UI items and layout would revert to 1.23 style which is very minimalistic.

Orientation Island Sucks

The Welcome Islands which were essentially tossed and the Orientation Island are both failures. I know this, you know this, and it's fairly common knowledge in SecondLife. What needs to happen is to build into the viewer an actual interactive tutorial. This tutorial doesn't require an entire island to be devoted to it, because moving, jumping, flying, wearing items, customizing your avatar, none of those things requires an island to teach somebody to do. If Video Professor can send me a DVD teaching me how to use a plethora of software and they don't need a fancy virtual environment to get the point across effectively, then SecondLife shouldn't have a problem.

New users should be greeted with this built-in tutorial mode, using the entire viewer as the teaching canvas. A little checkbox on the first tutorial splash should indicate "Show Tutorial On Login" to give users a chance to disable the tutorial mode on future login. In order to activate the tutorial again (should you wish) it should be a checkbox in Me -> Preferences -> General.

Teens on Main Grid

This has been a topic of recent debate since the announcement recently from Linden Lab. Yes, the Teen Grid will be shutting down, and/or merged with the main grid (depending on how you look at it). What this means is a flood of teenagers will be coming into the main grid, and the first reaction I've heard concerning this has been:

"The main Grid is no place for children or teenagers! What about all of the pedophiles and sex junkies in SecondLife?!"

If you let your children and teenagers on the Internet in the first place, chances are you aren't nearly as up in arms with that as you are with Teenagers coming to SecondLife. I find this amusing at best, considering the issue with Teenagers coming to the main grid isn't that there is quite a lot of seedy content and activities in the main grid, but that there is a lack of adequate age verification and enforcement of ratings. The issue isn't that teenagers shouldn't be on the main grid, it's simply that the main grid needs to make the age verification and ratings more robust in order to adequately handle them.

Of course, if you're thinking that teenagers aren't already on the main grid, think again. There is a high likelihood that it was teenagers who figured out how to spoof the age verification to begin with, and you've been dealing with teenagers a lot longer than you may realize. The only thing that closing the Teen Grid and moving them over to the main grid is doing, is to openly say there are teenagers on the main grid, but that doesn't change the fact that they were probably already here to begin with.

Let's worry less about the teen grid, and more about getting the ratings and age verification in order.

Updating In The Background

I already covered this in the last post (Asynchronous Updating) and even used a quote from my book chapter on the subject. The funny thing is, I wrote that chapter in 2009 (and it's heading to the publisher as of yesterday). The point of the chapter was to predict the future of virtual environments and e-commerce, outlining the things people need to be aware of going forward in order to succeed. One of those observations was implementation of asynchronous updating in the background, passively, in order to outline the effects of accelerating returns in information technology.

Why is this important? Well, I wrote that solution before it was announced at SLCC by Phil Rosedale, and while the blog entry was written the day before the SLCC announcement, one could argue that Linden Lab had been planning Background Updating before that, to which I nonchalantly point to the quote from my chapter written in 2009. I actually had written it in early 2009 while outlining what sorts of things businesses and users should expect to see from virtual environments in the future, and I had based those trending forecasts on current paradigms in progress.

I'm elated to see that Linden Lab is actually following that trend, however it worries me that the people at the helm of the ship figured it out over a year after I figured it out.


Oh, Magic JIRA of the Lamp!

The official JIRA (http://jira.secondlife.com) is your forum to post bugs, issues, and glitches. It's also the place to post suggestions for improving or adding new features. The main problem I see with the JIRA is that it runs entirely on popularity (and the whims of Linden Lab). Where else can you report that you are missing your offline contacts list in Viewer 2 and have the bug untouched since April 2010? (http://jira.secondlife.com/browse/VWR-18808)

I'm all for Agile Development tactics, but it actually helps to prioritize and quickly solve those issues if you are working on one and two week release cycles. Having bugs sitting in the JIRA for months on end really shows how little things are prioritized at Linden Lab. Of course it doesn't help that Linden Lab also laid off a large part of their team, either (including the talented Qarl Linden).

I'm a bit baffled about Qarl Linden being laid off, to be honest. Just out of curiosity, what qualifies the corporate cheerleader (Torley) to be more valuable to Linden Lab than Qarl Linden? Don't get me wrong, I think Torley is absolutely awesome and I'm in no way bashing him. But when it comes down to Torely or Qarl, how exactly was that decision made to lay off Qarl?

Who knows... maybe Torley works for watermelons and Qarl actually wanted a paycheck.

This brings me to the final point:

Linden Lab Needs to Stop Being Irrational

It's no secret that Phil Rosedale (Phil Linden) isn't actually making any changes to the roadmap that was enacted by M Linden. At this point in time, it's safe to say that the only reason Phil Linden is back as Interim CEO (notice how I put the Interim on that?) is because the company needed to settle the community by putting in their visionary at the helm again.

It's sort of like a room full of children raising hell and tearing the place up when the babysitter is there, but immediately falling into line the moment the parents show up. In this case, M was the babysitter, you are the children raising hell, and Phil is the parent coming home to make sure the kids stay in line.

Just because the parents are home, doesn't mean they are going to change what they are doing at the office. Which is to say, exactly what we were seeing with M Linden (Mark Kingdon). Mark is a business guy, so he knows what needs to be done to make things better at Linden Lab, however he doesn't know too much about the social structures and nuances of the virtual world, nor does he know that often times real world logic clashes with virtual world logic and outcomes.

In this aspect, we can say that Phil is telling us all the same thing that M was telling us, except that since it's coming from Phil, we all have our Rosedale Colored Glasses on and are willing to listen (mostly).

There is plenty more things that can be improved upon for Viewer 2, however there are a few things that Emerald and TPVs need to improve on as well. We cannot just heap all the blame on Viewer 2 without a critical eye on TPVs like Emerald.

What can be improved with Emerald

Of all the things chosen for Emerald to be worked on, it seems Dynamic Lighting and Shadows was the big thing. However nice it is to have a half working beta feature that only works correctly on very high end hardware and a specific subset of nVidia graphics cards, I think the Emerald team has their priorities a bit mismatched.

There are a handful of game changer additions to SecondLife in the Viewer 2 series that Emerald should be concentrating on implementing.

Shared Media

Alpha Layer/Transparent Layers (Skins, Tattoos, etc)

I believe the latter is being worked on in the beta, though I think Shared Media should be the first thing they should be concentrating on going forward since it is the biggest game changer in the virtual environment. The faster Emerald implements Shared Media, the faster the virtual world gets on the same page and moves forward.

Shared Media is going to play an integral part of the evolution of the grid and how designers and developers in SecondLife evolve their creations. Of course there is also Mesh Importing as well, but let's focus on what is important right now -

As far as I'm concerned, as long as Emerald does not have Shared Media, it is just as useless to me as Viewer 2 is to existing Emerald users. Plain and simple.

Without shared media, I see Emerald as a viewer that is just as crippled as Emerald users think Viewer 2 is. And quite honestly, I refuse to lose that large amount of potential and functionality just to join the masses over in the Emerald City.

Epilogue

There is plenty of issues with Viewer 2 that can be corrected, and I see there could be plenty of things to fix or make better with Emerald. So let's make this an interactive blog entry:

What sorts of things would you like most to be fixed about Viewer 2? Leave your answers in comments here, and link to the corresponding JIRA entry if you have one. I'm interested in seeing what the reader priorities are versus the JIRA priorities. If you are simply reading this, then by all means go ahead and vote on the issues posted here by our readers. Let's get the ball rolling to a better SecondLife!


Is it possible to feel like a dead bush on the wasted salt lands but actually be planted by the rivers edge and yielding fruit, Strongly planted?

Is it possible to feel like a dead bush on the wasted salt lands but actually be planted by the rivers edge and yielding fruit, Strongly planted?

Ouch. Yes. I think this is the disparity that often exists between emotion and reality.

In fact, it is here that faith kicks in.

In the words of a song I greatly appreciate at the moment ( http://www.metrolyrics.com/faithful-lyrics-steven-curtis-chapman.html )

I am broken, I am bleeding,
I'm scared and I'm confused,
but You are faithful.
Yes You are faithful.
I am weary, unbelieving.
God please help my unbelief!
Cuz You are faithful.
Yes You are faithful.

I will proclaim it to the world.
I will declare it to my heart
And sing it when the sun is shining.
I will scream it in the dark.

You are faithful!
You are faithful!
When you give and when You take away,
even then still Your name
is faithful!
You are faithful!
And with everything inside of me,
I am choosing to believe
You are faithful.

I'll leave it at that - if you want to interact more, ask a further question.

URL: http://www.formspring.me/briggswill/q/967661972

using a file system for my bank account

the goal - organize your shared payments


I'm sharing a flat with my girl friend. So we regularly shop things, that we are equally paying. Sometimes it's a little hard to track the many shared payments. Especially if you use cash, your giro account and visa.



the idea - use a directory


To track all your payments you need to organize all payments in one place. Normally this can't be your giro account as your bank doesen't care about your cash payments. So my approach is to gather my payment data on my computer. Fortunately my bank supports a CVS export of my giro and visa transactions. So I can easily export the account data in a computer processable format.



the database is a directory


As database for my payments I use a plain old directory on my file system. The directory contains a subdirectory for every transaction I made. No matter whether it was on my bank accounts or cash. For the transaction directory names I use the simple syntax: <date> - <description>



Examples for the transaction directory names would be:


  • 2010-08-12 - ice cream in park

  • 2010-08-14 - GIRO PAYMENT at MY GROCERIES SHOP

  • 2010-08-14 - VISA PAYMENT at furniture.example.com




Each of the transaction directories is tagged with the transaction details. The taggings are applied in a text file within the transaction directory. The tagging file 2010-08-14 - GIRO PAYMENT at MY GROCERIES SHOP/.tag i.e. has the following content:




date: 2010-08-14

account: visa

amount EUR: 120.00

description: old table



The tag files for the giro and visa transactions are created by a python script I wrote. The python script creates a transaction directory for every row in my bank's CSV exports. The columns from the CSV files are applied as taggings in the tag file. The python script does a little more magic, like merging already existing entries. But that's another story.

The transaction directories for cash payments are created manually by me. But the taggings contain basically the same data. The only difference is that the account field is tagged with cash.



I introduce a new tagging to separate my payments from the payments I share with my girl friend. My tagging for shared payments is:




share: true



export filtered CSV with tagfs


Now that I've collected my transactions and added meta data like the 'share' tagging, I need to filter the transactions. I use tagfs to filter the various transactions, contexts (like 'data', 'account', ...) and taggings. tagfs is mounted as a virtual file system beside the transactions directory. Mounting the above example with tagfs will show me a directory like this:





The tagfs root directory contains various subdirectories. The subdirectories represent filters for the tagfs items aka. my transaction directories. Filtering transactions takes place by entering directories. Enter the share/true/ directory to see all transactions with a share flag. share/true/account/giro will show you all shared transactions which occurred via your giro account.



Now I create a CSV export which contains all shared transactions. To do so I open the CSV file share/true/.export/export.csv. The CSV file contains all matching transactions as rows. The columns represent the different taggings:


























name date account amount EUR description share
2010-08-12 - ice cream in park 2010-08-12 cash 1.00   true
2010-08-14 - GIRO PAYMENT at MY GROCERIES SHOP 2010-08-14 giro 32.53 just food true



I open this CSV table in OpenOffice.org and calculate the sum in the 'amount EUR' column. That's real magic... isn't it?!?



adding multi dimensional spice


OK... I truly admit... the magic hasen't happend yet. What I just did was just some filter with a sum calculation. I could have used a simple excel sheet for that. Excel is a fine tool as long as you use structured data. Our transactions are structured data. Every transactions consists of a limited amount of fields with well defined values. To leave this limited view of the world you have to think of subjects instead of transactions in your bank account. A subject can be anything! A transactions can be a subject as good as a directory with my holiday pictures can be a subject (I borrowed this very abstract view of subjects from the resource description framework and the tripplestore concept). Now I can tag my transactions and my holiday pictures with holiday: india 2009. This allows me various filters:





  • holiday/india 2009 shows everything related to my india vacation in 2009. No matter whether it's a transaction on my visa account or my holiday pictures.

  • holiday/india 2009/account/visa/.export/export.csv lets me calculate all my visa expenses during the holiday.




(my) conclusion


As I think, an excel sheet or a relational database system gives you one view to your data. Viewing your data in a table like structure is good for analyzing items. These items need to be comparable in a specific way. But storing data is different to viewing data. When storing data you need the flexibility to adjust your storage to new kind of entries in your database. Relational database systems do this via tables. Storing data in tables will higher the risk for many conversions and complex table joins.

Saturday, August 14, 2010

Twitter in Education

Below is a Prezi on Twitter in Education. It looks at 3 aspects:
a) What is Twitter? - a brief overview including Tips for Teachers by David Hopkins
b) Twitter for Lifelong Learning - emphasising the benefits a PLN (Professional Learning Network) and how much educators can learn from and share with each other
c) Twitter in the Classroom - examples of how Twitter can be used in a classroom including 'Thirty Interesting Ways* to use Twitter in the Classroom' by Tom Barrett et al.

Friday, August 13, 2010

Arnold is back!




During the last Siggraph, a lot of presentations were centered around Arnold, the production renderer which is going to kick Renderman's and mental ray's collective asses. The VFX industry is slowly discovering this marvel, which is doing Monte Carlo path tracing at incredible speeds. It eats huge complex scenes with motion blur and DOF for breakfast.

The argument that ray tracing is only used sparingly in the movie industry no longer holds, as almost all big film companies are shifting towards more and more (and sometimes full) raytracing as the method of choice. I'm sure this industry wide shift will trickle down to the game industry as well

Some interviews and presentations:

interview Marcos Fajardo: http://tog.acm.org/resources/RTNews/html/rtnv23n1.html#art3

HPG2009 Larry Gritz talking about Arnold: http://www.larrygritz.com/docs/HPG2009-Gritz-Keynote-clean.pdf

more on Larry Gritz' talk: http://www.realtimerendering.com/blog/hpg-2009-report/

interesting interview wiht Larry Gritz about the decision to move to Arnold: http://news.cnet.com/8301-13512_3-10306215-23.html

basic features of Arnold: http://www.graphics.cornell.edu/~jaroslav/gicourse2010/giai2010-02-marcos_fajardo-slides.pdf

many details on Arnold (don't miss this one): http://renderwonk.com/publications/s2010-shading-course/martinez/s2010_course_notes.pdf

Cool Fun Web 2.0 Stuff

Here is a Prezi on 12 cool fun web 2.0 applications for the classroom. Some are classics and some are rare gems!

Asynchronous Updating

Logging into the virtual environment, users began to notice that the frequency of system updates began to increase, eventually culminating into passive updates streaming behind the scenes. Dynamically updating the protocols and software did away with cumbersome batch updates and awkward installations from the past. Rightly so, it was noted, because the near constant updates would have made it completely impossible to utilize the technologies in any other manner, and each time the users logged into their accounts, the virtual environment greeted them with more to offer and ever higher fidelity.


At some point during the past week while I was making final corrections and edits to my book chapter in the upcoming book
Virtual Worlds and E-commerce: Technologies and Applications for Building Customer Relationships I had a revelation upon logging into the Second Life virtual environment. I currently use the Viewer 2 alpha for testing purposes and to participate in the JIRA feedback and bug reporting, however I noticed something interesting over the past few days that I don't believe really hit home previously.

The plot to this blog entry is found in the initial quote (from my chapter) which outlines how the progression of updates will be handled in a virtual environment program as accelerating returns begin to take hold. If you aren't aware, accelerating returns is the speeding up of paradigm shifts over time, and in terms of software and how people handle their information, I make the assumption that it will be commonplace to begin doing passive updates to software rather than direct bulk updates.

When you log into a software system such as Second Life, quite often you are greeted with a message saying that a newer version is available and you must download and install it before you can continue. I find this method to be ill-conceived at best in the 21st century, and would go so far as to say that asynchronous updating should be the preferred method for software updates going forward.

There is no need to wait until a person runs the software to inform them that a new version is available, force them to quit the program, download the new version, install it, and then continue. When faced with the alternatives, it seems quite silly that software still does this, and I can only stare in wonder and ask "Why?".

So what's all this about "Asynchronous Updating", you may ask? Well, it's nothing spectacular or new; it's simply the order of how updates are handled that is changing. Take, for instance, if the software does an update check and finds that there is indeed a newer version of the software available. Instead of telling you a newer version exists and prompts you to quit the software application to download the new version and install it, the following should happen:

  1. You execute the program
  2. It checks for new versions or updates
  3. If it finds updates or a new version, it downloads it in the background to it's own temp folder.
  4. User continues to use the old version of the program unhindered
  5. When user closes the program, and later restarts it, the updates are automatically applied as part of the start-up process.

This is more of a passive updating system, or transparent update system whereby the experience is not abruptly interrupted for a mandatory update. In the meantime, they continue to use the old version unhindered and without a noticeable interruption. When they run the program again later, the updated version which was downloaded in the background is installed before running the main software.

I believe as release times shorten, and updates for software become more numerous, this sort of asynchronous update system should be used. What do you think?

Thursday, August 12, 2010

Carmack loves ray tracing

Some excerpts from his QuakeCon keynote (different live blogs):

"There are a lot of things we live with as rasterization in games...Ray tracing was the better way to go. The shadows and samples were right.. the radiosity gets done in a much better way."
http://kotaku.com/5611429/quakecon-2010-keynote-liveblog-aka-man-i-hope-they-mention-doom-4

Ray Tracing definitely not coming in this generation, but it's definitely the future of gaming once the technology becomes performance reasonable. Will make development easier. A lot of his opinions on ray tracing has changed in the past six months. Now that multicore CPUs are mainstream they're starting to catch back up to rendering performance compared to GPUs.
http://ve3d.ign.com/articles/news/56520/John-Carmack-Quakecon-Live-Feed-Coverage

and from Carmack's own twitter:
"Reading Realistic Ray Tracing 2nd Ed. I discourage the use of .x .y .z style members and favor arrays. Many bugs due to copy-paste."
http://twitter.com/id_aa_carmack

Monday, August 9, 2010

5 Lessons About How To Treat People

- Author Unknown

First Important Lesson

"Know The Cleaning Lady"

During my second month of college, our professor gave us a pop quiz. I was a conscientious student and had breezed through the questions, until I read the last one: "What is the first name of the woman who cleans the school?" Surely this was some kind of joke. I had seen the cleaning woman several times.

She was tall, dark-haired and in her 50s, but how would I know her name? I handed in my paper, leaving the last question blank. Just before class ended, one student asked if the last question would count toward our quiz grade. "Absolutely," said the professor. "In your careers, you will meet many people. All are significant. They deserve your attention and care, even if all you do is smile and say "hello." I've never forgotten that lesson.

I also learned her name was Dorothy.


Second Important Lesson

"Pickup In The Rain"

One night, at 11:30 p.m., an older African American woman was standing on the side of an Alabama highway trying to endure a lashing rainstorm. Her car had broken down and she desperately needed a ride. Soaking wet, she decided to flag down the next car. A young white man stopped to help her, generally unheard of in those conflict-filled 1960s. The man took her to safety, helped her get assistance and put her into a taxicab. She seemed to be in a big hurry, but wrote down his address and thanked him.

Seven days went by and a knock came on the man's door. To his surprise, a giant console color TV was delivered to his home. A special note was attached. It read: "Thank you so much for assisting me on the highway the other night. The rain drenched not only my clothes, but also my spirits. Then you came along. Because of you, I was able to make it to my dying husband's bedside just before he passed away. God bless you for helping me and unselfishly serving others."


Third Important Lesson

"Remember Those Who Serve"

In the days when an ice cream sundae cost much less, a 10 year-old boy entered a hotel coffee shop and sat at a table. A waitress put a glass of water in front of him. "How much is an ice cream sundae?" he asked. "50¢," replied the waitress. The little boy pulled his hand out of his pocket and studied the coins in it. "Well, how much is a plain dish of ice cream?" he inquired.

By now more people were waiting for a table and the waitress was growing impatient. "35¢!" she brusquely replied. The little boy again counted his coins. "I'll have the plain ice cream," he said. The waitress brought the ice cream, put the bill on the table and walked away. The boy finished the ice cream, paid the cashier and left. When the waitress came back, she began to cry as she wiped down the table. There, placed neatly beside the empty dish, were two nickels and five pennies. You see, he couldn't have the sundae, because he had to have enough left to leave her a tip.


Fourth Important Lesson

"The Obstacles In Our Path"

In ancient times, a King had a boulder placed on a roadway. Then he hid himself and watched to see if anyone would remove the huge rock. Some of the king's wealthiest merchants and courtiers came by and simply walked around it. Many loudly blamed the King for not keeping the roads clear, but none did anything about getting the stone out of the way. Then a peasant came along carrying a load of vegetables. Upon approaching the boulder, the peasant laid down his burden and tried to move the stone to the side of the road.

After much pushing and straining, he finally succeeded. After the peasant picked up his load of vegetables, he noticed a purse lying in the road where the boulder had been. The purse contained many gold coins and a note from the King indicating that the gold was for the person who removed the boulder from the roadway. The peasant learned what many of us never understand - "Every obstacle presents an opportunity to improve our condition."


Fifth Important Lesson

"Giving When It Counts"

Many years ago, when I worked as a volunteer at a hospital, I got to know a little girl named Liz who was suffering from a rare and serious disease. Her only chance of recovery appeared to be a blood transfusion from her 5-year-old brother, who had miraculously survived the same disease and had developed the antibodies needed to combat the illness. The doctor explained the situation to her little brother, and asked the little boy if he would be willing to give his blood to his sister. I saw him hesitate for only a moment before taking a deep breath and saying, "Yes, I'll do it if it will save her."

As the transfusion progressed, he lay in bed next to his sister and smiled, as we all did, seeing the color returning to her cheeks. Then his face grew pale and his smile faded. He looked up at the doctor and asked with a trembling voice, "Will I start to die right away?"

Being young, the little boy had misunderstood the doctor; he thought he was going to have to give his sister all of his blood in order to save her.

________________________________________________________


The previous set of lessons are ones which are fairly well traversed online, and have graced the pages of countless emails and blogs over the years. The author is currently unknown, and probably lost to time and reprinting countless times. Unlike other repostings, however, I'd like to take a look at these lessons and explain how they each have had an effect on my own life throughout the years (even before I knew about these lessons).


Know The Cleaning Lady


I've had the pleasure of meeting many wonderful people in my time, from high end corporate executives and CEOs of major companies, and even prominent musicians with albums and tour buses. While I was visiting one of my musician friends in between his tours, we were relaxing at his home on the lake and just chatting about what sorts of things he was working on currently (as it turns out he was doing some editing for his next album). It was a fun time, and I watched his tour DVD from his last tour, and saw all the fans waiting in huge lines to come see him and his band.


After the evening had waned, and he retired, I began to think about how life tends to work in strange ways. Here was this guy who was a high profile musician and a celebrity in his own right, coming from a family who was always out on international business or vacation. And there I was, sitting with him as a friend, drinking fine wine, and enjoying the evening... you could say the high life for what it's worth.


The next morning, after we had woken up, he was already downstairs with a cup of coffee and at his laptop doing more editing, and sending out emails to the band... swapping music tracks for the editor program, etc... but there was something else I immediately noticed where he had seemed to be oblivious to: The cleaning lady.


It was a lazy Tuesday morning, and the cleaning lady had let herself in quietly and had begun to clean the house, top to bottom, starting with the kitchen. Loading and running the dishwasher, scrubbing the floors and counters, etc. Of course, I had wandered into the kitchen to grab some coffee and in the process I set my coffee cup on the island counter in the kitchen and struck up a conversation with the cleaning woman.


With Tom in the dining room working on music tracks and editing, I figured a good conversation was in order for the morning. Interestingly this caught the cleaning woman off guard, apparently she was used to being ignored in that household while she went about her work.


Her name was Linda, by the way, and she was a wonderful person to talk with. Very down to earth, a little rough from the blue collar work, but nonetheless a very pleasant person.


That moment turned into a recurring ritual between us for quite some time, as we'd laugh about Tom in the corner buried in his work and completely oblivious to the cleaning lady. Having the entry code for the house at the time, Tom had told me to come over whenever I felt I needed some time to get away. A few occasions I did actually take him up on the offer and the conversations the cleaning woman and I had were outstanding.


Now that I think about it, I don't believe it ever occurred to Tom to associate with the cleaning woman, and on a few occasions he would ask me what I was up to, and would be confused when I would tell him "Just chatting with Linda in the kitchen."


"Linda who?" He would ask me.


"Linda, your cleaning lady." I'd reply.


Pickup in the Rain


This is a simple matter of having some sort of empathy for others. Well, that and a healthy dose of faith in humanity as a whole. I know there are stories about axe murderers roaming the streets and such, but just put that aside... suspension of disbelief. On the whole, people are good and that is something you need to acknowledge.


The world won't be a better place until we all begin to trust each other just a little more, and to have a bit of empathy for others. So when you see somebody on the side of the road walking, have some sense to pull over and ask if they need a ride. It doesn't matter if they are hitchhiking or just walking along.


The idea here is to put yourself in their position, which is something most people ignore these days. If you were walking along the road to wherever, and unless you were obviously walking for the point of walking (exercise), wouldn't it be nice if somebody offered you a ride?


Our lives are full of hustle and bustle these days, and we quickly forget to look up from it all and pay attention. Now would be a good time to start thinking about somebody other than ourselves for once, and to instill that in our children going forward.


Remember Those Who Serve


It's no piece of cake, I'll tell you. Whether you are a waitress in a diner, or a person in military uniform, your job is rough and the sacrifices you make are great. I've known quite a few waitresses in my time, personal friends and even my own mother when I was growing up, and being on your feet all day and working for tips plus the measly wages they provide is rough. They have to put up with obnoxious customers, screaming children, and bosses who don't give a damn - not to mention other waitresses they work with who get an attitude.


While this isn't the case all the time, because there are nice people involved quite often, it's nice to run into a truly delightful batch of customers who have a bit of empathy for the people who are serving them. Sure, maybe the food came out like crap, but that's not the waitresses fault... and even if we say the cook messed up, let's take that empathy a little further and put ourselves in their shoes... trying to make up dinners for a room full of people who are impatient and demanding. You know just how hard it is to make up a full dinner for your own family (or else why are you eating out?), so imagine how hard it is to make up full dinners for twenty families to order.


In the end, the lesson I take home from this is that we need to relax a bit. Maybe the food is taking forever to come out, and maybe you've been waiting for 45 minutes. Maybe the waitress is in a foul mood or has an attitude. But that doesn't mean we should drop to their level and mimic their negativity, because that's not going to solve anything. If anything, that will just make their day worse and drag you down with it.


No... the entire point of going out to eat was to spend some time out with family or friends. So if the food is taking longer than you expected, then remember why you went out in the first place - to spend time with family or friends. Enjoy that time!


If you're a waitress, just remember... some people do have some empathy for you and understand how your day has been. Some (like myself) even go so far as to understand that your life in general may be a wreck and you may be having issues outside of work which are dragging you down. Relax... take a deep breath... and continue.


I liken this to when you are in school. Have you ever noticed that you never really put much thought into the fact their your teachers are normal people like yourself and have real lives outside of that school? Maybe they're married, or dating... they go out to eat and have a good time, they might have children or even grandchildren. Heck, they even have sex just like normal people would (and maybe not so normal depending on the person).


We have a hard time visualizing people and their entire lives, and often remain limited in scope and understanding for those people. Maybe it's the idea of the monkeysphere where we have a hard time thinking of people outside of 50 close interactions as actual people. I would suppose then that is why a single death is a tragedy and a genocide is a statistic.


As a planet, we need to change that.


Obstacles in Our Path


It's often all too easy to brush off an obstacle in our path, or complain that it's somebody else's job to move that obstacle for you. For the vast majority, we tend to put it off and pass the buck whenever possible, taking the easy route, but for the peasant in this lesson, they happened to have a bit of empathy for others and enough determination to change the situation.


Boulders do not move themselves (at least when we want or need them to), and the only way they are going to move is if somebody is willing to take the time to try. When there is an obstacle in your path, will you be the one to move it or will you just be one of the people who ignore it or blame it on somebody else?


Of course, you should also remember that timing is everything. There is always a time now and again when the answer will be neither to ignore the problem or try to change it, but instead to wait. I believe that is the hardest lesson to learn of all, and the hardest to enact because it requires a great deal of patience which is something the world is losing exponentially in a digital fueled rat race of technology.


Giving When It Counts


Let's make one thing clear - I'm not against organized charities. They do a lot of good on a broad scale and should totally be supported. However, I believe that in order to do good on a more meaningful scale, you will have to be willing to roll up your sleeves and face the problems personally.


How many homeless people do we have on the streets today? People hungry and destitute. Their entire lives broken and shattered. Maybe they're on drugs, maybe they spend life in a drunken haze. The real question is not what their problems are, but how often you bothered to actually care.


We're back to that monkeysphere idea again. None of those people even register as actual people in your mind. You don't know their names, you don't know what happened to them, you don't know anything about them other than that they asked you for money on the streets.


And nine times out of ten you walked right by.


I'm not saying that they wouldn't use that money for drugs or alcohol, and I'm not saying either that they will go and get some food or clothes to help themselves. What I am saying, however, is that it isn't your choice to make on their behalf to judge them for decisions that are not yet made.


People are ultimately good, despite the wickedness and evil. You need to have a bit more faith in humanity and trust that people are ultimately good. Because if you cannot have faith in humanity, then you have no faith in yourself, and that my dear readers, is a very bad place to be.


Sure you can give donations to charities, but that is a very hands-off approach. It's sort of like passing responsibility to somebody else just to ease your mind that the situation will be solved. You're washing your hands of it, essentially. Give when it counts, and make it personal. That level of empathy and sincerity makes you feel good about yourself... that you are actually doing something to make a difference in the world.


Giving when it truly counts, is what distinguishes you from just a faceless nobody to a person who really does give a damn in this world.


In the end, I would rather live in a world where people like you truly did give a damn, and broadened their understanding outside of that personal monkeysphere long enough to see the big picture.


This isn't about your country... this isn't about your beliefs. This is all about the fact that we are a species who live on an insignificant speck in the universe, alone. All we have is each other, and we can't even treat each other right. If there are higher forms of life in the universe, chances are they are waiting to see that level of compassion and empathy from us as a whole before they will even bother to say hello.


Imagine yourself to be an outsider looking in at our planet. See how we treat each other, the same species. Fighting wars, killing, stealing, not trusting each other. We have no empathy for others, we have no concept of "other" and what exactly that entails. We're caught up in our own delusional lives, ignoring the universe, and everything around us.


I believe we need to truly change to be a better planet, and these five lessons are a good beginning.