タグ

ブックマーク / qiita.com (326)

  • その Dialog は本当に必要ですか? - Qiita

    ダイアログは、ユーザとの対話の中でも特に「確認」や「注意」を促すために用いられる UI コンポーネントの一つです。二択あるいは三択の項目を配置して、YES/NO や OK/Cancel などのインタラクションを用意することで、ユーザとの対話をすることが出来ます。あるいは、単に現在の状態を表示(読込中など)し、その他の各種操作をブロックすることで、待つ必要が有ることを明示することも出来ます。 一方で、ダイアログはその表示が画面の前面に大きく表示され、時にダイアログ以外へのインタラクションを禁じる場合もあることから、使いどころを間違うと非常に陶しく見えるものでもあります。また、ダイアログのキャンセル操作が出来ない場合において、いつまでもダイアログが出続けてしまうとユーザの負担は大きくなります。 この記事では、ダイアログを使用している場面において、その他の表現方法や実装の工夫を使うことができる

    その Dialog は本当に必要ですか? - Qiita
    s17er
    s17er 2015/11/12
    なんでもかんでも確認ダイアログ出すのって操作ミスをユーザ側に押し付けたい意図があるよね
  • 滅び行くAndroid 標準ブラウザをサポート外にして悩みの種をなくす話

    Android 4.3系以前で使われた標準のブラウザ(Android Browser)は、不具合も多いし、デバッグ方法もろくにない。スマホのIE6と化しているこのブラウザはもうサポートするのやめたかった。 しかもこの標準のブラウザはGoogleからのサポートはすでに切られています。脆弱性も絶賛放置中! https://plus.google.com/+AdrianLudwig/posts/1md7ruEwBLF(公式見つからなかった) なのでユーザー的にも開発者的にも標準ブラウザを使うメリットはないので、 標準ブラウザのユーザーをChromeに移行するようにページトップに警告を表示し、Android 標準ブラウザをサポートから外しました。 標準ブラウザを判定する方法 あまりJSでがんばりたくないので、UAで判定します。いつもカオスなUAですが今回もカオスです。 Android端末ユーザーエ

    滅び行くAndroid 標準ブラウザをサポート外にして悩みの種をなくす話
    s17er
    s17er 2015/11/11
  • gitとプルリクエストに関して思うことまとめ - Qiita

    ※この記事は元々「Gitのこれやめて!リスト」として2015年11月に投稿したものを改訂したものです。 この記事について 私が個人的にgitとプルリクエストについて、「こうして欲しい」とか「これはやらないで!!」とか思っていることをまとめたものです。 元々は2015年に私がコードレビューをしてる時に気になったことを、あまり推敲もせず思うがままに書いた記事でした。今改めて読み返すと稚拙な文章なのと、他に思うところとがあったりしたので、改めて書き直しました。いいね貰ってるのに書き直すのに若干後ろめたさがあるのですが、よりいい内容にできればと思います。 コミットログがきれいだとレビューしやすい 一人で開発するときはgit使っててもブランチ切らないし、プルリクもださないしで、コミットログも"First Commit"の次が"Second Commit"とかでも支障はないです。しかし、チームで開発す

    gitとプルリクエストに関して思うことまとめ - Qiita
    s17er
    s17er 2015/11/09
  • UTF-8 の4バイト文字を HTML 数値文字参照に変換する - Qiita

    対象とする読者層 この記事は何らかの理由で MySQL 5.5 で導入された utf8mb4 を使えないもしくは古い CMS のために utf8mb3 を使い続ける必要がある人を対象とします。 2019年の状況 WordPress.org の統計によれば WordPress が導入されているサーバーの9割で MySQL 5.5 以上が動いています。 問題と対策 MySQL の utf8mb3 (utf8) の仕様では、4バイト文字 (U+10000 から U+10FFFF) をそのまま保存することができないので、サロゲートペア (U+D800 から U+DFFF) に対応する2組の3バイトの文字に変換するか、HTML 数値文字参照など復号可能なデータ形式に変換する必要があります。前者についてはこちらの記事をご参照ください。 HTML 数値文字参照を選ぶメリットは標準関数で変換できることやブ

    UTF-8 の4バイト文字を HTML 数値文字参照に変換する - Qiita
    s17er
    s17er 2015/10/30
  • Ruby のココがダメ - Qiita

    タイトルは釣りです。Ruby に盲目的に惚れている迂生には Ruby の痘痕(あばた)はエクボです。 それはともかく。 メソッド名の別名がありすぎ 「あなたは map 派? それとも collect 派?」っていう問いがまず嫌い。 いや,別名にも意義があるとは思うんだけど,記憶の負担が大きい。 自分では map しか使わなくても,他人のコード読むんだったら collect を知っていなくちゃならない。 しばらく前に reduce っていうメソッド見て,そんなのあったっけ?と思ったら inject の別名だった。 map/collect と inject/reduce の名前とその背景にある発想については,Rubyist Magazine に良い記事がある: そうかと思えば,Array#delete_if と Array#reject! みたいに,働きは基的に同じだけど,削除が行われなかっ

    Ruby のココがダメ - Qiita
    s17er
    s17er 2015/10/28
  • 今更Vimperator入門とvimperatorrc晒し - Qiita

    はじめに 動機 ブラウザをマウスで操作するのが面倒くさい。 特にブラウザと日夜格闘しているWeb開発者は、コードをキーボードで書いて、動作テストをキーボードとマウスの両方でして、の繰り返しというのはマウスを使用する手の移動量が多くなり疲れるのだ。別にマウスでの操作が悪いわけではないが、ただただ面倒なのだ。 ThinkPadの赤いアレなどはまあまあよい解決策なのだが、代わりにキーボードが決まってしまってよろしくない。 最近はマウスの方が操作早くね? とかいう記事もあった(実際、人によっては事実である)が、キーボードの最大の利点はあまり視覚に頼らずに入力を行えるということである。 ということでできるだけキーボードでブラウザの操作を行えるようにしたくなったところ、Vimperatorの存在を聞いて今に至るというわけだ。 以前から利用はしていたのだが、やっとそれなりに知見も得られ、まとまったため公

    今更Vimperator入門とvimperatorrc晒し - Qiita
  • ターミナルとしてのMinGW+MinTTYのセットアップ - Qiita

    MinGW+Mintty 環境 Windows 8.1 pro 参考サイト http://www.mingw.org/wiki/Getting_Started http://zarari.hatenablog.com/entry/2013/08/22/235819 MinGWのダウンロード http://www.mingw.org/ 公式サイトからSetupToolを取得。インストール。 MinGW InstallationManagerが起動するので Basic Setupの中のPackageを全てMarkしてインストールします 環境変数の設定 PathにC:\MinGW\bin C:\MinGW\MSYS\1.0\binを追加 minttyのインストール コマンドプロンプトを起動し以下のコマンドを実行 mingw-get update mingw-get install mintty

    ターミナルとしてのMinGW+MinTTYのセットアップ - Qiita
    s17er
    s17er 2015/10/22
  • 実はテスト駆動開発ってしっくりこないんです - Qiita

    内容はあくまで私の主観です。いつも通りコメントは大歓迎ですが、長文であれば別途投稿してもらえたほうが有益だと思います。 自分のスタンス 自動テストは素晴らしい。どんどん利用していくべき。 テスト駆動開発の主張に同意できない。 TDDの何がしっくりこないか TDDの主張がしっくりこない TDDの肝は「テストを先に書くことで思考をクリアにし、実装を早くする」「Red-Green-Refactoringの繰り返し(以下、TDDのサイクル)というガイドを用意することで開発者を安心させる」だと思っている。 まず一つめが納得いかない。世の中のプログラマは当にテストが無いと行き当たりばったりで全く保守できないような実装をしてしまうのだろうか。少なくとも私はテストの有無に依らずそれなりの設計をする自信がある。 最初にテストがあれば「テストしやすいコードを強制させる」ことができるのはまあ正しいだろう。しか

    実はテスト駆動開発ってしっくりこないんです - Qiita
    s17er
    s17er 2015/10/16
  • Java と Android の正規表現の動作の違い - Qiita

    この記事は、先日の potatotips #22 では説明しきれなかった部分を補足するものです。potatotips #22 でのスライドは Regular Expression in Android And Java です。 おさらい Pattern | Android Developers Java の正規表現 Patternクラスを用いて、正規表現文字列をコンパイルしてマッチする処理を描くことになります。Stringクラスには一部便利なメソッドがあり、正規表現文字列を渡してマッチするものに処理を施す事ができるようになっていますが、あまり複雑なことはできないため、Stringクラスで提供されている以上のことをする場合はPatternクラスを用います。 Java の正規表現は Perl5 のシンタックスのサブセットですが、Perl のように正規表現リテラルは存在せず、文字列を用いて正規表

    Java と Android の正規表現の動作の違い - Qiita
    s17er
    s17er 2015/10/14
  • コピペしてすぐ使えるアラートダイアログ集 - Qiita

    注意事項(2016/7/14追記) 画面回転時のメモリーリークを防ぐため、下記のような DialogFragment を作成することを推奨します。 public class SampleDialogFragment extends DialogFragment { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { return new AlertDialog.Builder(getActivity()) .setTitle("タイトル") .setMessage("メッセージ") .create(); } @Override public void onPause() { super.onPause(); // onPause でダイアログを閉じる場合 dismiss(); } } はじめに あのタイプの

    コピペしてすぐ使えるアラートダイアログ集 - Qiita
  • Android 5.0のRippleDrawable概論:既存アプリのRipple対応まで - Qiita

    はじめに 過去に書いたQiita記事「Android L Developer Previewで追加されたripple effectを使った独自ボタンを作る」があるのですが、Android 5.0 SDKの正式リリースがあったので、公式リファレンスを踏まえつつ別観点から解説していきたいと思います。 公式リファレンス: RippleDrawable | Android Developers 説明しないこと JavaコードからRippleDrawableをアレコレするような内容には触れません。 また、API21未満でRippleDrawableを使う方法にも触れません。むしろ俺が知りたい。 あしからず。 基事項 RippleDrawableはLayerDrawableを継承しています。よって、通常のdrawableリソースと同じように使うことが出来ます。(この点が、後述する@android:i

    Android 5.0のRippleDrawable概論:既存アプリのRipple対応まで - Qiita
    s17er
    s17er 2015/10/06
  • そろそろ真面目に、HTMLで帳票を描く話をしようか - Qiita

    帳票といえばPDFとして生成するのが一般的でしょうか? でも、2015年の今、あえてHTMLで描くのがホットです(個人的に)。ミリ単位で設定された高度な帳票も、CSSを駆使して簡単に作ることができます。業務システムでもモダンブラウザを選択することが増え、@pageなども積極的に使えるようになったこと、SPA(Single Page Application)の台頭、いろいろと条件が揃ってきました。 書いてたら結構長くなっちゃったので、さくっとコードだけ見たい方は、Paper CSSリポジトリをどうぞ。 はじめに HTML帳票のメリット 2015年現在、HTML帳票を選択する幾つかのメリットがあります。 ライブリロードで、リアルタイムなスタイル調整 バックエンドではなくフロントエンドで生成できる 前者は、gulpやGruntの普及で、CSSにしろHTMLにしろ、リアルタイムにプレビューできる環

    そろそろ真面目に、HTMLで帳票を描く話をしようか - Qiita
    s17er
    s17er 2015/10/06
  • Android開発を受注したからKotlinをガッツリ使ってみたら最高だった - Qiita

    関連記事 この記事も古くなりましたね。執筆時の実装バージョンKotlin 0.12から1.0.2へのアップグレード対応をした際の知見を記事にしました。 Kotlinを実案件で使いました 先日、僕の勤め先のQonceptは『リアル鬼ごっこ』×富士急ハイランド 巨大遊園地からの逃走を開発、リリースしました。 富士急ハイランドで実際に鬼ごっこをする企画で、一般のお客さんがスマホで専用アプリを使いながらクリアを目指します。園内には鬼役のスタッフや、ゲーム進行に関わる設備などがあり、これらとスマホがiBeacon(BluetoothLE)を用いて連動することで、ダメージを受けたり、アイテムを使用したり、クイズを解いたりなどします。 Qonceptの開発範囲は、iOSアプリ(とAppleWatchアプリ)、Androidアプリ、サーバサイドでした。 受注確定となった時点で、残り日数と開発者リソースに対

    Android開発を受注したからKotlinをガッツリ使ってみたら最高だった - Qiita
    s17er
    s17er 2015/10/05
  • SwipeRefreshLayout覚え書き - Qiita

    Support Library revision 19.1.0からSwipeRefreshLayoutという新しいViewGroupが追加された。 これはいままで引っ張って更新とかPullToRefreshとか呼ばれていた機能を実装できるものになる。 以後長々と書くが、公式サンプルのほうがわかりやすくてタメになるのでそっちを見たほうがいい。 実装 まず、Support Library revision 19.1.0が使える状態にしておく。 次に、利用したい画面のレイアウトファイルにSwipeRefreshLayoutを配置する。 この時、SwipeRefreshLayoutの直接の子はひとつだけになるようにする。 <android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/a

    SwipeRefreshLayout覚え書き - Qiita
  • 第四章 キーレスエントリ(外部キー嫌い) - Qiita

    # 親行を参照するバグレポートがあるか確認 SELECT bug_id FROM Bugs WHERE reported_by = 1; # 子行がなかったらアカウント親を消すことができる DELETE FROM Accounts WHERE account_id = 1; ・もし、account_id=1の利用者が知らないところで作業をしていて、上記の削除作業中に新しいバグレポートを登録していたら…?親のない不正な子レコードがBugsテーブル上にそのまま残ってしまう! →対処策はBugsテーブルを明示的にロックしながらチェックを行い、アカウント削除後にロックを解除すること。 しかしこの種のロックを必要とするアーキテクチャでは同時接続ユーザーが増え、スケーラビリティ(システムの利用者や負荷の増大に応じて、柔軟に性能や機能を向上させられること)が求められるようになるにつれ、様々な問題に直面し

    第四章 キーレスエントリ(外部キー嫌い) - Qiita
    s17er
    s17er 2015/10/02
  • Hugo + Github Pagesでブログを公開してみた - Qiita

    hugoでブログをやってみる ブログをやってみようと思った時に、ここはRuby書いてる人っぽくjekyllでやってみるか!って思って調べてたら、もっと良さそうなものを見つけた。gitでリポジトリをプッシュするだけで簡単にブログ記事をあげられる&記事の生成がめっちゃ早いということで評判が良かったので、hugoを使ってみることにしました。そして、ドハマりしたうえ日語の記事も少なかったのでメモ。 hugoの魅力 1. とにかく記事作成が楽 最終的にですが、ターミナルから以下の手順だけでGithub pagesにてブログが更新できます。 $cd ~/blog #hugoによって生成されたディレクトリまで移動 $hugo new post/hugahoge.md #新規マークダウンファイルの作成 $ ./deploy.sh #色々なコマンドの入ったシェルスクリプトの実行(コピペで手に入る) $ g

    Hugo + Github Pagesでブログを公開してみた - Qiita
    s17er
    s17er 2015/09/02
  • https://qiita.com/tukiyo3/items/e471101095f054e3f029

    s17er
    s17er 2015/08/31
  • Dockerで即実行できる、社内・自宅向けオープンソースWebアプリ - Qiita

    デスクトップアプリケーションに比べるとWebアプリケーションの導入は面倒だが、DockerやVagrantの登場によって敷居が低くなっている。誰かがDockerHubへ使いやすいイメージを公開してくれたり、Webアプリの開発元がDockerfileを公式に提供しているケースが増えてきているためだ。 この記事では、筆者が実際に使用したことのあるWebアプリの一覧と、docker-composeの設定ファイル(またはDockerfile)をまとめる。既にDocker環境が整備されている状態であれば、YAMLファイルやDockerfileをコピペしてdocker-compose up -dするだけで自動的にWebアプリケーションが起動する。(もし動かなかったらスミマセン) セキュリティとかは考えていないので、LAN内のみでの使用を想定 記載の設定では、永続化データはDockerが動作しているマシ

    Dockerで即実行できる、社内・自宅向けオープンソースWebアプリ - Qiita
    s17er
    s17er 2015/08/27
    zipでくれ じゃなくてDockerfileでくれ
  • 無限リストによるエラトステネスのふるい - Qiita

    Elixir では Stream モジュールを使って、遅延評価と無限リストを扱うことができるがそれによりエラトステネスのふるいを、Haskell と同じように無限リストを使った記述ができるか・・・というのが今回の試み。結果としては、カッとなれば、できる。 以下、Stream の解説も交えてお届けする。 Enumerable プロトコルと Enum および Stream Elixir の Enum モジュールには map/2 や filter/2 や zip/2 など、コレクション操作に必要な関数が多数実装されている。以下はそのドキュメントの例である。Functions のところに Enum の関数が列挙されているのが分かる。 ちなみにこのドキュメント閲覧は Dash の画面。自分は主に iOS 開発のドキュメント閲覧によく使っているが、見ての通り Elixir のドキュメント参照にも便利。

    無限リストによるエラトステネスのふるい - Qiita
    s17er
    s17er 2015/08/27
  • プログラミングスタイルガイドのスタイルガイド - Qiita

    文書は、プログラミング言語向けのスタイルガイドに向けたスタイルガイドである。 文書へのフィードバックはQiita上のコメントにて受け付ける。 構造 対象を明確にする そのスタイルガイドがどのような状況のどのような対象に向けたスタイルガイドであるか規定すること。 状況や対象は広すぎてはならない。 理由: 対象はスタイルガイド記述者には自明かもしれないが、似て非なる言語に誤用されたり、特定分野のアプリケーション向けスタイルガイドが他分野のアプリケーションを理不尽に拘束したりすることがある。これを防ぐべきである。 良い例: 「文書はRuby on Railsアプリケーション向けのスタイルガイドである」 「スタイルガイドはX社におけるRubyプロジェクトに適用すべきスタイルを規定する」 悪い例: (何も書かない) 「文書はX社におけるすべての開発に適用される ... 述語メソッドや述語関

    プログラミングスタイルガイドのスタイルガイド - Qiita
    s17er
    s17er 2015/08/26