PHPカンファレンス小田原2024での発表資料です https://fortee.jp/phpconodawara-2024/proposal/4d39c7ef-058c-4648-b1d7-5510497e0d81
libevのドキュメントでしたら 本家のREADME を参照するのが良いと思います。 ev_async は、マルチスレッド環境でイペントループに対して安全にイベントを通知する仕組みです。例えば、あるスレッドが ev_run() しているイベントループに対して、別のスレッドからループの終了を通知したいといった目的で利用されます。 以下に ev_async を用いて、別スレッドからイベントループを終了させるサンプルのコードを載せておきます。(※ エラー処理など省略しています) #include <stdio.h> #include <unistd.h> #include <pthread.h> #include <ev.h> struct ev_loop *loop; struct ev_async shutdown_w; static void * thread_main (void *ar
software.schmorp.de #include <stdio.h> #include <stdlib.h> #include <netinet/in.h> #include <ev.h> #include <strings.h> #define PORT_NO 3033 #define BUFFER_SIZE 1024 void accept_cb(struct ev_loop *loop, struct ev_io *watcher, int revents); void read_cb(struct ev_loop *loop, struct ev_io *watcher, int revents); int main() { struct ev_loop *loop = ev_default_loop(0); int sd; struct sockaddr_in addr;
C言語のマクロの引数の最後に ... を指定することで任意個の引数を取り、 __VA_ARGS__ で参照できる:
通常, WindowsにRustをインストールすると, Visual C++ Build Toolsのインストールを求められる. C++環境をCygwinで既に持っているユーザーは, Visual C++ Build Toolsをインストールしたくない. ここではその回避方法を示す. 前提 gcc-core, gcc-g++, gdb, makeは既にCygwinで導入済みとする. 私のCygwinインストールメモはこちら. Rustの環境構築 ダウンロード 通常のインストーラーの場所ではなく, こちらからx86_64-pc-windows-gnuのrustup-init.exeをダウンロードする. インストール インストーラーの実行 C++のビルドツールが必要と言われますが, 既にCygwinで持っているためそのまま進めます. インストールオプションが出るため, 修正する必要があります.
はじめに 最近はすっかりWeb系スクリプト言語しか触らなくなってしまいました。 たまには毛色の異なる言語を使いたいと思い、Rustに手を出してみました。 Windows 10でCygwinを使った環境構築と、「Hello, World」までをやります。 参考URL: rustup.rs - The Rust toolchain installer プログラミング言語Rust 手順 Rustのインストール 下記に書いてある通りではあるんですが…細かく見ていきます。 rustup.rs doc.rust-jp.rs Windowsの場合はexeをダウンロードして実行するのが普通のようですが、 If you're a Windows Subsystem for Linux user run the following in your terminal, then follow the onscr
この記事は「ゆめみ その2 Advent Calendar 2019」の5日目の記事です。 ある日のこと… 「いきなりそんなこと言われても…」 上司「ついでにいろんなところで使いまわせるように普遍的なのにしてね」 「えぇ…」 「こういう時にエラーレスポンスが標準化されてRFCでまとめられてたらいいのになぁ…」 ありました RFC7807 : Problem Details for HTTP APIs RFC7807では開発においてHTTP APIのために新しくエラーレスポンスを定義するのを避けるために、プログラムが読み取れるような問題詳細(Problem Details)をapplication/problem+jsonまたはapplication/problem+xmlで定義しています。 問題詳細(Problem Details)ってなんぞや? type, title, status,
プログラミング指南 - Code Knowledge ゲーム制作に関するプログラミング等を主に書き溜めていきます。ただ、どちらかと言えば日記的な書き方が続くと思いますが、そこは温かい目で見て頂ければ。あと、ちょっとしたサンプルやツールのダウンロードも出来るようにしておきます。 レトロPCは最初は安価なカセットテープを記憶媒体として使っていました。その後に登場したのがフロッピーディスク(以下FDと略す)です。カセットテープが何分もロードに必要なところを数秒から数十秒で完了し、かつ、ランダムアクセスが可能なFDは、当時は高価な周辺機器だったにもかかわらず、あっという間に一般に浸透していきました。また、ドライブの価格も一気に値下がりしていったのを覚えています。 ところが、この便利なFDは便利であるが故の問題を抱えていました。それが不正コピーです。ゲームソフトハウスが発売した製品も、簡単に複製でき
昔ってのはゼビウスとかディグダグとか、1980年代前半までさかのぼるくらいの昔。この頃のレトロアーケードゲームのBGMは、4~8小節くらいの短いフレーズを繰り返すものがあった。 自作ミニゲームのBGMとしてそういったBGMが欲しい、できれば自動生成したい、というもくろみが前々からあって、いくつかそういった技術を探していた。 一つはWolframTones。セルラオートマタを切り出してメロディにする手法。これはお手軽でよさそうなのだが、16分音符で完全五度で往復するベースとか、昔のゲームでよく見るフレーズが再現できないのが弱点に見える。 最新のものだとOpenAIのJukeboxがあるが、これは楽譜ではなく音楽の波形を生成するものなので、レトロゲーム向けではない。 そこでMagentaだ。MagentaはGoogleがやっている、機械学習を音楽や絵に応用するリサーチプロジェクト。ブラウザで動
この記事は Flutter #3 アドベントカレンダー 2020 - Qiita 8 日目の記事です。 Flutter でアプリ開発をする上で StatefulWidget の setState() を使ったことが無い、という方はおそらくいないでしょう。StatefulWidget の「状態」を管理する State に対して、その状態が変化したことを教えて画面の再描画を依頼するアレです。 Flutter のチュートリアルでも真っ先に出てくる、誰もが知っているこの State.setState ですが、この記事では Flutter のソースコードを読みながら具体的に Element ツリー上で何が起きて画面が更新されているのかを見ていきたいと思います。 これが何の役に立つのかと言われると微妙なところですが、例えば「setState() って細かく何度も呼んじゃって良いの?」のような疑問がもし
Original article:https://dev.to/dotnetsafer/rip-copy-and-paste-from-stackoverflow-trojan-source-solution-4p8f その昔コピペできない文章というものがありました。 実際は単にフォントを変えているだけというものですが、人間の目に見える文字と実際の文字が異なることを利用した攻撃の一種と見ることもできます。 さて、最近になって似たような攻撃に関する論文が公開されました。 人間には見えない文字を織り交ぜることによって、一見問題ないコードが実は脆弱になってしまうというものです。 ただ論文は堅苦しいうえに長くて読むのがつらいので、具体的に何がどうなのかよくわかりません。 平易に解説している記事があったので紹介してみます。 以下はDotnetsafer( Twitter / GitHub / Web
ブログ読者のみなさん、はじめまして。 株式会社セガのベテランプログラマー阿部です。 このエントリーではデバッグ手法のあれこれについての体験談と、デバッグをテーマに一昨年に実施されたプログラマー向け新人研修の概要をお伝えしたいと思います。 EXE ファイルのデバッグ イーサネット絡みのデバッグ 周辺機器絡みのデバッグ デバッグスキルブートキャンプ 黒子に徹する、裏方系エンジニア EXE ファイルのデバッグ 同僚が作った EXE ファイルが手元にあり、あなたはこれを Windows で起動しようとしています。 起動してみたところ何も反応がなく、しかもそれは想定外のことでした。 「何コレ、動かないんだけど」とあなたが同僚に文句を伝えると、同僚はあなたに返します。 「こっちでは動いてるよ」 困りましたね。 あなたの手元には EXE のソースコードも無ければ、Visual Studio もありません
この記事で紹介した手順をライブラリ化して公開しました🎉 こちらの別記事 で使い方など詳しくご紹介していますので、ぜひご参照ください! はじめに 言い切りタイトルすみません 僕を含む一定数の人にとって現時点でのベストプラクティスとなりうる手法という意味で紹介しています 極めてシビアな帳票出力の世界にいる人から見ると使い物にならない内容かもしれないと思います 帳票印刷の世界では SVF というサービスが有名らしいです。が、こういった外部サービスは使わずに自力で実装するというのがこの記事の前提です 動的に明細行の数が増減する連票はこの記事の解説では考慮していませんが、追加で実装するのはそれほど難しくないということは読んでいただければ分かるかなと思います 結論から 僕が考える現時点でのWebアプリでの帳票印刷のベストプラクティスは、 Adobe XD や Figma で帳票のレイアウトをデザイン
結論 C++をgdbでデバッグする時(特にポリモーフィズム使ってる場合)は、下記の設定をするとわかりやすいです。 gdb manual 背景 C++でポリモーフィズムすると、デバッグ時に実際のクラスがぱっと見わからなくて困ることがあります。 例として、以下のようなプログラムを考えます。 Animalクラスを基底クラスとして、そこから継承したクラスをいくつか定義しています。 それらのインスタンスへのポインタをstd::vectorでまとめて、 Chorus関数にてポリモーフィズムを使ったMakeSound呼出をしています。 #include <iostream> #include <memory> #include <vector> class Animal { public: virtual ~Animal() {} virtual void MakeSound() const { std
Linux Kernelのmmcドライバを調べる機会があったので、メモ代わりに概要をまとめてみたいと思います。 (Kernelバージョンは4.1をベースに記述しています) はじめに mmcドライバとは、Linuxのストレージデバイスドライバの一つです。 eMMCやSDカードといったデバイスをLinuxで扱うためのドライバとなっています。 以下のような処理を担っています。 ハードの初期化処理 接続されているデバイスの認識やスピードモードの設定 SDカードか、eMMCか SDホストコントローラの認識 ファイルシステムや上位層からのデータ転送要求の処理 mmcドライバの構造 mmcドライバのソースは、以下に格納されています。 mmcドライバは下図のように構成されています。 mmcブロック・キュードライバ この部分では、上位のブロックI/O処理部から受けた要求を、キュードライバがキューで管理します
先日JavaScriptに慣れていない人のコードをレビューする機会があり、constで宣言されたオブジェクト内部に副作用を与えている記述がありました。 その時に「今の動作に問題ないけど、今風のJSならイミュータブルの方が良いかも」と指摘したものの、JSに疎い人からすれば背景が分からないはずで、理由を自分なりに説明したものの案外言語化が難しかったことがありました。 難しい理由として、イミュータブルであることは実利面と同時に、Facebook発祥のトレンドという側面も多分に含んでおり、JavaScript自体の潮流も踏まえておく必要があるからです。 今回は実利面に加えてトレンド面も交えて、なぜイミュータブル性がJavaScriptで重宝されるのかを見ていきましょう。 フロントエンドの世界では状態を持ち、時間やインタラクションと共に変化するから サーバーサイドの世界から見た場合、HTTPはステー
PHPとPythonとRubyの連想配列のデータ構造がそれぞれ4〜5年ほど前に見直され、ベンチマークテストによっては倍以上速くなったということがありました。具体的には以下のバージョンで実装の大変更がありました。 PHP 7.0.0 HashTable高速化 (2015/11) Python 3.6.0 dictobject高速化 (2016/12) Ruby 2.4.0 st_table高速化 (2016/12) これらのデータ構造はユーザーの利用する連想配列だけでなく言語のコアでも利用されているので、言語全体の性能改善に貢献しています1。 スクリプト言語3つが同時期に同じデータ構造の改善に取り組んだだけでも面白い現象ですが、さらに面白いことに各実装の方針は非常に似ています。独立に改善に取り組んだのに同じ結論に至ったとすれば興味深い偶然と言えるでしょう2。 本稿では3言語の連想配列の従来実
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く