タグ

2015年3月24日のブックマーク (21件)

  • 幸せな非同期処理ライフを満喫するための基礎から応用まで - Qiita

    クライアントアプリにとって、マルチスレッドプログラミングは避けては通れない重要な概念です。しかし、気をつけないとハマるポイントも多く、初めてクライアントアプリを学ぶ人たちからすると、複雑で難解な取っつきづらいものでもあります。ここでは、スレッドの基から、効率的な使い方、また複雑化しやすいポイントをシンプルに実装するためのノウハウを見ていきます。 TL;DR スレッドの取り扱い方を知る Threadをそのまま使わず、AsyncTaskやIntentService、時にThreadPoolExecutorを使ってスレッドの使い方を効率化する。 複雑な処理フローをシンプルに扱うためのフレームワークを導入する PromiseやRxAndroidなどで、複雑化しやすいポイントを整理する。 スレッドの基 スレッドといえば、ThreadクラスやRunnableクラスがベースにあります。以下のようにす

    幸せな非同期処理ライフを満喫するための基礎から応用まで - Qiita
  • ファイル名を埋め込んだダミー画像を一括自動生成できる「テスト画像生成器」NOT SUPPORTED

    ファイル名を埋め込んだダミー画像を一括自動生成できる「テスト画像生成器」NOT SUPPORTED
  • 【初心者向け】ApacheBench入門 | DevelopersIO

    こんにちは、虎塚です。 今週クラスメソッド社内で性能テストツールのApacheBench をテーマにした勉強会を行うことになりました(勉強会というと固い感じですが、経験者から知見をいろいろ教えてもらおうという雑談会です)。 そこで、ApacheBenchをまったく使ったことがない方の予習用に、ごく基的な情報をまとめておきましたので、公開します。 ApacheBenchのインストール方法 Apache HTTP Serverをインストールします。 sudo yum install httpd または、apr-utilパッケージをインストールすれば、httpdをインストールしなくてもApacheBenchを利用できます。 sudo yum install apr-util ApacheBenchの特徴 ApacheBenchは、Apache HTTP Serverに同梱されている性能テストツ

    【初心者向け】ApacheBench入門 | DevelopersIO
  • Cachet – システムステータスを可視化しよう

    MOONGIFTはオープンソース・ソフトウェアを紹介するブログです。2021年07月16日で更新停止しました Webサービスやクラウドが流行ると、ビジネスに必要な機能がすべてオンライン上に存在するようになってきます。となると万一サービスが落ちていたりすると大きな問題になります。それも単純に404や503になってアクセスできなくなるととても困ります。 そこで必要になるのがサービスステータスページです。独自に作っても良いですが、シンプルなもので良ければCachetを使ってみましょう。 Cachetの使い方 Cachetは多言語対応、JSON API、スケジュールメンテナンス対応、データ蓄積(ユーザ数やビュー数などをCachetに蓄積)、2段階認証サポートといった特徴があります。自分たちで自分たちのサービスステータスを一覧するのにも良さそうです。 CachetはPHP製、BSD Licenseの

    Cachet – システムステータスを可視化しよう
  • Heroku Design

    Design systems When building out interfaces make use of our atomic CSS libraries, shibori3 for marketing and purple3 for products. Our icon system malibu works with both and contains icon sets for both marketing and product.

  • DELETE_FLAG を付ける前に確認したいこと。 - Qiita

    DELETE_FLAG という思考停止フラグ DELETE_FLAG という boolean の列が DB 設計でよく話題になります。 論理削除という言葉で上手に論理武装し、スキを見せるとすぐに入れたがる人がおり、 一方でそれにつよく反対する人もいます。 自分の経験としては、広義の論理削除はありえると思いますが、実現方法が DELETE_FLAG だとなった時、それはあまり考えてないでなんとなくパターンとして盛り込んでる場合が多いと感じます。 ただし、設計に唯一の答えは無いので、もしかしたらそれが妥当な設計である場合があるかもしれません。 今回は「DELETE フラグがなぜダメなのか?」などという話をするつもりも、アンチパターンだと断言するつもりもありません。 問題は、仕様をきちんと把握すると、「最適な設計は DELETE_FLAG ではない」という場合が有って、その場合は、その最適な設計

    DELETE_FLAG を付ける前に確認したいこと。 - Qiita
  • 今風にPostgreSQLの開発環境をつくってみた - tehepero note(・ω<)

    2015-03-24 今風にPostgreSQLの開発環境をつくってみた 最近ホットすぎるPostgreSQL界隈ですが、せっかくなので今風に開発環境を作ってみました。 PostgreSQLおさらい 近年のPostgreSQLの進歩は目覚しいものがあって、高いスケーラビリティはもちろん、アプリとの親和性の高さもあって注目度を増しています。 9.4系からはJSONBサポートに加えGINインデックスの性能強化等があって、RDBの特性を持ちながらドキュメントDBのような使い勝手を実現しています。MongoDBもびっくりですね。 ちなみにAmazon RDSにもつい最近9.4.1がサポートされましたね。 Amazon RDS for PostgreSQL support for major version 9.4.1 というわけでこんな今風なPostgreSQLを今風に環境構築してみようと思います

    今風にPostgreSQLの開発環境をつくってみた - tehepero note(・ω<)
  • Perlメモ

    複数のプロセスでロック状態が異常であると判断し,そのうちの 1つがロックを解除したことにより,別のプロセスがロックしたにもか かわらず,先ほどロック状態が異常であると判断したプロセスによってこの正常なロッ クを解除されてしまう可能性があります. この方法の問題点は,異常なロック状態を解除する操作が正常なロック状態をも 解除できてしまうことにあります.逆に言えば,異常なロック状態を解除する操作に よって正常なロック状態を解除できなければ問題ないわけです.そのためにはどうす ればよいのか? 答えはロック状態が常に変化していけば よいということです.そして,これを実現するのに都合がよいのが rename による方法になります. 最初のスクリプトで説明しますと,ロックファイルが lockfile という 名前のときがロックが解除されている状態で,lockfile987654321 のよう に後ろに

  • How do I efficiently parse a CSV file in Perl?

  • ずんWiki - CSVのパース

    面倒い問題 † CSV のパースは一見簡単だがダブルクオートで囲った形式も扱おうとすると厄介な問題である。 毎回悩むのでここにパース用関数をメモっておく。 ↑ パース関数の実装 † ここでは以下の条件を満たす形式の CSV を対象とします。 *1 区切りはカンマである。 データにカンマを含む場合はダブルクオートで囲う。 ダブルクオートで囲ったデータ中のダブルクオートはダブルクオート2回で置き換える。 ↑ PHP版 † /** * CSV の1行をパースします。 * この関数が対応しているCSVの行形式は以下の通りです。 * ・区切りはカンマである。 * ・データにカンマを含む場合はダブルクオートで囲う。 * ・ダブルクオートで囲ったデータ中のダブルクオートはダブルクオート2回で置き換える。 * * @return CSV をパースした結果の配列 */ function parse_csv(

  • Perlライブラリ無し縛り - 引用符内改行ありのCSVパース - Qiita

    ダブルクォーテーションに囲まれた文字列中の改行、カンマを区切り文字として扱わない ライブラリは使わない。インタプリタの機能のみを使う &csvparse( sub{ <DATA> } , sub{ print map("[$_]",@{$_[0]}),"\n"; } ); sub csvparse{ my ($read,$callback)=@_; while( defined(my $line=$read->()) ){ for(;;){ $line =~ s/"([^"]+)"/"\a".unpack('h*',$1)."\a"/ge; last unless $line =~ /"/ && defined(my $next = $read->()); $line .= $next; } chomp $line; my @csv = split(/,/,$line); s/\a([^\

    Perlライブラリ無し縛り - 引用符内改行ありのCSVパース - Qiita
  • http://nyaos.org/d/index.cgi?p=(2012.10.01)

  • 若手開発者の後悔 | POSTD

    (編注:2020/08/18、いただいたフィードバックをもとに記事を修正いたしました。) これはある仕事熱心な若手開発者のほぼ実話です。2004年の後半、この若手開発者は小さな会社で働き始めました。条件は全て彼の望みどおりでした。給料はいいし、扱うのは彼の得意とするプログラミング言語、アプローチの複雑性、モデリングのアーキテキチャでした。 彼にとって今回の会社が初めての職場ではありませんでした。しかし、ここでの最初のプロジェクトは結果的に 問題だらけ に終わりました。当時、この若手開発者は、機能は絶対に変わらないものだと思っていました。しかし、それは間違いでした。機能が変更されるたびに完全なリファクタリングを行わなければなりませんし、バグを引き起こして膨大な時間を無駄にしてしまいます。彼は、テストを書くといった実直な方法も試してみましたが、書いたテストはメンテナンスが必要な上、書くのに時間

    若手開発者の後悔 | POSTD
  • 「CakePHP 3.0」リリース、ORMを刷新 | OSDN Magazine

    PHP向けWebアプリケーションフレームワーク「CakePHP」の開発チームは3月22日、最新版となる「CakePHP 3.0」をリリースした。新しいORM(オブジェクト関係マッピング)の導入をはじめ、多数の機能が加わっている。 CakePHPはMVCアーキテクチャを採用するPHP向けのWebアプリケーションフレームワーク。データベースアクセス、キャッシュ、認証などの機能を統合しており、高速な開発ができるのが特徴。容易な設定、安全性などの特徴も備える。ライセンスはMIT License。 CakePHP 3.0は、2011年に公開されたバージョン2系からのメジャーアップグレードとなる。PHPはバージョン5.4.16以上が必須となり、mbstring、intlの両拡張モジュールも必要となる。 最大の特徴は新しいORM(オブジェクト関係マッピング)の導入。Modelを大きく変更し、Tavleク

    「CakePHP 3.0」リリース、ORMを刷新 | OSDN Magazine
  • Icon? file on OS X desktop

    When I ls my Desktop from terminal (by using ls ~/Desktop), I see a file named Icon?. As far as I can tell, it's empty (nano Icon? shows nothing). It doesn't show up on my actual Desktop, and open Icon? shows the Finder alert This item is used by Mac OS X and can't be opened Here is the output from mdls Icon?: kMDItemContentType = "" kMDItemFSContentChangeDate = 2009-09-23 13:32:52 -0600 kMDItemFS

    Icon? file on OS X desktop
  • テストエンジニアとデベロッパーとの幸せな関係とは何か。開発効率の向上も、ゲームを面白くすることもテストエンジニアの領域に(前編) JaSST'15 Tokyo

    テストエンジニアとデベロッパーとの幸せな関係とは何か。開発効率の向上も、ゲームを面白くすることもテストエンジニアの領域に(前編) JaSST'15 Tokyo ソフトウェアテスト分野で国内最大のシンポジウム「JaSST'15 Tokyo」が2月20日、21日の2日間、東洋大学で開催されました。 シンポジウムの最後を飾るクロージングパネルでは、基調講演に登壇したマイケル・ボルトン(Michael Bolton)氏、チェンジビジョンの平鍋健児氏、ACCESSの松木晋祐氏、サイバーコネクトツーの八田博和氏が登壇。 モデレータの東洋大学 野中誠による「これからの時代、テストエンジニアとデベロッパとの幸せな関係」とはどう変化してきたか、変化していくのか、という問いかけに対し、現在のテストエンジニアとデベロッパーの関係や、よりよい関係とはどういうものなのか、さまざまな議論と提案が行われました。 記事

    テストエンジニアとデベロッパーとの幸せな関係とは何か。開発効率の向上も、ゲームを面白くすることもテストエンジニアの領域に(前編) JaSST'15 Tokyo
  • Shibu's Diary: cURL as DSLとは何だったのか。あるいは細かすぎて伝わらないcURL as DSL。

    渋日記@shibu.jp 渋川よしきの日記です。ソフトウェア開発とか、ライフハックを中心に記事を書いていきます。 By Jeremy Brooks under CC BY-NC 先日、cURL as DSLというツールを公開しました。その後、何度も同じような質問を受けたりしたので、ブログにまとめてみます。 なぜこのツールを作ったの? RESTfulというものは大分一般的になってきました。HTTPでAPIを提供というのもよく見かけます。ですが、僕はこのRESTfulというやつが嫌いです。 GETのURLをシェアすればいつでも同じページがある(変な状態を持たない)、みたいな思想はいいんですが、HTTPのAPIはどうも使いにくい。ドキュメントのHTTPのサンプルを見て、ドキュメントをじっくり読み込んで、パラメータをJSONやらXMLで組み立ててボディに乗っけて(しかも大抵パラメータがアホのように

  • Tomcat/Javaで対話的にデータサイエンスする

    はじめに Scutumではベイジアンネットワークをはじめ、データサイエンスを積極的に導入して高性能のWAFを実現することを目指しています。データサイエンスやデータマイニングでは、解析対象のデータに対して対話的に解析を行うことが多くなります。今回は基的には「対話的プログラミング環境でない」Javaで、データを対話的に解析する方法をご紹介します。 一般的なJavaアプリケーションのライフサイクル JavaはRに代表されるような対話的なプログラミング環境とは異なり、基的には一度コードを書いたらそれがコンパイルされ、ある程度「固定」されたものになり、プロセス起動中は「事前に準備したコード」を使って処理をします。 Javaでデータを解析する場合には、プロセスの起動後にデータが読み込まれ、解析処理が行われ、何かしらの結果をはき出して終了する、というのが1つのステップになります。 解析を実際に行う人

    Tomcat/Javaで対話的にデータサイエンスする
  • apacheとnginx – 忘れるために記す

    主に、オープンソースカンファレンス2014 Tokyo/Spring Apacheコミッターが見た Apache vs nginx http://openstandia.jp/pdf/140228_osc_seminar_ssof8.pdf より webサーバ仕組み – ざっくりリクエストに対して、レスポンスを返却する apache – マルチプロセス、マルチスレッドアーキテクチャ-マルチプロセス、スレッドの場合、1つのプロセスまたはスレッドがこれを処理する。そのため、1アクセスを処理している間は他のアクセスを処理できず、同時接続数分だけプロセスまたはスレッドが必要となる マルチプロセス、マルチスレッドの違いマルチプロセスはメモリ空間を個別に持つが、マルチスレッドはメモリ空間を共有する メモリの使用効率が高く、プロセス切り替え時にメモリ空間の切り替えが発生しないためコストが低くなる マルチ

  • 「私たちは何のために働くのか?」復帰直後のジョブズが、社員に送ったメッセージが深い・・・ | TABI LABO

    スティーブ・ジョブズのプレゼンにはいくつか伝説的なものがある。とくにスタンフォード大学のスピーチは、以前でもTABI LABOで取り上げ反響が大きかった。 今回は、あまり知られていないが、その中でも特に伝説的と言われるプレゼンをご紹介したい。 ジョブズが復帰直後に、Appleの社員に向けて新しい価値観を広めた伝説的なスピーチだ。 時は、1997年。ジョブズはAppleCEOとして戻った直後、プリンターなどの販売のうまくいっていない製品やNewtonといった開発途中の製品の廃止を決定した。 彼は、Appleには何の価値があるのか?を明確に定義し直す必要があると感じていた。営業代理店をすべて見直し、「Think Different」キャンペーンを実施することにした。今回紹介する映像は、Appleのスタッフに、その内容を紹介した時の映像だ。 もっとも興味深いのはそのプロモーションビデオではな

    「私たちは何のために働くのか?」復帰直後のジョブズが、社員に送ったメッセージが深い・・・ | TABI LABO
  • オレ流 Pull Request 作業フロー - 詩と創作・思索のひろば

    チームで作業する同じリポジトリの中で Pull Request を送り合うのではなく、オープンソースプロジェクトに外部から PR がやってくる場合の話です。 最近のフロー 送られてきた PR に対しては、大まかには仕様の話、実装方針の話、具体的な実装の話を詰めながらマージできるように持っていくわけだけれど、それがほとんど満足いく状態になっていてマージしたいと思うタイミングになっても、変数の名前付けだとか、ちょっとした処理の書き方だとかで、相手にお願いするよりは自分で手を加えてからマージした方が手っ取り早いことがある。そういう時は PR 元のブランチを手元にチェックアウトして、そのブランチを自分の変更で進めた上で master にマージするようにすると、push 時に PR も閉じられて便利です。 motemen/lgtm.sh#1 の例。分かりにくいれど、PR にさらに 1 コミット足して

    オレ流 Pull Request 作業フロー - 詩と創作・思索のひろば