Since this is a journal you may find starting from earlier articles helpful. I have covered a bit about the science, the FoldIT user interface, GUI recipes, and Script recipes. If you give me hints where I could be helpful I will focus in that general direction to my discretion. Currently I am going though the basic concepts of LUA script recipes. Once I get past intoductory LUA scripting I can start exploring the science of folding proteins by using LUA scripts.

Tuesday, October 19, 2010

FoldIt and frustration.

OK, I've taken nearly two weeks off.  At time's I'm a bit disappointed with FoldIt.  The scripts depend upon smooth processing over accounted actions.  The FoldIt wiggle and shake actions use iterations ratther than time to control their behavior and yet their behavior is strange.  For the last couple of weeks they have behaved as if unfair.  I've been concentrating on the display to see if I can account for their behavior based upon the specifics of the protein structure.  I wanted to concentrate on folding rather than verifying a fair shake.  The abruptness of the change in the behavior of shake and wiggle leaves a sour taste in my mouth.  Likewise, recipes that used to restore to recent best (the score upon starting the recipe) seem to restore to 30 points less than that even though higher scores have been achieved during their running.  FoldIt is supposed to be about the science while disguised as a game but if something else is going on I'm not so interested in the game and can just move on to other pure games where I don't feel the need to employ my programming skills.  I use them all day to earn a living.  I don't find programming as fun as I once did.  I certainly don't like defensive programming against antisocial behaviors.

There's a strange focus on security.  Many files are free text but digitally signed.  This includes one's saved password to the FoldIt account.  I'm not sure what's going on. 

I'm not sure if LUA or the FoldIt implementation is responsible for the lack of static variables.  The lack of static variable causes properties to be exposed outside the use of methods.  While I've been mentally using objects for decades now I haven't done much programming in object oriented languages.  It's going to be hard to implement consistent style.

Since FoldIt doesn't implement file IO I can't gather statistics and save them.  Instead I have to use a hobbled output window that doesn't allow copy to display gathered information and hand type it into the scripts.

Early on I though having objects passed by value would be a good thing but now I'm not so sure.  It seems to me that inherited methods might best be implemented as pass by reference.  I'm not looking forward to using something like this just because FoldIt hobbles LUA:

--test
classes={
xclass={
y='testing',

tostring=function()
-- the class tostring method
end
}
}
x={
class='xclass',

tostring=function()
-- the local tostring method
end
}     
print(classes[x.class].y)
function method(obj,meth)

  if  obj[meth] ~= nil then
      begin return obj[meth](); end
  elseif obj[class] == nil then
      begin return nil; end
  else
     begin return method(classes[obj[class]],method) ; end
  end
end

It won't be easy if I don't trust the game to be fair.

1 comment:

  1. Hi Gary,

    I think this also came up last night with you in global chat. Poked a bit and confirmed your above observation even cut/paste disabled in script windows. Seems odd.

    So game black box can/does change under us without warning or explanation? You'd think players who are doing this for free deserve a modicum of transparency.

    Cheers, JohnMcLeod

    ReplyDelete