Tuesday, December 20, 2011

On The Usefulness Of The Web

Sorry for the long silence, but I had to redirect most of my Krakatoa-related musings to the official Thinkblog on our company website. It only makes sense since that place gets a lot more traffic.

As you probably remember from my previous post, I am now employed as Product Specialist by Thinkbox Software. As result, I can now enjoy doing full-time what I used to do half of my time at Frantic Films and Prime Focus - co-develop Krakatoa and other products like Frost and XMesh, write documentation and tutorials, record videos, demo at expos and even travel the world! All from my new home in Vancouver!

In the last couple of months, I had to use the Internet and the Powers Of Google to teach myself a lot of things like MEL scripting, Python and basic Maya and Houdini skills. I must say it went pretty well and I solved most problems I had to deal with. I didn't even have to post questions, most of the FAQs were already posted and answered by others long ago. Oh joy!

But here comes the funny bit. The other day I had to do some development which involved the recreation of a certain 3ds Max modifier as a script. In 3ds Max. I wasn't exactly sure where to start and I felt lazy.  Checking the 3ds Max SDK felt like too much work. Having the routine of checking the Web for my answers about the other applications, I decided to google it to see how others might have solved this.

And then I found it. A thread on CGTalk with the exact question I had. And several answers. And code. And more code, going deeper and deeper. I read the answers - they were clear, the examples worked. Just what I needed.

So what's so funny about this, you might ask? Well, guess who wrote that code...

I had absolutely no recollection of solving the problem before, but reading that thread clearly showed I must be getting old. It was my code, my explanations, and they read like something somebody else had written. I was in awe. This was the first time I felt like Young Me knew more than Old Me knows...

The Internet appears to be a good extension of our brains. In addition to Google and Wikipedia that provide access to other people's knowledge, it turns out it is a good way to store our own knowledge just in case we start forgetting stuff... ;)

11 comments:

  1. Thanks for sharing, I will bookmark and be back again

    Software Product Development

    ReplyDelete
  2. Haha, this has happened to me before as well!

    ReplyDelete
  3. Ah Bobo I feel your pain. So many times I'm half way through sorting out a major problem when it starts to be sort of familiar. Just as I get near the end and have now sorted out the best way it dawns on me, I did this last year!

    I think that I have forgotten more then I now know. Age isn't so bad I guess, at least it isn't getting boring because I know all the answers;)

    Merry Christmas Bobo. May our paths cross again some time.

    ReplyDelete
  4. I think it's a general problem nowadays. You don't have to remember information
    like you had to a few decades ago. You just "google-it",
    use it and then forget it. And when you need it again,
    you search for it again in the world-wide-web.
    The advantage is, you'll get information in lightspeed, 24/7. (And you'll have to get the
    information in that tempo or you'll be too slow for you job)
    But, slowly but surely we will lose the ability to store information in the long-term memory.

    ReplyDelete
  5. ...and now I'll get out my book of poems and learn a poem by heart! :)

    ReplyDelete
  6. lol! I've been there! But what do you do when the MaxScript docs have errors or omissions, functions don't return what they are supposed to and Autodesk is unwilling to answer questions? I am stuck on a project written around the netRender interface and can not find any answers to my questions. Days of googling and searching have yielded nothing.

    ReplyDelete
  7. I'm extending a tool I did over a year ago in csharp/dotnet. Looking at the code now it feels foreign, I couldn't even remember I did understand the concept of lambda expressions and such. I'm picking up fast but, it does proof if you're away from something long enough you just forget. Haven't decided if that's a good thing.

    ReplyDelete
  8. Luckily you can forget more coding knowledge that I've ever knew and still be a wizard

    ReplyDelete
  9. lol :)
    Sounds like a good App, "Find your brain on Google," "Find the Young and Smart You on Google," ...
    I think you were time traveling :D

    ReplyDelete
  10. Hi,
    Off topics , cause I do not know how or where to contact you: ---also please send an email here : ionut9@gmx.net in case you cn help: Hi,
    I am leaning from your tutorial Move Lights to Particles (The pflow script show act 2). I manage to have plenty of omni lights in the scene just by selecting one of the omni and making copies of it and modifing the number in your script operator to how many they are , also changing the particle count in the pflow Birth Amount. Also the script shows me errors in the listner , I am not sure if I have done anything wrong there because it is a foreign language to me; here it is what I put inside the pflow script operator:

    on ChannelsUsed pCont do
    (
    pCont.usePosition = true
    pCont.useSpeed = true
    )
    on Init pCont do
    (
    global theBounceLights = $BounceLight_* as array
    if theBounceLights.count == 0 do
    (
    theBounceLights = for i = 1 to 8 collect
    (omnilight attenDecay:2 name:(uniquename "BounceLight_"))
    )
    theBounceLights.pos = [0,0,-100000]
    )
    on Proceed pCont do
    (
    count = pCont.NumParticles()
    theStep = ((pCont.getParticleSystem()).getIntegrationStep()).frame
    minCount = amin #(count, theBounceLights.count)
    for i in 1 to minCount do
    (
    pCont.particleIndex = i
    theBounceLights[i].pos = pCont.particlePosition + pCont.particleSpeed*TicksPerFrame*theStep
    )
    )
    on Release pCont do
    (
    )


    What I would like to ask : lets say I have 10 omni lights in the scene - and I would like them to have different intensities(brightness-more or less) and different sizes and colors. How can I achieve that? I tried with Effects -Lens Effects -Glow and change the parameters from Glow and there was no way I can do that : all the omni ended the same size , intensity , color... I even tried to add an Effect to each of the lights and still did not work . Can it be done? I do not know anything about scripting - only the 3ds max interface. I work in 3ds max 2013. I also tried in your example with the teapot and the gizmo mist apparatus and linkned the lights to that but I could not have them different. It is about a scene where there are many lights involved in a constelation forming some siluettes of light, but I can not do that without your help. I appreciate your reply.
    Regards,
    John
    p.s. btw - you are the real deal !

    ReplyDelete