LOGICKY BLOG

プログラミングなどに関するブログです

DockerでPM2とAdonis.jsとApache2でWebsocketを動かすときのメモ

docker-composeのメモ Dockerfileの編集等が反映されない場合は、ビルドする。 $ docker-compose build [service name] それでも反映されない場合は、キャッシュ無効にしてビルドする。 $ docker-compose build --no-cache ビルドしてから一回donwしてupした…

FTXの自動取引プログラムのサンプルを作成しました。

github.com FTX-sample FTX-sample is the Automatic trading program for FTX How to use Register your account on FTX. Create an FTX API key and set it in the .env file. Install and start this program. API Key Go to https://ftx.com/profile and…

Slackのgeneralチャンネルのメッセージを全削除するスクリプトを作ったけど削除できなかった

下記のようなコードを作って実行してみたけど、削除できなかった。理由は権限不足だった。 解決策をちょっと調べたけど分からなかったのであきらめた。 const {webClient, WebClient} = require('@slack/web-api'); require('dotenv').config(); const token…

MySQL - 複数テーブルを連結して重複を削除しつつ、特定テーブルに存在するデータを削除する

複数テーブルの連結 union を使うと連結できます。 特定テーブルに存在するデータの削除 特定テーブルをleft joinしたときに、特定テーブルの該当カラムに値があれば、特定テーブルに同じデータが存在するということになります。 ですので、left join しつつ…

WSL2の特定ポートにwindowsからアクセスする

WSL

どうもWSL2は、windowsとネットワークが別になっているらしい。WSL2の3338ポートにwindowsからアクセスする場合は、単純にlocalhost:3338で、WSL1のときはよかったけど、WSL2はダメらしい。 ただ、下記を .wslconfig に追加したら、それだけでアクセスできる…

WSL2にしたらDocker使えへん

下記エラーが出ます。 ERROR: Couldn't connect to Docker daemon at http://localhost:2375 - is it running? If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable. ここに色々解決策が書いてありました。 git…

EC2をAutoスケール・自動デプロイさせる

AWS

ALBにつなげるEC2を自動スケールさせます。またデプロイは複数のEC2に自動でデプロイしたいので、CodeDeployを使ってみました。CodeDeployは、S3にプッシュして、それを利用してデプロイするようにしました。CodeDeployが自動デプロイする際、プロジェクトル…

tmux - WSL2にしたらコピペできなくなった

下記でWSLでもコピペできるようにしたけど、WSL2にしたら出来なくなった。 blog.logicky.com 解決策 上記の投稿で、.tmux.confを下記のようにしていた。 if-shell "uname -a | grep Microsoft" '\ bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-ca…

PM2でNode.jsのプログラムを自動起動させる(Amazon Linux 2)

参考: PM2-スタートアップスクリプトジェネレーター インスタンスが起動したら自動的にNode.jsアプリが起動するようにする やり方 pm2 starup を実行すると、実行すべきコマンドが表示される。それを実行する。 上記を実行すると、/etc/systemd/system/pm2-e…

sshのconfigの設定(ファイル分割・ポートフォワーディングなど)

SSH

configのファイル分割 Include *.conf 踏み台サーバ経由の接続 Host fumidai HostName ***.***.***.*** User hoge Port 22 IdentityFile ~/.ssh/hoge Host app1 HostName 192.168.20.00 User ec2-user ProxyCommand ssh -W %h:%p fumidai Port 22 IdentityFi…

Shopify - ページ編集にMarkdownを使う

ページ編集にMarkdownを使えるようにするアプリがあるだろうと思ったら、どうもないようでした。 方法概要 Stripeダッシュボードのページ編集画面のウィジウィグモードで、Markdown形式でコンテンツを書いて保存する。 Markdownを使いたいページで、markedを…

Shopify - 特定の商品を購入している場合にのみ閲覧可能なページを作成する

特定の商品を購入している場合にのみ、閲覧可能なページを作成したい場合は下記のようにやるととりあえず出来ました。 前提 対象となる特定商品の商品のハンドルに、「hoge」という文字列が存在する。 対象外の商品のハンドルには、「hoge」という文字列は存…

Shopify - Themeのcss

layout/theme.liquidに大元がいる。ここでcssも読み込んでる。 ここで、ページのタイプとかを確認して、特定のページのみ、cssを追加したりできそう。 {{ 'timber.scss.css' | asset_url | stylesheet_tag }} {{ 'theme.scss.css' | asset_url | stylesheet…

Shopify - Pageに商品情報を表示させる

Liquidのオブジェクトのハンドラ 商品やページ等はLiquid的にはオブジェクトで、これらにはハンドラというのがある。 ハンドラを指定することで、商品を特定できるので、ページに埋め込む際に使える。 でもウィジウィグエディタではliquid構文使えないっぽい…

ShopifyのThemeKit

ShopifyのThemeを編集する際に、ローカルで開発しやすくするためのツールがThemeKitです。 環境 Windows10 WSL インストール ここに書いてあるLinux Installationのとおりにやったらできました。設定とテーマ取得方法も書いてあるとおりにやったらできました…

Element UIのtableでsortとpaginationを連動させる

Element UIのテーブルはソートとページネーションの相性が悪いらしい。試してみたら確かに悪かった。何が悪いかというと、ソートがページネーションと連動しない。ページ内に表示されているデータがソートされるだけだった。 対策 el-table-columnのsortable…

socket.ioの最大同時接続数とサーバ負荷の確認

Adonis.jsでsocket.ioを動かして、リアルタイムにプッシュ配信させるプログラムをPM2で動かしています。webサーバはApacheです。Apacheの設定についてはここにメモしました。socket.ioを使ったので同時接続どのくらいできるのか確認しました。とりあえず同時…

CentOSのApacheでAdonisを動かす

$ pm2 start server.js $ apache proxy 設定(ドキュメントルートをhttp://localhost:3333に飛ばす) これで大体はいいはずなんだけどうまくいかない。 curl http://localhost:3333とかやると「接続を拒否されました」となる。 firewalldは使われてなくて、i…

vscodeで #include <bits/stdc++.h> を使う

使えてたのに突然使えなくなりました。悲しいです。 ctrl + shift + p でコマンドパレットを開きます。 c++ edit json などと入力して、「c/c++ Edit Configurations (JSON)」を実行します。 すると、.vscode内に、c_cpp_properties.jsonが作成されます。 co…

tmuxで色々自動実行しつつ画面を分割したりする

tmuxで色々自動実行しつつ画面を分割したりする方法 tmux new-session -d -s hoge -n taro hogeという名前のセッションを作成し、taroというウインドウを作成する。 tmux split-window -h tmux split-window -h tmux split-window -v -t 0 tmux split-window…

C++ 割ったあまり

参考 「1000000007 で割ったあまり」の求め方を総特集! 〜 逆元から離散対数まで 〜 - Qiita 分かりやすいmodの説明動画 www.youtube.com www.youtube.com 基本 掛け算、足し算、引き算は、計算途中で余りだす。 引き算は、余りがマイナスになったらmodを足…

C++ 拡張ユークリッドの互除法

ユークリッドの互除法は2つの自然数の最大公約数を求める際に利用します。 a % b == r の場合、a, bの最大公約数は、b, rの最大公約数と等しいです。 b % r == r2、r % r2 == r3と繰り返すことで、最終的に余りが0になったときの割ってる方の数が最大公約数…

C++ 累乗の速いやつ

blog.logicky.com 上記でPythonでやっていますが、C++でもやってみます。どうも速いやつは「繰り返し二乗(自乗)法」という名前らしい。 #define _GLIBCXX_DEBUG #include <bits/stdc++.h> using namespace std; using LL = long long; // xのn乗 LL powpow(LL x, LL n) { </bits/stdc++.h>…

C++ 累積和

累積和は、配列の一部の範囲の合計を出すやつです。何回も合計を出す場合に効率化できます。最初に合計を入れる配列を用意して、順番にその位置までの合計を入れていきます。あとはそれを参照するだけで合計出せます。 サンプルコード #define _GLIBCXX_DEBU…

C++ clock

C++

C++で時間計測したいときはclock()が使えます。 参考:clock コードサンプル #include <bits/stdc++.h> #include <unistd.h> using namespace std; int main() { cout << "CLOCKS_PER_SEC: " << CLOCKS_PER_SEC << endl; clock_t start = clock(); cout << "start: " << start << endl</unistd.h></bits/stdc++.h>…

C++ ワーシャルフロイド法

参考:素人によるワーシャルフロイド法 - Qiita グラフ コード #define _GLIBCXX_DEBUG #include <bits/stdc++.h> using namespace std; using Graph = vector<vector<int>>; const int INF = 1e9; void warshall_floyd(Graph &G) { int n = G.size(); for (int k = 0; k < n; ++k) { fo</vector<int></bits/stdc++.h>…

C++ ダイクストラ法

blog.logicky.com 上記はPythonでやっていました。C++でやってみます。 参考: 最短経路問題(ダイクストラ法) 対象のグラフ コード #define _GLIBCXX_DEBUG #include <bits/stdc++.h> using namespace std; using Graph = vector<vector<int>>; const int INF = 1e9; int n = 8; // 頂点</vector<int></bits/stdc++.h>…

C++ ヒープ (priority_queue)

優先度つきキューは、何をどういう順序で入れても、優先順位の高いものから順に取り出すことができるキューです。内部的にはヒープを使って実装されます。C++では、priority_queueというのがあります。 コード int main() { priority_queue<int> que; que.push(1)</int>…

C++ clang-format

C++

.clang-format というファイルを作って、下記のようにしたら、vscodeで勝手にコンパクトなフォーマットに整形してくれます。私的にはGoogleというのが気に入りました。他の種類はここに説明が書いてあります。 BasedOnStyle: Googl 今のところ、上記で十分で…

C++ 区間DP

参考: 区間DPを勉強してみた - Kutimotiの競プロメモ 区間DPとは何かと言われるといまいちよく分からないが、上記に書いてあることの仕組みは大体分かった。でもまだボトムアップ型のコードしか見てないけど。ナップサック問題と似ていて、細切れにして計算…