Skip to content

Instantly share code, notes, and snippets.

View objectx's full-sized avatar

Masashi Fujita objectx

View GitHub Profile
@mala
mala / cors_killer.js
Last active November 4, 2016 17:58
responseURLに対応していないライブラリを使っているときにクロスドメイン通信を無理やり止める
// responseURLに対応していないライブラリを使っているときにクロスドメイン通信を無理やり止める
// https://github.com/jquery/jquery/pull/1615
// responseURL
// https://bugzilla.mozilla.org/show_bug.cgi?id=998076
// https://bugs.chromium.org/p/chromium/issues/detail?id=377583
// https://bugs.webkit.org/show_bug.cgi?id=136938
new function(){
@taichi
taichi / code_review_basics.md
Last active May 30, 2024 14:23
チームでコードを書き始めた後、「どうやらレビューってやつをした方が良いらしい」くらいの若手に向けた資料です。

コードレビューの基本


一番大事な事

ソースコードはプロジェクトの共同所有物である

  • 誰かだけが触れるコードを無くす
@mono0926
mono0926 / commit_message_example.md
Last active February 11, 2025 06:39
[転載] gitにおけるコミットログ/メッセージ例文集100
@taisukeoe
taisukeoe / 201607.md
Last active July 20, 2016 13:03
多相な関数の定義から学ぶ、型クラスデザインパターン

#多相な関数の定義から学ぶ、型クラスデザインパターン

         twitter: @OE_uia github: taisukeoe

##多相な関数

  • 複数の異なる型に対して適用可能な関数
  • どの型に対して定義されているか、静的に決定できる(定義されてない型の値を渡すとコンパイルエラーになる)

MIPSのABIは変だという話をこないだのシステムプログラミング会でしたら、ややザワッとしたので、なにがおかしいのかというのをちょっとまとめてみました。まとめてみて思いましたが、やっぱりMIPSのELFファイルはちょっと変です。

謎のmixed endianフィールド

これが僕は一番ひどいと思ったものです。

ファイルにマルチバイトの数値を保存するときはエンディアンというものが問題になります。たとえば0xBEEFという2バイトの数を保存するときは、1バイト目にBE、2バイト目にEFを書くか、逆順で書くかは、ただの決まり事でどっちでもいいわけですが、書く側と読む側で認識があっていないと困ります。世の中的にはリトルエンディアン(下位バイトから書く)のが主流ですがビッグエンディアンなシステムもあります。

それがですね、MIPSのELFヘッダのr_infoという64ビットのフィールドはリトルエンディアンでもビッグエンディアンでもない謎なエンコーディングになっています。具体的には下位32ビットが最初にリトルエンディアンで書かれていて、ビッグエンディアンでエンコードされた上位32ビットがそれに続くという構成になっています。つまりリトルエンディアンだとABCD EFGH、ビッグエンディアンだとHGFE DCBAとなるところが、MIPSのmixed endianだとEFGH DCBAというふうにファイルに書かれていることになります。

@azu
azu / Patterns for Participating.md
Last active January 14, 2023 09:11
プログラミング言語標準化のパターン
@kazu-yamamoto
kazu-yamamoto / gist:9428e2512fb91f06010ad0f0f36def27
Last active June 24, 2016 23:21
concurrent hello world in Haskell
module Main where
import Control.Concurrent
main :: IO ()
main = do
mvar <- newEmptyMVar
_ <- forkIO $ child mvar
action <- takeMVar mvar
action
@orjan
orjan / checkout-pr.md
Last active August 7, 2020 21:40
Checkout pull request in Bitbucket server

Checking out pull requests in Bitbucket

/.git/config
[remote "origin"]
    url = ssh://[email protected]:7999/brikks/brikks.git
    fetch = +refs/heads/*:refs/remotes/origin/*
    fetch = +refs/pull-requests/*/from:refs/remotes/origin/pull-requests/*
    fetch = +refs/pull-requests/*/merge:refs/remotes/origin/pull-requests-merge/*
@voluntas
voluntas / erlang.rst
Last active February 2, 2023 12:00
Erlang/OTP (仮)

Erlang/OTP (仮)

日時:2016-09-21
作:@voluntas
バージョン:1.0.1
url:https://voluntas.github.io/

2016 年 6 月 24 日に行われる BPStudy の発表資料です