タグ

ブックマーク / qiita.com (1,258)

  • defineClassする - Qiita

    Javaにおいてバイトコードをクラスローダに強制的に読み込ませるには、以下のようにリフレクションを利用してClassLoader#defineClassを呼びだします。 import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Method; import java.security.ProtectionDomain; public class Main { public static void main(String[] args) throws Exception { ClassLoader loader = new ClassLoader() { }; String className = C.class.

    defineClassする - Qiita
    syuu256
    syuu256 2020/09/16
  • Linuxカーネル、その29年の歴史レポート - Qiita

    Linuxカーネル開発の初期の議論は複数のMLでなされていたので、1997年以前の議論については断片的にしか存在していない。 集められた一部についてはhttp://lkml.iu.edu/hypermail/linux/で公開されているが、これにも抜けがあるので、当時のログを持っている人がいたら提供してほしい。 翻って5.8のMAINTAINERSは19033行もあり、そして1501人のメンテナがリストされている。 THE REST M: Linus Torvalds <torvalds@linux-foundation.org> L: linux-kernel@vger.kernel.org S: Buried alive in reporters Q: http://patchwork.kernel.org/project/LKML/list/ T: git git://git.ker

    Linuxカーネル、その29年の歴史レポート - Qiita
    syuu256
    syuu256 2020/09/16
  • Amazon Rekognitionで顔認証してみた - Qiita

    はじめに re:Invent 2016でRekognitionというAIを活用した画像認識サービスが発表されました。 ということで、今回はこのサービスを使用して顔認証システムを作ってみました。 Rekognitionとは ここから「Try Demo」で試すことができます。 開発する時には、様々な言語をサポートしているので、得意なもので書きましょう。 残念ながら、東京リージョンにはまだありませんのでご注意ください。 できることは大きく分けて以下の4つです。 1.物体とシーンの検出 「この写真には○○が写ってる」や「こんな場面で撮られたんでは」などなどをラベル付けしてくれます。 例えばこんな感じ。 朝っぽい画像をアップロードしてみました。 ちゃんとラベルに「Breakfast」がありますね。 ラベルの隣の数値は信頼度です。「97%朝の画像っぽい」ということを判定してくれているようです。 2

    Amazon Rekognitionで顔認証してみた - Qiita
    syuu256
    syuu256 2020/09/15
  • Amazon Personalizeを導入してわかった12のこと - Qiita

    Auto MLを使わない場合は学習に使うパラメータを手動で設定して良い結果になるように調整する必要があります。 ただ、現状ではAuto MLはHRNNとHRNN-METADATAの2つのレシピしか選択できません。 5. キャンペーンのMinimum provisioned TPSは重要 キャンペーンにMinimum provisioned TPSという設定項目がありますが、これは料金とスピードにかかわる重要な設定です。 TPSはtransaction per secondの略で、Minimum provisioned TPSは1秒間に何回レコメンドを取得できるようにするのかという設定です。 ここに設定した値が1時間あたりの最低料金になります。 1 TPSあたり0.2USDが基料金で、Minimum provisioned TPSを5にすると1時間1USD、10にすると1時間2USDが最低

    Amazon Personalizeを導入してわかった12のこと - Qiita
    syuu256
    syuu256 2020/09/11
  • 旧石器時代のポインタをご利用の皆様へ ~provenance入門~ - Qiita

    現代のプログラミング言語ではポインタは単なるアドレスではなく,provenanceを伴った参照として扱われています. 世界は既に変わっています. 概要 ポインタは単なるアドレスではありません. ポインタにはprovenanceという,どのオブジェクト由来かの情報が含まれています. Provenanceを使うことで,最適化が効きやすくなったり,堅牢なプログラムを書きやすくなったりします. 追記: 次の英語記事を読むとprovenanceが必要な理由についてもっとよく知ることができます.クリックしよう!!!!(2020-12-15) https://www.ralfj.de/blog/2020/12/14/provenance.html ポインタはアドレスではない 次のCプログラムを見てみましょう. #include <stdio.h> #include <string.h> int main

    旧石器時代のポインタをご利用の皆様へ ~provenance入門~ - Qiita
    syuu256
    syuu256 2020/09/07
  • 2020年後半版Vue.jsを使ってる人には必ず知っていてほしいドキュメントに書かれていないComposition APIのコードの書き方とVuex vs provide/inject - Qiita

    2020年後半版Vue.jsを使ってる人には必ず知っていてほしいドキュメントに書かれていないComposition APIのコードの書き方とVuex vs provide/injectJavaScriptVue.jsフロントエンドVuexCompositionAPI まえがき 最近iCAREさんの所で Vue.js を一緒にやらせていただいているのですが、フロントの技術スタックがかなりモダンであり、開発体験が良く、ノウハウをどんどん公開して良いと言っていただけたので、その内容を共有するシリーズです. 今回の記事の内容はiCareさんのDev Meetupで話した内容になります. 最近公式のソースを追った所、 Composition APIapiの紹介はあれども、コードの書き方やその背景、Tips等は全然見当たりませんでした. また、すごく強力なapiである provide/inject

    2020年後半版Vue.jsを使ってる人には必ず知っていてほしいドキュメントに書かれていないComposition APIのコードの書き方とVuex vs provide/inject - Qiita
    syuu256
    syuu256 2020/08/28
  • t-SNE 解説 - Qiita

    Visualizing Data using t-SNE をまとめます。 t-SNE とは SNE (Stochastic Neighbor Embedding) t-SNE (t-Distributed Stochastic Neighbor Embedding) 大規模データへの適用 t-SNE の弱点 t-SNE とは t-SNE は、次元圧縮の手法で、特に可視化に用いることを意図しています。 データの局所的な構造をうまく捉えることができるだけでなく、さまざまなスケールのクラスタなど、大域的な構造も保った可視化ができる点が特徴です。 SNE (Stochastic Neighbor Embedding) 最初に、t-SNE の基となる手法である SNE (Stochastic Neighbor Embedding) を紹介します。 SNE では、元の空間での点同士の近さが、圧縮後の点

    t-SNE 解説 - Qiita
    syuu256
    syuu256 2020/08/19
  • Safariは危険なJavaScriptに対応しない - Qiita

    Firefox / Safari 先日Appleが、Safariは幾つかのWebAPIに対応しないと公言しました。 日語記事も幾つか出ています。 しかし、どのサイトも対応しないAPIの一覧を並べてはいるのですが、それぞれのAPIが具体的にどのようなものなのかを記載した記事が見当たらなかったので、以下はそれらについて調べてみたものです。 対応しない理由 a threat to user privacy、すなわち、あくまでブラウザフィンガープリントなどの手段によって個人を特定・追跡できてしまうからという理由です。 セキュリティ的にも問題なAPIが並んでいるのですが、そちらは理由ではありません。 対応しないWeb API Web Bluetooth caniuse RFC 非公式日語訳 解説 ブラウザからBluetoothを通して接続先のデバイスにアクセスすることができます。 データ転送形式

    Safariは危険なJavaScriptに対応しない - Qiita
    syuu256
    syuu256 2020/08/18
  • ネット麻雀(雀魂)をOpenCVと機械学習で自動化した話 - Qiita

    概要 pythonからOpenCVのテンプレートマッチ及びGUI操作モジュールを使うことで、 webブラウザ上の麻雀牌をBOTに認識・クリック操作させることができ、プレイの自動化ができました。 また、どの麻雀牌をクリックするかのロジック部分には機械学習を用いました。 テンプレートマッチの探索用画像を差し替えれば雀魂に限らず他の麻雀ゲーム全般で利用可能であり、機械学習の部分を変えれば、特定条件下で合理的選択を繰り返し求められるようなゲーム全般で応用が可能です。 ※内容理解の一助とするために記事内随所に雀魂のゲーム内画像を利用していますが、著作権保護等の観点から強いボカシを入れています。 対象読者 (麻雀が好きで)機械学習を触ってみたい人 WindowsGUI操作の自動化に興味があるけどOpenCVって何だろうって人 雀魂は好きだけど試練イベント走るのがマジ試練すぎて心が折れた人 過去に大学

    ネット麻雀(雀魂)をOpenCVと機械学習で自動化した話 - Qiita
    syuu256
    syuu256 2020/08/14
  • 量子コンピュータの性能評価してみた - Qiita

    はじめに はじめまして。某大学の情報系学部で量子計算・量子通信を専攻している、daveと申します。 最近IBMの量子コンピュータ(シミュレータ・実機両方)に投げたjobの数が8000を超えました。 今回はあまり着目されてない、量子コンピュータの性能の話をしたいと思います。 量子コンピュータの計算方式が量子力学に基づいていて、更に素因数分解に代表されるいくつかの問題を古典コンピュータより少ない時間計算量で解けることはご存知の方も多いと思います。 現に、このQiitaでも量子アルゴリズムの解説記事がいくつか載っています。 (自分も量子コンピュータを使った量子トンネル効果のシミュレーションと連立1次方程式のための量子アルゴリズムの記事を書きましたので、良かったらご覧下さい。) しかしこれらは全てあくまで数学・物理・CSの範疇で、性能に代表されるエンジニアリングの側面について触れた記事の存在は確認

    量子コンピュータの性能評価してみた - Qiita
    syuu256
    syuu256 2020/08/13
  • なぜ大学生はプログラミングが上達しないのか - Qiita

    はじめに 最近、情報系の大学でプログラミングの勉強をしたのに、プログラムが書けない人が結構いるというご意見を拝見しました。 実際、私の友人を何人か思い浮かべてみてもほとんどの人が簡単な計算程度のプログラムしか書けないと思います。 しかし、ほとんどの学生がエンジニア志望なのです。 人事の方で、授業でのプログラミング経験などをアピールされて採用したのに蓋を開けてみたら全然プログラムが書けなかった!という方もいらっしゃるのではないでしょうか? なぜ大学生はプログラミングが上達しないのか?私の経験を踏まえて考察していきたいと思います。 ※あくまで私の経験をもとに客観的に分析した結果です。大学の在り方を否定しているわけではありません。 1. 講義時間が少ない 大学の講義は半期に渡り90分 × 15回行われます。 つまり、一つの講義ではトータルで22.5時間しか勉強しないのです。 さらに、基的に授業

    なぜ大学生はプログラミングが上達しないのか - Qiita
    syuu256
    syuu256 2020/08/11
  • Rustで相互参照: ノーガード戦法編 - Qiita

    RustはトレースGCを持たずRAIIと所有権に基づくメモリ管理を行います。これには様々な利点がある一方、相互参照をもつデータの扱いが他のプログラミング言語より難しいという困難があります。記事では、あまり一般的ではないが特定の限られた用途では有用と思われる方法を紹介します。 標準的な方法 まずは相互参照が起きないように設計を再考するのがいいでしょう。特に「子データから親データを参照する」といったユースケースでは、必ずしも子データ自体が親データへの参照を持たなくてもいいことがあります。以下ではこれに当てはまらない例、典型的にはグラフの表現を念頭に置いて記述します。 Rustで相互参照を扱う最も標準的な方法は、typed_arenaなどのアリーナアロケーターと RefCellなどの内部可変性コンテナを組み合わせる方法です。これについては私のブログ記事などを参考にしてください。 またRust

    Rustで相互参照: ノーガード戦法編 - Qiita
    syuu256
    syuu256 2020/08/08
  • 【PHP8.0】非厳密な比較演算子`==`の挙動が今さら変更になる - Qiita

    結果は順にtrue、true、falseです。 これがPHP7までの非厳密な比較(等価)演算子だったわけですが、まあおかしいよねってことで、この挙動がPHP8.0で変更になることになりました。 よもや今さら基中の基である比較演算子の動作を弄ってくるとは思わなかったぞ。 以下はSaner string to number comparisonsの日語訳です。 PHP RFC: Saner string to number comparisons Introduction ==やその他の非厳密な比較演算子を用いた文字列と数値の比較は、現在は、文字列を数値にキャストし、その後整数か浮動小数の比較を行っています。 この結果、多数の不可解な結果が得られますが、中でも注目すべきは0 == "foobar"がtrueになることです。 このRFCでは、文字列が実際に数値型文字列である場合にのみ数値型

    【PHP8.0】非厳密な比較演算子`==`の挙動が今さら変更になる - Qiita
    syuu256
    syuu256 2020/08/03
  • JavaScriptからletを絶滅させ、constのみにするためのレシピ集 - Qiita

    はじめに 記事では、constこそが唯一神であることを証明したあと、letを使いがちな場面でいかにしてconstを使うかをまとめていきます。なお、ES2018までの基構文(reduce, async/await, 配列とオブジェクトのスプレッド構文)を使用します。「いや、reduceとかスプレッド構文とか難しいからlet使うわ」という方のために、便利メソッド詰め合わせであるLodashを使った例もご紹介します。もちろん、Lodashは機能に対してサイズが大きいライブラリであるため、フロントエンド開発でバンドルサイズを軽減したいという方などはLodashの例は無視し、Lodashを使っていない方の例をご参照いただければと思います。 追記:Lodashの使用について 「Lodashのコードにlet使われてるやん」というご指摘を多く頂いたので追記いたします。 誤解を招くタイトルにしてしまい申

    JavaScriptからletを絶滅させ、constのみにするためのレシピ集 - Qiita
    syuu256
    syuu256 2020/08/03
  • 糞コードは直すな。 - Qiita

    とりあえず落ち着け。 みなさん、毎日なにかしらのコードを読み、開発する日々を送っていると思います。そんな中で、 糞コードは死ぬべきである!!絶対に直すべき!! という感情に取りつかれてしまうことがあると思います。自分の技術力に自信のある人ほど、無理やりにでも直そうと試みると思います。それがどんな修羅の道か。そして、糞コード修正がどんな道を歩むのか。この記事では糞コード修正の罠とありがちなストーリーについて書きたいと思います。 ビジネスとしてのプログラムは質的に糞である 例えば、「携帯電話の利用料金」のプログラムがあります。 「携帯電話 透明性高め料金値下げを」という記事もあるように世の中の携帯電話の料金プランはかなり複雑です。例えば、auだと「auでんき」といった電気料金とパックされた電話料金プランがあります。また、「auスマートバリュー」といったプランもあり、家のインターネット回線をa

    糞コードは直すな。 - Qiita
    syuu256
    syuu256 2020/08/03
  • (たぶん)君はまだtmuxの真の力を引き出せていない - Qiita

    目次 tmuxとは 起動して新規セッションを作成する windowを作成する window間を行き来する windowを分割してpaneを作成する paneを行き来する セッション間を行き来する 【応用】tmuxの表示内容をリダイレクトする 【応用】情報バーにgitのbranch名を表示する 【応用】現在の操作パスを表示する 【応用】スニペットを呼び出す 以上の設定の .tmux.conf はこちら tmuxはバージョン互換性がかなり微妙 YouTubeでも公開したのでチャンネル登録してくれると嬉しいです tmuxとは tmuxとはターミナルマルチプレクサと言われるもので、sshで作業マシンにログインして操作した際や、重いプログラムを実行するなどして帰りたいが終了せずに作業を継続したい際などが、最も簡単なユースケースです。 これだけにとどまらず、tmuxterminalを複雑に装飾できる

    (たぶん)君はまだtmuxの真の力を引き出せていない - Qiita
    syuu256
    syuu256 2020/08/02
  • C++erのためのRust入門(未完) - Qiita

    新しい言語を勉強したかったので、Rustを始めてみる。 Rustを選んだ理由 候補言語としては、D, Go, Rustがあった。 そのうちでRustを選んだのは次のような理由からだった。 演算子オーバーロードが使いたかった Goには演算子オーバーロードがない ジェネリクス(テンプレート?)が欲しかった Goにはジェネリクスがないらしい ガーベッジコレクタ(GC)が気に入らない GoもDもGCをオフにすることはできるらしいが、たぶん普通のことではないだろう 念の為に言っておくと、GoとDには何の非もない。 私が大きな変化についていけないだけのことである。 Rustのリリースの種類 Nightly masterブランチの日ごとの最終成功ビルド、新機能が追加される。 Beta 6週ごとにNightlyから昇格、Stableに向けてバグフィックスが行われる。 Stable 6週経ったBetaが昇格

    C++erのためのRust入門(未完) - Qiita
    syuu256
    syuu256 2020/07/27
  • 2億資金調達してから二年、結構量子コンピュータ頑張った結果 - Qiita

    はじめに 2008年に起業してからコツコツやっていましたが、2014年くらいから量子コンピュータの研究開発をがんばりました。資金調達もしてある程度技術に目処がついたのと、若者から起業したいという相談をよくもらうので、まとめておきます。 経営は大事 簡単にいうとベンチャーをやろうとしたら技術よりもキャッシュが大事です。なので、財務や経営感覚がついてから技術をつけないと結構大変と思います。特に1年目は慣れない事務に忙殺されますし、二年目以降はキャッシュが厳しくなります。 あとは、最初は経営に夢見て舞い上がりがちなので、その気持ちがおさまって厳しさが一通り身についたところからが番です。 調達の前に譲渡 2008年から10年くらいはコツコツ会社をやっていた上、そんなに頑張るタイプでもなかったのですが、たまたま2014年からやっていた量子コンピュータのニュースが巷で新聞に載るようになってから、周辺

    2億資金調達してから二年、結構量子コンピュータ頑張った結果 - Qiita
    syuu256
    syuu256 2020/07/27
  • マイクロサービスでの認証認可 - Qiita

    複数のクラウドサービスを利用している(マルチクラウド)など、単純には閉域網を構築できない環境でマイクロサービスアーキテクチャを採用する場合には、サービス間の認証認可が必要となる。この場合のサービス間の認証認可方式を決める参考となる、OSSやSaaS、Webサービスで採用方式ついて整理した。 Istio サービスメッシュの実装として有名なIstioではサービス間通信を以下のように制御できる。 Istioの認証認可では認証主体がService Identityというモデルで抽象化され、KubernatesやIstioで定義するService Accountに加えて、GCP/AWSのIAMアカウントやオンプレミスの既存IDなどをService Identityとして扱うことができる。 サービス間の認証 (Peer Authentication) は、各サービス (Pod) に設置するSideca

    マイクロサービスでの認証認可 - Qiita
    syuu256
    syuu256 2020/07/24
  • Rustで動的ロードによるプラグインシステムを作る - Qiita

    はじめに この記事はRustその3 Advent Calendar 2019 23日目です。(空いていたので飛び入り参加で) Rustでプラグインシステムを実装する必要があったので、その時の知見をまとめてサンプルプロジェクトを作ってみました。 ここで言うプラグインシステムとは、例えばGIMPのプラグインのように、バイナリ形式のプラグインを実行時に読み込んで機能追加するものを指します。最近この手の拡張はスクリプト言語でやることが多く、この形式はあまり見かけなくなりました。しかしRustで実装したいならバイナリの動的ロードをするしかないだろう、ということでやってみました。 注意 以下のコードは手元の環境のRust1.40.0では動作していますが、Rustコンパイラが保証していない仮定をいくつか置いているので、動く保証はありません。不具合が致命的になるような環境では使わない方がいいと思います。

    Rustで動的ロードによるプラグインシステムを作る - Qiita
    syuu256
    syuu256 2020/07/22