Hey kids, just say NO to programming !
Posted by jgrant, 2012-01-15 15:09:52

This got me thinking more about functional programming languages and how they could be a future casualty in a similar way that we currently see the intentional limitation/crippling of turing machines.
What if Paul Graham missed something very dark in his essay The Hundred-Year Language ?
The essay does not mention the potential role that government, industry and academia might play in the development, legality and distortion of such a language. After all, the more power that a technology might put in the hands of an individual or group the more correlated is the increase in attempts to limit and control the technology.
The uber-powerful 100 year programming language might be heavily regulated(if it's as powerful as Paul Graham thinks it could be). The same way that any powerful technology is. That is if we, as a species, even make it through the next 100 years. What if everything is eventually regulated in society(in large part due to mass hysteria instead of critical thinking) ? What if one day in the future we need to have a license to browse the internet ? One thing is inevitible, that kind of situation never lasts very long, as history will attest. Severe changes in society and government occur. In East Germany or Communist Russia people started killing themselves. Life was that bad. Hell, those factory workers in China that make our iPads, iPods and video game consoles are a contemporary case of this. Suicide is the only leverage they have, who else will work the assembly lines 90-100 hours a week ?
Or in the sad case of ancient Rome it could easily be argued that the legal system played a fatal part in the self-inflicted collapse of a once great empire that could no longer stand under it's own legislative weight. In the 21st century western world we aren't seeing mass suicide but we have seen a massive increase in mental illness in this and the last century which could be directly correlated with the massive continual increase of legislation and the burden that it puts on the average person. There's no excuse for being ignorant of the googolzillion number of laws that exist today and all that (unless ofcourse you are a giant corporation or you work on wall street in derivatives trading, it seems). This is further compounded by the wide-spread increase in psychiatric prescriptions that an increasing number of people are relying on just to live a modern life.
Does the inhumane treatment of Alan Turing(and his subsequent suicide to escape it) ominously predict a similar fate for one of his greatest creations ?
Debate: The World Would Be Better Off Without Religion
Posted by jgrant, 2011-11-16 21:27:52

In the words of Blaise Pascal, mathematician and Catholic, "Men never do evil so completely and cheerfully as when they do it from a religious conviction." Does religion breed intolerance, violence, and the promotion of medieval ideas? Or should we concede that overall, it has been a source for good, giving followers purpose, while encouraging morality and ethical behavior?
Video.
Clojure/Conj 2011
Posted by jgrant, 2011-11-11 11:11:11
Sold out attendance marked this being the second premiere conference for Clojure. What I realized is just how great the people are in this community. No, seriously. There's far less ego than with many other communities. This is a great sign for the future of Clojure. Particularly because Rich is such a great guy. He even gave a public apology for something or other that he said(on a mailing list) which he felt was not in the spirit of the Clojure community.

As for the conference, some of the more mathematically inclined talks were especially exciting and encouraging because they highlight how Clojure is facilitating rigorous and ground-breaking work in the sciences :
Arnoldo Jose Muller-Molina : Hacking the Human Genome using Clojure and Similarity Search
"The Genome inside each cell works like a massively parallel computer. Some proteins called Transcription Factors (TF) attach into specific regions called "promoters". This attachment starts a complex process that can have different outcomes. One of the possible outcomes is the creation of another TF that will in turn attach to some promoter(s) creating a cascade of events. TFs are like functions that have side effects, call other TFs and also can call themselves recursively. In this talk, I will describe a machine learning technique that attempts to reverse engineer the Genome. To achieve this tricky task, you need versatile tools. First of all, Clojure plays an instrumental role in the development of visualizations and data processing pipelines. Clojure makes it really easy to filter, visualize, and synthesize many gigabytes of data. In addition, similarity search is used extensively to find patterns in a huge set of possibilities. I hope to convince you here that similarity search is the next "NoSQL" and that Clojure is an ideal tool for data science projects."
Chas Emerick : Modeling the world probabilistically using Bayesian networks in Clojure
"Some of the most challenging problems that programs can face include classification, prediction, and making decisions in the face of messy or incomplete observations, data, or understanding. Bayesian networks provide a basis for implementing solutions to many of these sorts of problems, and Clojure offers excellent raw materials for building them. This talk will briefly introduce the concepts of Bayesian probability and networks, demonstrate the usage of an open source generalized Bayesian network modeling library, and discuss its implementation - highlighting the Clojure facilities that made it possible."
Christophe Grand : From Linear to Incremental
"In this talk I expose some of some of the insights I gathered while turning an inherently linear process (parsing) into a sublinear (bestcase logarithmic) process. This is a tale of datastructures (featuring 2-3 and fingertrees), inversion of control, twisted memoization strategies, profiling and optimizing."
Ambrose Bonnaire-Sergeant : Introduction to Logic Programming with Clojure
"A well written logic program is a gold mine. Logic programming represents a problem as a set of declarative logical axioms, or facts, which a logic engine uses to construct a proof. With a set of facts, the programmer can offload the work of collecting results to a logic engine in exciting ways. Beyond these wonderful properties, writing a logic program is tremendous fun! We will use Clojure's logic engine core.logic to introduce these concepts and jump into the fascinating world of logical programming."
For the Artistically inclined there was Sam Aaron's Programming Music with Overtone :
"Can programming languages help us to free our creative potential? Formalised descriptions of data, events and process have been used to great effect within industrial settings but could they also be useful in artistic contexts? This presentation introduces Overtone - a Clojure front-end to the state-of-the-art realtime sound synthesis engine SuperCollider - currently being established as a music platform for both research and performance. Overtone facilitates a truly exciting high-level exploration of musical ideas such as the design and structure of sound, the coordination of multiple concurrent performers and even new forms of musical notation. Through live coding, monome button bashing and loud music performances such as synthesized dubstep, we'll dive into the architecture of the system and explore some of the deeper computational questions that working in a musical context forces you to answer. Ultimately we will see how Clojure can manage so much more than the representation of business logic or the construction of web apps. We will cover a lot of ground - so hold onto your ears!" (See this earlier post to get a better idea.)
There were many more great talks too. The full list is here.

As for the conference, some of the more mathematically inclined talks were especially exciting and encouraging because they highlight how Clojure is facilitating rigorous and ground-breaking work in the sciences :
Arnoldo Jose Muller-Molina : Hacking the Human Genome using Clojure and Similarity Search
"The Genome inside each cell works like a massively parallel computer. Some proteins called Transcription Factors (TF) attach into specific regions called "promoters". This attachment starts a complex process that can have different outcomes. One of the possible outcomes is the creation of another TF that will in turn attach to some promoter(s) creating a cascade of events. TFs are like functions that have side effects, call other TFs and also can call themselves recursively. In this talk, I will describe a machine learning technique that attempts to reverse engineer the Genome. To achieve this tricky task, you need versatile tools. First of all, Clojure plays an instrumental role in the development of visualizations and data processing pipelines. Clojure makes it really easy to filter, visualize, and synthesize many gigabytes of data. In addition, similarity search is used extensively to find patterns in a huge set of possibilities. I hope to convince you here that similarity search is the next "NoSQL" and that Clojure is an ideal tool for data science projects."
Chas Emerick : Modeling the world probabilistically using Bayesian networks in Clojure
"Some of the most challenging problems that programs can face include classification, prediction, and making decisions in the face of messy or incomplete observations, data, or understanding. Bayesian networks provide a basis for implementing solutions to many of these sorts of problems, and Clojure offers excellent raw materials for building them. This talk will briefly introduce the concepts of Bayesian probability and networks, demonstrate the usage of an open source generalized Bayesian network modeling library, and discuss its implementation - highlighting the Clojure facilities that made it possible."
Christophe Grand : From Linear to Incremental
"In this talk I expose some of some of the insights I gathered while turning an inherently linear process (parsing) into a sublinear (bestcase logarithmic) process. This is a tale of datastructures (featuring 2-3 and fingertrees), inversion of control, twisted memoization strategies, profiling and optimizing."
Ambrose Bonnaire-Sergeant : Introduction to Logic Programming with Clojure
"A well written logic program is a gold mine. Logic programming represents a problem as a set of declarative logical axioms, or facts, which a logic engine uses to construct a proof. With a set of facts, the programmer can offload the work of collecting results to a logic engine in exciting ways. Beyond these wonderful properties, writing a logic program is tremendous fun! We will use Clojure's logic engine core.logic to introduce these concepts and jump into the fascinating world of logical programming."
For the Artistically inclined there was Sam Aaron's Programming Music with Overtone :
"Can programming languages help us to free our creative potential? Formalised descriptions of data, events and process have been used to great effect within industrial settings but could they also be useful in artistic contexts? This presentation introduces Overtone - a Clojure front-end to the state-of-the-art realtime sound synthesis engine SuperCollider - currently being established as a music platform for both research and performance. Overtone facilitates a truly exciting high-level exploration of musical ideas such as the design and structure of sound, the coordination of multiple concurrent performers and even new forms of musical notation. Through live coding, monome button bashing and loud music performances such as synthesized dubstep, we'll dive into the architecture of the system and explore some of the deeper computational questions that working in a musical context forces you to answer. Ultimately we will see how Clojure can manage so much more than the representation of business logic or the construction of web apps. We will cover a lot of ground - so hold onto your ears!" (See this earlier post to get a better idea.)
There were many more great talks too. The full list is here.
