タグ

ブックマーク / gihyo.jp (232)

  • 第3回 プログラムチーム編:テーマ、プログラム、新企画等 | gihyo.jp

    テーマの決め方 プログラムチームでは一番最初の仕事として、その年のテーマを決定します。今年は1月から実際の活動を始めて2月前半にテーマを決定しました。テーマの決定は次のような手順で行いました。 PyCon JP 2015のコンセプト、テーマの募集(PyCon JPスタッフ) 募集したコンセプト、テーマを元に打ち合わせ(プログラムチーム) テーマの決定(プログラムチーム) まずは幅広くアイデアを募集する必要があると考え、全スタッフから今年のPyCon JPのコンセプトや、テーマの募集を行いました。募集に関してはGoogleDocsにてシートを用意して、そこに自由に記述していく方式を採りました。まずはどんなアイデアでも良いので書いてもらい、量を集めることを意識しました。 次に募集したコンセプトとテーマの内容を整理する作業を行いました。まずはコンセプトのグルーピング化を行い、似たようなコンセプト

    第3回 プログラムチーム編:テーマ、プログラム、新企画等 | gihyo.jp
  • 第4回 運用開発におけるJavaScriptのフレームワークの選定 | gihyo.jp

    はじめに みなさんこんにちは、技術系Q&Aサイトのteratail開発チームの橋佑介です。 WebサービスJavaScriptを利用する際にフレームワークを使うことがスタンダードになって来ていますが、運用中のサービスに適用するのはなかなか難しくためらっていませんか。フレームワーク自体の比較ではなく運用中のサービスにフレームワークを適用する際に何を選定すればいいのか、そこにフォーカスをあてて紹介したいと思います。 なぜJavaScriptフレームワークを使うのか 通常Webサービスを作る場合、RubyではRailsPHPではLaravelなどのフレームワークを利用すると思います。MVCモデルを導入する目的としてビジネスロジックや画面描画などの分離、コンポーネント化ももちろんですが、チーム開発をする上ではコーディングルールの統一や部品の統一化、画面の切り離しによりフロントエンドエンジニア

    第4回 運用開発におけるJavaScriptのフレームワークの選定 | gihyo.jp
  • 第21回 テスト駆動開発(1) まずテストを書こう | gihyo.jp

    こうして必要な情報を調べてみるとBMIや肥満度に性別や年齢は必要ないのが分かります。そのとき、開発者は立ち止まって考えます。例えば、「⁠必要ないので、実装は取りやめようか?」「⁠しかし次回作成するUIには、性別を反映したい」「⁠ここは今後のアプリケーションの発展の可能性を考慮して、残す方向で進めよう」といったように考えます。このように、ごく近い将来利用する要素であれば、先回りして実装しておくのも許容できます。しかし、利用する予定がないのであれば、きっぱり削除しましょう。必要になってから実装する(YAGNI])というXP(エクストリーム・プログラミング)の原則です。 テストコードの作成と、目的のコードの作成 それでは、個人情報コンテナクラスをテストするコードを書いてみます。この段階で個人情報コンテナクラスそのものは、入力を受け付けますが中身は空っぽです。このような状態のコードを「スケルトンコ

    第21回 テスト駆動開発(1) まずテストを書こう | gihyo.jp
  • 第4回 Webの「Load(読込み)」を改善しよう(後篇) | gihyo.jp

    はじめに Webページの読込パフォーマンスについて、前回、単純なWebページの読込時間(PLT)から、その過程を含めた評価方法(Speed Index⁠)⁠、コンテンツのメインとなる巨大な画像リソース(Hero Image)といった、さまざまなメトリクスについて紹介しました。Webページ読込のパフォーマンスは、JSやCSS、画像などのリソースが互いに干渉しあい、ブロッキングを起こすことで劣化するのです。 後篇では、Webが扱うリソースをより低いレイヤーから考えてみましょう。前篇はあくまでHTMLというレベルでの制約(ブロッキング)と最適化の話でしたが、記事ではHTTP以下の制約とその最適化に目を向けます。その対策は、通信時に使われるTCPコネクションをいかに効率化するのかという点と、キャッシュをいかに有効活用するのかという点の、2つの観点から整理できます。 TCPコネクションの有効活用

    第4回 Webの「Load(読込み)」を改善しよう(後篇) | gihyo.jp
  • 第1回 [インフラ編]柔軟性とスピードの両立を目指してクラウド活用を決断 | gihyo.jp

    「じゃらん」や「ホットペッパー グルメ」を始め、数多くの大規模サービスを展開するリクルートライフスタイルでは、「⁠ギャザリー」(⁠図1)などの新サービスの提供も積極的に進められています。ビジネスを拡大し続ける同社にとって、その足元を支えるインフラ環境の見直しは急務となっていました。そこで目をつけたのがパブリッククラウドです。今回、株式会社リクルートライフスタイルの山崎賢氏(写真1⁠)⁠、そして小林智則氏(写真2)に、パブリッククラウドを活用することに決めた経緯や今後の展望などについてお話を伺いました。 迅速にサービスを立ち上げられるスピード感が魅力 ――リクルートライフスタイルでは、いくつかのサービスでパブリッククラウドサービスを積極的に活用し始めているとのことですが、なぜでしょうか。 山崎氏:とにかく便利だったということが1つです。今後のITの進化を考えると、ソフトウェアのレイヤからイン

    第1回 [インフラ編]柔軟性とスピードの両立を目指してクラウド活用を決断 | gihyo.jp
  • ページが見つかりません

    指定されたページは,サイト内に見つかりませんでした。 以下の手順をお試しください。 URLを直接入力した場合,入力ミスがないかご確認ください。 リンクを辿ってきた場合,リンクミスが考えられます。リンク元サイトの管理者にお問い合わせください。 該当するページについての情報をお持ちの場合,サイト上部にある検索ボックスから検索するか,トップページから該当するリンクを辿ってください。

    ページが見つかりません
  • 第20回 UML(3) シーケンス図・ステートチャート図 | gihyo.jp

    導入 プログラミングを学び始めた人が最初に習う図法は、ほぼ間違いなくフローチャートです。アルゴリズムを記述する方法として大変優れており、きちんと身に付けるべき課題です。ところが、いざ実際にGUIアプリケーションを作成しようとすると、困ってしまいます。GUIアプリケーションの動きはフローチャートだけではどうも表現しにくいのです。そこで考案されたのがシーケンス図や状態遷移図(ステートチャート図)です。これらの図法を習得すると、一気にGUIアプリケーションの動きを図にすることが楽になります。まさに視野が開ける、あるいはレベルアップした、そんな感覚を味わうことでしょう。 展開 シーケンス図とは シーケンス図と、それに関連する語句の定義を示します。 シーケンス図:複数のオブジェクトの生死を縦の平行線で示し、相互作用を水平の矢印で示した図。 オブジェクト:ここでのオブジェクトとは、主にソフトウェア実行

    第20回 UML(3) シーケンス図・ステートチャート図 | gihyo.jp
  • 第3回 実装編 | gihyo.jp

    今回はカンファレンス開催までの準備期間に行う様々な事を書き出してみます。特に一般の目にあまり触れないところを敢えて拾い出してみたいと思います。 スポンサー交渉 前の記事で書いた通りYAPC::Asia Tokyoを開催するためには多数のスポンサーに協力してもらう事が必要不可欠です。そこで主催としての私の仕事はまずスポンサーを見つけてくる事です。 大変ありがたいことにこれまで協力していただいてきた企業が「是非今年も」と申し出てくれる事もありますし、新たに名乗り出てくれる企業もいます。かといって前年まで協力いただけたところが必ずしも今回も協力いただけるわけではありませんし、協力いただけても前年までと同じようにはいかないということもありえます。 要は主催としての私は少なくとも蓋を開けてみたらお金が足りないという状況にだけはならないように協力していただけるスポンサー様の数を管理・獲得していくことな

    第3回 実装編 | gihyo.jp
    kazu_levis501
    kazu_levis501 2015/07/13
    [YAPC::Asia Tokyo 2015][gihyo.jp]
  • 第3回 Webの「Load(読込み)」を改善しよう(前篇) | gihyo.jp

    はじめに Webページの読み込みは、ブラウザが生まれて以来、変わることなく持ち続けたコアの機能です。誰もが無意識のうちにその機能に触れており、もはや当たり前のようにそこに存在しています。 前回、その機能の中には他のタスクをブロックするような処理が含まれており、ブラウザを複雑にしていると説明しました。ブラウザはその仕組み上、CPUやネットワークのリソースをフル活用することが難しいのです。Webのパフォーマンスモデル「RAIL」では、これらの課題をなんとかクリアし、Webページの読み込みを表すL(Load)が1,000ミリ秒未満となることを推奨しています。これは、とてもシビアな時間です。 一言にLoadとは言っても、ユーザ体験に及ぼす要因は多く、そのメトリクスは多岐に渡ります。皆さんのWebサイトの置かれている状況に合わせて、Loadの意味を適切な指標に読み替え、最適なブロック解決方法を選択し

    第3回 Webの「Load(読込み)」を改善しよう(前篇) | gihyo.jp
  • 第2回 事務局チーム:参加者管理、スポンサー対応、デザイン等 | gihyo.jp

    こんにちは。メディアチームの今津です。 PyCon JP 2015 では、現在4つのチームに分かれて様々な準備を行っています。この連載では、各チームがどのようにPyCon JP 2015を作っていっているのかを、それぞれの目線でご紹介していきます。 第2回目は、事務局チームについてご紹介します。 事務局チームの役割 PyCon JP 2015 事務局チームの吉田です。 カンファレンスを開くのに一番大切なのはコンテンツ(プログラムチーム)と場所(会場チーム⁠)⁠、告知(メディアチーム)であると考えています。事務局チームはそれ以外の一切を行うことで、これも一つの大きな役割だと思っています。具体的な役割は、大きく以下の内容になります。 参加者の方々の登録、当日の受付や遠方からの来場者への費用支援に対応するなどの参加者管理 スポンサーの方々にスポンサード、出展いただくのに対応するスポンサー対応 イ

    第2回 事務局チーム:参加者管理、スポンサー対応、デザイン等 | gihyo.jp
  • 第3回 サーバセキュリティの基礎を見直す | gihyo.jp

    みなさんこんにちは。teratail開発チームの出川幾夫です。 近年では攻撃方法が多様化・複雑化しており、サーバのセキュリティ要件は年々高まっています。セキュリティリスクは目に見えにくく、問題が表面化するまでは他の作業よりも後回しにされがちです。 そこで今回はサーバセキュリティの基礎をテーマに、普段当たり前にやっているセキュリティの手法について、その意味や効果について振り返りたいと思います。 記事はCentOS 6.6で確認した内容を元に記述していますので、他の環境の方は適宜読み替えていただければと思います。 SSHの設定 サーバを立ち上げてまず立ち上げるサービスの一つがSSHです。サーバを構築したときからセキュリティを万全にしておく必要があります。 SSHの設定ファイルは主要なLinux OSでは/etc/ssh/sshd_configとして設置されています。まずSSHのポート番号をw

    第3回 サーバセキュリティの基礎を見直す | gihyo.jp
  • 第10回(最終回) クラウド環境によるスケールアウト構成 | gihyo.jp

    クラウド環境におけるMySQL Webシステムから業務システムなど様々な領域でいろいろなクラウド環境の利用が広がっています。クラウド環境でのMySQLは、データベースサービス型クラウドとして提供される形態をはじめ、クラウドサービスの構成情報や認証の管理に利用されるケースやクラウドサービス上でのアプリケーションで利用されるケースなど、多様な導入例が見られます。多くのクラウド関連技術はWebシステムで利用されている技術から発展しており、WebシステムでデファクトスタンダードとなっているMySQLをクラウドでも活用することは自然な流れと言えます。 クラウド環境でMySQLを導入することで、クラウドサービスが持っている構成拡張の機能を利用してスケーラビリティを確保できることもあります。ただしこの場合でも動的に追加されたMySQLサーバに対するアプリケーションからのアクセス方法の定義などが課題なり得

    第10回(最終回) クラウド環境によるスケールアウト構成 | gihyo.jp
  • 第2回 Webの「Response(応答)/Idle(非実行)」を改善しよう | gihyo.jp

    はじめに 人間は生活の中で、多くのアクションを起こし、多くのリアクションを受け取ります。それがどのようなカラクリで動いているのか知らなくても、期待するリアクションが起きれば、人間は満足するのです。 水道の蛇口は「ひねる」というアクションに対して「水がでる」というリアクションを起こします。そして、壁のスイッチは「押す」というアクションに対して「灯が点く」というリアクションを起こします。そこに人間は、何の不満も抱いたりはしないでしょう。 とはいえ、コンピュータはリアクションが起きるまでに、必ず遅延が発生してしまいます。コンピュータは、入力というアクションから出力というリアクションまでの間に、何かしらの処理を行わなくてはいけないからです。この処理が長引くほど、リアクションは遅れ、人間は違和感や不快感を持ちます。 Webのパフォーマンス基準であるRAILでは、こうしたリアクション、すなわち「Res

    第2回 Webの「Response(応答)/Idle(非実行)」を改善しよう | gihyo.jp
  • 第19回 UML(2) クラス図:Processingで学ぶ 実践的プログラミング専門課程|gihyo.jp … 技術評論社

    導入 現在主流となっているオブジェクト指向プログラミング言語を用いたプログラミングは、既存のクラスを利用するか、自前でクラスを記述するかしてソフトウェアを構成します。クラスの数が数個の小さなソフトウェアのうちは問題になりませんが、片手を超える数のクラスを取り扱うようになると、それぞれの役割や存在さえも不明確になってしまいます。図は概念を確認するための良いツールです。今回学習するクラス図は、その意味で私たちを助けてくれる頼もしい味方です。 展開 クラス図とは クラス図と、それに関連する語句の定義を示します。 クラス図 : 静的で宣言的な要素(クラスやインターフェイス、およびそれらの関係)の集合です。つまり、インスタンスにする前、sketchを実行する前のソースコード段階の各要素とその関係を示す図。 参考文献『オブジェクトモデリング表記法ガイド』より(一部文言を変更) 詳細度による描き分け ク

    第19回 UML(2) クラス図:Processingで学ぶ 実践的プログラミング専門課程|gihyo.jp … 技術評論社
  • 第31回 Perlによる自然言語処理入門(3) | gihyo.jp

    (1)はこちら、(⁠2)はこちらから。 自然言語処理における前処理、後処理 自然言語処理では各種ツールの前後でデータを変換する前処理、後処理が必要となることがあります。節ではその際に利用できるモジュールなどを紹介します。 表記の正規化 自然言語処理では、先述のUnicode正規化に加えて必要に応じて正規化を行います。 Regexp::Assemble Regexp::Assembleは、正規表現を使用して表記の正規化を行う場合に重宝するモジュールです。指定したパターンにマッチする高速な正規表現を生成します。 Number::Phone::JP Number::Phone::JPは電話番号の正規化を行う場合に使うモジュールで、数字の並びが電話番号か判定し、電話番号である場合は特定の番号表記に統一するといったことができます。 Text::Darts Text::Dartsにはgsubというメ

    第31回 Perlによる自然言語処理入門(3) | gihyo.jp
  • ページが見つかりません

    指定されたページは,サイト内に見つかりませんでした。 以下の手順をお試しください。 URLを直接入力した場合,入力ミスがないかご確認ください。 リンクを辿ってきた場合,リンクミスが考えられます。リンク元サイトの管理者にお問い合わせください。 該当するページについての情報をお持ちの場合,サイト上部にある検索ボックスから検索するか,トップページから該当するリンクを辿ってください。

    ページが見つかりません
  • 第31回 Perlによる自然言語処理入門(2) | gihyo.jp

    前回の(1)はこちらから。 Trie木――自然言語処理で使用する代表的なデータ構造 自然言語処理、特に統計学習ベースの自然言語処理においては、機械学習したデータを格納し、利用するためのデータ構造が必要となります。節では自然言語処理でよく利用されるTrie木というデータ構造について紹介します。 Trie木は接頭辞木とも呼ばれる順序付き木構造の一種で、木構造上のノードの位置とキーが対応します(図1⁠)⁠。図1では、丸が木構造のノードであり、1番上の丸が木のルートです。灰色の丸はキーの終端が存在するノードを表しています。ノード間の線がエッジであり、それぞれのエッジに文字が対応付けられています。Trie木にキーとして「tea」が登録されているか検索する場合は、ルートから探索を開始し「t」に対応するエッジがあればそのエッジの先のノードに遷移します。同様にして「e」「⁠a」に対応するエッジをたどった

    第31回 Perlによる自然言語処理入門(2) | gihyo.jp
  • 第31回 Perlによる自然言語処理入門(1) | gihyo.jp

    連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーはhide_o_55さんで、テーマは「自然言語処理」です。 自然言語処理とは 自然言語処理とは、人間が日常のコミュニケーションで使用する自然言語をコンピュータで扱うこと全般を指します。今回は自然言語処理の中でも自然言語で書かれたテキストをコンピュータで解析する手法を中心に、Perlによる自然言語処理について紹介します。 自然言語処理の手法には、大きく分けてルールベースと統計学習ベースの2種類の手法があります。 ルールベースの自然言語処理 ルールベースの自然言語処理は、対象となる言語の文法ルールを人手で定義して、そのルールに基づいて処理を行う方式です。人手でルールを定義するため内部の処理がわかりやすく、調整も可能という長所があります。一方、ルールの定義には高度な専門知識が必要、ルールのメンテナンスコストが大きい、新

    第31回 Perlによる自然言語処理入門(1) | gihyo.jp
  • 第2回 設計編 | gihyo.jp

    カンファレンスの準備も大枠ではプログラムを書くことと似ています。全体の設計をせずに突き進む事も不可能ではありませんが、やはり全体像の設計を事前にしておかないと要所要所で躓きがちです。 どんなに細部がうまく実装できてもプロジェクト全体としてうまく機能しないことはよくあります。YAPC::Asia Tokyoのようなイベントもまさにそれと同じで、まずそのイベントについての大枠の設計が重要となってきます。 イベント運営をする際にこのような設計が重要になってくるのはひとえにイベント運営とは取捨選択の連続だからです。決断を迫られた際にどちらの方向に判断を倒すかという指針をアドホックに決めていると収拾がつかなくなりがちなのですが、前もって設計をちゃんとやっておけばいざという時に一貫性を持って判断ができるようになります。 What(どんなイベントなのか) 最も重要な事項の一つにそれが何を目的としたイベン

    第2回 設計編 | gihyo.jp
    kazu_levis501
    kazu_levis501 2015/06/15
    [YAPC::Asia Tokyo 2015]
  • 第18回  UML(1) ユースケース図 | gihyo.jp

    導入 Java言語が登場して間もない頃だったでしょうか。IT系の雑誌広告に大きく宣伝されているRational ROSEなる製品に関心を持ちました。何やらこのソフトウェアツールを用いると、ソフトウェアの開発が効率化するというのです。その頃の私は図と言えばフローチャートしか知りませんでした。その広告にはフローチャートとは異なる不思議な図面が多数掲載されており、それらがどんな役割を果たすものかも分からず、ただ関心と期待を抱いたのでした。 その後、UMLの存在を知って書籍で学び、手描きながら自分のソフトウェア開発に活用してみると大変便利であることに気づきました。UMLは専用のソフトウェアツールを利用しなくとも、十分に有用な、まさにモデリングのための「言語」なのです。今ではUMLが標準的なモデリング言語として定着しています。 今回から数回に渡ってこのUMLの一部を紹介します。 展開 UMLとは プ

    第18回  UML(1) ユースケース図 | gihyo.jp