Skip to content

Instantly share code, notes, and snippets.

@qnighy
qnighy / rust-patterns.md
Last active March 20, 2024 03:33
Rustのパターンっぽいやつメモ

パターンとはその言語が抽象化できなかった敗北の歴史である。 しかしどんなに優れた言語であってもあらゆる繰り返しに勝てるわけではない。 人は必ずメタ繰り返しを欲するからだ。 そしてそれはRustも例外ではない。

ここでは、OOPでも知られているパターンよりも、Rustに特有のパターンを思いつく限りまとめてみた。名前は適当。

  • crate splitting
    • でかいcrateを分割して、見通しを良くする・再コンパイルの分量を削減する・並列コンパイルを可能にする
  • 親玉crate(全てにdependする)と殿crate(全てにdependされる)があることが多いので、だいたい束みたいな形になる。
@fujimura
fujimura / bm.rb
Created July 10, 2014 08:31
Idea of RSpec-ish benchmarking tool
require 'benchmark_helper'
# Describe performance like RSpec-ish DSL
describe Api::Notifications do
before do
# Can use FactoryGirl to populate data
@me = create :user
create :post, author: @user
1000.times do
@jcartledge
jcartledge / set.class.php
Last active August 9, 2020 18:25
PHP immutable set
<?php
function set() {
return new Set(func_get_args());
}
class Set implements Countable, Iterator {
private $data = array();
function __construct($data) {
@j5ik2o
j5ik2o / try.md
Last active February 21, 2019 00:57
Tryの使い方

名前を与えると長さを返すメソッドがある。ただし、空文字列とaから始まる接頭辞を持たない場合は例外となる。

成功した時はSuccessにラップして返し、例外時はFailureでラップして返す。いずれもscala.util.Tryのサブ型である。

scala> import scala.util._
import scala.util._

scala> case class ZeroLengthException(name:String) extends Exception(s"$name is zeo length")
defined class ZeroLengthException

scala> case class PrefixInvalidException(name: String) extends Exception(s"$name's prefix is invalid")
@wokamoto
wokamoto / upload-s3.php
Created February 6, 2013 03:45
[PHP][AWS] AWS SDK PHP 2 で S3 にファイルをアップロード
<?php
require_once("aws.phar");
use Aws\Common\Aws;
use Aws\Common\Enum\Region;
use Aws\S3\Enum\CannedAcl;
use Aws\S3\Exception\S3Exception;
use Guzzle\Http\EntityBody;
$access_key = 'Your Access Key';
@hayajo
hayajo / changelog_en.md
Last active May 3, 2024 08:29
ChangeLog を支える英語

ChangeLog を支える英語

ChangeLog を書く際によく使われる英語をまとめました。

ほとんど引用です。

基本形

@mnrtks
mnrtks / pub.js
Created July 19, 2012 12:13
[RabbitMQ]1つのQueueに複数のルーティングキーを結びつけるサンプルコード
var amqp = require('amqp');
var util = require('util');
/*
* 指定したルーティングキーで定期的にデータを送信する
* Usage: node pub.js key1 key2 key3
*/
function main(argv) {
@rummelonp
rummelonp / faraday.md
Last active May 20, 2022 12:23
Ruby の HTTP クライアントライブラリ Faraday が便利そう

Ruby の HTTP クライアントライブラリ Faraday が便利そう

Ruby の HTTP クライアントライブラリ Faraday が便利そう

API ラッパの開発には [RestClient gem][rest_client_gem] だとか
OAuth の必要なものは [Net/HTTP][net_http] + [OAuth gem][oauth_gem] を使ってた

[Twitter gem][twitter_gem] や [Instagram gem][instagram_gem] など API ライブラリのソースを読んでみると
[Faraday gem][faraday_gem] というものがよく使われてた

@matope
matope / Dynamo: Amazonの高可用性Key-value Store.markdown
Last active November 18, 2022 17:54
Dynamo: Amazonの高可用性Key-value Store[和訳]
@yyuu
yyuu / copy_subdir.rb
Created April 18, 2012 09:42
a capistrano strategy to deploy sub-directory in repository with "copy" strategy
#!/usr/bin/env ruby
#
# a capistrano strategy to deploy sub-directory in the repository.
# this is a stuff like "remote_cache_subdir" strategy described in following page,
# but based on "copy" strategy of capistrano deploy recipe.
#
# http://stackoverflow.com/questions/29168/deploying-a-git-subdirectory-in-capistrano
#
require 'capistrano'