Draft 3
cc: @jonathoda @jamiiecb @jeresig @twleung @lindsey @a_cowley @kmett @ezyang @lambda_calculus
Inspired by The Future Programming Manifesto
| // CSVToMap takes a reader and returns an array of dictionaries, using the header row as the keys | |
| func CSVToMap(reader io.Reader) []map[string]string { | |
| r := csv.NewReader(reader) | |
| rows := []map[string]string{} | |
| var header []string | |
| for { | |
| record, err := r.Read() | |
| if err == io.EOF { | |
| break | |
| } |
| # As used in http://jsfiddle.net/DrErnie/p09bjgh3/ | |
| # Preamble - may need to be in User Code | |
| _.mixin(_.str.exports()) | |
| bind = rx.bind | |
| rxt.importTags() | |
| # Create rxv Versions |
Draft 3
cc: @jonathoda @jamiiecb @jeresig @twleung @lindsey @a_cowley @kmett @ezyang @lambda_calculus
Inspired by The Future Programming Manifesto
| (function() { | |
| // Do not use this library. This is just a fun example to prove a | |
| // point. | |
| var Bloop = window.Bloop = {}; | |
| var mountId = 0; | |
| function newMountId() { | |
| return mountId++; | |
| } |
SimpleMarkup parses plain text documents and attempts to decompose them into their constituent parts. Some of these parts are high-level: paragraphs, chunks of verbatim text, list entries and the like. Other parts happen at the character level: a piece of bold text, a word in code font. This markup is similar in spirit to that used on WikiWiki webs, where folks create web pages using a simple set of formatting rules.
| require 'dispatch' | |
| T=1 | |
| T0 = Time.now | |
| def now | |
| (Time.now - T0) | |
| end | |
| p "Call Dispatch.sync with delay #{T} @ #{now}" | |
| Dispatch.sync {sleep T; p "Waited for me"} | |
| p "Finished calling sync @ #{now}" |
| module Dispatch | |
| class Actor | |
| # Create an Actor that serializes or asynchronizes the given object | |
| # Will invoke and call-back asynchronously if provide a block | |
| # Note that this will NOT work for methods that themselves expect a block | |
| def initialize(actee, callback=nil) | |
| @actee = actee | |
| @callback = callback || Dispatch::Queue.concurrent | |
| @q = Dispatch::Queue.new("dispatch.actor.#{actee}.#{object_id}") | |
| end |
| module Dispatch | |
| # Wrapper around Dispatch::Group used to implement lazy Futures | |
| class Future | |
| # Create a future that asynchronously dispatches the block | |
| # to a concurrent queue of the specified (optional) +priority+ | |
| def initialize(priority=nil, &block) | |
| @group = Group.new | |
| @value = nil | |
| Dispatch::Queue.concurrent(priority).async(@group) { @value = block.call } |
| #!/usr/bin/env ruby | |
| # | |
| # mqparse - Media Query parser | |
| # Copyright 2008 Apple, Inc. All Rights Reserved. | |
| # http://gist.github.com/6863 | |
| # | |
| # cf. http://www.w3.org/TR/css3-mediaqueries | |
| require 'pp' | |
| <?xml version="1.0" encoding="utf-8"?> | |
| <feed xmlns="http://www.w3.org/2005/Atom" | |
| xmlns:ac="http://purl.org/podcast/atomcast" | |
| xml:base="http://www.example.com" | |
| xml:lang="en-us"> | |
| <id>http://example.com/myfeed.atom</id> | |
| <updated>2008-06-05T14:39:57-08:00</updated> | |
| <title type="text">All About Everything</title> | |
| <subtitle type="html">A show about <em>everything</em></subtitle> | |
| <ac:summary type="xhtml"> |