This gist is a collection of my rough notes from Strange Loop 2012.
This ClojureScript REPL is able to work in restrictive environment, like Chrome Extension. | |
Requirements: | |
- WebSocket :: to receive JavaScript forms and send results back, | |
- 'unsafe-eval' :: Content Security Policy needs to allow 'unsafe-eval' for script-src | |
Security warning: Do *not* use in production! | |
Tested on Chrome, might work on other HTML5 enabled browsers. |
An experimental Javascript library that can be used for asynchronous control flow, non-determinism, parsing, and other kinds of computations which implement the interface:
bind :: m a -> (a -> m b) -> m b
return :: a -> m a
This gist is a temporary living situation for do.js, and will most likely be expanded into a full blown Github repository in the future.
Here are the areas I've been researching, some things I've read and some open source packages...
Nearly all text processing starts by transforming text into vectors: http://en.wikipedia.org/wiki/Vector_space_model
Often it uses transforms such as TFIDF to normalise the data and control for outliers (words that are too frequent or too rare confuse the algorithms): http://en.wikipedia.org/wiki/Tf%E2%80%93idf
Collocations is a technique to detect when two or more words occur more commonly together than separately (e.g. "wishy-washy" in English) - I use this to group words into n-gram tokens because many NLP techniques consider each word as if it's independent of all the others in a document, ignoring order: http://matpalm.com/blog/2011/10/22/collocations_1/
This is a brief and bare-bones guide to getting GHC 7.6.1 and the cabal-install
tool (the two basic things you'll need to do Haskell development) up and running
on Mac OS X 10.8 install.
The instructions given here worked for me, but YMMV.
Original on https://gist.github.com/1169332
@include handhelds { | |
table.responsive { | |
width: 100%; | |
thead { | |
display: none; | |
} | |
tr { | |
display: block; | |
} | |
td, th { |
// Searching for large ModAux instances can be extremely slow. | |
// See this version for a faster solution: https://gist.github.com/4108026 | |
import shapeless._, Nat._ | |
trait FizzBuzz[N <: Nat] { | |
def steps: List[String] | |
def show = println(steps.reverse.mkString("\n")) | |
} |
A lot of math grad school is reading books and papers and trying to understand what's going on. The difficulty is that reading math is not like reading a mystery thriller, and it's not even like reading a history book or a New York Times article.
The main issue is that, by the time you get to the frontiers of math, the words to describe the concepts don't really exist yet. Communicating these ideas is a bit like trying to explain a vacuum cleaner to someone who has never seen one, except you're only allowed to use words that are four letters long or shorter.
What can you say?
Links for essays ref'd in http://blog.fogus.me/2009/03/11/seven-books/
- On the Criteria to Be Used in Decomposing Systems Into Modules – David Parnas
- A Note On Distributed Computing – Jim Waldo, Geoff Wyant, Ann Wollrath, Sam Kendall
- The Next 700 Programming Languages – P. J. Landin
- Can Programming Be Liberated from the von Neumann Style? – John Backus
- Reflections on Trusting Trust – Ken Thompson
- Lisp: Good News, Bad News, How to Win Big – Richard Gabriel
- An Experimental Evaluation of the Assumption of Independence in Multiversion Programming – John Knight and Nancy Leveson
- [Arguments and Results –