TECH PLAY

株式会社ユーザベース

株式会社ユーザベース の技術ブログ

476

SPEEDAの開発してます矢野です。社外から参画してます。SPEEDAを書いてないときは、最近はClojureを書いています。 SPEEDAではApache Wicketを使っています。バージョンも順調に挙げられているので、Wicket 5から導入されたイベントシステムも、最近はかなり活用しています。イベントシステムについてはドキュメントも少なく活用方法がよくわからない、という話もあるようなので、活用方法を紹介します。 まずは手始めに 問題 ならば書けばよいのだ 配布してます コンポーネントの疎結合とクラス定義のコツ コンポーネントは外部からsinkを指定できるべき sinkが指定されてない場…
アバター
SPEEDA開発チームの山岸です。 最近注目を集めているDockerですが、ユーザベースでも一部のチームで開発に役立てています。そのDockerのコンテナを管理するための「Kubernetes」というオープンソースのフレームワークがあります。 今回は社内のLTの内容を基に、Kubernetesについて簡単にご紹介したいと思います。 Kubernetes とはなにか? なぜ Kubernetes か? Kubernetes でできること ①コンテナを簡単に展開できる ②コンテナの状態をチェックできる ③コンテナへのアクセスを分配できる どのように実現しているか まとめ Kubernetes とは…
アバター
Nice to meet you, my name is Jorge Granado from SPEEDA Tech Team. At UZABASE we are always trying to find new ways of surprising our clients, and provide them with new analysis tools as well as better data. Since early 2013 we have been using Machine Learning algorithms for gathering world business …
アバター
NewsPicksサービスの開発を行っている大川です。 本日はNewsPicksのスマホアプリがどんな設計になっているかを紹介します。社内LTネタを元にしています。 階段の部分はどうやってるの?(『NewsPicksのUIデザイン』) 文字が読みやすいように工夫しているの? などいろいろと観点はあるとは思いますが、まずは全体として絶対に守っている「竜骨」とも言うべきコアの設計についてお話しします。どのアプリでも必ず守るべき鉄則となります。 鉄則とは端的に言うと、 ビジネスロジックをView, ViewControllerに密結合させない ということです。 まず大前提として、下記の3レイヤーに分…
アバター
技術チームインターンの前田です。 アプリケーションを開発していると、データベースと連携する必要が出てくる場合が多いかと思います。 この記事では、JavaプログラムからRDBMSを利用する際に便利なライブラリを紹介します。 このライブラリは、私が取り組んだ業務でも使用したもので、JDBIと呼ばれています。 JDBIとは Javaプログラム↔RDBMS間の連携に便利なSQLライブラリです。 JDBIはJDBCの上に構築されているもので、JDBCのAPIの使い勝手の悪さをカバーしてくれます。 JDBIの便利な点 JDBIを利用することで、簡単にプログラムのロジックとSQL文を分離することが出来ます。…
アバター
初めまして、UZABASEインフラチームの小林です。 弊社インフラチームは5名(1名海外留学中)で構成されていて、ざっくり言うと、先進技術検証・導入を主担当とするメンバーと、新規リリース対応・運用改善を主担当にするメンバーの2チームに分かれています。 (実際には、主担当と副担当がそれぞれクロスしているので、満遍なく業務に携わっていますが。) 基本やりたい事を自由に認めてもらえる環境なので、UZABASEに所属しながら海外留学できる環境でもあります。 で、僕はSPEEDAの運用管理を主な生業としてます。 早速なんですが、Hinemos ver 5.0 が5月に出ます! Webブラウザ対応!!(ら…
アバター
ユーザベースでSPEEDAの開発を担当しています。 外間です。 ビジュアライゼーションのニーズが高まり続ける中、 先日僕もビジュアライゼーションで有名な、あのTableauのセミナーに参加してきました。 Tableau Highchart.js Tableau Tableauとは簡単に言えば、データを視覚化し分析を助けるBIツールです。 主に以下のような特徴があります。 インメモリで動作が軽い 様々なデータソースに対応(約40種) また、作成した資料を自由に組み替えてダッシュボードにまとめ、Web上に公開するといったこともできます。 Tableau Publicというサイトには、ユーザーが公開…
アバター
SPEEDA開発チームの中島です。 UZABASEでは、現在SPEEDA/NewsPicksという2つの経済に特化したサービスを展開しており、どちらも自社開発をしています。 今日は、UZABASEが何を目指し、何を大事にしているか、働き方や開発スタイルなども含め紹介したいと思います。 UZABASEが目指すもの:ミッション UZABASEが大事にしているもの:7つのルール UZABASEが大事にしているもの:みんながハッピーでいられる会社 UZABASEが目指すもの:ミッション 「世界一の経済メディアを作る」 UZABASEのメンバーそれぞれで多様なイメージがあると思いますが、私が考える「世界…
アバター
インフラチームの金屋です。ユーザベースのインフラを担当しています。今回は身近に利用しているけど、使っていることに気付かないインターネットの影の立役者であるCDNについて書きます。 CDNとは? CDNは何のためにあるのか? なんで遠隔地だと遅くなるのか? 通常経路とCDNの概念図 CDN経由でのアクセス概念図 改めてCDNとは? SPEEDAでの効果 CDN導入後の一般的な変更点・注意点 まとめ CDNとは? Contents Delivery Network コンテンツを 配信する ネットワーク 簡単に言うと、次の機能を持っています Webコンテンツ(サイト、画像、動画等)を 全世界のインタ…
アバター
先日12月18日、恵比寿にある UZABASE 新オフィスにてエンジニア向け勉強会「えびスタ! 」第 1 回を開催させて頂きました。 移転したばかりの新オフィスで初めて開催する勉強会ということで不安な点もありましたが、50 人という定員枠に対してなんと 50 人オーバー近い参加登録を頂き、盛況のうちにイベントを終えることが出来ました。参加者の皆さん、ありがとうございました! 本記事では当日の様子をレポートしたいと思います。 今回のアジェンダは以下のとおりです。 前半はクックパッド、Retty、VASILY、 UZABASE から 4 名のエンジニアによるプレゼンテーション。後半は皆でわいわいエ…
アバター
SPEEDA QAチームの藤田です。オフショアでのテスト自動化PJ立ち上げのために11月中旬より1か月間 Framgia Vietnam に来ています。Framgia さんには、以前からUzabaseの社内システムの開発を依頼していましたが、今回は社内システムだけでなくSPEEDAの自動テストコードを実装いただくべく一緒にベトナムで仕事しております。せっかくなのでちょっと今までの投稿とは異色ですが、Framgiaさんとのオフショア開発についてまとめようと思います。今後オフショアを考えてる方には参考になる?とうれしいです。信頼できるオフショアパートナー ベトナムのFramgiaさん。「なぜFra…
アバター
NewsPicksチームインターン生の保田です。 主にiOSアプリ開発のお手伝いをしております。 iOSアプリを作っていて悩ましいな、と思うのが、同じ機能を持つがiPadとiPhoneで見た目が違うページをどう設計していくか、ということです。 ちょうど僕が関わった、NewsPicksの特徴的な機能である「ニュース中間ページ」をどのように設計したかについてお届けいたします。 NewsPicks上でニュースをみるとき、上図の左から右の流れで画面を切り替えます。 この中の真ん中の画面(ニュース中間ページ)の設計についてご説明していきます。 Season1. 単一仕様時代 当初は、次のような単純な仕様…
アバター
SPEEDA 開発チームの緒方です。 最近話題に上ることも多い Docker ですが、UZABASE でもチームによっては積極的に使っています。 (現在は主に開発用途。) 他のコンテナ型仮想化技術と比較した場合の Docker の良さとして、 ・Docker Hub など、レジストリに登録されているイメージを利用できる ・Dockerfile を使用したイメージ構築の自動化 などが挙げられると思います。 Docker Hub をざっと見渡しただけでも、Ubuntu や CentOS など環境だけを提供するものから redis や MySQL などそのままアプリケーションが実行できるものまで様々…
アバター
Techチームの遠藤です。 コンテンツのグローバル展開に向けて、いくつかの地点での画面表示の速度測定のためにphantomjsを使用し計測しました。 全部ではないですが初めの部分だけ記述します。 PhantomJSはまぁ仮想ブラウザを立ち上げてHPを操作していくものですね。 自動テストなどに使えるものです。 PhantomJS http://phantomjs.org/ DownloadでそれぞれのOSにあったものをDLしてください 私はwindowsでやってるのでwindowsのみ記述します。 といっても大したことしてません。 windowsの場合はDLしてきたzipファイルを解凍し、任意の…
アバター
こんにちは。NewsPicks の開発を担当している文字(もんじ)です。本日 NewsPicks の Chrome 拡張をリリースしました。 ・NewsPicks の Google Chrome 拡張をリリースしました ・NewsPicks での反応 幸いユーザーの皆様にもご好評頂いているようで嬉しいです。ということで今回は NewsPicks の Chrome 拡張を作った話をします。アジェンダは以下の通りです。 NewsPicks の Chrome 拡張が提供する機能について なぜ Chrome 拡張を作ったのか? どうやって Chrome 拡張を作ったのか? まとめ NewsPicks …
アバター
技術チームインターンの中村です。 内製化されたシステムを抱えた会社にいると,エンジニア以外の方のためにドメイン特化言語を構築するようなこともあるかと思います。 uzabaseの場合,アナリストがSPEEDAに載せる業界概要の記事を効率良く書けるようになるために,Markdownに似た軽量マークアップ言語が作られました。 作る言語が構文木が不要なほど小規模ならば,文字用ユーティリティだけで十分に言語実装が可能かと思います。 一方で,言語が大規模であったり効率の良いコンパイルが求められたりするのであれば,LexやYaccのようなパーサージェネレータが必要になるかもしれません。 今回はその間くらい,…
アバター
いま勢いのある恵比寿近辺のスタートアップを中心とした、エンジニア向けの技術勉強会です。 クックパッド Retty VASILY UZABASE のエンジニア陣が、最近の各社の取り組みについてお話させて頂きます。 後半は軽食を交えつつ、カジュアルな QA セッションの場や各社エンジニアとの懇親会も予定しておりますので、ご興味のある方は是非ご参加下さい!(エビスビールとピザもあります!) 残りの一般参加枠は9名(12/1現在)となっております。 興味のある方はお早めにお申し込みください! 申込みはこちらから(compass) えびスタ!#1【クックパッド × Retty × VASILY × UZ…
アバター
NewsPicksの開発をしている板倉です。 NewsPicksではニュースを見る画面とは別に、 どの記事がどれくらい読まれているかという画面の開発を進めています。 直感的にわかる画面がほしいということで、 D3.jsを使って画面を開発することになりました。 D3.jsを使うにあたって勉強するつもりで何か作ろうと思い書いたのが今回のエントリーになります。 今回の開発環境 D3.jsについて 地図を書いてみよう 今回の開発環境 Mac OS X(10.10) D3.js(3.4.13) D3.jsについて まずは、D3について少しだけ。 Githubの人気リポジトリに入っている人気のJavaSc…
アバター
インターン生の阿達です。 いつかはこのブログや、会社のHPも自分で作れたらいいなあと思っている プログラミング歴1か月のぺーぺーです。 その野望の第一歩として与えられた課題が CentOS7にLAMP環境を構築してWordpressをインストールする でした。 この記事では勉強した内容の復習を兼ねて手順を丁寧に紹介したいと思います。 目次 【1】LAMP( Apache + MariaDB(Mysql) + PHP )をインストールする 0,準備 1,Apacheをインストールする 2,MariaDBをインストールする 3.PHPをインストール 【2】Wordpressをインストールする 1,…
アバター
NewsPicks の開発を担当している杉浦です。NewsPicksはおかげさまでユーザ数が20万を突破しました。サービスが順調に成長するということは大変にうれしいことなのですが、エンジニアとしては負荷との戦いになったりします。我々も例に漏れず日々、負荷との戦いを強いられています。NewsPicksの機能面の特長として次の2つがあります。・フォローしているユーザのPickが自分のタイムラインに集約される・各カテゴリで話題になった記事を閲覧できるこれらの機能を高速に処理・実現するためにRedisを採用しているのですが、ユーザ数の増加による負荷増加によって問題が発生するようになりました。本記事では…
アバター