ymmtmdkのブックマーク (602)

  • NAT をやめて、透過 SOCKS プロキシを導入した - Cybozu Inside Out | サイボウズエンジニアのブログ

    以下の記事内容について、奥一穂氏(@kazuho)より、「connectのエラーコードが信頼できなくなるといった欠点もあるのに透過 SOCKS プロキシが汎用的に良いように読めてしまう」というご指摘をいただきました。確かに、下記内容は当社が抱えていた複数の課題を短期間で解消できる「ワークアラウンド」として透過 SOCKS プロキシという技法もあることを紹介したものであり、NAT と比較して常に良いという主張をしたかったわけではありません。また、記事内では解説を省きましたが、従来より HTTP(S) 通信は NAT ではなく HTTP プロキシを利用しています。謹んで補足・訂正とさせていただきます。 が好きだけどアレルギーで近寄ることができない山泰宇です。 先日アーキテクチャ刷新プロジェクトNeco」を紹介しましたが、今回はその活動の一環として実施したネットワークアドレス変換(NAT

    NAT をやめて、透過 SOCKS プロキシを導入した - Cybozu Inside Out | サイボウズエンジニアのブログ
    ymmtmdk
    ymmtmdk 2017/03/31
  • Part1 アプリケーションに欠かせぬ通信のプラットフォーム

    ネットワークはLANやIPだけじゃない。相手との通信を成り立たせるには,TCPやUDPが不可欠だ。むしろ,Webブラウザや電子メール・ソフトなどのネットワーク・アプリケーションにとって,TCPとUDPはなくてはならない基盤的な存在である。Part1では,TCPとUDPの概要を示す。 インターネットなどTCP/IPを使ったネットワークでは,データをIPパケットという単位でやりとりする。このIPパケットには,通信相手の住所を表すIPアドレスが書かれており,ルーターがこのIPアドレスを見て転送する。ここまでは,知っている人が多いだろう。 しかし,これだけでは通信は成り立たない。Webアクセスやメールの送受信など,ほどんどのインターネット・アプリケーションが動かないのだ。 その理由の一つは,IPアドレスは単に相手のコンピュータを特定するだけだからだ。パケットを受信してもコンピュータはそのデータをど

    Part1 アプリケーションに欠かせぬ通信のプラットフォーム
    ymmtmdk
    ymmtmdk 2017/03/31
  • Dockerfile: $HOME is not working with ADD/COPY instructions

    ymmtmdk
    ymmtmdk 2017/03/30
  • Alpine Linux入門 -内部構造とapkでパッケージインストール編- - tehepero note(・ω<)

    2016 - 03 - 02 Alpine Linux入門 -内部構造とapkでパッケージインストール編- Linux Alpine Docker さて、前回のエントリはAlpine Linux の環境を作ってみる話でした。 stormcat.hatenablog.com 今回は実際にAlpine Linux の中身を探索していったり、apkでのパッケージインストール等をやってみます。 前回使った仮想環境をそのまま利用します。前回の環境構築プロセスはもういいよって人は、 Vagrant Cloudに公開されているbox を使うでもOKです。 各自のAlpine環境に ssh でログインしている前提で話を進めます。 Alpineを探索する まずは素の状態のAlpineがどうのような状態になっているかを確認しておきましょう。Alpineは非常に軽量とされていますが、実際どの程度機能が絞られてい

    Alpine Linux入門 -内部構造とapkでパッケージインストール編- - tehepero note(・ω<)
    ymmtmdk
    ymmtmdk 2017/03/30
  • Runtime linking on Mac — docosx 0.2 documentation

    ymmtmdk
    ymmtmdk 2017/03/26
  • [C言語] 共有ライブラリと静的ライブラリを整理する - Qiita

    なんとなく分かった気でいるふたつのライブラリ。 それを小さなテストコードを使いながら整理してみます。 (ちなみに今回紹介するのはMacでのものです。Linuxではフォーマット、コンパイル方法などが異なります) 静的ライブラリをコンパイルする まずは静的ライブラリです。 ちなみにMacではMach-Oというフォーマットを使います。 (Linuxでは「ELF(Executable and Linking Format)」というらしい) こちらの記事が分かりやすかったです。 また、静的ライブラリはオブジェクトファイルをまとめたただのアーカイブです。 (なのでar(アーカイブ)コマンドを使う) 例として以下のように静的ライブラリの中身を定義しました。

    [C言語] 共有ライブラリと静的ライブラリを整理する - Qiita
    ymmtmdk
    ymmtmdk 2017/03/26
  • dynamic library の OS Xの補足 - Qiita

    前々回にFreeBSDでの静的ライブラリと動的ライブラリについて書いた。 そのときに、OS Xでもほぼ同じ、と書いたのだが、ここでは違いについて書く。 まず、FreeBSDやLinuxでは動的ライブラリのファイル名は *.so だが、OS Xでは *.dylib である。(試しに*.soにしても動いたので、拡張子はなんでも良いようだが) そして、ライブラリの依存関係を調べるコマンドは ldd ではなく otool -L を使う。 リンク時のオプションで -L と -l を使うのは同じ。 ldには-rpathオプションはあるが -rpath-linkオプションはない。(リンク時には-Lオプションと標準パスだけで探すらしい) そして、-rpathオプションの扱いもFreeBSDとは違う。 基 動的ライブラリの作成 前々回と同じソースで、libfunc2.dylibを生成してみる % cc -

    dynamic library の OS Xの補足 - Qiita
    ymmtmdk
    ymmtmdk 2017/03/26
  • MP4/3GPP/3GPP2ファイルフォーマットの基礎知識

    各ボックスはその先頭8バイト(オクテット)がボックスを識別するためのヘッダで、最初の4バイト(オクテット)がボックスのサイズ、続く4バイトがそのタイプです。 上の例では先頭の4バイトが0x1Cなので、最初のボックスは0x00~0x1Bまで、続く4バイトの「ftyp」がそのタイプです。ftypボックスの中身は具体的なデータですが、続くmoovボックスは、さらにmvhdボックスを含む構成になっています(そして実際にはこの後さらに複数のボックスが入れ子になっています)。 +--ftyp +--moov | +--mvhd | +--drm | | +--dcmd | +--trak | | +--tkhd | | +--mdia | | +--(以下省略) | +--trak | | +--tkhd | | +--mdia | | +--(以下省略) | +--udta | +--titl +-

    ymmtmdk
    ymmtmdk 2017/03/19
  • この日記のruby 2.4化はちょっとおあずけ - ただのにっき(2017-01-26)

    ■ この日記のruby 2.4化はちょっとおあずけ tDiary体をruby 2.4に対応させたので、この日記(というかHerokuで動いているtDiary.Netの日記全部)を2.4化しようとしてステージング環境に入れてみたら、更新のタイミングでcategoryプラグインでエラーになる。MongoDBの書き込みで……と思ったら読み込みでもエラーになるな。エラーになる場所がちょいちょい変わる。いや、たんに日記を表示するだけでもエラーになることがある。うえー、イヤなやつだこれ……。 で、やりたくない気分満載でエラーを追いかけようとする前にbugsを探してみたらすでに報告済み(&修正済み)だった。よかったー。いや、よくはないけど。 mongo gemがひっかかってるようなので、MongoDBを使ってる環境をruby 2.4にするのは2.4.1が出るまで待った方が良さそうだ。というわけで、先日

    ymmtmdk
    ymmtmdk 2017/03/11
  • videoconverter.js - Convert Videos In Your Web Browser

    videoconverter.js is a program that lets you process videos in your browser. About [#] Videoconverter.js was originally conceived and implemented for a project in Node Knockout 2013 called Video Funhouse. The idea for the application was to try and convert any video file into another video format, while allowing filters to be applied to the video – all inside of the browser, without uploading anyt

    ymmtmdk
    ymmtmdk 2017/03/10
  • Rubyで外部コマンドを実行して結果を受け取る方法あれこれ - Qiita

    Kernel.#system サクッと実行したい場合に便利 実行結果(true, false, nil)が返却される stdin : 渡せない stdout : 取れない stderr : 取れない status : 取れる($? で参照)

    Rubyで外部コマンドを実行して結果を受け取る方法あれこれ - Qiita
    ymmtmdk
    ymmtmdk 2017/03/10
  • RSA鍵、証明書のファイルフォーマットについて - Qiita

    RSAの公開鍵暗号技術を利用するためには、鍵や証明書のファイルを扱う必要があるため、そのファイルフォーマットについて理解しておく必要があります。 実際、いろんな拡張子が登場するので、それぞれの意味を理解していないとすぐにわけがわからなくなります。そんなときのために備忘録をまとめてみました。 ファイルの拡張子の注意点 .DERと .PEMという拡張子は鍵の中身じゃなくて、エンコーディングを表している デジタル暗号化鍵やデジタル証明書はバイナリデータなのですが、MD5のハッシュ値のような単なる 値 ではなく、データ構造をもっています。.DERや .PEMはそのデータ構造をどういうフォーマットでエンコードしているかを表しています。そのため、.DERや.PEMという拡張子からそのファイルが何を表しているのかはわかりません。暗号化鍵の場合もあるし、証明書の場合もあります。 .DER 鍵や証明書をAS

    RSA鍵、証明書のファイルフォーマットについて - Qiita
    ymmtmdk
    ymmtmdk 2017/03/09
  • Rick Astley - Never Gonna Give You Up (Official Music Video) - YouTube

    The official video for “Never Gonna Give You Up” by Rick Astley. Never: The Autobiography 📚 OUT NOW! Follow this link to get your copy and listen to Rick’s ‘Never’ playlist ❤️ #RickAstleyNever https://linktr.ee/rickastleynever “Never Gonna Give You Up” was a global smash on its release in July 1987, topping the charts in 25 countries including Rick’s native UK and the US Billboard Hot 100. I

    Rick Astley - Never Gonna Give You Up (Official Music Video) - YouTube
    ymmtmdk
    ymmtmdk 2017/02/25
  • レコメンドつれづれ ~1-1. 協調フィルタリングのコンセプトを知る~ - Platinum Data Blog by BrainPad

    記事は、当社オウンドメディア「Doors」に移転しました。 約5秒後に自動的にリダイレクトします。 こんにちは、アナリティクスサービス部の小田です。 寒くなるとクシャミをするたびにギックリ腰の予感がします。 このところ業務でレコメンデーションに触れることが多いので、ブログではレコメンドについて、実際にRやPythonでコードを書きながら、ゆるゆると考察していきたいと思っています。 今後複数回にわたってレコメンド手法の概念や実装方法を中心に、基礎的な内容から最近流行りの技術まで幅広く触れる予定です。また手法以外にも、評価方法やコールドスタート問題に代表されるレコメンデーションの課題など、様々なトピックに触れたいと思っています。不定期に書いていく予定ですが、その辺はゆるふわということでご了承ください。 さて、今回はレコメンドアルゴリズムの基とも言える「協調フィルタリング」について、機械

    レコメンドつれづれ ~1-1. 協調フィルタリングのコンセプトを知る~ - Platinum Data Blog by BrainPad
    ymmtmdk
    ymmtmdk 2017/02/11
  • 解説・講義資料 - Toshihiro Kamishima

    機械学習・データマイニング全般 変わりゆく機械学習と変わらない機械学習 [物理学会誌 2019]:機械学習・データマイニングについての専門家以外に向けた解説記事 機械学習・データマイニング分野の概要:分野全体の概要と国際会議動向まとめ資料 ML, DM, and AI Conference Map人工知能機械学習,およびデータマイニング関係の国際会議関連マップ データマイニング:4種類の主要分析タスクとデータマイニングによる知識発見プロセスについての学部前半レベルの説明資料 社会における機械学習 機械学習・データマイニングにおける公平性 [人工知能学会誌 2019]:アルゴリズム決定の公平性に関する議論 Fairness-Aware Machine Learning and Data Mining: Tutorial on data analysis considering pot

    解説・講義資料 - Toshihiro Kamishima
    ymmtmdk
    ymmtmdk 2017/02/06
  • ブラウザ拡張の権限でどこまで悪いことをできるのか?とその対策【デモあり】 - Qiita

    [2018/07/07 追記] 記事ではChrome拡張について説明していますが、Firefox1やEdgeの拡張機能もほぼ同じ仕組みで動いています。 [2023/11/06 追記] #参考 ページを追加しました。 Chrome拡張。便利な機能を簡単に追加できるので使っている人も多いと思います。 ただ、インストール時の権限の注意書きが分かり難いので無条件に承認(追加)していることもあるのではないかと思われます。 そこで、記事ではChrome拡張の権限の種類・確認方法の他、拡張がどこまで(悪いことを)できるのかとその対策を3段階の権限(危険性)レベルごとに紹介していきたいと思います。 便利だが危険性もあるChrome拡張 Chrome拡張をインストールすると、Webページを読むというブラウザ来の機能だけでなく様々なことができるようになります。 例えば、Webメールの新着通知や記事などの

    ブラウザ拡張の権限でどこまで悪いことをできるのか?とその対策【デモあり】 - Qiita
    ymmtmdk
    ymmtmdk 2016/12/04
  • Google Apps Scriptの開発をモダンに行う方法 - Speee DEVELOPER BLOG

    株式会社Speeeの山です。皆様、こんにちは! 今回ご紹介させていただくのは、Speeeで実践しているGoogle Apps Script(以下 GAS) を用いたモダンな開発手法についてです。この記事を通してGASって「便利だし使えるかも!」と思っていただければ幸いです。 Google Apps Scriptとは Google Apps Scriptは、言わずと知れたGoogleが提供するサーバサイドのスクリプト環境です。 基的にはWebブラウザを通して開発を行います。 作業効率化に威力を発揮するGAS Speeeでは特に、管理部門の作業効率化でGASを使用しているケースが多く、例えば Slackの制限付きユーザを各種チャネルに招待するアプリケーション メーリングリストの文面生成を自動化するアプリケーション Speeeラウンジの使用状況を閲覧するアプリケーション など、様々な用途でG

    Google Apps Scriptの開発をモダンに行う方法 - Speee DEVELOPER BLOG
    ymmtmdk
    ymmtmdk 2016/12/01
  • Calculating text selection offsets in nest elements in Javascript

    ymmtmdk
    ymmtmdk 2016/11/17
  • Reduxのパターンとアンチパターン | POSTD

    Redux は、 Flux のようなアーキテクチャを使用してアプリケーションの状態を管理できる非常にシンプルなライブラリです。私たち Affirm では今、 Reduxのタイムトラベル機能 に注目しています。Affirmの主要事業は、透明性の高い消費者ローンを提供することなので、ローン申し込み時の全過程をユーザ視点で再現できると非常に有用なのです。 Reduxはフレームワークというよりも、パターンの適用に役立つ関数セットです。よって、適切なパターンを慎重に適用しないと、Reduxを使ったことを後悔する結果になりかねません。この記事では、Affirmで確立したReduxのベストプラクティスや、ミスを犯しやすいポイントについて説明します。 ImmutableJS ImmutableJS は、不変の永続データ構造を扱うためのライブラリです。私たちがこのライブラリを好んで使う理由は2つあります。

    Reduxのパターンとアンチパターン | POSTD
    ymmtmdk
    ymmtmdk 2016/11/08
  • Mavericksでpythonの環境を作り直し: Homebrew環境もリセット

    B! 20 0 0 0 Mavericksでは/usr/bin/pythonが2.7.5のバージョンがインストールされていて、 現時点ではpython3は特に必要ないので、 Homebrewのは消してMacに入ってる物を使う様に。 Homebrew環境のリセット pipをインストール Homebrewで入れなおす時の注意 gcalcli周りのセットアップ python 2.7.6 Homebrew環境のリセット 取り敢えずHomebrewも色々ごちゃごちゃしてしまってるので一旦リセット1。 brewallを使って現状のリストを確認。 $ cd $ brewall -i $ cp /usr/local/Library/Brewfile . $ brewall -e として、リストをホームに一度退避てから、最後の所で ファイルを開いて中身を全部消す。 $ brewall -c -r $ rm

    Mavericksでpythonの環境を作り直し: Homebrew環境もリセット
    ymmtmdk
    ymmtmdk 2016/11/07