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

program

Phoenixでmany_to_manyのフォームを対応

Phoenixでmany_to_manyを設定してDBからデータを取得して表示するのは非常に簡単。 ではformで新規登録したり更新したりする際に一緒にmany_to_manyのデータを更新するのはどのようにするのか一通り試してみた。 form 例として、Postに複数のTagが紐付いてい…

Phoenixでadminルーティングの認証

Phoenixでadminルーティングしてそこだけ認証を入れる。 仕様 /admin/articles のように最初にadminを含むURLは管理画面 管理画面は管理者ユーザーで認証が必要 管理画面もgen.htmlで自動生成。自分で頑張って作ったりしない コントローラやアクション毎に全…

Phoenixのex_adminでueberauthの認証

Phoenixでex_adminをueberauthを使って行う。 基本的には Elixir/Phoenixにおけるueberauth(認証)とex_admin(管理画面)の連携方法 - Qiita の解説通りでいいのだが、一部情報が古いので現在の対応方法を記載。 current_user_nameはログインしていないとエラ…

Phoenixのex_adminを使ってみてうまく動かない時

Phoenixでためしにex_adminを使って管理画面を作ってみようと思ったのだがどうもうまく動かない。 その時に試した時の対策。 Phoenix 1.2.4 ex_admin 0.8.2 コンパイルエラー ex_adminはまだバージョン1にも行っていないし、Phoenix側に追従しきれていない場…

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を使うのか。 下記の条件が組…