You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
![supermanプロセスにSIGKILLは効かない.md](https://cdn-ak-scissors.b.st-hatena.com/image/square/1ef26f6cb4349557952890dbe3e567f7f98dc151/height=288;version=1;width=512/https%3A%2F%2Fgithub.githubassets.com%2Fassets%2Fgist-og-image-54fd7dc0713e.png)
お久しぶりです&あけましておめでとうございます。昨年はブログを書く時間をうまく作ることができず、あまり記事を書けませんでした。今年はできるだけ月に1回程度何か書いていきたいと思っています。今年もよろしくお願いします! さて、ブログを書かなかった間にXSSからSQLインジェクションへ興味が移った、なんてことはありませんでしたので、今日もいつも通り大好きなXSSの話をしたいと思います! 最近、正規表現にユーザ入力を使っていることに起因するDOM based XSSに連続して遭遇しました。あまり見慣れていない注意が必要な問題だと思うので、この記事では、見つけたもの2つがどのように生じたか、また、問題を起こさないためにどうすればよいかを紹介します。 そのうちの1つはLINEのBug Bounty Programを通じて報告した問題です。 賞金と、"LINE SECURITY BUG BOUNTY"
中国のビットコイン・マイニング締め出し 中国の当局は昨年9月にICO(仮想通貨を集める形式の資金調達)を禁止し、ビットコイン(仮想通貨)取引所を実質的な閉鎖に追い込んだ。 今年になり、今度はビットコインのマイナー(採掘業者)に対する規制を導入し、事業からの撤退を指示している。この影響は大きいものがある。ビットコインマイニングの約8割が中国国内で行われているからである。 マイニングとは、簡単にいうと、ブロックチェーンのベースとなる一定時間の金融決済の塊り、つまり、新たなブロックを生成し、その報酬としてビットコインを受け取ること。それには膨大なコンピュータ業務が必要になる。 中国がマイニングの中心といっても、行われているのは四川省・雲南省・内モンゴル自治区等であり、これらの地域は電気代や土地代が安いだけではなくて、税制面でも優遇されていた。 今回、撤退の指示の他、税制上の優遇もやめ、電力消費量
Intro 「毎回やるなら bookmarklet にでもすれば?」と言ったら、後輩が「そんな便利なことできたんですね、知りませんでした」と言っていた。 そんな時代にこそ、今更だれも解説しないであろう、 bookmarklet という技術についてもう一度書いておく。 Bookmarklet 簡単に言えば、 JS を書き、それを Bookmark として登録すれば、クリックするだけで現在のページでそれが動くというものだ。 ブラウザ上で何かを自動化したいと思うなら、最も簡単に実現できる便利な技術だろう。 似たような手法ではブラウザの Extension などもあるが、 Bookmarklet の良いところは一切誰にも邪魔されないというところだ。 開発者登録も、ストアへのアップロードも、難解なドキュメントを忖度して煩雑な設定ファイルを書く必要もない。 開発者ツールで、「こんなことできないかな」と
この記事はSelenium/Appium Advent Calendar 2016の10日目の記事です。 はじめに freee株式会社でアプリエンジニアをしている @kompiro と申します。普段は selenium をガリガリ動かしているエンジニアではないのですが、SitePrism というgemを使って PageObjects パターンを実装してみたら、想像以上に捗ったのでご紹介します。 SitePrism の特徴 SitePrism とは PageObjectパターンをCapybaraを使って実装するためのDSL です。 例えば google.com のページオブジェクトを SitePrism を使って定義すると下記のようになります。 # Pageの定義 class Home < SitePrism::Page set_url 'http://google.com' element
広告技術部のサンドバーグと星です。 普段の業務は、主に広告の管理システムの開発をしています。管理画面はRuby on Railsで作られており、今回は煩雑になりがちなE2Eのテストをきれいに書けたので、それについて話します。 背景 Gunosyの広告システムは4年以上前にリリースされ、これまで多くの機能が追加されてきました。 配信システムは一度リプレースされましたが、私達が運用している管理画面に関してはリプレース などはされず、現在も拡張され続けています。長く運用されているシステムのため 開発するメンバーの入れ替わりもあり、もちろん思想やコードスタイルも変わってきたため、 バグが発生しやすい環境になってしまっています。 ただ、外部のお客様も使う機能も含まれるため、バグが無いことを担保する必要があり、 テストがより重要になってきます。 また、複雑なデータ構造と画面操作があるため、単体テストで
IDDDを読んで、それなりに書いてあることは分かり始めたかな。と思ってたけど。 いざサンプルプロジェクトを読んでみたら、全然そんなことなかった。(ノД`)シクシク github.com いつものように、自分メモ。 プロジェクトの構成 全部で3プロジェクトと1ライブラリがある。 iddd_agilepm データストアとしてKVS(LevelDB)を使用。 DIコンテナは使ってない。 iddd_collaboration Event Sourcing と CQRS。ORM使わずにやってみた。 例をシンプルにするために、Event Sourcedな書き込みモデルと、CQRSの読み込みモデルを1スレッドで実行してる。イベントジャーナルとしてLevelDBを、リードモデル用にMySQLを使ってるのでほんのちょっとだけ一貫性がない状態が発生する可能性がある。別々のデータストアを使って、でも、できるだけ
みなさんgitのsubmoduleって理解して使ってますか? 親プロジェクトをpullしたら、submoduleがmodifiedになって混乱してgit addして...あばばばば。みたいな事ないですか? 私はsubmoduleがなかなか理解できずに結構苦労しました。^^; ブランチ単位で管理する通常のリポジトリと違い、submoduleはCommitID単位で管理するというのが一番理解しにくい部分だと思います。 今回は、プロジェクトにsubmoduleを追加、更新、削除の動きを更新を掛ける側のプロジェクトと更新を受け入れる側のプロジェクトの2つの視点から追いながら、CommitIDで管理するとはどういう事なのかを解説していきます。 (結論だけ見たい人は末尾のまとめへ) 準備 「submoduleを開発する役割のプロジェクト test_app_A」と「submoduleを取り入れる役割のプ
はじめに 昨年、Googleから Google Cloud Platform に関するWhitePaperがいくつか公開されました。その中でGoogleのサービス内部で使われている新しいALTSというプロトコルを説明した文書「Application Layer Transport Security」は、読んでみると非常に面白く、セキュアなサービス間通信には本当に何が必要なのか、といったことを改めて深く考えさせられるものでした。物理的なマシンからサービス運用まで、ALTSがカバーする範囲は幅広い領域に渡り、あの巨大なGoogleのサービスをよくここまでまとめ上げたものだとホント感心させられます。 以前から、Googleはデータセンタ内のサービス通信までも暗号化を進めていると言われていました。それは、2013年にエドワード・スノーデンが暴露した資料が、Googleのデータセンタ内部の通信データ
はじめに 2017年1月13日(土)に開催された第80回 Ruby関西勉強会で「プロを目指す人のための例外処理(再)入門」という発表をしてきました。 会場はすごくきれいで快適な、大阪梅田のグランフロントにあるAimingさんでした。 (どうもありがとうございました!) このエントリでは僕の発表内容と、勉強会中のエピソードを書いていきます。 発表スライド 当日使用した僕の発表スライドはこちらです。 例外処理については過去にいろいろ痛い目に遭わされているのと、間違った使い方をしている初心者さんをよく見かけるので、「お願いだから正しく使って!!」という気持ちでこのスライドを作りました😅 例外処理にまつわる僕の体験談については「本当にあった怖い話」としてスライド内で紹介していますw その他にも例外処理のバッドプラクティスやベストプラクティスなど、例外処理を書くときは絶対に押さえておきたいポイント
技術書というのが 「ソフトウェア/インフラエンジニアが読むフレームワークや言語についての本」 だと仮定すると、 高度な内容になればなるほど、読者とニーズが減るので、入門者向けの内容になりがち 入門者向けの内容であれば、フレームワークや言語の公式サイトにあるGetting Startedのドキュメント(英語)で必要十分 その内容は、トップレベルのエンジニア集団が自分たちの技術の普及を賭けて練り上げたもの(のはず)なので、クオリティはだいたい高い 逆に言うと、それが貧弱だったりわかりにくかったりする技術は信頼性に欠くので、あまり学ばないほうが良さそう、本気度からくる将来性が低そう 英語ドキュメントに抵抗が少ないエンジニアは最初から公式サイトの1次情報を見て学習し、足りない情報は英語のブログや動画から勝手に補完していく 1~3から、英語が苦手なエンジニアが入門時に読む感じの本が多く出版される。
San Francisco Font Family San Francisco はひとつの書体ではなく、SF Pro, SF Compact などと呼ばれ、それぞれに Text, Display, Rounded バージョンが存在します。Text よりも Display の方が多くのウェイトを揃えているのは、Text は視認性を重視した書体ゆえ、細いものは利用する想定にないからなのだと思われます。SFシリーズはVariable fontに対応しています。 SF Pro vs. SF Compact SF Pro は macOS や iOS, tvOS デバイスのシステムフォントとして採用されています。SF Compact は Apple Watch のシステムフォントとして採用されています。Compact は字が四角形に近い形をしていて、Apple Watch のような小さなデバイスでも視
(※この記事はJS初級〜中級の方向けの記事です) チャットとか、ボットとか、 「何に使うんじゃい!」 ...いやいや、今後使われるらしいですよ? 2021年にチャットボット市場は31.7億ドルまでになる予想があります。 国内での関連情報「AI市場、年73%増の急成長続く」では、 「システム市場規模をユーザー支出額ベースで158億8400万円と推定」と言っています。(※国内コグニティブAIに関する市場規模) もう目的なんかなくても、とりあえず作り方マスターしましょう! そんなわけで、業務で使えるレベルの本格的なチャットの作り方を、連載でまとめたいと思います。 わたくし仕事でWebチャット部品を作ってきた者ですが、 会社のみんなに「フロント側なら公開していいよー」て言ってもらえたので公開します。 この記事の概要 サンプル程度のレベルではなく、本番のサービスで組み込めるレベルのWebチャットが開
ReactStudioを使ったアプリの作り方はこちら React Studioを使ってQiitaの記事一覧アプリを作成してみる はじめに reactというとJSXの書き方、props、stateの挙動等を覚える必要があるため、 学習コストが割りと高めであったり、環境を構築するのに一手間かかったり等、 まだまだとっつきにくさが否めないライブラリです。 しかし、今回は、そんなReactをドラッグ&ドロップでアプリが 作れてしまうツールがあったので紹介したいと思います。 ※尚、Windowsはなく、Macのみで使用できるツールでございますので、予めご了承下さい。 公式サイト 公式サイトへのURLはこちら。 React Studio https://reactstudio.com/ ツールの使い方 ReactStudioでコンポーネントをデザインします。 その後、コードが自動生成されます。 無料で
詳細は GitHub の README.md を見てね! どんな力を使ったの? devtools-detect というライブラリを利用して、 DevTools の表示/非表示の切り替え発生時に呼び出される EventListener で、 DOM のクリアと共に YouTube の人類滅亡動画をコンテンツエリアいっぱいに引き伸ばして自動再生させています。 devtools-detect とは一体…? devtools-detect は実装自体シンプルなので、興味があれば直接見てもらっても良いですが、 一番重要なのは下記条件文で DevTools の表示/非表示の切り替えを検出している点ですね。 var isLongOuterWidth = (window.outerWidth - window.innerWidth > 160); var isLongOuterHeight = (wind
マイクロソフト製のWindows/Linux/macOSクロスプラットフォーム対応シェル、オープンソースの「PowerShell Core 6.0」正式版が登場 マイクロソフトは、Windows/Linux/macOSのクロスプラットフォーム対応の新シェル「PowerShell Core 6.0」正式版のリリースを発表した。Windows専用に開発されてきたPowerShellをオープンソース化し、.NET Coreをベースに作り直したものだ。 Windowsには「コマンドプロンプト」と呼ばれるコマンドラインツールが標準で搭載されています。コマンドプロンプトは、dirやcopyのようなMS-DOSの時代から使われている命令を用いてOSを操作し、バッチファイルなどを実行することができる、いわゆるシェルの機能を提供します。 しかしコマンドプロンプトは貧弱な機能しか備えていないため、マイクロソフ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く