タグ

bokuwebのブックマーク (2,239)

  • 特別講座 ネットワークプログラミング ( FWをつくろう )

    特別講座 ネットワークプログラミング ( FWをつくろう ) ファイアウォール(FW)とは,「ある特定のコンピュータネットワークとその外部との通信を制御し、内部のコンピュータネットワークの安全を維持することを目的としたソフトウェア」である. つまり,特定のパケットを破棄(または通過)させる制御を行うソフトウェアである. 特定のパケットとは, 特定ポートにアクセスするパケット 特定のIPアドレスからのパケット 特定の内容(パターン)をもつパケット などがある. 今回は,以下の図のような構成のネットワークにFWを設置する環境を想定する. 今回のFWはルータの機能はなく,あくまでPCとルータ間のパケットを監視し,不要なデータを遮断する機能を持つ. FWソフトウェアを作成するには, パケットの中身を見る パケットの転送の可否を行う 2つのプログラミングが必要になる. ここでは,上記の2つのプログラ

    特別講座 ネットワークプログラミング ( FWをつくろう )
  • Zigソフトウェア財団とZenプログラミング言語に関する声明 ⚡ Zig Programming Language

    Original English version available below. We are thankful to 株式会社HYPERIA and all the members of the Zig community that helped us with the Japanese translation. Zigソフトウェア財団とZenプログラミング言語に関する声明Zigソフトウェア財団は、Zigの開発者アンドリュー・ケリーによって創設された501(c)(3)非営利組織です。財団はZigプログラミング言語開発のサポートと優れたグローバルコミュニティの育成を目的としています。 対してZenはコネクトフリー社によって保守されているZigのクローズドソースフォークです。コネクトフリー社は最近Zenコンパイラのためのライセンスモデルを発表し、ソフトウェア開発者は自分で作成したコードの

    bokuweb
    bokuweb 2020/09/15
  • maguro.dev - Rust のトレイトで、associated type (関連型) か generic type (ジェネリクス) のどちらを使うか迷ったときの指針

    Rust にトレイトという機能があります。 自分でトレイトを作るときに、そのトレイトに関連するジェネリックな型が欲しくなることがしばしばあります。そんなときの選択肢として associated type (関連型) generic type (ジェネリクス、型パラメータ) の2つがあると思います(2番に関しては、正しい呼称かどうか自信がないです。trait Foo<T> {} と定義したときの T のことを指しています)。そして、どちらを使っても自分のやりたいことを実現できるな……と気づくことがあります。そのようなときに、どちらを使うのが良いのか分からなくなることがよくあるので、忘れないようにエントリとしてまとめておきます。 TL;DR associated type は トレイトと実装対象の型 (Self) との関係が 1 : 1 になる。 generic type だと トレイト :

    maguro.dev - Rust のトレイトで、associated type (関連型) か generic type (ジェネリクス) のどちらを使うか迷ったときの指針
    bokuweb
    bokuweb 2020/08/27
  • ISUCONに向けてRustでのリハーサルを実施した。採用したRustのライブラリなど - でこてっくろぐ ねお

    ISUCONでRustで参加する同胞達や、Rustの参考実装を書く人の参考に少しでもなればとこのエントリを書いてます。(いや実際全然わからないのでもっといいの教えて!ってのもあります。はい。) 今年のISUCONはRustで戦います。 なぜなら、私はRustが好きだからです。 ISUCON、Trust Rustというチーム名で参加登録しました。Rustを信じろ!!!!!!!!!!!!— でこくん (@dekokun) July 10, 2020 しかし、私含めてチームメンバー全員がRustでWebアプリを書いたことがなかったため、毎週ミーティングを行いRustの勉強としてやることを宣言して1週間後に進捗報告をしまたやることを宣伝する、ということを繰り返しています。 ただそれだけではチーム全員で動くISUCONの訓練としては弱いので、ISUCONを模したリハーサルをしてみました。 お題 お題

    ISUCONに向けてRustでのリハーサルを実施した。採用したRustのライブラリなど - でこてっくろぐ ねお
    bokuweb
    bokuweb 2020/08/23
  • フリーランスプログラマ雑感

    フリーランスプログラマになって、かれこれ10年近く経ってしまった。 昨日をもって退職しました。今日から(しばらくは)フリーランスとしてがんばります。 — 武藤スナイパーカスタム🔫 (@__tai2__) November 30, 2010 会社を辞めて、とくに深い考えもなくなんとなくフリーランスになった。しばらくすればどこかの会社に就職するのかなあ、きっとそうなんだろうなあ、とかぼんやりと思ってたことを考えると、そのまま10年近くも続けてしまったのは感慨深い。 ぼくにとって、ほかの業種、ほかの立場の人の職業生活がどういうもんなのかわからないのと同程度に、ほかの人にとってもフリーランスプログラマがどういうものか、きっとイメージがあまりわかないんだろう。そこで、フリーランスプログラマ生活を振り返って、それがどのようなものだったのかを思いつくままに語ってみたい。フリーランスプログラマという語は

    フリーランスプログラマ雑感
    bokuweb
    bokuweb 2020/08/04
  • マシな作り方の作り方を作る | 麦 Baku

    ここ最近、Glispというアプリをつくっています。Lisp ベースのベクタードローイングツールで、Creative Coding と伝統的なチマチマやるデザインとの合わせ技っぽい使い勝手を目指してます。 ひとまずCuusheさんのビデオに手入れ続けて止まらないのが気が済んでからなのですが(ごめんなさい…)、終わったら格的にこれに注力してみたいなと思っとります。だから助成金やファウンディング含めてみなさんに色々ご相談したいです。 #glisp – Twitter Search / Twitter これが実現したらようやく「こいつなんか意味分からん事言って Adobe に因縁つけてるな」みたいなんがもう少し多くの人に理解してもらえる気がしています。少なくともベクターグラフィックに関しては、ソフトの使い勝手に気が散ってツール開発をしないとしんどくなる体質が改善して実制作に集中出来るようになれま

    マシな作り方の作り方を作る | 麦 Baku
    bokuweb
    bokuweb 2020/06/29
    すごい
  • keras-yolo3 で独自データセットに対して学習させる方法 - ほぼPython

    宣伝 人工知能が顔面成分を分析してくれるサイトを作りました。ぜひ使ってみてください! ちなみにTensorflow.jsで作成しているのですべての処理がユーザーのブラウザで行われます。つまり、画像をアップしてもそれがサーバーに送られることはなく、セキュリティ的にも安心です。 ai-animal.web.app 何番煎じなんだって感じもしますが、まとめておきます。 「keras-yolo3で学習済みモデルを使って一般的な物体検出はできた」という方が対象です。 ちなみにkeras-yolo3とは物体検出を行う深層学習モデルYOLOv3をkerasで実装した有名なgitHubリポジトリのことです。 github.com さて、独自データセットで学習させるためには大きく分けて3つのことをする必要があります。(執筆時点) ・データのアノテーション ・train.pyによる学習 ・独自データによる学習

    keras-yolo3 で独自データセットに対して学習させる方法 - ほぼPython
  • Edge/ARM64の出来をみると、Windows on ARMのx86エミュレーターは結構速い

    Life with Web Browser Engine (Gecko, WebKit and etc), Mobile and etc. WebCrypto APIのベンチマークというのは結構難しくて、そもそも現在のWebCrypto APIはPromiseベースの実装のため、下手をするとWebブラウザに実装されたマイクロタスクをテストするだけのものになることもある (≒なのでベンチマークを取るとったとしても正確なデータかというと、、、な時がある。WebCryptoを使ったベンチマークを説明する時にPromiseの話を触れない人は正しいマイクロベンチマークを書くことが出来ない人なのかもしれない)。Promiseで結果を返すようなAPIはベンチマークが正しい結果を出すとは限らないのだが、それを抜きにしても面白いデータが取れたのでここに書いておく。 jsperf.comに簡単なWeb Cry

    Edge/ARM64の出来をみると、Windows on ARMのx86エミュレーターは結構速い
    bokuweb
    bokuweb 2020/06/08
  • Gormが本番テーブルの数億件のデータを消そうとした話 - keroxpのScrapbox

    MySQLの場合、--safe-updatesオプションを利用することでこういった不慮のUPDATE/DELETEを防げるようです

    Gormが本番テーブルの数億件のデータを消そうとした話 - keroxpのScrapbox
    bokuweb
    bokuweb 2020/05/07
  • Fuzzing Firefox with WebIDL – Mozilla Hacks - the Web developer blog

    bokuweb
    bokuweb 2020/05/03
  • Type-level Programming in Rust | Will Crichton

    I show how two domain-specific type systems, information flow control and two-party communication protocols, can be implemented in Rust using type-level programming. I explain how interesting properties of these domains can be verified at compile-time. Finally, I construct a general correspondence between type operators, logic programs, and their encoding in Rust. Typestate is the concept of encod

    bokuweb
    bokuweb 2020/05/03
  • もう一つの海を目指して ─ Webエンジニアからクリエイティブ系にジョブチェンジして見えてきた世界 - Findy Engineer Lab

    はじめまして、天城孝義(@amagitakayosi)です。 Webエンジニアとしてブログサービスなどを運営している会社で3年働いた後、クリエイティブ系のスタジオに転職し、現在は主にフリーランスとしてUnityを使ってゲームやインスタレーションを制作しています。 クリエイティブ系の仕事には学生時代の頃から興味がありながら、Webエンジニアの働き方に影響されてフロントエンド開発の道を選択した僕ですが、やがてキャリアについて考え直すなかで、クリエイティブ系への転職という選択肢に直面しました。 目の前に選択肢が現れたとき、迷わずリスクを取れる人は少ないでしょう。僕の場合、周りの人々に励まされつつ面白い方を選び続けたところ、気が付いたら今の状況になっていました。 この記事では、Webエンジニアからクリエイティブ系へ転職することになった契機や、キャリアチェンジに際しての葛藤など、僕の考えてきたことを

    もう一つの海を目指して ─ Webエンジニアからクリエイティブ系にジョブチェンジして見えてきた世界 - Findy Engineer Lab
    bokuweb
    bokuweb 2020/04/28
    かっこいい
  • Chiselを使ったRISC-Vの勉強(1) - lynxeyedの電音鍵盤

    前回紹介したようにプロトタイプ用のFPGAができて, その後USB Type-C化などもいたしました。 これで電力問題が解決したため、FPGA基板からRaspiに給電かつ給電時の衝突防止までできるようFETを追加する改造もしました。 さて、とても使いやすいRISCVのSCR1を紹介する予定でしたが、こちらはまた後での紹介にしようかなと思います。 なおgithubにSCR1のCyclone10LP向けの修正は置いてありますので参照ください。 GitHub - panda5mt/fpga-sdk-prj: FPGA-based SDK projects for SCRx cores Chiselやるか あまり気乗りはしてなかったのですが、昨今のコロナの影響で、思うように部品調達ができず仕事が従来の半分くらいの稼働率なのでChiselを勉強しています。動機としては UC BerkeleyでもRI

    Chiselを使ったRISC-Vの勉強(1) - lynxeyedの電音鍵盤
    bokuweb
    bokuweb 2020/04/20
  • Rustから目覚めるぼくらのゲームボーイ! - undefined

    Conway氏についてですが、公式にアナウンスがでたようです。ご冥福をお祈り申し上げます。 www.math.princeton.edu 2003年に発売された「Linuxから目覚めるぼくらのゲームボーイ!」というC言語でゲームボーイアドバンスで動作する自作ゲームを作成していく書籍があります。 ゲームボーイアドバンスはARM7TDMIというコアを使用しており、Rustで自作ゲームを作ることも可能となっています。 この記事では「Linuxから目覚めるぼくらのゲームボーイ!」のステップをRustで実施するための準備としてライフゲームが動くまでを書いてみます。 動機は今作っているWasmインタープリタをGBAで動かすことができないかの調査です。(たとえLチカレベルでも)AssemblyScriptとかでGBAのゲームかけたら面白くないですか。 成果物 github.com I succeeded

    Rustから目覚めるぼくらのゲームボーイ! - undefined
    bokuweb
    bokuweb 2020/04/14
    かいた
  • Cacooのエクスポート機能が4倍速くなりました!SVGの生成手法の刷新によるパフォーマンスの向上 | Cacooブログ

    Cacoo開発チームの木村(@cohhei)です。Cacooでは図形の描画にScalable Vector Graphics(以下、SVG)を採用しています。記事では、CacooのサーバーサイドにおけるSVGの生成手法の刷新と、それによって得られた図のエクスポート機能のパフォーマンス向上についてご説明します。 要約 サーバーサイドでのSVGの生成方法を変更しました。 結果として、SVGエクスポートが約4倍速くなりました。 PDFエクスポートもその恩恵を受けて早くなりました。 図の内容に依存しますが、1シートあたり1.5〜2倍ほど高速化しました。 技術的にはHeadless Chromeからjsdomを使ったSVG生成に切り替えました。 クライアントサイドのTypeScriptのコードをNode.jsで実行させています。 SVG?エクスポート?生成?とは? SVGとはXMLをベースとした2

    Cacooのエクスポート機能が4倍速くなりました!SVGの生成手法の刷新によるパフォーマンスの向上 | Cacooブログ
    bokuweb
    bokuweb 2020/04/06
    うおお “jsdomで実装されていないinterfaceはひとつひとつclassを作って中身を実装”
  • Scalaのtrait、Rustのtrait、そしてScalaのimplicit - Don't Repeat Yourself

    Scala の trait と Rust の trait は微妙に使い方が異なる、とよく質問を受けます。たしかに、使い心地は微妙に異なるかもしれません。Scala はオブジェクト指向を中心に設計された言語ですが、Rust はそれを中心に設計されているとは言えません*1。こういった言語設計の差が、trait の使い心地の違いを生み出していると私は思っています。 両者の trait には、共通した特徴もあります。共通した処理をまとめあげるという意味では同じ目的をもっているといえますし、また、「犬は動物である」「は動物である」の共通性を示すことで、共通したものをひとまとめに処理しきることもまた可能です。 Scala には implicit という強力な機能が存在します。これは柔軟でスケーラブルなソフトウェアデザインを可能にする Scala の特徴のひとつです。非常にすばらしい機能です。この機能

    Scalaのtrait、Rustのtrait、そしてScalaのimplicit - Don't Repeat Yourself
    bokuweb
    bokuweb 2020/03/24
  • Rustで書いたWebAssemblyインタプリタ上でGoで書いたゲームボーイエミュレータを動かした - undefined

    概要 最近はWebAssemblyに興味があり、勉強していたんだけど仕様を読み始めても頭に入らないのでインタプリタを作ってみることにした。よくわからないものは作ってみるのが一番よい。 github.com まだ残された課題は多いのだけれども、一つ目標にしていた「Goで書いたゲームボーイエミュレータを動かす」を達成できたのでここに書いておく。 うおーついにRustで書いた自作wasm interpreter上でgoで書いた自作gameboy emulatorが動いたー!けど1FPSくらいしかでない... pic.twitter.com/I5B2XL5E0W— bokuweb (@bokuweb17) 2020年2月24日 こツイートに貼られているのは残念ながら、静止画ではなく、動画でありパフォーマンスが悲しいことになっていることを示している。あまりに遅くてプレイ画面まで到達できない。今後これ

    Rustで書いたWebAssemblyインタプリタ上でGoで書いたゲームボーイエミュレータを動かした - undefined
    bokuweb
    bokuweb 2020/03/12
    かきました
  • 「プライベートでは一切勉強したくない」エンジニアにおすすめの職種

    おいでよ組み込み系ワールドへ。プライベートで一切勉強しなくてもそこそこの収入とよその会社からスカウト殺到のエンジニアライフがあなたを待っている 組み込み系のいいところIoT(笑)なんてものの流行もあり猛烈な人不足。未経験でもホイホイ入れるし、SES拒否しても求人はよりどりみどり最前線でもなければ家でコード書いてる人なんて職場の1割いるかいないかぐらいの緩い競争環境会社でしか使えない機材で仕事をするので仕事中に必要なスキルが伸びる古い体質の企業が多いのであんまりスキルなくても給料は年次で増えてく(ごく一部除いて年収600-650万ぐらいから頭打ちになってくるけど)ごりごり忙しいweb系と違って既婚率高い自分のコードが街中で動いてるのを見られるかもしれない組み込み系のよくないところ研究系の最前線を除いて東京23区内で働くのはかなり難しい。全般的にオフィスが田舎最新の開発ツールに触れてたい人が発

    「プライベートでは一切勉強したくない」エンジニアにおすすめの職種
    bokuweb
    bokuweb 2020/03/11
  • Linux が動作する RISC-V CPU を自作した (2019 年度 CPU 実験 余興)

    私が所属する東京大学理学部情報科学科では三年の冬学期に CPU 実験という実験授業が開講されています。稿ではその簡単な説明をした後、その実験の一環として約一ヶ月ほど取り組んだ「Linux が動作する RISC-V CPU を自作するプロジェクト」で何をしたか、またどのような成果を得たかについて紹介したいと思います。 稿を読むその前に 弊学科では「XX 年度に教養学部から理学部情報科学科に進学してきた学生」を「XXer」と呼ぶ文化があります。稿ではこの表現を断りなく用います1。また私は普段 Web が好きでもっぱら Web セキュリティに関することを追いかけているだけのしがない学部 3 年生なので (私についての情報は ここ に大体まとまっています)、こういう低いレイヤのことは未だによく分かっていません。あくまで素人の記事だとご理解いただけると嬉しいです。誤りの指摘や質問があれば、ここ

    Linux が動作する RISC-V CPU を自作した (2019 年度 CPU 実験 余興)
    bokuweb
    bokuweb 2020/03/01
    しゅごい...
  • xv6 initプロセス ことはじめ - とあさのうみ

    あるプロセスには親プロセスという生みの親がいます。その親にも親がいます。 そして、プロセスの系譜をさかのぼり続けると一つのプロセスに行き着きます。 それはinitプロセス。Unix及びUnix系のOSではこの名前がついています。*1 またタイトルにあるxv6とは、2006年MITで開発された教育用OSです*2。 ANSI Cで書かれておりソースコードリーディングに適しています。 今回はあらゆるプロセスの祖先といえるinitプロセスの生成と実行はじめまでを、xv6のソースコードを読み、観察してみましょう。(同じ内容のスライドがあります。こちらはブログと比べスタックの動的な操作がわかりやすいです。) あらすじ xv6のプロセス initプロセスの生成 スケジューラがinitプロセスを選択 スケジューラからinitへのコンテキストスイッチ initの実行 注意 initプロセスに話をしぼるため、

    xv6 initプロセス ことはじめ - とあさのうみ
    bokuweb
    bokuweb 2020/02/29