Goのhot reloadにgo-taskを使ってみる

Posted 8. July 2020

Programming #go #task #docker

Goでhot reloading

作っているアプリのサーバサイドをGOで書いているので、Realizeでhot reloadを実現しようと思ったのですが、 GO111MODULE=off にしないとgo getできなかったり、いざdocker-composeで realize start --run しようとすると下記のようなエラーが出たりと色々あれだったので、他に使えそうなパッケージが無いか探してみました。

...
[01:09:01][SRC] : Running..
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x4cf2fb]

goroutine 8768 [running]:
os.(*Process).signal(0x0, 0xad7a20, 0xe34878, 0x0, 0x0)
      /usr/local/go/src/os/exec_unix.go:56 +0x3b
os.(*Process).Signal(...)
      /usr/local/go/src/os/exec.go:131
github.com/oxequa/realize/realize.(*Project).run.func1(0xc000175698)
      /go/src/github.com/oxequa/realize/realize/projects.go:581 +0x5c
github.com/oxequa/realize/realize.(*Project).run(0xc0001fa000, 0xc000133ab8, 0x7, 0xc000342300, 0xc000110540, 0xad2c20, 0xc00011c8d0)
      /go/src/github.com/oxequa/realize/realize/projects.go:646 +0xc2d
github.com/oxequa/realize/realize.(*Project).Reload.func3(0xc0001fa000, 0xc000342300, 0xc000110540)
      /go/src/github.com/oxequa/realize/realize/projects.go:262 +0x147
created by github.com/oxequa/realize/realize.(*Project).Reload
      /go/src/github.com/oxequa/realize/realize/projects.go:260 +0x297
Code 1: docker-composeでrealize startした際のエラー

調べたところ、go-task が中々シンプルで良さそうだったので試してみました。

...

READ MORE

Time to read 3 min

Electron の CORS ブロックを回避する方法について

Posted 6. June 2020

Programming #electron #react #typescript #CORS

Electron で CORS エラー

Electron の Render プロセスでクロスオリジンのリクエストを投げた際、通常の Web と同様 CORS エラーでブロックされます。通信先が自前の API サーバだったりした場合にはそちらの設定でAccess-Control-Allow-Originを許可すれば OK です。

この制約はセキュリティ上必要なものですが、どうしてもクロスオリジンのリクエストを投げたい場合もあるかと思います。私の場合は、ある markdow エディタに、貼り付けた URL から自動的にページのタイトルを fetch して挿入する機能を実装するときに遭遇しました。 ...


READ MORE

Time to read 2 min

Rust で Webassembly を書いて、Typescript で React を書くための環境構築

Posted 28. May 2020

Programming #rust #webassembly #react #typescript #webpack

前提

この記事では、Rust(cargo)と npm は導入済みを前提としています。 知識的にはRust の公式 WebAssembly チュートリアルを一通り読んだくらいで、今回は Wasm と React どう組み合わせるのよってところを重点的に。

必要なモジュール、コマンドの準備

  • wasm-pack

...

READ MORE

Time to read 3 min

Emacs で deno のコード補完を有効化する

Posted 10. May 2020

Editor #emacs #deno #typescript #yarn #rust #language-server

Emacs で Deno

最近 Rust で色々 CLI ツールを作って遊んでいるのですが、そのつながりで Rust で書かれた javascript ランタイムであるDenoの Getting started をちまちまやっていました。

言語は Typescript なので Emacs のTideでコード自動補完を有効化していたのですが、Deno での import 方法が対応していません。 ...


READ MORE

Time to read 2 min

Flutterが最新iOS(13.3.1)のiPhone実機でコケる問題

Posted 8. March 2020

Programming #Flutter #iOS #iOS13.3.1 #XCode

経緯

ビルドして実機で確認しようとすると、スプラッシュ画面で下記のようなエラーが発生してコケる問題に遭遇した。

dyld: Library not loaded: @rpath/Flutter.framework/Flutter
  Referenced from: /private/var/containers/Bundle/Application/CE491C25-9C7E-4FF6-A3FE-10D8904366B1/Runner.app/Runner
  Reason: no suitable image found.  Did find:
    /private/var/containers/Bundle/Application/CE491C25-9C7E-4FF6-A3FE-10D8904366B1/Runner.app/Frameworks/Flutter.framework/Flutter: code signature invalid for '/private/var/containers/Bundle/Application/CE491C25-9C7E-4FF6-A3FE-10D8904366B1/Runner.app/Frameworks/Flutter.framework/Flutter'

環境

  • macOS Catalina 10.15.3
  • iPhone 7 iOS13.3.1
$ flutter doctor
[] Flutter (Channel stable, v1.12.13+hotfix.8, on Mac OS X 10.15.3 19D76,
    locale ja-JP)

[] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[] Xcode - develop for iOS and macOS (Xcode 11.3.1)
[] Android Studio (version 3.5)
[] VS Code (version 1.42.1)

とりあえず色々やってみたこと

  • Flutterのバージョンを上げる
  • ビルド設定(Runner.xcodeproj)側の設定見直し

...

READ MORE

Time to read 2 min

Github CLIのbeta版を試す

Posted 24. February 2020

Misc #cli #github

はじめに

先日、githubの公式CLIツールがbeta版としてリリースされた。

githubはGUIでしか基本使わなかったので当然CLIもあるものと勝手に考えていたが、これまでGithubのCLIは「Hub」という非公式ツールがデファクトになっていたらしい。 ...


READ MORE

Time to read 3 min

FlutterにおけるBLoCパターンについて

Posted 24. February 2020

Programming #Android #BLoC #Dart #Flutter #iOS

はじめに

モバイルアプリで作りたいものがあり、只今技術選定中。せっかくなのでモダンなフレームワークを使いたいと考えていたところ、Flutterが今盛り上がっているっぽいので色々チュートリアルを読みながら勉強した。

今回は、色々チュートリアル巡りをしていて、業務レベルのアプリを作るときにも使えそうなBLoCパターンをまとめる。 ...


READ MORE

Time to read 2 min

AWS CodeDeployのHookスクリプトでソースを弄りたいとき

Posted 11. February 2020

Infrastructure #AWS #CodeDeploy #Hook #Laravel #shellscript

Hookスクリプトの実行場所

CodeDeployでソースをデプロイするときには、appspec.ymlでソースと実行するHookスクリプトを指定する。

version: 0.0
os: linux
files:
  - source: src
    destination: /tmp/project_root
hooks:
  AfterInstall:
    - location: hook/deploy.sh
      timeout: 300
      runas: root

ここで実行されるdeploy.shは、/tmp/project_root/hook/deploy.sh ではなく、/opt/codedeploy-agent/deployment-root/deployment-group-id/deployment-id/deployment-archive/hook/deploy.sh になる。

...

READ MORE

Time to read 1 min