Skip to content

Instantly share code, notes, and snippets.

View iwate's full-sized avatar
🏠
Working from home

Yoshiyuki Taniguchi iwate

🏠
Working from home
View GitHub Profile
@iwate
iwate / main.js
Last active October 18, 2023 06:00
GTM Best Practices
function pushDataLayer() {
const data = Array.from(arguments);
// GTMが読み込まれていない可能性を考慮
// * GTMがサービスの設定値になっている場合は、設定してない可能性がある
// * 広告ブロッカー拡張機能が読み込みを阻害している可能性がある
// * 同様に、ブラウザ・ネットワークで読み込みが禁止されている可能性がある
if (!window.google_tag_manager) {
return Promise.resolve();
}
window.dataLayer = window.dataLayer || [];
;========================================
; 6502js asm
; move dot (a: move left, d: move right)
;========================================
LDA #$c0
STA $0000
LDA #$05
STA $0001
LDA #$01
@iwate
iwate / 00_dynamiccsharp.md
Last active August 2, 2019 06:12
Let's try dynamic programming!

ダイナミックプログラミングをためしてみよう

計算機を作ってみる, MSILを読んでみようの続きです。 内容は独立しているのでこの演習から始めても問題ありませんが、2つの演習の後が理想的です。

C#でプログラム書くとき、大抵の処理は型が事前に決定しており、難なく処理を書き上げることができるでしょう。 ライブラリなどを作成しており、使用する型が不定の場合であっても、ジェネリック型が助けてくれます。 時にはdynamicで実行時解決するのも手でしょう。

しかし、それだけでは手札が足りない状況に陥る場合があります。例えば、汎用的なシリアライザー/デシリアライザーやマッピング処理です。

@iwate
iwate / 00_msil.md
Last active July 26, 2019 06:08
Let's read MSIL

MSILを読んでみよう

[計算機をつくってみよう][_1]の続きです。内容は独立しているのでこの演習から始めても問題ありませんが、計算機を自分で作ってからのほうが理解が捗ると思われます。

MSIL (Microsoft Intermediate Language)

MSILはCIL(Common Intermediate Language)のMS実装です。CILはdotnetのruntimeが実行できる中間言語です。

C#やF#、Visual Basicをコンパイルするとdllやexeができます。これらの成果物は中間言語であるMSILやCILのバイナリになっています。

@iwate
iwate / 00_stackmachine.md
Last active August 30, 2019 13:28
Let's create stack based virtual machine!

計算機を作ってみる

この仕事をしていると当たり前のように使用している計算機=コンピュータ。この演習では簡単な計算機を作成に挑戦しよう。
初めての人は、コンピュータについてより深く考えられるようになるし、すでにやったことのある人も新たな気づきや挑戦ができる何回やっても楽しいお題だと私は考えます。
色々調べながらやるともっと楽しいでしょう。仲間や先輩に聞いたり議論するのも最高ですね。

さっそくはじめてみましょう。

色々な記法

@iwate
iwate / smooth.md
Last active April 26, 2019 10:14
A description for SMOOTH pattern.

SMOOTH Pattern

Stimulus.js + BEM + Intercooler.js + TagHelper Pattern

SMOOTHはASP.NET Core TagHelperを用いたコンポーネントのパターンです。

モチベーション

HTMLのコンポーネント化するための技術は今まさに戦国時代中ごろまで来ており様々な実装があります。
W3Cが進めるWebComponentsやそのGoogle実装のPolymer、仮想DOMがもちいられているReactや、MVVM上がりのVueなど実に多種多様です。

@iwate
iwate / .gitconfig
Last active September 1, 2022 09:29
.gitconfig
[user]
name = iwate
email = github@iwate.me
[alias]
branches = branch -a
tags = tag
stashes = stash list
remotes = remote -v
unmerged = diff --name-only --diff-filter=U
unstage = reset -q HEAD --
@iwate
iwate / gist:6f3148cad7d913d010d4be322e63fd32
Last active September 24, 2018 13:13
iwate/node-awscli
FROM circleci/node:7.10
RUN sudo apt-get update && sudo apt-get install -y \
python \
python-pip \
libpython-dev \
unzip \
zip \
groff-base
@iwate
iwate / src.cs
Created May 14, 2018 03:53
Convert Guid to string as short format.
private static string _strMap = "0123456789abcdefghijklmnopqrstuv";
private static char[] _charMap = _strMap.ToArray();
public static string ToShortString(Guid guid)
{
char[] chars = new char[26];
byte[] bytes = guid.ToByteArray();
ulong head = BitConverter.ToUInt64(bytes,0);
ulong tail = BitConverter.ToUInt64(bytes,8);
for (int i = 0; i < 13; i++)
{
@iwate
iwate / EncryptDecryptWithMachineKey.workbook
Last active October 26, 2022 07:24
MachineKeyのProtect/UnprotectをSystem.Webを使わずにやってみる
packages uti platforms
id version
System.Security.Cryptography.Algorithms
4.3.0
id version
System.Security.Cryptography.Primitives
4.3.0
com.xamarin.workbook
Console