2016年1月10日のブックマーク (25件)

  • CakePHP 2.x系におけるSchemaについて - Qiita

    スキーマファイルの使い方 スキーマファイルは、プロジェクトで使用するデータベースのテーブル定義(テーブルの構造)をphpで記述したものです。現在のデータベースのテーブル定義にもとづき、その内容をスキーマファイルとして保存することが出来ます。 この機能は、複数人でプロジェクトを進める際に有用です。開発者1と開発者2で、プロジェクトを開発しているとすると、開発者1が自分で作成したテーブルをスキーマファイル(schema.php)に変換して、gitリポジトリにコミットすることが出来ます。開発者2は、リポジトリをcloneして、スキーマファイル(schema.php)に基づいて、テーブルを作成することが出来ます。 同様のことは、テーブル定義をdumpすることでも可能です。ただし、dump -> restoreの場合、データベースを1から作り直すことになります。このとき、開発中に挿入したレコードも一

    CakePHP 2.x系におけるSchemaについて - Qiita
    kkeisuke
    kkeisuke 2016/01/10
  • ヤフオクで1年間 Scrumを推進した結果

    Apache Big Data Conference 2016, Vancouver BC: Talk by Andreas Zitzelsberger (@andreasz82, Principal Software Architect at QAware) Abstract: On large-scale web sites, users leave thousands of traces every second. Businesses need to process and interpret these traces in real-time to be able to react to the behavior of their users. In this talk, Andreas shows a real world example of the power of a m

    ヤフオクで1年間 Scrumを推進した結果
    kkeisuke
    kkeisuke 2016/01/10
  • Bootstrap Form おさらい - Qiita

    BootstrapのFormは、書き方にいろいろパターンがあり、いまいち整理できていないので、調査を兼ねてまとめてみる。 結論から言えば、ドキュメントをよく読めば、いろいろ理解できる。 事前に知っておきたい Formをいじるまえに知っておきたいこととしては、 レイアウトにより(inline, horizontal)、マークアップが異なる。 text系(input,textarea,select)と、その他のものは扱いが違う。 horizontalではform-groupがrowと同じ概念になる(なので要素をcol-xで分割) の3つ。 私は、いろいろな差をBootstrapが吸収してくれるはずという先入観により、遠回りをしました。 素の状態 container以外は何もbootstrapの要素はない。 <div class="container"> <form> <label>name</

    Bootstrap Form おさらい - Qiita
    kkeisuke
    kkeisuke 2016/01/10
  • BoostCake - Bootstrap Plugin for CakePHP

    Composer Ensure require is present in composer.json. This will install the plugin into Plugin/BoostCake: { "require": { "slywalker/boost_cake": "*" } } Enable plugin You need to enable the plugin your app/Config/bootstrap.php file: CakePlugin::load('BoostCake'); If you are already using CakePlugin::loadAll();, then this is not necessary. Add helpers You need to add helpers at controller. <?php cla

    kkeisuke
    kkeisuke 2016/01/10
    “This is a plugin for CakePHP using Bootstrap”
  • BoostCake(CakePHP + Bootstrap)でHorizontal formに横並びのテキストボックスを作る | 14時の間食

    BoostCakeを使ってCakePHP & Bootstrapなサイトを作っていると、Horizontal formの中にInline formのような横並びのテキストボックスを作りたい場面が時々出てきます。 例えば名前の「姓」「名」や、郵便番号の上3桁と下4桁などが2つのテキストボックスに分かれている場合、2行に分けて表示せずに1行で横に並んで欲しいんですよね。 色々試行錯誤したところ、バリデーションエラーをきちんとそれぞれのテキストボックスの下部に表示させつつ、レスポンシブにも対応させるとなると、それなりに記述に工夫が必要だったのでメモしておきます。 前提 CakePHP2.6.10 BoostCakeプラグイン(導入済み) Bootstrap3.3.5 以上の環境で制作しています。 完成形 こんな感じです。 「お名前」「フリガナ」「郵便番号」が横並びを実現した箇所になっています。

    kkeisuke
    kkeisuke 2016/01/10
  • Concatだけでビルドを済ませてた例(Backbone.jsとAngularJS)

    Concatでどこまで戦えるのか @jxck_ browserify使ってるんだけどあんま意味ない感じになっててつらいんだよねーっていうのを昨日 @ahomu に話したら、concatで全然いけますよって言われたからさっき乗り換えた。 — Kazuhito Hokamura (@hokaccha) August 6, 2014 (^ω^) 全然いけますよ 依存管理をサボってconcat 以下、「依存管理に労力を割きたくない」という理由で依存管理を省略した場合に、concatだけで破綻無くビルドするためにやっていたパターンの紹介。いけますと言った手前はあるが、最終的には現場によってケースバイケースということで、どうかひとつご容赦願いたい。 Case 1: Backbone.js Backbone.jsの場合、extends に代表されるクラスベースのオブジェクト指向モデルに多少の制約が必要に

    Concatだけでビルドを済ませてた例(Backbone.jsとAngularJS)
    kkeisuke
    kkeisuke 2016/01/10
    良いか悪いかわかりませんが、TypeScript + AngularJS で 3万行(300ファイル)くらいでも concat で困ったことないです。
  • TypeScriptでpower-assertを使う時の注意点 - Qiita

    TypeScriptでpower-assertを使ってテスト時に詳細情報を出そうとしたら, テスト実行そのものは問題ないのだが詳細情報が出なくて解決するまで小一時間かかってしまいました. せっかくなので注意点として共有しておきます. 2016/02/17 追記 DefinitelyTypedのpower-assert.d.ts側で対応されたため、記事で書いていた注意点について気にする必要がなくなりました! 最新のDefinitelyTypedのpower-assert.d.tsを使って、

    TypeScriptでpower-assertを使う時の注意点 - Qiita
    kkeisuke
    kkeisuke 2016/01/10
  • なんか書いていこうぜー.com | なんか書いていこうぜー.com

    最近 Ruby の curses を使って遊ぶことがあり、その中で Curses::Window#refresh と Curses::Window#noutrefresh の違いがよくわからなかったので、ドキュメントを探していた。 日語で探すと るりま が検索にかかるが、最新とは内容が離れているのでメモとして残しておく。 Ruby の curses のドキュメント cursesRuby 2.1.0 から標準ライブラリから切り出されて独立した gem になっている。see: https://github.com/ruby/curses#description 切り出されたことにより、curses のるりまは 1.8.7 の library curses でなくなって?おり、ruby/curses の README の Documentation にあるように www.rubydoc.

    なんか書いていこうぜー.com | なんか書いていこうぜー.com
    kkeisuke
    kkeisuke 2016/01/10
  • PHPでファイルを開いて読み込む - Qiita

    PHP初心者のときに混乱したし、未だに初心者が困ってるのをよく見掛ける。 はやわかり ファイル全体をまるごと読み込みたい→ file_get_contents() ファイルの中身をまるごと出力したい→ readfile() 行単位のテキストファイルを配列として読み込みたい→ file() ファイルをバイト単位で読み込みたい→ fopen()+fread() CSVを読み込みたい→ SplFileObjectクラス オブジェクト指向的に操作したい→ SplFileObjectクラス クラウドとかFTPとかにあるファイルを読み込みたい→ League\Flysystemライブラリ バイナリファイルを操作したいとか事情がない限り、feof()とかfclose()とかの出番はない。 file_get_contents() (PHP: file_get_contents - Manualより抜萃、2

    PHPでファイルを開いて読み込む - Qiita
    kkeisuke
    kkeisuke 2016/01/10
    用途別
  • CSS3 で縦書き+四分空け組 - にせねこメモ

    明治時代などにしばしば用いられていた四分空け組ってスタイルシート使えば再現できるんじゃね、と思ったのでやってみた。 サンプル 文章は夏目漱石『吾輩はである』である。 データは青空文庫のものを利用した。 図書カード:吾輩ハデアル また、これを近代デジタルライブラリーの画像を参照しそれをできるだけ再現しようと文を組んだ。 近代デジタルライブラリー - 吾輩ハデアル. 上 ワガハイハ ネコデ アル ✿✿🐈 🐈🍲 🐈 〈第一〉               夏 目 漱 石 吾輩はである。名前はまだ無い。 どこで生れたか頓と見當がつかぬ。何ても暗薄いじめじめした所でニャー〳〵泣いて居た事丈は記憶して居る。吾輩はこゝで始めて人間といふものを見た。然もあとで聞くとそれは書生といふ人間で一番獰惡な種族であつたさうだ。此書生といふのは時々我々を捕へて煮てふといふ話である。然し其當時は何とい

    CSS3 で縦書き+四分空け組 - にせねこメモ
    kkeisuke
    kkeisuke 2016/01/10
  • Blobについて

    File APIの一部で、大きなデータを扱う仕組み Base64されたDataURLだと、大きすぎて、タグの属性のやり取りで時間かかる。 ArrayBufferのままだと、渡す仕組みがない。 例えば、動画ファイルをアップロードした場合、それがBlobになる。 そして、BlobのURLを取り出す仕組みを使うと、videoタグにBlob-URLを渡して再生できる。 あるいは、JavaScript中でZipファイルを作成して、それをBlobにすれば、リンクからダウンロードできるようにも出来る。 パソコン内に大きなデーターを保存できるFileSystem API(Chromeのみ対応)もBlob経由で行う。 IndexedDBも新しいのはBlobに対応して、バイナリーデーターを保存可能になった。 FileEntryも多少似てるけど、こちらは、ファイル名とかパスとかがあり、原則、ユーザーが作成できな

    kkeisuke
    kkeisuke 2016/01/10
  • 2016年に取り入れていきたい、CSSのテクニック・ライブラリのまとめ

    2016年は、1月12日に古いバージョンのIEのサポートが終了します。 IE8, 9, 10などの古いブラウザへの対応に時間を割く必要がなくなり、今まで躊躇していたCSSJavaScriptが多くの人に利用されるようになると思います。 これからどんどん取り入れていきたいCSSのテクニック・ライブラリを紹介します。 イラスト: Girls Design Materials 2016年1月12日からIEの対応は実質IE11に レイアウト関連のCSS アニメーション関連のCSS ユーティリティ関連のCSS 2016年1月12日からIEの対応は実質IE11に 2016年1月12日(米国時間)に、IEの古いバージョンのサポートが終了します。 各Windows OSごとの対応バージョンは、下記の通り。 Internet Explorer サポートポリシー変更の重要なお知らせ Vistaユーザーはほぼ

    2016年に取り入れていきたい、CSSのテクニック・ライブラリのまとめ
    kkeisuke
    kkeisuke 2016/01/10
  • Redmine のチケット更新をデスクトップ通知する Electron アプリの作り方 - Qiita

    おはようございます。こんにちは。こんばんは。お疲れ様です。お世話になっております。 さて今回は、最近流行りの Electron で作ってみたアプリについてご紹介いたします。 作ったもの メニューバーやタスクトレイに常駐して Redmine のチケットの更新を監視し、更新があればデスクトップに通知してくれるアプリです。 Mac OSXWindows でご利用いただけます。 また、各種 OSS を利用したインストーラ作成のための環境も同梱しています。 使い方 REST API 機能を有効にする Redmine の管理画面にて REST API の機能を有効にします。 ※システム管理者権限が必要です 設定画面を開く Redmine Notifier を起動すると、メニューバーまたはタスクトレイにアイコンが表示されます。 アイコンのコンテキストメニューにて「Preferences」をクリック

    Redmine のチケット更新をデスクトップ通知する Electron アプリの作り方 - Qiita
    kkeisuke
    kkeisuke 2016/01/10
  • FuckFuckAdblock - アドブロック検知プログラムをブロック

    MOONGIFTはオープンソース・ソフトウェアを紹介するブログです。2021年07月16日で更新停止しました iOS9のSafariで追加されて以降、話題に上がることが多いのがアドブロックです。オンラインメディアにとっては死活問題になる訳で、アドブロックに対抗するJavaScriptライブラリも作られています。 そんなアドブロック対抗ライブラリに対抗するのがFuckFuckAdblockです(ややこしい)。とどのつまり、アドブロックが有効になります。 FuckFuckAdblockの使い方 アドブロック対抗ライブラリ、FuckAdblockが有効な時。アドブロックが使われていますと検知できています。 FuckFuckAdblockを使った場合、アドブロックが検知できなくなっています。これでアドブロックが有効になりました。 FuckFuckAdblockはGreasemonkeyとして動作す

    FuckFuckAdblock - アドブロック検知プログラムをブロック
    kkeisuke
    kkeisuke 2016/01/10
  • クロスサイトスクリプティング対策 ホンキのキホン - 葉っぱ日記

    稿はCodeZineに2015年12月28日に掲載された記事の再掲となります。 クロスサイトスクリプティング(XSS)は、古くから存在し開発者にもっともよく知られたセキュリティ上の問題のひとつでありながら、OWASP Top 10でも2010年に引き続き2013年でも3位と、未だに根絶できていない脆弱性です。 記事では、Webアプリケーションの開発においてXSSを根絶するために必要な対策の基気でお伝えします。 はじめに OWASPでは開発者に向けたセキュリティ対策のためのドキュメントやチートシートを多数用意しており、XSSへの対策としても「XSS (Cross Site Scripting) Prevention Cheat Sheet」というドキュメントが用意されています。 ただし、このXSS Prevention Cheat Sheetはシンプルなルールを定めたチートシートで

    クロスサイトスクリプティング対策 ホンキのキホン - 葉っぱ日記
    kkeisuke
    kkeisuke 2016/01/10
  • TypeScript 1.7 を Babel と組み合わせて async/await を使う | スマホ神 – JavaScript 受託開発 –

    TypeScript 1.7 が公開されて async await が --target es6 オプションだけでコンパイルできるようになりました。 しかし実行できる環境は今のところないようです。しかたがないので Babel を組み合わせて使ってみます。 例 TypeScript で async や function* を使った適当なコードを用意しました。 // src/a.ts import { count, delay } from './b'; async function main(): Promise<void> { for (const x of count()) { if (x === 2 ** 2) break; console.log(x); await delay(1000); } } main(); // src/b.js export function delay(

    kkeisuke
    kkeisuke 2016/01/10
  • Koaへの道: JavaScriptのジェネレータを使って非同期処理をコールバックを(あまり)使わずに実現する - 理論編 - Qiita

    Koaへの道: JavaScriptのジェネレータを使って非同期処理をコールバックを(あまり)使わずに実現する - 理論編JavaScriptes6es2015 Koaを勉強するに当たり、そもそもなんでジェネレータで非同期処理が同期処理みたいにかけるのかをきちんと理解していないと、始まらないような気がしたので、勉強がてら書いてみようかなと思います。 駄文が多いので、時間がないときは「ジェネレータを使った非同期処理」から読んでしまうといいと思います。 非同期処理の必要性 Node.jsとノンブロッキングI/O Node.jsでWebアプリを作ろうとするとき、やはり意識すべきはそのアーキテクチャだと思います。 WEBサーバとしてのNode.jsは、シングルプロセスで動作し、リクエストを順番に処理します。それゆえ、リクエストごとにプロセスを作るApacheに比べるとメモリ消費量が少ないことと、プ

    Koaへの道: JavaScriptのジェネレータを使って非同期処理をコールバックを(あまり)使わずに実現する - 理論編 - Qiita
    kkeisuke
    kkeisuke 2016/01/10
  • React.jsで
CSS組版作業の効率化

    https://www.hubspot.com/state-of-marketing · Scaling relationships and proving ROI · Social media is the place for search, sales, and service · Authentic influencer partnerships fuel brand growth · The strongest connections happen via call, click, chat, and camera. · Time saved with AI leads to more creative work · Seeking: A single source of truth · TLDR; Get on social, try AI, and align your sys

    React.jsで
CSS組版作業の効率化
    kkeisuke
    kkeisuke 2016/01/10
  • gulp + browserify + tsifyを利用してTypeScriptコンパイル環境を作る - $shibayu36->blog;

    最近TypeScriptを書いている。TypeScriptはそのままではブラウザで動かないのでコンパイルしてES5の形式にする必要がある。tscを使えば普通にコンパイル出来るのだが、今回はgulp + browserify + tsifyを利用したTypeScriptコンパイル環境を作ってみたのでメモしておく。 必要なnodeモジュールのインストール typescript, gulp, browserify, vinyl-source-stream, tsifyが必要。 # globalにtypescriptを入れる npm install -g typescript # ビルドに必要なモジュールを入れる npm install gulp --save-dev npm install browserify --save-dev npm install vinyl-source-stream

    gulp + browserify + tsifyを利用してTypeScriptコンパイル環境を作る - $shibayu36->blog;
    kkeisuke
    kkeisuke 2016/01/10
  • UI考 – ざっと見る、じっと見る | fladdict

    英文の速読術には、スキミング・スキャニングと呼ばれる技法がある。 スキミングとは「ざっと一覧して、全体を把握する」こと。各章のタイトルや、パラグラフの一文目、最終のまとめなど、要所要所だけをかいつまんでいく読み方だ。 一方、スキャニングは「特定の部分を熟読する」こと。こちらは一転して、一単語ずつ精査していく読み方である。 まず最初に全体をざっと見て(スキミング)、自分に必要な内容があるかをチェックする。その後に、必要な部分だけを選別してじっと見て(スキャニング)いく。英文速読では、この2つの読み方をペアにして扱う。つまり速読術とは全文を素早く読むことではない。細部を無視して、要点だけを拾い上げていく技法なのである。 この英文速読術の技法、スキミングとスキャニングは、画面の情報設計の大きなヒントとなる。情報を効率良く読むテクニックが確立されているのなら、それをロジック化すればよい。ロジックを

    UI考 – ざっと見る、じっと見る | fladdict
    kkeisuke
    kkeisuke 2016/01/10
  • Promiseはどう動作するのか – Promiseを実装してみる | POSTD

    目次 1. はじめに 2. Promiseの概念を理解する 幕間:行列が嫌いな女の子 2.1 Promiseとは何か? 幕間:実行順序 2.2 Promiseと並行処理 幕間:式の抽象化 3. Promiseのからくりを理解する 3.1. Promiseで式を順序付けする 3.2. 最小限のPromise実行 4.Promiseとエラー処理 幕間:計算失敗の場合 4.1. エラーをPromiseで処理する 4.2. Promiseの失敗の伝播 5. Promiseの結合 5.1. Promiseを確定的に結合する 5.2. Promiseを非確定的に結合する 6. Promiseの実用的な理解 6.1. ECMAScript Promiseの導入 6.2. .then の分析 7. Promiseとは相性が悪いケースとは? 8. まとめ 参考文献 追加資料 資料とライブラリ 1. はじめに

    Promiseはどう動作するのか – Promiseを実装してみる | POSTD
    kkeisuke
    kkeisuke 2016/01/10
  • もうサムネイルで泣かないための ImageMagick ノウハウ集 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちわ、アプリケーション基盤チームの青木(@a_o_k_i_n_g)です。好きなみかんは紅マドンナです。 今回は、サイボウズのサムネイル事情について記事を書きたいと思います。サイボウズに限らず通常の Web アプリケーションでもサムネイル作成はよくあると思いますが、ハマりどころが多く涙しているサムネイリストも多いかと思います。これからの時代を生きるサムネイリストが快適なサムネイルライフを送れるよう、知見を共有したいと思います。 弊社では画像変換ツールに ImageMagick を用いており、従って知見は ImageMagick 固有のものがほとんどです。 画像比較は人間の眼で行うべし サムネイル周りに何か修正を入れたら修正前後の画像を比較しましょう。機械によるバイト列の比較では画像の良し悪しがわかりません。頼れるのは人間の眼だけです。肉眼で確認しましょう。 比較できるツールを作ると良

    もうサムネイルで泣かないための ImageMagick ノウハウ集 - Cybozu Inside Out | サイボウズエンジニアのブログ
    kkeisuke
    kkeisuke 2016/01/10
  • サルでもわかるJenkins入門〜自動テスト環境を構築しよう - ICS MEDIA

    Webアプリケーションを開発において、最新ファイルをこまめにテスト環境に反映しなければいけない場面があると思います。しかし、これらの作業を手動で行っていると、ビルド(SassのビルドやFlashコンパイルなど)に時間がかかったり、ファイルアップ時に反映漏れや誤ったファイルをアップしてしまうなどの人的ミスが発生し、ムダな時間を費やしてしまった経験のある方もいらっしゃるかと思います。 Jenkinsの入門チュートリアル そういった開発チームには、作業の効率化および人的ミスの軽減に役立つCI(継続的インテグレーション)ツールの導入がオススメです。この連載記事ではJenkinsとAWSGitHubを使って、コンテンツのビルドからテスト環境へのデプロイまでを行ってくれるCI環境を構築の手順を解説します。 Jenkins環境を構築しよう (Windows編) Jenkins環境を構築しよう (Lin

    サルでもわかるJenkins入門〜自動テスト環境を構築しよう - ICS MEDIA
    kkeisuke
    kkeisuke 2016/01/10
  • iframe sandbox は万能ではない - 葉っぱ日記

    HTML5で導入されたiframe要素のsandbox属性は、そのiframe内のコンテンツに対しJavaScriptの実行を始め様々な制約を課すことでセキュリティの向上に役立つ機能である。例えば、以下のように指定されたiframeでは、iframe内からformのsubmitなどはできるが、iframe内でのJavaScriptの実行やtarget=_blankなどによってウィンドウを開くことなどは禁止される。 <iframe sandbox="allow-forms" src="..."></iframe> sandbox属性に明示的に allow-scripts という値を指定しない限りはiframe内では直接的にはJavaScriptは実行できないが、かといってiframe内から間接的にJavaScriptを必ずしも実行させることが不可能かというとそうでもない。 sandbox属性

    iframe sandbox は万能ではない - 葉っぱ日記
    kkeisuke
    kkeisuke 2016/01/10
    “HTML5で導入されたiframe要素のsandbox属性は、そのiframe内のコンテンツに対しJavaScriptの実行を始め様々な制約を課すことでセキュリティの向上に役立つ機能”
  • CSS Animation - Free CSS tutorials and guides - CSS Animation

    CSS animation articles, tips and tutorials. Level Up Your CSS Animation Skills Enrol and save 90% today CSS Animation Tutorials Parallax scrolling Scroll animations UI Animation in React Animating Links Create an animated scroll cue Transitions in space Build an awesome Hero Header Animating your hero header Why animate? Star Wars Stereoscopic CSS Spheres Portal CSS Buffer's loading animation WWDC

    kkeisuke
    kkeisuke 2016/01/10