mcommit's message

ソフトウェア開発の仕事をしているsimotinといいます。記事の内容でご質問やご意見がありましたらお気軽にコメントしてください\^o^/

構文解析ハンズオン 関西出張版に参加させて頂きました

lang-impl.connpass.com参加させて頂きました。 目次 目次 良かった点 苦労した点 構文解析について思ったこと Rubyで式の構文解析をしてみた 書いてみて気づいたこと 再帰か状態遷移か 今後やってみたいこと パーサジェネレータを書く 関数型言語でパーサを…

Goでバイナリファイルを読み込んでHexダンプしてみた

Go

最近触り始めたGo言語で、勉強としてバイナリファイルを読み込んでHexダンプしてみました。 バイナリファイルといってもfile.Readを使った読み込みなのでバイナリかどうかはあまり関係ないかもしれない。 package main import ( "fmt" "os" ) func main() { …

レジスタの値を取得するi386のアセンブラ関数を書いてみた

前回書いたPINE64+の続きとして、とりあえずBROMの処理が終わった状態でCPUがどうなっているか知りたいのですが、難航しています。mcommit.hatenadiary.comBROMのコードのダンプを見た結果、コプロセッサの設定とかをしていることは分かりましたがどうも追い…

PINE64のBROMのコードをダンプして逆アセンブルしてみた。

Pine64の続き。 記事はさっきあげましたが、昨日(2/26)Lチカを試したのですが、書きかけになっていたので公開していませんでした。 スタックポインタの設定の件とかモヤモヤしたので今日はBROMのコードをダンプしてみました。 目次 目次 有力な手がかり ダン…

PINE64をベアメタルで遊んでみる。

随分前にPine64+ 2GBというボードを買っていたのですが積み基板になっていました。 ちょっとARMで遊びたくなったのでベアメタルからのLチカしてみました。 ソース とりあえずGithubで管理することにします。 github.com ツールチェインについて クロスコンパ…

小学1年生の娘にC言語を教えてみて気付いた、プログラミング教育を通して子供に伝えるべきたった1つの大切なこと

意識高そうなタイトルをつけてみましたが、単純に自分の子供にプログラミングを教えてみました。実際に教えてみると、子供にプログラミングを教えるという体験を通して逆に教えられたことがあったので書いておきたいと思います。 目次 目次 動機 教育方針 具…

gdbを使って386アセンブラの復習をする

結構前に買っていたセキュリティコンテストチャレンジブックという本を最近になって読んで、脆弱性のあるコードを動かしたりして遊んでいました。セキュリティコンテストチャレンジブック -CTFで学ぼう! 情報を守るための戦い方-作者: 碓井利宣,竹迫良範,廣…

TranscendのJDM820を買ってMacBookProのSSDを交換した

普段使っているMacBookPro(Late 2013)でS.M.A.R.Tエラーが出ていたため、タイトルの通り MacBookProで使えるSSDであるJDM820を買ってSSDを交換してみました。 SSDの交換から復旧して使えるようになるまで比較的簡単でしたのでまとめておきたいと思います。 …

LLVMのビルドについてまとめてみる

2018年早々、LLVMのビルドで消耗しておりました。 なんとなくlibToolingを使ってみようとしたらソースのビルドが必要そうな感じだったので始めたのですが、LLVMには複数のプロジェクトがあり、各プロジェクトの役割とかいまいちピンと来ておらず、ビルドにあ…

LLVMをビルドするときのリンクエラー対応

llvmをビルドしようとしてリンクエラーでこけました。 VMWare上のLinux Mint上でビルドしているのですが、ググってみるとどうもシステムのメモリ容量が小さいから起きているようでした。 ※だいぶ前にLLVMをビルドしようとしたときにもはまったきがするので備…

C言語でbrainfuckを実装してみた

なんだかすごく今更ですが、気分的になんとなく実装してみました。 仕様把握 そもそもbrainfuckの仕様がよく把握できていないのでwikipedia等いくつかのサイトを参考にさせて頂きました。Brainfuck - Wikipedia Brainf*ckHello Worldなどいくつかサンプルコ…

Lispの電卓機能を実装してみる

冬休みということで少し時間があるのでいろいろ勉強しているのですが、なんとなくLisp処理系を書いてみたくなったのでRubyで実装してみたいと思います。Lisp処理系の実装というとshemeの仕様を理解して実装するのが一般的らしいのですが、冬休みで時間も限ら…

2017年にやりたかったことの振り返り

2017年にやったこと振り返り今年(2017年)の初めにいくつかやりたい事を上げましたが、達成度の振り返りや来年に向けての反省等書いておきたいと思います。 2017年にやりたかった事 こちらの記事に書いていたのは、http://mcommit.hatenadiary.com/entry/2017…

Ceyo Switch PRO コントローラーの接続手順

[ 12/28日 追記] この記事で紹介したCeyo のコントローラですが、マインクラフトで試しているとどうもZLボタン(左上の下側)のボタンが認識されていないようです。 やはり廉価品ということで壊れやすかったりするようですので購入される方は注意された方がよ…

GAOHOUのTTL-USBシリアル変換ケーブルを買ってみた

amazonを見ていると格安のUSB-TTL変換ケーブルが売っていたので買ってみました。Raspberry Pi ラズベリーパイ用の USB?TTLシリアルコンソールのUSB変換COMケーブルモジュールのケーブル出版社/メーカー: GAOHOUメディア: エレクトロニクスこの商品を含むブロ…

Linuxのカーネルモジュールを書いてみた

今年の1月に書いた、2017年にやりたいことmcommit.hatenadiary.comにLinuxのデバイスドライバを書いてみるというのを挙げておりましたが、この12月に至っても達成できていなかったのでとりあえずLinux mint上でカーネルモジュールを書いてみました。 書いた…

「戦略参謀」を読んだ

ジュンク堂大阪本店のビジネス書のコーナーの目立つところで売られていたので目にとって読んでみたらなんか面白そうだったので買ってみました。戦略参謀 経営プロフェッショナルの教科書 (日経ビジネス人文庫)作者: 稲田将人出版社/メーカー: 日本経済新聞出…

amazonのブックデポジトリー(book depository)で本を買ってみた

Valgrindについていろいろ調べていたら書籍が出ているということで買ってみたのですが、ブックデポジトリーがAmazonに出している本を注文する形で購入しました。 届くまでに時間が少しかかったので書いておきたいと思います。 目次 目次 Valgrind 注文してか…

Nucleo64 STM32F446 を買った

ここ最近体調を崩していたので記事を更新できていませんでした。 体調がよくないとあまり勉強とかもする気分にならなくて積み本と積み基板、積みツールだけがどんどん溜まっていく。とりあえず、タイトルの通りNucleo STM32F446を買ったので少しメモを残して…

Elixir入門 ~12日目 eclipseでerlangのデバッグ環境を作る~

昨日はerlangについて調べてみた結果を書いたけど、今日はソースをぼちぼちとみてみた。mcommit.hatenadiary.comソース少し読んでみたが、ちまたで言われるerlangの並列性の本質が知りたくなったので本格的に調べてみることにした。 そもそも、Elixirを勉強…

Elixir入門 ~11日目 Erlangについて調べてみる~

前回はElixirでHTTPするコードを書いてみた。mcommit.hatenadiary.com mixを使えば比較的短い行数でHTTPアクセスするコードが書けることは分かったけど、これでは正直Elixir/Erlangの良さが分からない。そもそもElixir/Erlangは並列計算にメリットがある言語…

Elixir入門 ~10日目 Elixirでお宝データをゲットしてみた・mix,HTTPoisonの使い方とか~

Elixirを勉強する上で、肩慣らしにお宝画像のデータを集めるスクリプトを書いてみたいという記事を書いたけどmixの使い方がよく分からなかったので、憂さ晴らしにRubyでやりたいことを明確化していた。mcommit.hatenadiary.com何事もやるべきことを明確にし…

Linux Mint のデフォルトパスワード(live session password)

Mintをインストールするときは、インストーラーに従って適当に入力した後はPCをほったらかしにすることが多い。 インストーラとして動作するの、 live session というらしい。で、しばらくしてPCを見ると画面がロックされてて、「え!?」なったので。インス…

Rubyによるお宝データ探し

少し前の話ですが、elixirの勉強をしているのですが勉強がてら面白いスクリプトは書けないものかと考えていたら、はてなのホットトピックに面白い記事が上がっていました。umihiro.hateblo.jpサイトを見てみると美女の画像が沢山!ということでElixirで画像…

Elixir入門 ~9日目 erlang・elixirをビルドしてインストールしなおした~

前回の記事、mcommit.hatenadiary.comから少し時間が空いてしまった。HTTPoisonがすぐに動かせなくなってモチベーションが下がったことと、仕事が忙しかったというのが理由というか言い訳。HTTPoisonが動かない理由がElixirのバージョンが古いということだっ…

Raspberry Pi 用にGDBをクロスコンパイルしてリモートデバッグしてみた

デバッグに便利なGDBですが、Raspberry Pi用にクロスコンパイルしてリモートデバッグを試してみました。GNU関係のソフトは、必ずしもバージョンが新しければよいというわけではない(むしろ新しいバージョンだと思いもよらないバグがあったりする)のですが、…

Elixir入門 ~8日目 HTTPoisonを動かすにはElixir1.2が必要だった~

昨日の続き。mixが動くようになって、 mix.exs を編集して mix deps.get でモジュールをダウンロードするところまではできた。と、思っていた。 今日はGithubgithub.com を参考にいざ動かそうとしたら以下のようなエラーメッセージがでた・・・今度はなんだ…

Elixir入門 ~7日目 mixが動かない原因が分かった~

mix が動かない原因が分かった。「elixir iex INFO REPORT」でググるといくつか情報が出ていて、日本語の情報だとQiitaのこちらの記事が参考になりそうです。qiita.com ※参考にさせて頂き、ありがとうございます (m_m) 手元で確認したバージョンと結果 とい…

Elixir入門 ~6日目 elixirのインストールに失敗してた~

今日はmixを使っていろいろ試してみようと思ったらmix コマンドがちゃんと動かなかった。どうもelixir/erlangのインストールに失敗してたっぽい。 $ mix =INFO REPORT==== 10-Sep-2017::17:13:16 === application: logger exited: {{shutdown, {failed_to_st…

Elixir入門 ~5日目 ファイルの読み書き~

今日は帰りが遅くなったのであまり時間が取れない。ファイルの読みこみだけ試してみた。CSV形式のファイルを読んでみる。sample.csv とする。 aaa,1 bbb,2 ccc,3ファイルアクセスはFileモジュールを使うらしい。 読み込みはreadかopen iex(1)> File.read("sa…