585 karma · joined December 29, 2010
A program starts and sees nothingness. Then a host emerges out of nowhere. (A human provisioning engineer must have turned it on in the data center.) Then the program can do something with it (like start a database) or it can wait (indefinitely) for another emergence of a host (before it sets up an elastic DB, say). The point is that objects emerge in your "sight" and they are nameless. The namelessness is the choicelessness. And this might seem like a small difference, but it is huge.
Chomsky tells Linguists: Try to imagine the world from the new-born baby's point of view; and trust me that the baby is born knowing nothing. The only difference is that the baby sees a "blooming buzzing confusion" (i.e. many hosts are online already). But the connection is that everything is nameless (at first). The baby sees many visual pixels. They have no meaning (i.e. no linguistic names). Later the baby sorts out the confusion and assigns names to all phenomena in its sight. Same for circuit programs. They see a nameless army of live hosts. They are all equally good, hence nameless. Then the program start purposing them differently (some are dbs, some are https, etc.). This is the same as the baby assigning names to pixels in its sight until it wakes up one day at age 5, thinking it understands the world. Ha :)
https://github.com/gocircuit/circuit
Which is a major piece of software that earns me my salary. if you kickstart what I want to be a non-profit software research foundation, gocircuit.org and escher.io, then the doc would be brilliant and interactive in no time flat :)The HTML standard, which expressly makes room for foreign technologies, when viewed as a standard is immensely more powerful than good old Latex. And in fact, if typesetting is your concern, you will already find JS libraries addressing this.
The big thing is: the HTML standard allows for future technologies to be embedded in your docs. The Latex linguistic ecosystem does not.
This point is only made clearer when one realizes that the end goal "to have a paper in my hand" is an artifact of past technologies. Going forward, "having a paper in your hands" will not stand as the end-goal of intellectual effort. Most certainly, intellectual work will have to be presented in a (a) standardized and (b) highly accessible and (c) highly interactive manner. Only HTML fits the bill.
It is clear that academia will switch to HTML. I am just saying: Get on with it. Why wait.
It was expressly designed to avoid non-essential technical problems that come in the way of cloud application developers, when they try to orchestrate algorithms across multiple machines.
Identical HBASE SQL queries and their respective counterparts implemented in the Circuit Language are: Approximately equally long in code, and orders of magnitude faster than HBASE. In both cases, the data is pulled out of the same HBASE cluster for fair comparison.
The Go Circuit (http://gocircuit.org) is hiring Systems Engineers.
Original job posting: http://blog.gocircuit.org/job-system-engineer
PROJECT
The Go Circuit is a development, distribution and execution environment for a new generation of self-sustained distributed applications. The circuit is built almost entirely in the Go language with occasional appearances of C and C++. It spans the entire lifecycle of an application, from development to execution and sustanance. It comprises technologies like compilers, interpreters, optimizers, low-level operating system management, distributed resource sharing, information flow, security, and many others. The Go Circuit is, by design, open source.
The goal of the circuit is to enable the possibility of encoding an entire Internet company's infrastructure in a single executable, which can be revived with a single click on an ice-cold cluster of empty hardware and can sustain itself indefinitely, without human involvement, short of the requisite replacement of hardware now and again.
The demonstrated, over the past year, power of the circuit environment has compelled industry, academic and government institutions to sponsor the project and become involved with large-scale deployments. We are, henceforth, expanding.
RESPONSIBILITIES
Full-time and internship candidates have identical responsibilities.
Systems Engineers will work alongside the founding system architect on all aspects of the technology: design, implementation, testing, fixing bugs, writing integration drivers, documentation and research. All of their work will be open-sourced. Almost all code will be written in Go, however, other languages like Python, C, C++, Lua, JavaScript, etc. will make a presence.
System Engineers will be researchers as well. In designing the semantic and linguistic interfaces of the circuit, we investigate past and present, scientific and industrial, literature and software on a wide range of algorithmic topics to help us inform and verify our choices.
QUALIFICATIONS
The ideal candidate, full-time and internship, would meet the following criteria, or demonstrate an equivalent level of technical sophistication:
* Full-time candidates should have B.A./B.Sc., M.A./M.Sc. or Ph.D. in some hard science. Internship candidates, who are near the completion of their studies towards the mentioned degrees, are also elligible.
* Four or more years of experience with a low-level/systems programming language like C, C++, or Java as well as some experience in building systems, small or big alike, is quite desirable. Altenratively, a serious involvement with a more exotic concurrent or research language, like Haskell or Erlang, would work as well.
* Having a non-trivial open-source project (in any language) would be highly valued.
* Some understanding of how UNIX operating kernels and systems work on the inside. (You don't need to be a specialist.)
* Knowledge of current industrial open-source technologies is good albeit not a deal-breaker. However, interest and desire to learn and hack some of them will be needed.
* Ability to read academic publications in Computer Science
Most importantly, we are looking for individuals who are able and willing to learn fast and have open flexible minds. On that note, we do not expect that you have prior Go experience, however we do expect that
* Candidates will come prepared to carry out the interview in Go.
We are not going to test your Go-intricacies skills. We simply expect that you be able to implement your solutions to our programming riddles in Go.
COMPENSATION
Compensation will vary based on experience as we welcome both out-of-college engineers and seasoned industry scientists. That said, compensation and benefits will be on par with the standard amongst institutions like Google, IBM, Microsoft and such. Location
To apply, please, send your vitae and anything else you want to say to Petar at p@gocircuit.org.