⬜⬜⬜⬜🗼🌁⬜⬜📉📂🕕📂📉⬜⬜🗼🗼🌁📉🏢📂💾🏦💍🎐🔪🎼📼🎐🎐📼🎣🎣🎐🔎🎐📼📼🎐🎧📱💸🔘🔎🎼📼🎐🔪🎣🔝🔝🎼📼🎼🎣🔝🔝🎣📼🎐📼🎣🔝🎣🔪📼🎼🍨📩📟🎣🔪🎐🎧🔎
⬜⬜⬜⬜🗼🌁⬜⬜📉📂⛲📂🎡🌁🗼⏬🎹💨🏦🏪🏪👟🔘👀🐦🗿🎼🔪🗿⌚📼🎣🎣📼🔎🎐📼📼🎐🔗💳📩🔘🎐🚏📼🎐🔪🎣🔝🔝🔪📼🚏🎣🔝🔝🎣📼🎐📼🎣🔝🚏🔪📼🔪🐶⛅📟🎼🎐🔊📹💻
⬜⬜⬜⬜🗼🌁⬜🌁🏢🕖🎲🏦🏦🏦👀🔦🔦🔦🔗🎐🍬🎧💍👀👟🔲🐦⌚🗿🔎📼🎣🎣📼🎐🎐📼📼👤🔗📠📩👟📼🎣📼📼🔪🎣🔝🔝📼📼🎼🎣🔝🔝🎣📼🎐🎐🎼🚏📼🎐📼📼🍨⛅🔊📼🚉👟📤📤
⬜⬜⬜⬜📃📉📉📧👟💍🚉🔗🔦🎧📼🎼📼🎐🎧🗿📼📼🗿🔊🐦👟📱🔘🔲📟🍬🎣🚏📼🎐🎐📼📼👤🍬⚾⛅🚽🔪🎣📼📼🔪🎣🔝🔝📼📼🔪🎣🎣🚏🔪🔎🚉🔍🔍🔊📹📹🎧🍬🍨⛅🔊📼💍📱📤📤
⬜🌁📉📂📱🏦👟💍🍬🔪🚏🔪🎐🎧📼🎼🔪🎐🐦🐦🔎📼🗿🔎🔎🔗🐦📱🎹📤👀🔊📹🔊🔎🎐📼🔪📼📼💳⛅🐦🎼🎣📼📼🔪🎣🔝🎣🎐🎧🎧🔗🔊💍📹🔲👟🔘🔘📱📤🔘🔊🍬🍨📠🔊📼🚽🃏🕕🔳
🏦🏦👟📹🔦🎧🔗🔎🔪🎣🎣🎼🎐🔗🍬🎼🔪🔦🔘🔘🚉📼🗿🔎🗿🔪🔪🔗👟📧🕖🕓📂🏦🔦🎐📼🔪📼📼🍨⚾🔊🎼🎼🎐🔎🔎🔎🎧🔊💻👀🔘📱📱📱📤📤🎲🎲📤📤🎲📤💍🍬🍨😰🔊🔪⛪📩📈🌁
🎐🎐🔦🔦🎐🎐🔗🎧📼🎣🎣🎼🎐🔗🍬🚏🔪🔊📱🔘🔗📼📼🔎🎐🎼🎣🎣🔎💍🏦📂📉📱🔗🎐📼🔪📼🗿🐚🐶💍🔎🔊🔩👀👟🔘📱📱🎲💾💾🎹🎲🎲🎲🎲🎹🎹🕕📄🏭🔳🚽🍬🐶😰📟🔪🍲📝⬜⬜
🎧🔗🚉🚉⌚🗿🔗🔗📼🎣🎣🎼🎐🔗🍬🎼🎼🚉🔘🔲🎐📼📼🎐🎐🎼🎣🎣📼🔎🔗🏦🏢🏦🚉🔗🔗🔗🔗🔍💀⛪🚓📹📱🎲🎹🎹🎲📤📱🎲💾🕖🔳📄💬🏭📃📈🏭📈⬜⬜📃🔩⌚🐶😰🔊🔪🍲📈⬜⬜
🔲🐦💍🚉🍬🍬🔗🎧📼🎣🎣🔪🔎🔗📼🎣🔪🚉🔘🔩🎐🔪🎐🎐📼🎼🎣🔪🔎🚉🔊🏦📂📱🔍🐧🌷🚬🚬🚬🚬🌷🌷🎏🛀👀🐚🎹🎹🕖💬📃📈🗼🌁⬜⬜⬜⬜⬜🌁⬜⬜⬜📈💀🍬🐶😰🔍🔪🔏📈⬜⬜
🐚🔲💍🚉🍬⌚🔗🔎📼🎣🎣🔪🔎🔗📼🎣🎼🔦👀💍📼📼🗿🎧🔗🔗🚉🐦👀👟🔩🚽🛀🐘🚬🐗🐗💣🐗🐗🐗🍢🐗🍢🍢🚥🎏📓📠📈⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜📃🚽📼🐶💳🚉🔪🔏📈⬜⬜
(by @andrestaltz)
So you're curious in learning this new thing called (Functional) Reactive Programming (FRP).
Learning it is hard, even harder by the lack of good material. When I started, I tried looking for tutorials. I found only a handful of practical guides, but they just scratched the surface and never tackled the challenge of building the whole architecture around it. Library documentations often don't help when you're trying to understand some function. I mean, honestly, look at this:
Rx.Observable.prototype.flatMapLatest(selector, [thisArg])
Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence.
module Abyss | |
ROUNDTRIP = {}.tap { |abyss| abyss.default = abyss }.freeze | |
def to_abyss(obj = self) | |
case obj | |
when Hash | |
obj.inject({}) { |h,(k, v)| h.update k => to_abyss(v) }.tap { |h| h.default = ROUNDTRIP } | |
when Array | |
obj.map { |e| to_abyss(e) } | |
else | |
obj |
#!/usr/bin/env ruby | |
require 'net/telnet' | |
cache_dump_limit = 100 | |
localhost = Net::Telnet::new("Host" => "localhost", "Port" => 11211, "Timeout" => 3) | |
slab_ids = [] | |
localhost.cmd("String" => "stats items", "Match" => /^END/) do |c| | |
matches = c.scan(/STAT items:(\d+):/) | |
slab_ids = matches.flatten.uniq | |
end |
This allows you to use the following video streaming services outside of the US from your Mac without having to use a proxy or VPN, so no big bandwidth issues:
- Netflix
- Hulu / HuluPlus
- CBS
- ABC
- MTV
- theWB
- CW TV
- Crackle
/* | |
As of version 1.1.2, Propane will load and execute the contents of | |
~Library/Application Support/Propane/unsupported/caveatPatchor.js | |
immediately following the execution of its own enhancer.js file. | |
You can use this mechanism to add your own customizations to Campfire | |
in Propane. | |
Below you'll find two customization examples. |
i18n_backend_database
Database Backend for Rails I18n
i18n_db_admin
Demo application including admin interface for Rails translations using i18n_db
#!/usr/bin/env ruby | |
# | |
# A hook script to verify that only syntactically valid ruby code is commited. | |
# Called by git-commit with no arguments. The hook should | |
# exit with non-zero status after issuing an appropriate message if | |
# it wants to stop the commit. | |
# | |
# Put this code into a file called "pre-commit" inside your .git/hooks | |
# directory, and make sure it is executable ("chmod +x .git/hooks/pre-commit") | |
# |