the industrial

都内で働くITエンジニアの日記

PROGRAM

自社サービスのRails4を、Rails5にアップグレードした話

会社のRails4.2.0で動いているプロダクトは、Rails5.2.0へとアップグレードしたので、メモがてら大変だったことなどを書いておこうと思います。 何故やろうと思ったのか Railsをアップグレードすることで便利な機能が追加されたと、得られる嬉しい事がいろい…

Vue.jsの仮想DOMのレンダリング処理はどのようにして動いているのか

このエントリーは、Vue.js #2 Advent Calendar 2018アドベントカレンダーの4日目の記事です。 3日目は 【2018年】Vueのテスト関連まとめ【非公式】 です。 5日目は @nekobato さんの 「VueとAtomic Design」ですね! 以前、「Vueの仮想DOMアルゴリズムは…

Nuxt.js x Firebase事始め

この記事は、Nuxt.js #2 Advent Calendar 2018 の1日目の記事です。 2日目は @amishiro さんの 「nuxt.js(v2)でSEOに必要なmeta(OGP含む)を最低限コントロール」です。 せっかくのアドベントカレンダーが空いていたので、サクッと事始め的なものを書いてお…

nginxでBasic認証

いっつも忘れてそのたびに検索したりする。 何度かそんな事しているので、もう自分のブログにメモ。 ログインパスワード作成 $ sudo htpasswd -c /etc/nginx/.htpasswd {user_name} 設定ファイル編集 $ vim nginx.conf location / { ・・・ auth_basic "Rest…

ransackで条件追加メモメモメモメモォォォオオオ

ただのメモなので真に受けないでください。 if文とかで条件を追加したい場合 @q = Employee.ransack(params[:q]) @q.build_grouping({ :m => 'or', :name_eq => "omi", :name_eq => "end" }) 多分こんな漢字 select id, name from employees where name = "o…

ScalaとRubyのコレクションで使える.mapについてちょっと調べてみた

突然ですが 先日、後輩くんがこんな実装をしました。 _nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] _divisible = _nums.select{ |n| n % 2 == 0 } p _divisible # [2, 4, 6, 8, 10] _multiplied = _divisible.map {|n| n * 100 } p _multiplied # [200, 400, 60…

#ScalaMatsuri 2018にスタッフとして参加した感想等

まつり感! #ScalaMatsuri pic.twitter.com/IvUFK3JXXD— -\/(オミ・エンドリックス) (@omiend) 2018年3月16日 はじめに このブログエントリーの内容は、ScalaMatsuri / Japan Scala Associationとは関係ありません。 あくまで @omiend 個人の感想です。 です…

Ruby on RailsでPDF作成&ダウンロード機能を実装

PDFダウンロード機能を実装したのでメモ 環境 ここに作った。 https://github.com/omiend/my_strongest_ror wkhtmltopdf / wicked_pdf PDF生成に利用したGEMは下記。 gem ‘wkhtmltopdf-binary’ gem ‘wicked_pdf’ wicked_pdfはwkhtmltopdfのラッパーで、単純…

Rails5 + Cropper.js + carrierwave で作る画像クロップ処理

作ったもの よく、SNSで利用するようなアイコンをアップロードする際、好きな箇所で切り取る処理を作成してみたのでメモがてら書いていく。 こんな感じの動き。 開発環境について 前回作成した下記エントリーの開発環境をそのまま利用。 omiend.hatenablog.j…

ぼくのかんがえたさいきょうのRuby on Rails開発環境

はじめに 6月に新しい会社に来て以来、会社ではRuby on Railsばかり触っている。 RoRの開発・Ruby自体初めてなので(本当はScalaやりたい)、開発環境構築をやってみたのだが、「これ本当に必要なの?」などなど分からないことだらけで、何度かハマった。 …

railsのransackでハマった話

ソースはすべて雰囲気(動作確認してないっす)。 今日ハマってた所。 例えば、 parents TBL と childes TBL があったとして、 CREATE TABLE `parents` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) EN…

git ftp

割りと頻繁にFTPすることがあり、流石に無料のCyberDuckでは辛くなってきたので、思い切ってYammy FTP Proの購入を検討。 基本的なFTP機能はもちろん、アップロードの速度は早いし、何よりサーバー上のファイルを直接編集できちゃうのも良い。 1ヶ月の試用…

XAMPPのvhosts設定方法

自分のメモ以外の何モノでもないです。 今お手伝いしているサイトの更新作業。(よく言うと)オーソドックスなスタイルで更新しており、HTMLファイルを設定するんですな。 PHPでできているので、ローカルでの更新内容確認はXAMPPを利用している。 XAMPPをイ…

Realm Browserで、ローカルのRealmDBを読み取る方法

今個人的に作っているiOSアプリでは、ローカルのDBにRealmを使おうと思っている。 そんな中、Realm BrowserというDBクライアントが良さそうだったので使おうと思ったのだけど、iOS Simulatorに保存されたDBファイル(.realmファイル)がどこにあるかわからな…

英語が話せないクソエンジニア(僕)が、なんとかAWSのロックされた2段階認証を解除して貰った話

タイトル通りなのだけど、この歳になって英語で電話したのが初体験だったので、記念パピコ。 セキュリティを考慮して、AWSコンソールにはGoogle Authenticatorを使って2段階認証をかけていたんですわ。 先日、‪iPhoneを7に変えたら、いつの間にかそのAWSの2…

iPhone/iPad アプリ開発逆引き大全 500の極意

久しぶりに技術書買った気がする。 ちょっとiOSアプリ開発の話があって、僕としては、iOSアプリ開発はど素人なので、どうせなら技術書買おうと。 基本的にやりたい事(要件)を実現するための方法は全て載ってるので助かってる気がする。 なんだけど、誤字脱…

2年間働いたビズリーチを、本日、卒業させていただきました。

2年間働いたビズリーチを、本日、卒業させていただきました。 元々、Scalaをやりたいというワガママで入社させていただいたのですが、Scalaの実務経験がない僕でも暖かく迎えてくださり、そしてやりたかったScalaの仕事(サーバーサイド)に限らず、フロント…

Scalaで、Javaのメソッドを関数オブジェクトにする方法

まあ、当たり前かもしれないのだけど、「あ、できるんだー」という気づきがあったのでメモ Javaのメソッドに対してもアンスコで関数オブジェクトにできる(カリー化するときにも使う方法) val driver = new ChromeDriver() val fByName = driver.findElemen…

ハッカーと画家

Yahoo!Storeを作った、Lisp界の貴公子ポール・グレアムさんが書いた、真のハッカーとはといったエッセイ集。 話題なのと、会社のイケメンワカモノエンジニアくんが貸してくださったので読んだ。 結構長いのだけど、ポールさんが如何に先見の明を持っていたの…

その2 ファイル分割してみる - golang製Web Framework 「echo」事始め

続き 前回の予告どおり、echoのサンプルプロジェクトのcrudモジュールについて、ソースファイルの分割をしてみる。 なお、普段からgolangを書いている人にとってはつまらない内容かもしれない。 けれども、なかなかどうしてimport何かではまったりして楽しか…

golang製Web Framework 「echo」事始め

はじめに なんだか今日は早く目が覚めてしまったので、久しぶりの朝活。 golang 最近 golang が気になり過ぎているのと、Webアプリ作るフレームワークも出てきている様なので、Java、Scalaときて、第三の言語として扱えたらいいなーなんて思い、今年は真面目…

Supersetを試してみる

Supersetとは Superset 宿泊施設マッチングサイトAirBnB(エアビーアンドビー)が提供する、データ可視化ツール Supersetをインストールし、DBとつなぎ、Queryを書き、ヴィジュアライズしてダッシュボードを構築することで マーケティングなどに役立てること…

Team Geek

会社のパイセンから借りた、グーグラーによるチームビルディングのお話。 久しぶりの読書がこれでヨカッタ。 人間はプログラムで動いているわけでは無く、感情で動いているので、適切なマネジメントと、チームビルディングをしなければならない。 みたいな事…

Riot.js を利用してTODOアプリケーション構築のハンズオンを作成しました #riotjs

Riot.js Advent Calendar 2016 の2日目! 1日目はkuwahara_jsngさんの「今年1年真剣にRiot.jsと付き合ってきたので振り返ってみた」です。 さて、ついにv3がリリースされたRiot.jsですが、実は以前、社内向けに作ったハンズオンがあるので、Riot.js Advent…

ScalikeJDBCでDDD的な

大したことではないのだけど、便利そうだったのでメモ。 Long値である従業員IDを明示的に型として保持したいニーズがあるとして、こんな case class があったとする。 case class EmployeeId(value: Long) SQLのWHERE句を組み立てる際、下記の様になる val w…

メールアドレスをあらわす正規表現について

今日、個人的に信じていたメールアドレスの正規表現に穴があった。 どういうものかというと、 input type=email – e-mail address input control (NEW) - HTML5 で仕様とされている \b[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*\b…

IntelliJ IDEAのsbtビルドがコケまくった話

会社のMacに入れているIntelliJ IDEAのsbtビルドが盛大にずっこけるようになり、プロジェクトの作り直した等していたら、そもそもソースコード自体開けなくなった。 原因を言ってしまえば、例のXcodeのAgreeをしていなかったから。 最近OSをSieraにしたので…

知らなかったPythonのSimpleServer

まず、MacOSにはデフォルトでPythonが入っていること。 そしてコマンド一発でローカルサーバーが立っちゃう事。 pythonの確認 $ which python /usr/bin/python 例えば、下記の様なディレクトリがあったとして、当該ディレクトリをカレントにして・・・ $ cd …

riot.jsやってます

思ったよりも人間は「憧れ」というのがモチベーションになるんだなと、最近よく感じます ああいうエンジニアになりたい! だとか、 あの言語扱えるようになりたい! ってのが僕のソレで、実際目指すところにたどり着けなくとも、目指してみると割と良い所ま…

サーバーサイドエンジニアが、Reactを始めて1週間でどこまでできるか

d-cube.connpass.com にて、 「サーバーサイドエンジニアが、Reactを始めて1週間でどこまでできるか」というタイトルでLTしました。 1週間でもここまで行けるのは普通かもしれないし、ぶっちゃけ大した内容ではないのですが、久しぶりのLTで楽しかったです…