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
次のようにページ全体のサイズがブラウザーの縦横ともに大きいと想定します。 この時、scroll_width, scroll_height, row_count, col_count = 0に初期化します。 ページの右端に当たるまでスクリーンショットを撮って画面の横幅の分スクロールするのを繰り返していきます。 横にスクロールする度にcol_countを増やします。 必須うではないですがtmp_imageのファイル名はtmp_{row_count}_{col_count}.pngとかにすると後でファイルだけ見た時にわかりやすいです。 tmp_imageをstitched_imageにscroll_widthとscroll_heightの位置に貼り付けます。 スクロールサイズがページの残りサイズを超えたら残りの分だけ切り出してtmp_imageに保存しstitched_imageに貼り付けます。
Workflow Hacks! #1 が開催されるなど、データ分析のワークフロー管理が見直されつつある今日この頃ですが、Treasure Data 社内ではこれまでのところ Luigi を主なツールとして利用しています。ここでは Luigi を使ったワークフローがどのようなものであるかを紹介します。 (追記: 2016-09-18)その後、社内ワークフローは Digdag(主にSQLのクエリ実行に利用)、及び Airflow(主にスクリプトの実行に利用)へと置き換わり、Luigi を利用することはほぼなくなりました。 ワークフロー管理ツールとは? データ分析における「ワークフロー管理ツール」とは、データ処理の過程で必要となる一連のタスク(データのロードや、クエリの実行など)を自動化し、管理するために設計されたソフトウェアです。例えば、毎日決まったタスクをスケジュール実行したり、問題が起きた
はじめまして、普段はサービス開発やら収集したデータをごちゃごちゃ整形したりしているakito1986です。 この記事はIDCフロンティア Advent Calendar 2015の7日目の記事です。 さてあれよあれよという間に7日目もあと残すところ一時間! 担当した日に公開しないとあまり意味がないと思い、さっと書けそうで最近興味があり必要性を感じているワークフローについて調べたことを書きます。 はじめに 冒頭に書いた収集したデータをごちゃごちゃ整形の部分の話。 サービス事業者でエンジニアをしていると、「このデータとこのデータをがっちゃんこして、こういう形式のデータにして欲しい」と頼まれることが多いのではないでしょうか? 私も頼まれることがあり、「定期的に送られてくるCSVをテーブルにインポートしてクエリで集計してその結果を出力するだけでいいんでしょ?」という最初は軽い気持ちで引き受けたので
import sys import json import requests from bs4 import BeautifulSoup import codecs def scraping(url, output_name): # get a HTML response response = requests.get(url) html = response.text.encode(response.encoding) # prevent encoding errors # parse the response soup = BeautifulSoup(html, "lxml") # extract ## title header = soup.find("head") title = header.find("title").text ## description descriptio
CoreOSをZabbixAgentで監視する 2日目はBSmileが担当させて頂きます。 [ike_daiさんからバトン] (http://qiita.com/ike_dai/items/aa592f02a47d023911ed#%E3%81%BE%E3%81%A8%E3%82%81)受け取りましたが、しょっぱなから飛ばし過ぎじゃないですか(汗) さて、先日のZabbixConferenceJapan2015にて、 ZabbixにおけるDocker監視の魅力とは という内容で登壇させて頂きました。 改めて登壇の機会を与えてくださった皆様へ感謝致します。 その中で、DockerホストをZabbixで監視するのは「AgentをDockerホストへインストールするのが良い」 と言いましたが、「お前それCoreOSでも同じこと言えんの?」という意見もあると思いますし、その通りだと思います。 そこ
12月、Advent Calendarの季節になりました。ということで今年はZabbixのAdvent Calendarにチャレンジしてみます!完走できるかな?皆さんよろしくお願いします!! まず初日はAnsible(構成管理ツール)を使ってZabbixの設定を自動化する方法をご紹介。 Ansible moduleって? Ansibleは様々な処理をymlの定義ファイルに基づいて自動化できるよう幅広い処理ロジックをモジュールとして管理しています。 モジュールはより優先度の高いモジュール群をcoreとして管理し、その他様々なモジュールはextraという状態で管理されています。Ansibleの仕様に従う形で処理を実施できるようなPythonのコードを書けば非常に簡単にモジュール追加できるような仕組みとなっています。 現状、どのようなモジュールがあるかはこちらを参照してください。 coreモジュ
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? クラウドワークスで開発・運用している、開発者に開発環境を配るための社内サービス「tida(てぃーだ)」について紹介します。クラウドワークスでは、Web UIに環境名とインスタンスタイプを入力してしばらく待つだけで、好きなだけテスト環境をつくることができます。 .oO(テスト環境構築の自動化って、あまり話題に登らない気がするのですが、みなさん/他社さんはどうやってるんだろう) 何をする社内サービスか tidaは「てぃーだ」と読み、沖縄で「太陽」を意味する言葉です。エンジニアの数に比例して増えていくテスト環境を統括する太陽のようなイメージで
概要 SOFTLAYER のポータルから利用できるロードバランサーは簡単に利用できるのですが、同時接続数、リンク速度、HA構成によって価格が決められ、システムを設計する上で、頭を痛める原因になったりもします。 一方 Linux Virtual Server (LVS) (1)は、オープンソースでLinuxにバンドルされているロードバランサーのソフトウェアです。さらに、HA (High Availability) 構成を組むことも、10GbpsのNICと組み合わせて利用もできる低価格高性能な鉄板ロードバランサーです。 この鉄板ロードバランサーを利用する場合の唯一の難点は、まとまった情報が少なく、設定がカーネルパラメータの変更やネットワーク設定を伴い、敷居が高いものです。 この課題を解決するために、本クックブックは、CHEFを利用して、鉄板ロードバランサーLVSを自動構築するものです。 システ
はじめに 次の現場でChefを使う可能性が出てきたので、ちょっと真面目にレシピを書き残しておく。 前回は以下の事を記載しました。 初心者によるchef-solo,vagrant,berkshelf等で作るrails+mysqlの環境 初心者によるchef-solo,vagrant,berkshelf等で作るrails+mysqlの環境 その2 これらの記事はまとまった記事では無いので、今回はしっかりまとめた記事を書きます。 最終的には企業レベルで使える(と思われる)レシピの書き方を記事にしていきます。 ※本記事はMacを使って確認をしてます。 ※本記事はChef-Soloについて書いてます。 事前準備 事前に以下のものを入れておいてください。 VirtualBox Vagrant 最終的にはAWSのAmazon-Linuxへ環境構築する想定で進めますので、上記を入れずに直接Amazon-L
こんにちは。生産性向上チームの宮田(@miyajan)です。モンハンもう飽きたな、と思いつつ最新作を買ってしまうのが最近の悩みです。 この記事は、Selenium/Appiumアドベントカレンダー2015の8日目の記事です。もう途切れてしまったようですが、気にせずに盛り上げていきましょう! 今回は、Selenium GridをGoogle Cloud Platform上で運用してみた知見を書きます。過去の記事でも少し書いたのですが、今回は実際に運用してみた体験に基づいています。 モチベーション Selenium Gridは、Seleniumテスト用のブラウザ環境を複数管理するためのツールです。主に、Seleniumテストを並列実行するときに使われます。弊社のkintoneチームでは、過去の記事に書いたように、Dockerを使ってSelenium Gridを構築しています。 Dockerを使
これは 【その1】ドリコム Advent Calendar 2015 - Adventar の8日目です。 7日目は すべてがKになる (@ka_nipan) | Twitter さんによる ドリコムを支えるデータ分析基盤がTD+AWSに移行した話 - かにぱんのなく頃に です。 【その2】ドリコム Advent Calendar 2015 - Adventar もあります。 自己紹介 Fz (@sazae657) | Twitter 配線工や商業作曲家等を経て、現在はドリコムにてクロスプラットフォーム開発向けのミドルウエアやデータプロテクション等、低レイヤーの研究開発をしています。 ドリコム釣り部CFO(Chief Fishing Officer) 本日の話 私が手元で使うツールの爆速開発を支えているのがご存じMotifですが、その開発効率化に取り組んでみた話しをゆる〜くお話しします M
今回は参加者全員が積極的にアイデアを出せるブレインライティングシート(635法)をご紹介します。 紙の上で個別にアイデア出しをすることで、言いにくい革新的なアイデアも出やすくなるので、会議やブレストでぜひ使ってみて下さい。 ブレインライティングシート(635法)って? ブレインライティングとは635法とも呼ばれ、経営コンサルタントのホリゲル氏が考えた発想法です。 ブレインストーミングやアイデア出し会議では発言力のある人・積極的な人がコントロールしてしまうことが多いのですが この方法を使えば自己主張ができない人でも平等にアイデアが出せるので より口に出しにくい画期的なアイデアや突飛な意見も出しやすくなります。 ブレインライティングシートの使い方 ブレインライティング(635法)では以下のようなシートを使用します。 635法と呼ばれるのは 6人の参加者で、3つずつアイデアを出し、5分ごとにシー
Zabbix関連のセミナーや勉強会でWebインターフェースに対する不満が、たびたび話題にあがります。 (個人的には他のプロプラ・OSSな監視ツールを一通り使ってきた中では良く出来てると思うのですが) 設定に関してはAPIを使用して自動化・省力化した事例を良く聞きますが、日々のモニタリングにおけるイベントやリソースグラフのビューアとしての機能については、あまり改善事例の情報がなかったので今回はネットで見かけたビューア機能を改善をしてくれるツールを中心にまとめてみました。 統合監視 HyClops for Zabbix https://github.com/tech-sketch/hyclops http://tech-sketch.github.io/hyclops/jp/ http://www.atmarkit.co.jp/ait/articles/1311/07/news004.html
こんにちは。技術部 開発基盤グループの大石です。 今回はクックパッドで利用されているRuby製のジョブ管理ツールkuroko2について紹介したいと思います。 kuroko2 とは クックパッドでは2011年頃より、kurokoというジョブ管理ツールがありました。 そして現在、kurokoの後継のジョブ管理ツールとしてkuroko2が2014年にkurokoの開発者でもある当時の技術部長 takai によって開発され現在に至っています。 商用のジョブ管理ツールは昔からありますし、ここ最近はAirflowやAzkabanなどのOSSのツールが存在しており、わざわざ自社でジョブ管理ツールを作る必要は無いのかもしれません。 しかし、kurokoが開発された当時はそこまでの完成度のOSSのジョブ管理ツールは存在していなかったということと、過去のバッチ資産も問題なく動作させることでき、機能追加など自分
Railsで非同期処理を行う際にデファクトになりつつあるSidekiqですが、実際の運用ノウハウや少し踏み込んだトラブルシューティングは意外とまだウェブ上にリソースが不足しているという印象があります。そこでいくつか、基本的なことから少し踏み込んだ話まで、いくつか紹介したいと思います。 Sidekiqの導入・運用 Sidekiqの導入にはRedisが必要であるということはよく説明されるのですが、もう少し正確に言うとRedisをデータ保存先としてSidekiqというプロセスがスレッドベースで動きます。したがって正常にSidekiqが動くためには通常のRailsのプロセス(unicornやpassenger)のほかに、redis-serverのプロセス、Sidekiqのプロセスが動き続けていることが必要になります。(厳密に言えばSidekiqだけ動けばいいならRailsプロセスは不要です) re
はてなチーフエンジニアの Songmu です。この記事ははてなデベロッパーアドベントカレンダー2015の7日目の記事です。昨日は id:mazco による デザインにおける個性のつけ方 でした。 今日は Mackerel の公開ドキュメントについてのお話です。 Mackerelは以下で公式ドキュメントを英語と日本語で提供しています。 help.mackerel.io help-ja.mackerel.io これらは実ははてなブログでホストしています。 翻訳は日本語を先に書いて、それをチームのネイティブ翻訳者が翻訳するフローになっています。 ドキュメントの運営 告知ブログのようなものなら良いのですが、ドキュメントはその性質上定期的なメンテナンスが必要になります。特に以下の様な点がドキュメントを運営する際に難しいところです。 なんらかの一括修正が必要になった場合に修正点を洗い出して一括で反映す
2点間の距離の計算では平方根が必要になりますが、平方根は少し重い計算です。ということで、平方根を使わず、掛け算・割り算・足し算と絶対値・最大・最小だけで距離を近似する方法についての記事を翻訳してみました。 flipcode - Fast Approximate Distance Functions (12:02 補足:おそらく今の標準的なCPUでやる意味はほとんどないと思います。近似のアプローチとして面白いというくらいの話。Z80でやりましょう) 距離関数高速近似 by Rafael Baptista (27 June 2003) 2点間のユークリッド距離を求める計算式は次のようになる。 二次元では次のようになる。 この関数の計算には、平方根が必要になる。これは最近のコンピュータでも高価な計算である。平方根は逐次近似によって求められる。つまり、コンピュータは平方根近似のループを行って、与え
このエントリはGo その2 Advent Calendar 2015 - Qiitaの8日目です。 7日目のS_Shiomtoriさんの記事もコマンドラインツールの話でした。 % go get github.com/otiai10/amesh/amesh % amesh -g 思ったことや詰まったこと書きます Goでコマンドラインツールをつくりはじめるとき なんでわざわざGoでコマンドラインツールつくるか コンパイルが非常に早いので、ほぼスクリプト言語のようにソースファイルをWrite&Runして開発することができるから クロスコンパイルが容易なので、Goのコンパイル環境を要求せず、実行可能ファイルを納品できるから 並行処理を書きやすく、わりとデカめのことをさくっとやってのけたりするから Goでコマンドラインツールつくるときいつもハマること flagパッケージわりと使いにくい flag.A
一つ大事なことを忘れていました!Maximaでは方程式を解くことができます。その名もsolve()関数を使います。書式はsolve(方程式、変数)です。連立方程式の場合、第一引数には方程式のリストを、第二引数には複数の変数をリストにしたものを指定することができます。 まずは一次方程式です。係数に文字があっても解いてくれます。 (%i1) solve(4*x+b=0, x); (%o1) 次は二次方程式です。係数を全て文字にしてsolve()を使うと二次方程式の一般解を表示します。やってみて下さい。 (%i2) solve(2*x^2+3*x+1=0,x); (%o2) 次は四次方程式。 (%i3) solve(6*x^4-43*x^3+33*x^2+52*x+12=0,x); (%o3) ここまでは一般解があるのですから、当然求められるはずですが、、、 次は十次方程式!!(この式次体は一次
この記事はanimateLAB Advent Calendar2015 7日目の記事です。 はじめまして。アニメイトラボに11月からWeb/アプリエンジニアとしてジョインしましたかんがー(@KangalMi)と申します。 新卒で入社した会社から非公開なWebAPIとiOS/Androidアプリの開発を行ってきました。 現在はアニマートのWeb側をメインに担当をしています。 今回は、僕がWebAPIを開発・運用する中で失敗したことをお伝えします。 エラーコードの上手な表現方法 自分が開発したものではエラーの表現を下のような形で常に返却していました。 "meta": { "status": 500, "message": "ユーザーの作成に失敗しました。" } 上記はmeta以下にエラー関連の情報をエンベロープで包み、statusはHTTPステータスコードに準拠したコードを、messageには
ブートローダからカーネルまで これまでの私の ブログ投稿 を読まれた方はご存じかと思いますが、しばらく前から低水準言語を使うようになりました。Linux用x86_64アセンブリ言語プログラミングについても書いています。また、同時にLinuxのソースコードにも触れるようになりました。下層がどのように機能しているのか、コンピュータでプログラムがどのように実行されるのか、どのようにメモリに配置されるのか、カーネルがどのように処理や記憶をするのか、下層でネットワークスタックがどのように動くのかなどなど、多くのことを理解しようと意欲が湧いています。これをきっかけに、 x86_64 版Linuxカーネルについてシリーズを書いてみようと思いました。 私はプロのカーネルプログラマではないことと、仕事でもカーネルのコードを書いていないことをご了承ください。個人的な趣味です。私は下層で何が起きているのかとても
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く