タグ

ブックマーク / qiita.com (349)

  • Visual Studio CodeやAtomのシンタックスハイライト拡張機能を作る - Qiita

    はじめに Visual Studio CodeやAtomに言語のシンタックスハイライトを加えるにはtextmateというエディターが採用している記法で構文を定義します。 なぜtextmateの方法が採用されているのかは知らないのですが,どういうわけか広く利用されているようです。 構文を定義する textmate的構文定義は .tmLanguage .json .plist など様々な方法で記述できるようです。 個人的にはJSON版が扱いやすそうです。 英語ですが公式のドキュメントがあるので,重要そうな部分だけを説明します。 概要 構文は再帰的に定義できます。 あるブロックを認識してそのブロックは3つの構文に分解され最初の構文は別の構文によって処理される...のように記述できます。 定数を数値定数と文字列定数に分けるなど,できるだけ細かい単位で構文を作っておくと include機能を使って使

    Visual Studio CodeやAtomのシンタックスハイライト拡張機能を作る - Qiita
  • 【Rust】Raspberry Pi 3でGPIOのレジスタを叩いてLチカ - Qiita

    RustでGPIOのレジスタを直接叩いてLEDをチカチカさせることに成功したので記載します。 RustもRaspberry Piも初心者なので不適切な箇所があればご指摘頂けると幸いです。 動作環境 Raspberry Pi 3 Model B+ raspbian 8.0 Rust 1.21.0 libc v0.2.31 回路構成 以下の図のようにGPIO27にLEDと抵抗を接続します。 +-----------------------------+ | | | | +--------+ | GPIO27+---+ 10ohms +--------------+|>|+------------+ | | +--------+ LED | | Raspberry pi 3 | R1 | | | | | | | | GND+------------------------------------

    【Rust】Raspberry Pi 3でGPIOのレジスタを叩いてLチカ - Qiita
  • fish shellをかわいくするconfig.fishの設定 - Qiita

    Help us understand the problem. What is going on with this article?

    fish shellをかわいくするconfig.fishの設定 - Qiita
    yuzu441
    yuzu441 2018/01/31
  • 年末なのでRaspberry Piも手入れをしましょう 〜 UpdateとBackup 〜 - Qiita

    _・)今年ももうおしまいですね〜 Raspberry Pi Advent Calendar 2016の18日目分の投稿です。 何を書こうかなと色々迷ったんですが、無難なところに落ち着きました。 年末ですよ 2016年も残すところ半月弱となって参りました。 私自身振り返ると、この一年でまた結構RasPi体の所有数が増えて 地デジ録画サーバだの、RasPiタンク工作だのが結構増えちゃったりしました。 さて、そんなRaspberry Pi工作群なのですが、やはり定期的にアップデートやバックアップなどのメンテナンスはしてあげましょう。愛です、愛。 年末の大掃除のついでに、自宅サーバとなっているRaspberry Piのお掃除もしつつ(ホコリとりましょう)、中身もケアしてみましょう。 今回は、Raspbianを利用している方向けにアップデートやバックアップに便利なコマンドなどを紹介します。他のディ

    年末なのでRaspberry Piも手入れをしましょう 〜 UpdateとBackup 〜 - Qiita
  • Raspberry Pi をディスプレイ/キーボードなしで初期設定する - Qiita

    タイトルは少し誤解を招く表現かもしれませんので、まずはかんたんに補足します。ここでのディスプレイとキーボードはRaspberry Pi 用のHDMIディスプレイとUSBキーボードのことを指しています。 背景と概要 Raspberry Pi(以下RPi) をセットアップするとき、SDカードにイメージを焼き込んだあと、HDMIディスプレイとUSBキーボードを RPi に直接接続して色々と設定します。 SSHの接続設定とIPを固定しさえすれば、ネットワーク経由でSSH接続できるので、そのためだけにディスプレイとキーボードはもったいない!!どうにかできないか!! この記事では専用のディスプレイとキーボードを使わずに、 SSHの設定 IPアドレスを知らなくても接続できる方法 を紹介します。 環境 Windows 7 Raspberry Pi 3 Raspbian Jessie Lite (Versi

    Raspberry Pi をディスプレイ/キーボードなしで初期設定する - Qiita
    yuzu441
    yuzu441 2018/01/25
  • Windows10 の "Bash on Ubuntu on Windows" で困ったこと - Qiita

    インストール記事はすでに沢山あるので、使用中に困ったことと、インストール直後のカスタマイズに焦点を絞って記事にする。 インストール手順 Qiita上の下記記事が丁寧でわかりやすかった。 http://qiita.com/Aruneko/items/c79810b0b015bebf30bb 要は次の3ステップを実行すれば良い。 1. 開発者モードを有効化する 2. Windows Subsystem for Linux(Beta) を有効化して再起動する 3. コマンドプロンプトを開いて bash と打ち込み、ユーザ名とパスワードを入力する 日語文字化け 上記の bash の打ち込みの後に、ダウンロードとファイル展開が始まるのだが、その時点で画面の日語が激しく文字化けした。途方にくれて管理者コマンドプロンプトから lxrun /uninstall /full で一旦削除し、lxrun /

    Windows10 の "Bash on Ubuntu on Windows" で困ったこと - Qiita
    yuzu441
    yuzu441 2018/01/25
    わかるわー。俺は入れてみたけど直ぐに嫌になった(それでも仕方なく使ってるけど)
  • Railsのファットモデル問題に対処する前に読んでほしい記事 - Qiita

    背景 Skinny Controller, Fat Model Railsではスキニーコントローラー、ファットモデル(Skinny Controller, Fat Model)という方針のもと、 コントローラーのコード量を少なくして、モデルを分厚くするという書き方が推奨されていました。 10 Ruby on Rails Best Practices — SitePoint Rails Best Practices 1: Fat Model – Skinny Controller このような背景から、ファットモデルという設計が目指すべき設計という認識となりました。 「ファットモデル問題」の登場 ところが、原因はわかりませんが、次第にファットモデルが問題があるものとしてみられるようになりました。 界隈では「ファットモデル問題」として取り上げて解決するという方法が紹介されるようになります。 20

    Railsのファットモデル問題に対処する前に読んでほしい記事 - Qiita
  • GitHubで使われている実用英語コメント集

    この記事はリクルートライフスタイル Advent Calendar 2015 - Qiita の17日目です。 こんにちは。現在、ホットペッパーグルメのエンジニアをやっている敷地@shikicheeです。 git英語のコミットメッセージどう書けばいいの? と思ったことはありませんか? 英語で書きたいなーって思っても、いざ書くとなると躊躇しますよね。 ネイティブはどう書いてるのでしょうか。 そこで、github上で実際に使われているコメントを解析し、 よく使われている例をまとめてみました。 解析したデータ github上で1万スター以上を獲得している169リポジトリのコミットメッセージを対象としました。 bootstrap、jquery、react、d3、docker、node、tensorflowなどの有名なプロジェクトばかりなので、良いコメントが期待できます。 解析するコミットメッセー

    GitHubで使われている実用英語コメント集
  • [dein.vim] hook の便利な使い方 - Qiita

    以下、それぞれについて例を挙げて見ていきます。 hook_add dein.vim によってプラグインが認識されたときに発火される hook です。non lazy な(Vim の起動と同時に読み込まれる)プラグインの場合、設定情報を置くにはこれを使うしかありません。 便利な用途としては、プラグインを起動するための mapping を書いたり、プラグインのための変数を設定したりします。 [[plugins]] repo = 'tpope/vim-capslock' hook_add = 'imap <C-L> <Plug>CapsLockToggle' [[plugins]] repo = 'elzr/vim-json' hook_add = 'let g:vim_json_syntax_conceal = 0'

    [dein.vim] hook の便利な使い方 - Qiita
  • 組み込みLinuxでGolangのススメ - Qiita

    一年近く、組み込みLinuxでのユーザープロセスをgolangで書くことを試していたのですが、これはいける! という感触を持ちました。 仲間を増やしたいと思うので、ここにその情報を紹介します。 #何をしたか 既存の製品をベースにして、新機能の実装をGolangで書いてみました。 既存の部分はCで書いてあります。Golangで書いた新機能部分は別プロセスになっています。 既存部分とのやりとりは場面によって以下を使い分けました。 cgoによる関数呼び出し UNIXドメインソケットの通信 シグナル Golangで書いた部分には以下の要素を含みます。 UARTやi2cで接続されたセンサーからデータを受け取る インターネット上のWebサービスAPIを使用する 2Dグラフィックスの描画 (cairoを使用) 最大性能を目指すよりも、十分な性能を手早く形にすることを重視しました。 #Golangでよか

    組み込みLinuxでGolangのススメ - Qiita
  • Golangの実行ファイルを複数まとめてトータルのファイルサイズを減らす工夫(busybox方式) - Qiita

    Golangの実行ファイルはサイズが大きい Golangはスタティックリンクされた実行ファイルを生成します。そのため実行ファイルのサイズは大きくなります。 ストレージの容量が十分あれば、これはとるに足らないことなのですが組み込みLinuxではストレージにNANDフラッシュメモリを使用していて容量が少ないこともあります。 残り容量が30MBしかないところに、3MBくらいの実行ファイルがぽんぽん増えていったりするとかなりつらい状況になります。 まずはひとつのファイルサイズを減らす go buildのときに不要なシンボルを削るオプションをつけます。 組み込みLinuxを使っている人なら通じると思うのですが、いわゆる「busybox方式」です。 Golangで書かれた複数のプログラムをひとつの実行ファイルにリンクしてしまいます。これによって重複して使用されているライブラリの分のサイズが削減できます

    Golangの実行ファイルを複数まとめてトータルのファイルサイズを減らす工夫(busybox方式) - Qiita
  • Rust入門 for Vimmer - Qiita

    構成の候補としては、 rust.vim + deoplete-rustrust.vim + vim-racer の2パターンがある。 rust.vimは :make build | cw をすることでエラーメッセージをQuickFixに対応させてくれる。 deoplete-rustvim-racerもどちらもコード補完プラグインだが、どちらもracerを使ってるし挙動がかなり似ている。 私は補完時に最上部に宣言を表示してくれるという理由で、deoplete-rustを選択した。 rust-docを紹介するが、動作がかなり遅く、deoplete-rust/vim-racerのドキュメント機能で十分なため、rust-docは没。 rustfmtも開発中なので没。 Rust導入

    Rust入門 for Vimmer - Qiita
    yuzu441
    yuzu441 2018/01/16
  • V8の基本的なAPIを学ぶ - Qiita

    PLAID Advent Calendar 2017 の17日目。今回はV8についてです。 記事の内容 V8を使った簡単なソースコードを読む 注)V8自体のソースではない そこで使われているコードについてV8のwikiやV8 API Reference Guideで調べる 注)TurboFan/Ignition などの熱い部分には触れていない 前提知識 JavaScriptを知っている C++は知らなくてもいい Web開発をしたことがある 背景 弊社プレイドが提供しているKARTEというサービスの管理画面ではブラウザとしてGoogle Chromeを使用していただくことを推奨しており、またそのKARTEのサーバーサイドでは主にNode.jsを使用しています。つまりその内部で動いているV8にはがっつりお世話になっています。そこで、V8のAPIについて少しでも理解しておくことでV8、Node.

    V8の基本的なAPIを学ぶ - Qiita
  • Dockerでユーザーをdockerグループに追加することの危険性を理解しよう - Qiita

    このコマンドはコンテナ内のroot権限だけでなく、ホスト側のroot権限も与えてしまうので簡単にバックドアを設置できてしまうのです。(設置するコマンドは調べればすぐに出てきますが流石にコピペできるように書くのはやばいので) また他にもコンテナを--privileged付きで起動しホストの/をマウントしてchrootするというもっと凶悪な手もあります。 元々sudoが使えるのに、何が問題なの? 問題はユーザーが意図的にdockerコマンドを実行した時には発生しません。問題は悪意のあるプログラムがサーバなどに混入した時や、怪しいDockerfileを使用した場合です。 大抵の悪意のあるプログラムは何らかの手段でroot権限を取得しようとしますが、それはゼロデイ脆弱性であったりそもそもの権限のミスであったりしますが、dockerがインストールされている条件下ならばこの方法で権限昇格を狙ってくる場

    Dockerでユーザーをdockerグループに追加することの危険性を理解しよう - Qiita
    yuzu441
    yuzu441 2017/12/30
    "--privilegedを使わなければならない場合は素直にsudoをつけた方がいいと思います"
  • 2018 年は Hyperapp の年だ - Qiita

    この投稿は Increments Advent Calendar 2017 の14日目の記事だよ。Hyperapp という JavaScript ビューライブラリを自作しているので、その説明と作った理由について話す。 Hyperapp ができるまでのプロセスや、どんな価値観で作ったかなどを書く。新しいフレームワークを作る時の参考になれば嬉しい。 Hyperapp とは? Web アプリのフロントエンドJavaScript ライブラリ。React, Preact, Vue といった代表的なものよりもずっと小さく、1 KB という超軽量サイズ。他のライブラリに依存することなく使えて、さらにスピードもある Elmアーキテクチャーに基づいてて、アプリケーション設計はElmReact、Reduxと似てるけど、ボイラープレートは少ないし、TypeScriptにも対応して、とにかくシンプル。 El

    2018 年は Hyperapp の年だ - Qiita
  • 新QiitaでReactをやめてhyperappを採用した背景 - Qiita

    12/1 に Qiita のトップページをリニューアルしました。これまで React を使っていましたが、それをやめて hyperapp を採用しました。まわりを見てもあまり採用事例が見当たらないので、この記事では一体なんで今をときめく React ではなく hyperapp を選択したのか、どういうところが魅力的なのかについて プレゼンテーション層を実装するためのツールとして 学習コスト の観点から書きたいと思います。なおこの記事に書かれていることは全て個人の感想であり、はっきりいって個人の日記レベルです。 それと hyperapp の開発者が社内にいるという事情もあるので、そこら辺さっぴいて読んでください。 TL;DR プレゼンテーション層を実装するためのツールとして React は機能過多だし、機能不足 hyperapp は過不足ない 学習コスト 仮想 DOM は学ぶ価値のある知識

    新QiitaでReactをやめてhyperappを採用した背景 - Qiita
    yuzu441
    yuzu441 2017/12/27
  • HTTP/2における双方向通信とgRPCとこれから - Qiita

    この記事は 第2のドワンゴ Advent Calendar 2017 最終日の記事です。 はじめに ウェブ技術を語る上で欠かすことのできない要素として、HTTPがある。 従来のHTTP/1を無くして、ここまでのウェブの発展はなかったといえるだろう。言うまでもなく、HTTP/1が我々人類に齎した功績は大きい。 しかしその一方で、その規格のシンプルな原理原則に縛られた結果、要件を達成するために非効率なネットワーク使用を前提とするシステムが量産されるなど、HTTP/1がもたらした技術的負債も存在する。 その中の一分野として、双方向通信に着目したときに、HTTP/1からHTTP/2へのアップグレードによってどのような変化がもたらされたか。 稿ではHTTP/2という規格と、それが持つ可能性の一端としてgRPCについての仕組みを紹介し、従来とこれからのWeb開発における双方向通信について述懐する。

    HTTP/2における双方向通信とgRPCとこれから - Qiita
    yuzu441
    yuzu441 2017/12/25
  • 2017末時点での React Component 設計のベストプラクティス - Qiita

    どう考えているか、というのを聞かれたので、記事に起こしておきます。個人の意見です。 Prettier を使う 気づけばコードの整形を人間がやる時代は終わりました。 細かいコーディングスタイルでレビューの時間を取るぐらいだったら、一貫した自動整形ルールを適用すべきです。 人によっては細かいこだわりがあって prettier の規則が気にわないかもしれず、僕も最初はそうでしたが、Atomで保存する度に自動整形を走らせる prettier の強烈な開発体験によって、最終的にそれらのこだわりを全て捨てることが出来ました。 生産性を求めるなら、現時点では最優先で導入すべきものです。 React.createClass を使わない v16 で削除されたのでいわずもがな。 同様に、 createClass でしか使えなかった mixin 周辺機能も丸ごと deprecated です。 「可能な限りは」

    2017末時点での React Component 設計のベストプラクティス - Qiita
  • React とGUI 設計論、あるいは新世代のホームページビルダー - Qiita

    注意。実装はまだないです。思考実験的な意味合いが強いです。 持論 Reactやredux/Rxのデータモデリング手法の発達で、ツリー構造の末端に渡すまでのデータモデリングが主戦場になりつつあります。これはロジックを注入する部分と、プレゼンテーショナルなものが明確に分離されてきたことを意味します。 僕は個人的に、 GUI にまつわるものは、GUIで設計したい、という気持ちがあります。そう、僕が作りたいと思っているのは、悪名高きホームページビルダーです。 とはいえ、プログラミング抜きでxxxできる!というものではありません。むしろプログラミングとGUIを横断するイメージで、Unity や UnrealEngine のような開発環境を想定しています。 今やりたい理由 ブラウザの仕様が安定してきた 色々と使えるパーツが増えた JS で複雑なツールを作れるようになり、インブラウザな開発ツールが作

    React とGUI 設計論、あるいは新世代のホームページビルダー - Qiita
  • 最小のNode.jsのDockerイメージを目指すスレ - Qiita

    フューチャーアーキテクトアドベントカレンダーに投稿したサーバーサイドレンダリングの代替としてPrerenderを試してみたに引き続き、JS系?ウェブ系?なエントリーです。 ECSとかEKSとか出てきて、コンテナを使うと、一つの物理ホストで、複数のコンテナをさばいて効率を上げる、というのが簡単にできるようになってきました。そのため、Node.jsのアプリもDocker化して配りたいですよね? 次のスライドを見ると、サイズが小さいほうが良いとされています。中には静的リンクが云々みたいなトリッキーな技もありますが、そこまでがんばらない&黒魔術にならない程度でがんばる方向でサイズを小さくしてみたいと思います。 お前のDockerイメージはまだ重い💢💢💢 by stormcat24 STEP1: Alpine + 標準ライブラリのみ 小さいというAlpine Linuxを使ってみます。クールな

    最小のNode.jsのDockerイメージを目指すスレ - Qiita