タグ

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

  • 閲覧者のユーザーエージェントを三角関数で判定できるか? - Qiita

    概要 先日ふと自分のPCのフィンガープリントを取ってみたところ「IPアドレス」など様々な項目が並ぶ中に「Math.tan」という変な項目を見つけました。 「なぜ三角関数が出てくるの?」と気になって調べてみたところ、**三角関数の値はブラウザやOSの実装により微妙に異なることがあり、特定の式をブラウザに計算させることで利用者を識別する手段になり得る1**という話でした。 面白そうだなと思ったので、記事ではその手法で実際どの程度までブラウザ/OSを判別できるのか調査してみました。 検証方法 今回は様々な文献12の情報を参考に、以下の式を各OSの各ブラウザに計算させました。 tan(-1e300) cosh(10)(厳密には三角関数の類似ですが) これら以外も10数種類ほど試したのですが、判別に使えたのはこの2つのみでした。 試したOSとバージョン macOS Catalina (ver.10

    閲覧者のユーザーエージェントを三角関数で判定できるか? - Qiita
    gigi-net
    gigi-net 2021/02/16
    おもしろい
  • fatalErrorから復帰させる不思議なSwiftライブラリFortifyを読み解く - Qiita

    参考: Swiftのエラー4分類が素晴らしすぎるのでみんなに知ってほしい - Qiita しかし先日TwitterでFortifyというライブラリを見かけて、Swiftを使い始めて以来最大の衝撃を受けました。Fortifyはたった150行の1つのSwiftファイルからなるシンプルなライブラリですが、なんとUniversal error, Logic failureから復帰する機能を提供しているのです! // FortifyのREADMEより import Fortify do { try Fortify.exec { var a: String! a = a! // 普通はここで落ちるはず } } catch { // が、catchできるErrorに変換されてここで拾える NSLog("Unwrap error: \(error)") } この記事ではFortifyがいかにしてこの挙動を

    fatalErrorから復帰させる不思議なSwiftライブラリFortifyを読み解く - Qiita
    gigi-net
    gigi-net 2018/11/13
    めっちゃよい
  • SFC版風来のシレンの乱数生成アルゴリズムの話 考察編 - Qiita

    この記事は続編です。 前回の記事で、SFC版風来のシレンのROMデータの解析内容を元に乱数がどのようにして生成されているかを解説しています。そちらを読んでからこの記事を読んでいただくと、より内容を理解しやすいかと思います。 前回の記事:SFC版風来のシレンの乱数生成アルゴリズムの話 解析編 SFC版風来のシレンの乱数の品質を調べる さて前回の記事でSFC版風来のシレンの乱数生成アルゴリズムが線形帰還シフトレジスタの一種であることが分かりました。 しかし乱数生成アルゴリズムは理解したものの、それによって生成された乱数が妥当な物なのかというのはアルゴリズムを見ただけでは分かりません。 シレンの乱数は偏りやすいと断言できるような目に見えて質が悪いものなのでしょうか。 この項でそれを考察してみたいと思います。 先にお断りしておきますが、気で定量的・客観的に乱数の品質を検証しようと思うと格的な統

    SFC版風来のシレンの乱数生成アルゴリズムの話 考察編 - Qiita
    gigi-net
    gigi-net 2017/12/02
    最高の記事
  • zsh の起動を500%高速化した話 - Qiita

    高速化の敵 外部スクリプトロード (最も遅い) zsh 関数定義 zsh スクリプト実行 高速化の味方 分離された実行可能ファイル autoload による遅延ロード 複数 zsh ファイルの統合 実践したテクニック集 tmux の起動を高速化 tmux を起動するのに zsh プラグインは不要。

    zsh の起動を500%高速化した話 - Qiita
    gigi-net
    gigi-net 2017/11/02
    この記事めっちゃ役だった。shellのメンテあんまりしないからまとまってて助かる
  • Swift 4の新しいreduceが素晴らしいので紹介する - Qiita

    この新しい reduce は、これまでの reduce の抱えていた問題を鮮やかに解決してくれるものなので、その素晴らしさについて説明します。 これまでのreduceの問題点 reduce を使って Array を生成する場合を考えてみます。たとえば、 [2, 3, 5] という Array があったときに [2, 2+3, 2+3+5] のように、その要素とそれまでの要素の合計値を格納した Array を作りたいとします[^1]。 そのような処理は reduce を使って↓のように書けます。

    Swift 4の新しいreduceが素晴らしいので紹介する - Qiita
  • マサカリの起源について - Qiita

    はじめに 技術的な指摘をすることを「マサカリを投げる」と呼ぶ。ネットスラングにありがちだが、この言葉の意味は常に変動しており、地域、人によっても定義が異なる。現在では、何か自分で詰めが甘いことを書く時に「修正、批判コメント歓迎」の意味で「マサカリをお願いします」と言ったり、誰かが適当なことを書いてコメントやブコメで炎上している時に「さっそくマサカリ投げられてて草」というような使われ方をしているようだ。 この「マサカリ」という言葉がいつ、どのような形で使われるようになったのか、できる範囲で調べてみた。 2006年以前 僕は1990年代の後半から2000年の前半にかけて、Niftyのフォーラムや、いくつかの技術系メーリングリストに登録していたが、当時この意味での「マサカリ」という言葉を目にした覚えがない。とりあえず当時所属していて、現在過去ログが見られるDelphiやBCB-MLの過去ログで検

    マサカリの起源について - Qiita
    gigi-net
    gigi-net 2017/03/23
    cluebat->マサカリの名訳感
  • ディープラーニングでアスキーアートを作る - Qiita

    はじめまして。 業はアスキーアート (以下AA) 職人のOsciiArtといいます (業ではない)。 AlphaGo対イ・セドルの対局を見て、「僕もディープラーニングで神AA職人を倒したい!」と思い、pythonをインストールしてちょうど一年の成果を書いていきます。 コードはこちらにアップしてあります。 https://github.com/OsciiArt/DeepAA ここで扱うアスキーアートとは ここで扱うAAとは、 こういうの……↓ ではなく、こういうの……↓ でもなく、こういうの……↓ ともちょっと違って、こういうの……↓ ではもちろんなく、こういうのです。↓ このような、線画を文字を作って再現した「トレースAA」と呼ばれるタイプのAAをここでは扱います。 詳細はwikipediaの「アスキーアート」のページの「プロポーショナルフォント」の項を参照してください。 wikipe

    ディープラーニングでアスキーアートを作る - Qiita
  • 2017年におけるObjective-Cコミュニティの動向 - Qiita

    try! Swift Tokyo 2017 Aftershow にてObjective-Cコミュニティの話をしてきたので記事に起しました。 Agenda Swiftコミュニティではあまり話題にならないObjective-Cライブラリの紹介 なぜObjective-Cなのか 今後どうなるのか Pinterest's Implementation PINCache : non-deadlocking parallel object cache https://github.com/pinterest/PINCache PINOperation (NSOperationQueue) https://github.com/pinterest/PINOperation PINRemoteImage : feature rich image fetcher https://github.com/pin

    2017年におけるObjective-Cコミュニティの動向 - Qiita
  • GLSL作曲講座 - Qiita

    今回使うツール DemoEditor https://github.com/notargs/DemoEditor 作りました ホットリロード機能付きGLSLEditor 動的に音楽/映像をGLSLで編集できる ビルドにpremake5が必要 好きなエディタでshaders直下のファイルを弄る(自分はVisual Studio Codeを使用) 今回のサンプルも入ってます シェーダーで曲を作る 4kb introなどで有効な手法 プロシージャルなので当然mp3よりは圧倒的に軽い Math用の標準ライブラリをincludeする必要が無くなるため、その分ちょっと軽くできる 頑張って曲を作りました サンプルを流す わかったこと DAW使って普通に作曲したほうが圧倒的にラク 手探りでやってる部分が多いのでまだまだ改善できそう 音を鳴らす - 空気の振動が耳に伝わって音が聞こえる - スピーカーが振動

    GLSL作曲講座 - Qiita
    gigi-net
    gigi-net 2017/02/19
    できそうな気がしてきた
  • すごーい! きみはプログラミング言語を実装できるフレンズなんだね - Qiita

    ジャパリパークのみんなー! フレンズのためのプログラミング言語ができたよー! サンプルコード Socrates すごーい! かばんちゃん は ヒトの フレンズ なんだね! すごーい! あなた が ヒトの フレンズ なら あなた は しっぽのない フレンズ なんだね! だれ が しっぽのない フレンズ なんだっけ? すごーい! 0 は 自然数の フレンズ なんだね! すごーい! きみ が 自然数の フレンズ なら きみ の 次 も 自然数の フレンズ なんだね! すごーい! 0 は 3の倍数の フレンズ なんだね! すごーい! きみ が 3の倍数の フレンズ なら きみ の 次 の 次 の 次 も 3の倍数の フレンズ なんだね! すごーい! 0 は 5の倍数の フレンズ なんだね! すごーい! きみ が 5の倍数の フレンズ なら きみ の 次 の 次 の 次 の 次 の 次 も 5の倍数

    すごーい! きみはプログラミング言語を実装できるフレンズなんだね - Qiita
    gigi-net
    gigi-net 2017/02/13
    もうbrainfu*kはいいよって思ったら論理型言語だった
  • 例の機械学習コースが良いらしいと知りながらも2年間スルーし続けたがやはり良かったという話 - Qiita

    先日、オンライン学習サイトCourseraの"Machine Learning"コースを修了しました。これが最高に勉強になったわけですが、機械学習に興味があって情報収集を始めてる人にとって、「Courseraの機械学習コースがおすすめですよ」という話は 「はい、知ってます」 という感じではないでしょうか。 (たとえば、Qiitaで検索してみると、以下のような同コースに関連する超人気記事が出てきます) 数学を避けてきた社会人プログラマが機械学習の勉強を始める際の最短経路 - Qiita 機械学習をゼロから1ヵ月間勉強し続けた結果 - Qiita 僕もそんな感じで、幾度となく人や記事に同コースを薦められたりしつつ、たぶん2年ぐらいスルーし続けてきたと思います。 しかし約2ヶ月前、ひょんなきっかけから講座を始めてみて、やはり評判通り最高だったと思うと同時に、僕と同じような感じでこのコースが良い

    例の機械学習コースが良いらしいと知りながらも2年間スルーし続けたがやはり良かったという話 - Qiita
    gigi-net
    gigi-net 2017/02/11
    めっちゃ共感できる
  • 初心者がchainerで線画着色してみた。わりとできた。

    デープラーニングはコモディティ化していてハンダ付けの方が付加価値高いといわれるピ-FNで主に工作担当のtai2anです。 NHKで全国放送されたAmazon Picking Challengeでガムテべったべたのハンドやロボコン感満載の滑り台とかを工作してました。 とはいえ、やっぱりちょっとディープラーニングしてみたいので1,2か月前からchainerを勉強し始めました。 せっかくなので線画の着色をしたいなーと思って色々試してみました。 線画の着色は教師あり学習なので線画と着色済みの画像のデータセットが(できれば大量に)必要です。 今回はOpenCVでカラーの画像から線画を適当に抽出しています。 抽出例 → カラーの画像を集めて線画を作ればデータセットの完成です。(今回は60万枚くらい使っています) ネットワークの形ですが、U-netという最初の方でコンボリューションする時の層の出

    初心者がchainerで線画着色してみた。わりとできた。
    gigi-net
    gigi-net 2016/12/26
    すごい
  • https://qiita.com/itckw/items/ff079c7572d6a1acd349

    gigi-net
    gigi-net 2016/12/24
    煽りタイトルかと思ったらめちゃくちゃ良い記事だった
  • Rustでむりやりプレステ1向けプログラムをつくってみる - Qiita

    この記事はRust その2 Advent Calendar 2016 4日目の記事です。 こんにちは、murachueです。 Rustについて知った時、「RustでOSを書くこともできるんだぜ~」的なことを耳にしたので、きっとCやC++でしか書けないようなモノもRustなら書けるんだろうな~と思いました。 というわけで、今回はRustでむりやり初代PlayStation(以下PS1)向けの簡単なプログラムを作ってみます。 Cという名の高級アセンブラやC++という名の超高級アセンブラに負けないぞ~。 (ちなみに、その昔「ネットやろうぜ!」という一般人でもPS1ゲームが作れるキットがあったらしいんですが、その開発言語はCだったそうです。) いちおう、RustについてはThe Rust Programming Languageの5~6章ちょっとくらいまでに書いてあることくらいを知っている前提です

    Rustでむりやりプレステ1向けプログラムをつくってみる - Qiita
    gigi-net
    gigi-net 2016/12/05
    勉強になる
  • [翻訳] 25歳の Python - Qiita

    稿は 2015年2月24日 に Bennie Mols (@BennieMols) 氏によって書かれた記事の翻訳です。 Python at 25 誤訳などありましたら編集リクエストを送って頂けると助かります。 @uasi に誤訳を修正して頂きました、ありがとうございます! By Bennie Mols February 24, 2015 Python を開発して25年が経ちました。Guido van Rossum は "学びやすく使いやすい、とても対話的に機能する" というプログラミング言語を未だに探し続けています。 クレジット: Bennie Mols 長年にわたり、Python は世界で使われている言語のトップ10に入るようになりました。Dropbox, Google, Mozilla そして Walt Disney アニメーションスタジオといった企業にはたくさんの Python

    [翻訳] 25歳の Python - Qiita
  • Swift3 全予約語 (98語) の解説 - Qiita

    Swift3 に合わせて Swift2 全予約語 (82語) の解説 をまとめ直しました。 Swift4 はこちら Swift4 全予約語 (98語) の解説 宣言 (declarations) クラス、変数、定数、メソッド、関数などの宣言部分で使用する予約語 class クラスの宣言や、メソッドやプロパティの前に指定することでクラスメソッド、クラスプロパティの宣言をします。 class Sample { var member = 1 } let a = Sample() let b = a a === b // -> true (指すものは同じ) a.member = 2 b.member // -> 2

    Swift3 全予約語 (98語) の解説 - Qiita
    gigi-net
    gigi-net 2016/10/16
    最高便利
  • OpenGLやDirectXなGUIにimguiが最強すぎる - Qiita

    imguiとは imguiは、OpenGLやDirectXなどの描画環境の中で動くGUIフレームワークです(vulkanも?)。 "Immediate Mode GUI"と呼ばれるパラダイムにより、大変短く直感的なコードでGUIを構築できます。 どういうGUIコンポーネントが使えるかは、リポジトリのスクショを見ていただいたほうが良いかと思います。 デバッグや調整、テスト用のGUIを構築することが目的のフレームワークです。 環境 今回この記事ではwindows10, vs2015, Cinder(0.9.0)上でサンプルを作成しました。 Cinder用には専用のimgui拡張があるため、そちらを使用します。 https://libcinder.org/ https://github.com/simongeilfus/Cinder-ImGui的な考え方や、imguiAPIは同じですが、

    OpenGLやDirectXなGUIにimguiが最強すぎる - Qiita
    gigi-net
    gigi-net 2016/09/04
    めっちゃ良い
  • ヴォイニッチ手稿について - Qiita

    ヴォイニッチ手稿ハッカソンという謎のイベントが開催されるので主催でもなんでもないけど勝手にそれ向けの資料をまとめていく。 計算言語学の論文を書いた時に、ネタでVoynich manuscriptとRongorongoも一緒に計算対象にしたりして、サーベイをしたのでその時の知見をまとめて行く。書いた論文は別に未解決文字にフォーカスした論文ではなく面白いかどうかはわからないけどかなり真面目な内容の奴なのであしからず。 voynich maniscriptとは 謎の文字と気持ち悪い絵がいっぱい書かれた変な。何らかの未知言語で書かれているかもしれないし、適当にそれっぽく作って詐欺に使われた道具かもしれない。個人的には、アラビア語系の言語で書かれたなんらかの文書をもとに適当に作ってそれっぽい絵を付けた美術品だと思ってる。 以下のページが、これまでの歴史的経緯について詳しい http://www.v

    ヴォイニッチ手稿について - Qiita
    gigi-net
    gigi-net 2016/04/23
    おもしろい
  • try! Swift (2016年) 資料まとめ - Qiita

    try! Swift に参加された方も参加されなかった方も、今回のカンファレンスから多くを得られることを願っています Special thanks to @niwatako (すべての発表を聞き起こしてくれた方です!) 全体的なもの try! Swift 公式アプリソースコード NatashaTheRobot/trySwiftApp: try! Swift Conference App 感想・レポート・考察記事のまとめ try! Swift みんなの感想・レポート・考察記事 #tryswiftconf ここからが try! Swift - niwatakoのはてなブログ 1日目 オープニングまで 世界中のSwiftデベロッパーが東京に集結! 早朝から熱気が凄い #tryswiftconf オープニングまで - Togetterまとめ レポート try! Swift 最速レポート 1日目午前

    try! Swift (2016年) 資料まとめ - Qiita
    gigi-net
    gigi-net 2016/03/08
    復習しないと
  • Commit Hash から、該当 Pull Request を見つける方法 - Qiita

    git blameなどを使用して、変更を加えたcommit sha hashだけわかった時、git show daced1d3のようにすれば、そのコミットの変更内容を見れます。ですが、当は内容よりその変更を加えたPull Requestを知りたいことありますよね? そんなコミットからプルリクエストを探したい時に使えるgit aliasコマンドを紹介します。 git showpr Pull Requestをマージしているコミットログを見つけます。 show pull request => showpr としてますが、名前は好きにつけてください。 .gitconfigのalias設定 [alias] showpr = !"f() { git log --merges --oneline --reverse --ancestry-path $1...master | grep 'Merge p

    Commit Hash から、該当 Pull Request を見つける方法 - Qiita
    gigi-net
    gigi-net 2015/12/27
    これをtigから使えるようにしたらクッソ便利になった