Skip to content

Instantly share code, notes, and snippets.

@muumu
muumu / overload.cpp
Created October 16, 2021 17:45
A sample of overloading in C++
#include <iostream>
#include <utility>
#include <string>
#include <vector>
#include <map>
#include <unordered_map>
#include <set>
#include <algorithm>
template<typename T>
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
; 事前にChangeKeyで「CapsLock」 -> 「無変換」、「左Ctrl」 -> 「CapsLock」、
; 「無変換」->「Backspace」、「左Alt」 -> 「左Ctrl」にリマップしておく
vk1C & 9::Reload ;このスクリプトをリロードして適用
vk1C & 8::Edit ;このスクリプトを編集
@muumu
muumu / 業務経歴書.md
Last active March 22, 2021 03:09
業務経歴書

基本情報

居住地 東京都23区
Twitter @typename_
Qiita @muumu
資格 認定スクラムマスター
応用情報技術者
色彩検定 2級
TOEIC 915点
経歴 Webエンジニアとして8年

得意分野

4.2 futureで単発のイベントを待つ

スレッドはfutureを取得して他のことをしながら定期的にチェックするか、他のことをしてから単にfutureがreadyになるのを待つこともできる
C++標準ライブラリのfutureにはstd::futureとstd::shared_futureの2種類ある。
スマートポインタに例えると前者はunique_ptrに、後者はshared_ptrに対応する。
つまりstd::futureはコピーできない唯一のインスタンスを提供するのに対して、std::shared_futureはコピーできる。
コピーされたstd::shared_futureはそれを見ている全てのスレッドに同時にreadyになったことを知らせる。
std::futureを複数のスレッドで見る場合はロックによる排他制御が必要。

futureはスレッドで実行した関数の戻り値を受け取る簡単なインターフェースを提供する。
futureのテンプレートパラメータには戻り値の型を指定し、戻り値が無い場合はvoidを指定する。

@muumu
muumu / scrum_note.txt
Created July 17, 2017 18:39
スクラム学習メモ
アジャイルの原則
イテレーティブ(反復的)
- 間違いや失敗が起こった後でなければ正解は分からないという前提
- 計画的な手戻り戦略により優れたソリューションを目指す
インクルメンタル(漸進的)な開発
- 少しずつ作ることで短期間の間にフィードバックを受け、手戻りのコストを最小限にする
スクラムの定義と目的

lockされている時間を小さくにするにはlockの粒度を小さくした方が良い。
しかしその場合deadlockという別の問題が生じる。
deadlockは複数のmutexを使用する時の最大の問題である。

3.2.4 Deadlock

一般的なdeadlockの回避方法は常に同じ順序で2つのmutexをlockすること。
これが守られればdeadlockになることはない。
しかしこのルールはそんなに簡単なものではない。
aに対するmutexとbに対するmutexがあった時、あるスレッドがswap(a, b)を呼び出し、別のスレッドがswap(b, a)を呼び出した場合、

@muumu
muumu / monetary_policy_company_activity.txt
Last active June 30, 2017 03:54
金融政策と企業の設備投資・自社株買いとの関係
金利と設備投資との関係
利潤率 = 設備が生み出す年間利益 / 設備の価格
投資を増やすほど利潤率は通常下がる
最適な設備投資: 金利=利潤率となるまで投資
利潤率がプラスなら投資を増やせば増やすほど利益は増やせるが、
借り入れ資金を使う場合はその金利以上の利益を上げなければならない
自己資本を使う場合は長期金利以上の利潤率じゃないと国債に投資した方が良いことになるので設備投資の意味がない
金利の自社株買いへの影響
自社株買い: 自社株を買って発行済株式数を減らすこと。BSでは現金が減って純資産のところに自己株式のマイナス表示が追加される
C++11ではstd::threadが比較的容易にスレッド管理ができる
単純でない操作も基盤となる構成要素で柔軟性を提供してくれる
2.1
C++プログラムでは起動時にmain関数を実行しているスレッドを持っている
そこから並行してスレッドを立ち上げることが可能
main関数から戻ったら全てのスレッドは終了する
2.1.1
std::threadには任意のcallable(関数オブジェクト、関数ポインタ)を渡せる
@muumu
muumu / note20140928.cpp
Created September 28, 2014 13:44
personal note
// shared_message.h
#pragma once
#include <boost/interprocess/sync/interprocess_semaphore.hpp>
using namespace boost::interprocess;
struct shared_memory_buffer {
//writer initialized with one to start
@muumu
muumu / itoa_r_unroll.cpp
Last active August 29, 2015 14:04
an itoa implementation inspired by boost::spirit::karma
#include <iostream>
#include <boost/type_traits.hpp>
#include <boost/utility/enable_if.hpp>
#include <boost/preprocessor.hpp>
#define NUMERICS_LOOP_UNROLL 10
#define NUMERICS_INNER_LOOP_PREFIX(z, x, data) \
if (value != 0) { \
const char ch = value % Base + '0'; \