2022/11/28 に富山商工会議所で開催された DojoCon Japan 2022 に参加してきました。 3 年ぶりの現地開催ということで、全国各地の Dojo のチャンピオンやメンターがたくさん来場していました。 2019 年の参加レポート記事 同様に、今回の参加レポートも複数…
前回の記事 C のポインタへのキャストをちょっと理解する話 を書き終えた後、構造体へのポインタのキャストも同じように考えられるのではと思いました。 自分の理解が合っていることを確認するために、実際に簡易的なコードを書いて動かしてみました。 備忘…
マルチスレッドのプログラムの書き方を勉強するために、 C の pthreadsライブラリを使ったマルチスレッドプログラミングの参考書のサンプルコードを写経して動作を確認して勉強していました。 スレッドを作成する際に、 pthread_create() という関数を利用す…
DojoCon Japan 2019 参加レポート Part 2 に引き続き、DojoCon Japan 2019の参加レポートを書いていきます。参加から半年も経ってしまい、今更感が拭えないのですが、気にせず書いていこうと思います(笑) スーパー学生トーク CoderDojoなどで活躍する学生の…
DojoCon Japan 2019 参加レポート Part 1に引き続き、DojoCon Japan 2019の参加レポートを書いていきます。参加から日が経ってしまい、頭から抜けていることもありますが、当日のメモと自分の記憶を頼りに書き起こしていこうと思います。 プログラミングコン…
2019/12/21(土)に名城大学で開催された DooConJapan 2019 に参加してきました。2020年のプログラミング教育必修化にあたり、今回のDojoConでは、全国各地のCoderDojoの関係者だけでなく、先生方やプログラミング教育支援に携わる大学の方々まで、様々な分野…
自宅のモニタが寿命を迎え始めていたので、約5年使ってきたLGのモニタを買い替えることにしました。幸いにも、モニタを譲り受けることが出来たので、購入することなくモニタを交換出来ました。 モニタが4K対応なので、画面を広々使えるようになったと感じら…
この記事は Web × PHP TechCafe Advent Calendar 2019 の12/15の記事です。 LaravelでモデルをREST APIのレスポンスとして返す際には、コントローラからモデルのCollectionやインスタンスを返すことで、レスポンスはJSON形式で返されます。しかし、モデルの…
Vue.jsでドラッグ&ドロップで要素を動かしたいなと思い、HTML5のDrag and Drop APIの利用を考えましたが、移動元の要素の場所をドラッグ開始時(dragstart イベント)に保持して、ドロップ時(drop イベント)に要素を並び替える必要があり、少々実装が複雑です…
Laravelでは、デフォルトでVue.jsをサポートしており、バンドルツールのWebpackも簡単に使えます。ただ、流石にいい感じのUIコンポーネントを自前で1から作るのは大変なので、Vue.jsのフレームワークとして有名な Vuetify を採用してみることにしました。 Vu…
デスクトップアプリケーションを開発する手段はいくつかある(X Window System, JavaFX, Tkinterなど)と思いますが、普段JavaScriptでWebアプリケーションを作る人にとっては、HTMLとJavaScriptでデスクトップアプリケーションが作れるElectronが便利でしょう…
JavaScriptを使って、Canvas上にお絵かきをするツールを作ろうと思い、 情報収集をしていた時に、こんなコードが目に飛び込んできました。 var rect = evt.target.getBoundingClientRect(); var x = ~~(evt.clientX - rect.left); var y = ~~(evt.clientY - …
これまで、FreeBSD 11.1を使っていたのですが、FreeBSD 11.2がリリースされていたので、アップデートすることにしました。 freebsd-updateコマンドでアップグレードをインストールし、再起動して残りのアップデートのインストールを完了させるつもりでした。…
デスクトップ環境のFreeBSDを利用しているのですが、しばらく使ってたら、Firefoxで新しいタブを開くと、 なぜかページがクラッシュしたとの表記が出てくるように。 Firefoxを一旦閉じて、起動し直そうとしても一向に立ち上がらなかったので、Chromiumを開こ…
クリスマスということで、ちょっとしたネタとしてバカゲーを作りたいなぁと思い立ち、JavaScriptでゲームを作ることにしました。 当初、JavaScriptの標準ライブラリとjQueryだけを使って、DOM操作で作ろうとしたのですが、早々に折れました。 JavaScriptでゲ…
時々、Webサーバからシェルのコマンドを呼び出したくなることがあります。 例えば、GraphVizでグラフを自動生成してWebページに貼り付けたい場合、 内部的にはdotコマンドが実行されます。 おそらく、現実的にはPerlのGraphVizモジュールを利用するなど、 外…
自作PCのHDDにFreeBSDを入れて、デスクトップ環境を構築してぼちぼちと使っていました。 特に問題なく動作していたのですが、ある日、起動したらこんなメッセージが表示されました。 error 32 lba 106366 error 32 lba 475711486 No /boot/loader FreeBSD/x8…
今回は、システムコールforkやwaitなどについて書いていこうと思います。 forkを呼び出すことで、 子プロセスの生成が出来ます。 また、waitを呼び出すことで、 親プロセスが子プロセスの終了を待ちます。 以下にプログラム例を示します。 #include <stdio.h> #includ</stdio.h>…
前回、GraphVizを使ったグラフの生成方法について書きました。 今回はdot言語ではなく、Perlでプログラムを記述してグラフを生成します。 ディレクトリの内容物を再帰的に取得してグラフ化したり、CGIプログラムに応用するなど、使い方は様々だと思います。 …
以下のようなグラフを作りたい時、GraphVizが便利なんです。 ディレクトリ構造をGraphVizを用いて表現 GraphVizはdot言語に記述されたコードからグラフを生成します。上のグラフを生成するためのコードは以下の通りです。 graph g { "public_html" [ shape =…
Mac OSXやLinuxなどでbashやPerlのスクリプトを記述する際に、 スクリプトファイルの先頭の行に #!/bin/bash や、#!/usr/bin/perl のように記述します。 これは、bashが/bin/bashに、 Perlが/usr/bin/perlに存在する環境であれば正常に動きます。 ところで、…
自宅のネットワーク環境を一新したので、自分のRaspberry Piのネットワーク設定も変更したのですが、以前の環境で固定IPの実験をしていたので、DHCPに一旦直すのに手こずってました。 そこで、備忘録的な感じで、Raspberry PiでのWi-Fiの設定について書いて…
Cでソケットプログラミングをする時なんかに、 構造体struct sockaddr_inを bindやaccept, connectなどの関数に渡す際に、 struct sockaddr*にキャストして渡します。 正直、僕にとっては、構造体へのポインタのキャストって、 イメージしづらい と感じます…
Perlでファイルを下から1行ずつ扱いたい時、File::ReadBackwardsモジュールが便利なんです。 まあ、頻繁に逆順で読むのか、というと、そうではないのですが、いざ逆順に読みたいという時には便利です。 標準ライブラリではないはずなので、CPANからインスト…
PHPの独学に用いた参考書の中に、GDで画像操作が出来るというのを知ったのですが、色々応用して使ってみたいと思うようになったので、ちらっと齧ってみることにします。 以下はテキストフォームから文字列を受け取り、画像として出力するプログラムです。 入…
JavaScriptでプログラムを組んでいて、使い捨ての関数を再帰的に呼び出したいと思い、即時関数とarguments.calleeプロパティを使うことにしました。 arguments.calleeプロパティはJavaScriptの参考書で読んだことあるので知っていたんですが、いつ、どこで即…
タイトルが長ったらしいですが、実際に自分が詰まったので、このタイトルで書くことにしました。 例えば、Hogeクラス内に、hogeメソッド、hogehogeメソッド、piyopiyoメソッドを定義し、hogeメソッドから3秒カウントダウンする間にhogehogeメソッドを呼び出…
今回はlseekというシステムコールについて、適当に書いていこうと思います。 lseekは、ファイルポインタを指定の位置に動かします。 プログラム例を以下に示します。 #include <fcntl.h> #include <unistd.h> int main(int argc, char **argv) { int fd; char buf[65536]; if(ar</unistd.h></fcntl.h>…
UNIX ファイルディスクリプタに触れてみる その1では、 標準入力、 標準出力、 標準エラーについて書きました。 今回は、リダイレクションについて書こうと思います。 また、3以上のファイルディスクリプタについても軽く触れようと思います。 リダイレクト…
システムコールで遊んでみる その1 やシステムコールで遊んでみる その2でも出てきていますが、UNIXシェルから見ていくことにしましょう。 ファイルディスクリプタ(file descriptor)はファイル記述子とも呼ばれます。 Cのヘッダファイルunistd.hでは標準入力…