How to Solve Major Platform Issues with Limited Resources

  • 3
  • Idea
  • Updated 2 years ago
  • (Edited)
Hi folks, I've been cogitating on platform issues like this one while busy: 

https://getsatisfaction.com/eternagame/topics/old-user-login-dividing-by-zero-sloooooooooooooooooooo...

I have this weekend before getting pulled back under the waves of life again. Since I am short on time ( along with most of us who love this project but aren't sure how to fix these issues ), I am trying to think of ways to solve this problem that take our collective time crunch into consideration. 

Just brainstorming options, perhaps pursuing all of them is best, perhaps focusing on one, I don't know. But hopefully this makes a step forward in considering what we need to do to make our platform usable again ( my main issues being the 30 second login / page load times & overheating ).

For what it’s worth, if I get no other input suggesting otherwise, I expect my approach to be pursuing all 4 of these ideas according to my own timeline, which is likely haphazard and inconsistent at best. Nonetheless, I will do what I can, and I thank you for your help in any manner, whether expressing support, pointing out issues, or providing concrete information / materials that move us further along.

1. Fundraiser
Rhiju has in the past expressed interest in using something like the experiment.com crowdfunding platform to support development costs here. 

Pros
- Can enable feature development and bug fixing currently outside of budget scope.
- Takes pressure off of existing dev & lab teams whose resources are already spoken for simply in day-to-day operations.

Cons
- If the developer[s] chosen after raising money do not deliver, then we have lost time and money in this venture. Therefore, hand in hand with fundraising goes a proper vetting process for anyone accepting those funds. e.g. The awardee of any paid contract to develop features, fix bugs, or transition the platform to HTML must provide preliminary evidence of ability to execute, and should be subject to termination at predetermined milestone intervals, since even with fundraising we will still have limited resources.
- It has also been suggested to fundraise for things like eternacon, however I want to state clearly and loudly that IMHO crowdraised funds are most appropriately spent on concrete contributions back to said crowd. Therefore I am not in support of crowdfunding for conventions, unless something tangible and concrete at that convention will be accomplished. 

2. Player Dev
We already have player devs working in various capacities. Perhaps a codification of steps to get involved would help. For example, I have only an amateur ability to dev, and would need clear instructions on what is the current technology stack, how to access APIs, what is the current test server / dev environment situation, etc.

Pros
- Player Dev is already in effect in principle.
- Making the wiki page codifying the process is not too time intensive.

Cons
- Existing devs & player devs would need to participate to illuminate the landscape.
- The actual expectation of resolving major platform issues with volunteer labor is something which should be regarded as a great gift and surprise bonus, not a fait accompli.
- The effective quality of volunteer labor may by definition be below that of professional execution, unless someone with the appropriate skills takes pity on us and sees that the fate of humanity and the future of medicine could rest in their hands... :) I’m not entirely joking here. But as much as we all love and understand the importance of this project, still our own survival and life duties take precedence, and it is a fact of life that many who are most competent, are most busy.

3. Partnership
There are other groups of professionals with aligned interests in citizen science, medicine, and computer science. Recently the Aarhus citizen science gaming team ( Quantum Moves of scienceathome.org ) reached out to their user base for input on their next game design. I looked into their team, and found that they appear to have an appropriate amount of professional resources for development. I am not sure if this is the same institution where Cody Geary was studying, but if it is, perhaps he would be willing to assist in introductions / discussion.

https://www.scienceathome.org/about-us/team/

It leads me to wonder, perhaps they or others like them may on occasion have a surplus of development resources, and might see value in collaborating and helping Eterna get over one or two major hurdles.

We could not expect another team to take on all of our feature and bug needs, so this sort of thing would be about a targeted mission to fix specific critical path issues, like the 30 second login / page loads, perhaps resolved by the general transition of the platform to HTML. 

Pros
- This could strengthen the concept of a global citizen science effort in collaboration with academia, such that the whole world gets more excited about what we can do together for the sake of science and medicine.
- This could offer other citizen science projects the ability to be associated with a foundational and long standing project like Eterna, thereby bolstering their own missions.

Cons
- As with bringing on anyone to do dev, proper vetting is still required, to prevent frustration on either side of the aisle. In other words, we must not seek and accept just any collaboration, but rather carefully choose one which has a high likelihood of success, so as not to waste anyone’s time.
- Professionals are busy, period. Therefore even though they may wish to help, this may be difficult to arrange due to either funding or time resource issues. 

4. Hackathon / Reward Bounty
One way to solve issues rapidly and for a fixed cost, with guarantee of only paying for a successful delivery, is to hold a hackathon or other open contest in which there is a reward bounty issued to whoever solves the problems at hand. 

Pros
- This limits liability of paying for services not rendered properly, by stipulating reward is not issued until viable solution is in hand.
- Increases visibility of and participation in the mission in general.
- Adheres to Feynman’s original principle of science explicitly needing new blood, new brains, new ideas and ways to solve a problem that may escape the few people currently working on it.
- While hackathons are most effective as on-site time-limited events, I explain the cons of on-site below. Therefore, note that the pro approach for our particular situation is likely to be not an on-site event, to reduce costs and soften the participation requirements.

Cons
- Requires organization - a time commitment I will have to think about before being able to commit to. However, I do understand the moving parts in such a venture, so I will consider organizing such a thing, or at minimum providing consultation on the major required points, as I did with the first eternacon.
- The quality of deliverables must be properly vetted before rewards are issued, though at least due to the inherent structure of this type of thing, there is no expectation of payment if issues are not truly resolved.
- These sort of things are most effective on-site. I can potentially help set this up in the heart of the beast ( silicon valley ), but I am not sure I myself would like to be on-site to manage the event, and there are of course major costs with doing on-site that would require further funding or negotiation for donation. Not impossible, but also not something I can guarantee that I myself have time for. 
- IMPORTANT NOTE: If you want to step up and do this, that is great, but if you have not run a large scale ( 50+ ) hackathon before, you will need explicit instructions on event coordination ( and accommodation considerations if on-site ), as well as how to structure rules and expectations of participants. I can potentially help advise, or better yet please do find clear advice from someone else who has run these kind of events before proceeding. I myself have only peripheral / supportive experience helping run these events, and have not been a sole organizer before, though I am aware of the basic moving parts, and have colleagues I can consult with if necessary. 
- This sort of event requires much tighter organization than a normal convention to keep everything running smoothly, and has much higher risk of failure if not done correctly. This sort of event also tends to draw in press attention, and we would be asking for the participation of new people who are giving of their time and skills. It would require preliminary fundraising, and be like an intensive player dev session, in the public light. Therefore, I would only proceed with this if it truly looks like a good fit, with a concrete agenda.
Photo of machinelves

machinelves

  • 155 Posts
  • 23 Reply Likes
  • hopeful

Posted 2 years ago

  • 3
Photo of machinelves

machinelves

  • 155 Posts
  • 23 Reply Likes
I've been fairly doubtful of the hackathon / bounty option, and ran in my mind an imagined attempt to arrange such a thing. It gave me one idea which may actually be interesting to pursue, that could garner interest from a bleeding edge tech crowd, and also prepare the eterna platform to be robust and potentially last the next 5-10 years:

3D VR/AR

Virtual and augmented reality is finally going mainstream, and I've been saying for a while that you can forget web 2.0 design, what's next is web 3D.0. Vineet's 3D prototype for eterna, while very different, is truly the future. Keeping in mind that myself and many players see huge value in the 1D and 2D forms, of seeing raw sequences and also the current visual 2D format. So these would also need to be views, like filters or render options in foldit. So please know that I don't mean only the 3D molecule. 

Anyway, the idea here is that there is a lot of interest in making games for this emerging AR/VR market, and as long as the tech chosen is also browser deployable ( unity? I don't know all the specifics ), then we can have a platform which is robust across device types.

WebGL is becoming more ubiquitous in browsers, so I think if we think ahead, perhaps HTML is not even the ideal transition step. Perhaps envisioning the UI to integrate all 1D/2D/3D/4D? modes of molecule design into a 3D deployable environment, will get the most value for our limited time and money resources.

I don't know if anyone at SVVR would be interested, but they hold regular meetups in silicon valley for any locals, to get intros to the tech, and you can also check out VR meetups in your local area to get in touch with indie 3D developers who may be looking for a partnership opportunity exactly like this one.

Still, it depends on how many hours are required for the task, whether anyone could do pro bono, or how much it would cost us to reward or outright hire for this sort of approach. Again, I am just brainstorming here.

But as I will explain momentarily in my next post, I have not been able to play puzzles or do labs significantly in going on 2 years now due to slowness and overheating my machine, and at the time I took for granted that there was a black box of development going on that did not need assistance. However now I have come to understand that the resources for the project ( correct me if I am wrong! ) are all allocated simply to daily maintenance of project overhead, and that we do not have money or time to fix these issues.

Or perhaps there is some plan on the horizon that I am unaware of that will be addressing these issues, in which case please do let me know and I will not bother with trying to get these things resolved, and I will be most happy when eterna is again usable for me. But I do not have the saintly patience of those of you left, who wait for pages to load incessantly, I just don't have the tolerance for that much frustration.

I would even be in favor of a standalone application over the current situation, if it meant 1-2 second max load times on any given page.

So anywho, this comment is to mention that a 3D transition ( with inclusive 2D etc. modes ) may offer the most longevity out of any development, whether volunteered or paid for. As well as the added bonus of a vibrant and very passionate community of international 3D VR/AR developers who see the rising wave on the horizon, and are already prepping for it anyway. Perhaps we can find aligned interests, in this talent pool.
(Edited)
Photo of MasterStormer

MasterStormer, Player Developer

  • 83 Posts
  • 15 Reply Likes
When I said it isn't secure I meant that a full C# file might be dangerous; IDK IF THE CURRENT JAVASCRIPT SCRIPTS AREN'T, and maybe there are restrictions to be made.
I need to check some stuff on unity before writing a real comment. I should response in like 2 hours or so.
Photo of MasterStormer

MasterStormer, Player Developer

  • 83 Posts
  • 15 Reply Likes
I found that there is a way to call EXISTING unity functions via html/js, but I can't get it to work myself. However we willl need to have the building blocks already in unity for the js scripts to call.
When I said that html will have 3d at some point, I forgot to mention that there are already 3d libraries out there. Also, we could have the 3d be done in unity and the 2d in svg or something like that.
Photo of LFP6

LFP6, Player Developer

  • 613 Posts
  • 109 Reply Likes
Thoughts on 3D/VR/AR

I do think trying to “garner interest from the bleeding edge tech crowd and prepare the eterna platform to be robust and potentially last the next 5-10 years” is a goal we should go after, and I would find 3D VR/AR to be a really neat avenue to explore.  However, I look at this from a very cautionary perspective. This would be a HUGE change. I’d be concerned about doing this from both the perspective of scope:


  • 2D is proven, but 3D only has only had limited usage for our work

  • This would change the identity of Eterna - are we ready for that, or would we wind up easily getting lost in the new tech, losing touch with what Eterna is and making an inferior application?

  • Is this one giant instance of feature creep? Do we really need this?

and also the amount of resources this would take (a lot of assumptions here, PLEASE correct me if anyone knows better):

  • From my understanding what Vineet created is only a prototype, and we’d really wind up creating something completely new from scratch, without any existing reference or implementation that would have much to pull from or referencce, unlike just rebuilding the Flash app

  • There is probably a lot more work involved in building a 3D/VR/AR UI in comparrion with rebuilding the 2D one just by the nature of the beast

  • There is probably a lot more work involved in building a 3D/VR/AR UI in comparrion with rebuilding the 2D one just by the nature of the beast

  • Vineet’s implementation was based on motifs, not mutation - do we want that, or do we want a 3D version of the 2D interface that allows you to manually change nucleotides? Correct me if I’m wrong, but I don’t know of any existiing 3D energy model, and I haven’t looked to see if there are any 3D visualization libraries ou there (I’m not sure how Vineet implemented the 3D app, so I don’t know if that would work for this scenario).

  • We have limited knowledge about the available tech stacks - this will take quite a bit of resources to actually make a decision, then we have to actually need to know HOW to build it (note: I was all over Unity3D a few years ago. I was, what, 13? I did NOT actually know what I was talking about, so don’t try to use that as evidence :)).

  • I’m not confident that we actually know what we want the result of this to be. This means a ton of resources will need to be dedicated to a completely new design, new interface, and just straight up figuring out “what do you do in this thing?” It’s potentially building a whole new game from the ground up. That takes a heck of a lot more resources than using a design we already have, maybe even with modifications.

In general, building a completely new UI would mean that we’d be taking a big-bang approach instead of making manageable, incremental changes. I’m not sure if this would be either healthy for the conceptual basis of the platform (ie, completely changing what Eterna’s about) or actually viable in terms of development resources (ie, taking completely more work since it requires a completely new application with no reference implementation). That being said, I’m not saying that we shouldn’t experiment or even go after 3D/VR/AR, I think this would be a fantastic opportunity. However, I don’t think this would be the logical next step. Longevity is an issue, for sure, but that’s not helpful if we don’t have the resources to implement the new version, we lose too much momentum in the project itself before it’s finished, or we go too fast and make an inferior product. I could potentially be convinced otherwise if we’re able to thoroughly flesh out WHAT we want and HOW we’ll be able to implement it (and WHY it will be sustainable aside from just the whiz-bang tech!), but I don’t see that at this point.

Platform

As far as the Unity/WebGL/JS/etc discussion goes, I think in many ways we need more information - this goes back to my previous point that it would be dangerous to dive right into a 3D app with a completely unknown tech stack (as opposed to replacing Flash in HTML5/JS which is a relatively transparent transition) when we neither have good knowledge about our options nor even know what we want the new app to be - see the last section.

However, I am not without opinions. One thing I do know is that we want to go cross-platform. Unity definitely enables this (it allows for standalone builds to pretty much any platform as well as a WebGL build for the browser) - there are other 3D game engines out there though which might be beneficial to look through, though Unity in my mind is the most ubiquitous (next to Unreal maybe). I personally don’t know anything about working directly with WebGL as I’ve never had to look (frankly I’ve barely dealt with Unity). IIRC Vineet built his app directly in JS using Three.js (on idea if that relies on WebGL). Which would be preferred for working on a 3D app? I don’t think we should jump to conclusions. We need to research the specific strengths and weaknesses of each one, and we need to know what we want to do with it.

Dealing with Issues

@Machinelves: As far as “some plan on the horizon that I am unaware of that will be addressing these issues”, see my post about current and future projects. I do have somewhat of a plan to revamp the website frontend and then the API (then the next step after that would probably be the game itself), though that’s a longer-term solution.

Security

@MasterStormer: The current mechanism used for scripting (directly running a script directly on the webpage) is INHERENTLY insecure. As far as ease of use, I would be highly surprised if there isn’t a Unity extension (or even a non-Unity library that you could just provide the script to as a string or something) that allows for an in-app scripting. The key though is that it needs to be sandboxed. Allowing the user to run code with the same privileges as code that is actually part of the application is an immediate indication of security vulnerabilities. The application would then provide an API to control any interactions with/modifications of the application from the user script.

@Machinelves, the risk from unsandboxed user scripts is much higher than old Flash. However, old Flash is still potentially a big issue - as far as enabling Flash at all, it’s better than out of date Flash, and Flash is a reputable application that’s been a mainstay of the web in years past, but there have been instances of security issues and that was one of the big reasons why many browsers have stopped supporting plugins. As far as enabling WebGL for just Eterna, that’s a matter of trusting Eterna to write its code well, and trusting the browser developer to not screw up (that's the only way it would affect anything outside the Eterna domain). :)

Modifications/Extensions/Scripting

Yes, having a sandboxed environment means that there would wind up being less capabilities for user scripts, but it is absolutely worth it for security. On top of this, I don’t think this is necessarily a completely bad thing. Frankly I’m not sure that it makes sense for the vast majority of situations to be able to make deep alterations to the applications. Scripts should extend the app, not gut it - that is thinking in terms of security, usability, and sustainability. We do have to remember that Eterna will be open source. Most actual modifications to the application (as opposed to algorithms, visualizations, utilities, etc) can/should be made by direct alterations to the source code. I understand the feeling that users should be able to make it work for them and have the ability to be creative with ideas for significant changes, but I would argue user scripts does not present a method to do this that makes a lot of sense. For example, consider extended base marking - this should be a first-class member of the Eterna application, not delegated to be forever an add-on. Sure, some tools like that could make cool user scripts, but I’d argue that almost always it would be handled best by providing a good set of consistent modding interfaces (ie, annotations, UI elements, etc).
Photo of machinelves

machinelves

  • 155 Posts
  • 23 Reply Likes
Thanks LFP6 for the great analysis on 3D/VR/AR - your technical feedback on these threads is especially invaluable, and I really appreciate the many specific tips and security notes.

I hear you on Vineet's 3D prototype being a prototype. I mention it mainly for an eye to the future, and because it's what we have so far. As Bill Gates has discovered ( see link in post above ), if we can sit there with a VR headset and get immersive, we may also learn things that simply aren't accessible in 2D. Again with the caveat that we still want access to 2D & sequence formats.

So I leave it to the dev team to determine the most sensible roadmap for flash retirement, as you have noted elsewhere, Nando or someone else on the core team will need to take up further discussion. I don't know whether 3D will be feasible before the required Flash retirement. But it's good to consider, and 2D HUD overlays are possible for the other system data.

Thanks for the the first class tool concept for extended base marking. That's exactly what I wanted to say.
(Edited)
Photo of machinelves

machinelves

  • 155 Posts
  • 23 Reply Likes
To comment on the fundraising option, I just saw this happy news:
http://www.reuters.com/article/us-buffett-charities-idUSKBN19V2QY

And going to the gates foundation website found these grant resources:
https://www.gatesfoundation.org/How-We-Work/General-Information/Grant-Seeking-Resources

It doesn't appear that any of their current grant opportunities apply to us, and they have no active grant challenges, but perhaps some future opportunity will be available and compatible with Eterna's mission.
https://www.gatesfoundation.org/How-We-Work/General-Information/Grant-Opportunities

In any case, I am logging this info here for future reference.
Photo of whbob

whbob

  • 191 Posts
  • 57 Reply Likes
The about page lists 3 player Dev,'s, jnochol, Nando and Omei.  Let me refer to them as "Stanford" Dev,'s. I think they have access to "Stanford" servers where most of the game exists.
Omei is also a "Player Dev." Recently, he has been the go to player to relay information to and from "Stanford Dev,'s" and lab personnel.

For the last half year or so, Omei has been working on getting the "R" numbered lab rounds into the new data browser.  Final loading of that data requires someone who can access the right server locations.

lfp6 has been working on the HTML chat software.  He has it on a new server, but it still has to go to a Flash Server for the game and lab puzzles.  He is not listed as a "Stanford Dev." but he probably should be.

Both Omei and lfp6 are very busy and fit in their Eterna projects whenever they can.  

If I have this wrong, I have confidence that they will let me know:)

My impression is that a lot of the software work can get stalled on the Stanford side mainly because I don't see much on the player side. Masterstormer is working on scripts and chat, but his time has been limited also.
With the data-base maintenance and HTML chat as priorities, our two most experienced player Dev.'s don't have much time to mentor others.  

Most of our web site is already html4. I have read where HTML5's canvas element can do 2D or 3D graphics.  It is supposed to be able to handle WebGL, if the end user has specific hardware to handle the graphics.

Our 2D graphics can't be that taxing on processing power. With the sequence string and dot-bracket notation as inputs, it doesn't seem like it would be difficult to pair up 85 bases.  

I hope any players reading your post here will let us know their thoughts, experiences and recommendations.
        
Photo of MasterStormer

MasterStormer, Player Developer

  • 83 Posts
  • 15 Reply Likes
@LFP6, please tell me where I was wrong here, because I am sure I was.
I think of the chat as a milestone in the open source-ness and revamping of eterna (I think I inherited it from lfp6, not sure though). Once it will be done, not only will LFP6 (and I, although I am less bound to it and am less significant than him), but also it will be a first step toward open source and player development.

Another thing is that it's not that other people objectively can't help in this, it's that simply they think they can't, they didn't think of it at all, or most commonly, they can't yet and won't be simply because scripting isn't a natural skill like orginizing eternacon, and there isn't a progression for scripting, so the learning curve either is or just seems too steep for most people to get to a point where they can really make a difference.
This is one reason why I really want scripting chats to be a thing again. Or maybe even add a scripting progression? I see some potential ideas for "levels" to learn certain booster or site related concepts. Or maybe we could have (weekly? daily? permenent?) coding challanges related to the site, such as "In a switch with locked bases, the base paired to a locked base can be colored for certain. so can the one paired to it in the other state, and so forth. make a script that marks and colors bases that are certain by the locks". I need to think about it for a while, it seems like something potentially pretty great.
Photo of machinelves

machinelves

  • 155 Posts
  • 23 Reply Likes
Thank you for sharing your thoughts and information. I support in principle anyone who wants to code or help others learn how. I used to have this level of enthusiasm for it. However, I was thinking, it has actually been going on 3 years now since I have been able to use Eterna puzzles or labs without my computer overheating, or slower and slower load times for everything from pages to coloring multiple nts at once in a puzzle. And my computer was new at the time! While being a laptop, it does have 2 processors and 16GB ram. If this platform is to be egalitarian, surely the bar of entry must not be higher than that? Who can buy a new top of the line computer every 2 years? That does not seem reasonable to me, and I am actually in the industry. I am not saying you suggest this, just that this game ought to be able to run on the average or above average but not supercomputer system.

The other issue I have seen emerge, you describe a bit, is that player dev efforts take time. Furthermore, in finding myself spending far more time on this project than I have time for ( I've spent approximately 24 hours in the last 2 weeks ), I have serious concern about leaning on volunteers for work which ought to be done by paid professionals. Now, I am still in favor of volunteering, and happy for anyone with the time, interest, and skill to participate in coding. But as I explain above, we cannot expect major platform issues to be resolved by volunteers - we can only be very happy and grateful when and if they are.

Therefore I have changed my own tactics, in feeling perhaps the way to get the platform overhauled is to get funding and hire a proper person or team to do so. Nonetheless, I do not close the door on player dev, and as it eeks along, I am still very grateful for it.

This goes hand in hand with my opinion that while it is nice to be able to apply custom scripts to the interface, I do not think this is a sine qua non of the project, because most people do not code. I take a cue from Foldit, which has been immensely successful in integrating player side scripting options into the Cookbook UI, and offloading major feature dev to the platform itself, not expecting users to do this code work. I mean, it is a *game* not a homework assignment. And while some are fortunate to have time free, others have families, work, illnesses, etc. that mean the meager time they have to volunteer should not be wasted doing unpaid labor.

As I have said, I do believe Eterna is not deliberately exploiting unpaid labor like some crowdsourcing platforms I can think of... nonetheless, I can no longer advocate for solving major platform issues solely through player dev. Again, I would not wish to see it shut down, because it offers many good things. However I have been with this project since its inception, seen the ebbs and flows of player participation, seen the general bandwidth ( or lack thereof ) of the internal and player devs, and knowing it is nobody's fault, just a fact of distribution of energy, I am thinking about this from an energy standpoint. 

If the molecule needs x amount of ambient energy in the environment to catalyze folding into the proper shape, and we all sit there staring at it unfolded because there is not enough energy, frankly barring a miracle of someone bumping into the table or shining a random flashlight at it, I just don't expect things to change around here without changing our ambient available energy.

This is where fundraising, partnership, etc. come into play. At the same time, I do include player dev as an option to pursue, and your comments are helpful in getting that option fleshed out more clearly, so I am very grateful to you for your comments. I do also want to state clearly that we cannot expect a path of *only* player dev to net us the results that we want.

So I am very grateful for all player dev efforts, and I don't decry them. I only state, I have not been able to meaningfully engage with this platform in the last 2-3 years probably because of flash, and some other mishandling of memory - I left eterna loading a puzzle where I had cancelled the script but left the page open in Firefox for an hour, and when my computer started overheating to 74C without even having the window up, I remembered I must be logged into Eterna with my lap cooking like that. I checked my activity monitor and found memory slammed without any dips. Closed it, problem solved.

I simply cannot get into scripting for eterna if I can't even nav and play the game normally. I have been relegated to things like writing and cheerleading, which are also great things, but certainly not why I loved the game in the first place. The fact is, for me, and I understand not for all others, that if I am not able to nav and play the game due to load times and overheating, I cannot participate fully, and I doubt I am alone in this. 

p.s. for those who are interested in holding classes, here is the wiki page I made when we so hopefully launched eterna university so many years ago, with classes archived for those who wish to review, or perhaps schedule new classes:
http://eternawiki.org/wiki/index.php5/EteRNA_University
(Edited)
Photo of LFP6

LFP6, Player Developer

  • 613 Posts
  • 109 Reply Likes
“Stanford Team”

Jnicol, Nando, and Omei are specifically previous players, which is they are listed as “Player Devs”. However, what you might classify as the “Stanford Devs” is actually larger - there are also grad students such as Caleb and (presumably) Ben who have access to Eterna resources, as well as Vineet and others (I don’t know what the current group looks like for certain, who has what access, etc).

As far as whether I should be in this group - it’s kinda complicated. The only access to “Stanford resources” (which is really more accurately “Eterna infrastructure”) I have is the chat server and repository on GitHub. I have not signed an agreement with Stanford, I am not involved in internal development communications and do not have access to any other access to code repositories or servers (however I do have access as a contributor on the YouTube/Google+ so that I could upload the edit of last years Eternacon (I’m REALLY sorry that I still haven’t gotten that finished, but I couldn’t get it done immediately and then after that school and other things at Eterna, ie the chat, took priority). Is this current situation a good setup? More than anything it’s “necessary at the moment”. What my role will be in the future, whether I should be getting more access, etc - some of that will be determined in time, and I’m certainly willing to do whatever is best for the project.

Priorities and Mentorship

I would agree that the core team can be a bit of a black hole at times (getting things updated that only they have control over is getting to be quite a process). Omei has been an invaluable resource as a liaison to the dev team and mentoring/guiding myself and the work I’m doing, as well as in our discussions about what the future of Eterna as a project might look like (and he’s been super patient with me, which I really appreciate!). While there is a lot more I’d like to do, once the HTML chat client is launched it will become much less of a priority and a this point it seems that the website frontend will be my next target. I’d be more than happy to give some guidance to anyone who’s looking to contribute, as getting more contributors is critical to maintain sustainable development going into the future (while I like being able to build the core structure myself, after a point it’s kinda nice to have other people do things instead of just me :)).

Infrastructure

Saying “most of our website is already HTML4” is a bit of a misnomer. That sorta makes it sound like it’s a matter of “upgrading” - HTML5 really is the latest specification, which includes a set of new capabilities. This in many ways is almost less substantial (though still important) in comparison to CSS3 and the latest ECMAScript (JS) specifications, namely ES5 (I think that may actually be earlier), ES6, and beyond. As far as the website itself is concerned, the biggest portions of the frontend that need to be replaced is actually the specific JS that defines the functionality (and, actually, display) of the website.

As far as the game, it’s not the graphics that’s the issue. If you have the sequence and dot bracket, the display is not resource heavy at all. The issue is the energy model, which transforms the sequence string to the dot bracket notation, energy values, etc. This gets VERY computationally heavy. If we decide to go 3D, this could also be potentially heavy, but I can speak with no certainty as to whether this is the case or to what degree.

The Role of Chat

As MasterStormer said, one of the aims of the HTML chat project is to push the movement of Eterna to revamp infrastructure and make more and more of the project open source (and as far as inheriting it, I have definitely put you to work taking care of various details, and I really appreciate that you’ve been willing to put in the time and effort!).

Perception of Development/Scripting

I definitely agree that there tends to be a misconception from many that they’re incapable of learning how to code, when this simply isn’t true. I think in general it would be a great idea to encourage people to foray more into scripting, which could translate into potential OSS contributors. Looking into some sort of scripting challenges or such would be a really cool thing (also makes me thing of RNA-Algorithm Wars, RIP), though we don’t exactly have the ressources to build it into the website at this point.

Bar of Entry

@Machinelves: I just want to note specifically that your problems really have nothing (or very little) to do with your machine. The page load time issues seem almost certainly to be directly caused API, and the overheating/in-puzzle issues (probably aside from puzzle submission as that one is probably caused by the API), while maybe due to some issues with OS X specifically, is an issue that is not a lack of resources but instead some form of bug/memory leak. The issue has nothing to do with minimum resource usage/optimization and everything to do with infrastructure that’s badly in need of repair.

Usage of Volunteers

As I mentioned in my overall reply to this topic, I definitely agree that going after professional resources would be extremely helpful and just generally a smart idea. I would like to mention though that I think it is possible for major platform issues to be resolved by players, as I have made some plans myself to do so. However, this comes at the sacrifice of speed, potential quality (I think I can do a halfway decent job, but I’m not a professional), and certainly this isn’t exactly sustainable - if we want to continue to make significant improvements, we can’t do that on such a limited amount of resources, and having a professional team would simply allow us to do much more and at a higher quality. I do find player development important as a way to provide additional resources as well as feed fresh ideas into the Eterna ecosystem.
Photo of Astromon

Astromon

  • 186 Posts
  • 23 Reply Likes
Jieux just said tonight "everything works fine for me on my old robot"
I am quite sure his pc hasnt the specs your has so im confused why its slow for you @Elves.
Photo of LFP6

LFP6, Player Developer

  • 613 Posts
  • 109 Reply Likes
Thanks for all the great thoughts Elves. I’ll pitch in my two cents and the insight I have into existing plans for the future. This will be my general thoughts and reply to the initial post, anything targeted towards a specific reply I’ll comment on the reply.

***DISCLAIMER***: This post includes my current understandings, observations, opinions, and tea leaf reading. Some portions may be arguable, flawed, or downright false. Correct me if I'm wrong at any point and take everything here with a grain of salt.

So, it looks like what you’re talking about here is less about resolving the issues themselves, and more about how we can gain additional resources, in the translating to gaining developers and their time/skills. With this in mind, some thoughts I have that follow all four options you initially presented:

  1. For a closed-source project, of course you need to have some form of dedicated team. But even for open source projects, all decent sized, successful projects I've seen have a core team, volunteer, paid, or a mixture between the two. These people are able to dedicate a significant amount of time to develop and oversee the project. Both pieces of this are important: there needs to be consistent effort made to improve the project technically and to make sure it stays on track (including the quality of the code, the quality of the work, the direction of the project, standards, maintenance, technical administration, organizational administration, etc).

  2. I would strongly agree that Eterna needs a full-time (, paid, experienced) staff. Relying on volunteers leaves a project at the mercy of limited time, hectic schedules, outside responsibility, increased likelihood for burnout, and a limited pool of experience (“you get what you get”). It is not uncommon to have a paid team even for (F)OSS projects. Often, this is supported by some kind of “Enterprise version” (we had talked about licensing EternaBot at one point iirc).

  3. If we have paid staff, of course whoever is hired must be able to deliver. If there is a core team at all (there most certainly should be), this is still true for those members as well (while perhaps to a lesser degree because there isn’t money on the line, they are still by definition a trusted member of the project and so must be able to fill that role). It is part of the nature of having a team like this (in business, personal projects, or anything else) that you have to vet those who join.

  4. We do have to be careful about growing to big, too fast. It could be just as detrimental for us to raise a few million dollars in three months and hire a staff of 10 people with limited structure in place as it would be to stay on the track we are on now (it may not be obvious, but there is some movement). Now, is that likely to happen anyways? Probably no. However, the concept is still the same. It’s great to have large visions, but we need to make sure we stay grounded and make reasonable, logical steps. Completely changing the core of Eterna is not necessarily a good next step. Over time, maybe, but something like that should most likely take time, or else we run the risk of losing control ourselves. We have a lot of room for improvement and growth with what we have now.

  5. Now about that “10 people” - that’s only partially true. We don’t just need 10 programmers. Do we need programmers? You bet. But if you drop in 10 programmers to work on a product, you’ll get a great tech demo in return. If we're making a choice, the first thing we could use is a couple programmers to get the Eterna infrastructure back on its feet. But after that, we can only go so far without people (specifically professionals) in the roles of graphics, UI/UX design, game design, software architecture, system administration, audio, qa, and so forth. This should be the eventual goal. Looking far out, sure, but I’ll put it out there as food for thought.

As for the specifics of the individual ideas you presented:

Fundraiser

To some degree this is an “obvious” solution. We need money, so we ask for money. :) Of course it is already possible to donate, but there are many crowdfunding platforms out there that could give us increased visibility. That being said, you can’t just expect the money to roll in. As with anything, in order to get attention there needs to be some relatively long-term attention for advertising. Expecting something to go viral because you want it do doesn’t work, people have to know about it in order to share. On top of that, there is a fair amount of work that has to go into a campaign, from the initial prep (research, promo video, goals, rewards), running it (staying in constant communication with backers, posting updates, etc), and following through (handling the funds, sending out rewards, actual execution, etc).

If this is of interest, it’s really important to do a Google search for “successful crowdfunding”, or even narrow it down to a specific platform (“successful kickstarter/indiegogo/gofundme/etc”). Medium (what I would describe as a more professional blogging site) is another great bet for somewhere to look for thoughts and past experiences. Definitely try to find posts by groups/individuals who have led successful campaigns, and also those for whom it hasn’t turned out so well.

I’m also curious if it would be worthwhile for us to register with places like Humble Bundle, Amazon, Goodsearch, Bing Rewards, etc that allow you to contribute to an organization through either donating a portion of your purchase, using reward points, etc.

Player Dev

I think better instructions for how to get involved would be a great thing, and is definitely is something I’m attempting to keep in mind as I’m developing things myself (ie, creating a thorough readme in the chat repository). Consolidation of info is a great idea, and I’m surprised that it hasn’t come up before. There is definitely a lot that could still be done, and I’d definitely be up for helping with that. However, I don’t think I have the bandwidth to “run” this myself, unless I need a break at some point and this would be a good thing to work on.

There are a couple issues that need to be dealt with though.

First off is the limited nature of the currently available projects that can be contributed to. Let me run through the projects currently on GitHub (I’m not including things like scripts, as we’re talking about the platform itself, not user projects). See the first comment on this reply for more details (I opted to put it there because there’s a lot of info that would make this way more bloated than needed).

  • HTML Chat: I'm willing to support work with the existing code base, but there are sustainability issues which a) require a rewrite and others that b) stem from the current state of chat protocols which inherently limit what we can do or make it more difficult, with the possibility that we may eventually change

  • Data Browser: While certainly open to improvements, the code is relatively complex, and a rewrite could improve sustainability

  • eternadata: This is quite limited in scope

  • Mobile App/eternagame: This needs to be rebuilt, and we need appropriate store credentials set up

  • Eterna Script Interface: The repo has old code, and I'm not sure if I even want to suggest reviving it - it needs to be rewritten

  • Eterna Public: Not actually a project

As far as future projects:

  • Standards: Lots of details needing coordination and/or executive decisions, and possibly various pieces of analysis and design work

  • Development Tooling: Needs setup and decisions on which products to use

  • Write/Rewrite Everything in Vue: This is more meta than anything, being mostly covered in other projects, but the point is this involves rewrites and planning

  • Base Libraries and Templates: Relies on previous bullets

  • Website Frontend Rewrite: Somewhat relies on previous bullets, requires up front development, eventually requires fair amount of design work

  • Website (API) Backend Rewrite: Relies on frontend rewrite, requires up front development

  • Game Rewrite: Also somewhat relies on earlier bullets and requires up front effort, but also has a lot of questions regarding implementation; eventually requires significant design work

  • Wiki: Requires manual changes, design discussion, customization...

  • New Forums and Bug Tracking: Need to determine how to handle old content, infrastructure decisions, infrastructure setup

  • New Community Features: Only a very rough dream

  • Gamification/Incentive Overhaul: Also a rough dream

  • Our Own Energy Model: Another dream

The other issue is the whole situation with official roles, dev environments, responsibilities, etc. For open source contributors, this isn't quite as much of an issue, as they just basically submit code changes. However, it still winds up creating a sustainability issue. What are the responsibilities of the core team (I'd argue they make directional decisions, run the infrastructure ie servers and the Github, and generally run the software and development process)? What's the process and requirements to become a core team member (especially since you gain fairly deep access)? How will code reviews and testing work? Who makes decisions about designs, features, etc? How does code get released? How are system upgrades handled? What dev environments will actually exist?

Partnership

If an existing group is willing to help us out, I think that would be really cool, and could be potentially beneficial in sharing resources, strengthening philosophical ties, and cross promotions. However, there is one thing I will warn about this. We need to be careful about getting tied in too closely with another organization. From what I understand, when CMU pulled out/we lost the connection there, it was quite a process to get all the rights, resources, etc transferred over. It was mentioned to me at one point that Rhiju is looking to keep Eterna as a somewhat neutral organization, available for research through many different universities and also limiting the amount of bureaucracy that has to be dealt with. IIRC Eterna Commons was envisioned to help achieve this goal. I’m not saying we should outright deny partnerships - quite the opposite - we should just consider what terms this is made under. We can’t let the overhead be greater than the benefit that we gain.

Hackathon/Reward Bounty

I think this is a pretty cool idea. The visibility and community aspects here is awesome, and getting new people on board is a huge deal in my perspective. One big issue that I see though is that in my mind we’d really want to have existing infrastructure built ahead of time, so that we’re not inheriting whatever the participants wind up providing. There are plusses and minuses to that, but that’s my perspective. Definitely need a concrete idea of what we want out of it. personally, I see this as somewhat supplemental, can’t see a clear path forward for gaining the necessary interest (I’m open to ideas). I wonder if it would be possible for Stanford CS or another university/department/organization to step up and sponsor/run/participate in it? Just a thought.

I would also like to extend this idea beyond hackathons though. One aspect we could look into is something like Bountysource. In addition to Eterna itself sponsoring work to be done (which isn’t even necessarily required), anyone could sponsor a feature they want to see made or a bug they want to see fixed, and whoever resolves it gets the money put in for that particular item. Also, there are a number of websites out there where open source projects can post requests for help, available entry-level issues for new developers, and so forth - I think we should take advantage of those.
(Edited)
Photo of LFP6

LFP6, Player Developer

  • 613 Posts
  • 109 Reply Likes
Many thanks for the insight into current happenings by the way!
Photo of rhiju

rhiju, Researcher

  • 403 Posts
  • 123 Reply Likes
The funding available for the programmer/analysis is not focused on sustaining eterna. Generally, basic science funding is typically for *starting* projects and maybe archiving/disseminating the resulting scientific insights, but not maintaining them. Just the way it is. That's why your ideas and community-based solutions are critical!
(Edited)
Photo of LFP6

LFP6, Player Developer

  • 613 Posts
  • 109 Reply Likes
Ah, ok, was wondering if it had to do with where the funding source allocated it. Thanks!
Photo of machinelves

machinelves

  • 155 Posts
  • 23 Reply Likes
Regarding developing an even better energy model, that's awesome to know it is on the table. Since Flash is no longer viable after the year 2020, 1-1.5 years may just be the perfect timeline anyway, to work in concert with the required platform transition. As LFP6 notes above, ideally funds would first and foremost be allocated towards the Flash transition.

Adobe Not Supporting Flash After Year 2020 - Prepare to Upgrade Platform Before Then

Rhiju, this is beyond maintenance, it is essentially a non-negotiable requirement to recode the site before the year 2020, when browsers may no longer even be willing to render flash due to Adobe's stated cessation of development or support for it security-wise, if I understand correctly.

Therefore I hope there may be some way to get funding for this as essentially a new or full replacement platform, since it will no longer even be possible to provide maintenance for the Flash one after that time. Beginning planning now gives us a comfortable amount of time for the fundraising and R&D necessary for such a transition.

As for creative solutions to lack of funding, there are pros and cons for a few ideas outlined specifically in this thread, such as fundraisers, player dev, partnerships, and hackathons. 
And as mentioned in the eternacon thread, I am happy to pledge any funds that would have been used for my travel or attendance to a development fund instead, though as LFP6 has noted, that may be a drop in the bucket.
Photo of MasterStormer

MasterStormer, Player Developer

  • 83 Posts
  • 15 Reply Likes
[I'm sorry if I missed something, I had to skim starting from after the rewrite/write the site with vue part because it was too long. Will read more later]
One problem with vue (I don't have much expirience thuogh), is that if you make changes to it without knowing what you are doing (say, change the data via jquery) it doesn't notice it and overrides it. Doesn't it make boosters more problematic? Or if the vue object will be public it would be easy to make changes to it in a good way? I know I am speaking here from lack of expirience, but please make sure to consider it well, as it could be very bad if I was right here