タグ

ブックマーク / qiita.com (159)

  • 結構マジメにVimのテスト環境を整えてみる(Python用) - Qiita

    概要 現在に至るまで、UnitTestの実行はvim-quickrunかC-Zで戻ってからターミナル叩いてた。 現状だとVimでテスト駆動開発するのにつらみがある。 テスト用の設定を作り込むときが来たのだ。 ちな実行するのはPythonUnitTest 現状の問題点 :QuickRun QuickRunはテスト全体実行しかできない。と思う(テストランナーではないからね) 頑張ればできるのかもしれない。 時間のかかるテストとか遅いテストだと全体実行を何度もするのはつらい。一つのメソッドだけとかサクッとやりたい。 ターミナル実行 ターミナルに戻るのはだるい。 ターミナルでクラス単位やメソッド単位のテストを実行するには、パッケージ階層を打たなきゃいけない。つらい。 QuickFixでRedに飛びたいよね。ターミナルのエラー見る→Vim戻る→ターミナルにエラー見に戻るとか愚行だよね。 :make

    結構マジメにVimのテスト環境を整えてみる(Python用) - Qiita
    tokida
    tokida 2018/11/25
  • Zenject入門その1 疎結合とDI Container

    はじめに 最近、Zenjectについて導入を検討する人が増えてきました。今回はそのZenjectがそもそも何のためのライブラリなのかを解説します。 Zenjectとは 「Zenject Dependency Injection IOC」は依存性の注入のためのフレームワークと言われています。 よくある勘違い Zenjectを導入すると、次のようなことができるようになると思っている人が多いですが、それは間違いです。 Zenjectを入れると疎結合になる! Zenjectを入れるとテストが書きやすくなる! 何かよくわからないけど入れるとプログラムが書きやすくなる! 繰り返しますが、上記の認識は間違いです。 Zenjectの正しい説明 Zenjectは疎結合な設計やテストを書きやすくするためのライブラリではありません。 順序が逆で、疎結合やテストのことを考えて設計したときに発生してしまう問題を解決

    Zenject入門その1 疎結合とDI Container
    tokida
    tokida 2018/06/25
  • 新着メールを知らせてくれるGoogle Home - Qiita

    音声でGoogle Homeに指示し、家電を動かしたりTwitterを投稿したりすることは比較的簡単に行え、すでにたくさんの記事が投稿されています。 一方で、音声以外の外部からのイベント(メールを受信する、LINEを受け取る、センサーが反応するなど)でGoogle Homeが動作し、その内容をお知らせしてくれる投稿はまだほとんど無いようなので、以下の構成で試してみました。 1.Gmail 新規メールをGoogle Homeが動作するイベントとします。IFTTTを利用するので、Gmailの代わりに別のメールサービスやLINEなどもイベントとすることができます。 今回は簡単のためにGmailを利用し、新規に受信したメールの件名をGoogle Homeが読み上げます。FirebaseやGoogle Homeで同じGoogleアカウントを利用すると迷わず便利だと思います。 2.IFTTT IFTT

    新着メールを知らせてくれるGoogle Home - Qiita
    tokida
    tokida 2018/05/14
  • 多忙なプログラマーのための軽トラな英語リスニング&スピーキング - Qiita

    前回のコンピュータ業界でよく出る英語に続きリスニング&スピーキング編です。 こちらもよろしく^^ TOEIC900でも英語が話せない日人へ。まだワンチャンあるよ 頭がいい人ほど英語が話せない理由 なぜ日人はTOEIC900点でも英語が話せないのか? さて、2020年から小中学校の英語教育が強化されます。 今後、英語が得意な若手エンジニアが増えてくるでしょう。 人手不足、特に機械学習エンジニア不足のため 外国人エンジニアの受け入れやオフショア開発も増えそうです。 Qiitaはプログラミングに関するブログをとのことですが 今や英語力無くして機械学習、ブロックチェーンなどの最先端技術を 習得することはメモ帳でプログラミングするに等しくとても非効率です。 つまり良いプログラマは英語をうまく使いこなすのです。 英語力がないと、適切なメソッド名やコメントを書くこともできなければ読むことも出来ません

    多忙なプログラマーのための軽トラな英語リスニング&スピーキング - Qiita
    tokida
    tokida 2018/03/20
  • vimのおすすめしたい小技集 - Qiita

    set incsearch " インクリメンタルサーチ. 1文字入力毎に検索を行う set ignorecase " 検索パターンに大文字小文字を区別しない set smartcase " 検索パターンに大文字を含んでいたら大文字小文字を区別する set hlsearch " 検索結果をハイライト vimgrepとQuickfixで検索結果一覧を表示! 通常の検索も便利ですが、vimgrepとQuickfixを用いた検索は検索結果一覧を表示できるの便利です! 画面移動を行ってEnterを押すだけで対象の行まで移動してくれるので非常にオススメです! コマンド

    vimのおすすめしたい小技集 - Qiita
    tokida
    tokida 2018/03/07
  • 今さらだけど、Go言語に入門するための情報源 - Qiita

    Go言語の勉強を始めたばかりの超初心者なんで、プログラミング始めるに当たり、必要な情報を収集したものです。 Go言語とは Gogolangと呼ばれることも多い)は、2009年にRobert Griesemer、Rob Pike、Ken ThompsonによってGoogleで作成されたプログラミング言語です。 これは、AlgolとCに似ており、ガベージコレクション、制限された構造型、メモリセーフ、およびCSPスタイルの並行プログラミング機能が追加された、コンパイルされた静的型言語です。 (CSPスタイルとは、並行システムにおけるインタラクションのパターンを記述するための正式な言語の仕様に影響されているという事の様です。) Googleが開発したコンパイラやその他の言語ツールは、すべて無料のオープンソースです。 Go (プログラミング言語) JA.WIKIPEDIA Go (programm

    今さらだけど、Go言語に入門するための情報源 - Qiita
    tokida
    tokida 2018/01/13
  • GCPの課金データ取得のススメ - Qiita

    2017年3月にGoogle Cloud Platform (GCP) の価格改定があり、無料枠も広がりましたね。試しに使ってみている、という方も多いのではないでしょうか。 そんな方向けに、GCP課金データのエクスポート設定をしておくと良いですよ、という話を紹介します。しかも、今回の価格改定からはこの課金データの保存・取得が無料でできるようになっています1。 ここで紹介するGCPの課金データというのは、自分が管理している全プロジェクトの日ごと・サービスごとの使用量と費用がわかるようなCSVファイルのことです。 具体的には、次のような情報が格納されています。 3/21の xxxプロジェクトの Datastore小規模オペレーションは 63924リクエストで 0円でした このように課金額だけでなくサービスの利用量も記録されているので、無料ユーザーにとっても有用です。こうした情報の多くは管理画面

    GCPの課金データ取得のススメ - Qiita
    tokida
    tokida 2018/01/10
  • Raspberry Pi 3で作ったSDカードをRaspberry Pi Zeroで動かしたらnodejsで「Illegal Instruction」エラー - Qiita

    Raspberry Pi 3で作ったSDカードをRaspberry Pi Zeroで動かしたらnodejsで「Illegal Instruction」エラーRaspberryPiRaspi-ioRaspberrypi3raspberrypizero 状況 自宅の環境で、raspi3で試行錯誤してできあがったものをSDカード丸コピしてraspi zeroに移植して、運用。raspi3は次の何かの開発に使い続ける。 みたいなことをやってたら、raspi zeroでnodejs動くタイミングで、 Illegal Instruction とエラーが出た。 結論 raspi zeroにてdpkgでnodeとnpmを再インストールすれば、エラー出なくなった!! 解決まで 色々ぐぐってたところ、下記参考にあるように、ARMアーキテクチャの違いにより発生するらしい。なるほど〜 参考 https://ja.

    Raspberry Pi 3で作ったSDカードをRaspberry Pi Zeroで動かしたらnodejsで「Illegal Instruction」エラー - Qiita
    tokida
    tokida 2018/01/01
  • GCP Cloud Shell に Bluemix の CLIを入れる - Qiita

    curl -O https://public.dhe.ibm.com/cloud/bluemix/cli/bluemix-cli/0.6.3/IBM_Cloud_CLI_0.6.3_amd64.tar.gz cp -f "${DIR}/bin/NOTICE" /usr/local/Bluemix/bin/ cp -f "${DIR}/bin/LICENSE" /usr/local/Bluemix/bin/ cp -f "${DIR}/bin/bluemix" /usr/local/Bluemix/bin/ cp -f "${DIR}/bin/bluemix-analytics" /usr/local/Bluemix/bin/ cp -f "${DIR}/bin/cfcli/cf" /usr/local/Bluemix/bin/cfcli/ cp -f "${DIR}/bx/bash_aut

    GCP Cloud Shell に Bluemix の CLIを入れる - Qiita
    tokida
    tokida 2017/12/19
  • AnsibleでGCP のVMインスタンスを操作する - Qiita

    やりたいこと Ansibleを利用してGCPのインスタンスを操作するさいに、Dynamic Inventoryの機能でインスタンス名を動的に取得する Dynamic Inventoryの機能を使わないとインスタンスのIPアドレスをhostsに登録しておかないといけないです。 Cloud上のサーバを扱うためには一般的な方法(Cloud上のサーバはすぐアドレスが変わる) AnsibleのContrib/inventoryに様々な接続先のスクリプトが用意されている ansible-playbook -i AAAA としてスクリプトを指定する使い方が一般的 準備 必要なファイルの導入 この環境は Cloud Shellを利用しています * https://qiita.com/tokida/items/5fd4e50f6d983b9c52f6

    AnsibleでGCP のVMインスタンスを操作する - Qiita
    tokida
    tokida 2017/12/11
  • GCP Cloud Shell 上から Ansibleを利用する - Qiita

    使い始めたばかりで Cloud Shell事がまだ理解できていないかもしれませんので誤りがあるかもしれません。 やりたいこと Cloud Shell上でAnsibleの環境を作る Home Directoryが5GByteあり永続的に利用できるとのことなので全てのモジュールがローカルにインストールできればずっと使えるだろうという安直な考え https://cloud.google.com/shell/docs/?hl=ja 導入 pyenvの導入 curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash

    GCP Cloud Shell 上から Ansibleを利用する - Qiita
    tokida
    tokida 2017/12/11
  • わずか300円でIoTボタンを作る方法 - Qiita

    こんなの見つけたよ 100円ショップで物色していたら、こんなものを見つけたよ。100円ショップなのに300円※だったけど、いろいろ遊べそうなので思わず衝動買いしてしまったよ。 (※あとでAmazonをみてみたら1円から売ってました) Bluetoothでスマホにコマンドを送れるってことは、スマホではなくラズパイとBluetoothでつなげられれば、物理ボタンとWebを連携させるIoTっぽいことができそうだね。例えばボタンを押すとAmazonで注文できるなんちゃってDashボタンとか。今回は、LINEにメッセージをPush通知するLINEボタンをつくってみるよ。 準備するもの Raspberry-Pi3 (BluetoothがついてればOK) リモートシャッター (AB Shutter 3) つくりかた ラズパイとリモートシャッターとの接続 まずはラズパイとリモートシャッターをBluetoo

    わずか300円でIoTボタンを作る方法 - Qiita
    tokida
    tokida 2017/11/13
  • マイクロサービスにおける障害と Failurewall - Qiita

    こちらは Scala Advent Calendar 2015 25日目の記事です。 Scalist の皆さん、一年間お疲れさまでした。 当記事の目的はマイクロサービス(に限らないですが)における失敗の怖さについて説明することと、それを克服するためのライブラリ、Failurewall を紹介することです。 障害は怖い 障害の連鎖 現代的な Web アプリケーションは多くの依存を抱えています。MySQL のようなデータベースに依存することもあれば、Twitter API のような外部サービスに依存することもあるでしょう。マイクロサービスを実践している環境では社内 Web API に依存していたり、あるいは他のシステムが自分のシステムに依存していたりするかもしれません。 このように優秀なミドルウェアや Web API を組み合わせることで、アプリケーションは高い性能を発揮したり、豊かな機能を提

    マイクロサービスにおける障害と Failurewall - Qiita
    tokida
    tokida 2017/11/11
  • Docker for Mac で Rancher を動かす - Qiita

    Rancher が Docker for Mac をサポートしていないらしいのですが、Virtualboxで別なDockerを無駄に立ち上げたくないし、なぜMacだと駄目なのか納得もできなかったので試してみました。 動かすことができたら、そのRancherを使って簡単なサービスを構築してみたいと思います。 先ずは以下の記載。Docker for Mac はサポートされてないと明記されていますが、理由は書いてありません。。 see: Quick Start Guide - docs.rancher.com 結論 結論から言うと動きました。これと言って問題は出ていません。 気を付ける所は、以下ぐらいでした。 rancher/server コンテナのMac側ボリュームマウントPATHを変更する Rancherのホスト登録URLに 127.0.0.1 は使わない(Docker for Mac の原

    Docker for Mac で Rancher を動かす - Qiita
    tokida
    tokida 2017/10/30
  • 変数名や関数名に困った時に役立つSlackbotを作った - Qiita

    つくったもの codic "翻訳したい言葉"をSlackで発言すると翻訳してくれるbotを PythonSlackbotライブラリとcodicAPIを使用して作成した。 Slackbotライブラリ Slackbotライブラリの使い方は下記を参考にした。 PythonslackbotライブラリでSlackボットを作る PythonSlackbotを作る(1) codic codicは、プログラマー・システムエンジニアのためのネーミングツール ユーザー登録をするとフリープランでも100/hリクエストを下限とするAPIが公開されているので、こちらを利用する。 またエディタやIDEのプラグインも用意されている。 (わざわざbotに翻訳してもらわなくてもプラグインを利用すればいい) 実装 codicのアクセストークンを取得する ユーザー登録後、プロフィールからアクセストークンの取得ができる。

    変数名や関数名に困った時に役立つSlackbotを作った - Qiita
    tokida
    tokida 2017/10/28
  • やばい、iOSにネイティブアプリ要らなくなるかも。SafariもPWAに対応する可能性 - Qiita

    これ以上は長くなるため後述. Chromeは既に,Safariもようやく 上記の通り,Service WorkersがPWAでも最重要な機能の一つである.Chromeでは既に対応済み. しかしSafariが対応しておらず,世間的にはモチベーションの上がらない状況であった(やちまもその一人である). Safariにおいて,Service Workersの実装状況 No active development が Under Consideration になったのは2015/12/041のことである. 20ヶ月という永遠とも呼べる時を経て,2017/08/032にようやく In Development となったわけであった. ちなみにMicrosoft Edgeでは既に開発中34である. だから何なのか SafariにService Workersの実装がなされると,一気にウェブアプリへの移行が

    やばい、iOSにネイティブアプリ要らなくなるかも。SafariもPWAに対応する可能性 - Qiita
    tokida
    tokida 2017/10/20
  • Awesome Python:素晴らしい Python フレームワーク・ライブラリ・ソフトウェア・リソースの数々 - Qiita

    元記事: Awesome Python Awesome List in Qiita Awesome Ruby Awesome Java Awesome JavaScript Awesome Node.js Awesome Go Awesome Selenium Awesome Appium 管理パネル 管理インタフェース用ライブラリ ajenti - サーバ用管理パネル. django-grappelli - Django 管理インターフェースのためのジャズスキン. django-jet - 改良された機能を備えた Django 管理インターフェース用の最新のレスポンシブテンプレート. django-suit - Django Admin インターフェースの代替 (非商用の場合のみ無料). django-xadmin - Django 管理者のドロップイン置換. jet-bridge -

    Awesome Python:素晴らしい Python フレームワーク・ライブラリ・ソフトウェア・リソースの数々 - Qiita
    tokida
    tokida 2017/10/19
  • SORACOM Airを使ってリモート操作可能な赤外線リモコンを作ってみた - Qiita

    このエントリーSORACOM Advent Calendar 2016 12/21分です。 ソラコムインターンエンジニアの岩瀬です。 今回は、SORACOM Air および SORACOM Beamを使ってリモート操作可能な赤外線リモコンを作成していきます。 アーキテクチャ 準備するもの SORACOM Air USB ドングル Raspberry Pi PC(MacWindowsなど) SDカードリーダー/ライター (PC体にSDスロットがある場合には不要) Micro SD カード (8GB以上が望ましい) ※もし初代Raspberry Piを利用する場合には、通常サイズのSDカードを用意して下さい 赤外線受信モジュール(秋月電子通商で販売 OSRB38C9AA) 赤外線LED(秋月電子通商で販売 OSI5FU5111) ブレッドボード(秋月電子通商などで販売) 抵抗(100Ω程度

    SORACOM Airを使ってリモート操作可能な赤外線リモコンを作ってみた - Qiita
    tokida
    tokida 2017/10/17
  • Slack経由で家の外からエアコンをon, offできる装置を、Raspberry Piで作ってみた。(しかも御坂美琴ちゃんが応答してくれる) - Qiita

    Slack経由で家の外からエアコンをon, offできる装置を、Raspberry Piで作ってみた。(しかも御坂美琴ちゃんが応答してくれる)電子工作RaspberryPiSlack赤外線リモコンラズベリーパイ 背景 今年の冬は寒い。 最近新宿のボロアパート(立地だけで選んだ)に引っ越して以来、断熱性のカケラもないくそ寒い家に帰るのが嫌でしょうがなかった。 幸いにして(?)エアコンはあるので、家に入ってから暖房をつけるのだが、暖まるまではそこそこ時間がかかり、その間はコートも脱がず凍えるしかない。 そこで、かねてから欲しいと思っていたインターネット経由でエアコンをon, offできる装置を作ることにした。 電子工作は全くの初心者なので、使うのはとっかかりの簡単そうなRaspberry Piにした。 また、一人の家に帰る寂しさを紛らわせるために、最近エンジニアに人気のチャットツールslack

    Slack経由で家の外からエアコンをon, offできる装置を、Raspberry Piで作ってみた。(しかも御坂美琴ちゃんが応答してくれる) - Qiita
    tokida
    tokida 2017/10/17
  • Linuxのプロセス間通信 - Qiita

    この記事について LinuxのIPC(プロセス間通信)を紹介します。 プロセス間通信とは Inter Process Communication(IPC)はプログラムの実行単位であるプロセスの間で行われるデータ交換のことを指します。プロセスの依存関係は可能な限り疎結合になるようOSで管理されています。そのため、IPCLinux OSの機能を経由して行う必要があります。 OSがプロセスに提供するデータ交換の方法はひとつだけではありません。それぞれ特徴のある多彩な方法を提供しています。 ここで紹介するのは以下の5つです。 共有メモリー セマフォ マップドメモリー パイプ ソケット通信 (他にありましたらコメントで教えていただければ幸いです。) それでは、見ていきましょう。 共有メモリ プロセス間で同じメモリを共有します。 共有メモリの最大の利点はそのアクセススピードにあります。 一度共有メモ

    Linuxのプロセス間通信 - Qiita
    tokida
    tokida 2017/10/11