タグ

ブックマーク / codezine.jp (79)

  • きちんと届くメールを実現するには? 『メール技術の教科書』著者に聞く、古くて新しいメールの世界

    書店員との対話で、メール技術書の不足に気づく 増井氏は技術士として関連知識の教育を提供するとともに、プログラマーとしても活躍している。ネットワークや情報セキュリティの分野でテクニカルエンジニアとしての役割を果たし、情報処理技術者試験やビジネス数学検定1級などの資格試験にも多数合格。ソフトウェア開発では、ビジネス、数学ITを融合させ、コンピュータの効率的かつ正確な使用法を支援している。 教育の一つとしてを執筆する活動もしており、『Obsidianで“育てる”最強ノート術』(技術評論社刊)『1週間でシステム開発の基礎が学べる』(インプレス刊)『「技術書」の読書術』『図解まるわかり セキュリティのしくみ』『図解まるわかり プログラミングのしくみ』(翔泳社刊)など多数の書籍を執筆。個人でも同人誌づくりをしたり、シェア型のリアル書店で自身の書籍を販売したりするなどの活動も行っている。 増井氏は

    きちんと届くメールを実現するには? 『メール技術の教科書』著者に聞く、古くて新しいメールの世界
  • FlutterのBuildContextとは?──その役割と制限をきちんと理解しよう

    今回は、これまでコード上でなんとなく使ってきたBuildContextを中心に説明します。そして、Flutterだけではなく他のフレームワークを利用する際にも通用する共通概念として理解できるようにします。そして「なんとなく」の意味が「ぼやっとした理解」から「抽象的な理解」という意味へ変わることをお助けできればと思います。 Contextとは BuildContextの具体的な内容を説明する前に、まずはContextという言葉からプログラミングにおける抽象的な用途について言及します。 Flutterに限らずさまざまなフレームワークではContextという用語がよく利用されます。そして、多くの場合、それらもなんとなく利用されている状況です。そこで、まずはContextという言葉についてより深く考えてみます。特に、FlutterにおけるBuildContextの説明ではよくわからないという方は、

    FlutterのBuildContextとは?──その役割と制限をきちんと理解しよう
    kaido
    kaido 2023/11/23
  • 【Flutter解説】データをもとに画面処理を行う方法──ビジネスロジックと画面処理のアーキテクチャを知ろう

    サンプルアプリの概要 今回、使用するサンプルアプリは図1のようなアプリです。画面は3つありますが、すべて同じ画面であり、また、そのふるまいも同じです。 ただし、以下のように3つのアーキテクチャを使って実装します。それらの違いについて、アーキテクチャの構造とコード面から違いを見てほしいと思います。 図1:HTTPからJSONデータを取得し表示するサンプルアプリの画面 Stateのみを用いる方法 変更(イベント)通知(ProviderとChangeNotifier/Consumer)を用いる方法 BLoCパターン(ProviderとStreamController/StreamBuilder)を用いる方法 Stateのみを用いる方法 この方法はアーキテクチャと呼べるかわかりませんが、最も基となる知識のみを使って実装する方法です。後で紹介する他の2つの方法と比べて、どこが変わるかを知っていただ

    【Flutter解説】データをもとに画面処理を行う方法──ビジネスロジックと画面処理のアーキテクチャを知ろう
    kaido
    kaido 2023/09/01
  • Rust/WebAssemblyのトラブルに効くデバッグ&高速化テクニック

    連載では、Webブラウザー上でJavaScriptとともに動作できるバイナリ形式のプログラムファイル「WebAssembly」を、Rustプログラミング言語で実装する方法を説明していきます。前回はRust/WebAssemblyJavaScriptとのデータ交換について説明しました。今回は、ログ出力とファイルサイズ縮小の方法、および、成果物をパッケージにして世界に公開する方法を説明していきます。 はじめに 連載では、Webフロントエンド開発において注目されているバイナリ形式のプログラムファイルWebAssemblyを、Rustで実装して活用する方法を説明しています。 より格的にプログラムを開発するには、正しく動作させるまでにデバッグを行う必要があります。記事ではデバッグ時に利用できるログ出力について説明します。また、アプリの読み込み速度をより速くできる、ファイルサイズ縮小方法につ

    Rust/WebAssemblyのトラブルに効くデバッグ&高速化テクニック
    kaido
    kaido 2023/08/13
  • 「SPACEフレームワーク」とは何か:開発者の生産性を多面的に評価する新しい評価手法

    開発者の生産性を多面的に評価する指標として注目されている「SPACEフレームワーク」。連載では、SPACEフレームワークとは何か、そして筆者の事例を通じて、組織へ実際に導入・運用するためのヒントを紹介します。今回はSPACEフレームワークの概要と使い方について紹介します。 SPACEフレームワークとは SPACEフレームワークは、開発者の生産性を多面的に評価するためのフレームワークです。 このフレームワークは、GitHub、ビクトリア大学、Microsoft Researchのメンバーによって提唱され、『LeanとDevOpsの科学』の著者でもあるNicole Forsgren氏によって「The SPACE of Developer Productivity」という論文の形で発表されました。 論文では、開発者の生産性についての神話と誤解を明らかにし、「重要な1つの指標」で把握することはで

    「SPACEフレームワーク」とは何か:開発者の生産性を多面的に評価する新しい評価手法
  • 2人のJavaエキスパートが考える、クラウドネイティブ時代にJava開発者に求められるスキルとは

    ヤフーでは、2017年頃よりプラットフォームのモダナイゼーションを進める中で、Javaを標準言語のひとつとして位置付けました。現在はCI/CDなども導入し、ビジネススピードの変化に対応できる基盤が確立。運用・拡大フェーズに入ったことで、新たな課題やその解決に取り組んでいます。Javaの最新情報に加え、Javaを活用したモダナイゼーションに取り組む際にはどんな課題があり、開発や運用上でどんな工夫が必要なのか。ヤフーでJavaを活用したモダナイゼーションに取り組んだ高見拓也氏と、Java Championの寺田佳央氏に語っていただきました。 2人のJavaエキスパートが注目するJavaの新機能 ──お二人はJavaに関してどのような取り組みをしていますか。 高見拓也氏(以下、高見):ヤフーには2012年に入社し、広告主向けのプラットフォームをJavaで刷新するプロジェクトを担当しました。現在は

    2人のJavaエキスパートが考える、クラウドネイティブ時代にJava開発者に求められるスキルとは
  • 新世代Vim「Neovim」を多機能IDEに変身させる「AstroNvim 3.0.3」が登場

    「AstroNvim」の開発チームは、最新バージョンとなる「バージョン3.0.3」を3月11日(現地時間)に公開した。AstroNvimは、「Vim」からフォークした新世代エディタ「Neovim」を多機能統合開発環境に変身させる各種設定ファイルとプラグインをまとめたパッケージ。GNU General Public License v3.0で公開しているオープンソース・ソフトウェア。 AstroNvimは、ウィンドウ左側にディレクトリ・ツリーを表示するファイル・エクスプローラーや、コード補完機能、Gitクライアント、ウィンドウ内に表示するターミナル、言語サーバー プロトコル(LSP:Language Server Protocol)クライアントなどの機能をNeovimにまとめて提供するパッケージ。AstroNvimを利用することで、Neovimを多機能統合開発環境に変身させることができる。

    新世代Vim「Neovim」を多機能IDEに変身させる「AstroNvim 3.0.3」が登場
    kaido
    kaido 2023/03/17
  • Gitの内部構造をよく理解して、うまく使おう【基本の仕組みを解説】

    対象読者 Gitをより深く理解したい方 Gitの自作に興味がある方 Gitの内部構造を学ぶ意義 Gitの使い方を知っている人でも、それぞれのサブコマンドが実際どういった挙動をしているか、ましてや内部構造がどうなっているかを学んだことがある人は少ないかもしれません。というのも、Gitが内部を知らなくとも十分使える優秀なツールになっているからだと思います。 しかし、Gitの内部実装を知ることで、コマンドの挙動を正確に理解できるだけでなく、Gitを使っていて何らかの問題が起きたときにも、自分で対処できるようになります。そうしたGitの地力を鍛えるために、内部構造の把握は重要な要素になってきます。 また、今回の内容を学べば、Gitの大枠を実装することもできてしまうので、興味がある方はぜひ挑戦してみてください。 Gitについての誤解 それでは、まずGitについて多くの人が誤解しているであろう点を挙げ

    Gitの内部構造をよく理解して、うまく使おう【基本の仕組みを解説】
    kaido
    kaido 2023/02/26
  • re:Invent 2022で発表された、ソフトウェア開発に役立つAWSの新サービス・新アップデート

    統合ソフトウェア開発サービス「AWS CodeCatalyst」が登場 はじめに紹介するのは、「AWS CodeCatalyst」のアップデート情報になります。AWS CodeCatalystは、ソフトウェア開発チームがAWS上でアプリケーションを迅速かつ簡単に計画、開発、コラボレーション、構築、および配信するためのサービスです。現在はオレゴンリージョンでのみ利用可能です。 CodeCatalystは、主に以下の機能を備えた統合ソフトウェア開発サービスとなっています。 さまざまな用途に対応したブループリント 開発環境 ソースコード管理 課題管理 CI/CDパイプライン プロジェクトメンバとのコラボレーション 上記機能の中で筆者が注目している機能は「課題管理」です。これまで、Jiraなどでのツールを用いて課題管理を行なっていたプロジェクトは多くあると思いますが、今回CodeCatalystで

    re:Invent 2022で発表された、ソフトウェア開発に役立つAWSの新サービス・新アップデート
  • ローカルリポジトリにおけるGitの動作を可視化する「git-sim」がリリース

    git-simは、Pythonで記述されたコマンドラインツールで、gitコマンドがローカルリポジトリに与える影響を示す画像(またはアニメーション)を、すばやく簡単に生成できる。 同ツールの利用によって、実際にコマンドを実行する前に、ユーザーがコマンドの処理内容を確認することが可能になり、リセット/マージがローカルリポジトリにどのように影響するかが、確実にわかるようになる。なお、動作のビジュアル化はJPEG形式の静止画のほか、MP4形式の動画としても出力できる。 同ツールのおもな目標は、開発者ワークフローの中断を最小限に抑えつつ、gitコマンドの効果をすばやく簡単に作成して視覚化することであり、今後の機能強化としては、 コマンドラインインターフェイスを提供して、開発者がローカルGitリポジトリ内のターミナルで直接git-simを実行可能にする gitコマンド(サブコマンドおよびオプション/フ

    ローカルリポジトリにおけるGitの動作を可視化する「git-sim」がリリース
    kaido
    kaido 2023/01/25
  • Rustで書かれたゲームエンジン「Fyrox 0.29」がリリース

    「Fyrox 0.29」では、これまでは別々のコンテナに存在していたアニメーションとアニメーションブレンディングステートマシン(ABSM)が、それぞれのシーンノードに格納されるようになり、アニメーションのコンテナであるAnimationPlayerと、複数のアニメーションを1つにブレンドするために使用されるステートマシンのコンテナAnimationBlendingStateMachineの、2つのノードが用意されるようになった。 あわせて、従来はシーンノードの位置、回転、スケールのみのアニメーションが可能だったが、「Fyrox 0.29」ではリフレクションベースで、ほぼすべての数値プロパティをアニメーション化できるようになっている。 さらに、あらゆる種類のシーンノードとスクリプトで、任意の数値プロパティをアニメーション化することが可能なアニメーションエディタが用意されるとともに、複数のアニ

    Rustで書かれたゲームエンジン「Fyrox 0.29」がリリース
    kaido
    kaido 2023/01/14
  • 分散型バージョン管理システム「Git 2.39」が公開

    分散型バージョン管理システム「Git」の開発チームは、最新版となる「Git 2.39」を12月12日(現地時間)に公開した。GitはGNU General Public License 2.0で公開しているオープンソース・ソフトウェアだ。 「Git 2.39」ではまず、「git shortlog」コマンドに新しい機能が加わった。このコマンドはプロジェクトのログを整形して出力するものだが、今回の新バージョンで、「毎月のリリース・サイクルで、どれくらいのコミットがあったのか」といった細かい条件を指定できるようになった。また、年月の表示形式を指定したり、特定の条件で並べ替えて出力させる機能も加わった。 また、レポジトリからオブジェクトを外部に移動させる「git repack」コマンドに、「--expire-to」というスイッチが追加になった。このスイッチを使うと「過去5分」など、時間制限を付ける

    分散型バージョン管理システム「Git 2.39」が公開
    kaido
    kaido 2022/12/27
  • Rust向けGUIツールキット「KAS」の作者が、RustのGUI対応状況を振り返る

    Rust向けGUIツールキット「KAS」の作者が、自身のブログでRust言語で使用できるGUI関連ライブラリの発展具合を振り返った。KASはApache License 2.0で公開しているオープンソース・ソフトウェアだが、少人数で開発しているためバージョンアップのペースは遅く、当初の目標としている機能をすべて実装できているわけではない。現時点での最新バージョンは0.12.0と、バージョン1にも到達していない。 今回のブログ投稿は、Rust向けのGUIツールキットやライブラリの開発が進んでいないのではないかと疑問を投げかける他者のブログ投稿に答えるものだ。ほかのWebサイトには、RustGUIアプリケーションを作ることはできるが、その方法はElectronを入れてHTMLで記述するか、ラッパーを通してOSのAPIを操作するしかない。Rustの言語仕様をもってすれば、複雑なGUIも記述でき

    Rust向けGUIツールキット「KAS」の作者が、RustのGUI対応状況を振り返る
    kaido
    kaido 2022/12/18
  • Rust/WebAssemblyとJavaScriptのデータ交換を使いこなす!

    連載では、Webブラウザー上でJavaScriptと共に動作できるバイナリ形式のプログラムファイル「WebAssembly」を、Rustプログラミング言語で実装する方法を説明していきます。前回は実際にRust言語でWebAssemblyを実装して、動作速度を検証しました。今回は、格的な処理に不可欠な、Rust/WebAssemblyJavaScriptとのデータ交換について説明します。 はじめに 連載では、Webフロントエンド開発において注目されているバイナリ形式のプログラムファイルWebAssemblyを、Rustで実装して活用する方法を説明しています。前回記事では、円周率を計算するプログラムをRust/WebAssemblyで実装してJavaScriptの処理と比較することで、WebAssemblyの高速動作を示しました。 より格的な処理をRust/WebAssemblyで実

    Rust/WebAssemblyとJavaScriptのデータ交換を使いこなす!
    kaido
    kaido 2022/12/17
  • 技術書はどうやって選ぶべき?『「技術書」の読書術』の著者が語る「自分に合った本」の選び方

    エンジニアにとって新しい知識の源泉は数々あれど、書籍は非常に重要な手段の1つです。ですが、どうやって自分に合ったを選べばいいのか、良書と悪書をどう見分ければいいのか、といったことは悩みの種ではないでしょうか。今回、書籍『「技術書」の読書術』(翔泳社)から、多くの技術書を執筆し自身も読書家であるIPUSIRONさんが解説したパート「悪書・良書を気にする必要はない」と「レベル感の合ったを選ぶ」を紹介します。 記事は『「技術書」の読書術 達人が教える選び方・読み方・情報発信&共有のコツとテクニック』の「1-2 世界が広がる!貪欲にを求めれば、出会うはずがないにも出会える(著:IPUSIRON)」から「悪書・良書を気にする必要はない」と「レベル感の合ったを選ぶ」を抜粋したものです。掲載にあたって編集しています。 良書を選び続けるのは不可能 読者の皆さんはどのような方法で読むべきを選ん

    技術書はどうやって選ぶべき?『「技術書」の読書術』の著者が語る「自分に合った本」の選び方
    kaido
    kaido 2022/11/20
  • 米国家安全保障局、CやC++からメモリ安全なプログラミング言語への移行を推奨する文書を公開

    同ガイダンスは、近年のサイバーセキュリティ脅威の多くに利用されている、ソフトウェアのメモリ安全性の悪用を防ぐことを目的としており、組織におけるソフトウェアの開発にあたっては、可能な限りメモリ安全なプログラミング言語を使用するとともに、コンパイラのオプション、ツールのオプション、OS構成といったコードの安全性を高める対策を施すことで、保護を強化することを推奨している。 メモリ安全でないプログラミング言語としては、一般的に使用されているCやC++を挙げており、これらのプログラミング言語はメモリ管理において高い自由度と柔軟性を提供する一方で、メモリ参照が安全に行われているかどうかのチェックはプログラマに大きく依存していると指摘する。 ソフトウェア解析ツールを使用すれば、ソースコード中のメモリ管理における問題の多くを検出できるほか、OSによっては不正なメモリの利用を防ぐオプションも用意されているも

    米国家安全保障局、CやC++からメモリ安全なプログラミング言語への移行を推奨する文書を公開
    kaido
    kaido 2022/11/18
  • Rustはなぜ開発者に愛されているのか、そして「人を選ぶ」理由とは? 実案件でRustを採用するゆめみに聞く

    昨今、開発者の中で人気が増しているプログラミング言語「Rust」。気になっている開発者は多いものの、業務での採用はまだこれからと考えている人も多いだろう。そんな中、ゆめみではRustに力を入れ、自社内外の案件でRustの活用を進めている。なぜ、ゆめみではRustの習熟を推奨するのか。その理由とともに、Rustの特徴、実際に使って見た感想、さらにはRustの今後の展望などについて、ゆめみでRustの推進に関わっているチャレンジCTO(最高技術責任者)の池口直希氏、エンジニア兼チャレンジ取締役のスミス 祐一郎 ルーク氏、サーバサイドエンジニアの舩戸隆氏に話を聞いた。 ゆめみでRust活用を牽引するエンジニア 2006年にグレイドン・ホアレ氏という個人プロジェクトとして開発されたプログラミング言語「Rust」。2009年にMozillaが開発に参入してプロジェクト化。その後、仕様変更を繰り返し、

    Rustはなぜ開発者に愛されているのか、そして「人を選ぶ」理由とは? 実案件でRustを採用するゆめみに聞く
    kaido
    kaido 2022/09/30
  • 無料給水コミュニティ「mymizu」、オープンソースWebアプリ(ベータ版)をローンチ

    「mymizu」Webアプリ(ベータ版)の画面イメージ 「mymizu」は、“給水でサステナブルがあたりまえな世界に”というビジョンを掲げて、給水する人のためのプラットフォームやコミュニティづくりを行っている。 「mymizu」アプリは、世界の20万か所を超えるカフェや公共施設といった無料の給水スポット「mymizuスポット」にて気軽に水を補給できるようにすることで、プラスチックやCO2排出量削減への取り組みを可能にする。 利用者が新たに無料の給水スポットを見つけた場合は、アプリに登録できる、共創型のプラットフォームとなっており、世界45か国で数十万人もの人々に利用されている。 今回、ローンチしたWebアプリは、テクノロジーを活用して社会課題を解決するという高い志を持って集まったボランティアやその道のプロがデザイン、開発を進める中で、TBWA¥HAKUHODOのチームがUIUXデザインを、

    無料給水コミュニティ「mymizu」、オープンソースWebアプリ(ベータ版)をローンチ
    kaido
    kaido 2022/09/23
  • アジャイル生誕20年──平鍋氏と及部氏が、エンジニアとアジャイル開発の関係を考えてみた【デブサミ夏2021】

    におけるアジャイル開発の第一人者であり、ソフトウェア開発手法の必読書アジャイル開発とスクラム』の共著者である平鍋健児氏と及部敬雄氏。2001年の「アジャイルソフトウェア開発宣言から20年を迎える2021年は、アジャイル開発歴10年の及部氏とアジャイル開発歴20年の平鍋氏にとっても、節目の年である。そこで、今回のセッションはアジャイル開発生誕20周年を記念し、両者のこれまでの軌跡とともに、なぜ自分がアジャイル開発と関わっているのか、その熱い想いが語られた。 株式会社永和システムマネジメント 代表取締役社長 平鍋健児氏(左上)、株式会社デンソー デジタルイノベーション室 及部敬雄氏(右下) アジャイル開発に「もっとよい世界があるかもしれない」と気づかされた 及部氏が楽天に新卒で入社したのは、2009年。エンジニアとして初めて書いたコードや最初のプロジェクト、初リリースで感動し、やりがいを

    アジャイル生誕20年──平鍋氏と及部氏が、エンジニアとアジャイル開発の関係を考えてみた【デブサミ夏2021】
    kaido
    kaido 2022/07/30
  • Windows10の無償デスクトップ自動化ツール「Power Automate Desktop」でPDFからのデータ抽出を自動化する

    対象読者 ExcelPowerPointなど、一般的なツールの操作を理解している人 RPAツールを用いて業務を自動化したい人 PDFアクション PDF(Portable Document Format)とは、Adobe社が開発したページ記述言語PostScriptをベースにしたドキュメント形式のこと。環境やプリンターによらずに保存・転送・閲覧・印刷が可能であり、電子ドキュメントにおける事実上の標準のファイル形式として広く使用されています。ファイルの中に、テキストデータと描画命令、画像などのコードが圧縮されて格納されています。 Power Automate for Desktopでも、これらのファイルを扱うアクションが用意されています。 PDFからテキストを抽出 PDFから画像を抽出 PDFからテーブルを抽出 新しい PDFファイルへのPDFファイルページの抽出 PDFファイルを統合 稿

    Windows10の無償デスクトップ自動化ツール「Power Automate Desktop」でPDFからのデータ抽出を自動化する
    kaido
    kaido 2022/07/28