This article is now published on my website: A one-off git repo server.
Rx LINQ Operator Precis | |
Brian Beckman, May 2013 | |
================================================================================ | |
Introduction | |
================================================================================ | |
This is a highly abbreviated "cheat-sheet" for the LINQ operators over Rx, the | |
Reactive Extensions. Its purpose is to TEACH by laying bare the regular and | |
tasteful structure of the API. This structure can be difficult to perceive from | |
ordinary documentation and source code because comparable and contrastable |
#!/bin/bash | |
# 8... always? | |
mkfifo fifo | |
ruby -e '100000.times {|i| puts "a"}' > fifo & | |
ruby -e '100000.times {|i| puts "b"}' > fifo & | |
ruby -e '100000.times {|i| puts "c"}' > fifo & | |
ruby -e '100000.times {|i| puts "d"}' > fifo & | |
ruby -e '100000.times {|i| puts "e"}' > fifo & | |
ruby -e '100000.times {|i| puts "f"}' > fifo & | |
ruby -e '100000.times {|i| puts "g"}' > fifo & |
- Related Setup: https://gist.github.com/hofmannsven/6814278
- Related Pro Tips: https://ochronus.com/git-tips-from-the-trenches/
- Interactive Beginners Tutorial: http://try.github.io/
- Git Cheatsheet by GitHub: https://services.github.com/on-demand/downloads/github-git-cheat-sheet/
Press minus + shift + s
and return
to chop/fold long lines!
People
:bowtie: |
😄 :smile: |
😆 :laughing: |
---|---|---|
😊 :blush: |
😃 :smiley: |
:relaxed: |
😏 :smirk: |
😍 :heart_eyes: |
😘 :kissing_heart: |
😚 :kissing_closed_eyes: |
😳 :flushed: |
😌 :relieved: |
😆 :satisfied: |
😁 :grin: |
😉 :wink: |
😜 :stuck_out_tongue_winking_eye: |
😝 :stuck_out_tongue_closed_eyes: |
😀 :grinning: |
😗 :kissing: |
😙 :kissing_smiling_eyes: |
😛 :stuck_out_tongue: |
using System; | |
namespace PureIO { | |
/* | |
C# does not have proper sum types. They must be emulated. | |
This data type is one of 4 possible values: | |
- WriteOut, being a pair of a string and A | |
- WriteErr, being a pair of a string and A | |
- readLine, being a function from string to A |
/// <summary> | |
/// A list that can be used by readers as a true immutable read-only list | |
/// and that supports relatively efficient "append to the end" and "remove | |
/// from the front" operations, by sharing the underlying array whenever | |
/// possible. Implemented as a class so it can be used to "CAS" when making | |
/// changes in order to allow lockless immutability. | |
/// </summary> | |
public class ImmutableAppendOnlyList<T> : IReadOnlyList<T> | |
{ | |
private delegate void RangeCopier(IEnumerable<T> source, T[] dest, int destOffset, int count); |
THIS GIST WAS MOVED TO TERMSTANDARD/COLORS
REPOSITORY.
PLEASE ASK YOUR QUESTIONS OR ADD ANY SUGGESTIONS AS A REPOSITORY ISSUES OR PULL REQUESTS INSTEAD!
using System; | |
using System.IO; | |
using System.Reflection; | |
namespace Kake | |
{ | |
class Bootstrap | |
{ | |
delegate int EntryPoint(string[] args); |
Spurred by recent events (https://news.ycombinator.com/item?id=8244700), this is a quick set of jotted-down thoughts about the state of "Semantic" Versioning, and why we should be fighting the good fight against it.
For a long time in the history of software, version numbers indicated the relative progress and change in a given piece of software. A major release (1.x.x) was major, a minor release (x.1.x) was minor, and a patch release was just a small patch. You could evaluate a given piece of software by name + version, and get a feeling for how far away version 2.0.1 was from version 2.8.0.
But Semantic Versioning (henceforth, SemVer), as specified at http://semver.org/, changes this to prioritize a mechanistic understanding of a codebase over a human one. Any "breaking" change to the software must be accompanied with a new major version number. It's alright for robots, but bad for us.
SemVer tries to compress a huge amount of information — the nature of the change, the percentage of users that wil