タグ

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

  • プログラマ向けニュースキュレーションサービスを作ってみた話 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 2015年度新卒でドワンゴに入社しました@ytanakaといいます。普段はAndroidアプリ開発を主に担当していますが、大学院時代は増井俊之先生のもとでユーザインタフェースと情報推薦システムの研究をしていました。 ドワンゴに入社後、それまでの研究を活かしプログラマ向けのニュースキュレーションサービスMenthas(メンタス)を個人開発しました。今回はせっかくの機会なので、開発の経緯と概要そして仕組みについて述べたいと思います。 追記: 続編を書きました こちらの記事は以前のバージョンの内容になります。現行のMenthasの仕

    プログラマ向けニュースキュレーションサービスを作ってみた話 - Qiita
  • Google Guava をもっと活用する - Qiita

    Google Guava とは Guava とは Google が開発している Java の Common ライブラリ。 先日、最新バージョン v19.0もリリースされました。 非常に便利なライブラリなので、使っている人たちも多いはず。面倒なロジックを組まないといけない場合は、とりあえず使える機能がないか調べるようにしています。 Java8 が出てきて、FluentIterable など競合する機能や出番の少なくなった機能も多いですが、使える機能はたくさんありますので、紹介してみようと思います。使うときに不便だった点も付け加えておきます。 Table キーを2種類持てる Map のようなもの。 複数のキーで(といっても2種類)オブジェクト集合を検索するための一時的な索引として使うと便利。 2種類があれば3種類も、と思うが、3種類以上のキーを持てるものは、残念ながら無い。 List<Empl

    Google Guava をもっと活用する - Qiita
  • 君たちはそんなにハンバーガーメニューが好きなのかね?

    はじめに 稿は UI Design Advent Calendar 2015 – 8日目のモバイル UI に関する記事です。 まず私はハンバーガーメニューという UI が嫌いです。その理由についてこの記事で説明していきたいと思います。 あの三線を人はハンバーガーと呼ぶ 最近よく見かけるあの“三線”のことを海の向こうでは ハンバーガーアイコン とか ハンバーガーメニュー とか言うらしいです。上のがパンで、真ん中のがハンバーグで、下のがパンに見えるからだそうです。にしてもこのただの三線をハンバーガーと表現するのは少し無理があるような気がします。まあ違和感あれどそこに抗っても仕方がないので、とりあえずこれはハンバーガーと呼称することにします。 ハンバーガーメニューを避けたい理由 真面目にハンバーガーメニューを考察してみます。 1. 何をするのかがわからないアイコン https://dri

    君たちはそんなにハンバーガーメニューが好きなのかね?
  • 闇雲にディズニー映画みたいなアニメーションを GUI に実装するのはもうやめよう - Qiita

    はじめに 稿は UI Design Advent Calendar 2015 – 9日目の GUI アニメーションに関する記事です。 アニメーションの12の基原則と GUI ディズニーの アニメーションの12の基原則/12 basic principles of animation というのがありまして、要はこの原則に沿ってアニメーションを制作すればまるでそれが生きているかのような動きをする、平たく言えばディズニーっぽい動きになる、というものです。http://the12principles.tumblr.com がとてもわかりやすいので、うちいくつかを転載しておきます。 SQUASH & STRETCH ANTICIPATION FOLLOW THROUGH & OVERLAPPING ARCS ビデオ解説:The illusion of life これらを見ただけでも、『あー、デ

    闇雲にディズニー映画みたいなアニメーションを GUI に実装するのはもうやめよう - Qiita
  • JavaのOptionalのモナド的な使い方 - Qiita

    NullPointerException 嫌いですよね!そんなときに頼りになるのが Java 8 から導入された Optional です。 でも、 null の代わりに Optional を積極的に使うとコードが Optional だらけになり、特に次のような場合に面倒くさいです。 Optional<Integer> a があるとき、 a の値を二乗したい。ただし、 a が empty の場合は empty を得たい。 Optional<Double> a があるとき、 a の平方根を計算したい。ただし、 a が empty または負の数の場合は empty を得たい。なお、 Math.sqrt を安全にした(負の数を渡すと empty を返す)関数 Optional<Double> safeSqrt(double) があるものとして考えて良い。 Optional<Integer> a と

    JavaのOptionalのモナド的な使い方 - Qiita
  • Web APIにはJSONベースのフォーマットを使おう - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    Web APIにはJSONベースのフォーマットを使おう - Qiita
  • 業務システムにおけるロールベースアクセス制御 - Qiita

    RBACの基礎 業務システムの権限制御の基形はロールベースアクセスコントロール(RBAC)です。簡単化すると、以下のようなモデルです。 Subject(システムユーザ)は、複数のRole(ロール)を持っている。 Role(ロール)は、Permission(権限)のセットからなる。 Permission(権限)は、オペレーション(許可される操作)のセットからなる 具体的に、Redmineでの例をみてみましょう。 ユーザにはデフォルトで「管理者」「開発者」「報告者」のロールが割当可能である。 「報告者」ロールは、「Add Issues」の権限をもつ。 「Add Issues」の権限をもつユーザは、「Issueの新規作成」ができる。 このモデルをRedmineでは、以下のように表現しています。 Redmineは1人のユーザを、複数のプロジェクトに異なるロールでアサインすることができるので、上記

    業務システムにおけるロールベースアクセス制御 - Qiita
  • JPA & JAX-RS のテストを Arquillian を使ってやってみた(テストカバレッジ取得のおまけつき) - Qiita

    Java EE でテストやるなら Arquillian Oracle の強力なプッシュもあってか、Java EE が勢いを盛り返しつつある昨今ですが、Java EE にはテスティングフレームワークはありません。やっぱり JUnit とか使います。 しかし、Java EE はアプリケーションサーバーによるコンテナ管理を中心に動作するので、単純に new でオブジェクトを生成して試すことはできず、JUnit だけでは力不足。そこで登場するのが Arquillian。 Arquillian · Write Real Tests Arquillian is an innovative and highly extensible testing platform for the JVM that enables developers to easily create automated integr

    JPA & JAX-RS のテストを Arquillian を使ってやってみた(テストカバレッジ取得のおまけつき) - Qiita
  • PostgreSQL9.4を入れてみる - Qiita

    # yum install http://yum.postgresql.org/9.4/redhat/rhel-7-x86_64/pgdg-redhat94-9.4-1.noarch.rpm # yum install postgresql94-server postgresql94-contrib # su - postgres $ mkdir 9.4/data/ $ mkdir 9.4/backups/ $ /usr/pgsql-9.4/bin/initdb --encoding=UTF8 --no-locale データベースシステム内のファイルの所有者は"postgres"ユーザでした。 このユーザがサーバプロセスを所有しなければなりません。 データベースクラスタはロケール"C"で初期化されます。 デフォルトのテキスト検索設定はenglishに設定されました。 データベージのチェック

    PostgreSQL9.4を入れてみる - Qiita
  • ansibleでpostgresqlインストール - Qiita

    最近ChefからAnsibleに乗り換えてみたので、AnsibleからPostgresqlをインストールする一連の流れをplaybookにしてみた。 手順 必要パッケージのインストール postgresql initdb postgresql start DB作成 DBユーザ作成 playbook --- - hosts: all sudo: yes vars: dbuser: "sample-ansible" dbpass: "abcdefg" dbname: "ansible-db" tasks: - name: install postgresql yum: name={{ item }} state=latest with_items: - postgresql-server - postgresql-devel - postgresql-contrib - python-psyc

    ansibleでpostgresqlインストール - Qiita
  • Tomcat JDBC Connection Poolの存在を忘れてました - Qiita

    はじめに 少し前まで業務でSeasar2 FWを使っていたためコネクションプールはSeasar2のものを利用していました。S2のコネクションプールの実装はシンプルだったし業務で利用していても特にそこがボトルネックになることはありませんでした。 別のプロジェクトに移ってDBCPを触っていたのですが、実装になんとなく疑問を感じたので調べてみました。 tomcat jdbc connection poolとは? tomcatで実装したConnectionPoolの実装です。(DBCPとは異なります。) tomcat 7.0.19から利用できます。 tomat-jdbc.jarに含まれています。 DBCPからの切り替えはfactoryを変更するだけです。 tomcatのdefaultではDBCPが選択されていますので明示的に変更が必要です。 どこに違いがあるのか。 パフォーマンス DBCPよりパフ

    Tomcat JDBC Connection Poolの存在を忘れてました - Qiita
  • EmacsでモダンClojure開発環境構築 - Qiita

    2016年02月28日追記: こちらの内容は古いです というわけで、この記事ではなく2016年2月時点の最新情報である以下をご覧ください。 新: Emacs を使うモダンな Clojure 開発環境 ただ、kibitの導入等の一部の設定は上記リンク先では対象外としておりますので、その辺りの設定が必要な場合はこちらに書かれている内容も使える…かも知れません(ただし最新バージョンへのキャッチアップはできておりません)。 事前準備 / Emacsの前に OSにleiningenがインストールされている必要あり。 apt-get、brew、yaourt等で入れておくこと。 ClojureやJVMのパッケージは、その依存パッケージとして入ってくる気がするが、そうでなければこれらは先に入れておく。 leiningenの設定 ~/.lein/profiles.cljとして以下の内容のファイルを設置する。

    EmacsでモダンClojure開発環境構築 - Qiita
  • Ruby のココがダメ - Qiita

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

    Ruby のココがダメ - Qiita
  • Spring Boot + Thymeleaf + Tomcat + Gradleで業務系アプリ 躓いた所6点 - Qiita

    JavaでWEBアプリケーションを作りたい!!という要望に今答えられるフレームワークはいくつかあるが、 その中でSpring Bootは大きな存在感があると思う。 短期間で業務系アプリを構築してほしいという要望が来たのでSpring Bootを使って開発した。 いくつか躓いた点をメモしていたので、それについて共有します。 ※注意:これは実際使ってみて困った点を共有するために記述しています。 ※Spring Bootを使ったことがないというかたは、こちらの方が参考になるかと思います。:http://qiita.com/opengl-8080/items/05d9490d6f0544e2351a ###システム全体像 ・フレームワーク:Spring Boot ・実行環境:開発中は組込みTomcat。番運用はTomcat7上で。 ・ログイン認証:Spring Security ・プレゼンテーシ

    Spring Boot + Thymeleaf + Tomcat + Gradleで業務系アプリ 躓いた所6点 - Qiita
  • JavaScriptのテンプレートエンジンHandlebars入門 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    JavaScriptのテンプレートエンジンHandlebars入門 - Qiita
  • cronの代替になりそうなジョブ管理ツールのまとめ - Qiita

    たまに検討するけど、よく忘れるのでまとめておく。ごく個人的な感想としては、Rundeck, Azkabanあたりで始めてみるのがいいかもと思う。 要件 重複実行の防止 ジョブの実行結果、かかった時間、ログ出力などが見れる 失敗時の通知 候補 OSS系 Rundeck http://rundeck.org/ Java Runtimeで動く RUNDECK PROという有料サービスもある http://simplifyops.com/ 参考: http://heartbeats.jp/hbblog/2015/01/rundeck.html Oozie http://oozie.apache.org/ Workflow Scheduler for Hadoop Java http://oozie.apache.org/docs/4.1.0/DG_Overview.html Webコンソールもある

    cronの代替になりそうなジョブ管理ツールのまとめ - Qiita
  • quartz APIの基礎 - Qiita

    はじめに 相変わらずツマラナイサンプルですが、社内の人に向けて書いてみました。 quartz APIについての情報が少ないのでまとめておきます。 基的なこと quartzにはJOBとTriggerという概念があります。 JOB実行したい処理を書きます。JOBインタフェースをimplementsすればなんでもかけます。 Triggerはスケジュールを表現するクラスです。cron expressionが使えますが、cronexpressionを使わずともAPIを使って同じことはできます。(今回は割愛) 上記のJOBとTriggerをScheduleインタフェースを使って操作します。 JOBとTriggerをまとめて登録 Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); JobDetail job = JobBui

    quartz APIの基礎 - Qiita
  • JavaのテストにはAssertJがオススメ - Qiita

    JavaでのテストはJUnit4が使われていると思いますが、自分としては、それに加えてAssertJをオススメします。 AssertJ AssertJが使いやすい理由 JUnit4のassertThatと比べてAssertJが使いやすい理由は2つあります。 流れるようなインターフェース AssertJは「Fluent assertions for java」とトップページに大きく書かれているように、流れるようなインターフェースが最大の特徴です。いちいちドキュメントを調べなくても、IDEの補完機能で適切なメソッドを調べられるので、JUnit4のassertThatに比べて書きやすいです。 拡張がMatcherに比べて遥かに楽 Matcherの拡張対象は「比較方法」で、AssertJの拡張対象は「クラス」なので比較するのは適切ではないかもしれませんが、Matcherの拡張がの上から足を掻く感

    JavaのテストにはAssertJがオススメ - Qiita
  • HTMLのアウトライン意識してますか? - QiitaのSEO事情(前編) - Qiita

    「最近Qiitaを検索結果でよく見るようになったなぁ」と感じる人はいませんか? SEOを頑張ってるWebサービスは数多存在しますが、Qiitaもその中の1つです。 SEOっていうとやれキーワードがどうだこうだ、サイト内リンクがどうだこうだ、という話になってしまいがちですが(そういうのが不要と言っているわけではないですよ)、今回はQiitaがSEOの一環として行なっている数多の取り組みの中で、比較的Web上での言及数の少ない印象のある、HTMLのマークアップについて、外に出せる範囲で、前編と後編に分けて解説したいと思います。 後編はこちら 免責事項的な SEOというのは完全に結果論でしか語ることのできないものです。また時と共に効果的とされるテクニックは変わっていきます。この記事はQiitaの中の人が「効果あるんちゃうか」と試行錯誤しながらあれこれ行なっていることの一部を紹介するものであって、

    HTMLのアウトライン意識してますか? - QiitaのSEO事情(前編) - Qiita
  • schema.orgに準拠してクローラと会話しよう - QiitaのSEO事情(後編) - Qiita

    前編ではHTML5のアウトラインを綺麗にする、というお話でした。アウトラインを綺麗にすれば、検索エンジンにコンテンツの階層構造がどうなっているのか、正しく教えることができます。 けどそれだけでは1つ1つのまとまりが一体何を表しているのかが不明です。 schema.orgに準拠することで、そこに何が書かれているのか、を検索エンジンに教えることができます。 schema.orgとは schema.org はGoogle, Microsoft, Yahoo!などの検索エンジンベンダーが集まってマークアップ方式を標準化している組織とその標準化された仕様を文書化しているサイトです。 例えば「ここは著者のことを書いています」「これは著者の名前です」「この記事が公開されたのはこの日時です」などなど、HTMLの機能だけでは伝えきれない詳細な情報をクローラに伝えるための手段が色々定義されています。 ちなみに

    schema.orgに準拠してクローラと会話しよう - QiitaのSEO事情(後編) - Qiita