Skip to content

Instantly share code, notes, and snippets.

View zargony's full-sized avatar

Andreas Neuhaus zargony

View GitHub Profile
@zargony
zargony / quiz.rb
Created June 25, 2009 20:33 — forked from bumi/quiz.rb
require 'active_support'
["a","b","a"].sort.join.scan(/a+|b+|c+/).sort_by(&:length).reverse.map(&:first)
From 1d3f5e1c64f96ceede990ad6bdc07ea6f8f925ce Mon Sep 17 00:00:00 2001
From: Andreas Neuhaus <zargony@zargony.com>
Date: Sat, 19 Jun 2010 15:21:28 +0200
Subject: [PATCH] Workaround for unicorn not being able to fchown unlinked files in Ruby 1.9.2-preview3 (which makes it unable to switch workers to a different user; Ruby bug #3451)
---
lib/unicorn.rb | 6 ++++--
lib/unicorn/util.rb | 3 ++-
2 files changed, 6 insertions(+), 3 deletions(-)
# Using rails-3.0.0.beta4, mongoid-2.0.0.beta7, mongodb-1.4.4:
Article.where(:published_at.gte => Time.utc(2010,7,7)).to_a
# => []
Article.where(:published_at.lte => Time.utc(2010,7,7,23,59,59)).to_a
# => [#<Article _id: 4c2a75f5468ee3c930000009, created_at: 2010-06-29 22:38:45 UTC, updated_at: 2010-07-07 13:20:00 UTC, published_at: 2010-07-06 23:45:00 UTC, title: "Foo", slug: "foo", text: "Foo", tags: [], views: 0, site_id: BSON::ObjectID('4c2a73f0468ee3c930000006'), author_id: BSON::ObjectID('4c2a75d6468ee3ca6b000001')>]
Article.where(:published_at.gte => Time.utc(2010,7,7)).where(:published_at.lte => Time.utc(2010,7,7,23,59,59)).to_a
# => [#<Article _id: 4c2a75f5468ee3c930000009, created_at: 2010-06-29 22:38:45 UTC, updated_at: 2010-07-07 13:20:00 UTC, published_at: 2010-07-06 23:45:00 UTC, title: "Foo", slug: "foo", text: "Foo", tags: [], views: 0, site_id: BSON::ObjectID('4c2a73f0468ee3c930000006'), author_id: BSON::ObjectID('4c2a75d6468ee3ca6b000001')>]
module MongoidUtils
# Utility module to include in Mogoid documents
module Document
extend ActiveSupport::Concern
module ClassMethods
# Do a map/reduce operation on the document's collection and return the results as one big
# hash. If a block is given, it is yielded with key and value for every result instead
# (this comes in handy if you expect large results)
@zargony
zargony / ipv6proxy
Last active May 5, 2024 14:52
Automatic SSH jump host for IPv6-only hosts
#!/bin/sh
# Automatic SSH jump host for IPv6-only hosts.
# Usage in ~/.ssh/config: ProxyCommand ~/.ssh/ipv6proxy <jumphost> %h %p
# If a host is reachable via IPv6, a direct connection is made.
# Otherwise a jump host is used (which shall support IPv6).
if ping6 -c1 $2 >/dev/null 2>&1; then
exec nc -6 $2 $3
else
exec ssh -q $1 "nc -6 $2 $3"
fn decode<'a, T: Decodable<MyDecoder<BufReader<'a>>, IoError>> (&self, key: u64) -> Result<Option<T>, ~str> {
match self.get(key) {
Ok(Some(data)) => {
let reader = BufReader::new(data);
// ^~~~ error: `data` does not live long enough
// because 'a is bound to the function context because of the returned T
// but 'a actually only needs to be temporary (the reader var in this context)
let mut decoder = MyDecoder::new(reader);
match Decodable::decode(&mut decoder) {
Ok(value) => Ok(Some(value)),
@zargony
zargony / test.rs
Last active August 29, 2015 14:12
#![feature(default_type_params)]
use std::thunk::Invoke;
struct Foo {
f: Box<for<'a> Invoke<&'a [u8]> + Send>,
}
impl Foo {
fn new<F> (f: F) -> Foo where F: FnOnce(&[u8]), F: Send {
Foo { f: box f }

Keybase proof

I hereby claim:

  • I am zargony on github.
  • I am zargony (https://keybase.io/zargony) on keybase.
  • I have a public key ASDpUCG3MNWA4H9eSRQMGr_wi66LtkgLqa1eZya-GEXBggo

To claim this, I am signing this object:

@zargony
zargony / config.yml
Last active December 16, 2020 16:47
CircleCI 2.0 configuration for Rust library crate project
version: 2
jobs:
test:
docker:
- image: rust:1
steps:
- checkout
- run:
name: Version information
@zargony
zargony / main.rs
Created January 29, 2019 22:25
Der Dialog der Schwestern
// Der Dialog der Schwestern
// Quick 'n dirty solution in Rust
// see https://www.heise.de/ct/artikel/Der-Dialog-der-Schwestern-4274601.html
#[derive(Debug)]
struct Encryption {
n: u32, // encryption modulus
e: u32, // encryption exponent
n2: u32, // decryption modulus
e2: u32, // decryption exponent