Skip to content

Instantly share code, notes, and snippets.

View amachang's full-sized avatar

Hitoshi Amano amachang

View GitHub Profile
@amachang
amachang / learning_windows.md
Last active July 1, 2023 15:16
[Windows] Windows を触ってみる

Windows を触ってみる (Powershell メイン)

前提

GCP の Compute Engine で立ち上げた Windows を ssh 経由でログインして使う

この PowerShell が Administractor として起動されたかどうか知りたい

# Identity を取得
@amachang
amachang / static_immutable_reference.md
Last active June 28, 2023 12:48
[Rust] &'static な参照になれる値

&'static な参照になれる値

struct Foo { }

fn bar() {
  let ref: &'static _ = &Foo { };
}
@amachang
amachang / why_futures_use_pin.md
Last active June 26, 2023 15:55
[Rust] Future の poll で Pin が使われる理由

Future の poll で Pin が使われる理由

シンプルにいうと以下の式で作られる Future が !Unpin だから

let f = async { ... };

async ブロックの中では、値が await を挟んで普通に参照されたりするだろう。 つまり、参照と値がそれぞれ別の Future に属していて Future がツリー状につながっているような状態が普通である。

@amachang
amachang / rust_pin.md
Last active June 25, 2023 19:57
[Rust] Pin の使い所

Pin の使い所

Pin は自己参照を持つなどの理由で固定のメモリの位置をキープしたい構造体に対して使う。

まず、自己参照を持つ構造体を考えてみる。

struct T0 {
    ptr: *const Self,
    _p: PhantomPinned,
@amachang
amachang / gist:412526c13f23d7433d7b35e70edd83dc
Last active June 25, 2023 16:08
[Rust] Vec が Sync であり RefCell<T> や Rc<T> やポインタが Sync ではないこと
Sync について混乱したこと
「Vec は Sync だけどいろんなスレッドから push されたら壊れるから Sync じゃなくない?」とか一瞬だけ忘れて思ってしまうことがある。
ただ、よく考えたら以下のことがコンパイラでチェックされるからいろんなスレッドから push されるコードは(unsafe なことしないと)書けないよなあと思い直した。
- 参照が存在したら値の変更ができない
- 参照が存在したら所有権を手放せない
- 不変参照したら可変参照できない
- 可変参照したら不変参照できない
- 可変参照が複数できない
(参照が関数に渡されたりやreturn を経由してどっか行っちゃってコンパイラがチェックできなくなることはない。
contents of bar
contents of foo

既存のプログラミング学習方法とガルこれの比較

| 動画 | セミナー | 書籍 | 仕事としてやる | ガルこれ --- | --- | --- | --- | --- | --- とっつきやすさ | ○ | × | × | ○ | △ 最初の一行を書くまでの敷居が低いか | △ | ○ *1 | × | ○ | ○ 文法や基本的な関数の習得に向いているか | × *2 | ○ | × | ○ | ○ モチベーションを保ちやすいか | △ | ○ | × | ○ | ○ プログラミング以外のことを学べるか
(デザイン、ディレクション、マネジメント、テストの仕方、ライブラリのこと、などなど) | △ | ○ | ○ | ○ | × お金がかからない | ○ | × | △ | ○ *3 | ○

@amachang
amachang / gist:4670781
Created January 30, 2013 05:02
こんな感じ
syntax on
set number
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=0
set smartindent
@amachang
amachang / skype.conf
Created November 12, 2012 02:04
Ubuntu Upstart Script for Skype
# Set up xvfb.conf like https://gist.github.com/1934754
# as a prerequisite for this configuration.
description "Skype"
start on (net-device-up
and local-filesystems
and started dbus
and started xvfb
and runlevel [2345])