一人もくもく会 α verでサービス開始しました。

program

cocos2d-xのfbx-convをlinuxで実行

cocos2d-xはlinuxにもインストールできる。 しかし、一緒にインストールされる3Dモデルのコンバートツールであるfbx-convはWindows用とmac用のものしか付属していない。 wineで動くと良いかと思ったがうまく動かないのでlinuxでビルドを試してみた。OSはLinu…

Linux Mint 18でUnreal Engine

Linux Mint 18にUnreal Engineをインストールして起動するところまでやってみた。 基本的には公式の情報に沿ってビルドだが色々わかりにくいところもあるので補足しつつ。 Building On Linux - Epic Wiki ソースの取得 wikiをみると、まずgithubからソースを…

A3RTのTalk APIをブログ上で試す

A3RT リクルートのAI用のAPIであるA3RT A3RT が無料で公開されたとのことが下記で紹介されていた。 https://bita.jp/dml/recruit_artapi_ ブラウザ上でテストできるサンプルを作成してみた。 APIキーとメッセージを入れるとレスポンスが返ってくる。APIキー…

一人もくもく会をCakePHP3のみに変更

Angular + CakePHP3 で作成していた 一人もくもく会 だが、Angularを捨ててCakePHPのみに修正した。 お客さんのために作成したサイトでも何でもないのでSEO対策とかどうでも良かったのでAngularを入れて試したのだが、 そもそもGoogleボットがレンダリングし…

werckerでCakePHP3のカバレッジ

CakePHP3でwerckerのCIを設定している。 カバレッジも表示したいのだが、BitBucketのプライベートリポジトリは無料でカバレッジを表示できるサービスが多分無い。 そのため別途解決策として、 出力したカバレッジhtmlを他の適当にレンタルしているサーバーな…

さくらの共用レンタルで.php.htmlが表示できない

さくらの共用レンタルだと、phpunitで出力したカバレッジファイルなどの.php.htmlという拡張子のファイルにアクセスすると Premature end of script headers というエラーが出る。 必要なフォルダ内の.htaccessで RemoveHandler .php とすると正しく表示でき…

CakePHP3プロジェクトをwerckerで無料CI

werckerにて、CakePHP3プロジェクトの無料CI設定をしたログ。 良いDockerイメージがなくwercker-laravel5を参考に作成したので、 基本的には下記に書いてあることそのままで設定可能。 https://hub.docker.com/r/dala00/wercker-cakephp3/ DBのホスト名とポ…

Angular2プロジェクトをwerckerで無料CI

Angular2のプロジェクトをwerckerで無料CIした時の設定ログ。 angular-cliのng testを使用。 要件 下記を満たすDockerイメージが必要となる。 node7が入れられる chromium-browserが入っている Dockerイメージ 要件を満たすものを探してみたけどうまく見つか…

CodeshipでAngular2の無料CI

CodeshipでAngular2プロジェクトの無料CIの設定方法。 Setup Commands nvm install 7.0 npm install -g npm@latest npm install @angular/cli npm install npm list --depth=0 Configure Test Pipelines ng test --single-run ng testはファイルの変更を検知…

Angular2のテスト時エラー備忘録

Angularでng testを行った時に色々とエラーが出るが、 検索するとだいたい決まりきったわけのわからない解決方法があり、 何度も調べたりすることになるのでメモっておくことにする。 随時更新。 ngModel ngModelでエラーの場合はFormsModuleをimports。(app…

angular-cliでAoTによる高速化

Angular2はAoTというものがあり、動作を高速化することができる。 他の記事で色々設定が必要というものを見かけるが、angular-cliを使っている場合は元々機能があるのですぐ有効化することができる。 ng build --prod --aot で有効化できるし、そもそも最新…

Linux Mint 18でmailtodisk

Linux Mint 18でxamppに入っているmailtodiskと同じことができるようにした。 多分Ubuntu16あたりでも同じだと思う。 詳しくは php - Use of mailtodisk / mailoutput in XAMPP for Linux - Stack Overflow にかかれていることそのままなのだが、例えば下記…

Angular2アプリケーションを通常のサーバーにデプロイ

Angular2アプリケーションをangular-cliでビルドすると公開用のdistフォルダが作成されるので、 基本的にはこれをサーバーにアップすればそのまま動作する。 ただ、jsファイルはハッシュ値がついてファイル名が変わってしまうため、 多少気をつけないといけ…

Angular2とCakePHP3を共存させる

AngularとCakePHPを共存、つまり同じホスト名で動作させたい場合。 例えば下記のように隣同士で並んでいるとする。 Angularはビルドしたdistフォルダのみの公開でその他のソースはアップなどはしない場合。 app dist 公開フォルダはAngular側のdistフォルダ…

一人もくもく会というサービスを作成

一人もくもく会というサービスを作成して公開した。 mokumoku.alphabrend.com 概要 世の中誰でも夜暇な時に適当にプログラミングをあれこれ試す時があると思うが、 そういった時のログを投稿できるサービス。 Qiitaやブログのようにきっちりプログラムや記事…

CodeIgniterのコーディング規約が独自すぎる

CodeIgniterのコーディングスタイルが独自路線過ぎて唖然とした。 PSR等この世に存在しない、と言わんばかりのドキュメントページ。 PHP Style Guide — CodeIgniter 3.1.3 documentation クラス名、メソッド名、変数名

Angular2でコンポーネントのユニットテストを書いてみた

Angularのコンポーネントのユニットテストを書いてみた。 TestBedを使用しているパターン。 angular-cliでファイルを作成しつつ、 アプリケーションをある程度書いてng testしてみると大量にエラーが出るので、 それらをいくつかエラーが出ないように修正し…

CodeshipでBitBucketのCakePHP3のCI

BitBucketのCakePHP3プロジェクトのリポジトリをCodeshipで無料CIを試した。 werckerを使おうと思ったのだが適したDockerイメージが無いとダメで、 適当に設定してみようと思ったがうまくいかなかったりして時間の無駄な気がしたので、 試しにCodeshipを使っ…

Angular2でマークダウンエディタを使うディレクティブ

Angular2で下記のシンプルなマークダウンエディタを動作させるためのディレクティブを作ってみた。 github.com シンプルとはいえ、プレビューや、全画面表示によるプレビューを見ながらの編集、 ツールバーにカスタムボタンを追加など、結構機能が充実してい…

Angular2で共通データの管理(Shared Data)

Angularにて、アプリケーション全体で共通のデータを利用したいことなどがある。 例えばログインしているユーザーの情報など。 ダメな例 そこで共通データを管理するSharedDataService等を作る場合、 何も考えないと下記のようになると思う。 export class S…

BitBucket+WerckerでLaravel5のCI

BitBucketはWerckerと連携するとプライベートリポジトリで無料CIができる。 Werckerに登録してBitBucketと連携し、 publicにしないようにだけ注意しながらあとは言われるがままに設定していけばすぐできる。 wercker.ymlを作るところだけ、現状phpの設定サン…

結局Linux Mintを使い続けている

Linux Mint 18をメインで使い始めて約2ヶ月経ったが、 今のところWindowsに戻る必要性を感じなくなった。 経緯 Windows10は快適で割と満足していたのだが、 エンジニアだと恐らく周期的にLinuxデスクトップを使いたくなる時があると思う。 何年か前もUbuntu…

Angularで自作コンポーネントのngModel双方向バインディング

Angularはinputタグ等のform用タグにて[(ngModel)]属性を使用すると双方向バインディングになる便利な機能がある。 これを自作した独自のコンポーネントで実現する方法。 簡単に言えば下記の解説通り。 blog.thoughtram.io ざっと説明すると下記の通り。 Con…

cakephp/migrationsにプルリクエストを送った

はじめに CakePHP3 Advent Calendar 2016 - Qiita 20日目が空いていたので。 内容 CakePHP3のマイグレーションにはmigration_diffという機能があり、 差分から自動的にマイグレーションファイルを作ってくれる超便利な機能がある。 ただ1点、 afterオプショ…

Atomのパッケージにpull requestを送った話

はじめに Atom Advent Calendar 2016 - Qiita 16日目 Atomについて Atomはご存知の通りGithubでも公開されているオープンソースのエディタで、 連携するパッケージも全て同様。 つまり、何か不便を感じた時、通常のアプリケーションのように要望を出してそれ…

jQueryによるコンポーネント化考察

はじめに JavaScript Advent Calendar 2016 - Qiita 4日目 注) SPAの話ではありません。 なぜjQueryを使うのか 今の時代、JavaScriptはAngular2やReactに代表されるコンポーネント指向の時代を迎えている。 そんな中でなぜjQueryを使うのか。 下記の条件が組…

CakePHP3の優位性を色々

はじめに この記事は下記の1日目としての投稿。 CakePHP3 Advent Calendar 2016 - Qiita 昨今は様々なphpフレームワークがある。Laravelとかは最近流行ったりしていて色々触ってみるが、 自分はやっぱりCakePHP3に帰ってきてしまう。それだけ便利で楽だから…

Angular2のuniversal-starterでangular/material2が使えない

Angular2はuniversal-starterから始めることで簡単にサーバー再度レンダリングができるが、 angular/material2を入れてみようとしたところ、 どうもエラーが出てうまく動かない。 検索してみると、どうも今はちゃんと動かないようだ。(2016-11-28現在) githu…

Angular2アプリを全部無料で公開してみる-Django編

Angular2で開発したアプリケーションを完全に無料で公開できる方法を考えてみた。 要件 上から順に重要度が高い。 Angular2 Angular2のサーバーサイドレンダリング対応 そこそこのDB容量 なるべく無料枠が大きいところ 開発しやすさ 考察 まず、Angular2をサ…

Windows7+Atomでフォルダがロックされる

追記2 WindowsにはProcess Explorerというものがあり、 こういったロックの場合何がロックしているかを知ることができる。 試してみたところ、原因はAtomだった。 Atomを起動しない状態だとブランチ変更し放題だった。 恐らくTreeViewあたりではないかと思わ…

Linux Mint18でapache2.4とphp7

Linux Mint18でapache2.4とphp7を使うとエラーが起きた。 phpMyAdminを使おうと設置して閲覧すると、phpのソースがそのまま表示された。 phpのモジュールがロードされてないっぽいので調べてみると、 /etc/apache2のmods-availableにはphp7関連ファイルがあ…

CakePHP3とLaravel5のマイグレーション比較

phpのフレームワークには大体マイグレーション機能がついている。 業務でアプリケーション開発を行う時は各開発者のローカルの開発環境、サーバー上の開発環境、ステージング環境、本番環境などと分かれていたりするため、 そういった場合はマイグレーション…

mailtodiskでメールが保存されない場合

xamppにはmailtodiskが入っているため、 テストの際はいちいちメールを実際に飛ばさなくても確認ができるので便利。 しかし、ある時どうやってもメールが保存されなくなることがあった。 なぜだろうと思い調べていると、ふとエディタのファイル一覧がたまに…

CakePHP3でアソシエーションが保存されない

CakePHP3は単なるエンティティの保存もアソシエーションを含む保存も全てsaveメソッドで行う。 しかしなぜかこの関連データが保存されない場合があった。 原因を探ってみるとdirtyが無かったため。 Users hasMany Itemsの場合であれば $user->dirty('items');…

CakePHP3でEmailのfromの共通設定をDBで指定する

CakePHP3はapp.phpにてメール送信のfromのデフォルトを簡単に設定できる。 固定ならそれで問題ないのだが、問題はDBの設定でfromを指定したい場合。 bootstrap.phpを見てみると、app.phpの設定はConfigure::consumeで削り取られており、 あとでConfigure::wr…

ReactにReduxを組み合わせると何が楽なのか

React + Reduxを使うとどうメリットがあるかというと、色々とあるとは思う。 ただ、どう楽になるのかというのに焦点をおいてみる。 Reactのみの例 下記のようなコンポーネント構成のアプリケーションを作成するとする。 コンテナ : App ヘッダ : Header ログ…

Twitterを作る 第5回 フォロー

引き続き他のユーザーをフォローする部分を進める。 モデル class Follow(models.Model): """フォロー""" user = models.ForeignKey(User, verbose_name='ユーザー', related_name='follows') target = models.ForeignKey(User, verbose_name='フォローユー…

Bash on Ubuntu on WindowsでDjango

Windows10のアニバーサリーアップデートにて Bash on Ubuntu on Windowsが使用できるようになった。 結構色々普通にちゃんと動くみたいなので、Djangoを動かしてみた。 python 最初からpython2もpython3も入っているらしい。 # python3 --version Python 3.4…

Twitterを作る 第4回 コンポーネント構成考察

Reactのコンポーネントの構成にちょっと悩んだのでメモ。 現在ログイン後の画面はreact-routerでルーティングしている。(まだ1画面しかないが) コンポーネントの構成は下記のようになっている。 Main (routing) MainIndex (メインページ) MainHeader (共…

Twitterを作る 第3回 投稿

投稿機能の作成を進めた。実際の画面は下記のような感じでTwitterと構成は同じような形にしてある。 各パーツはmaterial-ui。すごく便利。 投稿ボタンを押すと下記のようなウィンドウが出てくる。 モデルの作成 モデルは下記のような感じになった。 class Po…

Reactにてrouterのrouteにパラメータを渡す方法

例えば大元のコンポーネントにてajaxで取得したユーザー情報を保持して、 それを別のrouteのコンポーネントにも引き継ぎたい時の話。 (version 15.2.1現在) 渡すのは下記で可能。普通に属性指定すれば良い。 <Router history={browserHistory}> <Route path="/" component={Index} user={this.state.user} /> </Router> 問題は受け取り側の方。 this.props.user これ…

Twitterを作る 第2回 認証

まずはユーザー登録。これがなければ何も話が進まない。 ひとまず下記の第3回までを見てさくっと動作確認とユーザーテーブル作成まで行う。 Python Django入門 (1) - Qiita Python Django入門 (3) - Qiita ログイン前トップページ material-uiでさくっと作成…

Twitterを作る 第1回 概要

これからTwitterを作って行くところを少しずつ公開していきたいと思う。 下記のような環境で作成していく。 Django Djangoはpythonのフレームワーク。 慣れているCakePHPの方が早いが面白くないのでDjangoを練習しつつ作成。 (python3.5 + Django1.9.7) ちな…

さくらのレンタルスタンダードにdjangoを入れて公開

さくらの共用レンタルのスタンダードでのdjango公開方法のメモ。 環境としては下記の通り。 python3.5 django1.9.7 virtualenv MySQL接続 python3.5のインストール ネットで調べてインストール。 .cshrcを見ると下記を追記していた。 pathにpython/binフォル…

CakePHP3のテーブルにprefixを使う方法

CakePHP2まではDB設定でprefixが使用できたのだが、 何故か3になってから設定がなくなっている。 テーブルクラスにそれぞれ設定していくのが普通だが、 bootstrap.phpのuseをたくさんしている箇所に use Cake\Event\EventManager; 末尾に EventManager::inst…

CakePHP3ページネーション時にhead内にSEO対策のlinkタグを挿入する

ページ分けをする際、それらのページは一連の同じページであることを示すために headタグ内に下記のようなタグを挿入する。 下記のような感じ。 <link rel="prev" href="http://www.example.com/article?story=abc&page=1" /> <link rel="next" href="http://www.example.com/article?story=abc&page=3" /> CakePHP2のころからあったようでそちらのマニュアルには書かれているのだが、 下記をheadタグ内に入れておく</link></link>…

さくらサーバーのSSLでLaravel5を正しく動作させる

qiita.com 上記の通り、さくらの共用レンタルでは正しくURLが取得できない。 url, asset, redirect関数など。 Laravel5もほぼ同様だが、フィルターではないので 適当な箇所でhttpsをonに上書きする。 例えばAppServiceProviderのboot等。 if (isset($_SERVER…

Hierselectプラグインの作成

HierselectのjQueryプラグインを作成した。 Hierselectというのは、例えばプルダウンで大、中、小カテゴリを選択する際に、 大カテゴリの選択によって中カテゴリプルダウンの中身を属するもののみに更新し、 さらに中カテゴリの選択によって小カテゴリのプル…

Angular2のフルスクリーンloading表示コンポーネント

Angular2用で何か処理をする間に オーバーレイでloadingを表示するコンポーネントの作成。 Angular2 fullscreen loading component 使い方 読み込む import { LoadingComponent } from "./loading.component"; ディレクティブ指定 directives: [LoadingCompo…

Laravel5でテスト時にtesting設定を使う方法

Laravel5.0での話。 現在の5.2では改善されているのかもしれない。 マニュアルを見ると自動的にtesting環境に切り替えると書いてあるが、 何も変わっている様子が見られないしそもそも設定方法が書かれていない。 仕方がないので色々調べてやってみた。 正し…