記事

【PHP】Ubuntu 16.04ではPHP5.6をインストールすることは出来ない

発端 さぁ心機一転、Ubuntu16.04でPHPインストールしようとした。まぁ7.xも悪くないけど今回は安定志向ということでPHP5.6をインストールすることに sudo apt show php 結果 user@ubuntu:~$ sudo apt show php Package: php Version: 1:7.0+42+deb.sury.org~…

もはやブラックボックス化しているMySQLのauto_incrementを紐解く

メッチャ役に立つauto_incrementの話 from kitakoh www.slideshare.net

Let's Encryptで正しく更新出来てるか試したい

以下のオプションを付ける --debug --force-renew --dry-run /usr/local/letsencrypt/letsencrypt-auto certonly --standalone -d cloud.turai.work --agree-tos --debug --force-renew --dry-run

【MySQL】Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENTと出る

MySQLアップデートするとOwncloudが動かない。 おかしいと思って見ると以下の様なエラーが出てた。 An exception occurred while executing 'INSERT INTO `oc_users` ( `uid`, `password` ) VALUES( ?, ? )' with params ["user", "************************…

【Raspi】Cronが実行されない場合の対処法

環境 Raspberry Pi 2 RASPBIAN JESSIE LITE Release date:2016-05-10 cron書いても実行されない 書式間違ってるのと思って何度も確認したけど改善しなかった 原因 ふと/var/log/syslogを見てみると大量の失敗ログがあるではないか! May 29 22:49:01 raspber…

【Ruby】bundleコマンド叩くとbad interpreter: No such file or directoryとエラーになる件

発端 rubyで開発する際にbundleコマンド使うじゃないですか、bundle installとかにつかうアレ。 あれをRaspberry Piで使おうとしたら pi@raspberrypi:~ $ /bin/bash -lc 'cd /home/pi/hoge && bundle exec ruby save.rb' /bin/bash: /usr/bin/bundle: /usr/b…

【MariaDB】インストールから外部から接続までの設定

環境 Ubuntu Server 14.04 MariaDB 10.1.14 インストール 公式サイト見ればクッソ丁寧に書いてあるからそれ見ような(投 Downloads - MariaDB 初期設定 まずはダルい文字コード問題を解決すべく、すべてのDBをUTF-8にして、外部からの接続を許可する /etc/my…

TwitterのAPIで取れる個人情報(大嘘)

Raspberry Pi用RubyをUbuntuでクロスコンパイルしたい人生だった

依存ライブラリのインストール 公式ドキュメントを参考にするといいかも このライブラリたちはクロスコンパイル関係なしにRubyのビルドに必要 sudo apt-get update sudo apt-get install -y git autoconf bison build-essential libssl-dev libyaml-dev libr…

【CakePHP】ビューごとにタイトルを設定する

この辺はRailsより柔軟だなって思った とりあえずやり方教えろ まずapp/View/Layouts/default.ctpにて <html> <head> <title><?php echo $this->fetch('title'); ?></title> と書いておく。 んで各ビューにて assign('title', "自己紹介のページ"); とやるとその文字がタイトルになる </head></html>…

【Mac】OS X El CapitanにOpenCVをインストールする

brewで結構簡単にできた brew update brew install -v cmake brew tap homebrew/science brew install opencv ~/.bashrcに以下を記述 export PYTHONPATH="/usr/local/lib/python2.7/site-packages/:$PYTHONPATH" ちなみにインストール先はデフォルトだと/usr…

「もっと先へ『加速』したくはないか、少年」

今日のスピードテスト結果 この時間帯は鯖がすいてるのかしら

tesseract-ocrをPythonから使ってみる

tesseract-ocrはオープンソースのOCR。辞書を切り替えることで多言語に対応できるのが特徴 github.com 今回はそれをPythonを通して使ってみる 環境 mac python 2.7 インストール tesseractが入っていなかったらインストールしておく 今回はMacなのでbrew経由…

【PHP】強いランダムな文字列を生成する

php

ランダムな文字列を生成したい場合 7672ff626cとか14158e33deがほしい場合 ランダムな数値が欲しい場合 3807350098とか487496953とかが数字のみ(0-9)で欲しい場合はさっきのやつにbin2hex()を加えればおk この場合与えた(数値*2)+2が返ってくる…

composer installとcomposer requireの違い

なんてことはなかった composer installはインストールするだけ。composer requireはインストール&composer.jsonに依存状況を記述 つまりcomposer requireはnpm install -S socket.ioに相当する

【Ruby】指定文字の出現回数をカウントしたい

例えば以下の文章があったとする。 当職の弟を当職が殺したなどという当職のアイデンティティを否定する投稿が多数なされておりました。 当職の弟は厚史という名前でした。一つ違いの弟でした。喧嘩もしましたが、私にとってのかけがいのない弟でした。 弟は…

【PHP】連想配列の特定のキーのみ削除したい人生だった

php

コード 4, "name"=>"Hoge"]; $array[] = ["id"=>3, "name"=>"Piyo"]; $array[] = ["id"=>2, "name"=>"Fuga"]; $array[] = ["id"=>1, "name"=>"Foo"]; print_r(array_map(function ($v) { unset($v["name"]);return $v; }, $array)); 結果 Array ( [0] => Arr…

Rubyのsort_byをPHPでも使いたい人へ 配列内の値でソート

php

rubyのsort_byはめっちゃ便利。マジで ary = [{id: 2,name:"hoge"},{id: 3,name:"hoge"},{id: 1,name:"hoge"}] p ary.sort_by { |_| _[:id] } => [{:id=>1, :name=>"hoge"}, {:id=>2, :name=>"hoge"}, {:id=>3, :name=>"hoge"}] ぜひこんなメソッドがPHPにあ…

【PHP】file_get_contentsでエラーの分岐

php

file_get_contentsは非常に便利なPHPのメソッドでたった一行で外部URLを取得できる が、しかし存在しないURLだったとかサーバーエラーとかの例外に弱い PHP Warning: file_get_contents(http://hogehoge.com/hoge/): failed to open stream: HTTP request f…

【CakePHP】GETパラメータを賢く取得する

POSTパラメータを取る方法は腐るほど掲載されているくせに、GETパラメータに至っては公式ドキュメントにすらロクに説明されてないGETパラメータ。 普通に取るなら $this->request->query['id'] けどこれだと未定義の場合Noticeエラーが表示される 例えば本来…

CakePHPでdebugkit入れたらエラーになった時の対処法

環境 PHP 5.6 CakePHP 2 Composerは使いたくないマン インストール方法 リポジトリからzipをDL 公式サイトはhttps://github.com/cakephp/debug_kitだが、2.xの場合はhttps://github.com/cakephp/debug_kit/tree/2.2のzipを落とす 解凍後、ディレクトリ名を「…

PHPのビルトインサーバーではDocumentRootを指定できる

php

知ってた? ビルトインサーバーとは 本来PHPで開発する際はWebサーバーを建てなきゃいけないのでApacheやnginxをインストールしなきゃいけない。 けどPHP5.4で実装されたビルトインサーバー機能を使えばPHPがWebサーバーとして起動してくれるので、Apache等…

Railsマンが初めてCakePHPでHello World

チュートリアル以前の話。 環境 Cakephp-2.7.9 mac(ビルドインサーバーで動いた) 初期設定としてSecurity.saltの設定はしておくこと 目指せHello world まずは適当にhttp://localhost:2000/hogeを開く。すると以下のエラーが表示させるはず Error: HogeCon…

MacのVPN接続でゲートウェイをVPNサーバー側にする

mac

公共無線LANとか使ってたらやっぱり接続しなきゃね、VPN。 って思ってスタバでドヤ顔してる最中におもむろに診断くん開いたらおかしなことに REMOTE_ADDRが本来ならVPNサーバー先(ここでは自宅IP)になるはずが何故か公共無線LANのIPのまま。 設定がおかし…

PHPで「1ヶ月前の今日」を求めることはできない

php

久々にPHPFXXK案件に遭遇してしまった・・・・・ やりたかったこと 一ヶ月前の今日を求める 例を挙げると 2016年4月28日 → 2016年3月28日 2016年1月28日 → 2015年12月28日 ただし2016年3月31日のように先月にその日付が存在しない(先月日数<今月日数)場合…

Nginxのレスポンスタイムアウトの意味

nginxをプロキシとして利用することは多いと思うんだけど、重たい処理をサーバーサイドでやるとなると、ややもするとタイムアウトで408が返ってきてしまう。 いろいろ設定見てたらタイムアウトの項目があった。がよく意味がわからなかったので備忘録。 proxy…

Rubyで行列の回転を行いたい

ぶっちゃけまとめ def display mat mat.each do |row| puts row.join(' ') end puts end matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] display matrix display matrix.reverse.transpose #=> 右回転 display matrix.transpose.reverse #=> 左回転 display ma…

改めてwill_paginate-bootstrapの復習

インストール gem 'will_paginate-bootstrap' 公式ドキュメントは以下 github.com 使い方 モデルで1ページあたりいくつ載せるかを設定 class Post self.per_page = 10 end で @post = Post.order('created_at DESC').page(params[:page]) 個々でいくつ載せ…

Let's Encryptを使ってOwncloud構築してみる

ドメイン認証のSSL証明書が無料で発行できるとのことで乞食してみた 環境 Ubuntu Server 14.04 Apache/2.4.18 PHP 7.0.4 ownCloud 9.0.0 MariaDB インストール add-apt-repository ppa:ondrej/apache2 add-apt-repository ppa:ondrej/php apt-get install -y…

Railsのログを極めたかった話

putsを卒業しよう Rails.logger.debug "デバッグ情報" 実は5種類ある Rails.logger.fatal "致命的なエラー情報" Rails.logger.error "エラー情報" Rails.logger.warn "警告情報" Rails.logger.info "お知らせ情報" Rails.logger.debug "デバッグ情報" ログ…

MySQL5.7のvalidate_passwordとかいうクソ機能殺す

発端 macでMySQLインストールするぞい brew install mysql 初期設定するぞい mysql_secure_installation 片っ端から「y」でいくぞい! $ mysql_secure_installation Securing the MySQL server deployment. Connecting to MySQL using a blank password. VAL…

twitter-bootstrap-railsでBootstrapアイコンを使う

弱点のあるtwitter-bootstrap-rails twitter-bootstrap-railsは一発でRails&Bootstrapが構築できる便利なものだがアイコンがデフォルトだと使えない フォントの入手 面倒だが公式サイトからzipで落として fonts 以下を vendor/assets/fontsとしてコピー あ…

永禄三年(1560)の就職ランキング 改訂版

SS 朝廷 ------------------------------神 S 足利 今川 本願寺(内勤) 高野山 ------------------------------公家 AA 武田 三好(畿内) 上杉 毛利 比叡山 ------------------------------名門 A 大友 北条 朝倉 六角 三好(四国) ---------------------------…

RailsでSlackのOAuth認証でログインしてみる

先人様のありがたいGemを使う github.com インストール gem 'omniauth-slack' アクセスキーとシークレットキーの入手 Twitterよりもちょっと面倒 まずここに行って適当にアプリケーションを登録する AppName, Team, Description, Redirect URIが必須 Redirec…

ActiveRecordでバルクインサートを行う

やりたいこと Rails&ActiveRecordで一括挿入 インストール gem 'activerecord-import' 試しにrails g model task title content rails g task bulk insertやって以下のようなベンチマークを作成 http://thr3a.hatenablog.com/entry/20151203/1449136 ...

Rubyで絵文字を削除するのは簡単ではなさそう

scrubで解決できると思っていた時期がありました "いっけなーい?限界限界??私、圧倒的成長ビジネスマン?休日出勤とサビ残で圧倒的成長するのが大好き✨でもある日体が動かなくなって鬱っぽくなってもう大変?いやいやビジネスマンのくせに24時間働けないとか死…

Amazon Product Advertising API使ってISBNから書籍検索

やりたいこと Rubyにて、ISBN投げるだけで書籍名とか出版社が一発でポーンと帰ってくる魔法 用意するもの Amazon Product Advertising APIが使えるアカウント AWSのアクセスキーとシークレットアクセスキー アフィリエイト用のトラッキングコード Ruby キーの…

Nodejsでコマンドライン引数をもらう

モジュール無しでもできる コマンドライン上で渡した引数はprocessオブジェクトのargvプロパティに格納される。が、使い勝手は良くない test.js console.log(process.argv); で例えばnode test.js arg1 arg2とするとprocess.argvには以下 [ 'node', '/var/ww…

PHP7でOwncloudを動かしてみる

前回の thr3a.hatenablog.com を絶賛一柱中のPHP7で動かしてみる 環境 前回のポストの同じ。ただしPHP類は一切インスコしない PHP-7.0.0RC7 事前準備 ソースコードのダウンロード ここから最新版をダウンロード wget https://downloads.php.net/~ab/php-7.0.…

NginxとPHP-fpmで爆速Owncloudを構築

環境 Ubuntu Server 14.04 Owncloud 8.2 nginx 1.8.0 PHP 5.5.9 Nginxのインストール sudo apt-add-repository ppa:nginx/stable sudo apt-get update sudo apt-get install nginx PHPのインストール sudo apt-get install php5-cli php5-fpm php5-cgi php5-…

HHVMで爆速Owncloud構築しようとした話

HHVMのインストール 公式ドキュメント参照 sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449 sudo add-apt-repository "deb http://dl.hhvm.com/ubuntu $(lsb_release -sc) main" sudo apt-get update sudo apt-…

RailsとCarrierWaveで画像アップローダをつくってみる

そういやsinatraでもつくったことあったな thr3a.hatenablog.com 懐かしい( 環境 Rails 4.2 rmagick(macはbrew install imagemagick pkg-config) 要件 せっかくだし前回同様にしてみる 画像を投稿できて一覧表示できるようにする 画像投稿には必ず「画像の…

Railsとomniauth-twitterを使ってログインする

環境 Rails 4.2 omniauth-twitter使う device使わない まずは本当に「連携」だけしてみる つまりモデルを作らない(データを保存しない) 環境変数の設定 export TWITTER_KEY=AAAAAAA export TWITTER_SECRET=AAAAAAA config/initializers/omniauth.rbを新規…

Rubyを使ってCabochaで文節区切りを行う

環境 Ubuntu Server 14.04 or Mac Mecabインストール済 CRF++のインストール CRF++: Yet Another CRF toolkitからソースをダウンロードしてコンパイル&インストール tar xzvf CRF++-0.58.tar.gz cd CRF++-0.58/ ./configure make sudo make install sudo ldc…

deviseとBootstrapで簡単登録フォームの実装

いつもの rails new passport -TB --skip-turbolinks bundlegemを追加しておく gem "twitter-bootstrap-rails" gem "slim-rails" gem 'devise' rails generate bootstrap:install static忘れずに deviseのセットアップ rails g devise:install すると以下が…

Railsのdate_fieldにてデフォルト値を設定する

やる気のないdate_field f.inputとかf.collection_selectだと自動的にセッテイングしてくれるくせになんでdate_fieldは空欄なんだよ 指定した日付を入力 = f.date_field :birthday, value: Time.now.strftime("%Y-%m-%d") GETパラメータを汲み取って日付入力…

Raspberry PiをBluetoothスピーカーにして音楽を鳴らしたい人生ができた(完成版

やりたいこと スマホとRaspberry PiをBluetoothでペアリングし、スマホから流した音楽をRaspiを通してスピーカーで聴く 用意するもの Raspberry Pi2(2015-05-05-raspbian-wheezy、jessie不可!) raspi-configにてイヤホンジャックから音が出るように&グラフ…

RailsでMySQL動かないときの対処法

動かない例 invoke active_record /Users/thr3a/.rvm/gems/ruby-2.2.1/gems/activerecord-4.2.4/lib/active_record/connection_adapters/connection_specification.rb:177:in `rescue in spec': Specified 'mysql2' for database adapter, but the gem is no…

もう貴方はAtomのファイル関連付けに迷わなくていいの

お薬は大丈夫。お薬があるわ。お薬がたくさんあるから。だから大丈夫。もう大丈夫。……? そもそも実行ファイルは以下 "C:\Users\USERNAME\AppData\Local\atom\app-1.0.19\atom.exe" けどこのパスをそのまま登録するのは問題がある。というのも ユーザーネー…

要素の属性が変更された場合にイベントを発火させたい人生だった

あると思うじゃん?(一発でできるのが)ないんだなそれが DOMAttrModified わかりやすいがfirefox限定 てか非推奨 window.addEventListener("load", function(){ document.body.addEventListener("DOMAttrModified", function(e){ console.log("changed"); …