サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
掃除・片付け
tech.natsuneko.blog
例えば、何らかの理由でリポジトリのこのディレクトリ以下の部分だけ別リポジトリで管理したいな~!って場合のやり方。 履歴を引き継がなくてもいい場合はそのまま新しいリポジトリがある場所にコピーすれば良いんだけど、履歴も引き継ぎたい場合。 やり方は簡単で、特定のコマンドを 2 ~ 3 回叩けば終わる。 ということで、まずは、該当リポジトリを新たにクローンし、そこへ移動します。 新しくクローンする理由としては、該当コマンドは現在のリポジトリの履歴を書き換える動作を行うためですね $ git clone https://github.com/mika-f/example-repository.git $ cd example-repository 移動後、以下のコマンドをインストールします。 Windows の場合は、次のようにしてインストール出来ます。 $ scoop install git-fi
k3s という軽量 Kubernetes があります。 これを Oracle Cloud 上にある、 Tailscale で接続している Compute Instance に構築しようとしていて、ハマってしまったので備忘録。 前提: Tailscale k3s ドキュメント通りに行くなら、マスターノードとなるインスタンスに k3s をインストールします: $ curl -sfL https://get.k3s.io | sh - 次に、エージェントとなるインスタンスに k3s をインストールします: $ curl -sfL https://get.k3s.io | K3S_URL="https://<tailscale-hostname>:6443" K3S_TOKEN=xxx sh - ......としても、 [INFO] systemd: Starting k3s-agent となった
Cloudflare Pages 便利ですよね。 push するだけでビルドするのはよくありますが、そこから Cloudflare がもつ世界中のサーバーに投げてくれるのはとても良いです。 ところで、 Preview Deployment として反映されているものにもドメインを割り当てたいと思ったことはありませんか? 例えば、 project.pages.dev というドメインが Production Deploy に割り当てられていて、そこに www.natsuneko.cat としていた場合、 ある Preview Deployment には staging.project.pages.dev が Cloudflare から割り当てられて、そこに staging.natsuneko.cat を割り当てたいケース等です。 Cloudflare Pages の設定上からは出来ないように見
Git LFS のプロキシサーバーを Vercel に投げつけたんですが、そのとき req.body が undefined だったので、その対処法としての方法を紹介します。 Express (Vercel) を使ってる場合、 app.use(express.json()) で JSON に対応できるようになっています。 しかし、これは Content-Type ヘッダーを見ているのか、例えば以下のような Content-Type の場合は JSON としてパースされません。 Content-Type: application/vnd.git-lfs+json これは Git LFS のクライアントが投げる Content-Type および Accept ヘッダーで、まぁ要するに JSON なんですが、上記のミドルウェア設定では対応していないので、自前でパースする必要があります。 というこ
Web サービスリニューアルしたいことってありますよね? ただ、一度に一気にリニューアルすると、想定していない不具合が出てきたり、今の運用どうするの?っていう問題があったりします。 そこで、 Cloudflare Workers を使って段階的に移行する方法を紹介します。 今回は、現行サービスを Cloudflare Proxy のオリジンとして設定してあることをベースとして、新しい部分は例えば Cloudflare Pages などで別ドメインでホストされているとします。 その場合、以下のように Cloudflare Workers でプロキシーしてあげることで、想定した動作を行うことが出来ます。 +---- Old Pages --- www.natsuneko.cat (Current Origin) | Internet -- Cloudflare Workers --+ | +-
みなさん Git LFS を使用していますか? わたしは VRChat のアバタープロジェクトをまるまる GitHub へあげているついでに、 Git LFS で 3D モデルやテクスチャーも状態を保存しています。 そこで困るのが、 GitHub のストレージ課金です。 50GB で 60USD/year かかるのですが、これをオンラインストレージで換算すると、微妙に高くない?となります (Wasabi とか 72USD/year で 1TB だしね)。 例えば、ウチのプロジェクトの場合、大きいもので数十 GB くらいあったりするので、それをアップロードするとオシマイです。 そうなるとどんどん高くなって行っちゃうので、個人的には S3 とかにバックアップしたい気持ちがあります。ということで、 Git LFS サーバーを実装してみました。 といっても必要なのは1つだけで、以下のエンドポイント
先日、 Twitter してたら面白そうなアプリのツイートが流れてきました。 Steam で販売している”WallpaperEngine”というデスクトップの画像を動画に変更できるアプリが面白い。 設定も凄く簡単だし、最大化しているタブがある時は動画を停止してくれるので CPU に負荷もかからない。 まだアーリーだけど日本語対応予定で 400 円はお買い得。 pic.twitter.com/ihepCzT4xn — ミースケ (@Mi_suke0108) December 27, 2016 Wallpaper Engine on Steam どういう仕組みで背景に動画を流しているのか気になったので、 とりあえず想像でいろいろ試してみました。 で、いくつか考えたり実際に試したりしてでてきたのが、以下のもの。 不可視 Window を作成する。 1 で作成した Window にて、動画などを再
このたびアップロードよりダウンロードのほうが多いであろうファイルについて、 Cloudflare R2 へ移行したので、その方法のメモ。 ただし、 S3 を使っているなら公式のマイグレーションツールを使った方がおそらく良いので、そちらを使うべし。 まずは、 Wasabi のダッシュボードから、 AWS CLI を使うためのアクセスキーを発行する。 同様にして Cloudflare R2 もアクセスキーを発行する。 発行したら、 AWS CLI をインストールし、一括でファイルのダウンロードを行う。 AWS CLI が入っていなかったら、以下のようにして入れる。 $ scoop install aws 導入後、プロファイルを設定する。 プロファイルは ~/.aws/credentials にあるので、以下のように保存する。 [wasabi] aws_access_key_id=xxx aws
Rust から、 Windows の COM を呼び出したくなったので、呼び出してみました。 コードは、以下のリポジトリに置いてあります。 GitHub - mika-sandbox/rust-wallpaper まずは Cargo.toml に Microsoft の公式実装である com クレートを追加します。 [target.'cfg(windows)'.dependencies] # crates.io のはちょっと古いので、 Git Repository から引っ張ってくる com = { git = "https://github.com/microsoft/com-rs" } # Windows API Binding の winapi も使うので追加しておきます winapi = { version = "0.3" } cfg(windows) としているのは、 Windo
自分にだけ見えると都合が良いもの (例: 表情確認カメラ) を実装したいとき、 そういったものを実装する為の方法のメモです。 実装する前に、まずセットアップが必要です。 私は VRC 始めてからの 1 年間やってなかったらしいのでやり方も書いておきます。 まず、新しいシーンを作成し、そこに VRCSDK の中にある VRCWorld を突っ込みます。 突っ込んだら、 VRChat SDK の Builder に「セットアップしてね!」みたいなボタンが出るので、 全部クリックしておきます。 セットアップはこれで終了です。 なんかレイヤーとか追加されたりします。 ということで本題へ。 自分にしか見えないオブジェクトを実装するには、以下の要素を使用します。 Camera RenderTexture Shader まずは、 RenderTexture を作成します。 解像度だけ決めて、後はデフォル
通常設定だと右下あたりにぴょこっとでてくるトースト通知の呼び出し方。 デスクトップアプリからでも出来るみたいですが、ここでは UWP に絞って。 トースト通知を飛ばす方法は簡単で、 ToastNotificationManager.CreateToastNotifier().Show(toastNotification); ってやれば、通知してくれる。 で、問題は toastNotification の部分。 トースト通知のレイアウトは XML で定義されているらしくて、 インスタンス作成時に渡す必要があります。 Windows が標準で用意してくれているのは 8 種類。 取得方法とレイアウトイメージはここにあります。 ToastTemplateType enumeration - Windows app development じゃあそれ以外の場合は?というと、自分で XML を書く必要
SSH しようとしたら、見かけないメッセージで怒られました。 $ ssh ~~~ No user exists for uid 501 (。・ω・。)... そういうときは、ターミナルのセッションを再起動(っていうのかな?)すれば直ります。 ちなみに原因はわかりませんでした(なんか名前が取得できないらしい)。
なんともタイトルだけだと、何が言いたいのかわかりづらいですが、 ListView を使った際、アイテム数が少ない場合は、下の方に空のセルが詰められます。 ↓ こんな感じです(一番下が空のセル) 個人的に気持ち悪いので、これを消し去ります。 検索したら出てきました。 How to hide the empty rows of a list view in xamrin.forms in ios - Xamarin Forums しかし、できません。 なので、とりあえず同様の動作をするコードを作りました。 [assembly: ExportRenderer(typeof(ListView), typeof(iOSListViewRenderer))] namespace BlankCell.iOS.Renderers { public class iOSListViewRenderer : L
Swift を使った OS X アプリの資料が少ないのは、なかなか致命的だと思いました。 iOS ばっかりじゃない(使いまわせるのだろうけども)! ということで、前から作ってる Window に、タイトルを設定したい。 いつまでも「Window」のままだと、味気がないものですからね。 ということで、早速。 UI に関することは、 Interface Builder を使えば全部できるとのことなので、 それにならいます。 Window タイトルを変更できる場所は、 Interface Builder の右側の部分。 上にいっぱいアイコン並んでるところの、定規の左隣をクリック。 で、 Title の部分を変更すれば OK。 ↑ こんなかんじ で、ビルドすれば 変わっています。 ということで、ではでは(ゝ ω・)v
TypeScript + Node.js でアプリを作っているのですが、テストのカバレッジを取得して、 GitHub にて、そのバッジを README.md に表示してみようという試み。 TypeScript + Node.js だけじゃなく、 JavaScript でもいけます。 前提条件としては、下の通り。 TypeScript (もしくは JavaScript) Node.js テストフレームワークは mocha CircleCI を使っている Coveralls を使っている ということで、早速設定していきます。 まず、 CircleCI にて、 Coveralls のトークンを設定します。 はじめ、 Coveralls にリポジトリを登録した際には、 Travis CI 用の設定方法が書いてありますが、そこの repo_token の値をコピーして、 CircleCI のプロジェ
Entity Framework で、 C# コード内から、接続文字列や接続プロバイダを指定する方法。 まぁ app.config に connectionStrings を定義せずに接続するみたいな感じ。 Entity Framework の使い方みたいなサイトを見ると、たいてい Code First でやってたり、 app.config に接続先を指定しているみたいなのが多いけど、 コードから接続先やプロバイダを指定する方法を使うことになったので、メモ。 対象 Entity Framework 6.1.3 System.Data.SQLite.EF6 1.0.98.1 通常は下のような感じでする(はず)。 using System.Data.Entity; using Experiment.ConsoleApp.Models; namespace Experiment.ConsoleA
rubyzip で ZIP 圧縮して、 Windows でそれを解凍したら、 日本語を含むファイルが文字化けしている。 それだと困るので、その対処方法。 調べたところ、 Mac や Linux では文字コードが UTF-8 だけど、 Windows では Shift-JIS だからとのこと。 なので、ファイル名のエンコーディングに Shift-JIS を使えば直る。 test.rb # coding: utf-8 require 'zip' Zip::OutputStream.open("test.zip") do |zos| zos.put_next_entry "テスト.txt".encode("Shift_JIS") zos.puts "aaaaaaaaaaaaaaaaaaaaaaaあああああああああああ" end 実行結果 上が Shift-JIS エンコードしたもの、下がそのまま
最近、 React.js + Electron + TypeScript で、アプリを作っているのですが、 render() の中の React Component で、生の HTML を扱うことが発生したので、 やり方を書いておきます。 通常通りに値を渡すと、エスケープされて、 <p> hoge </p> といったように、 表示されますが、dangerouslySetInnerHTML を使うことで、 生の HTML で描画することが可能です。 DOM Elements – React ただ、 XSS が発生する可能性が出てくるので、使用には注意が必要です。 実際に使うと、こんな感じ。 /// <reference path="./typings/tsd.d.ts" /> import * as React from 'react'; interface IChatMessagesPro
UWP 版 Twitter 公式アプリの UI、個人的にはかなり参考になるのですが、 ところどころ謎な部分がありました。 その1つに、プロフィール画面があります。 これ、上の Pivot 以外が全部1つのスクロールになっていて、 どうやっているんだろうと思ったらできたので、やり方をメモっておきます。 この UI は、ListView を使うことで解決できます。 名前やアイコン、 Bio の部分は、 ListView.Header にて定義することで、 ツイートは ListView の Content 部分に定義することで再現できます。 ちなみに、コードはこんな感じ(サイズハードコーディングしてるので、いい感じに) <Page x:Class="TwitterLikeUI.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xam
いつもどおり Ruby + Rails 環境整えて、いざ bundle install すると、 therubyracer まわりでエラーが起きたので、メモです。 qiita.com 上の記事によると、 OS バージョンと libv8, therubyracer のバージョンを それぞれ合わせる必要があるらしいです。 しかしながら、合わせてもエラーが起きていました。 私が解決した方法は、まず、すでにインストールされている libv8 を 一旦アンインストールします。 gem uninstall libv8 その後、 therubyracer を入れます。 gem install therubyracer -v そうすると、自動で libv8 も導入され、無事 therubyracer を導入できました。
どうやら、 LINE の Bot を作るための API が公開されているようなので、 早速作ってみようと思います(若干乗り遅れた感はありますが)。 ということで、作成したやつのリポジトリ: GitHub - mika-archived/line-weather-bot 地名を送信すると、その場所の天気を絵文字で返信するだけのものです。 Heroku の無料プラン上で動いています。 今回は、小さなアプリであるため、 Sinatra で作成しました。 アカウント登録などは、すでに解説記事などが上がっていたので、そちらを参考に。 ちなみに、今日もまだ申し込みできるようでしたので、興味が有るのならお早めに。 ということで、早速作成していきます。 とりあえず、 Sinatra アプリを作っていきます。 $ mkdir line-bot $ cd line-bot/ $ bundle init $ v
この記事を見て、やってみようと思ったのでメモしとこうかなと。 タイトルに Let's Encrypt のと含めてますが、他でも問題ない(はず)です。 HTTP/2 への mruby 活用やこれからの TLS 設定と大量証明書設定の効率化について とりあえず、まずは ngx_mruby をインストールするところから。 (昨日あたりに、 nginx の Mainline 1.9.11 がでたっぽい) $ cd /path/to/work $ wget http://nginx.org/download/nginx-1.9.10.tar.gz $ tar xzvf nginx-1.9.10.tar.gz $ git clone git@github.com:matsumoto-r/ngx_mruby.git $ cd ngx_mruby $ git submodule init $ git su
1週間でモバイルアプリを作る必要性が出てきてしまったので、 さくっと作れそうな React Native でやってみます。 React Native は、 React.js を使って、 iOS, Android のネイティブなアプリが作れてしまう 正直意味分からないフレームワーク。 いつぞやに、 React + TypeScript で、だいたい1週間で実用できるアプリが作れてしまったので、 今回も採用したという感じです。 ちなみに、React + TypeScript で出来たものはこちら ↓ github.com ということで、早速。 公式サイトの Getting Started 通りに、セットアップしていきます。 ツール導入 $ npm install -g react-native-cli からの、プロジェクト作成。 それなりに時間がかかった記憶。 $ react-native i
仮想マシン上で環境構築してる時、 gem のインストールが終わらなかった。 その時の対策。 [Vagrant] 「CentOS の box で bundle install や gem install が異常に遅い」問題を解決する方法 Vagrant + CentOS でやっていたので、上の記事で治るかと思ったけど、 解決しなかった。 tokyo-m.rubygems.org が落ちていて rubygems がインストールできない。 - Qiita こっちを行ったら、さくさく進むようになった。 $ gem source --add http://production.cf.rubygems.org/ $ gem source --remove https://rubygems.org/ とした後に、インストール作業をする。 これで解決。
mixpanel という、アクセス解析ツールの存在を教えてもらったので、 とりあえず、私が理解した分だけメモしておくことにしました。 多分、間違えてるところがいっぱいあると思うので、記事見た人で分かる人がいたら 教えてくれると嬉しいです(;w;) Mixpanel: Product Analytics for Mobile, Web & More mixpanel は、Web とか、 Android, iOS アプリなどの解析ツール。 Google Analytics みたいな、PV ではなく、クリックした などのイベントで解析を行う。 公式サイトによると、25,000 Data Points までは無料らしい。 Mixpanel Partner になると、 200,000 Data Points まで無料にしてくれるとのこと。 Data Point というのは、トラックしたイベントの個数
Xamarin.Forms(XAML) を使って、 NavigationPage + TabbedPage を作ってみます。 Twitter for iPhone や TweetBot みたいな感じの UI ですね。 ただ、 NavigationPage |- TabbedPage といった構成はよく見かけるものの、その逆は見かけません。 また、上のような構成は、非推奨となっているようです。 たとえば、ほとんどのプラットフォームでは NavigationPage の子ページとして TabbedPage を追加しないよう推奨されます。 https://msdn.microsoft.com/ja-jp/magazine/dn904669.aspx そこで、その逆、 TabbedPage の子ページとして NavigationPage を追加してみます。 単純に書くとしたら、下のような XAML
Windows で Ruby on Rails の開発環境を作るメモです。 正確には、作った上でそれを快適にするまでのメモです。 環境 ホスト ・ Windows 8.1 ・ Virtual Box 5.0.0 ・ Vagrant 1.7.4 ゲスト ・ CentOS 6.5 基本的な構築はこちらの記事が分かり易いので、それを参考に。 【Windows7】VirtualBox + Vagrant + Ruby + Rails4 開発環境の構築【初心者必見】 - Qiitaqiita.com 上の記事とほぼ同じ設定として進めていきます。 基本的にはこのままでもなんの問題もないのですが、 Rails Server がめちゃくちゃ重いです。 さすがに我慢の限界だったので、とりあえず改善していきます。 [Vagrant Rails 遅い]で検索をかけると、NFS を使おうという記事がヒットします。
このページを最初にブックマークしてみませんか?
『tech.natsuneko.blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く