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

  • import * as 構文とパフォーマンス最適化 - Qiita

    JavaScriptには、import * as という構文があります。これは、インポート先のモジュールの中身全部をオブジェクト(モジュール名前空間オブジェクト)として取得できる構文です。 import * as mod from "./some-module"; console.log(mod.foo, mod.bar); たまに、「この構文を使うとTree Shakingが効かなくなる」といった説明が見られることがありますが、必ずしもそうではありません。そこで、この記事ではimport * as構文とパフォーマンス最適化に関連する正しい知識と、その背景をご紹介します。 webpackで検証してみよう Tree shakingを行うのはモジュールバンドラであることが知られています。そこで、webpackを使って色々と構文を検証してみましょう。今回は次のような設定を用います。これは最適化を

    import * as 構文とパフォーマンス最適化 - Qiita
    ichizin
    ichizin 2022/05/29
  • 文系大学生が機械学習を0から始めて9か月でKaggle銀メダルを獲得するまで - Qiita

    今回自分は0から始めて9か月でコンペで銀メダル(6385分の249位,top4パーセント)を獲得できました。 自分の今までの流れをおさらいしていきます。 それまでの僕のスペック 数3と行列はほぼ何も分からない プログラムはrubyjavaはそこそこに書ける、pythonは知らん 勉強の流れ 12月末 機械学習を始めると決心、とりあえず何をやればいいかよく分からないがpythonが必要らしいのでprogateでpythonをやってみる 1月 数学が必要らしいので、行列と微分積分について1から学んでみる。今から考えると、行列の基礎をさらえたのは良かったですが、それ以外はこの時間は絶対いらなかったなと考えています。 微分積分 行列 2月 Udemyで多くの講座を受ける、詳細は以下の記事にまとまっています https://qiita.com/HayatoYamaguchi/items/c8051

    文系大学生が機械学習を0から始めて9か月でKaggle銀メダルを獲得するまで - Qiita
    ichizin
    ichizin 2019/10/07
  • aws-mfa で MFA 強制した IAM ユーザーの AWS アクセスキーを簡単に更新する - Qiita

    背景 IAMユーザーにMFA強制して、アクセスキーを発行すると、物事が煩雑になります。AWSによると以下のようにやる必要があります。 MFA トークンを使用して、AWS CLI 経由で AWS リソースへのアクセスを認証する方法を教えてください。 aws sts get-session-token が返してきたJSONを jq でバラして環境変数にセットするなど、ワンライナーで頑張りようはありますが、複数AWSアカウントにまたがると、かなり厳しいものがあります。 aws-mfa というPython製CLIツールを使うと、取り回しがかなり簡単になりますので紹介します。 つかうもの https://github.com/broamski/aws-mfa インストール手順 IAM の設定 IAMユーザーを作成します MFA強制します アクセスキーを発行します awscli の設定 さきほど発行し

    aws-mfa で MFA 強制した IAM ユーザーの AWS アクセスキーを簡単に更新する - Qiita
    ichizin
    ichizin 2019/10/02
  • 至高のDockerイメージ生成を求めて -2019年版- - Qiita

    この記事は@yugui氏の書いた至高のDockerイメージ生成を求めてに感謝しつつ、記事が投稿された当時には無かったさまざまな事情を組み込んで再度まとめたものである。 良いDockerイメージ 良いDockerイメージとは何だろうか。Dockerの利点は次のようなものだから、それを活かすイメージが良いものであるに違いない。 ビルドしたイメージはどこでも動く 適切にインストールされ、設定されたアプリケーションをそのままどこにでも持っていける。 コンテナ同士が干渉し合うことはないので、任意のイメージを互いに配慮することなく柔軟に配備し実行できる 必要のないサービスがコンテナ内で走っていないので、セキュリティの向上に資する イメージの転送が効率的である ベースイメージ部分は一度送ればいちいち再転送する必要がないので、ベースイメージを共有する複数のイメージを効率的に転送できる 標準のレジストリAP

    至高のDockerイメージ生成を求めて -2019年版- - Qiita
    ichizin
    ichizin 2019/09/20
  • JavaScript/TypeScriptの例外ハンドリング戦略を考える - Qiita

    PySpa統合思念体です。あと、 @yosuke_furukawa にも協力いただきました。 基的に、あまりエラーの種別を細かく判定してあげることはJavaScriptでは今までやってこなかったのですが、ちょっとしたメタデータを乗っけてあげるとか(例えばリトライ回数)、何か凝ったことをしたくなったらこういう方針でやればいいのでは、という試行錯誤録です。 エラーと例外の区別が必要か この手の話になると、エラーと例外の違いとか、こっちはハンドリングするもの、こっちはOSにそのまま流すものとかいろんな議論が出てきます。このエントリーではエラーも例外も差をつけずに、全部例外とひっくるめて説明します。 例外というのはすべて、何かしらのリカバリーを考える必要があります。 ちょっとしたネットワークのエラーなので、3回ぐらいはリトライしてみる 原因: ネットワークエラー リカバリー: リトライ サーバー

    JavaScript/TypeScriptの例外ハンドリング戦略を考える - Qiita
    ichizin
    ichizin 2019/06/14
  • ログを gzip で圧縮しているなら zstd を導入しよう - Qiita

    はじめに zstd コマンド(zstdless, zstdcat, unzstd なども)は gzip にも対応しています。特にデコードは拡張子を見て自動で gzip と zstd を切り替えてくれるので、 gzip 圧縮されたログと zstd 圧縮されたログが混在している環境でも透過的に扱うことができます。 なので gzip から zstd への切り替えは次のように段階的に進めることができます。 zstd コマンドツール群のインストール 圧縮されたログを扱うときに zstd を使い始める 圧縮フォーマットを zstd に切り替える 性能比較 Debian 9.3 で gzip 1.6 (aptでインストールしたもの) と zstd (1.4.0) を比べてみます。 対象となるファイルは ltsv でゴチャゴチャとアプリの情報を混ぜた重めの apache のアクセスログです。 (5,367

    ログを gzip で圧縮しているなら zstd を導入しよう - Qiita
    ichizin
    ichizin 2019/06/08
  • React開発において便利なTypeScriptの型まとめ - Qiita

    React開発において個人的に便利だなーと思っているTypeScriptの型をだだーっとまとめてみました。私自身もまだまだTypeScript修行中の身ですので、新たに気づいたものがあったら随時追記していきます。みなさんも「こういう使い方できるぜ!」みたいなのがあったら、ぜひ教えていただければと思います。 対象とする読者 最近ReactTypeScriptを導入し始めた人 ReactTypeScriptを導入してそこそこ経つけど、いまいち使いこなせてる気がしない人 TypeScriptにあまり詳しくない人でもわかるように説明しているつもりではありますが、以下の記事がTypeScriptの入門用に素晴らしいので、そちらを先に読むとスムーズに読み進められると思います。 TypeScriptの型入門 Partial React開発においてよく定義する型としてコンポーネントのpropsの型があ

    React開発において便利なTypeScriptの型まとめ - Qiita
    ichizin
    ichizin 2019/03/07
  • 【Laravel 6 & PHP 7.4 対応】Vue + Vue Router + Vuex + Laravel チュートリアル(全16回)を書きました。 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    【Laravel 6 & PHP 7.4 対応】Vue + Vue Router + Vuex + Laravel チュートリアル(全16回)を書きました。 - Qiita
    ichizin
    ichizin 2019/01/15
  • PlantUML Example for モデルベース要件定義テクニック - Qiita

    PlantUMLはテキストの記述でUMLの図を描くことができます。オプション機能や組み合わせで色々な表現をすることができるので、UML を拡張した図が使われるモデルベース要件定義テクニックの書籍からいくつかのモデルを記述します。 書籍にはモデルの着眼点や解説が丁寧に記載されています。図の背景に興味がある方は合わせてお読みください。 コンテキストモデル ユースケース図でシステムの関係者を整理します。 left to right direction を利用すると図の方向を左から右に変更できます。 left to right direction actor 経営者 rectangle システムに直接関わる人 { actor 顧客 actor 営業 actor 物流 actor システム部門 actor オーダー部門 経営者 -- 営業 経営者 -- 物流 顧客 -- (商品販売サイト) 営業 -

    PlantUML Example for モデルベース要件定義テクニック - Qiita
    ichizin
    ichizin 2019/01/03
  • 【保存版・初心者向け】僕が本気でオススメするPythonと機械学習の良書12選

    ※実際記事で紹介する書籍は12冊ですが、メンバーが借りてオフィスになかったため、上記画像内に3冊ないものがあります。 はじめに AI Academyを開発・運営しています、株式会社エーアイアカデミー代表の谷です。 6ヶ月ほど前に書いた下記記事は約1200のいいねと7万viewsを超える記事になりました。 【保存版・初心者向け】独学でAIエンジニアになりたい人向けのオススメの勉強方法 お読み頂いた方々、またいいねして頂いた方々ありがとうございました! あれから6ヶ月ほど経ちまして、さらにPython機械学習の書籍が増えて参りましたので、改めて初心者向けにPython機械学習の良書12選を紹介し、初学者が独学でも機械学習プログラミングの基礎スキルUPに貢献できたらと思います。 また、AIプログラミングを作りながら学べるプログラミング学習サービスAI Academyを無料でご利用頂けますので

    【保存版・初心者向け】僕が本気でオススメするPythonと機械学習の良書12選
    ichizin
    ichizin 2018/10/29
    “ディープ”
  • TypeScriptの型初級 - Qiita

    この記事は「TypeScriptの型入門」の続編です。入門の続編ということなので初級というタイトルにしてみました。TypeScriptの型よくわからんという方は先に入門から読むことをおすすめします。入門レベルのTypeScriptくらい分かるよという方は読まなくても大丈夫です。 TypeScriptの型入門 さて、前回の記事ではTypeScriptの型を一通り紹介しました。この記事ではその続編として、実用上必要になるTypeScriptの型の挙動を理解したり、標準ライブラリに存在する型の使い方を理解することを目標にします。前回に引き続き、あくまでTypeScriptの型に関する話ですから、JavaScriptの言語機能とか、TypeScriptの構文とかの話はしません。悪しからずご了承ください。 最終更新: 2019-03-16 (TypeScript 3.4に対応しました) union型

    TypeScriptの型初級 - Qiita
    ichizin
    ichizin 2018/10/25
  • tmuxを効率よく使って開発を爆速にする最高の設定

    リポジトリを横断しての開発 自分は普段いくつかの(主にマイクロサービス)リポジトリを横断しつつコーディングをしています。 その際に tmux + zsh + neovim を使っているのですが、 tmux (とzsh)を使って複数のリポジトリを横断する最高の設定を使っているので紹介します。 まず前提として、複数リポジトリのマイクロサービスを立ち上げるとめちゃくちゃコンソールが増えると思います。 自分はプロジェクト毎にローカルサーバで1-2個・エディタ1つ・シェルで1つ・REPLで1つくらいは平気で使います。ついでに一時的な検証をするワークスペースを作って5-7個くらいは平気でプロジェクトを横断することがあります。 これを tmux の window と pane だけで管理するのは辛いのでやめましょう。 tmux には session という便利な機能があるのでこれを使います。 簡単に説明

    tmuxを効率よく使って開発を爆速にする最高の設定
    ichizin
    ichizin 2018/10/23
  • AmazonECS / Fargate 本番運用のための構築とデプロイ方法まとめ

    Amazon ECS(以下ECS)とFargateを用いて、今までEC2で運用されていたサービスをコンテナ化してECS上で稼働させるプロジェクトをしました。 特に、Fargateは2018年7月3日にTokyoリージョンで使えるようになったばかりなので、情報がまだまだ少なく手探りの状況でした。 Posted On: Jul 3, 2018 AWS Fargate is now available in Asia Pacific (Tokyo) region. https://aws.amazon.com/about-aws/whats-new/2018/07/aws-fargate-now-available-in-tokyo-region/ ECS/Fargateで実現したアーキテクチャ・デプロイ方法の全容とその実装方法を記していきます。以下のスライドにもまとめているのでぜひご覧ください

    AmazonECS / Fargate 本番運用のための構築とデプロイ方法まとめ
    ichizin
    ichizin 2018/10/21
  • Electron製アプリをMac App Storeでリリースするまでの手順

    最近、ElectronでGateというMacデスクトップアプリケーションを作って、Mac App Storeにリリースしました。Gateは、入力したパスのフォルダを、Finderで開くことができるアプリケーションです。Macのパスだけではなく、Windowsパスも開くことができるので、特にMacユーザとWindowsユーザがいるチームでフォルダパスを共有する際に役立つと思います。 Mac App Storeにリリースするにあたり、具体的な手順がわからず苦労したので、今回はリリースまでの一連の流れをまとめてみようと思います。 前提事項 Macデスクトップアプリケーションの手順です。 アイコンや証明書等の事前準備については、既にわかりやすい記事がたくさんあるので詳細手順を省き、リンクを紹介させていただきます。(わかりやすい記事をありがとうございます) 逆にリリース用インストーラパッケージの

    Electron製アプリをMac App Storeでリリースするまでの手順
    ichizin
    ichizin 2018/10/08
  • 実装クリーンアーキテクチャ

    最近何かと騒がしいクリーンアーキテクチャですが、丁度プロダクトで採用したところだったので折角なので情報共有ということで Qiita の初記事にしてみようと思います。 こちらの記事は GUI や CUI のアプリケーションを対象にしています。 Java コードの記事リンク:https://nrslib.com/clean-architecture-with-java/?preview_id=1263&preview_nonce=542ba7b70f&_thumbnail_id=1293&preview=true その他解説もしています。もしよろしければチャンネル登録をお願いいたします。 より実践的なコード(WEBアプリケーション): https://github.com/nrslib/itddd/tree/master/CleanLike YouTube での解説(WEBアプリケーション):

    実装クリーンアーキテクチャ
    ichizin
    ichizin 2018/10/01
  • 2018年Vue.jsとVuexを使ってFluxをしている人には必ず知っていてほしい開発やメンテナンスの際に役立つVuexのTipsとサンプルコード

    これらはmap系はthis.$storeなんたらの糖衣構文です。つまり、アクションが実行されるVueコンポーネントにstoreがインストールされている必要があります。 例えばよくあるmodalとかdialogとかの実装を見ると、new Vue()して、それでモーダルコンポーネント内に自分たちが書いたHTML等を飛ばしてマウントするという手法を取る実装があります。これはVueの仮想DOMのTreeを破壊しないVueフレンドリーな実装です。 しかし、new Vueをするという事は、そこでstoreを与える必要がありますが、大抵のライブラリはそれには対応していないでしょう。もちろんthis.$routeなどのvue-routerへのアクセスも同じです。 一応こちらがElementUIの参考実装です。 https://github.com/ElemeFE/element/blob/dev/pack

    2018年Vue.jsとVuexを使ってFluxをしている人には必ず知っていてほしい開発やメンテナンスの際に役立つVuexのTipsとサンプルコード
    ichizin
    ichizin 2018/10/01
  • Sequel Proを超えるGUIツールが出てきたぞ

    悲報 2019年6月26日現在、TeamSQLのサポートがなくなってしまったようでダウンロードできなくなくなりました。。 TeamSQL has retired and is not available for download anymore. 今までSequel Proを重宝してきましたが、それを超えるGUIツールが出てきました。 その名も、TeamSQL 現状サポートしているものだけでもかなり豊富 今後、elasticやmongoDBにも対応されるようです。 機能 クエリ保存 履歴保持 ファイル出力 抽出した結果をボタン1つでcsvやjson形式に保存可能。 共有 データをエクスポートしなくても共有が可能。 グループの作成が可能なため、特定のユーザー同士で簡単に共有ができるとこがメリット。 可視化 様々なチャートでクエリの可視化が可能。 そのままイメージとして保存も可能。 テーマ選択

    Sequel Proを超えるGUIツールが出てきたぞ
    ichizin
    ichizin 2018/09/22
  • Grafana annotation + Prometheus で試験結果をさっくりまとめよう - Qiita

    こんにちは、 @haeena です。 この記事は NTTコミュニケーションズ Advent Calendar 2017 の14日目のようです 2017年10月にリリースされた Grafana 4.6より、Grafana自体にannotationを記録する事ができるようになりました1。今回はGrafanaのannotation機能を利用して、試験の結果のグラフをしこたま生成していこうと思います。PNG画像のexportもDashboardのSnapshotもあるよ。 この記事ではAPIを利用してannotationを付けていきますが、Dashboardから直にannotationをつけると上図のような感じになります 2 モチベーション パフォーマンス系の試験をしたくなった 計測系のsetupは楽にしたい Grafana + Prometheusが好き 見栄えのよい画像を生成したい時もあるじゃ

    Grafana annotation + Prometheus で試験結果をさっくりまとめよう - Qiita
    ichizin
    ichizin 2018/08/09
  • 「Vue.js + Go言語 + Firebase 」で始める! Frontend & Backend API 両方で認証するセキュアなSPA開発ハンズオン! - Qiita

    こんにちは。僕です。最近は Vue.js で SPA、Go言語で APIサーバーを実装しています。ここで意識するのはフロントエンドとバックエンドの分離です。分離させたい理由は二つ。 アプリ化の際や、今後、他のサービスと連携させるためにも、バックエンドはAPIサーバーに徹したい。 Vue.jsで開発中にオートリロードしたい(Vue.jsをビルドして出来たファイルをGo言語でserveする形にすると、毎回ビルドするのが面倒) しかし、これをやろうとすると認証どうするの問題が付いてきます。APIサーバ、フロントの両方をセキュアにしようとするとそれだけで時間取られます。そこで使うのが認証基盤である Firebase Authentication です。これを使うと爆速で認証が作れます。そう、爆速です。Vue.js + Firebase の 解説記事はめちゃくちゃありますが、そこで返ってくるJWT

    「Vue.js + Go言語 + Firebase 」で始める! Frontend & Backend API 両方で認証するセキュアなSPA開発ハンズオン! - Qiita
    ichizin
    ichizin 2018/06/19
  • Goで書けるタスクランナーMageが快適すぎて捗る - Qiita

    Goを始めてからずっと Robo や Task といったYAMLベースのものでビルドタスクを書いていたのですが、プロジェクトが増えてきて限界を感じました。 YAMLベースと言ってもタスクの記述部はあくまでもただのシェルであり、せいぜい「Makefileよりは読みやすいよね」程度。シェルへの依存度が高いと、どうしてもこういう問題が目立ってきます。 環境依存で「動きません」って他のメンバーに言われがち。MacLinuxで date コマンドのオプションが違うとかよくある。かといってビルド用のDockerイメージを作るほどではまだない grep sed 等で正規表現の魔術的な操作が増えると、一見何やってるのか分からなくなりがち エラー処理が雑になりがち。パイプの途中のエラー拾うとかしんどい 遅い。並行処理書くのもしんどい 個別のタスクをライブラリ化してインポートしたいけど、決まったやり方がない

    Goで書けるタスクランナーMageが快適すぎて捗る - Qiita
    ichizin
    ichizin 2018/06/07