Also, we open sourced our winning 2012 bot on bitbucket here if you want to see the type of code that goes into it: https://bitbucket.org/Cixelyn/bcode2012-bot
640 karma · joined August 10, 2010
waifu ai r&d @ spellbrush. was a biologist in a past life, cofounded benchling(ycs12).
ping me if you're in ai and want to make anime real -- hiring for all roles.
topcolor FA2573
Also, we open sourced our winning 2012 bot on bitbucket here if you want to see the type of code that goes into it: https://bitbucket.org/Cixelyn/bcode2012-bot
The devs probably have their hands full implementing the actual game -- pretty sure no one has had time to port the codebase to something more modern. The competition organizers are primarily MIT students doing this in their spare time, so they have classwork and other things to deal with as well. :)
The general idea is to model reverberations and reflections given the distance of a point sound source to the nearest flat surface, giving the impression of a "contained" sound.
[1]: https://developer.oculus.com/documentation/audiosdk/latest/c...
[2]: https://developer.oculus.com/documentation/audiosdk/latest/c...
As a contestant -- it's quite satisfying to be a step ahead of the crowd and watch other teams copy your strategy.
As a spectator -- watching the metagame evolve is exciting.
Because the game is brand new every year, there's a fast-paced metagame that the clever contestants get to define. It really brings me back the early days of starcraft, when the unit synergies were not well defined and players were theorycrafting new build orders all the time!
In fact technically RPi model B's official spec is that it requires 700mA. You can often get away with less, but you'll definitely start to hit 500mA+ under stress and with peripherals, which is above what USB can officially supply.
Your best bet is to get a nice solid cellphone wall-wart type charger, preferably rated 2A and up. With enough juice powering the Pi, all the issues relating to USB disconnects, freezing, and ethernet dropping stop happening.
Gonna guess that the stability you're seeing with the beaglebone is just from its much lower power requirement.
The simple algorithms are stuff like bugnav (walk in your desired direction until you see a wall then attempt to trace around it), but you'll find that even in something as simple as bugnav, there are a _ton_ of edgecases you have to account for in a discrete implementation that results in robots tracing around each other / stuck in infinite loops, etc.
Our 2012 bot uses a special implementation of the discrete tangentbug algorithm that allows us to precompute squares during rounds which we have extra bytecodes to spare[1]
It's probably _the_ most complex part of our codebase, and the person who wrote it doesn't even really understand how it works anymore.
[1] https://bitbucket.org/Cixelyn/bcode2012-bot/src/default/team...
Shared sensor data now makes higher-level strategies a ton more viable, so it'll be fun to see what contestants come up with.
There's a quick start available if you want to just clone and hack some things together in git[2] and hg[3] flavors.
[1] https://www.battlecode.org/contestants/releases/
granted this is a hard problem (similar to the difficulty of fingerprinting computer viruses). So while synthesis prices are still relatively high, simple fingerprinting will probably suffice for now. There will probably be a lot of development of more advanced machine learning algorithms to detect dangerous sequences as it becomes more and more of a threat in the future.
engineering bacteria to produce new strains or even deadlier toxins is well within realm of synthetic biology (although currently extremely nontrivial).
Falling synthesis prices and better assembly techniques however will make the repeat-test cycle fast enough to debug and engineer such organisms.
Played Starcraft/SC2 at a fairly decent level. To an RTS player the lag is extremely maddening as every mouse movement seems a bit off. (to get a good feel for exactly what's off, try to repeatedly draw diagonal strokes of the same size as fast as possible in any paint application for a good minute or two. Do it in both Windows and OSX and you'll notice something feels off about the OS you're not used to)
I tried a large number of things to get the feel right (all the old blog posts said that only acceleration was to blame), but even with mouse acceleration disabled, something felt off. Right now I only feel comfortable using my mac with mouse acceleration set to -2x for some reason.
I eventually just gave up and uninstalled SC2 from OSX. Now I only play it whenever I'm dual booted into Windows. Almost all the other mac users I know who play SC2 use this solution.
Best thing is that the whole jar is self-contained. Nothing is required except for java, which eliminates the headache of installing cygwin and node on windows.
java -jar jcoffeescript-1.1.jar < foo.coffee > foo.js
For sass, the easiest way is to just install ruby on windows and then install the sass gem, which will give you access to the sass command.1. First find a risk gene of interest. You can find a gene name via flipping through scientific articles about the disease, and then finding the exact sequence of the gene on NCBI (http://www.ncbi.nlm.nih.gov/projects/genome/guide/human/inde...).
2. Design primers that amplify around the region of interest. ($15 maybe tops?)
3. Toss everything into a PCR machine and amplify it up. ($3 or so for per-run reagents?)
4. Take your amplified product and send it off for sequencing (another like $10 or so?). When you get the sequence back, compare your sequence to the published sequence and see how it looks!
There are a few caveats in primer design, and there are some other ways of detecting disease markers, but this is one easy relatively low-cost approach.
- Need to synthesize a new gene or genetic circuit? Take a bunch of DNA fragments, design overlapping fragments which serve as the "glue", and use PCR to sew the whole thing together
- Want to know if your bacteria is the right strain? Microwave a colony and toss it into the PCR machine with some probes to check. Same thing if you want to test yourself for common disease risk factors such as the BRCA1 gene.
- Want to know the expression of protein A compared to protein B? Use Q-PCR to get quantitative data on the difference.
- Made a mistake in your latest gene synthesis order? Use PCR to change base-pairs or even edit out regions of DNA to fix the problem region. Conversely, if you want to _introduce_ mutations / randomize segments of DNA, PCR can do that too!
There are many more uses of the general technique including next-gen sequencing and DNA origami that are just too numerous to list. PCR is like the IDE of biology, containing an editor, a compiler, and a debugger all in one!
Really, my only complaint is that a PCR run takes an hour or more to run depending on the complexity.
While watching, I was actually hoping for really short questions which would cut down on Watson's time to process and possibly put Watson on more even footing with Jennings and Rutter.
This solves two problems a) the big problem of reproducibility in fields like biology, and b) if it's machine-readable, you can just toss the file onto a robot and have the whole procedure done for you.
Check out Biocoder for an example of a language for describing protocols: http://research.microsoft.com/en-us/um/india/projects/biocod...
Format conversion and outputting versions for publication also follow quite easily once a strict protocol language is defined.