業務でGolangを書き始めた。最初の週にやったこと雑記 + (少しだけ)思ったこと
2020-12-20 from blog
新卒2年目も終わろうとしております、もがみです。
ここまでフロントエンド一筋でReact Nativeを使ったアプリ開発とか、Elmを使ったWebフロントエンド開発をやってきましたが、運良くサーバーサイドにチャレンジする機会を得ることができました。チームのタスクがサーバーサイドに偏重している間のお助けとしてやっている部分も大きいので、いつまで続くかは現状未定ですが、せっかくなのでやったこととか、感じたことをだらだら書いておきます。
前提
Tour of goは一通りやった(全部完璧に理解しているとは言っていない)というレベル感。
普段はTypeScriptとかElmとか書いているひと。...
elm/urlで?を含むクエリパラメータを正しくパースする
2020-10-13 from zenn
ElmというAltJSではelm/urlというパッケージを使ってURLをパースし、その内容に応じた状態遷移を行わせるのが一般的です。(多分。筆者はElmにそこまで詳しくないです。)
elm/urlを使ってURLのパース処理を行っているSPAを開発している際に ?をクエリパラメータに含んだURLを正しくパースできない という現象に若干時間を溶かしたので、起きた事象と解決方法を書いておきます。(微妙にレアケースな気もするので誰かの役に立つかはわからん。)
環境
Elm 0.19.1
elm/url 1.0.0
事象
「?をクエリパラメータに含んだURL」というのは https://exa...
PrettierとLinterを共存させるときの公式オススメが変わったらしいという話
2020-08-27 from blog
個人でやっているプロジェクトにPrettierとESLintを入れようとしたときの話。
ESLintにもコーディングスタイルを整えるための機能があるので、何も考えずにそのまま両方を入れると、お互いのルールが競合してしまうという問題が発生します。
これを防ぐために、Prettierの公式ドキュメントに共存させるためのオススメ手順が書いているのですが、最近この内容に少し変化があったっぽいということに偶然気がついたので記事にしておきます。
prettier.io
これが公式のドキュメント。書いてあることを雑に要約すると
コードフォーマットのことはPrettierを、コード品質に関するこ...
Slack Appから送るメッセージに日付・時間を入れるときにdateフォーマットを使ってちょっと感動した件
2020-08-16 from qiita
小ネタです。
Slack App(bot)を作るとき、botから送るメッセージに日付や時間の情報を含めたいことが時々あると思います。
例えばこんな感じ。(右下)
「問合せフォームに入力があると、Slackに通知がくる」というものを作っていました。
最初は、このメッセージを送信しているサーバーで日時を表す文字列を組み立てて送信することを考えていたのですが、Slack側で閲覧しているユーザーのタイムゾーンや設定に合わせて日時をフォーマットして表示するという機能があることを知ったので使ってみました。
(長いことSlackのAPIはいろいろと触っていたつもりでしたが、これは知らなかったのでシ...
リモートワーク移行乗じて自宅の作業環境に散財した記録
2020-05-03 from note
僕の勤める会社では2月末頃にリモートワークが推奨となり、状況悪化に伴って3月中頃から(この辺記憶が曖昧。もうちょっと早かったかも)全員リモートワークへと切り替わりました。エンジニア職はありがたいことに、出社しなくてもほとんどの業務を自宅で行うことができるので、推奨段階であった2月頃からほとんど出社せずに仕事をしています。続きをみる
なんでエンジニアになったかという話。
2020-04-29 from note
はじめまして、なのかな?知り合い以外がこの記事にたどり着く気が全くしないけど、一応1本目の記事らしく自己紹介から始めてみる。続きをみる
React Native 0.60以降でreact-native-vector-iconsが使えないときのはなし
2020-04-26 from blog
久々にブログ書いてます。
相変わらず日々React Nativeを触ったりしています。RN界隈の人はご存知かと思いますが0.60以降のバージョンでは react-native link {ライブラリ名} のようなコマンドを実行することなく、ネイティブに依存するライブラリを使用することができるようになりました。
最近、React Native 0.62のプロジェクトでreact-native-vector-iconsを使おうとしたらiOS端末で Unrecognized font family と言われてしまって困ったのでメモ書き。
使えるようにするための手順だけ書くと
npm i r...
モノレポ on husky戦略
2020-02-09 from blog
2020年は毎月2本技術的なアウトプットするぞ、と言いつつ1月から打ち破ってしまったので罪滅ぼしに最近業務でやったことについて備忘録的に書いておこうと思います。
モノレポを採用しているプロダクトにhuskyを導入したという話です。
※前置きが長いので、いらない人は本題のところまで読み飛ばしてくださいませ。
モノレポ
モノリシックレポジトリの略。
詳細な定義は知らないので、実際には違うかもしれないが(ていうか多分違う。)この記事におけるモノレポは「一つのGitリポジトリを用いて、一つのプロダクトのフロントエンド/バックエンド等のコードを管理するGit戦略」ということにして進めたいと...
XcodeでArchiveするとOther items(Generic Xcode Archive)になってしまう原因の探り方
2020-01-16 from qiita
Xcodeからアプリを公開するためにProduct > Archiveを行うと、生成されるファイルがなぜかGeneric Xcode Archiveとなり(iOS App Archiveになることを期待している)OrganizerのOther itemsのカテゴリに振り分けられてしまうという症状に長いこと悩まされていました。
やっと解決することができたので、その方法をここに記そうと思います。
環境
Xcode 11.2.1
注意
筆者はReact Nativeでの開発をメインにやっているため、iOSネイティブのアプリ開発の知識やXcodeに対する知識が豊富ではありません...
2020年の抱負
2020-01-06 from blog
仕事初めなのでここらで2020年の抱負を公開しておく。
いつも目標立てては、数週間で頭の端っこに追いやられてしまうので今年はこの記事のリンクをSlackbotのリマインダーにセットするぞ。
追記: やった。
お仕事編
月2回以上の技術アウトプット
Qiita記事とか、このブログへの記事とか、勉強会のLT登壇とかなんでもいいが月に2回以上やる。
月2回やったとしたら年間で24回になるので、まぁまぁなボリュームかなと思う。上を見たらきりがないが、ほぼゼロからのスタートなので結構頑張らないといけない。
後述する登壇に繋げたいという意図。
昇級する
詳しいことはここでは省くが、会社の...
2019-2020 年末年始をまとめる
2020-01-05 from blog
さて、冬休みも終わるので、2019年末〜2020年始なにやってたかをまとめようとおもいます。
2019年末① 4回目の納会幹事をやった
物好きというか、なんというか笑
毎回なんだかんだ達成感もあり、次回への課題もあり、たくさんの人から感謝されるのが楽しくて気がついたら入社して4回目の納会幹事をしました。納会は四半期に一度なのでこれで1年やったことになりますねw
2019年末② Flutterをやってるよ
FlutterのDevToolがえげつなくてすごいぞこれ— もがみん (@mogamin3) December 29, 2019
年末だけじゃなく、年始もやってるけど個...
近況報告的な記事(趣味要素つよめ)
2019-12-16 from blog
社会人になって半年経った。という記事から一切更新しておらず、このままだと社会の荒波にもまれて闇落ちしたのかと思われてもしょうがない(?)のでここらで近況報告をしておこうと思います。
久しぶりの記事で申し訳ないですが、技術要素はほぼないです。ゆるふわ技術日誌とは一体。。。。
仕事
相変わらずReact Nativeでアプリを書いています。
入社以来、開発しているアプリにおける技術の面を支えていたスペシャリストの方が別の役職の仕事を優先するためチームから離れることとなり、その後任として技術面の意思決定をする役割をもらったりと、自分としては少しチャレンジな日々を過ごしていると思っています。
...
CloudFuntionsで「File ./dist/index.js that is expected to define function doesn't exist」と言われた(TypeScript)
2019-12-14 from qiita
Google Cloud FunctionsとTypeScriptを使ってとあるSlackボットを作っていたら、正しく依存関係を指定しているはずなのに「File ./dist/index.js that is expected to define function doesn't exist」というエラーが出てうまくデプロイできず、結構ハマったので原因と解決策を。
(あたりまえですが./dist/index.jsのところは個人が設定しているエントリポイントによってかわります)
先に結論。
GCloud Functions: load error: File ./dist/index...
React Nativeでライブラリを使わずに枠線だけの吹き出しを作る
2019-12-01 from qiita
Fringe81アドベントカレンダー1日目の記事です。
弊社の提供しているUniposというサービスではWeb版のほか、Android/iOS向けにReact Nativeを使ってアプリを開発しています。
今回はそのアプリの新機能開発において、「枠線だけの吹き出し」を作る必要が出たためやってみた、という軽めの記事でございます。
「枠線だけの吹き出し」というのはこんなやつです。
react-native-svgなどを使って作る方法もありそうですが、今回は依存ライブラリなしでReact Nativeの標準コンポーネントだけを使って作ってみました。
環境
React Native ...
社会人になって半年経った。
2019-10-06 from blog
表題の通りです。
ちょっとだけ振り返っておく。
4月/5月
この辺の話は過去にブログに書いてた。
yurufuwa-tech.hatenablog.com
初めての一人暮らしで浮かれているのがよくわかる記事。
あの頃は、目覚ましかけなくても朝目が覚めてしまって、それで凝った朝食を作っていたなあというのを思い出した。
多分一人暮らしに体が慣れずに目が覚めてしまっていたというのと、業務もそれほど忙しくなかったのがあるのかなあ。
結局朝食は、目玉焼き+トースト+(ときどき)ヨーグルト+コーヒーというので安定しました。ウインナーとか毎朝焼くのはちょっとコストパフォーマンスが悪いのでやめ...
Sign in with Slack x Firebase Authenticationやってみた話
2019-08-28 from qiita
この資料は5分LT用に作成されたもののため、だいぶ端折って説明されています。
https://yuruhachi-it.connpass.com/event/141835/
Sign in with Slackとは
https://api.slack.com/docs/sign-in-with-slack
名前の通り「Slackアカウントを使ったログイン」を実現できる仕組み。
(ログイン時に要求する権限によっては)ユーザー情報やチーム情報を取得する事が可能
あんまり知られてないような気がした(僕が知らなかっただけかも)
こんなケースに使えそう
Slackのアカウン...
ReactNative v0.60が出たので内容を簡単にまとめる
2019-07-04 from qiita
⚛️ React Native 0.60 is out! Accessibility improvements, AndroidX, CocoaPods, Autolinking for native modules, a new app screen and upgrade helpers.Read more on our blog: https://t.co/CgeH6rgXsu— React Native (@reactnative) 2019年7月3日
昨日ReactNative v0.60が出たらしいので公式のブログやCHANGELOGを見ながら変更点をまとめます。
参考...
TypeScriptのReadonly/Partial/Pick/Recordについてまとめる
2019-06-18 from blog
引き続きTypeScript handbookの英語に苦しみつつ読み進めています。
ちょっとだけ日本語訳にも頼ったりしているけど許してね。
さて、今日はAdvanced TypesのMapped Typeというところに出てくるReadonly/Partial/Pick/Recordという型について。
つい先日やりたいと思っていたことが全部解決したので、自分用メモとしてまとめておきます。
www.typescriptlang.org
Readonly
これは、既存の型の各プロパティを読み取り専用にしたい時に使う型。定義は以下。
type Readonly<T> = ...
JavaScriptのインスタンスメソッドを変数に代入してはいけない
2019-06-15 from blog
JSerにとっては当たり前の事なのかもしれないが、うっかりハマってしまったので備忘録として書いておく。
こんな感じのコードがあったして…
class User {
constructor(name) {
this.name = name;
}
getName() {
return this.name;
}
}
const user = new User('mirin');
UserクラスのインスタンスであるuserのgetNameメソッドを呼び出します。
user.getName() // -> mirin
これは間違いなく、イン...
TypeScripのkeyofについて
2019-06-13 from blog
TypeScriptのHandbookに一通り目を通す、というチャレンジを今週はしております。
なんとも読みにくい英語だなーなんて思いながら読んでたらkeyofという知らない演算子が出てきたので、調べてみました。
keyofが出てきたのはこちらの「Using Type Parameters in Generic Constraints」というセクション。
www.typescriptlang.org
サンプルコードを引用すると、
function getProperty<T, K extends keyof T>(obj: T, key: K) {
retur...
結局ジェネレータって何に使うの…?って話
2019-05-30 from blog
JavaScript基礎力強化を図っています。
初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発作者: Ethan Brown,武舎広幸,武舎るみ出版社/メーカー: オライリージャパン発売日: 2017/01/20メディア: 単行本(ソフトカバー)この商品を含むブログを見る
この本を読み返しながら、知識のないところを学習するシリーズ。
※先に結論を話すと、表題に関して答えを見つけられませんでした😉
ジェネレータについて話す前に、イテレータについて。
JSのイテレータについてざっくり
他の言語にあるイテレータ同様、繰り返しのための機構で、JSの場合Arr...
RegExp.prototype.execが偶数回しか動かない謎に遭遇したハナシ
2019-05-26 from blog
先日、既存のコードのテストをしていたところ、正規表現のマッチの結果が実行するごとに変わるという謎の現象に遭遇しました。
適当な例を作るとこんな感じ。
const regExp= /\*\*(.+?)\*\*/g; // MarkdownのBoldの箇所を抽出する正規表現
const markdown = "こんにちは。今日の気温は**33度!**とめっちゃ暑いので熱中症に注意しましょう!"
regExp.exec(markdown);
意図としては、Markdownの文章中からBoldのところ(アスタリスク2つで始まり、間になんらかの文字があって、アスタリスク2...
ES6で追加されたSymbolって結局なんなのか
2019-05-22 from blog
JavaScript基礎力強化を図っています。
初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発作者: Ethan Brown,武舎広幸,武舎るみ出版社/メーカー: オライリージャパン発売日: 2017/01/20メディア: 単行本(ソフトカバー)この商品を含むブログを見る
この本を読み返しながら、知識のないところを学習するシリーズ。
ES6から新たにSymbolという型のデータが追加されました。
developer.mozilla.org
Symbol() 関数は常に一意の値を返します。symbol 値はオブジェクトのプロパティ識別子として使われます。s...
近況報告
2019-05-14 from blog
なんとびっくり、ぴったり80日ぶりの更新です。
お久しぶりです。
ブログを書く習慣をつけるのは大変だったのに、書かなくなったら本当に書かなくてびっくりしました。
前回の更新である、2月23日から今日に至るまでに何があったかざっくり書いておきます。技術的要素はないです。
2月〜3月末
4月から入社する会社で、一足先にインターンとして働いていました。
内容としてはReact NativeとTypeScriptを使ったアプリ開発、という感じ。前回の更新がRNだったのも、業務の一環でつまづいたところとかのうち、一般的に役に立ちそうなものを書いたものでした。
無難に楽しく、週5日で働い...
React NativeのOS別 height/widthの挙動解説
2019-02-24 from qiita
最近React Nativeに触り始め、OSごとに異なる画面やコンポーネントのheight/widthの挙動にやや苦しんだので、調べたことをまとめました。
バージョン
React Native v0.58
前提
これから解説で使用する単語の定義は以下の通りです。
Window height / Window width
React Native標準のDimensionsを使用し、以下のようなコードで取得できる値を指します。
import {Dimensions} from 'react-native';
Dimensions.get('window').width; // ...
【ReactNative】AndroidとiOSではキーボードが開いた時の挙動が違う
2019-02-22 from blog
※タイトルにRNとかいてますが、おそらくRNに関係ない話だと思います。多分。
ReactNativeを使ってて、キーボードが開いた時の挙動がOS間で違うのでは?と思って調べてみたらやっぱりそうだった、という話。
どっかに書いてるかな、と思ったけど見つけられなかったのでここに書き残す。
結論 どう違うのか
なにがどう違うかというのをアニメGIFで撮ったので貼ります。
(追記: いらんとは思うけどコードあげました。 GitHub - uutarou10/rn-view-height-test )
(width/heightのラベルはそれぞれが100%に指定してある親Viewの値です...
最近知ったTypeScriptのちょっとしたTipsとか
2019-02-21 from blog
相変わらずインターンではTypeScriptを書いています。
最近は、ちょっと自分でも成長したなと思うのですが、バグの原因を追い求めてライブラリの中をウロウロしていたりします。
人生22年、ライブラリの中をのぞいてみよう、なんならバグ見つけてPRだそうとか考えたこともなかったですが、人間必要になればやるし、やってみると案外できるもんですね。(もちろん楽ではないけど、一個ずつ読み解くことくらいは、努力次第でできるな、と思った。)
雑談はさておき、そんなこんなの業務の中で知って、「へー」と思ったTypeScriptの諸々をメモ書き程度に書いておきます。
tscのメッセージを日本語にする...
インターンを始めて1週間が経った。
2019-02-16 from blog
表題の通りなのだが、4月から就職する内定先で、入社に先立って、インターンを始めて約1週間が経過したので、今の気持ちをまとめておこうかな、というのがこの記事の主旨。お気持ちポエムなので、スルーしてほしい。
何をやっているか
どこまで書くと怒られが発生してしまうのかわからないので、適当にぼやかして書くと、TypeScriptで書かれたReact Nativeアプリの機能開発をしています。
とは言いつつ、1週間では環境構築→設計の理解→追加する機能の設計→見た目に関係のない部分の実装というところまでしか到達しなかったので、RN要素はほぼ無で、ひたすらTypeScriptと戯れていた感じの1週間...
【iOS12】iOS Simulatorにペーストするのがうまくいかない時
2019-02-13 from blog
久しぶりの更新です。ずっと書いてないと書く習慣が失われそうなので、ちっちゃなネタでもどんどん投下していきます。
昨日から始めたバイト?インターン?での知見。
Macでコピーした文字列などをiOS端末上で貼り付ける方法。iOSはv12、Xcodeはv10.1です。古いバージョンだと違うかも。
通常はCmd + Vで通常通り貼り付けられます。なんの問題もないです。
ところが、開発していたら急に効かなくなってしまいました。
長いURL手打ちするのかよ〜と思っていたのですが、
Edit > Automatically Sync Pasteboardのチェックが外れていました。
こ...
PuppeteerのちょっとしたTipsいろいろ
2019-02-05 from blog
ちょっと用事があってPuppeteerを初めて触ってみました。
以前、バイトをしていた時にSeleniumを触っていたことがありましたが、そちらと比べると、サクッとインストールできるし(npmだけで入る)、async/awaitで現代的だし、素晴らしいです。
Puppeteer触ってて調べたことをメモしておく。ちなみにv1.12.1。
PDFにマージンを設定する
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://exampl...
findコマンドでパスを検索する(ディレクトリも含めて検索する)
2019-02-03 from blog
ド初心者かよ、という話。(普段からシェル慣れしている人なら、当たり前に知っていそうな話)
あまりそのようなシチュエーションもないかもしれませんが、弊研究室は、卒論発表のスライド資料を全員共通のGitリポジトリで管理しています。
ディレクトリ構成は(user name)/卒論/(ユーザー名).pptxみたいな感じになっています。(実際とは少し違うけどだいたいこういう感じ)
これをうまいことスライドだけ集めて発表用PCにコピーしたいという話。
-nameオプションはファイル名に合致するものしか検索できないので、どうしたものかと思っていたら-pathというオプションがあるみたいです。(-wh...
22歳になりました。気が狂いそうな話。
2019-02-02 from blog
22歳になりました。
もう誕生日も終わりそうですが、本日2月2日で22歳になりました。めちゃ2が並ぶ。
今年はというと、就職というビッグイベントが待っているので、激動の1年になりそうです。頑張ります。
人生の目標としては、自立することでしょうか。なんだかんだ、親に頼りながらここまできたので、就職をきっかけに、経済的にも心理的にも自立して生きていけるようになりたいです。
具体的なアクションとしては、一人暮らしがあるのかなと現状では考えています。資金貯めたりして、2019年内くらいで引っ越ししたいな、という目標です。
気が狂いそうな話
そして、気が狂いそうな話。
悲しいことに、10年...
今更ながらtypescript-fsaが地味に便利だなという話
2019-01-29 from blog
3日ぶりのブログ更新です。
「ゆるふわ技術日誌」なのに、技術のことでもない日記をつらつらと書くのも、精神的に来るものがあるので、これからは更新頻度を落としても技術的なことを書くブログにしていきたい所存。
久々にReactやりたいな(というかやらないと、書き方忘れそうだな)と思ったので、小さなアプリを作り始めました。
React + TypeScriptのプロジェクトを作るのも、いつのまにか
$ create-react-app hoge --typescript
でできるようになってるし、すごい。
Reduxのアクションやreducderは、普通のJSで書くのであれば、そのま...
Reduxのソースコードを読んでみたみたいな話
2019-01-26 from blog
Reduxのソースコードを読んでみた。
別にReduxじゃなくて全然よかったんだけど、OSSのソースコード読んでみようかなと思ったのがきっかけ。
割とちっちゃめのライブラリで、とっかかりに読むにはちょうど良かった。
まだ、createStoreしか読んでいないけれど、こうやってできてたのかーと感心したり、知らないJSの文法が出てきたりした。(関数の中でargumentsという名前で引数が配列で取って来られるとか)
あまりにも小さいかつ有名なライブラリだったのでコントリビュートしたりする余地は残念ながらなさそうだけど面白かった。
...
■
2019-01-25 from blog
集中ってだいじだなぁと思った。
昨日ブログ書いてないことからも想像がつく?ように、なんだか何も手につかずアニメとYouTube観て過ごしてしまう日を2日くらい過ごしてしまいました。
今日は、途中からなんとか切り替えて、卒研発表ようのスライドを作っていました。結果2時間くらいで終わったという。
2時間で終わることを2日間かけてやってしまった後悔は大きい。
スライドは無事完成したので、あとは練習して発表本番を迎えれば、ちゃんと卒業できそう。
よかったね、という感じ。
...
■
2019-01-23 from blog
なんだかぼけっと過ごしてしまった……
大変よろしくない…。
ほんとに書くことがないよ
スライドを作る
2019-01-22 from blog
今日は卒論発表の練習をしていました。
作ったスライドは、8割くらいOKで、残りの2割は要修正といった感じで、自分で作ったにしては、上出来なのではないかなと思った。
卒論発表もLTも、気をつけるべきポイントは似てて、
スライドにつらつらと文章を書きすぎない
図を使って視覚的に伝わるように
論点をブレさせない、飛躍させない
と、こんな感じかなと思った。
特に僕は、話の内容を急に飛ばしてしまうクセがあるようなので、その点には気をつけつつやっていきたい。
卒論関連も、本当にそろそろ終わりなので、コード書くなり、設計について学ぶなり、何をやるか決めて、社会人になるまでの2ヶ月を有意...
OOP
2019-01-21 from blog
OOPについて思いを馳せていた。(だいぶ大げさ)
思えば、大学1年の頃からずっとOOPらしき何かをやらされてきたが、本質は何もわかってなかったのではないか、という気がしてきた。
社会人まであと数ヶ月のタイミングなので、学んでおくべきは、こういう基礎的なところなのかな、と思ったりした。
あと、日常話として、今日で、半年間やってきたSAが最終勤務だった。
1年生にJavaを教えていた。自分が遥か昔に理解してしまったところまで、レベルを落として、同じ目線に経って教えることの難しさを痛感した半年だった気がする。
あと、Java忘れてなくてよかった。
...
React NativeでTypeScriptを使う2019
2019-01-20 from blog
React Native使ってなんか作りたいな〜と思って、作るならTypeScript一択だなぁ〜と思って、そういえば2017年夏にインターンでRN触ってた時はTSにするの地味に面倒だったような〜と思って、でもそれから1年以上経ったし、なんかもっとスマートになってるんじゃないなかぁなんて思って調べたら、やっぱりいい感じになっていた。
本当は、最近ちゃんとしたブログ書いてないし、ここに書いてやっぞ!と思っていたのですが、思いの外お役立ち情報な気がしたので、Qiitaに投稿することにした。
qiita.com
こちら。
ポイントとしては、
react-native init MyPro...
React NativeでTypeScriptを使う2019
2019-01-20 from qiita
前提
$ react-native -v
react-native-cli: 2.0.1
react-nativeは0.57.8
本題
前にReactNativeに触ったのは2017年の夏くらいだったので、ずいぶん方法が変わっていて驚きました。React NativeをTypeScriptで書きたいという話です。新規プロジェクトを作る時の話なので、既存プロジェクトに適用したいときはよしなにどうぞ(よくわかってない)
結論から述べると、react-native init MyProj --template typescriptとしてあげるとTypeScriptを使ったプロジェク...
■
2019-01-19 from blog
だいたい卒論関係でやること終わってるので、 今日は本を読んだり、React Nativeについて学んだりしてました。
書くことがこれしかない……。
せっかくRNのお勉強始めたので、何か作りたいけど、こういう時何も思いつかないんだよなぁ…と思った。
firebase-adminでCloud Firestoreを使う際にserverTimestamp()を使う
2018-09-19 from qiita
環境
"dependencies": {
"express": "^4.16.3",
"firebase": "^5.5.0",
"firebase-admin": "~6.0.0",
"firebase-functions": "^2.0.3"
},
"devDependencies": {
"typescript": "~2.8.3"
},
なお、今回はCloud Functions上で実行することを想定したコードになっていますが、ローカル環境で実行する際にも適用できる内容だと思われます。(未確認)
発生する問題
(問...
Hyperでemojiを表示する(Ubuntu)
2018-08-31 from qiita
Hyperというターミナルがあります。
Hyper™
最近気に入って使っていて、emoji表示をしたいなと思ったのでその手順をメモ。
環境
Hyper 2.0.0(stable)
Ubuntu 18.04 LTS
です。他のOSでは異なる気がするので、適宜調べつつやってみていただけると良いかと思います。
手順
手順というほど大したことは無いのですが…。
.hyper.jsを開く
お好みのエディタで~/.hyper.jsを開くか、Hyperを開いている状態でCtrl + ,を押すと開きます。
font-familyを書き換える
Ubuntu 18.04には最...
Docker ComposeのVolumeにNFSを指定する
2018-08-05 from qiita
最近教えてもらった技なのですが、Docker ComposeのVolumesにはNFSストレージをマウントすることができるようです。
やってみたので、忘れないようにメモ。ちなみに、今回はGrowiというOSSのWikiを動かす例です。
Docker Composeのバージョンは以下。
$ docker-compose -v
docker-compose version 1.21.2, build a13347
Growiは公式でdocker-compose.ymlを公開しているので、まずはそちらをもらって来ました。
weseek/growi-docker-compose: gr...
そろそろ知っておきたいHTTP/2の話
2018-05-21 from qiita
はじめに
最近HTTPについていろいろと勉強する機会があったので、これを機にHTTP/2についてまとめてみました。
HTTP/2は標準化から3年が経過し、意識こそしていないものの普通に使われるようになってきました。なんとなくサーバーをHTTP/2使うように設定したけど、なにが良くなったのかイマイチ知らないというような人が読んで、理解できる記事を目指してみたつもりです。
HTTP/2がもたらしてくれるものとその仕組みをなるべく簡潔に噛み砕いて書いてみました。そのため、この道の専門の方からすると、不十分な表現や不適切な表現、或いは私の誤った理解などがあるかもしれません。
そのような箇所...
DockerでLAMP環境を作るときにハマったこと
2018-03-09 from qiita
docker-composeで動くLAMP環境を作った。
https://github.com/uutarou10/lamp-docker-compose
作りました。中身は
PHP 7.2.3
MySQL 8.0
phpMyAdmin
という構成。
わかってみれば大したことではないのだが結構ハマって時間を溶かしてしまったので何かのお役に立てばということで書いておく。
LAMP使いたいだけなら↑のリポジトリcloneしてきて云々する方が早い。
Authentication plugin 'caching_sha2_password' cannot be loadedと言...
Kubernetes入門ハンズオン-WordPressを立ててみよう-
2018-03-02 from qiita
Kubernetesハンズオンを私の所属する研究室で行いました。
我ながら入門者にはとっつきやすい資料ができた気がしたので、Qiitaにも軽く解説を交えつつ貼っておこうと思います。
スライド
初心者による初心者のためのKubernetesハンズオン // Speaker Deck
このハンズオンの対象者
Kubernetesを始めたばかり or 始めてみたいひと
他の解説記事でkubectl run ...とかやって一通り試したけど、YMLどうやって書くのかわからなくて困っている人たち
このハンズオンでやらないこと
Clusterの構築手順
スライドの最後の方で軽...
Ubuntu16.04にDocker CEをインストール
2018-02-06 from qiita
環境
Ubuntu 16.04LTS
デスクトップ版
手順
Get Docker CE for Ubuntu | Docker Documentation
ここを参考に。というかほぼ日本語訳。(英語できないけど)
インストールするDockerのバージョンは記事執筆時点のstable最新版の17.12.0-ce(Community Edition)です。(DockerにはCE(Community Edition)とEE(Enterprise Edition)というのがあって、無料で使えるのがCEというイメージで大丈夫だと思う。)
Dockerのインストールは
D...
ssh_exchange_identificationと言われてknown_hosts消したりhosts.allowいじっても直らない時に確認してほしいこと
2018-01-29 from qiita
タイトルの通りなのですが、SSHを使用してどこかへ接続しようとした時にssh_exchange_identification: Connection closed by remote hostと言われて接続できないことがあります。
ググると
known_hostsを消す
/etc/hosts.allowを書き換える
といった対処法がヒットするかと思いますが、それを試しても直らない時に確認してほしいことです。
(この記事は~/.ssh/configを使っていて、かつProxyCommandで多段SSHしている人しか役に立たないと思われます。当てはまらなかったら残念ながら多分別の原...
IntelliJ IDEA組み込みのmavenのsettings.xmlを編集する
2018-01-08 from qiita
IntelliJ IDEAには最初からmavenが組み込まれていて、特に指定しなければそちらが使われます。
Proxy経由でないとアクセスできないリポジトリが使いたくて、settings.xmlを書き換えようとしたのですが、どこにあるかわからなかったのでメモ。
結論
さっさと結論を述べてしまうと、settings.xmlは以下のディレクトリにあります。(環境はmacOS 10.13.2/IntelliJ IDEA 2017.3.2 (Ultimate Edition))
maven3のsettings.xml: /Applications/IntelliJ IDEA.app/Con...
curlでよく使うオプションメモ
2018-01-05 from qiita
よく使うわりにいつも忘れるcurlのオプション。
メソッドを指定
curl -X "POST" https://...
Xオプション
オレオレ証明の警告無視
curl -k https://...
kオプション
Cookie埋める
curl -b name=value https://...
bオプション
複数個送りたい時はbを複数書くのではなく
curl -b 'name=value&name2=value2' https://...
という感じにする。
リダイレクトに追従
curl -L https://...
Lオプション
ヘッダを見る
...
mavenプロジェクトで依存関係を含んだjarファイルを作成する際に「メイン・マニフェスト属性がありません」と言われる際の対処法
2017-09-25 from qiita
タイトルの通りですが…。
依存関係を含んでパッケージングする
依存関係もろともパッケージングをするにはmaven-assembly-pluginプラグインを用います。
pom.xmlのproject->build->pluginsの下に追加します。
pom.xml
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
...
recompose(HOC)を使用したReactコンポーネントのテストでどハマりした件
2017-07-26 from qiita
テストで何も返ってこなくて大変どハマりしたので備忘録。
解決策を見つけたのは私ではないけれどドヤ顔で書いてる(嘘)
私自身、初めてテスト書いていきなりハマったので、常識とかよくわかってないけど書いています。まさかり歓迎。
環境
enzyme
recompose
ハマったこと
recomposeのwithHandlersとwithStateを使用したコンポーネントで返ってくるはずのコンポーネントが返ってきてないのでテストに落ちる
解決策
enzymeのissueにあるらしい。(見つけたのは僕ではない)
https://github.com/airbnb/enzyme/...