タグ

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

  • Go 1.13時代のエラー実装者のお作法 - Qiita

    Goアドベントカレンダーその2の3日目のエントリーです。 Goではエラー処理の方法としてはプリミティブな方法しか提供しておらず、他の言語のユーザーからやいのやいの言われてきました。Go2でそれを改善するぞからプロポーザル募集でいろいろ意見を募っては二転三転みたいな感じで、Go 1.13ではだいぶおとなしい感じに機能拡張されました。基的な方向性としてはgithub.com/pkg/errorsから少し機能を取り込んだ感じです。 すでに、数多くのエントリーやらプレゼンテーションやらでGo 1.13の利用者視点でのerrorsの変更点については触れられてきましたので詳しくはそちらをご覧ください。サマリーとしては下請けのパッケージで出てきた詳細なエラーをラップして扱うための便利な機構がいろいろ追加された感じです。 これらでは主にアプリケーションコードの実装者というかライブラリの利用者向けの説明が

    Go 1.13時代のエラー実装者のお作法 - Qiita
    nkwhr
    nkwhr 2019/12/10
  • サイクルコンピューターをガチで作ってみたら、割とできてしまったという話 - Qiita

    ※1 いわゆる移動時間(moving time)です。休憩込みの所要時間(グロス時間)は15時間かかっています。 ※2 Garmin Connectより。 ※3 RWGPS地理院標高 - Chrome拡張機能を用いて正確に見積もると1,983 mです。 バッテリーの内装、ケースの作成、細かい機能の作り込み、市販品にはない機能の作成が十分にできておらず、まだ完成には至っていませんが、「意外と作れてしまい、驚き」というのが率直な感想です。 個人がそれぞれの嗜好に合わせてデバイスを作れる時代は、少しずつやってくるのかもしれません。 なぜ作ろうとしたか サイクリングという趣味を広く長く愉しむ過程、また、Linuxや多少のプログラミングの経験があるというバックグラウンドが合わさって、この形になりました。 サイクルコンピューターの進化 元々、サイクルコンピューターはモノクロ液晶にスピードや距離、時計を

    サイクルコンピューターをガチで作ってみたら、割とできてしまったという話 - Qiita
    nkwhr
    nkwhr 2019/04/26
  • Cloud Firestoreを実践投入するにあたって考えたこと - Qiita

    はじめに Firebase Realtime DBを実践投入するにあたって考えたことを読んで頂いてありがとうございます。 多くの方から「いいね」を頂いて、今回のこの記事を書くモチベーションになりました 当にありがとうございました! さて、CloudFirestoreは、Firebase Realtime Databaseとは全く違うデータベースです。特にSubCollectionやQueryが導入されたことにより、リレーションシップの設計に関して大きく異なります。 この記事では、主にCloudFirestoreにおけるリレーションシップの設計方法から、アプリ・CloudFunctionsに至るまでを幅広く解説して行こうと思います。 次の記事ではデータベースの歴史を解説しています。 RDBの限界とNoSQLの登場 Cloud Firestoreでの開発について 私の経験上確実に断言できるこ

    Cloud Firestoreを実践投入するにあたって考えたこと - Qiita
  • SF Mono を使って最高のプログラミング用フォントを作った話 - Qiita

    みなさんターミナルは使ってますか? Terminal.app? iTerm2? Hyper? それとも他の何か? それではフォントは何を使っていますか? Menlo? Consolas? Ricty? 今日はそんなお話です。 対象とする読者 ターミナルやエディタでカコイイ等幅フォントが使いたい人。 既存のフォントを FontForge + Python で色々いじって遊びたい人。 プログラミング用フォント SF Mono Square ずっと Ricty を使っていたのですが、色々こだわる余り自分でフォント作ってしまいました。作ったものをそのまま配布するのはライセンス上できませんが、Homebrew で誰でも導入できるようにしています。 brew tap delphinus/sfmono-square brew install sfmono-square # /usr/local/opt/

    SF Mono を使って最高のプログラミング用フォントを作った話 - Qiita
    nkwhr
    nkwhr 2018/12/25
    最高だった
  • Electronより軽くて手軽なlorca製デスクトップガワアプリのススメ - Qiita

    最近ScrapboxデスクトップPWAとして使い始めました。 やはりデスクトップアプリとしてDockに表示されるだけで体験はすごく良くなるなー PWAもっといろんなサービスで使えるようになってほしいです(オフライン動作とかとりあえず要らないんでアプリとしてインストールだけでもさせてほしいなぁ) Webサービスデスクトップアプリ化で感じる利点は、具体的にはショートカットやSpotlightで呼び出しやすいといったことくらいなのですが、OSのインタフェースから自然に使えるという体験はヘビーユースしているWebサービスを更にヘビーに使うきっかけになりえるなと。 自分自身、よく使うWebサービスは個別アプリにしたいと日頃から思っており、Electronを使ってよく使うWebサービスは個人利用用にアプリ化したりしてました。 ただElectronはアプリサイズが大きいのと、Gmail等一部のWeb

    Electronより軽くて手軽なlorca製デスクトップガワアプリのススメ - Qiita
    nkwhr
    nkwhr 2018/11/23
  • 気楽にDynamoDBを使おう - Qiita

    Merry Christmas! gureguです。kamiやmogiの作者です。 最近開発しているDynamoDBのライブラリーを紹介しようと思います。 DynamoDBとは DynamoDBAmazon Web ServicesのNoSQLデータベースです。安くてスケールしやすいのが特徴です。DynamoDBの基知識については、@kenichi_nakamuraさんのこの記事を読んでください。 aws-sdk-go AWSの公式がライブラリー。最近やっと1.0になりました!aws-sdk-goでは、DynamoDBへの問い合わせはできるが、かなり面倒臭いことをやらなきゃいけない。公式のライブラリーはポインターだらけで、データのMarshalとUnmarshalで苦労することがあります。 Introducing dynamo dynamoは、DynamoDBを使いやすくするライブラリ

    気楽にDynamoDBを使おう - Qiita
  • ソートアルゴリズムを極める! 〜 なぜソートを学ぶのか 〜 - Qiita

    NTT データ数理システムでリサーチャーをしている大槻 (通称、けんちょん) です。 今回はソートについて記します。 0. はじめに データ構造とアルゴリズムを学ぶと一番最初に「線形探索」や「ソート」が出て来ます。これらのテーマは応用情報技術者試験などでも頻出のテーマであり、アルゴリズムの Hello World とも呼ぶべきものです。 特にソートは、 計算量の改善 ($O(n^2)$ から $O(n\log{n})$ へ) 分割統治法 ヒープ、バケットなどのデータ構造 乱択アルゴリズムの思想 といった様々なアルゴリズム技法を学ぶことができるため、大学の授業でも、アルゴリズム関連の入門書籍でも、何種類ものソートアルゴリズムが詳細に解説される傾向にあります。記事でも、様々なソートアルゴリズムを一通り解説してみました。 しかしながら様々な種類のソートを勉強するのもよいが、「ソートの使い方」や

    ソートアルゴリズムを極める! 〜 なぜソートを学ぶのか 〜 - Qiita
  • GitHub APIから学ぶ次世代のAPI実装方式GraphQL - Qiita

    最近公開されたGitHubAPIは、GraphQLという形式に対応しました。今後はこちらが主流になっていくようで、既存のREST APIからGraphQLへのマイグレーションガイドも提供されています。 今回は、このGraphQLについて、実際にGitHubAPIを叩きながらその仕組みを解説していきたいと思います。 GraphQLとは 歴史 GraphQLは、Facebookの中で2012年ごろから使われ始めたそうです。その後2015年のReact.js Confで紹介されたところ話題となり、同年"technical preview"のステータスでオープンソースとして公開されました。その後仕様が詰められ、2016年9月に晴れて"preview"を脱し公式実装として公開されました。これと同じタイミングで、GitHubからGraphQLバージョンのAPIが公開されています。 このあたりの経緯

    GitHub APIから学ぶ次世代のAPI実装方式GraphQL - Qiita
    nkwhr
    nkwhr 2017/06/22
  • [Deprecated] Go CodeReviewComments 日本語翻訳 #golang - Qiita

    注意 記事は以降更新されません。 https://knsh14.github.io/translations/go-codereview-comments/ こちらに移動しました。 以前にGoを書く機会があったときにレビュアーに「俺に持ってくる前にこれを読んで直してからこい!」 と言われたので、読んだ証拠に翻訳しました。 Go Code Review Comments 原文 go fmt あなたのコードに gofmt を走らせると、自動的に機械的に直すことのできるスタイルの大部分を修正してくれます。 世にあるGoのコードのほとんどすべてが gofmt を使っています。 この文章の残りは機械的に直すことのできないポイントについて解説します。 代わりに goimports を使う手段もあります。 gofmt に加えて必要に応じてimport内に空行をつけたり消したりする機能があります。 Co

    [Deprecated] Go CodeReviewComments 日本語翻訳 #golang - Qiita
    nkwhr
    nkwhr 2017/03/03
  • 俺が悪かった。素直に間違いを認めるから、もうサービスクラスとか作るのは止めてくれ - Qiita

    ちなみに、最初に結論だけ言っておくと、まずSandi Metzの「オブジェクト指向設計実践ガイド」を読め、という話です それだけで終わってしまいたい気持ちはあるが、不親切過ぎるしもうちょっとRails向けの話を書こうと思う。 ただ言いたいことは、よく分かってないのに使うのは止めろということ。 自分もで書いたりした手前、それが参考にされた結果なのかもしれないが、世の中には当に酷いクラスが存在するもので、雑にサンプルで書くと以下の様な感じのコードが存在したりする。 class HogehogeService # Hogehogeはモデル名まんま def process(hogehoge, option_a: nil, option_b: nil, option_c: false) history = hogehoge.histories.last unless hogehoge.activ

    俺が悪かった。素直に間違いを認めるから、もうサービスクラスとか作るのは止めてくれ - Qiita
    nkwhr
    nkwhr 2016/12/16
  • 次世代監視の大本命! Prometheus を実運用してみた - Qiita

    こんにちは!freeeでインフラゾンビをやっている @sugitak です。ゲームではレベルを上げて物理で殴る派です。 freee ではたまにインフラエンジニアの数が減るのですが、その減ったインフラエンジニアはインフラゾンビへと進化し、社内を闊歩します。インフラゾンビは主に開発チームに所属して、アプリっぽいインフラの仕事をインフラからアプリ側へと持っていきます。デプロイとか、Dockerとか、Jenkinsとかの、いわゆる DevOps 系のところですね。こうすることで開発者は手を出せるものの自由度が増えるし、インフラはより来のインフラとして純度を上げていける、 so, win-win ってわけです。 さて、そんなわけで監視です。freee Engineers Advent Calendar 2016の9日目の記事として、 Prometheus による監視が最高なのでみんなもっと使おうと

    次世代監視の大本命! Prometheus を実運用してみた - Qiita
  • Amazon Dash ButtonをただのIoTボタンとして使う - Qiita

    2016年12月5日より、Amazon Dash Buttonで利用できるようになりました。これは、ボタンを押すだけでAmazonから一部の商品(天然水, ひげそりなど)が購入できるようになるという端末です。 今回はこのAmazon Dash Button(※ 以降ボタンと呼びます)を、押したらHTTPリクエストが飛ぶボタンとして利用し、おうちハックなどで利用できるようにしていきます。 とりあえずボタンを押したらSlackにWehbook飛ばすくらいまでやりました。 ボタンの仕組み ボタンは電源がオフされているので、以下のような順序で動きます。 電源ON 同時に設定されたWi-Fiネットワークに接続 IP重複検知のためにARPプローブ送信 IPが重複していたらIP再設定?(自信ない) Amazonへ購入処理の実行(HTTP???) 参考 : How I Hacked Amazon’s $5

    Amazon Dash ButtonをただのIoTボタンとして使う - Qiita
    nkwhr
    nkwhr 2016/12/06
  • 開発しやすいRails on Docker環境の作り方 - Qiita

    最近、Rails界隈でDocker使い始めました、という話を聞く機会が増えてきたので、自分が開発環境整備用に構築したDockerの設定をまとめておく。 ちなみに、production運用については以前書いたので適当に探してくださいw 結論から書いておくと、volumeをちゃんと活用すればいい、ってだけの話です。 まず、番用と開発用のDockerfileは分けた方が良い。一つでやろうとするとどうにも無理がでるので。 自分はDockerfileとDockerfile-devというものを用意している。 docker-composeはほぼ必須です。少なくともrailsプロセスとDBだけでも二つは必要だし、Dockerfileを分けてると事故るので。 Dockerfileはこんな感じ。 FROM mybase:ruby-2.3.1-debian RUN echo "deb http://http.

    開発しやすいRails on Docker環境の作り方 - Qiita
  • App Engine Scaling Config - Qiita

    App Engineは、Deploy時にModule Version毎にスケーリング設定を行うことができます。 結構、細かい値が設定できるのだけど、いまいちどんな作用があるのか分かりづらいものもあります。 この記事では、スケーリング設定の値にどんな作用があるのかを解説します。 Moduleって?という方は GAE ModulesをSimpleに使う を見てください。 3つのスケーリング設定概要 App Engineのスケーリング設定は3つ存在します。 それぞれ特性が違うので、Moduleでどのような処理をしたいのかによって、選択するスケーリング設定を変えます。 Automatic Scaling Request数に合わせて自動でインスタンスの追加、削除を行う設定。 App Engineでよくオートスケールが特徴と言われるのは、主にこの設定を指している。 たくさんの小さなRequestをさば

    App Engine Scaling Config - Qiita
    nkwhr
    nkwhr 2016/10/06
  • 翻訳: WebAPI 設計のベストプラクティス - Qiita

    これは Enchant の開発者である Vinay Sahni さんが書いた記事「Best Practices for Designing a Pragmatic RESTful API」1を、ご人の許可を得て翻訳したものです。 RESTful な WebAPI を設計しようとすると、細かなところで長考したり議論したりすると思います。また、他の API に倣ってやってはみたものの、当にそれでいいのか、どうしてそうしているのか分からない、何てことも少なくはないと思います。 この記事では、そのようなハマリどころについて Vinay さんなりの答えを提示し、簡潔かつ明快に解説してくれています。 今後 WebAPI を設計される方は、是非参考にしてみてください。 なお、誤訳がありましたら編集リクエストを頂けると幸いです。 まえがき アプリケーションの開発が進むにつれて、その WebAPI を公

    翻訳: WebAPI 設計のベストプラクティス - Qiita
  • Ruby製のシンプルなワークフローエンジンRukawaの紹介 - Qiita

    Bigqueryを使ったバッチジョブを色々と実行しているのですが、Rakeで複雑な依存関係を管理したり、並列実行させたりするのが辛くなってきたのでRukawaというワークフローエンジンを自作しました。 自作したのは、RailsプロダクトにAirflowとかLuigiとかAzkabanとか入れるにはちょっと重厚過ぎる感じだったのと、Rubyで書ける方が楽で良いやという理由からです。 RukawaとはRUby KAntan Workflow Assistantの略です(後付け) (当はミッチーとか水戸の方が好きなんだけど良い名前が浮かばなかった) 実際は、並列実行を可能にして書き方を変えてみたRakeとそんなに大差無い。 Rukawaの機能 ジョブの定義 まず実行したい処理をジョブクラスに記述します。 module ExecuteLog def self.store @store ||= {

    Ruby製のシンプルなワークフローエンジンRukawaの紹介 - Qiita
    nkwhr
    nkwhr 2016/03/23
  • 複数databaseのmigration - Qiita

    複数のdatabaseもきちんとmigrationを使って管理したいです。 たとえば foo というデータベースを追加で管理したい場合、以下のようなrakeタスクを作ることで良い感じに運用できます。 namespace :foo do desc "Configure the variables that rails need in order to look up for the db configuration in a different folder" task :set_custom_db_config_paths do ENV['SCHEMA'] = 'db_foo/schema.rb' Rails.application.config.paths['db'] = ['db_foo'] Rails.application.config.paths['db/migrate'] =

    複数databaseのmigration - Qiita
  • Rails 4系からRails 5.0.0.beta1にアップデートした時に引っかかったこと - Qiita

    自分が趣味で開発しているKPTBoardをRailsの4系からRailsの5.0.0.beta1にアップデートした時に引っかかった点で他のアプリでもアップデートする時にありそうなことを書きます。 deviseとcapybaraはgithubのmasterブランチから取得しないと動かなかった gem 'devise', github: 'plataformatec/devise' gem 'capybara', github: 'jnicklas/capybara'

    Rails 4系からRails 5.0.0.beta1にアップデートした時に引っかかったこと - Qiita
    nkwhr
    nkwhr 2016/01/05
  • railsでHR領域やバックオフィス関連の新サービスを作ろうと思ったら役立つかもしれないgem8選 - Qiita

    タイトルが対象を絞りすぎててもはや誰にも見てもらえてない疑惑もありますが。。 MoneyForwardでは、【MFクラウド】というサービス名で、会計・請求書・消し込み・決済・給与・マイナンバー・経費、といった、バックオフィス業務を最適化するサービスを運営しています。 バックオフィス業務は日固有の法律に対応する必要があり、法律由来の一般的ではないロジックへの対応を求められる事がよくあります。 今回はそんなHR領域やバックオフィス関連のサービス開発に、もしかしたら役立つかもしれないgemをご紹介します。 era_ja tomiacannondale/era_ja 和暦を扱うgemです。 給与や会計サービスなどで提出帳票などを印字する際には必須となるgemです。 使い方はREADMEを読んでもらった方が早いですが、DateやTimeに和暦変換の to_era methodが生えます requi

    railsでHR領域やバックオフィス関連の新サービスを作ろうと思ったら役立つかもしれないgem8選 - Qiita
  • プログラマ向けニュースキュレーションサービスを作ってみた話 - Qiita

    はじめに 2015年度新卒でドワンゴに入社しました@ytanakaといいます。普段はAndroidアプリ開発を主に担当していますが、大学院時代は増井俊之先生のもとでユーザインタフェースと情報推薦システムの研究をしていました。 ドワンゴに入社後、それまでの研究を活かしプログラマ向けのニュースキュレーションサービスMenthas(メンタス)を個人開発しました。今回はせっかくの機会なので、開発の経緯と概要そして仕組みについて述べたいと思います。 追記: 続編を書きました こちらの記事は以前のバージョンの内容になります。現行のMenthasの仕組み・構成は以下にまとめています。 約3年かけてプログラマ向けニュース推薦アプリを作り直した話 背景 さて、この記事をご覧になっているのはプログラマの方が多いと思いますが皆さん普段どうやって情報収集をしていますか? 自分の見聞きする限りではTwitterやは

    プログラマ向けニュースキュレーションサービスを作ってみた話 - Qiita
    nkwhr
    nkwhr 2015/12/10