並び順

ブックマーク数

期間指定

  • から
  • まで

241 - 280 件 / 1418件

新着順 人気順

条件分岐の検索結果241 - 280 件 / 1418件

  • Rustで作るプログラミング言語—— コンパイラ/インタプリタの基礎からプログラミング言語の新潮流まで

    この本の概要 小さなプログラミング言語から本格的なプログラミング言語へ……ステップバイステップでの開発を通して,プログラミングそのものへの理解を深めよう! こんな方におすすめ コンピュータサイエンス,とくにプログラミング言語そのものやコンパイラについての素養を得たいと考えている人 他言語でのプログラミング経験があり,Rustの習得に興味のある人。とくに,学習のための題材を探している人 第1章:プログラミング言語概論 プログラミング言語の分類 他の切り口での分類方法 コンパイルパイプライン 第2章:スタックベース仮想マシン 仮想マシン概論 Rustでの実装 標準入力からの読み込み パースとコマンドの実行 ブロックとネスト構造 if制御構文 変数の定義 複数行のソースコードへの対応 関数呼び出し 関数の再帰呼び出し WebAssemblyへのコンパイルとブラウザでの実行 第3章:プログラミング

      Rustで作るプログラミング言語—— コンパイラ/インタプリタの基礎からプログラミング言語の新潮流まで
    • 増田亨さんによる「設計の考え方とやり方」勉強会 書き起こし2 「設計スタイルの選択とクラス設計のスタイル」 - asken テックブログ

      増田亨さんによる「設計の考え方とやり方」勉強会 書き起こし2ページ目です。最初からお読み頂く場合は、こちらから御覧ください。 資料 増田さんの講演資料 質疑応答モデル なぜこの場を作ったのか 書き起こしリンク パート1「良い設計を目指す」 パート2「設計スタイルの選択とクラス設計のスタイル」(本記事) パート3「テーブル設計のスタイル」 パート4「開発のやり方と設計スキルと補足資料」 パート5「質疑応答」 目次 設計スタイルの選択 アプリケーション開発の今昔 クラス設計のスタイル クラス設計の分かれ道 なぜドメインモデル方式か ドメインモデル方式 クラス設計:複雑さを分離する ドメインモデル方式でアプリケーション全体をどう組み立てるか クラスの設計を改善する(リファクタリング) 設計スタイルの選択 ソフトウェアの変更を楽で安全にするために、私自身がどういう方向性の設計をやっているか、少し背

        増田亨さんによる「設計の考え方とやり方」勉強会 書き起こし2 「設計スタイルの選択とクラス設計のスタイル」 - asken テックブログ
      • Goコンパイラのお勉強(2)~高階関数のためのインライン展開とエスケープ解析~ - Techtouch Developers Blog

        はじめに インライン展開 インライン展開とは 高階関数のパフォーマンスが落ちる例 インライン展開の制約 エスケープ解析 エスケープ解析とは 高階関数のパフォーマンスが落ちる例 さいごに 参考文献 はじめに 先々月にも Go コンパイラの最適化に関するブログ記事を書いたのですが、多くのブックマークを頂けて感謝です! SRE の izzii です。 github.com 上のドキュメントを参考にしつつ Go コンパイラの最適化に関する記事を連載していきます。本記事は 2 本目です。 [第 1 回] Goコンパイラのお勉強(1)~ゼロ幅の型によるメモリ利用の最適化と未定義動作~ [本記事] Goコンパイラのお勉強(2)~高階関数のためのインライン展開とエスケープ解析~ [第 3 回] Goコンパイラのお勉強(3)~配列の効率的な操作に関する最適化~ 文字数の関係でタイトルでは高階関数という言葉を

          Goコンパイラのお勉強(2)~高階関数のためのインライン展開とエスケープ解析~ - Techtouch Developers Blog
        • TypeScriptで条件分岐時の可読性の高い変数設定 - Qiita

          本記事を対象とする人 TS,JSで極力letではなくconstを使うべきと思っている人 結論 ts-patternが便利 https://github.com/gvergnaud/ts-pattern 解説 何かのオブジェクトを参照して場合分けして、変数を定義したい場合があると思います 例 let platform = ''; if (game.name === 'ff3') { platform = 'fc'; } else if (game.name === 'ff4') { platform = 'sfc'; } const platform = (() => { if (game.name === 'ff3') { return 'fc'; } else if (game.name === 'ff4') { return 'sfc'; } return ''; })(); //--

            TypeScriptで条件分岐時の可読性の高い変数設定 - Qiita
          • 7pay問題から考えるデジタル化、デジタルトランスフォーメーションという言葉に感じる違和感(えふしん) - 個人 - Yahoo!ニュース

            7pay問題へのツッコミを読んでいてデジタル戦略、デジタル化、デジタルトランスフォーメーションという言葉が大企業を中心に多用されていることに対する違和感にたどり着いた。 デジタルトランスフォーメーションという言葉は、政府が出している日本再興戦略に書かれている。この方針に則り、いろんな会社がビジネスチャンスとデジタルという言葉を使って「デジタル化推進」を進めているようだ。 話は変わるが、子供の頃使っていたコンピュータのディスプレイは8色しか表示できなかった。もっと前の人だとグリーンディスプレイで2色しか表示できなかったと言うだろうが、このような発色に限界があるモニタの事を当時は「デジタルモニタ」と呼んでいた。それに対して、256色、32768色、24万色などとたくさん色が表示できるモニタのことを「アナログモニタ」と呼んでいた。 その後、時代が変わりコンピュータとの間の信号をデジタル伝送できる

            • 10万冊近いマンガのタイトルから巻数を取得する関数、巻数関数を作ったら思ったよりかなり大変だった話 - Qiita

              マンガのタイトルから巻数を取得したい 自作サービスでマンガのタイトルから巻数を取りたくなった。マンガのタイトルで、巻数は何処に書いてあるか?例えば集英社の「HUNTER×HUNTER 1」。見ての通り最後に1と書いてある。つまりタイトルの最後に書かれている数字を取得すれば巻数が取れそうだ。ただし、出版社によってルールは若干違い、小学館は「名探偵コナン 1」、講談社は「はじめの一歩(1)」、秋田書店は「ドカベン 第1巻」だ。 区切り文字の後の文字列から数字を抜き取ったものが巻数 ただ、巻数は何文字か分からない。それよりもタイトルと巻数の間に、空白や括弧のような区切り文字がある。出版社に合わせて、タイトルと巻数の区切り文字の後の文字列を取得すると、集英社と小学館は「1」、講談社は「1)」、秋田書店は「第1巻」という文字列が取れる。この文字列から正規表現などで数字だけを抜き取るようにすると無事タ

                10万冊近いマンガのタイトルから巻数を取得する関数、巻数関数を作ったら思ったよりかなり大変だった話 - Qiita
              • 【寄稿】独自言語のコンパイラを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
                • 商品数の増加を見据えて商品情報作成処理をPythonからBigQueryに移行した話 | SQLによるバッチ処理で工夫した3つのポイント - MonotaRO Tech Blog

                  こんにちは、EC基盤グループ 商品情報基盤チームの江村です。今回は私が所属している商品情報基盤チームで構築、運用を行っているシステムについてお話します。 モノタロウでは以前から記事になっていますが、検索システムの移行を行っており、現在商品検索ページの裏側の検索システムのSolrからElasticsearchへの切り替え*1が完了しました。 私が所属している商品情報基盤チームではElasticsearch、Spannerに入れるための商品情報の作成とSpannerおよび、Spannerからデータを取得するAPIの運用を行っています。今回はその中でもElasticsearch、SpannerのためのBigQueryでの商品情報作成処理について取り上げます。(詳しい検索部分の構成については以前の記事を参照ください) システム移行の背景 移行による設計ポイント 「MySQL + Python」の処

                    商品数の増加を見据えて商品情報作成処理をPythonからBigQueryに移行した話 | SQLによるバッチ処理で工夫した3つのポイント - MonotaRO Tech Blog
                  • エンジニア採用担当者が語る新卒・未経験エンジニアが今作るべき「自主制作物」「ポートフォリオ」|久松剛/IT百物語の蒐集家

                    前回のnoteでは主に2019年までIT業界を席巻していた若手エンジニアの売り手市場についてお話させて頂きました。今回は2018年から発生したプログラミング学校ブームから俄かに増加している未経験エンジニア層に関連し、今作るべき自主制作物についてお話させて頂きます。 自主制作物とは何かというと各個人で自主的に行っているプログラミングであり、実際のソースコードをGitHubに載せて職務経歴書にURL記載の上で提出するものを指します。未経験エンジニアの場合は習作といったところになります。 私は自社の採用だけでなく、リクエストベースですが人材紹介事業からの依頼で未経験者のコードレビューをすることがあります。特に自社については恐らく「未経験者の採用には企業がコストをかけたがらないので直接応募すべき」というマニュアルがプログラミング学校や情報商材で回っているようで、ご応募頂く機会は増えています。 以前

                      エンジニア採用担当者が語る新卒・未経験エンジニアが今作るべき「自主制作物」「ポートフォリオ」|久松剛/IT百物語の蒐集家
                    • 【TypeScript】 inferに詳しくなろう - Qiita

                      type Unpacked<T> = T extends (infer U)[] ? U : T extends (...args: any[]) => infer U ? U : T extends Promise<infer U> ? U : T; が何しているのかを読めるようになる。 また実際にinferを用いて実装できるようになるのが目的。 inferとは https://www.typescriptlang.org/docs/handbook/advanced-types.html#type-inference-in-conditional-types の抄訳 inferは日本語に表すと「推論」です。 TypeScriptのextendsを使うと、型での条件分岐が可能になります。(extendsについてもまとめたい) inferはその条件分岐で推論された型を指すときに用いることが

                        【TypeScript】 inferに詳しくなろう - Qiita
                      • 【Power Automateの新しいRPA機能】Power Automate Desktopで出来ること(全33機能の紹介) - Qiita

                        【Power Automateの新しいRPA機能】Power Automate Desktopで出来ること(全33機能の紹介)RPAPowerAutomateDesktop はじめに Microsoft Igniteの発表でPower Automateの「per user with attended RPA plan」で「Power Automate Desktop」が使用できるようになりました。2020年9月26日時点でPreview機能です。 この記事ではPower Automate Desktopの自動化機能(アクションと言います)を紹介します。 この紹介を通じPower Automate Desktopがどのような自動化を行えるかの参考になれば幸いです。 2020年9月26日時点のアクションとなります。 トライアル開始手順もまとめてみましたので併せてご覧ください。 【Power A

                          【Power Automateの新しいRPA機能】Power Automate Desktopで出来ること(全33機能の紹介) - Qiita
                        • 「Tween24.js」の新機能!ループやテキストアニメーションなど、ウェブサイトの演出に役立つ機能を追加 - ICS MEDIA

                          「Tween24.js」の新機能!ループやテキストアニメーションなど、ウェブサイトの演出に役立つ機能を追加 「Tween24.js」はメソッドチェーンで記述するのが特徴で、たった1行でアニメーションが実装可能なJavaScriptライブラリです。このライブラリを筆者が開発しているのですが、今年4月に公開したところ大変好評いただきました。 たくさんの要望もいただき、新しい機能を追加したのでアップデート内容を紹介します。今回はアニメーション制作において必要度の高い機能追加をメインに、各機能のブラッシュアップを行っています。 基本的な使い方や導入方法は、前回の記事「新感覚!メソッドチェーンでアニメーションがスラスラ書ける「Tween24.js」を作りました」をご覧ください。 今回のアップデート内容 新機能:トゥイーンを繰り返すloop() 新機能:トゥイーンを連続で遅延させるlag() 遅延させ

                            「Tween24.js」の新機能!ループやテキストアニメーションなど、ウェブサイトの演出に役立つ機能を追加 - ICS MEDIA
                          • ドメイン駆動設計を参考にしながらJava×SpringBootで家計管理アプリを自作 - Qiita

                            2-3. 使用技術 アプリケーション作成 Java 17.0.2 Spring Boot 3.0.3 Spring Security 6.0.5 JOOQ 3.17.8(ORマッパー) データベース MySQL 8.0.32 UI HTML(Thymeleaf) CSS(Bootstrap 5.0.2) JavaScript(Chart.js 4.3.0) インフラ Fly.io (https://fly.io/) PlanetScale (https://planetscale.com/) 3. 実装するにあたって意識したこと 実務未経験者が初めて作成するアプリなので、何も考えずに作るとコードが無秩序な状態に陥ってしまうのではないかと思い、何かしら方針を決めたいと考えました。以前、書籍『現場で役立つシステム設計の原則』を読んだ際に、保守や変更に強いソフトウェアを作るための設計思想に「ドメ

                              ドメイン駆動設計を参考にしながらJava×SpringBootで家計管理アプリを自作 - Qiita
                            • ネットワーク自動化とプログラマビリティ

                              本書はネットワーク自動化とプログラマビリティにフォーカスした解説書で、ネットワークエンジニアの業務を「より効率良く」「より生産的に」進化させるためのエッセンスが詰まったノウハウ集です。ネットワーク運用業務(ネットワーク装置のコンフィグレーションやトポロジー管理、サービス死活監視など)をどのように効率化・自動化させるかという観点から、次世代ネットワークエンジニアが知るべきすべての側面を網羅的に解説します。Pythonを用いたプログラミングの基本から、Linuxの操作、データモデル、Gitによる管理、実践的な自動化ツールの解説まで幅広く扱います。 目次 賞賛の声 監訳者まえがき はじめに 1章 ネットワーク業界の動向 1.1 SDNの登場 1.1.1 OpenFlow 1.1.2 SDNとは 1.2 まとめ 2章 ネットワークの自動化 2.1 ネットワークを自動化する意義 2.1.1 シンプル

                                ネットワーク自動化とプログラマビリティ
                              • 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」
                                • Googleタグマネージャが同意の設定に対応 | アユダンテ株式会社

                                  なお同意ツールを利用していない場合、各同意タイプのデフォルト値は「許可」扱いになります。 そのため、GTMの同意設定に対応した同意ツールのタグテンプレート等を利用していないのであれば、タグの同意設定を変えても特に動作に変化はありません。 一括操作で同意設定を行えるようになる「同意の概要を有効にする」 同意ツールをサイトで利用しているのであれば、ONにしておきたいのが「同意の概要を有効にする」オプションです。 これは管理メニューの「コンテナの設定」画面へ追加されています。 管理 > コンテナの設定 へ「同意の概要を有効にする」が追加実装。 「同意の概要を有効にする」をONにすると、以下の機能が使えます。 タグの一覧画面から、複数のタグの「同意設定」を変更可能になる タグの一覧画面の右上へ同意概要アイコンが追加され、同意設定状況のリストを確認可能になる 要は複数のタグへ一括で同意設定できるよう

                                    Googleタグマネージャが同意の設定に対応 | アユダンテ株式会社
                                  • freee社内のアクセシビリティのいい話 2020年8月号 - freee Developers Hub

                                    どうも、20新卒の全盲のコード書き、野澤です。社内では cat と呼ばれています。猫好きなのでこの名前です。もう猫になりたいぐらい猫好きです。 私が正社員として入社してから4か月が経過しました。そのなかで、freee社内でアクセシビリティのいい話がたくさんありましたので、そのうちのいくつかを共有したいと思います。「アクセシビリティ」という言葉を聞いたことがない方や、アクセシビリティについてもっと知りたいという方は、以下のエントリーもぜひご覧ください。 jobs.freee.co.jp developers.freee.co.jp developers.freee.co.jp 全盲なのにコードは書けるのか? はい。このような疑問を抱く方も、当然いらっしゃるのではないでしょうか? 全盲ということは、まったく目が見えないということです。画面が見えないわけなので、コードも見えないし、termina

                                      freee社内のアクセシビリティのいい話 2020年8月号 - freee Developers Hub
                                    • Reactのディレクトリ構成について再考する - ロカオプ技術ブログ

                                      概要 みなさんこんにちは。フルスタックエンジニアの高瀬 @takasehiromichi です。 今回は、Reactのディレクトリ構成について再考する機会があったので、記事にしようと思います。 なお、技術スタックについては以下の記事を参照してください。 tech.locaop.jp Reactのディレクトリ構成について 現状は、フロントエンドのsrc配下は以下のような感じになってます。 @interfaces/ (55) api/ (88) components/ (50) context/ (3) pages/ (136) utils/ (22) これ、ロカオプMEO側だけ書いているんですが、プロダクトもだいぶ成長してきまして、それぞれのディレクトリ内のファイル数がすごいことになってます。 (かっこ内の数字がファイル数です。) それぞれのmonorepo内のディレクトリが、こんな感じです

                                        Reactのディレクトリ構成について再考する - ロカオプ技術ブログ
                                      • ぼくのかんがえたさいきょうのスプレッドシート関数 - ブログ - 株式会社JADE

                                        はじめまして、こんにちは、こんばんは。JADEでSEOコンサルタントをやっております、小坂と申します。 JADEのブログを読んでくださっている皆様の多くは日々データ分析や調査をされているのではないかと思います。Looker Studioのような便利なBIツールを利用したり、BigQueryを駆使することが増えている昨今。それでもなんだかんだExcelやGoogle スプレッドシートを使うことも多いのではないでしょうか。 SQLなんて書けないよ!とかBigQueryはなんか怖い……という理由からスプレッドシートとズッ友だょ!という方もいるのではないでしょうか。 早速ですがそんなみなさんにご質問です。 Google スプレッドシートの独自関数使ってますか? Google スプレッドシート独自関数、結構多いのをご存知でしょうか? Google スプレッドシートの関数リスト - Google ドキ

                                          ぼくのかんがえたさいきょうのスプレッドシート関数 - ブログ - 株式会社JADE
                                        • 若手エンジニアが「良いコードを書く」ための「学びの場」をつくりました

                                          はじめまして。コードキャンプ株式会社の取締役と、フューチャー株式会社でコアテクノロジーグループ(R&D部門)のリーダーを務めている星です。 私は独立系SIerやTech系ベンチャーを経て、2007年にフューチャーに入社し、大規模基幹系システム、BtoC向けメディアサイトなど、多くのプロジェクトでITアーキテクトとして従事、2018年からコアテクノロジーグループというフューチャーのR&D部門のリード、2021年からはコードキャンプの取締役を兼務しています。 今回、フューチャーグループ内のコラボレーションとして、コードキャンプ株式会社が提供する「CodeCampNEXT コーディングレベルアップコース」を監修しました。 講座を通じ、「良いコード」を書いて「良いキャリア」を実現するエンジニアが1人でも増えることを期待しています。 「良いコードの書き方」を学べる機会が少ない 問題意識として、若手エ

                                            若手エンジニアが「良いコードを書く」ための「学びの場」をつくりました
                                          • 事業の「できるだけ全体」を意識して、ソフトウェアを育てる - エス・エム・エス エンジニア テックブログ

                                            医療、介護、ヘルスケア、シニアライフの領域で高齢社会に適した情報インフラを構築している株式会社エス・エム・エスでエンジニアをしている @moro です。 主に介護領域におけるキャリア分野のサービス、平たく言えば介護の担い手である従事者の方の就職・転職を良いものにするための事業に携わっており、特に カイゴジョブという求人サービスの開発・運用をしています。 カイゴジョブについて カイゴジョブは 2004 年にオープンした、介護職向け求人情報サービスです。 2019年9月にフルリニューアルし、現在は Ruby on Rails で動いています。筆者は2018年にエス・エム・エスに転職してこのリニューアルに関わり、以来ずっとカイゴジョブの開発・改善を続けています。 現代のソフトウェアサービスでは、リリースしたら完了でそのあとは変更しない、というものは少なく、多くは継続的に変化し続けます。これは、サ

                                              事業の「できるだけ全体」を意識して、ソフトウェアを育てる - エス・エム・エス エンジニア テックブログ
                                            • GitHub Actionsとtfupdateを使ってTerraformおよびTerraform Providerのバージョンアップを自動化する - ZOZO TECH BLOG

                                              はじめに こんにちは。SRE部MLOpsチームの築山(@2kyym)です。 Infrastructure as Code(IaC)が一般的になり、またパブリッククラウドをフル活用したインフラ構築が当たり前となりつつあります。そんな中で、インフラの構成管理にTerraformを用いているチームも多いのではないでしょうか。本記事ではTerraformを用いたインフラ構成管理において避けては通れないTerraformやProviderのバージョンアップを自動化し、IaCの運用負荷を削減する方法をご紹介します。MLOpsチームでの運用を参考に、具体的な設定やハマりどころを交えつつ解説できればと思います。 目次 はじめに 目次 Terraformとは MLOpsチームにおけるTerraform運用の背景 Terraform管理の対象リソース Terraform運用において生じた課題 tfupdate

                                                GitHub Actionsとtfupdateを使ってTerraformおよびTerraform Providerのバージョンアップを自動化する - ZOZO TECH BLOG
                                              • ImHex:午前3時にがんばる人のためのバイナリエディタ - setodaNote

                                                ImHex という Hex エディタを Ubuntu 20.04 にインストールしたときのメモ書きです。 ImHex ImHex を Ubuntu 20.04 にインストールする ImHex の画面設定 動かしてみた感想 参考文献 ImHex 公式 cmake 周り 参考にしたトラブルシューティング 付録 concepts が見つけられないというエラーについて 「CMake Error at cmake/build_helpers.cmake:55」について 更新履歴 ImHex ImHex は2020年の12月に公開された比較的新しい、午前3時にがんばる人のための Hex エディタです。 *1 GitHub - WerWolv/ImHex: A Hex Editor for Reverse Engineers, Programmers and people that value thei

                                                  ImHex:午前3時にがんばる人のためのバイナリエディタ - setodaNote
                                                • YAGNIと拡張性のあいだ - 電通総研 テックブログ

                                                  こんにちは!Xイノベーション本部プロダクトイノベーションセンターの米久保 剛です。 弊社のテックブログ上では今回が初めての記事執筆となります。アーキテクチャ設計やアプリケーション設計の話を中心に、不定期に情報発信していきたいと考えています。 YAGNI原則 YAGNI原則をご存知でしょうか。 エクストリーム・プログラミング(XP)の重要な原則の一つであるこの原則は、You Ain't Gonna Need Itのアクロニム(頭字語)から命名されています。日本語にすると「どうせ要らないって」というニュアンスでしょうか。推測に基づいて余計な機能を作り込んだところで将来実際に使われる可能性は低く、時間と労力を無駄にするばかりかコードの複雑化などのリスクさえあります。ですから、現時点でわかっている要件をちょうど満たすだけの機能を実装すべきであるとYAGNI原則は主張します。 YAGNI原則は機能(

                                                    YAGNIと拡張性のあいだ - 電通総研 テックブログ
                                                  • ドメインモデルからUIデザインとページレイアウトを設計した話|yuki_sasaki

                                                    この記事は SmartHR Advent Calendar 2019 21日目の記事です。こんにちは。デザイナーの@tyoys00です。 初めてAdvent Calendarに参加します。これで私も立派なIT人材です。 UIデザインってなんだろう?突然ですが、デザイナーのみなさんUIデザインしてますか? してます? では、UIデザインってなにをデザインすることなのでしょうか? UIデザインってなんなのでしょう? 私は何もわかりません。デザイン、何もわからない… 私はこの1年上記のような「UIデザインとはなにを作っていることなのか?」ということばかり考えていた気がします。(そして、気づいたら年末になっていました…)。 結論から言うと、UIデザインとはデータベースやサーバーサイドで実装された構造とフロント側での視覚的な情報構造との対称性を設計することであるという考えに至っています。 この実装の

                                                      ドメインモデルからUIデザインとページレイアウトを設計した話|yuki_sasaki
                                                    • sqldefへのSQL Server対応のコントリビュート 〜OSS活動を通して紐解くDBマイグレーションツールの実装〜 - ZOZO TECH BLOG

                                                      はじめまして、ECプラットフォーム部 API基盤チームに2021年新卒入社した山添です。普段はAPI GatewayやID基盤の開発に携わっています。 データベースを運用していると、ビジネスロジックの変更やクエリ最適化のためにデータベーススキーマを変更することがあります。その際にデータベースマイグレーションツールを使うことで、運用の過程で変更されるスキーマの管理を楽にできます。 しかし、データベースマイグレーションツールであるsqldefが便利なのですが、弊社で使われているSQL Serverには対応していませんでした。そのため、何かしらの対策が必要でした。 本記事では、それらに関連した以下の内容を紹介します。 データベースマイグレーションツールとしてsqldefを採用していること sqldefでSQL Serverサポートをするためにコントリビュートしていること sqldefの開発のため

                                                        sqldefへのSQL Server対応のコントリビュート 〜OSS活動を通して紐解くDBマイグレーションツールの実装〜 - ZOZO TECH BLOG
                                                      • 【GEE】ランダムフォレストで土地被覆分類を行う【衛星データ解析】 - LabCode

                                                        土地被覆分類とは? 衛星画像や航空写真などのリモートセンシングデータを分析し、地表のさまざまなカバータイプ(例えば、森林、農地、水域、都市地域など)を識別するプロセスです。土地被覆分類は地球環境のモニタリング、土地利用計画、生態系の管理、気候変動の研究など、多くの応用分野で利用されます。 以前の記事で利用した環境省生物多様性センターの植生図をはじめ、国土地理院の地理院地図、産総研のシームレス地質図などが作成され公開されています。 GEEには土地被覆分類を行うためのオブジェクトとしてee.Classifierというものが用意されています。これを利用することで機械学習を利用した土地被覆分類を行うことができます。 ee.Classifierが対応している主要な機械学習モデルは以下の通りです。 決定木(Decision Tree):条件分岐によってグループに分けられる木の構造をしたものです。回帰に

                                                          【GEE】ランダムフォレストで土地被覆分類を行う【衛星データ解析】 - LabCode
                                                        • Rust + LLVMでプログラミング言語を自作してセルフホスティングした話

                                                          llrlは自作のプログラミング言語です。大きな特徴が2つあります。 Hindley-Milnerベースの型推論による静的型付け (+型クラス) Lisp-likeなS式によるシンタックスとLLVM JITによるマクロ この言語の処理系をRustとLLVMを用いて実装し、それをllrl上に移植してセルフホスティングを試みました。無事セルフホスティングを達成したので、取り組んだことやモチベーションなどを順に振り返りたいと思います。 LLVMについては、フロントエンド側・バックエンド側ともに既にいくらかの解説記事が見られるため、概要は省略します。今回は新たなプログラミング言語のバックエンドとしてLLVMを用いるので、LLVMのフロントエンド側の実装がメインとなります。 事の発端: LLVM Kaleidoscopeチュートリアル Kaleidoscopeは、LLVMのチュートリアルにおいて実装す

                                                            Rust + LLVMでプログラミング言語を自作してセルフホスティングした話
                                                          • ZOZOTOWN検索におけるA/Bテスト分析の自動化の取り組み - ZOZO TECH BLOG

                                                            はじめに こんにちは。検索基盤部の岩崎です。検索基盤部ではZOZOTOWNの検索機能の改善に日々取り組んでいます。ZOZOTOWNのおすすめ順検索のプロジェクトでは、機械学習モデルを活用した検索結果の並び順の改善に取り組んでおり、全ての施策はA/Bテストで検証しています。なお、最近の並び順精度改善の取り組みについては以下の記事をご参照ください。 techblog.zozo.com 本記事におけるA/Bテストとは、特定期間中ランダムに振り分けたユーザーに対してそれぞれ別の施策を提示し、その成果の差を検定するテストのことを指します。A/Bテストは施策の効果を検証するための優れた手段として広く知られており、おすすめ順検索改善のリリース判断には欠かせない存在となっています。ZOZOではA/Bテスト基盤の整備を進めており、おすすめ順検索以外にもさまざまな施策でA/Bテスト基盤を用いた運用がされていま

                                                              ZOZOTOWN検索におけるA/Bテスト分析の自動化の取り組み - ZOZO TECH BLOG
                                                            • ANDPAD Rails 6.0へのアップグレード - ANDPAD Tech Blog

                                                              r7kamuraと言います。2020年9月頃からANDPADの開発に参画しています。 2021年2月、ANDPADで利用しているWebアプリケーションフレームワーク Ruby on Rails (以下Rails) のバージョンを5.2から6.0にアップグレードしました。今後アップグレードを行う方が同様の作業を行えるよう、今回の変更に伴い必要となった作業について、あらためて言語化してこの記事で共有できればと思います。 全体の流れ 大まかに分けると、今回は次のような手順で作業を進めていきました。 Rails 5.2系の最新のバージョンに上げる Rails 6.0版のブランチを用意してテストを通す Rails 5.2と6.0に両対応したコードに変更する Rails 6.0で検証を進める Rails 6.0に本番環境を切り替える Rails 5.2向けの対応を取り除く Gemのバージョン変更 Ra

                                                                ANDPAD Rails 6.0へのアップグレード - ANDPAD Tech Blog
                                                              • Twilioを利用した障害時の自動連絡網システムについて - BASEプロダクトチームブログ

                                                                この記事はBASE Advent Calendar 2020の5日目の記事です。 SRE Groupのngswです。 Eコマースプラットフォーム「BASE」における障害発生時に、社内関係者に連絡網に基づいて電話発信するシステムを構築しました。 このエントリでは、その導入までの経緯と具体的な当該システムの説明をします。 TL;DR 「BASE」で問題が発生した際に意思決定者に電話発信する周知システムを構築した 「導入前に考えたこと」をまず主題として書いた 参考URL記事のまま手順であるが、それでも導入時に詰まった事柄など落ち穂拾い的に追記した 謝辞 Twilio FunctionsとStudioを使って連続架電を行う - Qiita 大変わかりやすい記事であり、ほぼすべてを参考にさせていただいた。このQiita記事がなければ短期間で実現することは不可能であったと考える 導入に至る経緯 07月

                                                                  Twilioを利用した障害時の自動連絡網システムについて - BASEプロダクトチームブログ
                                                                • 【Ansible】メンテナンスしやすいPlaybookの書き方 | 電算星組

                                                                  Playbookは外部ファイルのインポートや条件分岐やループなどの制御構文が使えるため、プログラミングと同様にソースコード品質管理の考え方を活用できます。 本記事では、筆者がPlaybookを作成する際に、後々メンテナンスしやすいように気を付けていることを紹介します。(もっと良い方法がある場合は、コメントいただけると助かります) インベントリ(Inventory) ターゲットノードにはホスト名とIPアドレスを書く インベントリ(Inventory)には、構成管理対象のノード(以下、ターゲットノード)を記載します。IPアドレス、ホスト名(FQDNも可)どちらの書き方も可能ですが、それぞれ以下の問題があります。 IPアドレス: ターゲットノードが何のサーバなのか分からず可読性が悪い ホスト名: Ansibleを動かすサーバがホスト名を名前解決できる必要がある 上記の問題を解決するため、ターゲッ

                                                                  • Ruby 3.1はここに注目! 新しいJITとは? デバッガ、エラーメッセージ、そして未来! リリースマネージャーに聞いた |ハイクラス転職・求人情報サイト AMBI(アンビ)

                                                                    Ruby 3.1はここに注目! 新しいJITとは? デバッガ、エラーメッセージ、そして未来! リリースマネージャーに聞いた 2021年12月25日にリリースされたばかりのRuby 3.1では、どのような機能がどういった経緯で採用されているのでしょう。リリースマネージャーのnaruseさんと、フルタイムコミッターのmameさん、ko1さんに詳しくうかがいました。 プログラミング言語Rubyでは2013年の2.1.0以降、毎年クリスマス(12月25日)にメジャーバージョンアップが行われています。2021年も無事にバージョン3.1.0がリリースされました。 ▶ Ruby 3.1.0 リリース Ruby 3.1は、言語機能の面では全体的に穏やかなリリースにも見えますが、新しい方式のJIT(just in time)コンパイラ、標準の新デバッガー、事前アナウンスでも好評だったエラーメッセージの改善な

                                                                      Ruby 3.1はここに注目! 新しいJITとは? デバッガ、エラーメッセージ、そして未来! リリースマネージャーに聞いた |ハイクラス転職・求人情報サイト AMBI(アンビ)
                                                                    • 関数の再帰的な定義に名前付けは必要か - 貳佰伍拾陸夜日記

                                                                      結論から言うと, 名前を付けることなく再帰的な関数を定義することは可能. 特定のプログラミング言語でどうかというよりは抽象概念としての関数の再帰を名前なしに実現可能かどうかという話(名前なしに実現できるプログラミング言語は存在するかという話). 発端 id:naoyaさんがこういうツイートをしていた. 再帰を書くときに何気なく関数に名前つけたり let で束縛したりしてたけど「再帰には三項関係が必要でありその実現には記号が本質的に関わる」とあり、名前づけの行為が必然だったことが分かった。プログラミングするときの視点が変わるな— naoya (@naoya_ito) 2022年8月12日 たとえば以下のように書いたときのlet fact =みたいな話. let fact = n => n <= 1 ? 1 : n * fact(n-1) ちなみに, 話は一見逸れるけど, こう書けると必然的に

                                                                        関数の再帰的な定義に名前付けは必要か - 貳佰伍拾陸夜日記
                                                                      • 統計学・機械学習を自分なりに概観してみた - Qiita

                                                                        *この記事は統計学や機械学習を専門としていない学生が書いた主観的なまとめ記事です。間違いが含まれている可能性があります。 統計学・機械学習を学んでいると、たくさんの手法や考えが出てきてよくわからなくなります。 特に自分が何かに取り組んでいるときには、今やっている手法が全体から見てどういうものなのか、より良い手法が無いのかが気になってしまいます。 まるで地図を持たず森の中を彷徨っているような感覚です。 そこで、統計学・機械学習で使われる概念や手法を自分なりにまとめて頭を整理したいと思います。 以下のような図になりました。 以下にそれぞれを説明します。 数理科学 統計学・機械学習のベースとなる学問です。 主に解析学、代数学、幾何学からなります。 微分積分学と線形代数学が基本になってるのは言うまでもないと思います。 その他に個人的に関わりが深いと思う分野を3つ挙げます。 確率論 大数の法則(中心

                                                                          統計学・機械学習を自分なりに概観してみた - Qiita
                                                                        • コンポーネントの分類について考えたことをまとめた

                                                                          どのようにコンポーネントを分類していくか 個々のコンポーネントがが単一の責任のみ負っている状態であれば、コードの見通しも良くなる上、後々のメンテナンスも容易です。 まずは「複数の関心ごとを1つにまとめない」という原則(単一責任の原則)から分類の指針を考えていきます。 フロントエンドにおける関心ごとですが、大別すると APIとの接続 View(表示とイベント実行) 状態管理 以上3つに集約されるのではないでしょうか。 では、これらの関心ごとをどの様に切り分けていけば良いのか考えていきます。 APIとの接続 まずはAPIとの通信ですが、こちらはコンポーネントの外で管理した方が良いと考えています。 各コンポーネントに通信に関わる処理がベタ書きされている状態だと、エンドポイントの変更等に弱くなり、通信処理の再利用も面倒です。 それに、「フロントの状態管理 / 表示」と「外部との接続」はそれぞれ別種

                                                                            コンポーネントの分類について考えたことをまとめた
                                                                          • Kubernetes 8 Factors - Kubernetes クラスタの移行から学んだクラスタのポータビリティの重要性と条件 | Wantedly Engineer Blog

                                                                            Kubernetes 8 Factors - Kubernetes クラスタの移行から学んだクラスタのポータビリティの重要性と条件 こんにちは、Wantedly で技術基盤に関わる Developer Experience Squad で Engineer をしている大坪(@potsbo)です。 今日は、WANTEDLY TECH BOOK 7 から「Kubernetes クラスタの移行から学んだクラスタのポータビリティの重要性と条件」という章を抜粋し加筆修正を加えたものを Blog にします。 「WANTEDLY TECH BOOK 1-7を一挙大公開」でも書いた通り、Wantedly では WANTEDLY TECH BOOK のうち最新版を除いた電子版を無料で配布する事にしました。Wantedly Engineer Blogでも過去記事の内容を順次公開予定であり、この Blog もそ

                                                                              Kubernetes 8 Factors - Kubernetes クラスタの移行から学んだクラスタのポータビリティの重要性と条件 | Wantedly Engineer Blog
                                                                            • React 初心者が Material-UI で今どきの Web フォームを作ってみた(yup編) | DevelopersIO

                                                                              React 初心者が、Material-UI と React Hook Form v7 を活用して今どきの Web フォーム開発に挑んでみました! つい先月、React(+ React Hook Form)と Material-UI を組み合わせた Web アプリ開発を始めました。アプリ開発初心者でも簡単に、かつ今っぽい Web フォームを開発することができたので、少しコードを交えてご紹介してみたいと思います。 なお本記事は、前の記事(react-hook-form編)に続く形式となりますので、お時間あれば下記の記事も合わせてご参照いただけますと幸いです。 作ってみた 前回の記事で作成した Web フォームの基本項目(Basic.js)というフォームに下記の yup という JavaScript schema builder を利用してバリデーションの機能を追加していきたいと思います。 バ

                                                                                React 初心者が Material-UI で今どきの Web フォームを作ってみた(yup編) | DevelopersIO
                                                                              • 世界のプログラミング言語(31) PostScriptは印刷業界を支えたスタック指向型言語

                                                                                本連載で今回扱うのはPostScriptです。この言語はプリンターで実行されることを想定して開発されたページ記述言語の一種です。PostScripはスタック指向のプログラミング言語です。プログラミングを楽しめる上に、図形や文字を描画できるので、遊んで楽しい言語でもあります。今回はPostScriptで遊んでみましょう。 PostScriptを使ってPDFを生成してみよう PostScriptについて PostScriptは1984年にアドビによって開発されたページ記述言語です。1985年にAppleのレーザープリンターに採用されて普及しました。なぜ印刷とプログラミング言語が関係するのか不思議に思うかもしれません。PostScriptが登場した時代、電子印刷はそれほど普及していませんでした。というのも、コンピューターとプリンターの通信速度は遅く、高品質な印刷データをプリンタに転送するのに膨大

                                                                                  世界のプログラミング言語(31) PostScriptは印刷業界を支えたスタック指向型言語
                                                                                • ULPを活用した電池駆動ESP32雨センサシステムを作る - The Negligible Lab

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

                                                                                    ULPを活用した電池駆動ESP32雨センサシステムを作る - The Negligible Lab