タグ

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

  • Rustの便利クレート - Qiita

    RustにはCargoという優れたパッケージマネージャーがあるので細かい多数の依存パッケージが問題になることはあまりありません。というより同一のアプリケーションでもパッケージを細かく分割することが推奨されています。ちょっとしたボイラープレートを取り除くような小さなライブラリも大量にあります。これらは積極的に使うべきです。 問題があるとすれば悪意のあるようなパッケージの存在ですが、これらに対処するcargo-auditやcargo-crevというツールもあります。 Rustの依存関係の信頼性を検証する (crev) - Qiita cargo crev でコードレビューをしてみたらバグを見付けた話など - 何とは言わない天然水飲みたさ 記事では 誰かがTwitterやブログで紹介するか誰かが使っているのを見る、あるいは何かのtrendingに載っているのを見るなどしない限り出会わない 日

    Rustの便利クレート - Qiita
  • 現代の僕「コンピュータが生まれた歴史知りたい」 - Qiita

    TL;DR コンピュータの歴史も何も知らなかった私が、「ありがとう、先人たちよ」と言えるぐらいまでコンピュータの歴史を調べたので共有したいと思います。 最初の動機 「コンピュータってどうやって動いてるんだろう」 あなたは、この疑問に自信を持って答えられますか? そして、仮にコンピュータを知らない人類がいたとして、「コンピュータとは何か」を説明できますか? 私はできませんでした。 もちろん、コンピュータを使うことはできます。 こうして、キーボードをカタカタを打つと、見慣れた文字となってディスプレイに映すことが出来ます。 しかし、「使えること」と、「それが動く原理を説明すること」 は途方もなく大きな壁で隔てられています。 この記事では、コンピュータが動く原理を、その歴史をたどることで探っていきます。 コンピュータの歴史をまとめつつ、 「コンピュータってどうやって動くの?」 に答えられるようなも

    現代の僕「コンピュータが生まれた歴史知りたい」 - Qiita
  • githubで最もやべー関数を発掘する - Qiita

    はじめに 先日、職場で「自分が 改修したor 書いちゃった いちばんやべー関数」ネタで盛り上がりました。 みんないろいろ話してくれましたが、やっぱり僕の書いた「コマンドパターンのメインループ関数(1500行)」の圧勝でした。 なんであんなコード書いたんだろ。 そこで、今日は僕の傷ついたプライド癒すべくgithubから「世界でいちばんやべー関数」を発掘します。 つまり、「俺が書いた関数よりやべー関数に会いに行く」 結論 マジでやべー関数は次の2つ 「opencvリポジトリのcv::agast_cornerScore<AgastFeatureDetector::AGAST_7_12s>関数」(複雑度1868) 「SuiteCRMリポジトリのOpenTag関数」(複雑度1509) 言語毎の傾向に着目すると... javascriptにはやべー関数が多い python/java/swift/rub

    githubで最もやべー関数を発掘する - Qiita
  • Elixir版?②「プログラミングHaskell第2版」 - Qiita

    fukuoka.ex/kokura.exのpiacereです ご覧いただいて、ありがとうございます 前回に引き続き、「プログラミングHaskell 第2版」の第2章を、Elixirで解釈しつつ、HaskellやElixirのTIPSを追記してみようと思います(コラムの目次は、書籍の目次を流用しています) 今回は、HaskellやElixirに共通する大きな特徴である「リスト操作」の比較がメインになります 内容が、面白かったり、役に立ったら、「いいね」よろしくお願いします お知らせ:11/10(日)、ElixitとHaskellの登壇します 「関数型プログラミングカンファレンス2019 in Japan」で、コラムシリーズ+αの内容で、35分の登壇をします Haskellの神様、Edward Kmettさんや、GHC開発者のSimon Peyton Jones(SPJ)さん、Rustの有

    Elixir版?②「プログラミングHaskell第2版」 - Qiita
  • ngrokよりserveoがすごい。0秒で localhostを固定URLで公開 - Qiita

    注意 serveoがサービス停止中です。 みんな大好きcloud functionには欠点があります。 それは、実際にコードをデプロイしないと、httpsで公開できないこと。 そのため、slackのコマンドを作ったり、ラズベリーパイとかを開発するのに不便だったりします。 以前私はngrokというcliアプリを使っていました。 とても使いやすく、ユーザー登録+ngrokのインストール+セットアップだけで使い始めることができます。 お金を払えば固定URLもゲットできます。 しかし、今回もっと良いものを見つけたので紹介します。 serveoです。 なんとこのserveoインストールもセットアップも不要です。 ターミナルで、以下のように ssh -R 80:localhost:3000 serveo.net と打つだけで自分のPClocalhost:3000を、固定URLでhttpsとして公開し

    ngrokよりserveoがすごい。0秒で localhostを固定URLで公開 - Qiita
  • Python 3.8 では空dictが小さくなる - Qiita

    Python 3.7 では {} で作った空 dict よりも、 dict.clear() で作った空 dict の方が省メモリでした。 >>> import sys >>> d = {} >>> sys.getsizeof(d) 240 >>> d.clear() >>> sys.getsizeof(d) 72 これは dict オブジェクトを新規作成するときに最小サイズのハッシュテーブルを確保し初期化するのに対して、 dict.clear() は shared key dict の仕組みを使って空 dict 専用の共有テーブル(書き込み禁止)を利用しているからです。 空の dict の数は無視できないくらいにはあるので、Python 3.8 で新規に dict オブジェクトを作るときも dict.clear() の結果と同じ共有領域を使うようにしました。 なお Python 3.7 の

    Python 3.8 では空dictが小さくなる - Qiita
  • yumリポジトリ一追加リスト 完全版 - Qiita

    yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm yum install http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

    yumリポジトリ一追加リスト 完全版 - Qiita
  • 高速コレクション操作ライブラリ「Koazee」 - Qiita

    この記事はGo2 Advent Calendar 2018の17日目の記事です。 コレクション操作ライブラリ Koazee 12月はじめのこと、go-nutsに「速いコレクション操作ライブラリを作ったぜ」という投稿がありました。 [go-nuts] Koazee vs Go-Linq vs Go-Funk 彼のベンチマークによると類似のライブラリに比べてかなり速いという結果が示されています。ここでは彼が作ったコレクション操作ライブラリ Koazee を紹介しつつ、高速化の一端に触れてみます。 github.com/wesovilabs/koazee Lazy like a koala, smart like a chimpanzee (原文ママ) Koazeeの特徴は イミュータブル ストリームスタイル 遅延ローディング ジェネリックス 速い! とのことでここでは「ジェネリックス」と「速い

    高速コレクション操作ライブラリ「Koazee」 - Qiita
  • Kubernetes クラスタの外からのアクセスに ClusterIP をロードバランサとして使う - Qiita

    はじめに Kubernetes を触り始めて困惑したのは、クラスタの外からどうやってアクセスするのか?ということでした。 GKE なら提供されているロードバランサを使えば良いですが、GKE に頼れない環境でも良い方法が欲しいものです。 ClusterIP はクラスタ内部からアクセスする際に使用するもので、外部からアクセスすることは意図されていませんが、 これをそのまま利用できればとても楽ができそうです。 ClusterIP へのアクセスは複数の Pod に対して振り分けられるので、Ingress や Service Load Balancer が無くてもクラスタの外に対してロードバランサを提供することができます。 調べたところ Project Calico と kube-proxy を利用するとクラスタの外から ClusterIP にアクセスできたので、やり方をまとめておきます。 テスト環

    Kubernetes クラスタの外からのアクセスに ClusterIP をロードバランサとして使う - Qiita
  • Kubernetesのexternal-dnsでRoute53 RecordSetを自動作成する - Qiita

    external-dnsとは kubernetes-incubator/external-dns Configure external DNS servers (AWS Route53, Google CloudDNS and others) for Kubernetes Ingresses and Services externa-dnsKubernetes Incubatorプロジェクトの一つで、KubernetesユーザがクラウドプロバイダのWebコンソールやCLIを使わずとも簡単にDNSレコードを作成・更新してサービスを公開するために利用します。 AWSの場合、AWSコンソールやawscliを使わずともkubectlだけで簡単にRoute53でサービスを公開することができます。 external-dnsの仕組み Kubernetesユーザが何かサービスをデプロイするとき、Depl

    Kubernetesのexternal-dnsでRoute53 RecordSetを自動作成する - Qiita
  • 畳み込みニューラルネットワークすごさを従来の機械学習のアルゴリズムと比較する - Qiita

    畳み込みニューラルネットワーク(CNN)が画像判別でよく使われるというのは知っていても、従来の機械学習アルゴリズムと比較してどれぐらいすごいものなのかというのがいまいちピンとこなかったので確認してみました。だいぶ長いよ! 概要 機械学習のアルゴリズムとして、ディープラーニングが出る前は例えばロジスティック回帰、サポートベクトルマシン、ランダムフォレストなどがありました。従来の手法というと漠然としますが、Scikit-learnでできるアルゴリズムと考えてよいです。これらの手法は現在でも有効で、これらのどれを使っても、手書き数字(MNIST)に対して最低でも8割、ちゃんと実装すれば9割の精度は出ます。Scikit-learnはとても使いやすいライブラリで、学習効率・実装効率ともによく、計算が比較的簡単なので高速です。逆にその段階で9割近く出ちゃうと、「学習が大変で処理も遅いディープラーニング

    畳み込みニューラルネットワークすごさを従来の機械学習のアルゴリズムと比較する - Qiita
  • Ruby に型が欲しい理由 - Qiita

    Help us understand the problem. What is going on with this article? 2018/07/05 追記 JavaScript と漸進的型付について詳しい mizchi さんが記事を書いたので、併せて読むと良さそうです。 漸進的型付け言語の時代に必要なもの 前置き RubyKaigi2018 の発表で型の導入の検討についての話がいくつかあったものの、 Matz 自身は型アノテーションに否定的であるという発言をしているとのことを受けて、自分の意見の表明として書いている。 筆者は Ruby に育てられて Ruby は好きであるが、業務経験は主に JavaScript(TypeScript) や Python(Type Hinting) が多く、漸進的型付けによるコードの健全化を経験した上で、型付きの方が好きであるという立場である。 なお

    Ruby に型が欲しい理由 - Qiita
    ikeikeikeike
    ikeikeikeike 2018/06/04
    Go, Typescriptは割とユルフワな型なんで。 Rubyの人から見ると丁度良いと感じるのは理解できるか
  • コンパイルエラーやランタイムエラーを直していくだけでiOSアプリの作り方がわかるプロジェクト - Qiita

    を作りました。 takasek/MokuMokuNotes_iOS: Quest based learning tool for writing a basic iOS app https://github.com/takasek/MokuMokuNotes_iOS モチベーション 元々、 Androidエンジニアの@callipanが、私のAndroid入門のためにわざわざ コンパイルエラーやランタイムエラーを直していくだけでAndroidアプリの作り方がわかるプロジェクト を用意してくれたんですが、それがとても楽しかったのでiOS版を作りました。 (2018/5/12追記) インスパイヤ元であるAndroid版も、パワーアップして公開されました! panpanini/MokuMokuNotes_Android: Quest based learning tool for writing

    コンパイルエラーやランタイムエラーを直していくだけでiOSアプリの作り方がわかるプロジェクト - Qiita
  • ユーザのブラウザで起きた JavaScript のエラーを収集する - Qiita

    なぜエラーを収集するのか バグ探し バグを見つけて潰していくため ユーザからのバグ報告の補助 ユーザに報告の負担をかけないため エラーを取得する 取得タイミング window.onerror Promise のエラー フレームワーク毎の特定のタイミング window.onerror window.onerror にメソッドを登録しておくことでエラー発生時にそのメソッドが呼ばれる。try-catch でハンドリングしていないエラーが流れてくる。

    ユーザのブラウザで起きた JavaScript のエラーを収集する - Qiita
  • Google Homeを使って4歳児とSlackで会話する方法 - Qiita

    わたあめに捧ぐ(私信) 私の家では、家族の連絡にSlackを利用しています。 Slackはとても便利なのですが、基的にテキストベースのコミュニケーションとなるため、 文字入力ができない幼児には使うことができません。 そこで、Google Homeを活用して、文字入力をせずにSlackで会話するシステムを構築してみました。 イメージは以下のとおりです。 このシステムは、大まかに以下の2つで構成されています。 Slackへの投稿をGoogle Homeがしゃべってくれる仕組み Google Homeに話しかけるとSlackに投稿してくれる仕組み 順を追って説明していきます。 1. Slackへの投稿をGoogle Homeで喋らせるBotの作成 以下のソフトウェアを書きました。 https://github.com/ikasamah/go-slack-google-home Google H

    Google Homeを使って4歳児とSlackで会話する方法 - Qiita
    ikeikeikeike
    ikeikeikeike 2018/02/15
    あの時の三回繰り返す、点呼をなぜか思い出した
  • Kotlin + Architecture Component + Dagger2によるAndroidアプリ設計 - Qiita

    はじめに Google I/O 2017でKotlinAndroidアプリ開発における公式言語としてサポートされることになりました。 また、同時にAndroid Architecture ComponentsがAndroidのライフサイクルにおける画面回転などへの対応を容易にするライブラリとして追加され、このライブラリを用いたAndroidアプリ開発におけるおすすめの設計が提案されています。 以下のGoogleのSampleリポジトリにはその設計指針を用いたサンプルが公開されています。 記事では上記のリポジトリを参考にしながら、KotlinとArchitecture Components、そしてDagger2を用いた設計を備忘録的にまとめました。 また、現在進行系で開発しているので、何か間違っている点やご意見等あればぜひ、コメントやTwitterなどでお願いします。 Sample 記事

    Kotlin + Architecture Component + Dagger2によるAndroidアプリ設計 - Qiita
  • SwiftでReactive Programming - Qiita

    はじめに ここ数年で注目を集めて続けているReactive Programmingですが、Swiftにもライブラリとして提供されていたり、実際にサービスにも多く導入されていることから、Reactiveのことからライブラリまで調べてみました。今回はじめてReactiveに入門したので何か指摘点等あれば気軽にコメント頂けると幸いです。 概念から学ぶ まずは、Reactiveの概念中心の内容になります。 Reactiveとは Reactive Application Reactive Programming Functional Reactive Programming RxSwift Reactive Extensions RxCocoa 初めにサンプルコードから学ぶを軽く見た方がイメージが湧きやすいかもしれないです。 Reactiveとは Reactiveというキーワードは特にエンジニアなら

    SwiftでReactive Programming - Qiita
  • iOS開発でClean Architectureを採用した際のイイ感じのディレクトリ構成とは - Qiita

    Clean Architectureを採用しているとファイル数が膨大になってしまうため、イイ感じにグルーピングして管理したいですが、レイヤ単位で分けるか画面とそれ以外で分けるか悩むと思います。(悩みました🙋) 2,3の構成を試し、その中で一番イイ感じに運用できた構成を紹介します。 その前によく見られているであろうリポジトリ※ のディレクトリ構成をパターン分けしてみました。 ※「ios clean architecture」でググった際の結果とGitHub検索で出た上位結果 ディレクトリ構成のパターン 上記でさらっと挙げたように大きく2つのパターンがあると思います。 「レイヤ単位で分けているパターン」と「画面とその他で分けているパターン」です。 ここでは参考に上記の2つのパターンに分けて構成をまとめます。 以下では基的にフォルダ名のみ記載します。 フォルダ名のみだと把握しにくいと判断した

    iOS開発でClean Architectureを採用した際のイイ感じのディレクトリ構成とは - Qiita
  • IT関連技術を効率的に検索する - Qiita

    プログラミングやIT関連技術に関する情報を、以下のようなものを組み合わせて効率よく検索する検索方法を紹介します。 Stack Overflow Slideshare 画像検索 Githubのawesomeレポジトリ Github 背景 近年のOSSを積極的に活用した開発では、常に新しい技術や概念が登場します。全てを取り入れることはありませんが、顧客や社内の色々な事情により、こういった技術を調査して必要に応じて取り込んでいくことが以前よりも多くなっていると思います。このため開発者は以下のような状況に置かれることが多くなりました。 同じプログラミング言語、ライブラリを使い続けることができない 分かりやすい書籍、研修が存在しない 取り組むべき技術について詳しい人が回りにいない しかしこのような状況に陥ったとしても、新しく取り組む技術について素早く把握する必要がありますし、開発においても慣れいない

    IT関連技術を効率的に検索する - Qiita
    ikeikeikeike
    ikeikeikeike 2017/10/02
    英語で検索すれば1発なんだけどな、、、
  • 最新のNGINXはアプリケーションサーバー!?NGINX UnitのベンチマークをPHP,Python,Goで計測してみた!! - Qiita

    最新のNGINXはアプリケーションサーバー!?NGINX UnitのベンチマークをPHP,Python,Goで計測してみた!!PythonPHPGonginxnginx-unit NGINXって?? 簡単にNGINXの特徴について説明します. イベント駆動のWebサーバー 静的コンテンツの配信が得意 リバースプロキシとして使われることも多い 全アクティブサイトの中で2番目に多く使われている(19.60%) 参考:wikipedia nginx 以前(といってもだいぶ前ですが)はApacheが一強のサーバー業界でした.私もあんまり詳しくないですが,サーバーが安くなる中,C10K問題というものが業界で話題になり,Apacheが採用していたpre-Fork型のアーキテクチャのサーバーでは大量のリクエストが処理できなくなってきました.その中で,イベント駆動型のアーキテクチャのNGINXが大量のリク

    最新のNGINXはアプリケーションサーバー!?NGINX UnitのベンチマークをPHP,Python,Goで計測してみた!! - Qiita
    ikeikeikeike
    ikeikeikeike 2017/09/19
    このコードでのベンチマーク評価は勘弁してほしい