タグ

ブックマーク / qiita.com/kojix2 (35)

  • Crystal言語はAndroid携帯でも動く - Qiita

    あまり知られていないことだが、Crystalは携帯電話(Androidのスマートフォン)でも動作する。別にハッキングするわけではなく、Crystalの公式ホームページでも説明がある正規の方法で。 Termux Termuxとは、AndroidデバイスをLinuxとして使うことができるアプリである。これをインストールする。 あとは次のようにCrystalをインストールするだけだ。 余談だが、ruby や htop vi などすぐに思いつくようなツールはだいたいインストールできる。あとは、普段のコンピュータでやっているのと同じように vi などでファイルを編集して保存し、crystal build を行えばよい。 スマートフォンでCrystalがコンパイル・実行できるのは非常に面白い。 オススメです。

    Crystal言語はAndroid携帯でも動く - Qiita
  • Rubygemsのplatform の文字列はどこで定義されているか? 〜fatgemを作る人のために〜 - Qiita

    Rubygemsのplatform の文字列はどこで定義されているか? 〜fatgemを作る人のために〜Ruby Rubyでしばしば見られる x86_64-linux arm64-darwin x64-mingw32 といった記法がどこで定義されているのか調べてみました。まえがきが長いので、結論を知りたい人のために結論を書くと、 IT業界標準的な cpu-os 記法があるわけではなくRubyの書き方である。 rubygems/platform.rb で定義されていて特に一覧表があるわけではない。 このplatform記法の概要は gem help platform で読むことができる です。さらに詳しく読みたい方は「platform の文字列はどこで定義されているか?」まで飛ばしてください。 はじめに fatgemとは RubyのパッケージのことをGemと言います。Gemは通常はRuby

    Rubygemsのplatform の文字列はどこで定義されているか? 〜fatgemを作る人のために〜 - Qiita
  • Rustの関数をRubyやCrystalから呼び出す:方法と課題 - 1日目 - Qiita

    はじめに 最近では、新しいライブラリがRustで書かれるようになってきました。これに伴い、RubyやCrystalなどの好みの言語からRustの関数を呼び出したくなることが増えます。 Python言語に対しては、バインディングが最初から提供されることも多いのですが、それ以外の言語からRustの関数を呼び出したい場合、自身で作成する必要があります。 この記事は、Rustに全く触れたことがない人間が、数時間調査した内容をまとめたものです。 しかし、QiitaでMagnusをググっても記事がほとんどヒットしないことからわかるようにそれほど日語の情報が多くない分野なので、調べ物の取っ掛かりとしては価値があると思います。 目標 Rustで作成したライブラリの構造体と関数をみて、RubyやCrystalからFFIで呼び出せるようになること Rustで共有ライブラリを作成する方法 Rustは共有ライブ

    Rustの関数をRubyやCrystalから呼び出す:方法と課題 - 1日目 - Qiita
  • CondaでRubyを使う - Qiita

    AnacondaやMinicondaでRubyをインストールして使いたい場合があるかもしれない。普通に、 とすればRubyは使えるようになるけれども、これだとネイティブ拡張を利用したgemをコンパイルしてくれない。ネイティブ拡張を全く使わずにRubyを使うケースはほぼないと思うので、この方法だと実用性があまりない。 では、どうすればいいかというと、conda-forgeからRubyをインストールすればいい。そして、compilerというパッケージも同時にインストールしておく。

    CondaでRubyを使う - Qiita
  • VOICEVOXのRuby版を動かしてみた - Qiita

    はじめに - VOICEVOXとは 日語を喋らせることができるソフト。Rustで実装されている。内部ではONNXRuntimeとか走っているようだ。 Ruby版 - voicevox.rb sevenc-nanashi さんが作っている。Ruby-FFIを使っている。 インストール VOICEVOXのインストール方法はクセが有る。今後も方法が変わるかもしれないので、最新の情報を当たってほしい。まず、公式からダウンローダーを入手する。そして、ダウンローダを実行すると必要なファイルが入手される。 具体的には公式のREADMEを読んでほしい。 Windowsの場合 Invoke-WebRequest https://github.com/VOICEVOX/voicevox_core/releases/latest/download/download-windows-x64.exe -OutFi

    VOICEVOXのRuby版を動かしてみた - Qiita
  • RubyからOpenAIのAPIを叩く - Qiita

    ChatGPTAPI Key を取得しておく。 あとは次のようにすれば、利用することができる。(自分の場合は、以前に登録したときの無料枠が失効しており、クレジットカードを登録する必要があった。) require "ruby/openai" client = OpenAI::Client.new(access_token: "ACCESS_TOKEN_GOES_HERE") res = client.completions( parameters: { model: "text-davinci-003", prompt: "Are you a cat?", max_tokens: 10 }) puts res["choices"].map{|i| i["text"]}.join # No, I am not a cat.

    RubyからOpenAIのAPIを叩く - Qiita
  • Crystal言語がどのようにして動作するのか調べてみた(前編) - Qiita

    はじめに Crystal言語というものが一体どのように動いているのかを調べてみようと思いました。しかし情報科学のバックグラウンドのない人間が少し調べたぐらいではCrystalがなぜ動いているのかはわかりませんでした。理解できた部分について書いていきます。 元々はCrystalのアドベントカレンダーのために準備した記事でした。後半は勉強不足により未完になっているのですが、近日中に完成する見込みが立たないのでこのまま公開します。(前編と書いてありますが、後編は出ない可能性が高いです) Crystal言語とは? Crystalは、Ruby言語に非常によく似た文法を持つ静的型付け言語です。文法はRubyによく似ており、実行速度は非常に高速です。メタプログラミングはマクロによって実現しています。型推論のおかげで型を宣言しなくても、かなりの程度までRubyと似たコードを書くことができます。 いきなり元

    Crystal言語がどのようにして動作するのか調べてみた(前編) - Qiita
  • CrystalでWebAssemblyに出力した関数をRubyから呼び出す - Qiita

    はじめに この記事は昨日の記事の続編です。前回はCrystalで書いたコードをWebAssemblyにして、wasmer や wasmtimeで実行しました。 今回は、Crystalで書いた関数をWebAssemblyに出力し、Rubyから呼び出して使ってみます。 前回のおさらい CrystalはLLVMの機能を利用して、WebAssemblyを出力できる。 その際、コンパイル済みのwasmのライブラリを入手してリンクする必要がある。 コンパイル済みライブラリを以下のリポジトリのリリースから入手する。(記事作成時点では 0.0.2 が最新) CUI操作でダウンロードする場合以下のコマンド wget https://github.com/lbguilherme/wasm-libs/releases/download/0.0.2/wasm32-wasi-libs.tar.gz mkdir w

    CrystalでWebAssemblyに出力した関数をRubyから呼び出す - Qiita
  • CrystalでWebAssemblyを出力する - Qiita

    はじめに 記事は、下記のノア・エバレットさん記事① 記事②のうちの記事①の一部に基づいています。ノア・エバレットさんはTwitpicの設立者で、現在新しいSNS、glueを立ち上げており、そのなかでCrystalが積極的に利用されているそうです。この記事の扱う内容はその前半の抜粋なので、よかったら元記事を参照してください。 wasmとは wasmとは何か?については、(私は正しく説明できる自信がないので)他の記事に譲ります。 Crystalでwasmを出力する CrystalはLLVMを利用しているので、wasmの出力なんか簡単だ、と思うじゃないですか。でも、 とやるとエラーが出てしまいます。動作させるためには libc、librt、libpcre が必要です。そこで、これらのwasmのコンパイル済みライブラリを入手して静的にリンクするようにしましょう。 世の中にはちゃんと便利なツールを

    CrystalでWebAssemblyを出力する - Qiita
  • RubyでUMAPをできるgemを作った話 - Qiita

    はじめに Uniform manifold approximation and projection (UMAP) はt-SNEとならんでよく使われる次元圧縮による可視化手法です。 Ruby言語で、機械学習を実行する場合、Rumaleというgemを使うケースが多いと思います。Rumaleにはt-SNEが搭載されていますが、UMAPは搭載されていません。 今回、C++のライブラリであるUmapppのRubyバインディングを作成したので忘れないうちに記録します。 Rubyのライブラリがないときはバインディングを作ろう Ruby言語は、データ解析の分野では比較的マイナーな言語なので、やりたいことを実装したライブラリーが存在しないことがよくあります。そんな時はC言語やRust言語などのライブラリを探してRubyバインディングを作る方法があります。 GitHubの検索では、言語を指定してコードを検索

    RubyでUMAPをできるgemを作った話 - Qiita
  • CrystalでGTK4を使うためのメモ - Qiita

    はじめに GUIアプリを作りたいって思いませんか? UbuntuではGnomeが標準的な環境で、ここではGTKアプリが広く使われています。Crystal言語でもGTKアプリを使いたいそういう人のためのメモです。 良い資料 いきなりですが、素晴らしい資料のリンクです。 この資料を読みこなせれば、以下の文章は不要といっても過言ではないでしょう。 GTK3か、GTK4か 現在主流なのはGTK3だと思いますが、今後はGTK4が主流になっていくと思われます。GTK3と、GTK4は互換性のない部分も少なくないようで、GTK3のコードはそのままではGTK4で動かないようです。Crystalでは、 を使います。GTK4では、 を利用します。ライブラリの名称が大変わかりにくいことになっていますが、crystal-gobjectはなかなかGTK4に対応しないために、gtk4.crをはじめられたそうで、今後の動

    CrystalでGTK4を使うためのメモ - Qiita
  • Rubyで文章生成AI「GPT-2」を実行して遊んでみた - Qiita

    はじめに Python 以外の言語から AI にアクセスするのは難しすぎると考えている人が多いと思います。しかし、最近は、事前トレーニング済みのモデルが多数公開されており、さまざまなプラットフォームやプログラミング言語から AI 推論を簡単に実行できるようになっています。 ここでは、Ruby 言語から ONNX ランタイムを実行して英文を生成できる GPT-2 モデルで遊んでみたいと思います。 ONNX ランタイムを使用すると、推論は簡単に実行できます。 事前準備とインストール。 下記の3つのGemをインストールします。 onnxruntime - ONNX Runtime のRubyバインディングです。 tokenizers - Hugging Face の提供しているTokenizerのRubyバインディングです。 numo-narray - Rubyの行列計算ライブラリです。NumP

    Rubyで文章生成AI「GPT-2」を実行して遊んでみた - Qiita
  • RubyでYOLOv7を動かしたった - Qiita

    最近の若者はRubyとかやらん。 なので、数学機械学習のことが全くわからないおっさんがRubyYOLOv7やってみた記事を書く。 ONNX Runtimeがあるので、推論だけならだいたい何でも動く。 (3年ぐらい前に onnxruntimeでYOLOv3をやった記事を書いたので流用) こちらを経由して(しなくてもいいが) こちらのプロジェクトからONNXのモデルをダウンロード。これの管理人が@PINTO さん。 GithubにQiitaへのリンクが貼ってあるQiitaユーザーの鏡。ありがとうございます。 ここで、post-process_merged をつかってポストプロセス実装済みモデルをダウンロードするのがポイント。 じゃないと post-process を自分で実装する必要が出てきて面倒くさい。 git clone https://github.com/PINTO0309/PIN

    RubyでYOLOv7を動かしたった - Qiita
  • Rubyでさまざまな確率分布の乱数を生成してヒストグラムを描いてみた - Qiita

    はじめに さまざまな確率分布に従う乱数を作成して、ヒストグラムを描いてみたくなる日は誰にでもあると思います。 大丈夫。いつだって、世界の素晴らしいプログラマ達が驚くべきライブラリを作ってくれています。たとえ有名ではないライブラリでも、見つけてちゃんと使ってあげると、魔法のようなことが簡単にできたりします。 この記事では、素晴らしいRubyのライブラリを2つ紹介します。Numo::GSL と Flammarionです。これらを使うことで、驚くほど簡単に乱数を生成してヒストグラムが描出できます。 準備編 インストールは若干面倒なので、飛ばして、最後までいったら戻ってきて見てください。 Numo::GSLとFlammarionをインストールする Numo::GSLをインストールする Numo::GSL はGNU Scientific Library (GSL) のバインディングです。Ruby界に

    Rubyでさまざまな確率分布の乱数を生成してヒストグラムを描いてみた - Qiita
  • rubio-radio - Rubyで作るシンプルなGUIラジオアプリ - Qiita

    はじめに Rubyを使ってシンプルなGUIのラジオアプリを作った。 Glimmer-DSL-LibUI を利用した。 概要 RadioBrowserのTopVote500がテーブルに表示される。 インプットボックスに打ち込むと、ラジオ局をインクリメンタルサーチできる(Glimmer-DSL-LibUIの機能) 再生ボタンを押すとコマンド(デフォルトではVLC)が起動してラジオを再生する。 ポイントと感想 GUIのポイントは、テーブルのインクリメンタルサーチだが、これはGlimmer-dsl-libuiの標準機能を使った。 テーブルのColumnの幅の調節ってできるんだろうか? Glimmer-DSL-LibUI 自動でテーブルの変更を検知して更新してくれるようだ。 ラジオ局は https://www.radio-browser.info のAPIを叩いて取得している。 TopVoteから取

    rubio-radio - Rubyで作るシンプルなGUIラジオアプリ - Qiita
  • Crystalに実験的なREPLが導入される - Qiita

    Crystal言語を触っていて、Rubyと開発体験が違うなと感じていたのは、REPLの有無でした。Rubyではirbやpryを使いながらコードを書くのが普通だと思いますが、Crystalは静的言語なのでREPLがありませんでした。 しかし、Crystal公式からついにREPLがCrystal体に搭載されることが発表されました。すでにマスターにはマージされており、自分でCrystalをコンパイルすれば利用することができます。(コンパイル時に make interpreter=1 とフラグを指定します。2021年12月31日の時点では、まだ公式のパッケージには含まれていないようです。) 詳しい内容については下記の公式ブログを参照ください。 この記事は以上です。

    Crystalに実験的なREPLが導入される - Qiita
  • glimmer-dsl-libui の話 - Qiita

    GUIへのあこがれ こんにちは。 今日は glimmer-dsl-libui というGUIを操作するライブラリの紹介をします。 GUIっていうのは、パソコンの画面に「ウィンドウ」とか「ボタン」とか出すやつです。 はじめてコンピュータを触れたころ、コンピュータにウィンドウやボタンを表示してオリジナルなソフトを作りたいって思ってませんでしたか? でも現実はきびしくて、でもわかるプログラミングのサイトを見て、にはわかっても自分にはわからん、と思って諦めていました。 それからずっとプログラミングと縁のない生活を送ってましたが、なぜかRubyに触れたりして Ruby/Tk を使ってウィンドウを出せるようになりました。 けれどもTkには問題がありました。一つは、Ruby体からTkが切り離されてしまったことです。これで、RubyをインストールすればTkが動くという前提がなくなりました。もう一つは、

    glimmer-dsl-libui の話 - Qiita
  • GR.cr を使ってグラフを少しだけ描く話 - Qiita

    Crystal言語を使ってグラフを描く方法は、そんなにない。 最近、Cryplot というのが出て、ようやく多少Gnuplotでグラフを表示できるようなった。 私は1-2年前からGR.rbという名前のRubyのGRバインディングを作成しており、GRのGRMという機能を利用することで、比較的簡単に格的なグラフが描けることがわかっていた。しかし、reddit等で呼びかけても誰も作る様子がないので、仕方がないのでgr-crystalをフォークして自分で作った。 自分で作ったといっても、無から作ったわけではなく、多くの他の人の力の上にコードを書いており、自分が作った部分はそんなに多くない。まず第一にGRMの仕組みがチートすぎる。C言語のバインディングが作成できるプログラミング言語ならば、だいたいなんでも綺麗なグラフが描けてしまう。それから、Jun Makino氏が gr-crystal 作成され

    GR.cr を使ってグラフを少しだけ描く話 - Qiita
  • PythonやRuby等のスクリプトをUbuntuデスクトップのメニューに追加する - GNOME メニュー編集用ツール alacarte - - Qiita

    PythonRuby等のスクリプトをUbuntuデスクトップのメニューに追加する - GNOME メニュー編集用ツール alacarte -RubyPythonUbuntugnomealacarte はじめに Ubuntu Desktopを使っている人も最近はわりと多いのではないかと思います。そして、PythonRubyで自分用のスクリプト(GUIを含むもの)を書いて利用している人も少なくないと思います。ここではalacarteというメニュー編集ツールを利用してUbuntuのメニューに、自作のスクリプトを登録する方法を記述します。 alacarteを起動したところ ↓ ここでは、例として、サウンドとビデオの項目にLibUIで作成したtiny_midi_palyer.rb を追加することにします。 左のリストから、サウンドトビデオを選び、新しいアイテムをクリックします。 Nameを入力し

    PythonやRuby等のスクリプトをUbuntuデスクトップのメニューに追加する - GNOME メニュー編集用ツール alacarte - - Qiita
  • JupyterでCrystalを動かすICrystalの紹介 - Qiita

    はじめに JupyterでCrystalを使えるカーネルがようやく登場しました。 ICrystalは2020年に登場した新しいJupyter kernelです。内部ではicrを使用しているようです。 Githubのリポジトリ https://github.com/RomainFranceschini/icrystal 作者はイタリアのコルシカ島在住のようです。 インストール 公式のREADMEと同じです。2020年7月時点での情報を日語でも記載しておきます。 依存 Jupyter ZeroMQ ZeroMQがきちんと導入できていることが大事です。詳しくは zeomq-crystal を参照ください。 順番にコマンドを打ち込んでいきます。 git clone https://github.com/RomainFranceschini/icrystal.git cd icrystal sha

    JupyterでCrystalを動かすICrystalの紹介 - Qiita