タグ

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

  • Common Lisp – destructuring-bind

    hikazoh
    hikazoh 2018/06/10
  • GolangとGoogle Cloud Vision APIで画像から文字認識するCLIを速攻でつくる - Qiita

    普段、機械学習やらAIやらに縁のない僕ですが、WEBエンジニアとしては、現状のAPIがどこまで出来るのか知っておきたいと思い、Google Cloud Vision APIを試してみたので共有します。使う言語はGo言語です。画像のパスを指定するだけの超シンプルなCLIを作ります。 そもそも Google Cloud Vision API って? 物体検知やテキスト抽出などがAPI経由で簡単に実行できるやつ。基は画像認識はラベリングやら、学習データの設計やら、モデルを作ってなど工数かかるけど、その部分がGoogleがすでに用意した機械学習モデルを使って色々できますよってやつ。しかもAPIに画像投げるだけ。 公式の紹介ページ https://cloud.google.com/vision/ 前提 Go言語が使える環境が整っている GCPにアカウント登録が完了している コマンドラインパラメータ

    GolangとGoogle Cloud Vision APIで画像から文字認識するCLIを速攻でつくる - Qiita
    hikazoh
    hikazoh 2018/06/05
  • ベーシック認証をURLに直接書く - Qiita

    ベーシック認証がかかったサイトで ユーザー名:user パスワード:password とすると: で、直接アクセスすることが出来たりする…。 追記: ちなみに、ユーザー名もしくはパスワードに@マークが入っていた場合: ユーザー名:user@hoge.com パスワード:password と、URLエンコードすると良いらしい…。 Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up

    ベーシック認証をURLに直接書く - Qiita
  • Clojureでオブジェクト指向を行うまとめ - Qiita

    インスタンス(オブジェクト)の生成 複数の方法が存在し、new、->(※)、.マクロを使用する方法があります。 恐らく違いはどれもありません。 ※2018/5/24 追記: コメントに頂きましたが内部で->名前な関数が生成されているらしいです。 (defrecord Person[name age]) (let [bob (new Person "bob" 25)] (println bob)) (let [bob (->Person "bob" 25)] (println bob)) (let [bob (Person. "bob" 25)] (println bob)) プロパティアクセス プロパティ名の頭に:(mapのアクセス方法)か.(インスタンスメンバーのアクセス方法)でアクセスすることができます。 通常と同様にClorureでは定数しか扱えないため、書き換えが必要ならatomと

    Clojureでオブジェクト指向を行うまとめ - Qiita
  • Clojure でブロックチェーンを実装してみる - Qiita

    Python でブロックチェーンを実装する記事を Qiita 上で発見しました。 ブロックチェーンを作ることで学ぶ 〜ブロックチェーンがどのように動いているのか学ぶ最速の方法は作ってみることだ〜 Swift で実装してみた記事 や Ruby で実装してみた記事があったので、右へ倣えということで Clojure で実装してみたいと思います。 基的には元記事の章立てに合わせて実装していきます。また、引用記法の箇所は、元記事より引用した文となります。 最終的なソースはこちら プロジェクト作成 後半に API としてブロックチェーンを利用するため、プロジェクトは compojure のテンプレートを使い作成しておきます。

    Clojure でブロックチェーンを実装してみる - Qiita
  • Clojureの長めのマクロを読む - Qiita

    動機 Lispといえばマクロというくらい、Lispとマクロは関連が深いです。 なのですが、自分は簡単なマクロなら自分で書けるものの、長いマクロや複雑なマクロをあまり書いたことがありません。 そろそろ次の1歩に進んでもいい頃合いかなと思うのですが、じゃぁどうするというところが思いつきません。 それなら公式の長めのマクロを読むことで色んなヒントを得ればいいじゃない、ということで読もうと思いました。 言語はClojureで、読むマクロはclojure.coreから長いものを適当に選ぶことにします。 長いマクロベスト4 case defmulti fn doseq(for) 定量的に図ったわけではないですが、ほぼ間違いないと思います。おそらく、Clojureに触ったことがある人であれば、大体わかるのではないでしょうか。 コードリーディング ソースコードはGit Hubより引用します。変更される可能

    Clojureの長めのマクロを読む - Qiita
  • LWJGL と OpenCV を Clojure で書いていく - Qiita

    動機 Lisp っぽいSyntaxで OpenGL とか使ってノベルゲームエンジンを作ってみたい JVM 言語で書けば、どこでも動くんじゃないかな? ゆくゆくは OpenCV + OpenAL も使って動画ファイルを再生したい JavaFX...知らない子ですねぇ 出来たこと (OpenCV を Clojure で使うことが出来た)<= まだクロスプラットホームに対応させられていない・・・ LWJGL を、 Java のチュートリアルを変換することで使うことが出来た レポジトリはこちらです 実装方法 注意:ここの実装方法は、OpenCV の項をクリアした上でなければ動きません・ Project.clj ここが一番重要な部分だと思います。僕ではうまく実装することが出来なかったので、[こちら] を参考にさせていただきました。 (おそらく上のページを踏襲してOpenCVも実装すればクロスプラット

    LWJGL と OpenCV を Clojure で書いていく - Qiita
  • 「LISP入門」入門 - Qiita

    LISP List Processor QiitaでURLの記入のみでcodeのない記事はと追記 <この項は書きかけです。順次追記します。> LISP は単純な文法か? https://qiita.com/SaitoAtsushi/items/fc9e210d30ca00cad162 中西先生のM式 https://qiita.com/sym_num/items/341a973aabd25781a123 M言語からS表現への変換器 https://qiita.com/sym_num/items/566e4b13946613767131 LISP x vMotion https://qiita.com/inoko/items/d8cb9e5df07f6064fde3 Lispを始めるきっかけになった情報をまとめる https://qiita.com/aimerald/items/dd9136

    「LISP入門」入門 - Qiita
    hikazoh
    hikazoh 2018/04/06
  • Figwheelで最新のClojureScriptの開発方法を勉強をする - Qiita

    ClojureScriptやそのエコシステムは絶賛開発中のためライブラリの更新がとても盛んに行われています。2015年に出版されている英語の書籍でもすでに情報が古くなっています。最新の情報をネットで調べてもバージョンが違うと内容が異なっているので自分で手を動かして確認する必要があります。FigwheelのQuick Startを例にして最新のClojureScriptの開発方法を勉強していきます。 FigwheelはClojureScritのコードをローカルで編集するとブラウザに自動的にプッシュして最新の状態にしてくれるLeiningenのプラグインです。最近はREPL機能も持つようになってさらに便利になっています。 figwheel templateでプロジェクトの作成 lein newコマンドでfigwheel templateを使いプロジェクトを作成します。 (defproject

    Figwheelで最新のClojureScriptの開発方法を勉強をする - Qiita
  • ClojureScript クイックスタート (1.10.238 Release) - Qiita

    ClojureScript の家サイトにある Quick Start の記事をざっくりとまとめる。 1.10.238 Release 以前の古い記事はこちら (だいぶ、短くなった) 事前準備 macOS or Linux ユーザ Web ブラウザ Clojure のインストール Windows ユーザ Java 8 Standalone ClojureScript JAR の DL Hello, ClojureScript このチュートリアルでは、単純な CloureScript のプロジェクトのコンパイルと実行、および REPL を実行し、インタラクティブにコードを開発、テストする方法について説明する。 まず、以下の構成のプロジェクトを作成する。ディレクトリ構造とアンダースコア(hello_world)は変更しないこと。 hello-world # Our project folder

    ClojureScript クイックスタート (1.10.238 Release) - Qiita
  • Common Lispでゼロから作るディープラーニング (1)行列演算とニューラルネットのフォワード計算 - Qiita

    Common Lispは非常に単純でありながら簡単に拡張可能な構文を持つ高水準言語です。Lispは昔からAIプログラミングに活用されてきましたが、最近では記号処理ベースのAIから機械学習ベースのAIへと世の中の関心が移っており、Pythonなどが主に用いられるようになっています。 とはいえ、Common Lispは機械学習のような科学計算にも向いています(Common Lispが機械学習に向いていると考えるこれだけの理由)。 Common Lispの科学計算に適した特徴としては、例えば以下のようなものが挙げられるでしょう。 最適化されたネイティブコードを吐き出す優秀なコンパイラがOSSにも商用にも存在する 高水準言語でありながら低レベルな世界に降りていって最適化することもできるので、開発効率と実行効率のバランスを取りやすい Cライブラリを簡単に利用できるインターフェースがある この連載では

    Common Lispでゼロから作るディープラーニング (1)行列演算とニューラルネットのフォワード計算 - Qiita
  • Batsを使って手軽にCLIプログラムのテストをする - Qiita

    BatsはCLIで実行するUNIXプログラムのテストをするためのツールです。 Bash Automated Testing SystemでBatsとのこと。 Bats自体がbashで書かれていて、特にbashスクリプトのテストに最適なようですが、出力と終了ステータスをチェックするような単純な作りなので、CLIで動作するプログラムであれば何でもテストできるでしょう。 元々、ruby-buildのテストファイル眺めてたら拡張子が*.batsになってて、「なんだろこれ?」と思って見たら同じ作者のBatsというツールでした。 使ってみたら結構手軽で便利だったので紹介します。 簡単な例 以下の例を見れば大体どんな感じかわかると思います。 bc, dcの演算結果をチェックするためのテストですね。 #!/usr/bin/env bats @test "addition using bc" { resul

    Batsを使って手軽にCLIプログラムのテストをする - Qiita
    hikazoh
    hikazoh 2018/03/26
  • AtCoder に登録したら解くべき精選過去問 10 問を Common Lisp で解いてみた - Qiita

    はじめに もはや何番煎じかわかりませんが、自分も以下のdrkenさんの記事で紹介されている10問の問題をCommon Lispでチャレンジしてみました。 AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~ 標準入出力について 標準入力にはreadとread-lineを使用します。 read (HyperSpec) read-line (HyperSpec) 標準出力にはformatを使用します。 format (HyperSpec) Common Lispのformat関数 以下のWebサイトにわかりやすく記載されています。 逆引き Common Lisp クックブック Common Lisp 入門 いまから始めるCommon Lisp 第1問: ABC 086 A - Product (100 点) ABC 086 A - Product (

    AtCoder に登録したら解くべき精選過去問 10 問を Common Lisp で解いてみた - Qiita
    hikazoh
    hikazoh 2018/03/22
  • 【2018年3月】SICPを始めるためのScheme処理系準備メモ - Qiita

    Rails がメイン言語の会社で SICP 読書会を始めることになったので、参加者の敷居を下げるために Scheme 処理系の準備メモです。1 どの処理系にするか? Scheme にはたくさんの処理系が存在していて2、最初はちょっと迷いました。 が、Web で調べたり、自社で SICP 読書会をやってる @lagenorhynque さんのおすすめもあって、Racket を使うことにしました。 選んだ理由 mac だと homebrew で簡単にインストールできる(弊社のエンジニアmac ユーザが大多数を占めているので) DrRacket という IDE もついてくるので簡単にインタラクティブな開発が体験できそう3 SICP Collection というものが用意されていて、素の Scheme だと大変なところがカバーされているらしい(※ 要出典) インストール 処理系のインストール

    【2018年3月】SICPを始めるためのScheme処理系準備メモ - Qiita
  • TypeScriptでFizzBuzz(generator, destructuringなどして) - Qiita

    TypeScriptでFizzBuzzしてみました。(target:ES2015以上) targetがES5以下だとArray#keys()が空オブジェクトになってrange返してくれないのにちょっとはまりました。 class Fizz { public static spec: Array<[number, string]> = [[15, "FizzBuzz"], [5, "Buzz"], [3, "Fizz"]]; public static *buzz(size: number) { for (const i of Array(size).keys()) { const [_, result] = Fizz.spec.find(([n, s]) => i % n === 0) || [0, i.toString()]; yield result; } } } Array.from(

    TypeScriptでFizzBuzz(generator, destructuringなどして) - Qiita
  • 日本語のSchemeのライブラリ紹介記事まとめ - Qiita

  • 日本語のCommon Lispのライブラリ紹介記事まとめ - Qiita

    ※2014年あたりのまとめをベースにしているので少し古く改訂作業中です clack はじめてのClack - Common LispでWeb開発 - Qiita array-operations array-operations: 配列操作ライブラリ|独学 Common Lisp cl-inotify #:g1: inotifyの紹介 generic-sequences #:g1: generic-sequencesの紹介 Allegro CL Examples and Utilities: English-Word-Stemmer #:g1: Allegro CL Examples and Utilities: English-Word-Stemmerの紹介 Allegro CL Examples and Utilities: Starsim #:g1: Starsimの紹介 Alleg

    日本語のCommon Lispのライブラリ紹介記事まとめ - Qiita
    hikazoh
    hikazoh 2018/03/19
  • ecl の http-request の使い方 (Get) - Qiita

    Common Lisp のひとつである、ecl の http Get のサンプルです。 quicklisp.lisp のインストールが済んでいるものとします。 #! /usr/bin/ecl -shell ; ------------------------------------------------------------------- ; ecl_get.lisp ; ; Mar/02/2018 ; ; ------------------------------------------------------------------- (format t "*** 開始 ***~%") (load "~/quicklisp/setup.lisp") (ql:quickload :drakma) (defvar out_str) (setf out_str (flexi-strea

    ecl の http-request の使い方 (Get) - Qiita
    hikazoh
    hikazoh 2018/03/19
  • Common Lispで小さなプロジェクトを始める

    2018年3月5日, Phil Eaton もし以前にLispについて少し話を聞いたり、学校でSchemeを習ったことがあったとしても、Common Lispは、あなたが想像するものとは全く違います。Schemeは、関数型プログラミングで人気ですが、Common Lispは、理論的に純粋なプログラミング言語というよりも、実世界での利用を強く意識して設計されたプログラミング言語です。さらに、人気がある処理系のSBCLは、高度に最適化されたコンパイラであり、Javaに対抗できるものです。 部品を組み立てる Common Lispのシンボルは、第一級の変数(ラベル)であり、パッケージと呼ばれる名前空間に収められます。しかしパッケージは、ディレクトリを超える範囲は対処しません。ディレクトリを超えてソフトウェアを構成するには、ASDFの「システム」を使います。Common LispのパッケージはPy

    Common Lispで小さなプロジェクトを始める
    hikazoh
    hikazoh 2018/03/15
  • Metabaseをいい感じに修正して大きなBigQueryのクエリに対応させたので、みんなで使おう! - Qiita

    tl;dr とてもいい感じに出来ていると評判のMetabaseですが BigQueryのドライバに少し問題がありました。 修正し、PRを送った所次のバージョン(0.29.0)に取り込んで貰える事になったので どんどんMetabaseを使っていきましょう! 注意 この記事の半分は、Metabaseが日でもっと流行って欲しいという気持ちでできています。 もう半分は上手くいった事を自慢したい気持ちでできています。 改めて偉大な元記事様に感謝します。 https://qiita.com/acro5piano/items/0920550d297651b04387 どんな問題があって何に対応したの? 問題内容 MetabaseはBigQueryにクエリを送る事ができます。 (未検証ですがGUIからリクエストを送ってもクエリ形式になるんじゃないかな?)。 ただ、BigQueryの性質上大きなクエリを送

    Metabaseをいい感じに修正して大きなBigQueryのクエリに対応させたので、みんなで使おう! - Qiita