Wednesday, March 14, 2012

hubot as a developers, medical lab scientists, math teachers, biotechnology professors, chemical engineers, mechanical engineers assistant

My forked version of Hubot will be a bot that will be able to execute hubot-scripts scripts as well as keep you entertained with jokish commentary using AIML and leave you with a haha type of 'is this really a robot' feeling.
I was busy setting up my development environment yet again, started getting my new symphony 2 application rolling and hit a blocker in the form of a permissions error. So I wondered to myself ..., what if I could ask hubot to auto-correct this for me. Wouldn't that be awesome. Hubot has a plugin architecture and customized 'tell hubot what to do' scripts can be created.

Ill be sampling this coffee script/node.js wonder with aims of getting my own version of hubot, what I'm going to call codi the developers assistent, out there.

Here are a few cases I think hubot will one day be able to solve easily:

Medical Laboratory Scientist.
You own a lab and you would like to be able to tell your bot to creat a summary and a spreadsheet using locally harvestable information all nicely indexed with some form of slocate.
Well you just ask via chat session and hubot replies with a path to a folder containing your stuff what he just prepaired for you.
Or maybe just open it for you.

Biotechnology Proffessor.
You need to access those library databases with the latest articles pertaining to yeast fermentation techniques and want to be absolutely sure you've scoured every site in existance with the info you need.
Well a hubot chat session for that might look like:

You: Find yeast fermentation

Hubot: found - information, free, free, cost $..
Would you like me to open your auto compiled summary?

You: sure (You open and view the report/summary)

Hubot: there are propriety sources, I've analyzed your budget
and deduced that you will have enough to eat after purchasing
licenses.
Would you like me to purchase $400 for total of 3 years worth of subscription using your paypal account?

You: why not

Hubot: you would miss crucial information in your summary report sir

You: go for it

Hubot: opening autocompiled summary according to standard proff sumary report type 16A...


Developer:
Probably easiest place to apply hubot to it's full potential. With the list of already available coffee scripts hubot will possibly be able to save you, the developer, loads of time with auto correcting tedeous fixables to known issues. This developer recommends a uniform shared knowledge base used to store and retrieve known fixes to a global catalogue of systems and their known error outputs. It's a bit ambitious I know. This could start locally for now and eventually make it through the proxy caches out there onto it's very own dedicated cache server, a web host.

An example of a chat session for how hubot might alleviate the stresses of setting up development environments might look like:

You: yooo codi, set up my symfony in the spaz room (where spaz room tag is known by codi from previous chats to be in /home/charl/spaz)

Codi: found symfony2, downloading, extracting, read docs, check config
you have a symfony autobuilt in /home/charl/spaz
check documentation on how to build your first app

You: Thanks

Codi: No problem, opens documenbtation location in a new window

You - (build along and see that the cache directories couldn't be created, permissiosn error)

You: Whats wrong with my symfony app in spaz?

Codi: Slight miss configuration, your logs indicated permissions for cache error
This is now corrected as per FilesystemKB #12388 ...

You eeerm

Codi: oh ya, opening the browser (based on your previous chat sessions stats indicate that no actions should be automatically performed so ...)

So this will have dramatically cut down dev time spent on configuring the environment by about 15 min to 2 seconds depending on your season and memory recall time. Either way this will enable fix once, never again anywhere.

Another tangent, hold on. Fix once never again, anywhere is a concept of transfering knowledge for a solution to a certain problem in it's problem domain like dns or apt entries/repos are propagated.

And were back... With a plugin architecture or this Codi will probably have learnt how to completely conigure symony2 properly from the ground up and seasoned or not, quick memory recall or not everyone is now immediately within reliable symony setup ready to let codi learn how to possibly write your apps for you using something I call idea (integrated design execution aid). A coffee script plugin I plan on writing to add automated programming tasks like stub creating, skelleton from a workflow for any language, using github for code learning and statistical analysis and neural net type decision making for implementing code from a markdown format specification language.

I've started a little project with a semi spec detailing the finer, well details of how I plan on
going about implementing this https://github.com/charlmert/nest/tree/master/octoplasm

Components:
  • automated browsing, selenium
  • environment awareness via provisioning and env vars, puppet, capistrano
  • log trolling, e.g searching apache log for php errors into lucene
  • and actioning it by callable urls returned from apache lucene
  • Adhearance to strict business process/rules/protocols using apache ODE
  • custom funny developer guy that does what you ask aiml to
References:
You can find hubot on github.com

Stay tuned.