LOGICKY BLOG

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

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とは何かと言われるといまいちよく分からないが、上記に書いてあることの仕組みは大体分かった。でもまだボトムアップ型のコードしか見てないけど。ナップサック問題と似ていて、細切れにして計算…

C++ 動的計画法(DP)ナップサック問題

典型的な DP (動的計画法) のパターンを整理 Part 1 ~ ナップサック DP 編 ~ - Qiita なんかややこしい。。 全部愚直に一から毎回計算すると大変なやつを、ところどころ覚えておいて表にでもしておけば、計算量減らせるやん的な雰囲気を醸し出しているやつ…

C++ グラフ・探索

参考サイト DFS (深さ優先探索) 超入門! 〜 グラフ・アルゴリズムの世界への入口 〜【前編】 - Qiita グラフを隣接リストで表す 隣接リストは、各頂点毎に、隣接する頂点の配列を作ります。 #include <bits/stdc++.h> using namespace std; using Graph = vector<vector<int>>; int mai</vector<int></bits/stdc++.h>…

C++のvector

C++

#include <bits/stdc++.h> using namespace std; int main() { // 1 全部0で初期化 vector<int> v(10, 0); cout << "1: "; for(int x : v) cout << x << ' '; cout << endl; // 2 要素数を設定したらデフォルトでは0で初期化されるっぽい(intの場合) vector<int> v2(10); v2.push_bac</int></int></bits/stdc++.h>…

C++ ビット演算・ビット全探索

ビットは0か1の2通りを表せるやつです。 C++でビット列を作る 下記で作れます。 bitset<8> b("101"); bitset<8> b2(5); 上記は、b, b2共に、00000101 です。引数に文字列を渡すと、そのままビット列として扱います。整数を渡すと、10進数から2進数に変換しま…

VSCodeでC++のコードを自動コンパイル・自動実行する

Code Runnerを使うだけでできます。 Code Runner - Visual Studio Marketplace Code Runnerの出力をターミナルにする settings.json に下記を追加します。 "code-runner.runInTerminal": true, 標準入力を受け付けるコードも問題なく実行できます。

VSCodeでC++のデバッグする

環境 windows10 Pro コンパイラなどは、MinGW-w64をインストールしています。下記を参考にインストールしています。 MinGW-w64のダウンロードとインストール | C言語入門 | CppDrive 利用するデバッグツール GDBを使います。 参考 GDBでデバッグするなら-g3…

VSCodeでPHPのデバッグする

VSCodeでXdebugを使うためのlaunch.jsonの設定内容についてメモいたします。 { "version": "0.2.0", "configurations": [ { "name": "Listen for Xdebug", "type": "php", "request": "launch", "port": 9000, "pathMappings": { "/var/www/hoge/": "${works…

二分探索

参考:二分探索アルゴリズムを一般化 〜 めぐる式二分探索法のススメ 〜 - Qiita コードはC++です。 int binary_search(int ng, int ok, int key) { while (abs(ok - ng) > 1) { int mid = (ok + ng) / 2; if (isOk(mid, key)) ok = mid; else ng = mid; } r…

C++ 整数の型

C++

C++の整数の型 参考:【C言語/C++】データ型のサイズ・範囲の一覧【32bit/64bit環境】 | MaryCore short型が、16bit int型が、32bit long型が、32bitか64bit long long型が、64bit long型は、パソコンの環境によって、変わってしまうらしいので、確実に64bit…

CakePHP3用のDocker

CakePHP3を使うためのdockerの設定を作りました。CakePHP2も動きます。 PHP 7.2.11 Apache 2.4.25 MariaDB 10.3.22 GitHub - edo1z/docker_cakephp3: Docker for CakePHP3