Sunday, September 13, 2009

0
Davinci: Open Source Engineering Tools (Part 1)

Tonight I want to talk with you about something I have struggled with for some time to figure out. This idea has been with me for close to if not over a year, and yet until recently I was finding it very hard to describe to others. I even posted about it once in my old ideas blog, but even as I wrote that version I felt frustrated by my lack of clarity on the topic. This is my second opportunity to do it justice.

I am, as you may have gathered, a advocate of tools. While it is becoming clearer by the day that humans are not the only animals with the ability to conceive and utilize tools to achieve our aims, it is one of our defining characteristics which has allowed us to thrive as a species. This is one of the reasons I am such a rabid advocate of open source. It calls on the better angels of human nature to facilitate collaboration in the search of better tools, accessible to all. Yet despite all of the wonders open source has provided the world of software, I would hazard that I am one of many who feel that open source must expand beyond the realm of software to deliver its best gifts to humanity. Open source must breach the divide and become a tool for the innovation of corporeal inventions. Several attempts at this have already been made, or are under way. However, their dream will never reach full fruition without confronting a basic reality: Advocates of open source hardware lack the equivalent tools that their software compatriots take for granted. Without these tools, open source hardware cannot achieve the same success that open source software has enjoyed.

When a coder sits down at a computer to write a program, they have all the tools necessary for the act of creation and collaboration at their fingertips. Code can be written in a free text editor or software editing application. That code can be compiled, for free, by a compiler residing on the very same computer. The coder can test the fruits of their labor for free and in most cases, without fear of harming themselves, their computer, or their work. Now to be fair all of this functionality can be mimicked by a engineer, utilizing a CAD/CAE program. A engineer can design a piece of machinery and test its basic functionality, safely and (depending on the software) fairly cheaply. In this regard, the two systems are relatively similar. However, the differences begin to emerge when collaboration, a essential ingredient of any open source project, comes into the picture.

The power of open source derives from the ability of a individual coder to contribute a relatively small amount of work which can easily be merged into a larger, more complex project. The core of open source is the acknowledgment that not everyone is Superman, and that many people contributing just a little can add up to something greater than its part. A coder working on a open source project can easily download all or part of the larger project, make changes, compile the entire project and test it. Adding the work of others to a existing program is also relatively painless, requiring only a few lines of code to instruct the program how to access the new code and to call its functions when needed. Indeed, the command #include and its kin are one of the most powerful commands from the perspective of open source. They are powerful because they allow for a single coder to quickly add the work of another coder, making collaboration not only easy, but in many cases easier than working completely alone. This is where the design of real things runs into trouble. A team of committed, determined engineers looking to create a large open source design, they will quickly realize that while they can all design individual pieces and test them all individually, there is practically no way to test the entire system without building a physical prototype and testing its performance. While this might be a acceptable solution for something small, simple, and cheap to build, it becomes a serious problem for larger projects. The average contributor is most likely a person of modest means, and probably could not afford to build a functioning prototype of something large, like a car, building, satellite, or playground. There should be a tool that empowers the average contributor to the same level that a simple compiler empowers a coder. Such a tool should allow a contributor to build, edit, test and share large complex projects. That is what I shall attempt to describe.

Initially, I envisioned such a tool as a monolithic piece of software. This one program would handle all functionality, from the design of individual elements, all the way to the testing of large complexity projects. I based this initial notion off the analogy of a software development environment, where code writing, project organization, and testing functionality were all part of the same program. Understandably, this system became very hard to describe, as I tried to describe a family of functionality while retaining the notion of a singular program. It wasn't until recently that I realized what I was really looking for was a close-knit ecosystem of smaller, function specific programs. Once broken down into functions, the system is suddenly much easier to conceptualize, and hopefully easier to describe.

Imagine my embarrassment...

Continued in Part 2


Continue Reading

Wednesday, August 19, 2009

0
KISS

Any of you who are frequent readers (which isn't many of you, judging by the allmighty Analytics) may have noticed the ever-changing look of the blog. For a while I got kind of fussy over its appearance and bit off more than I could chew. The end result was a fugly template with borked code and a frustrated blogger. So, I've returned to a basic little default template. Is it fancy looking? Not really, no. Does it allow people to actually read the blog without seeing template vomit? Yes!

Simplicity, what a concept.

Continue Reading

0
Let the Music Move You

Music and Storytelling have always been deeply intertwined, so it should come as no surprise that music can be a great asset to both the creative writer and conceptual artist. Here's a couple techniques I've found useful when looking for inspiration.

The Character Playlist:
Whether you are creating a character for film, comics, animation, or just plain prose, understanding the ins and outs of their personality is crucial. Sometimes attempting to craft a personality out of whole cloth can be somewhat intimidating, especially if the character is a complex one with conflicting motives and desires. This is a trick that will help root out those complex feelings and brainstorm potential plot directions. Its actually ridiculously simple: Create a musical playlist for the character in question. I know it sounds odd and borderline obsessive, but it works. Now when I say make a playlist for them , I don't mean music that they would listen to. Rather, select a group of songs that embodies the characters essence. It helps to have a eclectic taste in music, although it is possible for a character to reside completely in a single genre. Additionally, avoid the temptation to make all the music about the same feeling/aspect. The goal is to create a complex, interesting character, which generally means they have more than one aspect or emotion. If you're getting stuck, start thinking about what the character thinks about other characters or events in the story. Think about their subconscious desires, what do they really need? You can go even further and make several playlists for the beginning and end states of the character. How has the character grown/changed? Remember, the song lyrics don't have to mirror everything about the character, what's important is the feelings it imparts and the bits of the song which stick out at you as resonating with the character. Pandora can be a great tool for this, because it can give you unexpected suggestions, which may give you a stroke of insight.

The Album Concept:
This is a trick for coming up with a concept based off of a whole album. While I use the example of a full world or setting, it could just as easily be used for developing any concept. The idea behind this is that a album is generally a complete set of musical thoughts laid out by the musician. By listening to the album repeatedly and iteratively building your concept from the experiece, you can craft a concept that is personal and moving. Find a full album of music that you can tolerate listening to several times. Ideally, it should be a genre with the general overall mood you wish to convey with the concept. Get yourself set up in a comfy spot with a notepad, and listen to the whole album. In the case of classical music, sometimes its better just to use a complete suite instead of a album, the point is to listen to a full musical thought. As you listen, close your eyes and begin to visualize the world the music evokes to you. When you have a idea, jot it down along with a track title or name. Try to listen through the whole album, writing down notes and refining your vision. Once you're done, take a break. Let the ideas you've thought up sit and marinate in your head. Come back later and sit down again with your notes and a medium of your choice. If you're writing, use another piece of notepaper. Visual concepts should be done on a sketchpad, with a sketching implement of choice. Personally, I find it useful to use a ball point pen for rough sketching, because it removes the temptation to erase a "young" idea. Listen to the album again, keeping your original ideas in mind. This time begin to capture specific imagery. Once you're done, take a break again. Repeat this process a few more times until you're sure about your concept. At this point you can continue to develop it without the music. You can always come back and listen to specific songs as a reminder of certain aspects. Great free resources for this are Jamendo and Magnatune. Both allow free listening of full-length albums in a wide variety of genres.

Hopefully you'll find these techniques useful. Just remember, these are tools, not rules. Feel free to explore your own methods of exploration and inspiration. Additionally, if you create anything cool using these techniques and feel like sharing, please do!

Continue Reading

Monday, August 17, 2009

0
(Virtual) World Domination Pointers

Alright I've got a serious bee in my bonnet, so please excuse the bluntness. I've been sitting on some of these ideas for far too long. These are some ideas for projects of business ventures in/for the Metaverse. The ones that interest me after this posting might get a more fleshed out dedicated post. Feel free to do whatever you will with these.

SimpleViewer: A Beginner-Friendly Metaverse Viewer
Please, for the love of the FSM, somebody do this. It boggles my mind that despite the myriad of development work being done across the OS viewer scene, all of the development work has only made viewers more complex and feature heavy. If we want the Metaverse or SL to really attract more than the hardcores, we can't keep up like this. Its like giving a industrial-grade metal smelter to a kid who just wanted a EZBake oven. Beginning users don't need or want a lot of power or fancy functionality, they just want to be able to log in and interact with the world without wrestling with cluttered menus and counterintuitive interfaces. Please, someone take Hippo and strip it down to its chasis. Then design a easy, intiutive user interface that won't make granny want to put her fist through the computer. The world will thank you.

MetaJobs: A Job Board for Metaverse Workers
Can somebody please answer me why the Metaverse doesn't have a unified job board? No, XStreetSL's employment section of their forums don't count. I'm talking about something meant to serve both SL and the Opensims. Content isn't quite portable yet, but talent sure is. Anyone who's searched for a job in SL knows what a goosechase that is. Making a one-stop web-shop for all things employment would be a big boon for both potential employees AND employers. It would be pretty easy. So easy it could be done with a PHPbb and a domain name. Yes it could and should be more intricate than that, but its really all you would need to start. I have a hard time believing theres no one out there who doesn't see the money potential.

Convoy: A Secure Marketplace for Pan-Metaverse Commerce
So I just said that content isn't portable between grids yet. That's not completely true, but for the majority of normal Metaverse users its the reality. The truth is the functionality to import/export conent exists. What's missing is the system of trust between content makers and grid operators to allow people to buy things in one grid and move with them to another. This creates a giant mess. So what if a company stepped in with a XStreetSL style marketplace, and a dedication to absolute security? Content creators, trusting the market to not sell to unsafe grids, upload their content to the market and put it on sale. The company accepts applications from grids to gain delivery access to the grid. The company verifies they are running a content-safe server code and enters into a contract with the grid to deliver goods to the grid so long as the server remains kosher. Once verified as safe, customers from that grid can buy from the Marketplace and have the purchased content delivered to their account on their grid. The company could make money any number of ways, including delivery charges, listing upgrades, and other services. Just remember the company's number one service is the trusted bridge it provides for content creaators and grid owners.

I'm sure I have other ideas I've spaced on. I'll write about them later.

Continue Reading

0
Destroy Perfectionism

Ok, so what was supposed to be a few days break turned into something a lot longer. I'm not going to cry to you about how I'm sorry, and how I'll do a better job in the future. If you've read more than this post you'll see that I've gone down that road before. Instead, I'm going to accept the fact that I suck at keeping a regular blogging schedule. What made me stop last time was trying to make myself look like something I'm not yet, and then getting intimidated by the expectations I placed on myself. To Hell with that.
Continue Reading