タグ

ブックマーク / qiita.com/mattn (24)

  • ゴリラ言語の読み方 - Qiita

    先日、「ウ」と「ホ」と改行文字だけでプログラミングできる「ゴリラ言語」を作りました。 そういえば先日、「ウ」と「ホ」と改行だけでプログラミング出来るゴリラ言語作ったのでソース置いておきますね。「ウホッ」でもいいよ。https://t.co/XcXFcvDhRy — mattn (@mattn_jp) March 24, 2020 コード短いのでそのまま張っておきます。 package main import ( "bufio" "bytes" "fmt" "io" "io/ioutil" "os" "strconv" "strings" ) type Op int const ( Push Op = iota Signed Dup Copy Swap Discard Slide Add Sub Mul Div Mod Store Retrieve Mark Unsigned Call Ju

    ゴリラ言語の読み方 - Qiita
  • ゴリラ言語の読み方 - Qiita

    先日、「ウ」と「ホ」と改行文字だけでプログラミングできる「ゴリラ言語」を作りました。 そういえば先日、「ウ」と「ホ」と改行だけでプログラミング出来るゴリラ言語作ったのでソース置いておきますね。「ウホッ」でもいいよ。https://t.co/XcXFcvDhRy — mattn (@mattn_jp) March 24, 2020 コード短いのでそのまま張っておきます。 package main import ( "bufio" "bytes" "fmt" "io" "io/ioutil" "os" "strconv" "strings" ) type Op int const ( Push Op = iota Signed Dup Copy Swap Discard Slide Add Sub Mul Div Mod Store Retrieve Mark Unsigned Call Ju

    ゴリラ言語の読み方 - Qiita
  • vim-lsp の導入コストを下げるプラグイン vim-lsp-settings を書いた。 - Qiita

    これら全ての機能は、テキストエディタと Language Server との間で JSON-RPC を使い、ソースコード体、コード補完候補、座標情報などを交換する事で実現されています。 温故知新 実は Language Server Protocol は OmniSharp というソースコード補完サーバがベースとなっています。 OmniSharp は元々、Vim で C# のコードを補完する為に作られた Vim プラグインでした。当時は Vimcurl コマンドで通信できる様に REST サーバとして作られていました。それを Microsoft が双方向の通信を行える様に通信仕様を JSON-RPC に定め、汎用化の為に仕様として策定した物が現在の Language Server Protocol です。 Language Server Protocol は Visual Stud

    vim-lsp の導入コストを下げるプラグイン vim-lsp-settings を書いた。 - Qiita
  • Go言語の crypto/xxx は New して Sum するより直接 Sum する方が速い - Qiita

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

    Go言語の crypto/xxx は New して Sum するより直接 Sum する方が速い - Qiita
  • Go言語で扱えるデータフレーム厳選4つ - Qiita

    はじめに データサイエンティストでなかったとしても、数値データを使って様々な解析をする際には CSV ファイル等ファイルを読み込み、数値の配列としてメモリに保持して、それらをループ等で利用して解析を行っておられると思います。 その際、配列は1次元目に行、2次元目に列、を格納するのが一般的です。多くのケースではこの方法で事足りるのですが、解析を行ううちに「列としてデータの固まりを扱いたい」「ラベル付けされた列を扱いたい」と感じる事が出てくると思います。 これを簡単にしてくれるのが「データフレーム」です。 データフレーム4種 記事では Go 言語から扱えるデータフレームを4つご紹介します。 QFrame https://github.com/tobgu/qframe QFrame は、フィルタリング、集計、およびデータ操作をサポートするイミュータブルなデータフレームです。 QFrame での

    Go言語で扱えるデータフレーム厳選4つ - Qiita
  • Vim から conda を使って Python 環境を切り替えられる vim-conda が便利 - Qiita

    空いていたので穴埋め。 はじめに Python をお使いの皆さんならば、各アプリケーションを入れる際に conda を使って環境を綺麗に保っていると思います。 また VimPython スクリプトを実行する際には thinca さんの QuickRun を使ったりしてると思います。さらには Python Language Server を起動して入力補完を行ったりもするでしょう。そういった場合、いちいち Vim を終了して conda で activate して、とやるのは手間ですよね。 重い conda ら そこで vim-conda です。 vim-plug をお使いであれば以下を vimrc で指定して :PlugInstall でインストールできます。 使い方 :CondaChangeEnv を実行すると選択可能な conda env が表示されます。 選択すれば内部的に a

    Vim から conda を使って Python 環境を切り替えられる vim-conda が便利 - Qiita
  • Mackerel を使って10分でメトリクス監視を始める手順 - Qiita

    はじめに Mackerel というと、皆さんこんなイメージをお持ちかもしれません。 エージェントを入れないといけない サービス側で色々設定しないといけない 今ある値をグラフにして欲しいだけなのに こんな風に思っておられるかもしれません。ですが Mackerel は独自のグラフを作るのであれば、大した設定もいらないし、エージェントをインストールする必要もないのです。 記事では、今ある値を最速でグラフにする手順を示したいと思います。なお Mackerel のアカウントは既にある前提で説明します。今回は Twitter フォロワ数の増加をグラフにしてみたいと思います。 筆者は普段 Twitter でフォロワ数などを全く気にしない人なのですが、先日以降 Twitter の通知欄に「フォローされた」通知が沢山くるのを確認していました。 昨日は自分がプログラミングを始めた頃からずっと尊敬しているプロ

    Mackerel を使って10分でメトリクス監視を始める手順 - Qiita
  • Go ランタイムのデバッグをサポートする環境変数 - Qiita

    はじめに Go はシンプルな構文ながら複雑な処理を行えるプログラミング言語です。エラーも自らがハンドリングするスタイルなので割とバグが入り込みにくいのが特徴です。しかし時には Go 体のソースを見ないと動きが確認できない事もあります。とは言えオープンソースだからといって全ての挙動が簡単に探れるものではありません。 コンパイラの動きであったり、ランタイムの動きであったりで良く分からない物があった場合に、ソースを変更して print デバッグする事が良い方法とは言えません。 幸運にも Go ではランタイム、標準パッケージにデバッグのヒントを出せる仕組みが用意されています。GODEBUG や GOGC、GOTRACEBACK という環境変数が用意されており、設定を行う事で挙動を変更できたり色々なデバッグ情報を出力できたりします。 記事ではこれらの環境変数に設定可能な値を、筆者の知見を交えて紹

    Go ランタイムのデバッグをサポートする環境変数 - Qiita
  • ホクホクのイモ - Qiita

    #include <algorithm> #include <iostream> #include <vector> #include <locale> #include <iterator> #include <random> #include <codecvt> std::string wstring2string(std::wstring& w) { std::wstring_convert<std::codecvt_utf8<wchar_t>, wchar_t> cv; return cv.to_bytes(w); } int main() { std::random_device seed_gen; std::mt19937 engine(seed_gen()); std::wstring out; std::wstring hokuimo = L"ホクイモ"; std::shu

    ホクホクのイモ - Qiita
  • Go による機械学習 推論フレームワークの最新動向 2019 - Qiita

    Golang で推論 昨今では「機械学習と言えば Python」「Python と言えば機械学習」と思われがちなのですが、推論用途であれば学習済みモデルを利用して色々なプログラミング言語から扱えます。Go から扱える機械学習ライブラリの内、学習済みモデルが利用できる物としてはおおよそ以下の3つに絞られます。 TensorFlow TensorFlow Lite ONNX Golang で TensorFlow Golang で TensorFlow を利用する場合はオフィシャルから Go の binding が提供されているので Go の import 文で GitHub リポジトリを指して利用します。Jetson や Raspberry Pi での動作実績もあります。TensorFlow 自体が色々な CPU 命令の最適化まで行っているので Python とそん色ないパフォーマンスで動作

    Go による機械学習 推論フレームワークの最新動向 2019 - Qiita
  • mruby から TensorFlow Lite を操りブラックホールとポンデリングとオニオンフライを見分ける - Qiita

    mruby-tflite を作りました 今朝、mruby から TensorFlow Lite が扱える様に mrbgems (mruby で言う gems)を作りました。 Big Sky :: MRuby の TensorFlow Lite バインディングを書いた。 これを使うと Python機械学習したモデルファイルを TensorFlow Lite のモデルに変換し、mruby から利用できる様になります。例えば FizzBuzz を推論するモデルは以下の様に書けます。 import numpy as np from tensorflow.contrib.keras.api.keras.models import Sequential, model_from_json from tensorflow.contrib.keras.api.keras.layers import De

    mruby から TensorFlow Lite を操りブラックホールとポンデリングとオニオンフライを見分ける - Qiita
  • Vim script でアヤメの品種を分類する - Qiita

    はじめに 以前、Vim script で機械学習 という記事を書いた事で、「Vim script で機械学習は可能」という事を皆さんにもご理解頂けたはずなので、今回は Vim script を使ってアヤメの品種分類をしたいと思います。 出典: https://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%A4%E3%83%A1 iris.csv とは アヤメは温帯に生息するおよそ150種類からなるアヤメ科の植物で、その多くは、がく片の長さ、がく片の幅、花弁の長さ、花弁の幅でその品種が分類できるそうです。この研究結果を UCI(カリフォルニア大学アーバイン校)がデータマイニングの検証用データとして iris.csv というファイル名で配布していて機械学習をやる方の間では有名なデータセットになっています1。iris.csv に含まれるのは、setosa、versi

    Vim script でアヤメの品種を分類する - Qiita
  • TensorFlow を使ってブラックホールとポンデリングを見分ける (追記あり) - Qiita

    はじめに ハワイ、南米、南極など色々な箇所に設置された電波望遠鏡が協力し合う国際プロジェクト「イベント・ホライズン・テレスコープ」が、5500万光年彼方も向こうにある銀河の中心に位置する超大質量ブラックホールの撮影に成功したとの事。ブラックホールが直接撮影されたのは史上初の快挙との事で巷でも賑わっております。 さてこれだけ盛り上がると Twitter でも色々話題になっていて「ポンデリングに似ている」とか「ポンデリングじゃん」とか「ポンデリングにしか見えない」など色々と言われております。 それポンデリングじゃねぇの? これはもしかしてブラックホールを見た事のない我々に対して、ポンデリングの画像を見せられ騙されているのではないかとさえ思い始めました。Twitter 上にも数多くのポンデリング画像が散見されています。そこで TensorFlow の力を借りて「画像がブラックホールなのかポンデリ

    TensorFlow を使ってブラックホールとポンデリングを見分ける (追記あり) - Qiita
  • golang で libvterm - Qiita

    空いていたので穴埋め libvterm とは libvterm は libtermkey の作者でおなじみの Paul Evans 氏によって作られた、VT220/xterm/ECMA-48 といった端末エミュレータの仕様を抽象化し疑似する為のライブラリです。このライブラリの仕様に従ってプログラミングするとプラットフォームや GUI/CUI に依存せず端末エミュレータが扱えるという物です。neovimvim の :terminal 機能として使われています。 libvterm はシェルではありません。またユーザインタフェースでもありません。純粋な仮想端末エミュレータの実装です。ですのでキーも読み取りませんし、何も描画しません。出来るのは端末のセルに対するエスケープシーケンス等の書き込みと、それによって制御された端末の出力結果を取得出来るのみです。 ですので例えばシェルを起動しユーザと

    golang で libvterm - Qiita
  • golang で 2 Way SQL - Qiita

    空いていたので穴埋め。 はじめに データベースを扱うプロジェクトでは、オンコードで SQL を書く事が割と多いのですが、そういったソースコードに埋め込まれた SQL はプレースホルダを使って値を取るので直接実行する事は出来ません。 RDBMS によっては :変数名 ではなく ? や $1 といった表記をする物もあります。こういった SQL は直接実行できない為、どうしても結果がイメージし辛くなるのですが、2 Way SQL という方法を使う事で解決できる事があります。 2 Way SQL とは 2 Way SQLSQL のコメントに IF や ELSE、END といった制御構文を埋め込む事で、直接実行する事も出来るし、プレースホルダを使ったオンコード用の SQL としても使う事ができるといった物です。筆者が知る限り明確な仕様は見当たらないのですが、昔は Doma/S2Dao といった

    golang で 2 Way SQL - Qiita
  • Lambda 関数に俺はなる - Qiita

    この記事は Vim Advent Calendar 2017 の25日、最終日の記事です。その1、その2、多くの方に参加頂きました。参加頂いた皆様、当にご苦労様でした。そして完走おめでとうございます。 今年のおさらい 今年は Vim の国際カンファレンス Vimconf2017 も開催され、未だ衰えを知らない Vim の人気を再認識する年になったと思っています。 Vim バージョン 8.0 がリリースされたのが去年の9月の事。約1年くらいですが、最近になってようやく皆さんに認知されてきたのかなとも思います。Vim 8.0 の新機能を今一度おさらいしておくと、大きくは以下の物がありました。 チャネルによる非同期 I/O のサポート (Channel) ジョブ (Job) タイマー (Timer) パーシャル (Partial) ラムダ (Lambda)、クロージャ (Closure) パッ

    Lambda 関数に俺はなる - Qiita
  • 男と女が寄りそうとどうなるのか - Qiita

    この記事は Go Advent Calendar 2017 の記事です。 アダムとイブ 男と女が寄りそうとどうなるのか。これは神様がアダムとイブという異なる性を地に授けた時から既に決まっている事なのもしれません。 このお題を解き明かしたい。Go 言語を使って。 ネタとしては以下の記事を参考にしました。 どうしたら「彼女」から「奥さん」になれるかを『Word2Vec』に聞いてみた | 人工知能ニュースメディア AINOW 男と女が寄りそう事。それはつまり「男」というベクトルと「女」というベクトルが合わさった時にどの様な結果が得られるのかという事なのです。 そこで今回は「男」というワードと「女」というワードのベクトルを合成する為に word2vec を使ってこのお題を調べてみようと思います。 word2vec とは 自然言語処理を行う手法の一つとして word2vec があります。word2v

    男と女が寄りそうとどうなるのか - Qiita
  • Mackerel で Oracle のパフォーマンスを監視する - Qiita

    この記事は Mackerel Advent Calendar 2017 の 12/14 の記事です。 はじめに Mackerel はサーバの監視を行うサービスです。サーバの負荷だけでなくあらゆるリソースの値をメトリクスとして収集し、グラフによる見える化、監視、アラーム送信といったインテグレーションを行うサービスです。Mackerel にメトリクスを送信する mackerel-agent はプラグイン方式を採用しており、色々なメトリクスを Mackerel に送信する事が出来ます。提供されているプラグインには既に色々な物が用意されていて、導入するだけで直ぐに監視を行う事が出来る様になっています。尚、今年は @soudai1025 さんが25日まるまる mackerel plugin だけの Advent Calendar を書いています。各プラグインの README だけでは伝わりづらい色々

    Mackerel で Oracle のパフォーマンスを監視する - Qiita
  • 軽量ディレクトリビューワ dirvish をカスタマイズする方法 - Qiita

    Vim のファイラ選び Vim には幾らかファイラがあります。 Netrw (Vim標準) NERDTree Vaffle Vimfiler 他にもいろいろあります。僕も昔は NERDTree を使っていたのですが、軽さを求めていたので dirvish にスイッチしました。 Big Sky :: Vim 上のファイラを NERDTree から dirvish に乗り換えた。 dirvish はとにかく何もしません。何もしないので機能が無いのですが、その分速いという訳です。README.md によると Netrw の2倍速いとのこと。 ただ、全てを気に入っているかというと、そういう訳ではなくて、幾らか不満もあります。 以下は僕がどうしても気に入らなかった2つの問題を解決する方法を紹介します。 - で起動してしまう デフォルトではノーマルモードの - で dirvish が起動します。オペレー

    軽量ディレクトリビューワ dirvish をカスタマイズする方法 - Qiita
  • golang で正規表現クロスワードを解く - Qiita

    この記事は Go Advent Calendar 2016 最終日の記事になります。参加頂いた皆さんお疲れさまでした。 今年も昨年に引き続き、25人以上の方が「何か書きたい」と名乗り出て頂き、gogo2、go3 の3(2年連続)、計75エントリが揃う事になりそうです。Go 言語の人気が高まってきているのが良くわかるアドベントカレンダーでした。 あらすじ 普段あまり表だった所には姿を現さないのですが、今年は builderscon 2016 に登壇させて頂きました。 とても新鮮な体験で、味わった事のない緊張の中、いろいろな反響を貰いました。いい体験が出来たと思います。ありがとうございました。登壇し終えて数時間はなんだか緊張のほぐれた変な感じを味わっていました。懇親会の時あたりでようやく皆さんとお話する事ができて Vimmer の皆さんと Vim 談義をしてきました。 その懇親会で香り屋さ

    golang で正規表現クロスワードを解く - Qiita