Skip to content

Instantly share code, notes, and snippets.

@yaegaki
yaegaki / if_for
Created May 8, 2015 15:26
ifとfor
#include <iostream>
#include <functional>
int main()
{
auto _if = [](bool cond, std::function<void()> _t, std::function<void()> _f)
{
cond ? _t() : _f();
};
#include <iostream>
#include <type_traits>
extern void* enabler;
template<typename T, typename std::enable_if<std::is_integral<T>::value>::type *& = enabler>
void print(T t)
{
std::cout << "is integral : " << t << std::endl;
}
@yaegaki
yaegaki / gist:791db6c5fbe8f74f1010
Created April 27, 2015 13:41
vs2015_make_unique
// TEMPLATE FUNCTION make_unique
template<class _Ty,
class... _Types> inline
typename enable_if<!is_array<_Ty>::value,
unique_ptr<_Ty> >::type make_unique(_Types&&... _Args)
{ // make a unique_ptr
return (unique_ptr<_Ty>(new _Ty(_STD forward<_Types>(_Args)...)));
}
template<class _Ty> inline
@yaegaki
yaegaki / memo-cli.js
Last active August 29, 2015 14:19
某メモサイトのクライアント
var _ = require('lodash');
var io = require('socket.io-client');
if (process.argv.length <= 2) {
throw 'usage: node memo-cli.js hostname';
}
var host = process.argv[2];
var socket = io.connect('http://' + host + '/');
var log = {};
socket.on('create', function (memoData) {
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
@yaegaki
yaegaki / file0.cs
Last active August 29, 2015 14:16
UniRxでマウスドラッグに閾値を設定する ref: http://qiita.com/yaegaki/items/e2867ed59e24d48f89c2
public override void Awake()
{
var threshold = .5f;
var mouseDownStream = this.UpdateAsObservable()
.Where(_ => Input.GetMouseButtonDown(0));
var mouseUpStream = this.UpdateAsObservable()
.Where(_ => Input.GetMouseButtonUp(0));
var mouseStream = this.UpdateAsObservable()
@yaegaki
yaegaki / hoge.cs
Last active August 29, 2015 14:15
UniRxほげ
this.UpdateAsObservable()
.TakeUntil(this.UpdateAsObservable().Where(_ => Input.GetMouseButtonUp(0)))
.Scan(new List<Vector3>(), (list, _) =>
{
Debug.Log("Scan");
return list;
})
.Where(list =>
{
Debug.Log("Where");
@yaegaki
yaegaki / file0.cs
Created February 13, 2015 21:27
[C#]Excel列名変換問題を解く ref: http://qiita.com/yaegaki/items/2865d8a28f0dca30b4f4
public static int ToInt(string str)
{
return str
.ToCharArray()
.Reverse()
.Select((c, i) => new KeyValuePair<int, int>(i, (int)c - (int)'A' + 1))
.Aggregate(0, (sum, pair) => sum + pair.Value * (int)Math.Pow(26, pair.Key));
}
@yaegaki
yaegaki / file0.js
Last active December 8, 2015 01:36
[JavaScript]CryptoJSでAES暗号のsaltとパスフレーズからkeyを求める ref: http://qiita.com/yaegaki/items/9701317a76a35bea1684
var encrypted = CryptoJS.AES.encrypt('message', 'pass');
console.log(encrypted.salt.toString()); // 467c08b2364309e8
console.log(encrypted.key.toString()); // 6e475a9672994638c4231bd750ab7aceeb9004229f0a26c3622a2045deb789e9
@yaegaki
yaegaki / file0.js
Created January 15, 2015 19:28
[JavaScript]文字列から関数を作る ref: http://qiita.com/yaegaki/items/79a552f205120c3a94d2
Object.defineProperty(String.prototype, 'f', {
get: function () {
var body = this;
return function () {
var params = [];
var args = [];
for (var i = 0; i < arguments.length; i++) {
params.push('$' + i);
args.push('arguments[' + i + ']');
}