2017/08/25

golangでSQLite3を使ってデータベースを操作する方法まとめ

golangでツールをつくるためにデータベースがほしかった。
MySQLやPostgreSQL、SQL Server、Oracleなど多種多様なDBMSがあるのだが、環境構築に消耗したくないということでSQLite3を選択。

小規模、もしくは大規模なサービスをつくるならORMを使うより直接SQLite3を操作したほうが問題が少なくすみそう。
ということで、当記事ではgolangからライブラリなどを使わずSQLite3を操作する方法をまとめる。
※ ただしSQLite3のドライバは使う


環境は以下のとおり

  • Mac OSX
  • go v1.8.3
  • sqlite3 v3.8.5

2017/08/18

[Blogger]SyntaxHighlighterからhighlight.jsに移行しDropboxでホスティングする

当ブログ(Blogger)ではシンタックスハイライトを実現するために、SyntaxHighlighterを使っている。「Blogger シンタックスハイライト」でググるといっぱいでてくるので、多くのBloggerユーザに使われていると思う。

しかし、最近SyntaxHighlighterに不満を覚えてきた。

  • 読み込みファイルが多い
    • v3でダイナミックローディングが実装されたけど詳細は不明
  • httpsにするとシンタックスハイライトされない
  • 長期間メンテナンスされていない
  • 比較的新しい言語がサポートされていない
    • TypeScript
    • Golang
    • など
行番号や行のハイライト、ファイル名の追加など、機能は充実しているだけにもったいない。そこで多くの言語をサポートしているhighlight.jsに移行してみた(執筆時点では順次移行中)


ちなみにCDNで提供されているライブラリはハイライトしてほしい言語が入っていなかったので、自分のDropboxでホスティングする。

2017/08/15

テレワーク・デイで2週間リモートワークして見えてきた課題と期待を共有したい

2017年7月24日〜8月4日、総務省企画のプロジェクト「テレワーク・デイ」が開催されていたのはご存知だろうか?
きたる2020年7月24日は東京オリンピックの開会式。交通機関や道路の混雑をさけるため、始業〜10時半までは一斉にテレワークして混雑緩和に努めましょうという企画だ。

弊社もテレワーク・デイ実施企業になっており、せっかくなのでお盆の帰省も兼ねて7月24日〜8月4日までテレワーク@実家を実施した。

実際に長期間のテレワークを体験したことで課題が見えてきた。今後「多様な働き方が実現する社会」を期待して、体験したことを共有したい。

(弊社では「リモートワーク」という言葉を使っているのだが、企画にあわせて以降「テレワーク」で統一する)

2017/08/08

Go開発環境構築(VSCode, gvm, delve, dep)からHello Worldするまで

仕事でGo言語を使う予定ができたので、本腰を入れて学んでみようと思う。当記事では、私が盛大に躓いたgolangの開発環境構築、戸惑った「しきたり」とHello worldするまでをまとめる。

開発環境・バージョン

  • Mac OSX
  • VSCode 1.14.2
    • 拡張機能: go 0.6.63
  • golang 1.8.3
    • gvmでインストールする
  • gvm 1.0.22
    • golangのバージョン管理ツール
    • Pythonでいうpyenv, Node.jsでいうnvm
  • delve 1.0.0-rc.1
    • デバッグツール
    • VSCodeからgolangを実行するために使う
  • dep 0.2.0
    • パッケージ管理・依存関係管理ツール
    • JavaScriptでいうnpm

2017/08/03

CSSアニメーションでMarqueeを実装し、新幹線車内メディアの電子文字広告を再現する

2000年代のホームページで多用されていたMarquee要素(文字が動くエフェクト)の仕様はすでに廃止されており、いずれブラウザ上で表示できなくなってしまう。
しかし、文字を動かしたい需要はまだ残っている(はず)

代替としてCSSアニメーションをつかったMarqueeの実装方法がある。もちろんJavaScriptは不要だ。
ついでにサンプルで、Marqueeを使った新幹線車内メディアの電子文字広告をつくってみた。

2017/08/01

[Node.js]cheerio-httpcliでスクレイピングしてjQueryライクなDOM操作をする

会社ではジョギングサークルに所属していて、東京体育館周辺で活動している。久しぶりに活動に参加しようと東京体育館に行ったところ休館でロッカーが使えなかった。

結局その日は活動できず、1時間くらい雑談しているなかで「休館日を監視しよう!」という話になり、スクレイピングで休館日一覧を取得できないか考えた。

サーバサイドで動かしたいので、言語はNode.jsを選択。
しかしNode.jsではDOM操作ができない。そこでcheerio-httpcliをつかってjQueryライクなスクレイピングをしようと思う。