プログラミング言語

Ubuntu 15.04 + Android Studio + X11vncの開発環境構築手順(X11vncインストール編)

ここまでで Ubuntu 15.04 + Android Studio + X11vncの開発環境構築手順(Ubuntu 15.04インストール編) Ubuntu 15.04 + Android Studio + X11vncの開発環境構築手順(Javaその他ライブラリインストール編) Ubuntu 15.04 + Android Studio + X11vncの開発環境構築手順(Android studioインストール編) が完了し、コンソールで操作する分には開発環境は構築完了した。 私の場合、平時Windowsをダブルウィンドウで使っており、開発環境のlinuxは、Windowsからリモート接続で利用したい...

「概念モデリング再入門 ~今さら人に聞けない人のための基礎講座~ + ちょっとだけDDDの話も」に参加したよ

https://hiroshima-jug.doorkeeper.jp/events/27797 Hiroshima Java User Group の勉強会に参加しました。 ためになる言葉が多々ありました。 業務を理解するために書く テーマを決める(粒度を決める) 正解にこだわらない 綺麗に書こうとしすぎない が、、、 「お客様に UML とか、概念モデルとは、を教えるのではなく、お客様から業務を聞きをそれをホワイトボードへ概念モデルを書き、自分が理解した業務を説明する。」 っとの言葉が一番記憶に残りました。 渡辺幸三さんの記事/...

左右から開くNavigationDrawerの実装

※Googleのデザインガイドラインに準拠していない実装です。 通常のDrawerの実装と同じくメインコンテンツの領域として FrameLayout を親レイアウトとし、左ドロワーレイアウトに android:layout_gravity="left 、右ドロワーレイアウトに android:layout_gravity="right を指定することで実現できます。 Layout.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match...

Cassandraをインストールしてみる

CassandraをWindowsにインストールしてみる Cassandraのインストール http://cassandra.apache.org/download/ から apache-cassandra-2.0.16-bin.tar.gz をインストール ※最新版ではcassandra-cli.batがなぜか入っていなかった ※JDKの設定も必要だが省略 ※java1.7以上が必要 Cassandraの解凍 7-ZipとかLhaplusとかを使って解凍 http://sevenzip.osdn.jp/ http://www.xucker.jpn.org/pc/7zip_use.html http://www.forest.impress.co.jp/library/software/lhaplus/ Cassandraサーバーの...

AndroidによるWebViewアプリ作成(HWアクセラレータ編)

AndroidによるWebViewアプリ作成(HWアクセラレータ編) はじめに 事前に作っていたクソアプリを見直すことにしました。 Webビュー形式のアクティビティにURL直リンで開くとロードが2,3回続くわけのわからないあの泥Webビューです。 主に画面下にJavaScriptを使用した追っかけバナーなどを貼ってあるサイトを開くとロードが途切れ途切れにおきます。 なんぞやと思っていましたが、JavaScriptっぽいです。2chまとめとかに大量にあるアフィリ案件を都度JSで読み込み直すので、実装す...

Amazon Athena で Amazon CloudFront のアクセスログを分析する

概要 AWS re:Invent 2016 で発表された新サービス Amazon Athena を使用して Amazon CloudFront のアクセスログを分析してみました。 Amazon Athena とは Amazon Athena は AWS re:Invent 2016 で発表された新しいサービスで、AWSのサービスの中では Analytics カテゴリに分類されています。 Athena を使用すると、Amazon S3 に保存してあるデータを、どこかに取り込んだり加工したりといった作業を必要とせずに、そのまま ANSI SQL のクエリで対話的に集計や分析をすることができます...

Docker & Docker-Composeの基本的な使い方

サーバサイドプログラミング関連 Advent Calendar 2016の4日目の記事です。 Docker使ったことない方がすぐにコンテナを構築をできるように説明がんばります。 環境はMacをベースに説明します(Win機持ってない)が、install時以外は基本的には違いは無いかと思います. Dockerとは Docker provides a way to run applications securely isolated in a container, packaged with all its dependencies and libraries. Because your application can always be run with the environment it...

GradleとAndroid Studioを利用したマルチプロジェクトビルド

背景 マルチプロジェクトビルドに挑戦しているので記録を残す。 C, C++, Javaのネイティブ環境である。 ndk-buildはコマンドをgradleから直叩きする形。 Androidライブラリとテスト用のAndroidアプリケーションをそれぞれ複数含む。 執筆時点の環境情報 $ gradle -version ------------------------------------------------------------ Gradle 2.14 ------------------------------------------------------------ Build time: 2016-06-14 07:16:37 UTC Revision: cba5fea19f1...

Android学習ノート_140719(Androidアプリ開発基礎)

基礎というか、Androidアプリの概要に触れて、開発関連のソフトウェアをインストールした。 Android アプリの基礎知識 Androidのアーキテクチャ アーキテクチャ(基本設計)はアプリケーション、アプリケーションフレームワーク、ライブラリ、Androidランタイム、Linuxカーネルに分類される5つのレイヤーに分かれたコンポーネントで構成されている。 Android アプリの構成要素 Android アプリは、アクティビティ、ブロードキャストレシーバ、サービス、コンテンツプロバイダの4つで、...

Swift向けのシンプルなロギングライブラリを作った

Swiftでログ周りのことを検索しても自前実装している人がたくさん出てくるだけで、 Javaのようにデファクトスタンダードになっているようなロギングライブラリやインターフェースが見つかりませんでした。 外も暑いし、外出したくないのでロガーだけSLF4J風のインターフェースを持ったライブラリを作ってみました。 本当は Logger は protocol にしたかったのですが、protocol で定義した関数はデフォルト引数を持てないという制約があるようで、 そうなるとロガーの利用側はいちいち...

オブジェクトを関数の違い

関数もまた、広い意味ではオブジェクトの一種です。 オブジェクトという言葉には「対象」という意味があります。処理や操作の対象となり得るもの、という理解で良いと思います。整数型の単一の変数も、配列も、ポインタも、関数も、メモリ上にある事には変わりなく、メモリを書き換える事が出来れば操作可能なため、広い意味では、全てがオブジェクトです。 しかし、C などの古い言語では、関数内部を実行時に書き換える事が出来ません。関数はあくまで処理記述であって、「処理対象」...

nginx on AWS Lambdaでサーバレスサーバ

気が付けば2016年も末…サーバレスがブームだった時代は過ぎ、なんだかサーバレスが当たり前の時代になりましたね。じゃあnginxもいい加減サーバレスになってもいいと思いませんか? なにが必要だったか nginxにはOpenRestyという、いい感じにモジュールが追加されたディストリビューション(に近いもの)があります。 OpenRestyはどれくらいお気軽なウェブアプリ環境なのか。 素のnginxの機能はそのままに、luaで高速に動的な結果を返すことができ、簡単なアプリケーションであれば、...

GitHubで記事管理、レビューしてCircleCI使ってはてなブログへ自動投稿する

はてなブログを複数人で運用しているとレビューどうしようってなる。 GithubだとPR作成して1行1行でコードがいじれるからめっちゃ便利! とはいえPR通った後は手動ではてなブログへ移す? CircleCIとは? https://circleci.com/ 知らない方は下記が参考になりそうです http://www.slideshare.net/mogproject/circleci-51253223 CircleCIはサーバー上で一通り遊べる環境が整っている Ruby, node.js, Python, PHP, Java, Scala, Clojure, Haskellと色んな言語をサポートしている 他にはso...

GomobileからAndroidでマルチスレッドしてみる

今回はgomobile+unityでGoroutineを実装できるか試した編。 結果は、JAR経由でGomobileで作成したAARは動くことが確認できたが、直接Shared Libraryを動かすまでは行けていない。 cgoで書いたShared LibraryをUnityから直接コールはダメですか? 何となく今回は返り値をstringで実装してみた。 Stringで実装する場合、Unityとcgoでは値の受け渡しの調整が必要になる。 C.CStringでラップするのとC.freeで解放は忘れてはいけない。 しかし、プログラムを実装したがスレッド実行時にハン...

groovyでJSON文字列を作ってみる

groovy勉強のメモを残していきたいと思います。 環境 Windwows上でVM入れたりしていますが、Git bash 上で動かす方が多いと思います。 groovyは 2.4.7 でやっています。 groovyのソースはGGTSやEclipse neon上でいじっていますが、フリーズしたら vim でいじります。 はじめに 家の本が溢れ出して読むよりも、買うペースが上まった時から本をほぼ買うことをやめたんですよねぇ。 漫画本、小説もしかり、当然技術本も。 古いですが電子に移行するためにkindle3を買ったのがアメリカの a...

Common Lispで可変長配列を使う

最近CommonLispの勉強をはじめた. その中で可変長配列を作成したいなと思った時に案外ややこしかったので備忘録を書いておく. Lisperの方たちどころか,ちょっと勉強した方にとっては当たり前かもしれないがあくまで自分のために. 可変長配列の生成 可変長の配列は,JavaならArrayListを使って特に患うことなく定義できるが,CommonLispの場合は少しだけややこしいような気がする. とは言っても大して難しいものでもない.以下のコードで作成できる. CommonLisp CL-USER> (mak...

Apache Spark ことはじめ(Scala版)

事前準備 CentOS 6 でやります。 CDH 5 をインストール hadoop の立ち上げ Spark のインストール、立ち上げ までやっておきます。 Spark 用ユーザの作成 shell $ sudo useradd hoxom_spark $ sudo usermod -a -G wheel hoxom_spark $ sudo passwd hoxo_spark HDFS 上に作業用フォルダを作成 shell $ sudo -u hdfs hadoop fs -mkdir -p /user/hoxom_spark $ sudo -u hdfs hadoop fs -chown hoxom_spark /user/hoxom_spark HDFS の作業フォルダにファイルをコピー shell $ sudo cp /home...

Windows8マシンを社内gitサーバにする

はじめに Windows8マシンをプライベートなgitサーバにする方法です。 無料で、10〜20人程度が使う、社内プライベートなgitサーバが必要でした。 丁度良くSubversionをホストしていたWindows8マシンが1台あったので、それをgitサーバに変身させました。 ソフトウェアは、調査検討した結果「Gitblit」に落ち着きました。 1年間以上運用していますがトラブルなく使用できています。 Unix系ではなくWindowsでgitをホストしたいんだ!という方の参考になりましたら幸いです。 JREのインスト...

Treasure Dataで働くRuby

中村です。最近はセキュリティ方面のお世話だけでコードの貢献はしていませんが、CRuby、JRubyコミッタもやっています。 Treasure Dataを支えている各種システム、バックエンドのコアはJava中心、追加でScala/C/Pythonですが、多くの場所でRubyも使われています。12/25にRuby/2.2がリリースされたのに合わせて、Rubyの使われ方をご紹介しましょう。(本記事は12/26に執筆しています) Client side まずはTreasure Dataのシステム側でなく、クライアント側で動くRubyです。 Treasure Ag...

sbtはpom.xmlに書いてある依存リポジトリを読んでくれない

タイトル通り。気づかなかったのでハマった。 sbtは、標準じゃないリポジトリを使う場合、別途書かなければならない sbtの公式ドキュメントが http://www.scala-sbt.org/0.13/docs/ja/Library-Dependencies.html 依存ライブラリがデフォルトのリポジトリに存在しないなら、Ivy がそれを見つけられるよう resolver を追加する必要がある。 と謳っているため、導入したいレポジトリのpom.xmlに<repositories>...</repositories>が存在するとき、 そこに書き込まれている依存...