並び順

ブックマーク数

期間指定

  • から
  • まで

81 - 120 件 / 596件

新着順 人気順

グローバル変数の検索結果81 - 120 件 / 596件

  • HTML の DOM に指定した id って JavaScript のグローバル変数に格納されるって知ってた?

    はじめに タイトルの通りなんですが, HTML の DOM に指定した id はすべて同じ変数名としてグローバル変数に格納されます. つまり id を好き勝手付けちゃうと知らぬ間にグローバル空間が汚染され, 予期せぬバグを起こしてしまう可能性があります. なので id の値は慎重に考えて付けましょうという. っという注意喚起もしたいんですが, 実は今回伝えたいのはそれではありません. メインはこの仕組みを逆手に取って活用することで手軽にツールを作ったりできますよーという紹介になります. この tips を活用して, ちょっとした Markdown Editor も作ってみたのでよかったら参考にしてください. 具体例 具体的な例は以下です. このように, 要素に id を指定していた場合はグローバルに変数として格納されているので document.getElementById を呼ばなくても

      HTML の DOM に指定した id って JavaScript のグローバル変数に格納されるって知ってた?
    • Rails: リクエストのライフサイクルとRackを理解する(翻訳)|TechRacho by BPS株式会社

      概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: The Lifecycle of a Rails Request 原文公開日: 2019/05/02 著者: Godfrey Chan サイト: Skylight 日本語タイトルは内容に即したものにしました。画像は元記事の引用です。 2019/10/03: 初版公開 2022/08/02: 更新 参考 以下のサイトで、Railsのリクエストの全ライフサイクルをビジュアル表示で追うことができます。本記事と合わせて参照することで理解が進むと思います。 サイト: Rails Trace rails-trace.chriszetter.comより 本記事は、私達がRailsConf 2019で行ったスピーチのまとめです。スライドはこちらでご覧いただけます。 エディタでコントローラのファイルを開き、アクションメソッドにRubyコードを少々書

        Rails: リクエストのライフサイクルとRackを理解する(翻訳)|TechRacho by BPS株式会社
      • Cognitive Complexityを400以上減らすまでに何をしたか 〜 コード品質改善の具体的なプラクティス

        ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。Yahoo!広告 ディスプレイ広告エンジニアの安田です。私たちの開発チームでは広告配信の起点となるJavaScript(TypeScript)ライブラリを提供しています。今回はこのライブラリのデプロイ失敗率を改善できた、コード品質改善の取り組みについてご紹介します。 コード品質を定量的に測る指標の1つにCognitive Complexityがあります。Cognitive Complexityは人間視点での複雑性を評価する指標で、例えばネストが深くなるほど複雑と判断される特徴があります。複雑なコードは変更に多くの時間を要し、テストが難しくなるので要改善なシグナルといえるでしょう。私たちが今回実施した品質改善の取り組みで

          Cognitive Complexityを400以上減らすまでに何をしたか 〜 コード品質改善の具体的なプラクティス
        • TestCafe で E2E テストを始めよう #1 - 概要説明 と Hello World | Recruit Tech Blog

          TestCafe とは? TestCafe とは、Developer Express Inc. というアメリカのシステム開発会社が開発している E2E テストツールです。 A node.js tool to automate end-to-end web testing | TestCafe 同社はもともと TestCafe Studio という IDE(E2E テストケースオーサリングツール)を商用として提供していましたが、2016 年に TestCafe Studio のコア部分を OSS として提供するようになりました。今回ご紹介するのは、このコア部分についてです。 シリーズ一覧 概要説明 と Hello World 👈 この記事 ベーシック認証とユーザーロール(アカウント認証) よりプログラマブルな作りにする 関心の分離・メンテナブルなテストを書くためのベストプラクティス 大まか

            TestCafe で E2E テストを始めよう #1 - 概要説明 と Hello World | Recruit Tech Blog
          • Go の命名規則

            本記事は Go Advent Calendar 2019 11 日目の記事です。 Go はシンプルな言語機能・シンタックスが特徴であり、命名規則にもそのシンプルさが表れています。 本記事では、公式や著名な Go エンジニア、OSS などから見られる Go らしい命名規則を紹介します。 今更なテーマかもしれませんが、意外にも公私共々で命名規則が意識されていないコードを時折見かけるので、自戒も込めて記します。 誤った内容があれば Twitter でご指摘いただければと思います。 パッケージ名簡潔にするEffective Go では、short, concise, evocative なパッケージ名が望ましいとされます。 これはパッケージ名に限らずほとんどあらゆる命名において役立つ指針だと思います。 また、「パッケージ名は一言で何をするかを表すエレベーターピッチだ」という Dave Cheney

            • 主なNode.js独自API

              // CommonJS Modules の場合 const fs = require("fs"); const fs = require("node:fs"); // ES Modules の場合 import fs from "fs"; import fs from "node:fs"; process のように、グローバル変数としても組み込みモジュールとしても提供されているAPIもあります。 global globalThisの別名です。Webブラウザでは window と self がglobalThisの別名として定義されていますが、Node.jsには window や self はなく、かわりに global が定義されています。 Buffer ArrayBuffer, TypedArray (Uint8Arrayなど), DataView はJavaScriptの標準機能です。

                主なNode.js独自API
              • Rustでメモ化を行うためのシンプルなライブラリを作った - 純粋関数型雑記帳

                TL;DR 一行追加するだけで関数をメモ化するマクロを作った。 成果物はこちら https://docs.rs/memoise/ 背景 同じ引数に対して同じ値を返す関数(いわゆる参照透明だったり数学的だったりな関数)では、 関数の計算結果を保存しておくことによって計算を高速化したりすることができます。 このようなテクニックを関数のメモ化(memoise, memoize, memoization)などと呼びます。 特に再帰的に定義される関数についてメモ化を行うことによって、 動的計画法の実装をシンプルで直感的なものにできたりします。 しかし、関数のメモ化はやりたいことが自明なのにもかかわらず、 毎回手で書いていると微妙に面倒だったり、うっかりメモ化忘れで計算量が爆発してしまったり、 ちょっと辛いところがありました。 特にRustを使っていると、グローバル変数を雑に使うことを許して貰えないの

                  Rustでメモ化を行うためのシンプルなライブラリを作った - 純粋関数型雑記帳
                • 良いコード/悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方

                  この本の概要 「ITエンジニア本大賞2023」技術書部門で大賞受賞! 本書は,より成長させやすいコードの書き方と設計を学ぶ入門書です。 システム開発では,ソフトウェアの変更が難しくなる事態が頻発します。コードの可読性が低く調査に時間がかかる,コードの影響範囲が不明で変更すると動かなくなる,新機能を追加したいがどこに実装すればいいかわからない……。 変更しづらいコードは,成長できないコードです。ビジネスの進化への追随や,機能の改善が難しくなります。 成長できないコードの問題を,設計で解決します。 こんな方におすすめ コードの設計スキルに興味がある人 日々,悪いコードと向き合っていて改善したい人 より良いコードを書きたい人 1 悪しき構造の弊害を知覚する 1.1 意味不明な命名 1.2 理解を困難にする条件分岐のネスト 1.3 さまざまな悪魔を招きやすいデータクラス 1.4 悪魔退治の基本 2

                    良いコード/悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方
                  • PythonのWebフレームワーク、どう選ぶべきか? Part.1

                    2019年9月16、17日、日本最大のPythonの祭典である「PyCon JP 2019」が開催されました。「Python New Era」をキャッチコピーに、日本だけでなく世界各地からPythonエンジニアたちが一堂に会し、さまざまな知見を共有します。プレゼンテーション「Python_Webフレームワーク比較」に登壇したのは、CMSコミュニケーションズ代表取締役の寺田学氏。講演資料はこちら PythonのWebフレームワークについて 寺田学氏(以下、寺田):それでは「Python Webフレームワーク比較」ということで、45分間のトークをしていきたいと思います。 資料は基本的に英語ですが、大事なところは日本語で書いています。もともと英語で発表したいという想いがあったんですけど、日本語で伝えたほうがいいなと思ったので、今日は日本語です。 私は寺田学といいます。CMSコミュニケーションズと

                      PythonのWebフレームワーク、どう選ぶべきか? Part.1
                    • ESLint を使い倒す(おすすめルール紹介)

                      前書き ESLint は JavaScript, TypeScript のための静的検証ツールです。 ESLint を活用することで、コーディング規約やベストプラクティスを機械的に強制することによりコードレビューの手間を省き、本番環境でのエラーやパフォーマンスの悪化を抑制することができます。 TypeScript を使っているプロジェクトでは、パーサーを適切に設定すれば型情報を用いたより精密な静的検証を行うこともできます。 eslint を使う際、 eslint:recommended, plugin:@typescript-eslint/eslint-recommended などの各 eslint plugin の推奨 config のみを使って済ませたり、 eslint-config-airbnb などの config のみに頼ることも多い印象ですが、 recommended conf

                        ESLint を使い倒す(おすすめルール紹介)
                      • 「天才プログラマーが作った糞コード」という都市伝説 - カレーなる辛口Javaな加齢日記

                        「一人の天才プログラマーがほとんど一人でシステムを作ったがドキュメントはなくて誰もメンテできないときってどうするの?って話」 https://togetter.com/li/1549364 1人の天才プログラマーがシステムをほとんど1人で作ったんだが、ドキュメントが残っておらず、他に誰もメンテできる人がいない。 みたいな状況って、みんなどう対応してるの?— やまぶん (@yamabunmath) June 25, 2020 保守不可能な糞コードは山ほど見てきたけど,そんな状況は一度も見たことがない.*1 ヘッポコ管理職が,社長を説得するためにそう説明しただけじゃないかね.まさか「自分はバカなので,デザインパターンとか平行プログラミングとか分かりません」なんて口が裂けても言わないもの.*2 またヘッポコプログラマーには自分に理解できないコードが,それが自分の理解を超えているからなのか,単純に

                          「天才プログラマーが作った糞コード」という都市伝説 - カレーなる辛口Javaな加齢日記
                        • 状態機械を合成してデッドロックを検出できる Go 言語パッケージを作ってみました - チェシャ猫の消滅定理

                          はじめに マルチスレッドで動作するプログラムの設計は難しい問題です。個々のスレッドの動作は単純に見えても、複数が並行して動作する場合の動作は組み合わせ論的に複雑になります。また、タイミングに依存する不具合は狙って再現することが難しく、通常の単体テストによる検出にも限界があります。 そんなとき、有効な手法がモデル検査です。システムの取りうる状態をあらかじめ網羅的に探索することで、「実際に動作させた際にごく低い確率で踏むバグ」であっても、動作させることなく設計段階で発見することが可能になります。 ところでちょうど先日、デッドロック発見器を自作するハンズオンに参加する機会がありました。内容は非常にシンプルなモデル検査器を実装するというもので、せっかくなのでそのときの成果物を Go のパッケージとしてまとめたものを以下に公開しました。 github.com 以下、このパッケージで何ができるのかを具

                            状態機械を合成してデッドロックを検出できる Go 言語パッケージを作ってみました - チェシャ猫の消滅定理
                          • 実践 Node.js Native ESM — Wantedlyでのアプリケーション移行事例 | Wantedly Engineer Blog

                            Wantedlyではこのたび、フロントエンドアプリケーションのひとつをNative ESM化しました。本記事ではNative ESM化の必要性と、必要な作業について説明します。 この記事の概要Node.jsにはNative ESMというモードがある。Native ESMはまだ普及していないが、ライブラリ側の更新が進み、移行が必要になりつつある。Native ESMをめぐる状況は (この記事の長さからわかるように) 色々複雑で、概念をちゃんと説明するだけでも大変。Native ESMへの移行にあたってはさまざまな困難が待ち受けている。Native ESMとは歴史的経緯から、JavaScriptには複数のモジュールシステムがあります。そのうちNode.js周辺でよく使われるのはCommonJS ModulesとES Modulesです。 CommonJS Modules (CJS) は実質的に

                              実践 Node.js Native ESM — Wantedlyでのアプリケーション移行事例 | Wantedly Engineer Blog
                            • 気持ちのいいジャンプを目指して - Qiita

                              ジャンプを実装するとき,重力をイメージして放物軌道を作りがちです. だがHAL研の方はかく語りき. キャラクターを動かすプログラムでは、ときに自然法則を無視して気持ちよさを追求する、ということをよく行います。 自然界の物理法則よりも気持ちいいジャンプ,探求したいと思いませんか? この記事ではジャンプの実装方法をいくつか紹介します.結局重力使えばいいやと思わなくもないですが… 初めに 今回はヒヨコ🐤ちゃんがジャンプします!以下ヒヨコちゃんの座標は $(x, y)$ と表記します.ただし画面左上が原点で,画面下方向にyの値が増えていくことに注意です.この辺は使用したゲームエンジン pyxel の仕様です.(あとクラスで書いてないので,邪悪なグローバル変数だらけです….先に謝ります) 最初に実装の全体像を示します. import pyxel def drawHiyoko(x, y): # ヒヨ

                                気持ちのいいジャンプを目指して - Qiita
                              • じいさんが見たかった二酸化炭素濃度を、今ボクがM5StickCで見ている。 - 四谷ラボ公式ブログ

                                ラボメンバー3号、篠原(@SHINOHARATTT)です。 最近、どうですか? 私は職場が緊急事態宣言の影響を受けまして、全社員の勤務体系がフルリモートになっております。 四谷ラボとしても一時的に閉鎖措置となり、以前のように集まることも自粛中です。 さて、リモートで働いているとですね、めっちゃ眠気があったり頭痛くなったり・・・ 家にいる時間が増えたので「もしかして空気環境が悪いのでは?」と思ったのです。 部屋の換気はこまめに行う さて、換気といえば窓を10分~15分ぐらい開け、室内の空気を入れ替えることを言います。ではなぜ換気を行うのか。 家の中にこもりっぱなしになってしまうと、室内のCO2濃度は着々と上がります。そして一般的な基準は厚生労働省のHPより1000ppm以下が室内における環境の水準と定義されています。 数値が高ければ高いほど環境は悪くなります。 www.mhlw.go.jp

                                  じいさんが見たかった二酸化炭素濃度を、今ボクがM5StickCで見ている。 - 四谷ラボ公式ブログ
                                • “しょうもないうっかり”を許さない、静的型付けの言語 コーディングミスを未然に防ぐ「Zig言語」の仕組みとは

                                  Kernel/VM探検隊は、カーネルやVM、およびその他なんでもIT技術の話題ジャンルについて誰でも何でも発表してワイワイ盛り上がろうという会です。小林哲之氏は、静的型付きコンパイル言語、Zigについて発表しました。 「C言語であった問題をとにかく解決する」を目標に掲げるZig言語 小林哲之氏(以下、小林):それでは、始めます。tetsu_kobaと申します。今日はZigの話をしたいと思います。 Zig言語は、けっこう新しい言語なので、初めて聞く方も多いかと思います。「5分でざっと理解するZig言語」というページを作っておいたので、こちらをご覧になってください。 ところでみなさん、解決まで何時間もかかったバグの原因が、実は数秒で直せるような、しょうもないうっかりコーディングミスだったという経験はありませんか? 私は何度もあります。 バグの原因が、しょうもないうっかりコーディングミスだったと

                                    “しょうもないうっかり”を許さない、静的型付けの言語 コーディングミスを未然に防ぐ「Zig言語」の仕組みとは
                                  • 個人開発でReactとFlutterを同時に使うとどうなるか

                                    はじめに この記事は、個人で作っているサービスをアプリとWebの両方に展開しいて感じたことを書いたものです。 作っているもの 著者は、個人でRabbytという、デジタルキャンバスサービスを作っています。 タブレットやスマホに全画面で絵を表示することで、「タブレットで絵を飾れる」サービスです。 壁にかけたりスタンドを使ったりすれば簡単に絵が飾れます。 アプリもリリースを重ね、今は1.0.8になり、最近のリリースではファイルをアップロード出来るようになりました。 使用している技術を図にすると上のようになります。 色々使っていますが、 Go (バックエンド) Flutter (アプリ) React (Web) GraphQL (API) を使っていることが、この記事での重要な点です。 モノレポ Rabbytは1人で作っていて、リポジトリを分けても楽にはなりません。 そのため、必要なものは全て1箇

                                      個人開発でReactとFlutterを同時に使うとどうなるか
                                    • 【寄稿】独自言語のコンパイラをLLVM backendを用いて作る「ミニキャン言語を作ってみよう!」講義録 - Flatt Security Blog

                                      はじめに 弊社Flatt Securityでは学生の学びを支援したいという想いから今回少額ではありますが高橋さんの留学を支援させていただき、そのご縁で弊社のYONEUCHI, Takashi (@lmt_swallow) | Twitterもスタッフを務めるセキュリティミニキャンプにおける素晴らしい講義の内容をテックブログに書いていただけることになりました。以下本文になります。 @00_ です。今年の夏のUC Berkeleyへの留学費用をFlatt Securityさんに支援して頂いた経緯で、セキュリティミニキャンプの講義内容についてテックブログで書くことになりました。 2019/09/28-2019/09/29 のセキュリティミニキャンプ山梨で「ミニキャン言語を作ってみよう!」の講座を行いました。この講座では、「ミニキャン言語(MC言語)」という独自言語のコンパイラを、自分がコミッタで

                                        【寄稿】独自言語のコンパイラをLLVM backendを用いて作る「ミニキャン言語を作ってみよう!」講義録 - Flatt Security Blog
                                      • Rubyの全バージョンで動くQuine - まめめも

                                        このプログラムは、Ruby 0.49(1994年リリース)からRuby 3.2.1(今月リリース)まで、現在確認されているすべてのCRubyで動作するQuineです。 eval($s=("t='eval($s=('+d=34.chr;s=3 2.chr+$s*i=8;v=$VERSION||eval('begin;v=V ERSION;rescue;v||RUBY_VERSION;end');f=('?'*8 +'A|'+'?'*20+'G?c'+'?'*15+'A@CXx@~@_`OpGxCxp@~pO xS|O~G?c?q?xC`AP|q?x_|C_xC_xO@H@cG?G?qA|_|_`GCpOxC|H NFccqq@`_|OF@`?q?x_@x_x_`GB`O``O~G?C@qCxCxP@D@|G~C?pO|C? pO|C?AP|A~HNN`ccxC|Q@L@B"+"GpGpc@p

                                          Rubyの全バージョンで動くQuine - まめめも
                                        • 複数のモジュール形式(CommonJS, ES Modules, UMD)をサポートしたnpmパッケージの作り方 in TypeScript - dackdive's blog

                                          はじめに npmパッケージを開発するとき、パッケージ利用者の実行環境に合わせて適切なモジュール形式のファイルをパッケージに含め、提供する必要があります。 具体的には、たとえば以下のようなバリエーションが考えられます。 Node.js環境であれば CommonJS 形式 (module.exports / require() ) ブラウザ環境で、webpackやRollupなどのモジュールバンドラーを前提とするならば CommonJS や ES Modules 形式 (export / import ) ブラウザ環境で、モジュールバンドラーなどは使わず<script>タグでファイルを読み込んで利用するならば UMD 形式 このとき、パッケージ提供側はどういったファイルをパッケージに含めるべきなのか、またそれを TypeScript でどのように実現できるのかがあまりよくわかっていなかったので

                                            複数のモジュール形式(CommonJS, ES Modules, UMD)をサポートしたnpmパッケージの作り方 in TypeScript - dackdive's blog
                                          • Sassのモジュールシステムを@importから@useに移行する方法を考えてみた

                                            先日、KOJIKA17さんの「Sassを@importから@useに置き換えるための手引き 」という記事を見て、2022年10月ころにはSassで@importが使えなくなる可能性があることを知りました。まだ2年ありますが、新しく取り組むプロジェクトでは@useを使ったモジュールシステムにしたいので、自分が使っている構成の置き換えについて考えてみました。 まずはアイディアをシェアをして叩き台にしてもらうのが目的ですが、他に良い書き方があったらぜひアドバイスいただきたいというのもあります。 試しながら、考えながら書いているので内容は変更される可能性が高いかもしれません。 Sassの新モジュールシステムについて Sassの新しいモジュールシステムについては、上述の記事や SHIFTBRAINさんのブログ がわかりやすかったです。ありがとうございます。 公式の発表と@useと@forwardのド

                                              Sassのモジュールシステムを@importから@useに移行する方法を考えてみた
                                            • Rustとアセンブリで実装された新たなRuby処理系 JITコンパイルをサポートして速く動く「monoruby」

                                              Kernel/VM探検隊は、カーネルやVM、およびその他なんでもIT技術の話題ジャンルについて誰でも何でも発表してワイワイ盛り上がろうという会です。monochrome氏は、Ruby処理系「monoruby」について発表しました。 高速な実行が可能なRuby処理系「monoruby」 monochrome氏(以下、monochrome):monochromeといいます。今日は「機械語で書くRuby処理系のその後」ということで、前回の発表のその後を報告いたします。 自己紹介です。monochromeといいます。(スライドを示して)Twitterはこれです。最近、Twitterは治安が悪いので、Mastodonにアカウントを作りました。RustでRubyの処理系を作っています。プログラミング処理系、言語処理系が好きな人の集まりのSlackとか、最近はこの「Zulip」というアプリに移動して、こ

                                                Rustとアセンブリで実装された新たなRuby処理系 JITコンパイルをサポートして速く動く「monoruby」
                                              • 設定情報をエレガントに管理する方法(解決なし) - まめめも

                                                アプリケーションにはいろいろ設定があるものです。一般的な例では、production / development のようなモードや、ログレベルなど。プログラムを書くとき、こういうデータをどのように管理しますか? 大きく 2 種類の書き方があると思います。 グローバル変数(やそれに類するもの)に入れる クラス生成時にコンストラクタに引き回す どちらも一長一短があると思っています。 1. グローバル変数に入れる たとえば、$config = { mode: :development } などとするだけ。 Rubyの場合、グローバル変数だけでなく、定数に入れたり、クラスメソッドにしたり、singletonライブラリを使ったり、スレッドローカルストレージを使ったりするのもこの分類に含めます。 長所 記述がとても簡潔 設定の追加が簡単 短所 グローバル変数を使うことに罪悪感がある 1 つのプロセスで

                                                  設定情報をエレガントに管理する方法(解決なし) - まめめも
                                                • WasmLinux: LinuxカーネルをWebAssemblyにする

                                                  LinuxカーネルがWebブラウザで動いたらどう考えても面白い んだけど、そこに至るまではなかなか難しい道のりになる。その第一歩として、Linuxカーネルのユーザーランド版であるLKL( https://github.com/lkl/linux )をWebAssemblyにコンパイルして、wasm2cでC言語に変換した上、Visual Studio 2022でコンパイルしてWindows上で実行してみた。 まだWebブラウザでは動いていないが、思ったよりは簡単にWasmに移植できた(個人の感想です) ウケが良ければMUSL libc移植編 → デバイスドライバ活用編 → Webブラウザ上動作編と続ける感じで。。 EDIT: Visual Studioのスクリーンショットを撮りなおし。 memory-control はanonymousなmapしか救えないので、ここ数年スパンではエミュレーシ

                                                    WasmLinux: LinuxカーネルをWebAssemblyにする
                                                  • Rustスマートポインタ比較表 - Qiita

                                                    以下補足です。 効率 トレードオフを強調するために、相対的な効率を星の個数で表しています。しかし、効率をことさら気にする必要はありません。他の多くのプログラミング言語では、Rustでいうところの Arc<Mutex<T>> をデフォルトで使っているような状況です。要件にあったものを使うことが大事です。 ライフタイム 「短命」とついているものは基本的に、ある関数のスコープに紐付いた形でしか使えません。特に慣れないうちは、これらの型を構造体に入れて使うのはやめておいたほうが無難でしょう。 例外として、グローバル変数 (static, lazy_static!) は &'static 参照として扱うことができます 共有 「ポインタ」と聞くと、参照先が共有されている様子を思い浮かべる人が多いと思いますが、所有権の概念のあるRustでは必ずしもそのイメージは当てはまりません。 &mut T と Bo

                                                      Rustスマートポインタ比較表 - Qiita
                                                    • 僕たちとECSとデプロイとその改善 | 株式会社ヌーラボ(Nulab inc.)

                                                      みなさんこんにちは。Backlog課のGitチームに所属するテリーです。今回は僕たちが日々運用するECS Fargate上のアプリケーションのデプロイ方法とそれをどう改善してきたかについてまとめました。デプロイについて迷っている方や日々の業務の改善が好きな人に読んでもらえたらと思います。 Git機能におけるデプロイ ECS上で動くアプリケーション BacklogのGitはEC2上で動くアプリケーションとECS Fargate上で動くアプリケーションで構成されています。 アーキテクチャの外観は上記のようなになっています。Gitのアーキテクチャについて過去に詳しく説明したブログを発表していますので詳しくはこちらを参照ください。 僕たちは上記のアーキテクチャ中の4つのアプリケーションをECS Fargate上で運用しています。また、内部的な話になりますがBacklogには内部構造として複数の本番

                                                        僕たちとECSとデプロイとその改善 | 株式会社ヌーラボ(Nulab inc.)
                                                      • Lamdbaの開発を便利にするPythonのアプリケーションフレームワークJeffyが公開されました | DevelopersIO

                                                        CX事業本部@大阪の岩田です。 下記リンクの通りServerless OperationsさんからJeffyというOSSのアプリケーションフレームワークが公開されました。 AWS Python Lambda用のアプリケーションフレームワークJeffyをリリースしました! サーバーレスなシステム開発ではServerless FrameworkやSAMを利用することが多いと思いますが、これらのフレームワークは「アプリケーションフレームワーク」ではありません。リソースの管理やデプロイを簡略化することはできても、アプリケーションのコードは開発者が全て実装する必要があり、コード量の削減や保守性の向上には寄与しません。じゃあDjangoのようなフレームワークを使ってLambdaを開発すればいいのか?というと、そういうわけでもありません。DjangoはLambdaの開発向けに設計されたフレームワークでは

                                                          Lamdbaの開発を便利にするPythonのアプリケーションフレームワークJeffyが公開されました | DevelopersIO
                                                        • 知識の露出・共有を適切にしてクリーンな設計をしよう - Qiita

                                                          皆さんは技術的負債や○○コードとか、○○な設計に苦しめられていませんか? ※○○には食事時などに見るべきでは無い、あまり綺麗ではないお言葉が入ります 技術的負債を生み出す背景には組織・人・金、など、技術では対処しきれない問題が多く含まれますが、技術的要因ももちろん無視できません。 今回は「知識の露出・共有」について説明します。ここで覚えて欲しいことは、知識とその露出と共有についてです。 技術書典7では東京ラビットハウスというサークルで「TypeScriptとクリーンアーキテクチャで、最高の開発者体験をしよう!」という本を出す予定です。ご興味有ればサークルチェックお願いします。 分かりにくい、ここ間違ってないか?など何かしらツッコミや感想がありましたら是非お気軽コメントなりいただければ幸いです。 対象読者 技術的負債に苦しみたくない人。密結合が大体良くないこと位は知っていても、なぜ密結合が良

                                                            知識の露出・共有を適切にしてクリーンな設計をしよう - Qiita
                                                          • C言語を学びたての人のための電卓自作

                                                            電卓を通じて、再帰下降構文解析を使った構文解析を行います。インタプリタ自作やコンパイラ自作の前段階として挑むとちょうど良いのではと思います。 ステップ1からステップ15まであり、最終的に括弧を使った式を解析できる電卓が出来上がります。各ステップは少しの書き換えだけで済むようになっています。 「大学に入ってからプログラミングを始めて、1年生でC言語を学んでいる」という人に向けて書きました。 「このステップは難しすぎる」「説明が分からない」「ここの説明は間違っている」等があれば、sou7まで連絡を頂けるとありがたいです。また、実装してみて「みてみて!電卓が実装できたよ!」というときにも連絡を頂けると嬉しいです。 参考実装はこちらにありますCommits · soukouki/c-calc · GitHub。ステップごとにコミットを分けてあるので、難しくて進められない場合は参考にしてください。

                                                              C言語を学びたての人のための電卓自作
                                                            • WebAssembly Reference Typesで、WasmでDOMを操作する壁がここまで下がった

                                                              きっかけ(となったtweetの訂正) もう1ヶ月以上も経ってしまったが、こちらのtweetの公約どおり、WebAssembly (Wasm)におけるDOMの操作について知っている限りのことを書こう。 まずこの節の見出しのとおり、上記の発言は大きく間違えている。私はReference Typesがもたらすパフォーマンス的なメリットや、JavaScriptのオブジェクトを直接Wasmで渡すことが(一応)可能になったということを根拠に上記のtweetをした。しかし下記のtweetでも否定されているとおり、この観点は穴だらけなので、実際のところ多くの人が「直接操作できる」と実感できる状態ではないだろう。 詳細は後述するとして、我ながらひどい凡ミスを犯してしまった。JavaScriptのことを十分に知っているはずなのに、情けない。謹んでお詫びし、ここで訂正する。 大前提: ある意味で永遠にそんな日は

                                                                WebAssembly Reference Typesで、WasmでDOMを操作する壁がここまで下がった
                                                              • Sass不要!CSSだけでも変数やネスト、演算子が使えるよ!

                                                                2023年9月6日 CSS CSSをより便利に、効率よく記述できるSass。利用しているWebサイト制作者も多いでしょう。近年はCSSでもSassのような書き方ができるようになってきているので、Sassとの書き方の違いとともに紹介します! ↑私が10年以上利用している会計ソフト! 何度も利用する値を変数として定義し、使いまわせます。よく利用する数値や、色が連想しづらいカラーコードに利用するといいでしょう。 Sassの場合の書き方 $ マークに続いて任意の変数名を書き、コロンで区切って変数の値を記述。この値が呼び出されるようになります。実際に使いたい箇所では $ マークと変数名を書けば、変数を呼び出せます。 $main-gutter: 30px; .box { width: 300px; height: 100px; margin: $main-gutter; } CSSの場合の書き方 公式

                                                                  Sass不要!CSSだけでも変数やネスト、演算子が使えるよ!
                                                                • クソコードの思い出 in 2021

                                                                  最近、クソコード話が少ない気がするので、直近のクソコード情報を提供する。 出会い昨年夏、新卒二年目にして初めてクソコードに出会った。 あれは、新しいチームに移動した初日のことだった。 ファイルを開いた瞬間、大量のDimと、画面から見切れている、自動生成みたいな長さの変数宣言の行が目に飛び込んできた。 初めて見たクソコードのあまりの衝撃に、私は言葉を失った。ありえない。しかし、同時に興奮していた。これが俗にいうクソコードか...本当に存在していたんだ...と。 気を取り直して変数宣言のすぐ下にある関数の中身を確認する。MainProcess()と名付けられた15,000行の関数は、GUIの制御と入力値のバリデーションと業務ロジックの制御と処理結果の出力を司っていた。共通化できそうな処理は当然のようにコピペで済まされていた。 コピペの山を越えると、今度は、50~100行程度の関数たちが現れ始め

                                                                    クソコードの思い出 in 2021
                                                                  • Processingで見るプログラミングスタイル七変化 - Qiita

                                                                    序 この記事では、次のような一つの簡単なProcessingスケッチについて、様々なスタイルでコードを書いて比較してみます。 float[][][]d=new float[32][2][2]; float f(float[]x){return x[0]+=((frameCount%30==0?x[1]=random(100):x[1])-x[0])/4;} void setup(){size(800,800);fill(252,32);} void draw(){ square(0,0,800); scale(8); for(float[][]e:d) line(e[0][0],e[1][0],f(e[0]),f(e[1])); }#つぶやきProcessing pic.twitter.com/055DFzHmwF — FAL @STG制作とプログラミングお絵かき (@falworks_j

                                                                      Processingで見るプログラミングスタイル七変化 - Qiita
                                                                    • Kaggle Days World Championshipで優勝した話 - ABEJA Tech Blog

                                                                      ABEJAでデータサイエンティストをしている服部です。 2022年10月28, 29日にバルセロナにてKaggle Days World Championship Finalというデータサイエンスに関するイベント兼コンペティションが開催され、そこに参加しました。そして幸いなことに私の所属するチームが優勝することができました!! 本記事では今回のイベントそのものと、優勝に至るまでのコンペ上での過程や工夫点などについてご紹介しようと思います。 Kaggle Days World Championship Finalとは 1日目(ワークショップやプレゼンテーション等) Opening remarks by LogicAI and Kaggle HP introduction - Key note Kaggle Team - Ask Me Anything Winners team present

                                                                        Kaggle Days World Championshipで優勝した話 - ABEJA Tech Blog
                                                                      • ULPを活用した電池駆動ESP32雨センサシステムを作る - The Negligible Lab

                                                                        はじめに 明けましておめでとうございます🐇 とうとう昨年(2022年)の記事がただの1件から増えることがないまま2023年を迎えてしまいました。令和も何ともう5年です。さらにはもう2月ですね。 さて,新型コロナウイルスの流行が始まってから,筆者はほぼ在宅勤務となっています。その仕事机はちょうどバルコニー*1に通じる窓の直近に位置しています。このバルコニーには洗濯物も干しているのですが,雨が降り始めてもすぐ近くに座っている筆者がそれに気付かず,洗濯物を濡らしてしまうことが多々ありました。雨滴を検知して雨の降り始めをお知らせしてくれるシステムがあれば…いや,自分で作るのだ…! そこで,雨が降り始めたらLINEに通知を送ってくれる雨センサシステムを製作します。 まずは図1,2に完成形を示します。 図1: ESP32マイコンによる雨センサシステム 図2: “素”のESP32マイコンを搭載する基板

                                                                          ULPを活用した電池駆動ESP32雨センサシステムを作る - The Negligible Lab
                                                                        • Unityを通じて3D空間、グラフィックを理解する

                                                                          はじめに ゲーム開発の旅を始める上で、開発者が最低限理解すべきコンピュータの基本的な仕組み、グラフィックスの原理、そしてスクリプティングの技術について、本記事では詳しく掘り下げていきます。 コンピュータの心臓部であるCPUとGPUの役割と相互作用から始め、これらがどのようにして3D空間のレンダリングやアプリケーションの実行に影響を与えるかを解説します。 Unityエンジンを用いたゲーム開発では、これらのハードウェアコンポーネントの理解が不可欠です。 続いて、ゲーム開発におけるグラフィックスの基礎を学びます。 ここでは、ビルトインレンダーパイプラインから、より高度なUniversal Render Pipeline (URP) やHigh Definition Render Pipeline (HDRP) まで、Unityで利用可能なレンダリングパイプラインの違いとその選択がプロジェクトに及

                                                                            Unityを通じて3D空間、グラフィックを理解する
                                                                          • Pythonのスタイルガイドの確認 - めも

                                                                            スタイルガイド PEP-8 Google Python Style Guide django 既存のコードに対するpep8の確認 pep8 flake8 autopep8 docstringのフォーマット 各スタイルガイド要約 PEP8 Google C++ 参考文献 自分の確認用です. C++のスタイルガイド の確認も自分の勉強用です. スタイルガイド スタイルガイドは、出版物などにおいて統一した言葉遣いを規定する手引き (出典:スタイルガイド - Wikipedia) コーディングにおいても, 基本的な書き方のルールをある程度定めることで理解しやすいコードになりうる. いくつか種類が存在する. PEP-8 peps/pep-0008.txt at master · python/peps · GitHub はじめに — pep8-ja 1.0 ドキュメント Google Python

                                                                              Pythonのスタイルガイドの確認 - めも
                                                                            • お手軽で欲しい機能が揃っている実験管理ツールGuild AIの紹介 - kuromt blog

                                                                              機械学習の実験管理ツールにGuild AIというものがあります。特に大きな特徴はコード追加なしで実験管理ができるというものです。 試しに触ってみたところ、まさにコード追加なしで簡単に試せる、ちょっとした条件を変えた実行も簡単、結果の可視化はシンプルなCLIもリッチなGUIもどちらも用意されている、ローカルだけではなくS3にもデータを保存できる、しかもWebサーバを別に立てる必要がなく手元の環境で完結します。 ただ、Guild AIは一部の方にSNS上で言及されているものの日本語で書かれたドキュメントやブログは見つかりませんでした。良いツールが埋もれるのはもったいないと思いGuild AIの記事を書くことにしました。 この記事の前半では実行条件を変えながら実行して結果を可視化するまでの流れを紹介します。Guild AIのお手軽さをお伝えすることを意識しました。 後半はある程度実務での状況を想

                                                                                お手軽で欲しい機能が揃っている実験管理ツールGuild AIの紹介 - kuromt blog
                                                                              • Pythonを使って関数型プログラミング Part.2

                                                                                2019年9月16、17日、日本最大のPythonの祭典である「PyCon JP 2019」が開催されました。「Python New Era」をキャッチコピーに、日本だけでなく世界各地からPythonエンジニアたちが一堂に会し、さまざまな知見を共有します。プレゼンテーション「Pythonで始めてみよう関数型プログラミング」に登壇したのは、株式会社SQUEEZEの寺嶋哲氏。講演資料はこちら 不変/永続データ構造を提供するパッケージ 寺嶋哲氏:続いて、不変/永続データ構造についてです。 listを操作する関数の問題点について、例題で見ていきましょう。add_mangoは果物名の文字列のlistをとって、mangoをそのlistに足して返します。change_from_apple_to_bananaは、同じようにlistをとってappleを探して、bananaに入れ替えて返します。 その

                                                                                  Pythonを使って関数型プログラミング Part.2
                                                                                • Node.jsの2022年を振り返り、Node.jsの未来を見つめてみた ~TechFeed Experts Night#8講演より | gihyo.jp

                                                                                  TechFeed Experts Night Pick up Node.jsの2022年を振り返り、Node.jsの未来を見つめてみた ~TechFeed Experts Night#8講演より 本記事は、2022年11月に開催された「TechFeed Experts Night#8 ~ JavaScriptランタイム戦争最前線」のセッション書き起こし記事「Node.jsの2022年を振り返り、Node.jsの未来を見つめてみた by @shisama_」を転載したものです。オリジナルはTechFeedをご覧ください。 「Node.jsの2022年と未来」というタイトルで話します。よろしくお願いします。サイボウズでフロントエンドエンジニアをやっているshisamaです。 今日はNode.jsの18と19の主な変更点を紹介したいと思います。その後は、現在実装中の機能から、いくつかおもしろそう

                                                                                    Node.jsの2022年を振り返り、Node.jsの未来を見つめてみた ~TechFeed Experts Night#8講演より | gihyo.jp