- 1. AtCoder 精選過去問 10 問を JS ワンライナー で挑戦
- 2. フロントエンド素人大学院生が爆速でVue.jsでポートフォリオを作った話
- 3. ひとり開発時の備忘録
- 4. ReactとApolloでGraphQLを使った簡易Todoリストを作成してみた
- 5. 大量の点の 2 次元プロット(regl-scatterplot)
- 6. Cloud Functions for Firebase入門 (簡単なテストまで)
- 7. Electronで「要素の検証」を再現する方法
- 8. JavaScript / Setオブジェクトで文字列を1文字単位でまとめて格納する
- 9. document.designMode の値、 on と off を切り替えるブックマークレット
- 10. kintone から SendGrid プラグインを利用してメール送信
- 11. 最初のほうから始めるJavaScriptとVue.jsそして composition-api
- 12. 年末まで毎日webサイトを作り続ける大学生 〜73日目 星空を作る~
- 13. Geolocation API をPromiseを使ってラップする(TypeScript利用)
- 14. Node.js の Async Hooks API の動作を検証しました
- 15. JavaScriptで文字列中の漢数字を算用数字に変換する
- 16. Ubuntu 19.10のRedmineでのいくつかのバグフィックスをした
- 17. 簡易Webアプリをプロが仕上げるとどうなるか(見積もり編)
- 18. svelteでfirebaseをimportするとopenDbのエラーが出る時
- 19. Ruby/Rails でサーバ転職後数ヶ月で、TypeScript/React/Redux なチームで書けるようになるまでに参考にしたこと
- 20. FlaskとReact使ったTwitter認証をWebSocket使ってめっちゃ強引に行う
AtCoder 精選過去問 10 問を JS ワンライナー で挑戦
## ことのはじまり・・・
「競技プログラミングを通して,みんなで楽しみながらプログラミング力をアップしよう!」ということで,職場でプロコン部が発足しました。[AtCoder](https://atcoder.jp/) という競技プログラミングサイトがあって,まずはこちらの記事に掲載されている過去問 10 問にチャレンジしてみました。[『AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問』](https://qiita.com/drken/items/fd4e5e3630d0f5859067)
AtCoder は色んな言語で挑戦することができます。Rust や Haskell 使いのメンバーがいる中,何の言語がいいかな~と考えましたが,あまちゃんの私は結局 JavaScript を選択しました。でも,初級問題をただ単にクリアしても面白くないかな~と思い,なんとなく全てワンライナーで解いてみることにしました。
## ルール
+ 1行のアロー関数(の組み合わせ)で構成
+ { } は使わない
+ for, if は使わない
+ 三項演算
フロントエンド素人大学院生が爆速でVue.jsでポートフォリオを作った話
# 始めに
## できたもの
実際に作ったポートフォリオは[こちら](https://nomura-lab.github.io/portfolio/)
![スクリーンショット 2019-12-31 6.24.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/475291/3748aee7-ea07-87be-210d-2c64f2f4d713.png)github pagesで公開しています.
また,ソースコードは[こちら](https://github.com/nomura-lab/portfolio)
(vue router使ってないのに入ってたり,リファクタリングすべき箇所は満載ですが...)## 参考
– [フロント未学習の大学生が1週間でVue.jsを使ったポートフォリオを作った話](https://qiita.com/p1ass/items/a01578b782f17f573510)
– [【Vue.js】爆速でSPAを作る](https://qiita.com/nagimar
ひとり開発時の備忘録
#Firebase
– firebase login
– firebase init
– firebase deploy#Bitbucket
[bitbucketのコマンド](https://qiita.com/yyosuke/items/986dabc9906674e2ea97)– 初期化
– git init
– git remote add origin git@bitbucket.org:xxxx/xxxx.git– アップロード
– git add .
– git commit -m “xxxx”
– git push– ダウンロード
– git pull#時短開発
[vscodeでEmmet](https://technical-creator.com/vscode-emmet/)
html:5,h1#id,h1.class,ul>li*3 などは覚えておくと便利[vscodeでホットリロード](https://www.nxworld.net/services-resource/vscode-exte
ReactとApolloでGraphQLを使った簡易Todoリストを作成してみた
**私は初心者です。ググりながら書きました、間違いなどあれば教えていただけるとありがたいです** :bow:
参考
– [Apollo なら爆速で GraphQL サーバーと GraphQL クライアントアプリが作れる – Qiira](https://qiita.com/jintz/items/4ddc6bf4f95238eff5e9)
– [React, Redux, GraphQLを学べるオンライン教材「Full Stack Open 2019」がとても良かった – fortkle blog](https://fortkle.hatenablog.com/entry/2019/12/11/095719)—
![7WoZtWz864.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/142910/8cf8bf05-3765-3d10-3d2c-a9d95ada8cc6.gif)
—
私が作成したコードは以下です
大量の点の 2 次元プロット(regl-scatterplot)
こんにちは。
[regl-scatterplot](https://github.com/flekschas/regl-scatterplot/) を試してみました。そっくりそのままの下記のソースを動かしただけですが、100万点をプロットしてもレスポンスは良いようです。* [WebGL-based Scatterplot build with Regl ](https://flekschas.github.io/regl-scatterplot/)(regl-scatterplot demo)
“`index.html
regl-sca
Cloud Functions for Firebase入門 (簡単なテストまで)
# モチベーション
最近`Cloud Functions for Firebase`の開発を少しやってみて色々右往左往してたので、初心者なりにフローをまとめてみました。
フロント側を最近Vueを使った開発を行っており、極力現在のフロント環境(`es6, webpackによるバンドル化など`)と合わせる構成にしています。# ゴール
firebase functinonsの開発/運用するために以下の点をできるようにする
* デバッグ(ローカル上での実行およびホットリロード)
* テスト
* デプロイ# Cloud Functions for Firebaseとは
GCPサービスとして提供されているCloud Functionsを簡単にfirebaseの各種サービスと連携して使える、いわゆるFaasサービスです。詳しく書くとにわかがばれそうですが、[公式リファレンス](https://firebase.google.com/docs/functions?hl=ja)をみることをおすすめします。# 作成したもの
こちらに[サンプル](https://github.com/glass
Electronで「要素の検証」を再現する方法
##本文
初投稿です。
Chromeで右クリックすると出てくる「検証(I)」。
押すとデベロッパーツール内でカーソル直下の要素にジャンプします。
Electron内でも使えると開発中なにかと便利なので、この機能を再現してみます。##openDevTools
Electronで単にデベロッパーツールを開く場合は`webContents.openDevTools([options])`を使います。
“`javascript
const { remote } = require(‘electron’)
const webContents = remote.getCurrentWindow()
webContents.openDevTools()
“`
modeオプションで表示位置の指定ができます。| mode |状態|
|:-:|:–|
|right|画面右に表示|
|bottom|画面下に表示|
|detach|別ウィンドウに切り離して表示|
|undocked|別ウィンドウに切り離すが画面内に戻すこともできる|
“`javascript
webContents.ope
JavaScript / Setオブジェクトで文字列を1文字単位でまとめて格納する
JavaScriptのSetオブジェクトに、文字を1文字ずつ簡単に格納する方法について書いておきます。
後者の書き方で記載すれば、1文字ずつカンマで区切る必要がなくなります。#### 1. 標準的な書き方
“`sample.js
const kans = new Set([‘〇’, ‘一’, ‘二’, ‘三’, ‘四’, ‘五’, ‘六’, ‘七’, ‘八’, ‘九’]);console.log(kans.has(‘一’));
// 表示結果 trueconsole.log(kans.has(‘四’));
// 表示結果 trueconsole.log(kans.has(‘百’));
// 表示結果 false
“`#### 2. 簡単な書き方
“`sample.js
const kans2 = new Set(‘〇一二三四五六七八九’);console.log(kans2.has(‘一’));
// 表示結果 trueconsole.log(kans2.has(‘二三’));
// 表示結果 falseconsole.log(kans2.ha
document.designMode の値、 on と off を切り替えるブックマークレット
ドキュメントを編集可能にするかどうかを切り替えるブックマークレット。
## ブックマークレット
“`js
javascript:(function(){document.designMode = document.designMode === ‘on’ ? ‘off’ : ‘on’;})();
“`三項演算子を使って、`document.designMode`の値が`on`の場合は`off`に、`off`の場合は`on`に変更している。
## document.designMode プロパティ
`document.designMode`プロパティは、ドキュメント全体を編集可能にするかどうかを制御する。
`on`で編集可能にする。
kintone から SendGrid プラグインを利用してメール送信
## 概要
ハッカソンのような利用シーンで kintone の入力内容を簡単にメール送信する方法を調べてみました。
結果、Azure Marketplace の SendGrid と、SendGrid for kintone プラグインの利用で簡単かつ迅速に実現できることがわかりました。## SendGridの設定
### Azure のアカウント作成
以下のWebページなどをを参考にアカウントを作成します。
【Azure入門①】Azureの始め方~アカウント作成~
https://engineer-ninaritai.com/azure-howto-start/### SendGrid の準備
以下のWebページなどを参照にAzureのMarketplaceでSendGridのFreeプランでアカウントを作成します。
AzureでSendGridを利用してメール送信 (5分で)
https://qiita.com/y-araki-qiita/items/3c353fa339fd5c0b0231SendGridは構造計画研究所経由で以下のサイトからも申込みができますが、Az
最初のほうから始めるJavaScriptとVue.jsそして composition-api
# 目的
プログラミングはしたことあるけど、Web系はあまり経験していない。
Webプログラミングしたことあるけどググって何となくやっている。上記のような人たちを対象に Vue.js でアプリケーションを書く利点を理解してもらう。
加えて composition-api を利用する利点を理解できるまでにしたい。基本的な使い方やAPIなどは世の中に星の数ほどあるチュートリアル記事に任せるとして、ここでは、なぜ Vue をWeb開発に利用するのか?という点にフォーカスする。
# 注意
– プログラミング経験自体はあることを前提とするので、基本的な制御構文や個別のAPIを掘り下げたり詳細な説明はしない。
– 説明の順序的にHTMLなどの説明からすることになるが、個別のタグやCSSのプロパティについての説明もしない。
– React などと比較して Vue を選択する動機などは説明しない。本文章の役割はその前段階にある。
– React を勧めたい人はこの説明をそのまま React や Hooks に変えればよいのかもしれない
– Vue.js にはカスタムコンポーネント
年末まで毎日webサイトを作り続ける大学生 〜73日目 星空を作る~
##はじめに
こんにちは!@70days_jsです。
星空の風景を作ってみました。(gif)↓![test3.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/516248/0465b805-3394-1368-162b-eb0da427e441.gif)
今日は73日目。(2019/12/30)
よろしくお願いします。##サイトURL
https://sin2cos21.github.io/day73.html##やったこと
星空の風景を作りました。
3秒経つとエイリアンが現れます。html↓
“`html
“`css↓
“`css
body {
background-color: rgba(14, 34, 71, 1);
margin: 0;
overflow: hidden;
}
“`background-colorは真っ黒じゃなく、少し紺っぽい色
Geolocation API をPromiseを使ってラップする(TypeScript利用)
[Geolocation API](https://developer.mozilla.org/ja/docs/Web/API/Geolocation/Using_geolocation) を扱い易くするため、Promiseを使ってラップしたので忘備録に。
※ [Geolocation APIをPromiseでラップして扱う(TypeScript)](https://qiita.com/makotoyc/items/aee473b341cd3a7bd31f)を参考に、もう少し細かく型を書いてみました。## クラス定義
“`typescript:Geolocation.ts
/**
* 位置情報クラス
*/
class Geolocation {
/**
* 現在位置取得処理
*/
static getCurrentPosition(): Promise{
return new Promise(
(
resolve: (position: Position) => void,
Node.js の Async Hooks API の動作を検証しました
必要に迫られて、Node.js の [Async Hooks] API について調べたので、その仕組を実例を用いて説明します。
## Async Hooks とは?
Node.js の [Stability: 1 – Experimental](https://nodejs.org/dist/latest-v12.x/docs/api/documentation.html#documentation_stability_index) (2019/12/30 現在) な機能です。
主に **非同期呼出を追跡する** のに使われています。例えば以下の様な NPM Module が [Async Hooks] を使っています。* [longjohn](https://github.com/mattinsler/longjohn) → 非同期呼出で途切れる Stack trace を繋げて表示する
* [trace](https://github.com/AndreasMadsen/trace) → 非同期呼出で途切れる Stack trace を繋げて表示する
* [express
JavaScriptで文字列中の漢数字を算用数字に変換する
## 概要
JavaScriptの学習を1か月前にしたはずが、さっぱり忘れていましたので、復習のために、「文章中の漢数字を算用数字に変換するプログラム」を作ってみました。
次のようにブラウザで表示するもので、変換ボタンを押すと算用数字に変換された文章が表示されます。
なお、’二千十九年12月三〇日午後6時五十五分’ というように算用数字などが混在していても、変換可能です。
以下に、ソースコードと、簡単な説明(備忘)を掲載します。
学習中で未だ理解が浅いため、コードが冗長であったりして、いまいちな部分が多いと思います。モヤモヤした方は、ご指摘などいただけると幸いです。
## サンプルコード
### 1. JavaScript
“`script.js
Ubuntu 19.10のRedmineでのいくつかのバグフィックスをした
# Ubuntu 19.10のRedmineでのいくつかのバグフィックスをした
これまでもアップしたのも含め、Ubuntu 19.10のRedmineでは以下の不具合がありました。
致命的だったモーダルダイアログの件以外はちゃんとバグレポート上げれてないけど…。* jQuery UIのバージョン違いのため、ダイアログが表示されない。
* jQuery UIのバージョン違いのため、Closeボタンの上に「Close」というテキストが表示されてしまう。
* ガントチャートでカミナリ線・関係線が表示されない。
* チケットのインポートができない。他にも以下の便利機能を足してみました。
* インポート時の日付形式で「yyyy/mm/dd」形式を使えるようにする。
* ガントチャートの表示開始を前月にする。
* [チケット新規作成時の担当者を自分にする](http://redmine.jp/faq/issue/set_current_user_to_assigned_to_field/)## jQueryのバージョン違いについて
いくつかのメンバ関数がプロパティに変更されて
簡易Webアプリをプロが仕上げるとどうなるか(見積もり編)
前回ライブコーディングしたモンテカルロ法のシミュレータを
プロのフロントエンドエンジニアが仕上げると、どういう風になるかを説明します。動画解説版:https://youtu.be/WjYFiza_LMY
# 目的
若手のエンジニアさんに
フリーランスのフロントエンドエンジニアがどういう思考回路で仕事をしているかを知ってもらいたい# そもそもモンテカルロ法とは?
ルーレットの掛け金を決める法則で、その通りやれば必ず勝つと言われているものです。
## ルール1. 紙とペンを用意
– 用意した紙に、数列「1, 2, 3」を記入
– 両端の数字を足した値がベット額となる(1 + 3 => $4 ベット)## ルール2-1. 負けた場合
– 数列の最後に「賭け金」を追加する(1, 2, 3 => 1, 2, 3, 4)
## ルール2-2. 勝った場合
– 両端の数字を削る(1, 2, 3 => 2)
## ルール3. 残りの数字が無くなる or 1つになれば終了
– その時点で黒字が確定する
![スクリーンショット 2019-12-30 5.47.07.png
svelteでfirebaseをimportするとopenDbのエラーが出る時
“`
Error: ‘openDb’ is not exported by node_modules/idb/build/idb.js
“`というエラーが出た。
rollup.config.jsのresolveに下記を追記する
“`javascript
export default {
plugins: [
resolve({
mainFields: [‘main’, ‘module’], // ここ
“`
Ruby/Rails でサーバ転職後数ヶ月で、TypeScript/React/Redux なチームで書けるようになるまでに参考にしたこと
夏に転職して、それまではrubyしか書いてこなかったのですが、
転職後はそれまで全く触ってこなかった TypeScript/React/Redux/Firebase なチームに入って開発できるようになるまでに参考になったものです。
もちろん、実際にはもっと他にも色んなものを参考にしています。
また、ここに書いたものも隅々まで読んだりしたわけではないのですが、振り返ってみて役に立ったなって思い出せるのを書いてみました。## 本
– りあクト!
– [りあクト! TypeScriptで始めるつらくないReact開発 第2版](https://oukayuka.booth.pm/items/1312652)
– [りあクト! Firebaseで始めるサーバーレスReact開発](https://oukayuka.booth.pm/items/1572683)
– ESLintの設定や、おすすめpackageなど書かれててたり、こういう書き方は良くないとか書かれてて最高
– [実践TypeScript](https://note.com/takepepe/n/nb
FlaskとReact使ったTwitter認証をWebSocket使ってめっちゃ強引に行う
## 概要
reactにおける認証は下記のページなどで行っている人が複数人いる。
[React Authentication with Twitter, Google, Facebook and Github](https://codeburst.io/react-authentication-with-twitter-google-facebook-and-github-862d59583105)
[ReactでSPAを作り、Twitter認証(OAuth)でログインする。バックエンドはRails](https://beautifulajax.dip.jp/?p=1619)
ただ、自分は馬鹿なのでいまいちよくわからなかった(後、上記ページはサーバーサイドがexpressとかRailsでflaskは見つからなかった)。
そのため、小手先でめっちゃ強引な認証を書いた。WebSocket使うのもReactのuseEffect使うのも、Flask使うのも初めてなので、参考程度にみてもらえると良い(後々、ちゃんとしたコードで書き直したい)
## 流れ
今回は「連携アプリ認証」のボタンを押