サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
掃除・片付け
qiita.com/ryo2132
エンジニアに転職して早2年半。いまだに再帰関数が苦手です。 再帰関数を含むコードレビューがあると「よく分からんけど、動作も良いしテストも書かれてるしヨシ!!approved!!」としてしまったことも...(絶対あかん😇)。 さすがにそれはヤバイと、再帰関数を学び直したのでその結果をまとめてみました。 再帰関数とは? 再帰関数とは、関数内で、自分自身を呼び出す関数です。 この時点で謎ですよね。最初にみたときは「無限ループでは?」って思いました。 以下再帰関数の例として度々あげられる階乗の計算です。 const factorial = (n: number): number => { if (n < 2) { return 1; } return n * factorial(n - 1); }; test('factorial' => { expect(factorial(0)).toBe(
最近、GitHub CLIが便利だな〜と思ったので紹介します。 この記事は以下リリース時点の情報です。 Release v0.11.1 · cli/cli GitHub CLIとは? コマンドライン上でGitHubの操作を行えるCLIツールです。GitHubが公式で公開しています。 (参考: GitHub公式ブログ) インストール Macの場合はbrewでインストールできます。Windowsの場合は公式のREADME.mdを参照してください。
Misoca+弥生 Advent Calendar 2019 の20日目の記事です EFO(フォーム最適化)という領域もあるとおりwebデザインにおいてFormはコンバージョンに直結する重要な要素です。そのフォームを手軽にデザインする上欠かせないのがCSSフレームワークだと思います。 今回は主要cssフレームワーク7選をフォームの視点で比べてみました! 💪 Bootstrap4 たぶん誰しも一度は触ったことあるCSSフレームワークの王様。 これぞBootstrapというフォーム。めっちゃ見たことある感じです。 See the Pen WNbRPMY by ryo (@kawamataryo) on CodePen. Foundation bootstrapと双璧をなす人気のフレームワーク。EmailのCSSフレームワークもあります。 スタイルの指定はbootstrapよりわかりやすく、タ
流行りのノーコードツールのGlideでアプリを作ってみたのでその所感を書きます。 🍱作ったもの テイクアウトを提供している地元飲食店の検索アプリです。 店名・住所・メニューでの検索やマップ表示などが出来ます。 製作時間は8時間程(8割の時間は情報元サイトからのデータ取得・整形)。 Takeout-Hitachinaka · 店舗一覧 機能 - 店名・メニュー・地名などでの検索機能 - 詳細情報の表示 - マップ情報の表示、マップ画面での現在位置取得 - コメント機能 - お問い合わせフォーム 🔧なぜ作った? 地元の商工会議所が提供しているテイクアウト飲食店のまとめページが、かなり味のあるデザインで気になったのがきっかけです。 せっかくの良いキャンペーンが上手く伝わらず勿体ないなと思いました。 新型ウイルスに負けないぞ! テイクアウト&デリバリー応援キャンペーンサイト 特に以下点が気にな
Qiitaの各指標(LGTM数, ストック数, はてブ数..)をGASを使って自動集計し、Notion Chartsで可視化してみました。指標が可視化されると記事執筆のモチベーションも上がるのでオススメです! またQiitaの指標集計に興味がなくとも、Notion Chartsは本当に便利なので、「Notion Chartsで可視化する」の章だけでも読んでもらえると嬉しいです。 何を作るの? こちらのNotionページのようにQiitaの各指標のダッシュボードを作ります。チャートの値は日時で更新されます。 今回集計する指標は以下の通りです。 Qiita 記事数 Qiita LGTM数 Qiita ストック数 Qiita フォロワー数 はてなブックマーク数 また、今回のclaspのプロジェクトは全て以下リポジトリにあります。もしサンプルコードが動かないなどあればこちらを参照してください。 G
概要 新しいプロジェクトに配属された際にプロジェクト固有の環境変数を設定する必要があると思います。 そのintellijでの設定方法メモです。 おそらくwindowsも変わらないと思いますが、デモではMacを対象にしています。 設定方法 メニュー preference > Build,Execution,Deployment > Build Tools > Maven > Runnerを開く Environment Variables の右端「...」をクリック 開いたウィンドウ下の+より追加していく 以上 ここで設定した変数は、Runで設定するMavenプロジェクトの環境変数に自動的に設定されます。 Runの種類ごとに設定したい場合は、RunのEdit Configuration よりRunごと同様の設定を行なってください。
この記事は、Firebase Advent Calendar 2019の13日目の記事です。 Firebase Cloud Storageのセキュリティルール書き方のサンプルです。 Firestoreのセキュリティルールは度々書いていたのですが、Firebase Cloud Storageのセキュリティルールはあまり書いてなかったなと思い立ち調べみました 基本 基本的な構文はFirestoreのセキュリティルールと変わりません。 異なる点としては、制御できる権限がデータ追加のwriteとデータ閲覧のreadのみです。 rules_version = '2'; service firebase.storage { match /b/{bucket}/o { match /{allPaths=**} { allow read, write: if true; } } }
エンジニアになったもののまだまだSQLに苦手意識があります。 先日業務で学んだ副問合せとwindow関数を使った一括アップデートの方法を、備忘録としてまとめます。 前提 以下のような社員(employee)テーブルがありました。 company_idは属するグループ会社のID employee_numberはグループ会社ごとの社員ナンバーでhihre_date(入社日)を基準に採番されています。 demo=# select * from employee order by id asc; id | company_id | employee_number | name | hire_date ----+------------+-----------------+---------+------------ 1 | 1 | 1 | taro | 2008-04-01 2 | 1 | 2 |
Electron-VueでVuetifyを使用した際に「[Vuetify] Multiple instances of Vue detected」が発生する時の対処法Vue.jsElectronvuetifyjs
(初心者向け)vpsを契約して、capistrano3でRailsアプリをデプロイするまで [その1 サーバー設定編]RubyRailsCapistranovpsRails5 はじめに 対象・概要 Railsチュートリアルを参考にwebアプリを作ってHerokuにデプロイしてみたけど、軽快に動かない!ドキュメントも英語だし、有料契約は怖い!AWSも機能多すぎて難しそう!って人を対象に国産VPS、ConohaへのRailsアプリのデプロイ方法を記載しています。 私自身、Railsアプリを作ったもののデプロイできず困り果ててましたが、先人の方々の知恵を参考に、なんとかデプロイまでたどり着きました。 自分への備忘録も含め記します。 Capistranoは最初の構築は大変ですが、一度行ってしまえば、あとはコマンドを打つだけでデプロイ、バージョン管理まで行えるので非常に便利です。 なお、冗長な処理・
認証付きGraphQL APIサーバーを爆速で立てる。 Hasura + Firebase AuthenticationFirebaseGraphQLcloudfunctionsFirebaseAuthenticationHasura HasuraはPostgreSQLからGraphQL APIサーバーを爆速で構築できるものの、認証については外部の認証基盤を使う必要があります。 今回は、認証基盤としてFirebase AuthenticationのJWT認証を使った例を紹介します。 Hasuraの認証について Hasuraの認証はWebhook方式と、JWT方式があり、今回はJWT方式を使います。 JWTは属性情報をJSONデータ構造で表現したトークンを使い認証を行う方法で、Firebase Authenticationにて採用されています。 Hasuraの認証でFirebase Auth
え、Railsプロジェクト認識させるって、開くだけじゃないの?? 私もそう思ってました。 しかし、IntelliJは既存のRailsプロジェクトを前にすると、全然インテリではない 「import project」や「open project」だと、かなりの確率でjRuby、jRailsのプロジェクトと認識します。 その他、Vue.jsやReactでフロントを作っているプロジェクトだと、なぜかstatic web siteと認識したりすることも。。 そんな愛すべきIntelliJですが、ほぼ100% Railsプロジェクトとして認識してくれる方法を見つけました。 1. create new projectを選ぶ 2. Railsを指定 3. Project name, locationに既存のRailsプロジェクトの名前、パスを設定しFinish 4. Generate New Rails
vccwでwordpressのローカル環境を作成して、テーマ開発する際にハマったのでメモ。 秘密鍵が複数あり、.ssh直下のid-rsa以外に独自の名前をつけている又はディレクトリを作成して保存している場合に、それに仮想環境からアクセスできるようにconfigの作成とssh-agentの登録を行わなくてはならない。 もし秘密鍵を.ssh/test/id_rsaに保管している場合は・・
TypeScriptの構文で「意味は分かるけど名前は分からん。そして単発記号or単語でググっても見つからん!」というのがあるのでメモとしてまとめます。 随時追加予定。 as - type Assertion - コンパイラに推論される型を明示的に上書きする。 Advanced Types · TypeScript interface Foo { bar?: number; bas?: string; } let foo = {} as Foo; // {} はFoo型だとコンパイラに伝えている foo.bar = 123; foo.bas = "hello";
nuxt.jsでサイトを作る際にちょっと詰まったのでメモ。 詰まったところ nuxt.jsはassetsに画像ファイルを置くとsrc="require('@/assets/hoge.jpg')"で参照出来るので、 繰り返しの要素で変数に画像パスを格納して、それを使って画像を表示させようとしました。 しかしどんなにパスを確認しても、`Cannot find module '@/assets/hoge.jpg'"と、画像が参照出来ませんでした。 <template lang="pug"> v-container(grid-list-lg fluid pa-0) v-layout(row wrap) template(v-for="(pr, index) in prContents") v-flex(xs12 md4 :key="index") v-card v-img(:src="requir
TypeScript の構文の中でも、屈指のググラビリティの低さを誇る is と in を自分なりにまとめてみました。 is は TypeScript の型推論を補強する user-defined type guard(ユーザー定義型ガード) で使われます。 unknown 型や、any 型、Union 型の型の絞り込みを行えます。 使用例 例えば、unknown 型を引数に受け取る関数で、もし引数の型が string 型だったら文字列の長さを出力するという処理があるとします。 その場合は、以下のように型を絞り込む必要があります。 const example = (foo: unknown) => { if (typeof foo === "string") { console.log(foo.length); // fooはstringとして推論される } }; この一つの関数ならば良い
先日以下ツイートをしたら思いの外良い反応もらえたので、より詳細な紹介記事を書いてみました。 これは必見だわ!! TypeScriptの型についての問題集 想定に従って独自のユーティリティ型を作っていく感じの問題がレベル別に提供されてる Playgroundのリンクから手を動かしながらチャレンジできるので凄くやりやすい (自分はeasyの問題でも分からんのあった。頑張ろ😅)https://t.co/tkEFe7VrBQ — Kawamata Ryo (@KawamataRyo) September 3, 2020 type-challengesとは type-challenges/type-challenges: Collection of TypeScript type challenges with online judge VueUseやVueDemiの開発者である @antfu7さ
最近Chrome DevToolsについて調べていて発見した便利機能を紹介します。 誰もが使える最高便利な開発マシンChrome DevToolsを使いこなして開発体験を変えましょう! 1. $0で選択中のDOM要素の取得 特定の要素に何かしたいという時には、要素のIDやclassを確認してConsoleでdocument.querySelector("#xxx")で取得するというのが一般的だと思います。実はそれはカーソル選択と$0で代替できます。 Classや、IDがついていない特定のDOMを取得したい時とかにも使えるので地味に便利です。 手順 カーソルで取得したい要素を選ぶ Consoleタブで$0を入力 最近知ったChrome DevToolsの便利機能① $0 での選択中のDOM要素取得 Elementsタブで選択状態のDOM要素は、Console上で $0 を入力することで取得で
消防士時代からQiita投稿を続け、累計投稿数は140記事を超えました。 投稿記事が増えると「あれ?これ前Qiitaに書いた気がするけどなんだっけな..?」となっても、自分の過去投稿を探すのが一苦労です。 そんな手間を解消するため、Qiita APIとAlfredを使って自分のQiita記事をインクリメント検索するAflred Workflowを作ってみました。 結構便利なので、Qiitaヘビーユーザーの方々に使ってもらえると嬉しいです。 alfred-my-qiita こちらのGIF画像のように、自分の投稿記事をインクリメンタル検索できます。 初回はAPIリクエストが走るので少し時間がかかりますが、その後はキャッシュが効くのである程度高速に動作します。 インストール・環境変数の設定 以下コマンドでnpmからインストールできます(後述するAlfyで実現しています)。 npmインストールする
Vue Composition API + TypeScriptで DI(依存性の注入), DIP(依存性逆転の原則) を実装してみるTypeScriptVue.js SOLID原則に出てくるDI(依存性の注入)とDIP(依存関係の逆転の原則)を勉強したので、自分なりにVue Composition API + TypeScriptでのコンポーネント設計に応用してみました。 🛠 DI, DIPとは? 最初にサンプルコードを元にDI(依存性の注入)とDIP(依存関係の逆転の原則)を復習します。 既にDI, DIPを知っている方はスキップしてこちらへ。 以下Engineクラスに依存するCarクラスをDI, DIPを用いてリファクタリングしていきます。 class Car { private engine: Engine; constructor(private type: string) {
2020/08/25に開催されたv-tokyo#11の参加レポートです。 とても良い勉強会だったので見逃した方は是非スライドだけでも!! まちにまった Vue.js 3 @kazupon 📁スライド: https://speakerdeck.com/kazupon/matinimatuta-vue-dot-js-3 📝 内容メモ: - SFCの改善PRについて - Viteの紹介 - vuedxの紹介 SFCの改善PR の内容を知ることができて良かったです。setupのDXの改善やリアクティブなCSS変数の作成は便利だと思いました。SFCの改善自体はv3.1xでのリリース予定とのことですが、とても楽しみですね。あと、@vuedxは全く初耳でした。templateの型検査などpluginとして切り出して使えるようであれば是非使いたいです。今後の開発を追っていきたいです。あと個人的に、発表
次のページ
このページを最初にブックマークしてみませんか?
『@ryo2132のマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く