Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

はじめに この記事では私が開発しているKaruta(カルタ)というプログラミング言語と処理系の簡単な紹介をします。 Karutaはプログラミング言語としてはGoやJavaScriptのような雰囲気になるように作っていますが、主にFPGAで動く回路を設計することを目的としています。 Karutaは https://github.com/nlsynth/karuta からソースコードを入手してビルドし、karutaコマンドを実行できる状態にすれば試せるのですが、この記事を書いてる時点では品質が微妙なので間違いなく色々なバグや珍動作に遭遇するのでご了承ください。 (Ubuntuをご利用の方は $ snap install karuta でインストールできます) (Karutaのようなプログラミング言語からの回路を生成する技術は「高位合成」と呼ばれており、興味のある方はこちらからご覧になってくださ
概要 いつも警告が出て面倒に思っている自分がいましたが、ついにそれが解決できるときが。ブラウザからオフにすることもできるがセキュリティレベルを下げるのはよろしくないので、今までその選択肢を使っていませんでしたが、今年の6月にmkcertというリポジトリができ、この短期間でスターが1万超え!Goで作られていますね。 mkcertで証明書を発行するとなんと警告が出なくなりました! さっそく、インストールを手順を説明していきます。 OS: 10.13.5 ブラウザ: chrome 69 インストール手順 mkcertのインストール homebrewからインストール可能です。READMEにも書いてありますが、Firefoxを使用している人は、別途nssのインストールが必要みたいです。今回はChromeで行ったのでFirefox環境では検証していません。
2019/12/29 追記 いまでもこの記事が時々参照されています。Googleなどからこの記事へとやってきた方は、パスワードか何か重要な情報をどう保存するか?ということを考えておられるかもしれません。もしそうであれば、ぜひこの記事のコメントも記事を読んだあとに参照していただきたいと思います。徳丸さんをはじめとして僕よりもはるかに知見のある方の考えなどもあります。ハッシュ化されたパスワードは、もしかしたら今これを読もうとしておられる方が作っているアプリケーションよりも長きにわたって利用されるかもしれません。少々の時間をいただきますが、そういう理由でぜひコメントのディスカッションも参考にしたうえで今できる最良のセキュリティーを実装していってください はじめに この記事ではパスワードを保存する際によく用いられるソルトとハッシュ関数を使うやり方について、なぜそれが微妙であるかを解説した後に、それ
結果はどうなったでしょうか。 自分が今使っているGoogle Chromeだとこうなりました。 結果は{a: 10}というオブジェクトです。まあ、これは当然ですね。3 + 5と入力すれば実行されて8が返ってくるのですから、{a: 10}というオブジェクトリテラルを書けば{a: 10}というオブジェクトが作られるのは当然です。 ……。 ここで、一部の人は「おいふざけんなよ」と思っているかもしれません。というのも、この例は環境によっては違う結果になるのです。具体的には、Chrome以外2のブラウザのREPL(FirefoxやEdgeなど)が該当します。あと、ts-nodeのREPLも該当するらしいです。これらの環境では、結果は{a: 10}ではなく次のようになります。 オブジェクトを作ったはずなのに結果が10とか意味不明ですね。そもそも、こんな簡単なプログラムで結果が全然違うとか、JavaSc
前篇、中編、後編の三部作に分けます。この記事は前編です、 ビット深度自体は知ってて具体的な処理を知りたい方は、この記事を読み飛ばして中編から読んでください。 RGB ビット深度のうんちく (前編) 〜 前提知識 https://qiita.com/yoya/items/41b00127b0b1fea8c4f1 RGB ビット深度のうんちく (中編) 〜 実数型と整数型の変換 https://qiita.com/yoya/items/6ee02736f1db8bdd520e RGB ビット深度のうんちく (後編) 〜 整数型同士の変換 https://qiita.com/yoya/items/3509bbb54c0732865882 サンプルデモを作りました。任意の画像のビット深度を変更できます。お試し下さい。 http://app.awm.jp/image.js/bitdepth.html
関数 hoge は、p が c1 のインスタンスであるときには c1::func を呼び、p が c2 のインスタンスであるときには c2::func を呼ぶ必要があります。これを実現するための一つの方法が VTable です。実際にどうやって実装されているかは後述するとして、イメージを簡単に説明すると以下のような仕組みです。 クラス毎に、そのクラスの仮想関数へのポインターを集めたテーブルを作り、これを VTable と呼ぶことにします。上記例の c1, c2 であれば、以下のような配列 vtable_c1, vtable_c2 を予め作っておくイメージです。このとき、関数毎にインデックスを決めて、そのインデックスはクラス間でも共通になるようにします。ここでは例えば、func 関数は VTable の先頭に配置することにします。 クラスのインスタンスを作るとき、その VTable へのポイ
clangdとは clangのLanguage Server Protocol 実装。 LSPはMicrosoftが提唱しているIDE支援のための統一プロトコル。 Language "Server"とあるとおり、言語支援のためのサーバーが常駐する。この手の機構を個別に備えた言語として、TypeScriptのtsserverとか、C#のOmniSharpなどが挙げられるけど、それの汎用版。 clangdはLLVMのフロントであるclangをベースとしたサーバーで、LLVMプロジェクトが公式に開発している。 コンパイラなので、コンパイルエラーの検出はもちろん、コード補完やフォーマット、定義ジャンプと参照元ジャンプ等には対応している。 なので、clang-formatやRTagsといったclang系ツールも、LSPクライアントを導入してしまえば、これらの個別設定をしなくてよい。 clangdのイ
はじめに 技術書典4にて「DNSをはじめよう」が販売され、400部あったはずの紙の本の在庫がなくなり、その後まもなくしてダウンロード用のカードも溶けるようになくなるという現象が発生しました。 自分も午後に会場入りして買いに行ったら「ダウンロード版も売り切れた」と言われショックを受けるものの、ダウンロード版については追加生産をしているとの事なので、ほどなくして再度ブースを伺ったら無事に買う事ができました。 尚、今現在もBOOTHにてPDF版が販売されています。 内容については「さぁDNS!」…の前にドメイン名の取得から丁寧に書いており、ドメイン名の取得からDNS設定の流れを体感するにはちょうどいい本ではないかなと。 なお、ドメインを利用する為にはレジストラやどこかのリセラー経由で登録料を払いドメイン名を登録してもらう必要があり登録手順も様々であるなか、お名前.comからの取得を例にして説明し
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 可及的速やかにReactが絶滅しますように。 以下はFront-End Developer Handbook 2018の第三部、Front-end Developer Toolsからリンクされているツールと、その簡単な紹介です。 ドキュメントツール 開発者向けドキュメント、APIリファレンス Dash 200以上のAPIリファレンス、100以上のチートシートを一括ダウンロードできる。有料、Mac用。 DevDocs 200以上のライブラリをオンラインで検索できる。無料。 Velocity 中身はDashと同じ。有料、Windows用。
データ分析における関数の使い方については様々な記事が上がっています。関数を知らなかったり使い方が分からないときは調べればだいたい答えが見つかります。 一方で、実際に分析を始めようとすると、たとえ関数の使い方がわかっていても、データをどのような切り口から何を分析・可視化していけば良いのか困ってしまうことがよくあります。 この記事では、あんちべさんが書いたデータ解析の実務プロセス入門という本をベースに、どのようなデータから何を見たいときにどのような可視化手法を使えばよいのかを、具体例を交えながら整理していきます。 探索的データ解析とは データ解析のアプローチは、大きく分けて仮説をデータで検証する「仮説検証型」とデータから仮説を生み出す「探索型」に分けられます。 実際にデータ解析を行うときは、仮説検証型と探索型を行き来しつつ知見を見出していきます。 データ解析には検証すべき仮説を設定することが必
技術的な標準・規格 (TODO: IATA, Microsoft) tz database タイムゾーンに関する、ソフトウェア・エンジニアにとって最も標準的なデータが tz database (Wikipedia) でしょう。 "Asia/Tokyo" や "Europe/London" のようなタイムゾーンの名前は、この tz database のものです。 tz database のタイムゾーンは "/" の前の最初の部分に大陸名・海洋名を用い、続いて、典型的にはそのタイムゾーン内の著名な都市名・島名をその代表として名付けられています。21 国名は基本的に使われません。22 "America/Indiana/Indianapolis" のように3要素で構成されるタイムゾーンも少数ながら存在します。 tz database はボランティアによってメンテナンスされています。タイムゾーンの情
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 前書き - 人工知能と脳科学 - 最近のAI (Artificial Intelligence) の進歩はすさまじいですね。特に、深層学習 (Deep Learning) はTensorFlow, Chainerなどのライブラリの普及もあり、一般的に広く使用され、知られる概念になりました。 ところで、Deep Learningの歴史を簡単に紐解いてみると、はじめは脳の計算原理を実装しようとする試み、つまりニューラルネットワーク (Neural Network) の研究からスタートしました。人の脳は100億ともいわれる数の神経細胞からでき
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに Linuxの安定カーネルのとりまとめ役、グレッグ・クラーハートマンによるメルトダウンとスペクター問題に関する1/6時点での現況の説明の訳文です。 太字は訳者が主観で独自に付加したものです。 2018/1/19: 対応状況がGreg氏によりアップデートされましたので、追記しました。 ライセンス 原文は当人のブログでby-nc-sa3.0で公開されています。 この文章のライセンスも原文に準じます。 謝辞 何よりもまず多忙な中情報をシェアしてくれた原著者のGreg氏に。 表記間違いについて指摘ありがとうございます。以下修正しました。
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? まず、Apache Hadoop 3.0.0リリースおめでとうございます! 公式の記事: https://blogs.apache.org/foundation/entry/the-apache-software-foundation-announces26 ここ最近の大きめのHDFSの機能について、いくつか語ってみたいと思います 3.0.0でリリースされた機能 Erasure Coding Router based federation (2.9.0にもbackportされた) 3.1.0に入ることが確定した機能 (trunkにマージ
武蔵野Advent Calendar 2017の20日目の記事です。品川から参加しています。 今日はMySQL InnoDBの領域管理について勉強し、いくつか動作例を見ながらInnoDBに対する理解を深めていきたいと思います。アプリケーション開発者やデータベース管理者の方にとって明日からすぐに使えるノウハウとまではいきませんが、いつか何かの役に立てば幸いです。 まとめ InnoDBにはテーブルスペース、セグメント、エクステント、ページというデータの管理単位があるよ エクステント単位で空き領域が管理されているよ。だけどそれを知ったところであまり役には立たないよ 昇順INSERTが得意でランダムINSERTが苦手なのはよく知られているけれど、実は降順INSERTが得意だよ テーブルスペース、セグメント、エクステント、ページ InnoDBのデータが格納されるファイルのことをテーブルスペースと呼び
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? TL;DR; Eventual Consistencyとか言いながらどうせもっとまともな一貫性実装してることはよくあるんだからみんな適切な名前を使おうぜ。 なぜこの記事を書くのか NoSQLの文脈においてスケーラビリティとのトレードオフでEventual Consistencyという用語は結構な頻度で出てくる。 ACIDに対抗してBASE(Basicaly Avalilable, Soft state, Eventual consistency)なんて言葉が出てきたり、CAP定理の中のAとPだと言ってみたり、分散システムのスケーラビリテ
テストがなかった無法地帯のプロジェクトに自動テストを導入して、開発速度を1.7倍にした話をします。 自動テストがなぜないのか 自動テストのないプロジェクトには、そうなる理由が必ず存在します。よくみる理由は、「時間がないから1」「テストの書き方がわからないから」「無理やりテストを書いたつらい経験があったから2」といったものです。今回のプロジェクトの場合は、以下の2点でした: 自動テストの書き方がわからないから レビューがテスト代わりだったから まず、チーム編成が変わって私ともう一人がチームに加わるまで、実装者の中に自動テストの経験者はいませんでした。このような状況では、自動テストは困難になります。なぜなら、何をどうやってどこまでテストするかを決めるには、多少の慣れが必要だからです。この慣れがないと、何をしたらいいかわからないという状態に陥りがちで、結果として自動テストが後回しにされてしまいま
EC2 の c5 インスタンスタイプが発表されました。 参考: https://dev.classmethod.jp/cloud/aws/ec2-c5-instance/ 個人的に今までのGCEやEC2の不満は PMU が使えないことです。例えば perf コマンドでキャッシュミスや分岐ミスをプロファイリングできません。 C5インスタンスではハイパーバイザーがKVMに変更されたということで、この点に変化が無いか調べてみました。結果、 9xlarge (1ソケット専有) と 18xlarge (ホスト=2ソケット専有) では Hardware PMU Event を見ることができました。(テナンシーは通常の「共有」のまま、AMI は Amazon Linux 2017.9) 結果: https://gist.github.com/methane/3c523b7bc8e99508a90ca06
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く