2013年1月から2019年12月までの7年間、Raspberry PiでWebサーバを運用していました。現在はAWSに引っ越しました。(AWSの勉強しないといけないので。。。) Raspberry PiでWebサーバを運用していた当時の導入・運用については過去のページを参照して下さい。 ■Raspberry Pi3 Type BでWebサーバ運用してました!(2018年3月~2019年12月) 2018年3月から2019年12月までRaspberry Pi3 Type Bで自宅Webサーバを運用していました。 導入や運用中のできごとを紹介します。 これまで約5年間、Raspberry Pi1 Type Bの1台で運用してました(詳細)が、データバックアップ先に使用していたプロバイダのHPサービスを都合により解約することになり、自宅内で常時バックアップを行う必要が発生しました。そのため、R
Raspberry pi を買ったはいいけれど、特に用途がないまま数日を過ごしていたけれど、 最近机の中に眠っていたウェブカメラがあったのでソレを使って監視カメラにしてみようと思った。 LANケーブルが届く範囲は限られているので、これもまた机の中に埋もれていた無線LANアダプタを利用して家の中ならばどこでも設置できるようにした。 無線LANの設定などは割愛。 多くの設定資料はネットに転がっているし、GUIで行えばWindowsで無線LANを設定したことがある人ならば直観的に分かるものだと思う。 カメラ接続 最近電気屋でも1000円前後で売っているウェブカメラでOK とはいっても、認識されないかもしれないからネットで検索してraspberry pi で認識された実績のあるモノを使うといいと思う。 僕が使ったのはElecomのUCAM-DLK130TBKというカメラ。 ちゃんと認識してくれたし
「ラズベリーパイ使えるようになってほしいんだよね」と、上司から突然渡されたのがこの箱でした。 ラズベリーパイ?お菓子の? (そんなわけないと思いますが)とりあえず開けてみます。 基板! 立体的な基板! 初見で分かるのはその程度でした。むしろ実物を触るのは初めてかもしれません。 一体これ何だろう?と、くるくる回して見ていると、さらりと指令が下されました。 「使い方覚えながらレポートも書いてね」 そんなわけで、ラズベリーパイ(ラズパイ)入門奮闘記を書くことになりました。 目次 書いているのはこんな人です ラズベリーパイ(ラズパイ)って何?おいしいの? 公式サイト HELP – What is a Raspberry Pi? 4.1. まずは歴史 4.2. 教育目的として作られたもの 4.3. Model AとModel Bがある 4.4. 内蔵ハードディスクや記憶装置を搭載しない 4.5. O
「ちょっと待って、これだとライオンは滅びてしまうと思うんだけど…」ノアの方舟の絵に対する大きな疑問 旧約聖書の有名なエピソードである「ノアの方舟(はこぶね)」。大洪水の前に、ノアが方舟に家族とすべての動物を乗せて、新天地へ向かうお話です。 その時に乗せた動物たちは子孫を残せるよう2匹ずつのつがいで、欧米では子供向けに絵本がたくさん出ています。 ところがある絵本に対して、「これでは子ライオンを作るのはかなり難しいのではないか…」と注目を集めていました。 どんな絵だったのかというと……。 神話のお話通りに2頭ずつ、つがいで船へ乗りこむ動物たち。 子孫を絶やさないためゾウも2頭、キリンも2頭、ライオンも2頭……。 ん? ライオン? んんん? 2頭ずつであるのはいいとして、このライオンの組み合わせは……。 そこはかとなく禁断(?)の香りが漂っております。 絵本とはいえ、生物学的にライオンの血筋は途
こんにちは。Java 初心者です。 Java 初心者、得に LL から Java に来た人にありがちな問題について社内向けに書いたものをオープンアンドシェアさせていただきます。 前提として、我々は Java 8 でガンガン攻めているということをご承知おきください。 また、自分がこの数ヶ月で「うわー。こうしとくべきだったのかー」と気づいたやつをドヤ顔で語っているということにもご注意ください。 【追記】 対象は中規模 B2C の場合です(中規模というのは facebook より小さいという程度の意味です) 例外を握りつぶさないようにしよう Eclipse が生成する以下のようなコードをそのまま残しているケース。 これは言うまでもなく良くないですね。デバッグが困難になります。 try { } catch (IOException e) { e.printStackTrace(); } Perl
ブログを始めた当初、カテゴリーのタグ付けがよく分かっていなかった。また、この後どんな話題について書いていくか、という想像力もなかった。だからこのブログのカテゴリー分けは、いい加減なのである。ところで、最近はAppleScriptの話題が多いのに、AppleScriptカテゴリーがないことに気付いた。そこで意を決して、過去の記事まで遡ってAppleScriptカテゴリーをタグ付けしてみた。(結構面倒だった)何とか終わって、AppleScriptタグをクリックしてみると、気持ち良く一覧表示された。 [AppleScript]記事一覧 現在まで、全部で74記事ある。予想外に多い。記事の人気としてはどんな傾向があるのか、少し調べてみた。 ブックマーク数ランキング(ベスト10) こんな感じであった。 サービスがいいMacBookにしておく MacBookのあらゆるウィンドウをキー操作で自在に操るため
ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog はじめに こんにちは。R&D統括本部 制作本部 ウェブデベロップメント部に所属しております。岡部和昌(@kzms2)と申します。 最近スマートフォンやタブレット向けのページを作成する機会が増えてきました。 なので、今回はちまたで大人気のHTML5について書きます。 若干今更な内容にも思えますが、あまりHTML5になじみがない方にもわかってもらえるような内容にしています。 HTML5の基本概念や思想・実際の組み方というよりも、 HTML5で組むと今までと比べて何が違うのか などについて書いていきます。 なぜこれからHTML5なのか HTML4との違いがわからない HTML5を使う利点がわからない など疑問に思っている方はぜひ見ていた
velc: これ、思ったより大変でした。 自分含め、うちにいるメンバー全員、 これまでの経歴では受託開発をメインにやっていたため、 自社サービス開発の経験はかなり少なかったです。 でも、ヴェルクでは、受託開発をしつつ、 時間を作って色々と作っていこう、というスタンスのため、 起業直後から色々と企画を考えていました。 でも、受託開発脳から自社開発脳への切り替えは思った以上に苦労しました。 要件定義等でお客さんと一緒に要件を考えたりしますが、 最終的に「やりたい事」を持っているのはお客さんになります。 要件定義の前の企画やグランドデザインと言った分野は お客さんの戦略に沿ったものになります。 だから、最終的には、誰かが答えを持っている事が殆どです。 そのため、ゼロからそれを考える事があまりないんですよね。 いざ、ゼロから自分たちで企画を考えようと思った時、 いろいろと壁がありました。 1. 本
私はすばらしいコードを「エレガントなコード」と呼ぶ@HIROCASTERでございませう。 まず、はじめに。本書はハッカーは読まなくて良い。普通のプログラマに読んで欲しい。 デザインパターンやリファクタリングよりも、本書に書かれていることの方がプログラマは毎日考えて、意識してコードを書くのだ。 よって、普通のプログラマならば本書を読んでおきたい。普通のコードを書く人にオススメの1冊だ。 例えるならば、バク転や月面宙返りをする方法ではなく、日常的におこなわれる「歩く」という行動に着目し、姿勢良く、美しく、シッカリ、確実に歩くための方法が書かれている。 本書の目的は、君のコードをよくすることだ。 「良いコード」の定義とは、コードを読んだときに最短で理解できる様に書かれていることである。そう、本書は伝えている。 では、良いコードを書くための方法を具体的に学んだり、教えられたりしたことはありますか?
僕がプログラミングに触れた当時は、プログラミングといえば「まず C 言語」でした。それから 10 年以上が経ちました。学校の授業や企業の研修では未だに C 言語を教えているところがあるようです。関数型プログラミング言語という波が来ている 2012 年にもなって未だに C 言語をやっているというのはまるで進歩が無く残念な気もしますが、比較的多くのプログラマに浸透している共通言語を最初に教えるというのは、一方では喜ばしい事だと解釈する事もできるのかもしれません*1。まぁとにかく、本意にせよ不本意にせよ現場で プログラム初心者に C 言語を教える羽目になった 人がたくさんいて、プログラム初心者なのに C 言語を学ばざるを得なくなった 若者がたくさんいるということです。 C 言語を教えるときに避けて通れないのがポインタで、プログラム初心者が C 言語を学ぶときにやたらとつまずく人が多いのがポインタ
独立行政法人情報通信研究機構(以下「NICT」、理事長: 宮原 秀夫)は、組織内ネットワークにおけるマルウェア感染などを迅速に検知し、警告を発行する対サイバー攻撃アラートシステム“DAEDALUS”(ダイダロス: Direct Alert Environment for Darknet And Livenet Unified Security)の外部展開を開始しました。DAEDALUS は、日本各地に分散配置されたダークネット観測網を用いて、組織内から送出される異常な通信を検知し、当該組織に対して迅速にアラートを送信します。既存の侵入検知システムや侵入防止システムなどと DAEDALUS を併用することによって、組織内ネットワークの情報セキュリティの一層の向上が期待できます。 NICT は、6月13日(水)〜15日(金)に幕張メッセで開催される「Interop Tokyo 2012」におい
某DevLoveというところで話をしろ、ということでありましたので、いろいろ話をして来ました。 http://devlove.doorkeeper.jp/events/1733 まとめはこちら http://togetter.com/li/387189 あと、しんやさんの詳細なブログがこちら http://d.hatena.ne.jp/absj31/20121009/1349795347 スライドはこちら http://www.slideshare.net/okachimachi/devlove1 以下、ちょっと自分なりにまとめを。 ■自分なりにどう話したか 自分の仕事的にはHadoopとAsakusaでの課題解決が現在の本業です。ただ、Asakusaの位置づけとして、SIのための道具立てという側面が強く、また結果として会社も直接・間接にSIにはかかわっているので、割と現状の問題も意識して
下記の文章、「こういうテーマでufcpp.net内のC#ページを更新(今の【雑記】的にやるか、新しいフォルダー掘るかして)したい」というもの。 いつ手を付けるかは未定。実際のところしばらく無理。 表題、誇張ではなく、割と真実。 ソフトウェアに求められる品質水準は非常に高くなっていて、開発者に求められる知識は年々増えています。 単純にプログラミング言語の基礎を覚えるというだけではまるっきり不足で、そこから様々なパターンを覚えて初めて実用化に足る最低水準になります。 パターン。 こういう場面ではこう書くと解かりやすい こう書かないとこんな問題が 計算速度優先ならこう、省メモリならこう 等々、いわゆる先人の知恵。 歴史を積み重ね、普通に1からたどるにはあまりにも遠い道のりに至りました。 先人と同じ手順を経ていては、追いつくことで精一杯。その先の新しい世界を目指すことも叶いません。 楽をするひつよ
最近ではパソコンとiPhone、またはiPad、など一人で何台もネット接続が可能な端末を所有することも普通になってきました。 旅先のホテルでインターネット回線が1端末分しか使えない場合、端末をその都度付け替えて使うか、もしくはお金を追加で支払うことで複数台使えるようにするか、という選択肢に迫られます。これではせっかく端末があっても宝の持ち腐れになってしまいます。快適とは言えません。 こんなとき、実はノートパソコンをWi-Fiアクセスポイントとして活用することで、この問題を解決する、という方法があります。部屋にイーサネットポートがある場合、ノートパソコンのワイヤレスカードを使用してインターネット信号の受信ではなく、発信させることも可能です。しかも設定もシンプル。これを知っていれば、回線の数に神経質になる心配もなく、余計なお金を払う必要もなくなります。ぜひおすすめしたい技です。 なお、Wind
ユダヤ式記憶術 口コミについて調べているなら、こちらのサイトをよく見たほうがいいです。 そして「試験に受かるユダヤ式記憶術」を購入したいと考えているなら、上記のサイトで、「試験に受かるユダヤ式記憶術」を使うことで何ができるのか、きちんと理解してからお求めになることをオススメします。 また、口コミや評価が書いてあれば、それもしっかりと見ましょう。 以下の「試験に受かるユダヤ式記憶術」についての情報も役立つかもしれません。 商品名称:「試験に受かるユダヤ式記憶術」 商品紹介:新タイプの記憶術。 従来のイメージ式記憶術を覆す。東大(文Ⅰ)から東大大学院卒業、外国語を40ヶ国以上マスターし、数多くの難関資格に一発合格してきた著者が指南。 大学受験高校受験難関資格試験の最強の武器になる記憶術。新タイプの記憶術。 従来のイメージ式記憶術を覆す、難関試験向けの論理記憶術。 商品価格:17800円 商品提
これさえあれば、あなたのiPhoneも一瞬にして、おサイフケータイに! また前置きが長くなってしまいましたが……。 では、「Sinji Pouch」のご紹介をします。ご覧ください。 まずはパッケージから ケースが赤ですからね。もちろん赤をチョイスしました。 薄っぺらい物が入った封筒がポストの中に入ってました。 もちろん、ダンボーはついてませんよ。 ちなみに色は、ブラック、ホワイト、バイオレット、ネイビー、ライトグリーン、ピンク、レッドの7色あります。お好きなモノをどうぞ。 中身を取り出してみました 写真だと結構鮮やかな赤ですが、実物はもう少し濃いワインレッドっぽい色です。 レオタード生地なので、手触りがいいです。 うふっ♪レオタード……。 裏面はこちらです 全面に3Mのテープが貼ってあります。 一応、何度も貼り直しがきくそうですが、かなりの粘着力だそうです。 貼る前に接着面を乾いた布などで
海外旅行に行く時にEvernoteのオフラインノートに入れている10個の書類。 最終更新日: 2017/01/01 Evernote こんにちは、海外旅行大好き@sayobsです。今日は僕が海外旅行に行く時にEvernoteのオフラインノートに入れている書類を公開します。 海外についた時は電波がない場合が多いと思いますので、エバーノートのオフラインノートが非常に重宝します。※オフラインノート機能はプレミアム会員だけ。 Evernoteのオフラインノートの中身 ✔パスポートのコピー海外旅行の際に飛行機の中で書く「出入国カード」にパスポート番号を書くので、予めevernoteのオフラインノートに入れておくと便利ですよ。 紛失した際にも便利です。 ✔航空券最近は紙の航空券ではなくてeチケットだけで良い航空会社も増えてきました。航空券もEvernoteに入れています。 ✔ホテルのバウチャー海外のホ
あと1ヶ月もすればもうクリスマスだ。そしてまた1年と1ヶ月もすれば来年のクリスマスだ。アレも欲しい、コレも欲しい。でも、本当に欲しいモノって何だっけ?欲しいモノを聞かれて、すぐに答えていた子供の頃。歳をとるほどに、自分の欲しいモノがわからなくなる。そしてプレッシャーがかかると、思わず「からあげ」と答えてしまう。僕の欲しいモノは何なんだろう。 そうだ。サーバーだ。サーバーが欲しかったんだ。僕はずっとサーバーを探していた。昔はRailsが動くレンタルサーバーなんてなかった。専有サーバーを借りるお金などなく、ロリポップの525円の共用サーバーは当時としては珍しくRubyのCGIが動いたので、妻名義で申し込んで(ごめんなさい!)、RailsをCGIモードで動かしては画面遷移するたびに10秒くらい動かない画面を見つめたりしていた。最近は、ServersMan@VPSが490円で使えて安いんだけど、や
この投稿は 12年半 前に公開されました。いまではもう無効になった内容を含んでいるかもしれないことをご了承ください。 CotEditorをまた使い始めた理由 新しくなったCotEditorアイコン CotEditorとはMacのテキストエディタの中でも評価が高くて(via 小飼弾氏)愛用していたのですが、開発者さんが更新停止されたので一時期 Simulton(Fraise) → TextWranglerに浮気をしていました。無事に後任の方が見つかり、更新も定期的に行われているので、またCotEditorを再使用することにしました。UIが日本語の方が親しみやすいですし、検索オプションも充実してます。先日のリリースで自動アップデート更新もついたみたいですね。これは嬉しいです。 僕がコーディングをするときは基本的にAptana Studioなんですが、VMWareを使ってブラウザチェックしている
細かすぎて伝わりにくいTopCoderのコーディングスキル向上マジック:最強最速アルゴリズマー養成講座(1/3 ページ) 競技プログラミングはレベルの高い人たちの集まり――そんな考えを持っている初心者の方、TopCoderはあなたのコーディングスキルを爆発的に高める魔法のような場です。今回は、初心者にこそお勧めしたいTopCoderの魅力について考えます。 教育的な観点から見るTopCoder 今回からTopCoderに関する実践的アルゴリズムを解説していく予定でしたが、序盤のうちに触れておきたいことがありましたので、今回の枕は“教育的視点から見るTopCoder”というテーマで少し書こうかと思います。 まず、最初に宣言しておきたいことは、この連載は初心者向きである、ということです。「どう考えても上級者向けだろう」という意見はたくさんの方から寄せられていますが、筆者は、まだプログラミングレ
モバイルアプリケーションをHTML/CSS/JavaScriptなどのWeb標準技術を用いて開発するためのさまざまなツールや環境が登場しています。1つ前の記事で紹介した「jQuery Mobile」もその1つですが、それ以外のものもここでまとめて紹介しましょう。 jQuery Mobile jQuery Mobileは、JavaScriptライブラリとして知られるjQueryのプラグインです。オープンソースで提供されています。 「マークアップドリブン」をコンセプトとし、HTMLを記述していくことで、あらかじめ用意されているボタン、メニュー、ダイアログボックス、などのモバイル対応のタッチユーザーインターフェイスを備えたアプリケーションを開発できます。 クロスプラットフォームに対応し、iOS、Android、WebOS、Windows Phone、Symbianなど多数のデバイスでそのまま動作
どうも、鈴木です。 さて、前回は vim の使用法というじつに低レベルレイヤの出身者的な記事を書きましたが、 今回も懲りずに低レベルのお話しをしたいと思います。 というのも、先日「ブログ書くのめんどくさいよぅ」と駄々をこねていたところ、あまりにレガシーすぎる HTML/CSS/JavaScript 仕様や Flash や Silverlight といったプロプライエタリなリッチコンテンツ用プラグインに日々苦しめられている気弱く善良な一介の WEB プログラマにすぎない我々の希望の星であり、そして同時に新たな巨大クソレガシーの萌芽でもある HTML5 が、いかにイケてないのではなくイケているのであるかを盛んに啓蒙するサイトである HTML5 Rocks (http://www.html5rocks.com/) に、"How Browsers Work" というとても楽しい記事があるのを、我が
JavaScriptの実行をブロックするFirefoxの定番拡張「NoScript」が、Android版Firefoxにも対応した(ITmedia)。UIはタッチスクリーン向けに最適化されているという。 非力なスマートフォンにこそ有用なNoScriptがAndroidで利用できるのは歓迎したいところ。
サービス終了のお知らせ NAVERまとめは2020年9月30日をもちましてサービス終了いたしました。 約11年間、NAVERまとめをご利用・ご愛顧いただき誠にありがとうございました。
FTPS・SFTP・TFTP・FTPに対応し、直接リモートのサーバ同士で転送するFXP、タブの利用、非常に柔軟な見た目のカスタマイズ、スケジューラーによる定期的な転送、ドラッグ&ドロップによる転送、スクリプトエンジン内蔵、UPnP対応、FTPサーバ上のファイルを検索する機能、各種プロキシ対応、UTF-8文字コードOK、高速アップロードとディレクトリ移動を高速化するキャッシュ機能搭載、そして日本語表示可能で最初からローカライズ済み、USBメモリで動くポータブル版もあるという恐ろしく強力なFTPクライアントがこの「FTP Rush」です。 もともとシェアウェアだっただけのことはあり、機能的には充実を通り超えて何に使うのか分からないぐらい超多機能なのが特徴で、Windows 2000/Windows XP(32/64ビット)/Windows Server 2003(32/64ビット)/Windo
11月25日、「mobidec 2011」においてコナミデジタルエンタテインメントのスタジオITセンター長である正延光弘氏によるセッション「大ヒットSNSゲーム『ドラゴンコレクション』を支えるコナミのクラウド技術の活用」が行われました。 ドラゴンコレクションは、GREEで提供されている携帯電話向けのカードゲームタイプのRPG。プレイヤーは、エリアごとにある複数のクエストをクリアしていき、モンスターカードや「秘宝」を手に入れ、さらに「ドラゴンカード」を集めていきます。また、ほかのプレイヤーとバトルすることでも秘宝を入手できるというSNS要素も取り入れられていました。2010年9月のサービス開始後、順調にプレイヤー数を伸ばし、現在では登録人数が500万人を超えています。 サービス開始当初は社内でサーバを構築し、フロントエンドに6台のサーバ、バックエンドに3台のデータベースサーバ、そしてロードバ
はじめに みなさま、こんにちは!年末の忙しい時期ですが、お元気ですか? 僕はなんとか元気です>< 使っていた PC を壊してしまったので Windows7 搭載マシンを買ってきましたので、購入から初期設定、便利なアプリのインストールまでここにメモしておきたいと思います! 購入まで と言うことでまず購入までにやったことをまとめてみたいと思います 価格.com で調べる まずは、価格.comを使って、以下の条件で良さそうなパソコンを探してみます。 8 万円以下の価格 それなりのグラフィックボード(最近 Minecraft っていうゲームをやってるので) それなりのメモリ(メモリ安いので) それなりの CPU USB 3.0 (データ移行のときにハードディスクを USB 3.0 でつなぎたいので) ディスクアクセス速度は、ある程度遅くても良い(RAM ディスクで頑張る戦略) 買うパソコンを決める
むむむ、Chrome をメインで使っている私ですが、こんな記事がでてくるとまた Safari に戻ろうかと考えてしまいます。 the Apple Blog でいますぐインストールしたい7つの拡張機能という記事があり、なかなか便利な拡張機能が紹介されています。 元記事は記述だけでしたので、なるべく画像も含めてご紹介。 AdBlock いわずと知れた広告ブロック機能です。単に広告を消すだけでなく、ブラックリストやフィルター、そして例外サイトも定義できます。e-mobile で出先からアクセスすることが多い昨今、大容量の広告を押し付けてくるサイトはこれでブロックしておくと便利そうです。 Type-To-Navigate この機能にはグッときました。マウスでリンクをクリックしなくても、リンクの文字列を数文字入力するとその部分がハイライトされて、Enter キーを押すだけでリンクに飛ぶことができます
中級クラス〜のデベロッパにとって,フォローする事が望ましいIT系雑誌のリスト。 また,それらの読み方。 つまり,書店における立ち読みのポイントと,購入の判断基準。 (1)Web+DB PRESS (2)Software Design (3)日経Linux (4)日経NETWORK (5)日経SYSTEMS (6)日経ソフトウェア 補足 なぜ雑誌なのか? 読者層としては, 主にWebアプリの開発をチーム内でリードするエンジニアやアーキテクトを想定。 (1)Web+DB PRESS 雑誌のホームページ http://gihyo.jp/magazine/wdpress この雑誌の読み方: 「特集」は無条件で精読する。 「プログラミング言語の記事」は,下記の点に注目して把握する。 言語の癖や特色,他の言語と差異化するファクター その言語から,あるサービスを利用するためのAPIの存在 バージョンアッ
作りたいものが決まったら調査をしましょう。特に技術的なことについてです。 ここで言う技術というのは、「自分が作りたいことが世の中の利用可能な技術で実現できるか?」を意味します。 その際に「自分のスキル」と「世の中の技術」を分けて考えるといいでしょう。 アイデアを実現するために「利用可能な技術が無い」ケースはあきらめればいいですし、 「あるけれども自分にスキルがない」ケースは頑張ればいいのです。 設計は紙に書いちゃうくらい簡素なもので最初はいいかもです。個人個人のスタイルがあるので。 ユースケースという「ユーザーがシステムに対して振る舞う行為」を図にすることと、 扱うデータには何があるのかを列挙して構造化することは最低限行います。 2. 開発 いよいよ開発です。Perl、Python、Ruby、PHP... 何を使うにしろ以下の知識が必要になると思います。 言語に対する理解 WAF DB フ
2013年11月28日 便利ツール 私のメインマシンはMacです。以前から制作環境であったり、使ってるアプリを紹介してほしいとのリクエストを頂き続けているので、やっと重い腰をあげてまとめてみます…。というのも結構有名所のものばかり使っていて、目新しいものは特にないので…あまり…面白くないかなって…。それでも読んであげるよっていう優しい人は続きをどうぞw ↑私が10年以上利用している会計ソフト! 簡単にスペック紹介 Macbook Pro 13″です。それでWebデザインって画面小さくないかって?小さいですよ!大きな画面に憧れてますよ!しかし国をまたいだ引越しが多く、作業もカフェや図書館ですることが多いので、持ち運びを重視して小さなサイズです。いい加減デュアルディスプレイにしたいです。 デスクトップ。普段はドック隠してます。デスクトップがファイルだらけになるのが嫌いなので、一時的に画像やファ
「ソフトウェアのプロになるには本書が必要だ!」と、ボブおじさんがおっしゃっております。 このボブおじさんは、あの有名なアジャイルマニフェストにも名前を連ねているRobert C. Martinです。 プロとしての最低限必要な知識、姿勢、規律など、教育を受けたり学んだことがあるプログラマはあなたの現場に何人ぐらいいるでしょうか? 今こそ、本書を取って、プロとしての道を歩み始めて欲しい。(amazonでずっと売りきれだったけど、やっと入荷したようだ。すぐに売り切れそうではあるが…) プログラミングの練習僕はプログラミングの練習というのを意識的にあまりやったことが無い。日本だとTDD Boot Campなどでおこなわれる小さなテーマでプログラミングをおこなうことである。本書の6章に練習について書いてる。 個人的にはRubyKaigiで、ペアプロした外人が、これはToys Programmingと
いつの間にかさくらのVPSの標準OSがCentOS6になってたので設定を見直してみました。 月額980円/月から利用でき、2週間のお試し期間もあるのでこれを機会にサーバ設定に足を踏み入れてみてはどうでしょう? 慣れると10分くらいでウェブサーバが立ち上げれるようになります。 すみません。こんなに多くの人が見てると思わなかったんです。 お一人様サーバ向けのつもりで書いてます。 タイトルもタグもネタだったのにツッコまれまくりで恥ずかしい… 公開鍵登録しよう どうせ自分しか触らないなしrootで作業しちゃってもいいんじゃない? リブート(またはsshのrestart)以降秘密鍵がないとsshでログイン出来なくなるので気をつけてください。 mkdir ~/.ssh/ touch ~/.ssh/authorized_keys chmod 700 ~/.ssh/ chmod 600 ~/.ssh/au
AndroidやiPhoneのHTML,CSS,JavaScriptのバグまとめ AndroidやiPhoneなどのスマートフォンではHTML,CSS,JavaScriptにバグが多くてコーディングが大変になります。そこでバグを紹介しているサイト、記事をまとめてみました。(中にはバグではなく仕様なものもあるかもしれません) iOS 8.4.1の:hover問題 iOS 8.4.1で:hoverを指定していると1タップでページ遷移できない問題 【STINGER5】AndroidのChromeで が「・」になってる気がする | ビビビッ を に変更すると直るとのこと。 Mobile Safari 8でposition: fixedした擬似要素が完全に位置が固定されない - Weblog - Hail2u.net Mobile Safari 8でposition:
※この記事は、書籍『Android Security 安全なアプリケーションを作成するために』の第3章の内容を、ThinkIT向けに特別にオンラインで公開しているものです。詳しくは記事末尾の書籍紹介欄をご覧ください。 セキュアなアンドロイドアプリを開発するためには、アンドロイドOSのセキュリティ設計を理解しておく必要があります。本章では、アンドロイドのセキュリティ関連の設計と動作について技術的な観点から見ていきます。 3.1 セキュリティアーキテクチャ アンドロイドのセキュリティは、以下の4つの要素で構成されています。 証明書(キーストアファイル) アプリケーションの作者を識別するだけではなく、パーミッションの一部としても使用されます。 ユーザID アンドロイドOSにインストールされたアプリケーションにはそれぞれ個別のIDが割り当てられます。このIDはLinuxのユーザIDとグループIDに
日経Linux 2013年1月号に「“誤認逮捕”を防ぐWebセキュリティ強化術」を書き、それが今週4回連載で、ITproに転載されました。この中で、クロスサイトリクエストフォージェリ(CSRF)対策について説明しましたが、クッキーモンスターバグ(Cookie Monster Bug)がある場合に対策が回避されることに気がつきました。 それでは、どのような対策が望ましいかを考えてみると、中々難しい問題です。以下、その内容について検討します。 解決すべき課題の整理 記事の趣旨は、昨年無実の市民のパソコンからCSRFによる犯行予告が横浜市のサイトに書き込まれたことを受けて、サイト側でCSRF対策をして、なりすまし書き込みができないようにしようというものです。なりすましの犯行予告には、CSRFのほか、マルウェアを用いる方法、CSRF以外のWebサイトへの攻撃手法もあるので、CSRF対策だけで十分と
プログラムの定義プログラム:定義づけられた物事を進めていく妥当な手順・方法の決定、および物事・手順・方法の記述書 プログラミングの定義(コンピューター)プログラミング:コンピューターが進めていく物事を定義し、妥当な手順・方法を決定し、記述すること。 プログラミング = デザイニング union コーディング; デザイニング:進めていく物事を定義し、妥当な手順・方法を決定すること。 コーディング:コンピューターが進めていく定義づけられた物事の決定された妥当な手順・方法を、記述すること。 プログラミングに関わる人々PG(プログラマー):プログラミングする人。 CD(コーダー):コーディングする人。プログラマーとは限らない。 SE(システムス エンジニア):進めていくべき物事を定義する人。プログラマーとは限らない。 PM(プロジェクト マネージャー):(プログラマー)プログラマー。(コンピュータ
色んなニュースで取り上げられているけど、結局肝心のところが捨て置かれたままに数字とかアプローチの是非が巷で語られてるので補足します。 asm.js の js とは何か JavaScript の言語コア部分、ECMAScript のこと。DOM は入ってない。Mozilla が JavaScript という単語を使う場合、 SpiderMonkey 上に実装された ECMAScript の Mozilla 方言 ECMAScript ECMAScript + DOM の3パターンが存在している。1と2の区別がつかないのは仕方が無いけど、2と3の区別がついてない人が多すぎるので敢えて書いた。 OdinMonkey SpiderMonkey の asm.js 実装のこと。IonMonkeyで構築された使ってAOTコンパイルする。非asm.jsなコードが OdinMonkey で速くなるわけではな
と、言われた際にどう最初の一週間を過ごすべきか、という話です。 ○はじめに MBAを買って本1冊Xcodeで必死に写経したことを「俺iOS個人的にやったことありますし余裕ですしおすし」と自慢すると半年から1年ぐらい経って忘れたころにこうなります。気をつけましょう。 # 自分はiOS歴3weekぐらいの雑魚な上に多大にジョーク成分が含まれておりますので応用には留意願います。 流行に乗って買うだけ買って使っていないApple製品がある際には月曜朝からこれ見よがしに机の上に広げてください。 まわりに「俺iOS始めたしお前らAndroidとかにはつきあってられないし」というアッピルは邪魔をされないために効果的です。 ・Xcodeでの開発にはMacが必要です ・シミュレータではできないことがあるためiOS実機があると良いです。 ・最新のiOS 6.xが動作しないデバイスの場合は候補としてイマイチです
注:本稿はまだ書きかけです!書きかけです!まだ一般に知らしめようとする前にブクマされました!w 間違いの指摘やコメント等は lestrrat @twitter にください! Perl環境の設定方法はここ数年で大きく進化し、変わってきました。ここではアプリケーションのデプロイも見据えた、モダンなperl環境の整え方を紹介していきます。具体的にはperl本体や外部モジュールのインストール方法を解説したのち、Perlを使ったアプリケーションを管理・運用していく際に依存関係等はアプリケーション毎に管理できるようにしてグローバル環境に可能な限り干渉しない方法を紹介します。 目次 1.1 Perl本体のインストール 1.2 依存モジュールの管理・インストール 1.3 Cartonによるアプリケーションの実行環境の構築 tl;dr 本稿を読む前にポイントだけ知りたい!という方向けのまとめです: OSに同
フェルミ推定のお話 「1台のバスにゴルフボールは何個入りますか?」 「シカゴにピアノ調律師は何人いますか?」 「東京に電柱は何本ありますか?」 Google入社試験などでよく出題されるフェルミ推定の解き方。 ビッグデータを短期間で推定するための着想・工程・計算方法。 電話のお話 PSTN(公衆交換電話網)への入り方。電話の切断理由コードの取得方法。 Asteriskを使ってパソコンをPBX(構内電話交換機)にする方法。 ファイルシステムのお話 NTFS、EXT4、XFS、ZFSなどの特徴とジャーナリング構造。 rm -rfコマンドで誤って消したファイルを直ちに復活させる方法とか。 性能評価方法、新しいファイルシステムBtrfsのご紹介。 Androidのお話 Android端末にカスタムROMを流し込む方法。ADBドライバの使い方。 Google Playを経由しないAPKの管理方法。Go
最近、HTML5アプリ案件でローカルにデータを保存する必要があり、Local Storageを使うかIndexed DBを使うか検討しました。 その際、Indexed DBに関していろいろと調査したので残しておきます。 Indexed Database APIとは キー・バリュー型のデータベースです。まだワーキングドラフト(草案)の状態のため今後、仕様が変わる可能性があります。 ネットで探すとIndexed DBの記事は見つかるのですが、記事が古いとエラーが発生しました。この記事のソースコードも今日時点(2013/4/25)では動きますが今後動かなくなる可能性があります。 Local Storageと何が違うのか Local Storageと違うところは以下の3点です。 Indexed DBはキー以外の項目にインデックスを張ることでキー以外の項目も検索条件にできます。 Indexed DB
ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog Yahoo!デベロッパーネットワークの中野(@Hiraku)です。JavaScriptでサンプルコードを書く機会があったので、どんなインターフェースで提供するのが便利なのか考えてみました。よく問題になるコールバックのネスト問題について、一般的な話をまとめてみます。 お題 突然ですが、次のような処理を行う必要があるとします。 「0」を出力する 1秒待つ 「1」を出力する 1秒待つ 「2」を出力する これをプログラムで書くとどうなるでしょうか? シェルスクリプトの場合(同期) たとえばシェルスクリプトで素直に書くと、次のようになります。
前回 は、「Creating Responsive Applications Using jQuery Deferred and Promises」 の記事と jQuery のリファレンスを翻訳し、Deferred の解説をお届けしました。が、今一歩、Deferred オブジェクトの うれしさ をお伝えできていなかったように思います。今回はその反省をふまえ、単なる翻訳ではなく、元記事の文脈に沿って、Deferred オブジェクトをどのように使うと/何がうれしくて/どうしあわせになるのか、私が学習して得た事をお伝えしたいと思います。 今回は、4本の jsfiddle を記事に埋め込んでいます。jsfiddle 上で自由に編集してテストしてもらえばうれしいのですが、4本すべて実行すると1.4MBものリソースを読み込む事になり、ブラウザに優しくありません。すぐに タブや をクリックせずに、 タブ
CodeIQ中の人、millionsmileです。 いろいろ経歴を積むと、「いまさら聞けない」ことが増えてきます。「オブジェクト指向」というのもそんないまさら聞けないものの一つでしょうか。 そんなわけで、いまさら聞けないことをイマサラ問題として出題してみました。 問題は、日本のITエンジニアの父と言いたくなるくらい温かみのあるフィードバックをしてくれることで好評な有限会社システム設計の増田亨さんからの出題です。オブジェクト指向設計について2問出題していただきました。総計65名もの方に挑戦いただきました! 問題の解説記事は、オブジェクト指向設計の3つのコツを中心に説明してくれていますので、読みやすいですし、頭にすっと入ってきます。 ではでは、増田亨さんによる解説記事をお楽しみください。 https://codeiq.jp/ace/toru_masuda/ ◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
TweetPocket jQueryのパフォーマンス高速化Tipsまとめ jquery-logo jQueryのパフォーマンス高速化Tipsのヒントリストです。 セレクタのパフォーマンスのヒント 1. 常に#ID から辿る jQueryで要素を選択する最速の方法は、IDによるものです。 $('#content').hide(); $('#content p').hide(); 2. クラスの前にタグを使用 jQueryで2番目に早いセレクタは、タグセレクタ($(’head’))です。 なぜならそれはネイティブJavaScriptメソッド、getElementsByTagName()だからです。 最良の方法は、接頭辞にタグ名(およびIDから派生)を持つクラスです。 var receiveNewsletter = $('#nslForm input.on'); クラスセレクタは、jQueryの
公開 2010年6月6日(日) 更新日 2014年8月18日(月) スポンサーリンク jQueryを使っていて、thisとその子要素を同時に指定したい場合がある。 結構いろんなやり方があるみたいで、取りあえず使いやすそうなので下の3通り。 $("hoge",this) $(this).children("hoge") $(this).find("hoge") 一番上がシンプルでいいかと思うんですが、取得したいthis直下の要素名をthisの手前に書くんですね… 使いどころは多そうですが、例えば下みたいなの。「Click1」をクリックしたらその直下の<div>が隠れるようにしたい場合とか。 <ul> <li>Click1 <div> <h2>Menu1</h2> <p>text1</p> </div> </li> <li>Click2 <div> <li>Menu2</li> <li>tex
※各メソッドにかいてある[条件]ってのは、タグ名やid、クラス名を指定するってことです。 条件を入れると、条件にあったものだけが取得されるようになります。 例:$(elem).parent("div.class-name, #id"); 通常のJavaScriptでの要素取得方法は→[JavaScript] 親要素・子要素・兄弟要素の取得方法 ■親要素の取得 □parent([条件]) 親要素の取得。 すぐ上の親要素のみ。さらに上の先祖要素にはさかのぼらない。 $(elem).parent("div"); 親要素がdivだったら親要素が取得できる。divじゃなければ空。 □parents([条件]) parent()と違い親より上の先祖要素までさかのぼる。 $(elem).parents(".class-name"); class-nameというクラス名がついた先祖要素のみ取得 □clos
実践編 目次 オリジナルの通信プロトコルを実装してみよう(Netty 実践編1) - Taste of Tech Topics オリジナルの通信プロトコルを実装してみよう(Netty 実践編2) - Taste of Tech Topics こんにちは!新しい物好きなエンジニアのツカノです。 Vert.xがますます面白いところに入ってきましたが、今回は久しぶりのNettyシリーズです。Vert.xは通信周りにNettyを利用しており、その仕組みを理解する上でも良いかと思います。 前回シリーズを掲載した後、Nettyの世界では大きな変化がありました。ついにNettyのメジャーパージョンアップであるNetty4がリリースされました。Netty4ではパッケージ名から変わっており、直接的な互換性もありません(パッケージ名やクラス名を置き替えることで、ある程度移行できます)。そのくらい大きく変わって
連載「Webサイト・アプリ高速化テクニック徹底解説」の第4回は、JavaScriptのチューニングのうち、ボトルネックになりやすいDOM操作の最適化について解説します。前編・後編にわたって、DOM操作が遅くなる原因と仕組み、その解決策について詳しく解説します。 CodeIQとの連動企画! この記事で学べるJavaScriptチューニングのテクニックを、実際にCodeIQの問題で試すことができます。もう既に自信がある方は腕試しに、もしくは理解度チェックのための復習として是非ご活用ください!こちらから問題にチャレンジ! DOM(Document Object Model)とは、HTMLをアプリケーション(ここではJavaScript)から利用するためのAPIです。JavaScriptによるユーザーインターフェースの構築やレスポンスの表示など、インタラクティブな部分はほとんどがDOM操作によるも
カリフォルニア州エルセガンドに本拠をおくカスタムアプリケーション開発会社のTechEmpowerが,"Java 8のすべて(Everything about Java 8)" と題するブログ記事を公開している。まもなく来るJava 8において,開発者が直面する変更点を包括的にとりまとめたものだ。ここではその記事の概要を紹介する。詳細な内容についてはTechEmpowerのブログ記事を参照してほしい。 インターフェースの改善 インターフェースでstaticメソッドが定義できるようになった。例えばjava.util.Comparatorには,次のようにstaticなneutralOrderメソッドが追加されている。 public static <T extends Comparable<? super T>> Comparator<T> naturalOrder() { return (Com
JavaScriptのプロトタイプチェーンについて理解しようとしたのだけど、prototypeとか__proto__とかごちゃごちゃになって、色んなブログを読んでもなかなか理解しきれなくて悶々としていたのだが、図を書いたらパッと理解できた!以下、情報ソースはなるべくECMAScript仕様書(3rd)を元にするようにして書きました なぜ分かりづらいのか? そもそも、なぜJavaScriptのプロトタイプチェーンは自分にとってこうも分かりづらかったのだろうか?自分なりに分析してみると、まず、「似ているが違う用語が沢山ある」という点がある。ざっとあげただけでも、「prototypeと__proto__」「__proto__と[[Prototype]]」「FunctionとFunctionオブジェクト」などがある。そして次に、「入り組んだ構造が動的に変化する」という点がある。上記のように似たよう
いままでのJavaでは、日付時刻を扱おうとするとめんどくさい割に非常に低機能でした。 Java8では、新たに日付時刻APIが導入され、めんどくささが増しつつ非常に高機能になりました。 (以降、Java8で導入された日付時刻APIを単に「日付時刻API」と表します) もちろん、慣れてきて、ちょっとしたサポートメソッドを用意してやれば、結構使いやすいのですが、それは「このAPIは使いやすい」という評価にはなりません。 つまり日付時刻APIは、慣れないとぜんぜんわからないし、サポートメソッドがないと面倒なコードが必要ということです。 いろいろあってよくわからない 日付時刻では、時点を扱うInstantや期間を扱うPeriod、時間量をあらわすDurationなど多くのクラス・インタフェースが導入されています。 これらは、IDEの補完でAPIを探りながら機能を推測すれば、それなりにドキュメントなし
HTML5に関連したセキュリティの話題で、とりあえずこれまでに話した資料の一覧や、考察した記事。今後もっと増える予定です。「このAPI使う上で気を付けることないの?」みたいなリクエストもあればぜひ言って下さいませ。 JavaScript Security beyond HTML5 (2013-09-20 Developers Summit Kansai 2013) HTML5セキュリティ その1:基礎編、XSS編 (2013-06-13 OWASP Night 6th) Web::Security beyond HTML5 (2012-09-28 YAPC::Asia 2012) HTML5時代のWebセキュリティ (2012-09-15 第5回愛媛情報セキュリティ勉強会) Same-Origin Policy とは何なのか。 - 葉っぱ日記 XMLHttpRequestを使ったCSRF対
横浜Android and モバイルOS プラットフォーム部で発表した資料です。 資料はAndroidアプリ開発者をターゲットにまとめました。OutofMemoryErrorの発生原理とメモリ管理について最新事情を加味してまとめました(新版、なのはAndroid 1.xのころの発表が古いのにまだ参照されていたりで、さすがに最新事情に合わせて更新したかったのです)。 Androidアプリにおけるメモリ事情は(初期に比べたら)改善していますが、OpenCVなど画像処理の需要、高解像度対応を踏まえると依然として十分とは言いがたいユースケースもあります。そんな中でメモリ資源をうまく使うための指標となれば幸いです。 資料にもある通り書きかけの状態ですのでコメントやmentionなど「こんな情報があるから書き加えて」「ここ調べて」「こういうのがおすすめ」「ここ間違えてる!」というご意見いただければ嬉し
代表中山陽平 ブログ「苦手意識を無くせばWeb活用はうまくいく」弊社では「がんばる中小企業」のWeb活用をサポートしています。今の時代、第3者である、制作会社や代理店におまかせでは勝てません。同じような商品・サービスが溢れる中、選んでもらうためのコンセプトを立て、それを実現するためにネットもリアルも総動員しながら戦う必要があります。 みなさんが世の中に・自社の従業員に実現したい幸せや提供価値を、しっかりと実現していくためには、みなさん自身が主役になり、私達のような専門会社が側面支援するのがベストです。 このブログでは御社が中心となってウェブ活用できるヒントを配信しています。お悩みの方はお気軽に問い合わせフォームからご相談ください。 最新の記事一覧
フロントエンドのパラダイムを参考にバックエンド開発を再考する / TypeScript による GraphQL バックエンド開発
JVMはプロファイリングを利用してコードの最適化を行います。対象は頻繁に利用されるコードパスのみですが,徹底的に行うことで大きな効果を上げています。JITコンパイルされたコードに関しては,現在では多くの場面において (その割合も増えつつあります) C++の実行速度を凌駕しています。 このような事実にも関わらずJavaが今でも低速なプラットフォームとして認識されているのは,おそらくは初期バージョンのJavaプラットフォームでの経験が,歴史的な負のバイアスとして働いているためでしょう。 早まった結論を出す前に,客観的な見地に立って,最新のパフォーマンス結果を評価するようにお勧めします。 2. Java コードの1行にはそれ自体で意味がある 次の短いコード行を考えてみてください: MyObject obj = new MyObject(); Java開発者ならば誰でも分かるように,このコードはオ
FINDJOB! 終了のお知らせ 2023年9月29日にFINDJOB!を終了いたしました。 これまでFINDJOB!をご利用いただいた企業様、求職者様、様々なご関係者様。 大変長らくFINDJOB!をご愛顧いただき、誠にありがとうございました。 IT/Web系の仕事や求人がまだ広く普及していない頃にFind Job!をリリースしてから 約26年間、多くの方々に支えていただき、運営を続けてまいりました。 転職成功のお声、採用成功のお声など、嬉しい言葉もたくさんいただきました。 またFINDJOB!経由で入社された方が人事担当になり、 FINDJOB!を通じて、新たな人材に出会うことができたなど、 たくさんのご縁をつくることができたのではないかと思っております。 2023年9月29日をもって、FINDJOB!はその歴史の幕を下ろすこととなりましたが、 今後も、IT/Web業界やクリエイティブ
「じっくり学ぶ Java講座」は、初心者向けの Java入門講座サイトです。多くのサンプルコードを目にすることでじっくり着実に Javaプログラミングの基本を勉強します。 更新履歴 第01章: はじめに はじめに 本ウェブサイトの目標とターゲット 学習の心構え おすすめ書籍 おおまかな構成 第02章: Java概論と開発環境の構築 Javaとは 開発環境の構築 開発環境メモ 第03章: はじめての Javaプログラム ハローワールド 読みやすいソースコードを書こう 第04章: 基本型と基本型変数、演算子とキャスト、Math.randomメソッドと自作ライブラリ 基本型と基本型変数 演算子と基本型のキャスト Math.randomメソッドと自作ライブラリ 第05章: 条件分岐 if文 switch文 第06章: 繰り返し for文 while文 do while文 gotoは使えない 第07
フロントエンドと言っても、アプリやゲーム制作などではなく、いわゆるWebサイト制作のクライアントサイド側の話になります。 時代背景 おじいさんには、Photoshop、Illustrator、Dreamweaverという3種の神器がありました。当時のWebサイト制作は、これらのソフトを利用し、おじいさんが一人で行っていました。おじいさんのような仕事をする人は、Webデザイナーと呼ばれ、とても人気がありました。おじいさんは幸せでした。 いつしかWebデザインは分業化されるようになりました。おじいさんは久しくデザインをしていません。現在の彼の仕事は、デザイナから受け取ったPhotoshopデータを基にWebサイトを制作することです。それはHTML5サイトというとても都合の良いバズワードでまとめらてしまうこともあります。このことについて、おじいさんはやり場のない憤りを抱いています。 HTML/C
TLで見かけたこのスライド,いいところをついていてちょっとObjective-Cをやったことのある人が,もっと興味を持つきっかけを作るにはすごく良いスライドだと思った. Objective-C が好きになる Tips & Hack from Taketo Sano けど,内容を見た感じ初学者を対象としているわりに,ここで取り上げられているTipsやHackの負の側面に対するフォローが無い. 一応「やるかやらないかはあなた次第」とあるが,なぜというところが抜けているので初学者には判断できないと思う. 特に紹介されている例はあまり行儀の良い方針では無いように感じたので,これを初学者がそっくりそのまま真似をするのはあまりよろしくない. 反響も結構あるようで気になったので,勝手にこのTipsやHackの負の側面(行儀の良くない面)について補足をしておく. カテゴリメソッドの命名について このスライ
面白い人に出会った。 彼を一文で表すと、 SIerにいるくせに技術が大好きで、コードを書きたくても書けない現状に嘆きつつ、 多額のローンを背負ってしまったため転職に踏み切ることもできず、夢と現実の狭間で苦しんでいる男だ。 この人の素直な感じがかなり好きで、出会いざますぐに心を開いてしまった。 やっぱりアツく技術的な話をしてくれる人は本当に楽しい。 会社にいる人の5割はSSDって何?って人だし、6割はJavaとJavaScriptの違いもわからない人で、8割はGoogle検索無しでコンソールに「Hello World」を出力させることもできないような人達だ。 実際に統計をとったわけではないけれど、これは全然大げさな話ではない。 「システムエンジニア」なのに、本当にこんな感じなのだ。 その代わり、ExcelやWordを駆使して資料を作成する技術は素晴らしいものがある。 長時間の会議に耐えうる精
今日もプログラマになる勉強する人のところで話をしてきました。 で、また適当にいろいろ書いてました。 http://www.slideshare.net/nowokay/20140228-31742219 今日は特に、この図の内容についてまとめておきます。 ※ このエントリは、主に今日の話を聞いた人を対象としています。前提や補足については省略しています。 まずはプログラミング言語を プログラマというのは、利用者に直接サービスを提供することはできません。コンピュータの上でプログラムを動かして、そのプログラムを使ってもらうことでサービスを提供します。 ※組み込みは前提から外しています。 そのプログラムも、コンピュータで動くものを直接記述することは現実的にできません。 なんらかのプログラミング言語で、プログラムを書くことになります。つまり、プログラマの仕事は直接的にはプログラミング言語をいじくる作
筆者は、前回の記事で「Macで十分やっていける」と断言したのですが、さっそくハマってしまいました。 「MacBook Airのキー操作がわからん!」 Macにスイッチして最も戸惑うのがキー操作です。 普段使っているWindowsだと何気ない操作でも、Macだと操作方法が異なるので、やり方がわからなくてハマるケースが結構あります。 まわりにMacユーザーがいれば教えてもらえるのですが、筆者のように周りにMacユーザーがいない場合は自分で調べるしかありません。 そこで今回は、WindowsユーザーがMacにスイッチした際に覚えるべきショートカットキーをまとめてみました。 ショートカットの一覧は、調べればいろいろあったのですが、Windowsとの対比はなかったので作ってみました。 新しくMacBook Airを買った人や、最近MacにスイッチしたWindowsユーザーの方に役立ててもらえればうれ
Mac OS Xに標準で搭載されているプログラミング言語(Perl、PHP、Python、Ruby、Java、AppleScript)を使ってHello world!を表示してみました。 まず、「起動ディスク(Macintosh HDなど)」→「アプリケーション」→「ユーティリティ」と移動し「ターミナル.app」を起動します。 Perlの場合 PHPの場合 Rubyの場合 Pythonの場合 Javaの場合 AppleScriptの場合 Perlの場合 コマンドラインインターフェースで表示する場合は、下記のようにターミナルに入力します。 perl -e 'print "Hello, world!\n"' または、下のような内容でファイル「hello.pl」を作り、 hello.pl #!/usr/bin/perl print "Hello, world!\n"; ターミナルで実行しても表示
Vistaって種類いっぱいあるけどなんだったか忘れた。それぞれに共通するかどうか分からないし、もしかしたらマシン依存の部分もあるかもしれないけれど、HHKB(下のモデル)をVistaで使えるように&自分用カスタムの手順メモ。 PFU Happy Hacking Keyboard Lite2 英語配列 USBキーボード ブラック PD-KB200B/U 出版社/メーカー: PFU発売日: 2001/08/01メディア: Personal Computers購入: 2人 クリック: 185回この商品を含むブログ (28件) を見るまず、日本語106キーボードのドライバを101/102キーボードに変更する。XPではレジストリ変更せずともデバイスマネージャからドライバの更新→互換性がない一覧から選択(「101/102 英語キーボード」または「Microsoft Natural PS/2キーボード」
キーボード編 まずキーボードが違う。左下の方がなんか違う。しかもかすかな記憶にあるリンゴマークのキーは最近では四つ葉っぽいマークになったようだ。*1 この辺のキーがなんなのかさっぱりわからない。 Mac のキーボードショートカット - Apple サポート Mac Keyboard Shortcuts & Keystrokes | Dan Rodney キーボード使いとしてはMacであっても可能な限りキーボードで操作がしたいのでこれを覚えることになるわけだが、組み合わせ以前にキーのマークが覚えられないw MacでもWindowsと同じようにメニュー項目の右にショートカットキーが表示されているのだが、基本的にこのマークで表記されているので、どのマークがどのキーなのかわからないと押しようがない。 とりあえず、 command:存在だけは知ってたのですぐに覚えられた。 control:コントロー
この前id:hitode909くんからピープルウェアを貰ったので読んだ。非常に面白くて、興味深い話が多かった。 ピープルウエア 第3版 作者:トム デマルコ;ティモシー リスター日経BPAmazon この本はソフトウェアのプロジェクトが失敗する時は、原因が単なる技術的問題だけである場合は少なく、その前段階の人とのコミュニケーションレベルにも問題があるときが多いという話をしている。それでプロジェクトを進める上での人に関する問題をテーマにしている。 最近は個人で作業をするというよりも、チームで仕事を進めるということが多くなりつつあるので、非常に参考になる事が多かった。印象に残った点を書いていく。 早くヤレとせかされると 早くヤレとせかされれば、雑な仕事をするだけで、質の高い仕事はしない 耳が痛い。でも自分自身が言われても直感的にはそうなりそうという感じだと思った。 またこの本の関連する内容に「
あれは、僕がデータベースを扱ううち最初から3件目のプロジェクトだった。 C++のソースが難解で火を吹いているという話で、自分は低スキルの若造。火にくべるには丁度良い程度のやる気と責任感をもっていた。折悪く別のプロジェクトが終了した直後だったもので投入されたのでした。 現場で『DBからデータを吸い出すツールかSQLを作ってくれ』といわれ話をきくと他社が作ったDB定義がすこぶる使いづらいという。 ER図やDB定義を見せてくださいと言ったのだけど、そんなものは無いという返事。 今ならもうここら辺で逃げ出すところですが、当時は『ふーん。』てなもんでそういうこともあるのかくらいの軽い気持ちで考えていました。 で、プロジェクトの資料をあさりまくって何とかDB定義のようなものも見つけDBのデータを調査し始めたのですが何かがおかしい。 機能の数に比して異様にテーブル数が少ないのです。 ふと周りを見ると、皆
いい加減髪を切りたいminamiです。 JavaScriptでいつも書いてるな~という処理や、知っていると便利なTipsを簡潔に集めた記事を見てほお~と思ったものがいくつもあったので抜粋してみました。 ※追記1: ご指摘がありましたので一部修正しました。「配列をソートする」ではなく「配列をシャッフルする」でした。 ※追記2:「HTMLをエスケープする」のソースがまちがって表示されていました。修正しました。 ※追記3:予想以上に反響が大きく、多数ご指摘を受けてしまいました。よく使う処理の書き方もいろいろあるんだな~という参考程度にご紹介したのですが、参照元の記事の内容の検証が不十分なまま紹介してしまい申し訳ありませんでした。いろいろと勉強になりました! 45 Useful JavaScript Tips, Tricks and Best Practices 配列からランダムで値を取り出す v
ちょっと前にTwitterでAPIのバージョニングをどうやるかみたいな話をしていたのですが、そのへんもやもやしているので少し整理しておきたいなと。 APIのURLを/api/v1/*とかってやるの、やめたほうがいいとおもうんだけどなぁ。いざv2を作るとなったときに、大量のコピペが発生して後悔するよ、って伝えたい。— Kenn Ejima (@kenn) February 28, 2014 さて、これについて色々と異論・反論も含めた意見が出たのですが、まずは、大昔にURL方式(=コントローラ分割)でやってきて後悔したぼくが、(5年ぐらい前から)現在はどうやってAPIのバージョンを管理しているか?について紹介します。 基本原理としては、コピペが多発する根っこで分岐(=コントローラ分割)じゃなくて、必要最小限のところで限局的に分岐するのがいい、という考え方に基づきます。 一言でいうと、「パラメー
こんにちは、シックス・アパートのディベロッパーリレーション担当、にっくです。 先日は、新しくなったプラグイン&テーマディレクトリのご紹介をしました。 新しいディレクトリは、GitHubとの連携機能が大きな特徴の一つで、GitHubに登録したプラグインやテーマを簡単に登録できるようになりました。 ただ、GitHub、そしてGitについて、まだ使ったことがなく、馴染みのない人もいらっしゃるかと思います。 今回はGitをまだご存じない方を対象に、「そもそもGitって何?」 「GitとGitHubは何が違うの?」という説明と、Gitの使い方に関する情報をご紹介したいと思います。 Photo Credit: hirofumi_kaneko via Compfight cc Git、そしてGitHubとは Git(ギット)とは、プログラムソースなどの変更履歴を管理する分散型のバージョン管理システムのこ
DevTools、使ってますか? もはやChromeじゃないと開発できないくらいに飼い慣らされています。 ブレークポイントやconsole.logなど基本的な使い方から、TimelineとAuditsを使ってのパフォーマンス計測などなど、DevToolsのポテンシャルは計り知れません。 個人的にはConsole APIが好きなんですが、今回はConsoleパネルで使える Command Line API の使い方についてまとめてみました。 $_ $_には最後に評価した式の結果が保存されています。 Console上で計算を行なった場合や、$セレクタなどでDOMを検索した結果など、最後の結果が常に保存されます。 $0 〜 $4 $0から$4にはElementsパネルで選択した要素が5つ保存されています。$0が最後に選択した要素で数字が増えるごとに過去に選択した要素になります。 $0は特に使いや
先週、PFIセミナー(社内セミナー)で「ソフトウェアテスト入門」という話をした。 入門というタイトルだけど実はテストそのものではなく、2014年のソフトウェアテストでブームになりそうなことを紹介するつもりだったが、尺が足らなかったのでその詳細をここで紹介したい。 全然関係ないが、桜も散ってGWに近づく今日、最近わたしはFPS(First Person Shooting)のBattlefield 4をPCで遊ぶのにハマっている。 ハンドガン・ナイフオンリーのサーバで練習し、ついにハンドガンのアンロックを完了させたところである。 面識のある方がいたら是非一緒にプレイしたい(OriginのIDはsuma90hである)。 まずはImmutable Infrastructureといった単語やDocker(LXC)といった基盤技術とソフトウェアテストの関連について記す。 そして、RRRSpecのような
皆様こんにちは。サイバーエージェントエンジニアブログ運営委員です。 今回の記事は、サイボウズさんの企画「エンジニア100人に聞きました」の企画です。 「エンジニア100人に聞きました」とは、サイボウズさんのブログから引用させていただくと >これは、毎回、同じアンケートをそれぞれの企業内で行い、結果を「せーの」で同時公開する、というものです。 >あくまでも「お楽しみ企画」なので、統計学的に有意な結果を得ようというわけではなく、ただ、それぞれの企業カラーを反映した「エンジニアの気風」が見えてきたら楽しかろう、というぐらいのつもり。何より、テクノロジーを愛するエンジニア同士、一緒に面白いことをやって盛り上がれれば、それが一番、というスタンスです。 (サイボウズ式 「エンジニア100人に聞きました」始めます。より) 弊社が参加するのは今回で2回目です。(前回はながら聞きについてアンケートをとりまし
heathrowエンジニアブログからの転載です。 元々は社内Wikiにあったものを持ってきたので古い部分があります。 heathrowでは好きなファッションブランドをまとめ読みFavricaというiOSアプリを開発しています。本日1.0.4がリリースされています! View系 ストーリーボードはマージできない 開発の単位で分ける(同時に編集できないので) .xib .storyboard の読み込みに時間がかかる時がある viewDidLoadが呼び出される直前に暗黙的に読み込まれる(メソッド名通りである)ので明示的に読み込まないようにしてviewWillAppear、viewDidAppear等で読ませるとよし Viewの実装はガンガンUIViewかUIControlをサブクラス化してViewControllerから切り分けていく UIAlertViewとかUIActionSheetのデ
Manifesto for Not Only Object-Oriented Development、オブジェクト指向だけじゃない開発宣言、というのが出てましたのでごにょと訳してみました*1。 オブジェクト指向だけじゃない開発宣言 私たちは、ソフトウェア開発の実践 あるいは実践を手助けをする活動を通じて、 よりよい開発方法を見つけだそうとしている。 この活動を通して、私たちは以下の価値に至った。 クラスよりも、関数と型を、 可変性よりも、純粋性を、 継承よりも、コンポジションを、 メソッドディスパッチよりも、高階関数を、 nullよりも、Optionを、 価値とする。すなわち、左記のことがらに価値があることを認めながらも(但しnullは除くが)、私たちは右記のことがらにより価値をおく。 内容は、「今どきのオブジェクト指向開発宣言」と名乗ってもあんまり違和感ないっす。 ただし、null、おめ
(4/29深夜に追記)PHP言語よりRuby言語でしょという結論ありきのdisり記事になっております。PHPでモダンな開発に努めている方には申し訳ございません。ここより先は読まないで頂きたく思います。なお、本記事は「cakephpを窓から投げ捨ててrailsを採用しました」に便乗して書いたものです。Ruby言語とPHP言語の比較ではなく、CakePHPとRailsの比較がごっちゃになっています。 Rubyist is better than PHPer、ルビー使いがペチパーより優れている理由を3つ上げます。 PHPおよびPHPerはコードを書くのが嫌い PHPerは実はHTMLに毛が生えた程度しか使えない人が多い PHPは低級プログラマと過去の負債に引きずられる Rubyとだけ比較してますが、Pythonと比較しても、Node.jsと比較しても別に良いでしょう。結果は一緒です。さぁPHPを
Webアプリ構築で、まず考えるべきアーキテクチャの検討ポイント(基礎編):徹底解説! ITアーキテクトとは何か?(2)(1/4 ページ) 連載目次 ユーザーの要求をアーキテクチャに落とし込む方法とは? 前回は、アーキテクトの役割とタスクについて解説しました。今回からは、アーキテクチャ設計の話に入っていきたいと思います。アーキテクチャ設計の最初の段階で重要なのは、エンドユーザー/ユーザー企業の要求を見極めて、それをアーキテクチャに落とし込むことです。システムを設計する上で、ベストオブブリードでシステムを構成できる現在のようなオープンな環境の中では、さまざまな選択肢が存在します。その選択肢から選ぶ際に優先されるのは、「ユーザー要求」だということです。 例えば、顧客が「リアルタイムな情報反映と、その活用」を望んでいるにもかかわらず、バッチ処理中心型のシステムを設計・構築することは、エンドユーザー
―「間違っているかもしれないので,その時はこの銃で僕を撃ってくれ,良いね?」 [2014-05-19T17:48:28Z 追記] http://a-suenami.hatenablog.com/entry/2014/05/17/131326 補足してもらったので読むと良いと思います. わかっちゃはいたけれど上手く言語化できていなかった部分,あるいはわかっていない部分について言及されていたので参考になりました.ありがとうございます. いやーつーかさー,「『メソッドに対するテスト』っていう言葉自体がわかりにくくね?」っていうのはその文言を見たり,この文章書いている間もずっと思ってて,つまり端的に言うとそういう事を言いたかったはずなのに,今このエントリ読み返すとそうした[趣主]旨から完全にズレててメッチャ違和感あるな! ってなりました.俺のバカ! これを仮に言い換えるとしたら「内部構造に対するテ
本日は日本Javaユーザーグループ(JJUG)主催のクロスコミュニティカンファレンス2014春に参加してきました。今日の日記は、参加内容のまとめではなく、参加して得たことやそれをきっかけに考えたことなどをだらだらと書き連ねます。 Java SE 8では、forEach書いたら負け、for文禁止 日記のタイトルは、午前のセッション「K-1 詳説 Java SE 8 – CCC Edition」で出た話題です。手続き的なロジックを書いて、ネストが深く制御構造が複雑になってしまう人向けにはJava SE 8で導入されたラムダ式とStream APIを使って、内部イテレータと関数型プログラミングのエッセンスを取り入れた書き方をするといいよ、という話から出た言葉です。 実は昨日開催したJava読書会(「Java 8 Lambdas」を読む会)でも、「for文は禁止だ!」という話題が出てました。for
ITエンジニアの皆さんに向けて、制御システムセキュリティの現状、情報システムとの考え方の違い、対策の指針などについて解説します。 0分 - セキュリティ強化の必要性は制御システムにも 近年、情報セキュリティに関するリスクは増大し、一層の対策強化が進められています。今やITは社会生活や経済活動の基盤そのものであり、セキュリティへの取り組みが必要不可欠であることは、ITエンジニアの皆さんの実感されているところだと思います。 そしてセキュリティの必要性は、ITの世界にとどまりません。電力やガスの供給などの社会インフラ、製造業の生産設備などを支える制御システムにおいても、セキュリティ強化の重要性が増してきています。 MES(Manufacturing Execution System:製造実行システム)はもとより、ビッグデータで話題のセンサーデータの監視など、情報システムと制御システムが連携して稼
iOS/Androidの各デバイスやエレメントの規格、BootstrapやFoundationなど人気のフレームワーク、WordPressのテーマファイル、Git/GitHubの便利な機能、Sublime TextやEmmetの使い方をまとめたチートシートなど、フロントエンドのWeb制作者に役立つチートシートをまとめました。 Web制作時によく使うサイズとかスニペットとかショートカットとか、チートシートを印刷してすぐに見られるようにしておくと便利ですよね。 チートシートの目次 iOS デザイン チートシート Swift チートシート Android チートシート Android デザイン チートシート Twitter Bootstrap 3 チートシート Foundation チートシート WordPress 時短用チートシート WordPress テーマ開発用チートシート GitとGit
サーバー向け軽量OS「CoreOS」正式版がこの7月にデビューした。CoreOSは、アプリケーションをOSごと簡単に初期導入できる今話題のOS仮想化ソフト「Docker Engine」に特化した専用OS。メモリーが1Gバイト程度のマシンでも十分試せる軽量さが売りの“クラウドOS”だ。Windows XP世代の中古PCであっても、その可能性を簡単に体感できる。実際にCoreOSのインストールから初期設定までを試してみた。 CoreOSは、OS仮想化ソフトの「Docker Engine」に特化したOS。Docker EngineはOSを仮想化して1台のマシンで複数のOSを同時に実行するためのツール群だ。アプリケーションとOSを合わせた実行環境(コンテナー)をイメージファイル化する機能を備え、アプリケーションの迅速かつ大規模な展開を可能にしている。開発元の米Docker社は、配布のためのクラウド
9 Useful PHP Functions and Features You Need to Know | Nettuts 知っとくと便利なPHPのテクニック9つが掲載されていました。 初心者の方は勿論、PHPを長年使ってる人にも使えるテクニックが載っていましたので勉強がてらにメモ。 func_get_args() 関数で可変引数 を受け取る 通常、関数といえば、次のように引数と共に定義します。 function hoge($arg1, $arg2) { } のように定義して引数を受け取りますが、好きな個数で引数を受け取りたい場合は、次のようにfunc_get_argsで受け取れます。 function hoge() { $args = func_get_args(); foreach ($args as $key=>$value) { echo "arg{$key} is $value
PHPSPOT開発日誌に紹介されていたAlex Moskalyuk BlogのPHP12個の最適化テクニック方法を下記に明記しておきます。 staticメソッドが使用できれば、4倍の速度に改善されます。 __get、 __set、 __autoloadはやめましょう。 require_once()は重いです。 includesとrequiresはフルパスを使用しましょう。OSパスを使用すれば短時間で処理できます。 スクリプト開始のUNIXタイムを知りたければ$_SERVER[’REQUEST_TIME’]で取得できる。 正規表現の替わりにstrncasecmp関数、strpbrk関数、stripos関数が使えるならこれらを使用しましょう。 preg_replace関数はstr_replace関数よりも早いが、strtr関数はpreg_replace関数よりも4倍速いです。 引数を、単体か配
ようこそ 時代遅れの情報がウェブ上にあふれている。そんな情報を見たPHP初心者は戸惑ってしまうだろう。そして、まずい手法やまずいコードが広まってしまう。 そんなのはもうやめよう。PHP: The Right Way は気軽に読めるクイックリファレンスだ。PHPの一般的なコーディング規約、 ウェブ上のよくできたチュートリアルへのリンク、そして現時点でのベストプラクティスだと執筆者が考えていることをまとめた。 大事なのは、 PHPを使うための正式なお作法など存在しない ってこと。 このサイトの狙いは、はじめて PHP を使うことになった開発者に、いろんなトピックを紹介すること。 経験豊富なプロの人にとっても、これまで深く考えることなく使ってきた内容について、新鮮な見方を伝えられるだろう。 このサイトは、決して「どのツールを使えばいいのか」を教えるものじゃない。 いくつかの選択肢を示して、それぞ
みなさんお仕事の進捗どうですか? 今日は ふと今こそ保守性・管理性が劇的に上がるPHPのスマートなコードの書き方まとめを俺が書くときじゃないだろうか。 — そーだい@初代ALF (@soudai1025) 2014, 8月 12 こんな軽はずみな発言をしてしまったが故にネットで触れては行けない3大炎上案件について触れる。 ※ネットで触れては行けない3大炎上案件とは? Excel関連(スクショとか) 宗教(エディタとか) PHP のこと。 で今話題の元ネタを既に@sue445さんが魚拓してくれてる。 「Hello! my name is 404 お探しのページはありませんでした!申し訳ありません。。」 http://t.co/MS8Xy0bCMz 魚拓とっててよかったw http://t.co/UvG3gzsPul — sue445 (@sue445) 2014, 8月 12 (炎上したら即
データをストリームとして表現する方法と、ストリームを変換する方法を紹介する。 ストリームはメッセージが流れる川である Pub/Subメッセージングモデルでメッセージを流すためのオブジェクトのことをストリームと呼ぶことにする。ストリームにはメッセージをPublishでき、またメッセージを受け取ったときの処理をSubscribeできる。例えばキーボードからの入力をPublishして、内容をコンソールに出力するような処理をSubscribeできる。 kamo.jsでストリームを表現する ストリームについて説明するために、kamo.jsというストリームを表現するためのライブラリをつくった。kamo.jsは、ストリームを作成するためのkamo.Streamというコンストラクタ関数を提供する。このコンストラクタ関数から作成されたオブジェクトは、publishとsubscribeというメソッド(※プロパ
PHPでは言語仕様的に多重継承が許されていません。これは、メソッド名が重複した場合の処置など、多重継承が様々な問題を引き起こしやすいからです(C++でプログラムを書くとよくわかります)。とはいえ、どうしても多重継承をしたい場合というのもあります。そこで、PHPではインタフェースを使って擬似的に多重継承ができるようになっています(Javaでも同じ)。 (このエントリーはクラス、継承、抽象クラスなどについて最低限の知識のある人を対象としています) 以下、インタフェースを用いた擬似的多重継承の方法を説明します。 ClassAとClassB まず、次のような二つのクラス、ClassAとClassBを考えます。 <?php class ClassA { private $a; public function __construct($a){ $this->a=$a; } public functio
HSTS(HTTP Strict Transport Security)という仕組みがある。簡単にいうと、次のような仕組みだ。 「このサイトにはHTTPではなくHTTPSで必ず接続するように」と、サーバーがブラウザに指示するHTTPヘッダー。この指示を受け取ったブラウザは、その情報を記録しておき、以降は、そのサイトに対してアクセスするのにHTTPを使わず自動的にHTTPSで接続するようにする。 たとえHTTPSでサイトを構成していたとしても、通信を傍受されたりフィッシング詐欺に遭ったりする危険性がある(特に無線LANなどの環境で)。これを防ぐのにHSTSを利用できる。 グーグルは、HTTPSをランキング要因に組み込んだことを発表した際に、「サイトでHSTSを有効にするように」と指示している。 ところが、たしかにHSTSによってブラウザは必ずHTTPSで接続を試みるのだが、それは2回目以降だ
今回は、Linuxが搭載されているハードウェアのパーツごと、例えばサウンドボードやマザーボード、ハードディスク等のベンダーや型番といった詳細情報を取得出来るコマンド『Inxi』を紹介する。 1.インストール まずはインストールから。 以下のコマンドを実行しインストールを行う。 Debian/Ubuntu sudo apt-get install inxi RHEL系 sudo yum install inxi --enablerepo=epel 2.コマンドの実行 さて、それでは実際にコマンドを実行してみよう。まずはオプションを付けず、デフォルトの内容を表示してみる。 以下の内容は、実際に自宅で用いてるマシンのデータを表示している。 $ inxi CPU~Quad core Intel Core2 Quad Q9550 (-MCP-) clocked at 2833 Mhz Kernel~
プログラミングでの命名イディオム - ○○○は△△△と書くのが通例だ。 目次 基本は… アクセサの命名方に関する意見 単位 関係 入出力処理 生成処理 初期化処理 終了処理 接続関係 singleton的クラス(?) 参考文献 ○○○は△△△と書くのが通例だ。 類似(?) - こう読むのが普通だ 基本は… アルゴリズムやデザインパターン、業務形態等の骨子となったものの用語はなるべくそのまま使った方が わかりやすい。 アクセサの命名方に関する意見 通常、たとえばデータを出し入れするメソッドを「SetFileData」「GetFileData?」のように命名する。 だが、大半の開発ツールではメソッドが名前順にリストアップされるために、このような対になるメソッドが 離れた場所に表示されてしまう。 そこで私はこのような時に「FileDataSet?」「FileDataGet?」というように命名し
Randen Pederson 大規模なシステムであれば使っているであろうリバースプロキシ。 セキュリティや稼働率の観点からみて利用することは非常にメリットは高いです。 ただ、社内や周りであまり知見がなく、 「動くからいいや」という理由でApacheをそのままWebサービスの一次受けとして利用されている方も多いと思います。 動くという目的からすれば確かにその通りですが、ただ一枚リバースプロキシを入れるだけで ぐっと運用効率、稼働率も拡張性も上がります。 1. ルーティング処理の簡略化 例えばRESTfulな一般的なAPI構成を作りたいと思った時に以下のようなURL構成になると思います。 http://api.something.com/search/v1/item/list.json?cid=xxxx&gid=xxxxx もしアプリケーション側のルーティングしか知らなければframewor
仕事などでJSを書くようになって少々経つが、Java信者で頭が固い僕にとってはどうもJSというのは柔らかすぎてしっくりこない部分が多い。 考え方を整理するにはデザインパターンを知るのが早いと、最近思い立ったので改めて調べてみた。 ということで、Javaは大体分かるし、JSも書くけどそこまで詳しくない人向け(つまり自分主体)にまとめておく。 今のところシリーズ化予定。 ※ JSの知識には自信ないので間違った点に気付いた方がいらしたらコメント等でご指摘いただけると助かります。 ※ デザインパターンとして挙げているコードは、個人的にアレンジしている場合がありますので、ご了承ください。 0.はじめに 本編案内 内容に入る前に、予備知識をおさらい。要点ではないのでざっくり。 シリーズ案内 Javaプログラマから見たJavaScriptデザインパターン(導入編) Javaプログラマから見たJavaSc
私たちソニックガーデンの「納品のない受託開発」に取り組むソフトウェア開発のスタイルは、一般的に「アジャイル開発」と呼ばれるものに近いです。 しかし実際のところ、私たちは「アジャイル開発」をしようなんてかけ声をかけたこともないですし、普段から社内で「アジャイル開発」が話題になることもありません。「アジャイル開発」をしようと思ってしている訳ではないにも関わらず、「アジャイル開発」をやっているように見えるというのです。 この記事では、「アジャイル開発」について私たちが考えていること、そして、なぜ多くのアジャイル開発は失敗してしまうのか、うまくいくためにどうすればいいのか考えてみました。 2012-12-28 / Giåm 結果としてのアジャイル開発〜究極のアジャイル 「あなたにとってのアジャイルとは何ですか?」 先日、ある勉強会で質問されました。ちょっと想定外の質問だったので、しばし考えたあと私
Web制作時に、あれ?なんだっけな?って時に役立つ便利サイトを紹介します。 HTML5やCSS3の各ブラウザのバージョンごとのサポート状況、スクリーンサイズやデバイスごとのMedia Queriesの書き方、Bootstrap, Foundationなど各フレームワークの対応ブラウザやライセンス、ブラウザの各バージョンごとのCSS Hackなど、いざという時に役立つサイトばかりです。 Can I Use...Support tables for HTML5, CSS3 Can I Useは先月くらいにUIを刷新し、より使いやすくなりました。デスクトップ・モバイル用の各ブラウザでのバージョンごとのHTML5, CSS3のサポート状況がそれぞれ詳しく分かります。
更新版: まずはここで私がコンソール ロギングでのデバッグを非難したり、無視しようとしているのではないということをはっきりさせておきたいと思います。コンソール ロギングは組み込み型プログラムやIDEがソースコードをスタックフレームに正しくマッピングできない場合、ブレークポイントが進捗を妨げてしまう場合等、様々な場合に使われます。要は他に適した方法がある時にコンソール ロギングを使うことを悪いと思っているのです。 プログラミングでは新しい機能を加える代わりに、 コードのメンテナンス と問題の解決にそのほとんどの時間を費やされるということが常識になっています。また、デバッグを通じて問題を発見できてもそのバグの解決方法がわからないということが多いのです。また ハイゼンバグやネッシーバグ のような再現できないバグに遭遇することもありますが、通常はどこを探すべきかが全くわからない状態で、大規模なコー
ここ数年間をプログラミング的な観点で見ると、私が望んでいたほどには面白みがなかったと言わざるを得ません。このことは、恐らく他のプログラマの皆さんも同意見かと思います。そこで、私はこの期間をある意味、充電期間と捉えて、自分の開発ツールの強化に取り組んできました。そして土曜日になると、Bashを使って ワークスペース 作りに精を出していたのです。 最後にシェルを使って真剣にプログラミングに取り組んだのは、かれこれ恐竜がまだ地球を支配していた頃だったでしょうか。何年も触れていなかった言語を改めて取り上げ、その昔に自分が書いたコードを見直してみると、いかに自分が成長したかということを実感できて、なかなかに面白いものです。 14年前、私は”コンパクトなコードは優れている”という考えに随分と傾倒していました。コードが少なければ、そしてDon’t Repeat Yourself(DRY)に従えば、バグも
DevOpsというキーワードに関連して、「Chef」というツールの名前を聞いたことのある人も多いのではないでしょうか。この記事では、インフラにおける構成管理、展開作業を自動化するChefの構造および基本的な使い方について解説します。 インフラストラクチャ自動化フレームワーク「Chef」 Chefは、物理、仮想、クラウドといったさまざまな大きさのインフラに対して、サーバやアプリケーションの展開を容易にするための自動化フレームワークです。 Chefの重要な要素の1つに「Infrastructure as Code」という概念があります。インフラをどのように構築し、維持するべきかという定義はRubyの文法で記述され、ソースコードのように扱うことができます。つまり、あたかもRubyでプログラミングをするように、インフラの構成管理をコードによって行えることがChefの利点の1つです。 自然言語による
2014.06.16 jQuery のバブリング、preventDefault() や stopPropagation() の使用例 jQuery のイベントのバブリング (伝播) については下記のサイトがほんとに分かりやすくて、読んでいただければもうあらためて書くことはないのですが、 jQueryのバブリングと、「return false;」「e.stopPropagation();」「e.preventDefault();」について (ふじこのプログラミング奮闘記 3行でまとめると、 クリックなどのイベントは、子要素から親要素へと伝播される(バブリング) preventDefault() は、その要素のイベントをキャンセルし、stopPropagation()は、親要素への伝播をキャンセルする。 return false; を使うと、その要素のイベントも親要素への伝播も両方キャンセルす
※ 4/9 11:25 いろいろ計測しなおしてます。こちらも参照 Javaで文字列連結する場合には+演算子よりもStringBuilderを使うべき、という話があるのですが、よく sb.append("[" + data + "]"); みたいなコードをみかけて、あんまり意味ないなーと思ったりします。 あと、 sb.append("title:"); sb.append("[" + data + "]"); みたいに、+演算子を使った一行の式にして sb = "title:" + "[" + data + "]"; としておけば「title:」と「[」はコンパイル時点で最適化されたのに、ってコードもあります。 ということでTwitterで Javaでの文字列連結は+を使うべき、ってやったほうが、StringBuilder使ったsb.append("[" + data + "]")みたいなク
攻略!AngularJS 1.2 第1回 AngularJSとは 第1回目はAngularJSとはどのようなことができるのか、どのような特徴があるのかを簡単なデモを用いて説明します。これから実装を理解するにあたってのベースとなる概要をおさえましょう。 はじめに 本シリーズではJavaScriptのアプリケーションフレームワークであるAngularJSの基本的な機能や使い方について解説します。 初回は、AngularJSを使うとどのようなことができるのか、どのようなフレームワークなのかという点を簡単に紹介します。 MVWフレームワーク AngularJSは、Googleが開発を行っているJavaScriptのアプリケーションフレームワークです。いわゆる*MV**と呼ばれる種類のフレームワークで、Backbone.jsやEmber.js、Knockout.jsなどとよく比較されます。 *MV*
Androidアプリ開発者 アプリのCPU/メモリ負荷によるパフォーマンスを改善したい方 最新機能もいいけど、実行性能もね! Android界隈は5.0 Lolipopの登場でにわかに活気づいていますが、アプリ開発者の皆様はいかがお過ごしでしょうか? Android 5.0からDalvikに代わってデフォルトかつ唯一のランタイムになったARTでの動作確認や、マテリアルデザインへの対応などに追われている方もいらっしゃるかと思います。本稿ではそこから視点を変えて、DalvikとART、ならびにNDKによるNative実装(以下NDK)という3種類の実行環境/実装方法に着目して、Androidアプリのパフォーマンス比較とチューニング方法を紹介します。 パフォーマンスチューニングをするにあたり、題材としては少々古いのですが、「Google Developer Day 2011」で参加資格を得るため
「Oculus Rift」など最新のバーチャルリアリティ技術を使った海外のゲーム開発イベント「Leap Motion 3D Jam」で、ガチムチ男性のお尻を叩くだけの謎ゲーム「Hurt Me Plenty」が誕生してしまいました。 「Hurt Me Plenty」 四つんばいになった男性が「どうぞぶってください」とばかりにこちらにお尻を差し出しているゲーム画面。プレイヤーが手を左右に振ると画面内の男性のお尻を叩くことができ、叩かれた男性が「フゥン!」「アッー!」と嬉しそうな声で鳴きます。ゲーム内容は以上です。なにこのバーチャルリアリティの無駄遣い。 乱暴な口調で「四つんばいになるんだよ、早くしろよ」と命令しましょう ゲームはサイトの開発ページから無料でダウンロード可能。マウスやトラックパッドでも遊べるようにわざわざ改良されているので、専用デバイスがない人でもプレイできます。多くの人は「なん
クリスマスが終わると、スーパーの売り場は一斉におせち商材へ切り替わります。 そこで目にするのは、普段隅に積まれて安く売られているかまぼこが やけに高い値段を主張しながら並べられている光景です。 「なんでこの時期のかまぼこはこんなに高いの?便乗値上げなの?」 元食品業界の者としてみんなが感じている疑問を掘り下げてみようと思います。 まず結論から「使っている材料が違うから」 普通に「いいものを使っているから」、という理由です。 詳しく解説いたします 普段スーパーで300円前後で売られているかまぼこは、コストダウンのため 材料の配合や製法にかなりの工夫がされています。 かまぼこのプリプリとした食感は魚肉をすりつぶしたことによる魚由来のものです。 ただし、魚のすり身は高いので、同じ食感を出せる他の物を足して補うことがあります。 プリプリとした弾力を出せる食品、でんぷんやゲル化剤です。 普段売ってい
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く