シェルスクリプトの基本の基本とはどういうものなのか、他の多くのプログラム言語で処理を実装するのと比べ、どのような違いがあるのか。あまり ( 当然過ぎて? ) 書く人がいなさそうなので、つらつら説明したもの
eBPFプログラムを手軽にコーディング、ビルドし、コンテナ形式にパッケージングしてシェアできる「Bumblebee」オープンソースで登場 Linuxカーネルのソースコードを変更することなく、カーネルの持つさまざまな機能をフックすることでカーネルに対してプラグインのように機能拡張を実現する技術「eBPF」が、昨年から急速に注目されはじめています。 参考:Google、Facebook、マイクロソフトらが、OSカーネルをプログラマブルに拡張できる「eBPF」の開発と発展を目指す「eBPF Foundation」を結成 そのeBPFを手軽にコーディング、ビルドし、コンテナ形式にパッケージングしてシェアできるツール「Bumblebee」がオープンソースで公開されました。 開発しているのは、APIゲートウェイのGloo EdgeやサービスメッシュのGloo Meshなどの製品を展開しているSolo.
本日のお品書きと自己紹介仙塲大也氏:今日は「『良いコード/悪いコードで学ぶ設計入門』でエンジニアリングの当たり前を変える」というタイトルで発表します。「#ミノ駆動本」は、書籍にも記載のある公式のハッシュタグです。今日のイベントや、これからの僕の本に対する感想などは、このハッシュタグを付けていただけると感想を見つけやすいので非常にうれしいです。よろしくお願いします。 本日のお品書きです。まず自己紹介と本書の概要。あと、本書で向上が期待できるスキルと本書の特徴、評判の声と各章の紹介。それから、この本によってこの先に目指す世界と、執筆の裏話という流れで進めていきます。 まずは自己紹介。私、Twitterでは「ミノ駆動」と名乗っています。中の人は仙塲大也と申します。職歴としては、電子機器メーカーや大手精密機器メーカー、前職のクラウドワークスを経て、ちょうど1年前の2021年に、READYFOR株式
こういう一連の記事を書きました. susisu.hatenablog.com susisu.hatenablog.com susisu.hatenablog.com TypeScript の型安全性 TypeScript の型システムは健全ではありません. TypeScript Design Goals にある通り, そもそも言語設計の段階で完璧な型安全性は目標になっておらず, 既存の JavaScript の言語仕様や資産を活用しやすいように, 生産性や利便性とのバランスをとることを目標としています. では TypeScript の型システムではどの程度の安全性が保証されるのでしょうか? 型安全性を第一の目標に置いていないとはいえ, TypeScript がまったく見当違いな型検査をしているというわけではありません. したがって, ある制限された範囲内であれば, 安全性を担保するのに十分
CodiumAI、作りたい機能を入力するとコードの実装計画案生成、コードの自動生成を支援する「Codiumate Coding-Agent」α版リリース AIによるプログラミング支援ツールを開発しているCodiumAIは、作りたい機能をAIに対してプロンプトで入力すると、コードの実装計画案をAIが示し、それを元にほとんどのコードを生成や補完してくれる「Codiumate Coding-Agent」(以下、Coding-Agent)α版のリリースを発表しました。 The Codiumate-Agent is the first step towards tandem development with your coding agent. It effortlessly slots into your development workflow, helps you be smart about
フロントエンド連載の6記事目です。 今年のゴールデンウィーク(STAY HOME週間)に最近話題のSvelteに入門したので紹介を書きます。 Svelteとはなんですか? 公式のサイトはこちらです。有志の方々が日本語翻訳のサイトを作ってくれています。たいへんありがとうございます! Svelteは主にブラウザ上で動作するユーザーインタフェースを作るフレームワークで、ReactやVue.jsの対抗馬的な存在です。 特徴とReactやVue.jsなどほかとの違い公式サイトでも、コーディングする際のコード量が少ないという特徴があげられています。 詳しくはこちらのブログに書かれています。コードが多ければ作業時間とバグが増えてしまうため、コードが減らすことはこれらの問題を減らすことができるというようなことが書いてありました。またブログには具体的なコードで量の差について書いていますのでぜひ見てみてくださ
FlutterのためのDart製サーバフレームワーク「Serverpod 1.0」正式リリース。Dartでサーバからクライアントまで開発可能に FlutterアプリケーションをクライアントとしたバックエンドサーバのためのDart製フレームワーク「Serverpod 1.0」がオープンソースとして正式にリリースされました。 これでFlutterによるクライアント開発だけでなく、サーバでもDartを用いた開発体験を得ることができるようになります。 We are live! Watch the @ServerpodDev 1.0 release keynote on Youtube. Over a year in the making. Finally you can write your #Flutter app #backend in #Dart.https://t.co/c5P1SGqiO
エンジニアの鈴木(泰)です。 今回は、multiprocessingとthreadingとasyncioの違いとはなんだろう?という問に挑戦してみたいと思います。 この問の答えをグーグル先生に聞いてみると、非常にたくさんの情報がヒットします。しかしながら、どの情報も断片的なものばかりで(本記事もそうなのかもしれません)、色々と本を読んだりネットを漁ったりして、情報を補完しなければなりませんでした。 本記事は、僕が調べた限りの情報を集約し、この問に対する結論を1つの記事にまとめたものとなっています。 前提 マルチプロセスとは マルチスレッドとは Pythonにおけるマルチスレッド 本題 マルチプロセス(multiprocessingライブラリ)を利用したほうが良い場合 cpu_sec.py cpu_multiprocessing.py cpu_threading.py cpu_asyncio
書籍とかのサンプルコードをそのまま入力して勉強することを「写経」というけども、それを言い出したのは角谷さん、というメモ。 写経は言葉ではなく心で理解するのが大事。 2004-2005頃に @t_wada と働いていた頃、サンプルコードをコピペでなく手打ちすることを「写経」と呼んでました。和田さんが以前の現場に通いながら"TDD by Example"のサンプルコードを「祈るような気持ち」で手打ちしていたというエピソードを形容して「写経ですね」と呼んだのが始まりだったような…— Kakutani Shintaro (@kakutani) 2021年9月18日 恐らく2005年7月ごろではないかと思われる。 この夏は写経が来るね, 地震が来た - 角谷HTML化計画(2005-07-23) 角谷さんのブログでの初出も7/15だけど、babieさんのコメントを見るとこの時期にまわりで語ってたこと
Cloudflare、CDNエッジで稼働するSQLiteベースのRDB「Cloudflare D1」発表。ユーザーの近接CDNエッジに自動でレプリカを分散配置、高速アクセスを実現 CDNベンダのCloudflareは、同社のCDNエッジ上にSQLiteベースのRDBサーバ機能を提供する新サービス「Cloudflare D1」を発表しました。同社にとって初めてのデータベースサービスです。 Today, we’re excited to announce D1, Cloudflare’s first SQL database, designed for Cloudflare Workers. https://t.co/KwehTYQhEt #PlatformWeek — Cloudflare (@Cloudflare) May 11, 2022 Cloudflare D1はマネージドサービスと
こちらの記事は カケハシ Advent Calendar 2023 の 16日目の記事になります。 概要 こんにちは。AI在庫管理の開発チームでSWEをしている小室です。 私は普段ドメイン駆動設計(以下、DDD)を意識しながら開発することが多く、実践を重ねるほどDDDの素晴らしさを実感しております。 最近異動してきたAI在庫管理の開発チームでは、現状はあまりDDDを意識して開発を進めていないのですが、プロダクトが対象としている世界が非常に複雑であることと、今まさに多くの法人様に利用していただけるようになったうれしい悲鳴として成長痛を感じ始めており、ドメイン駆動設計を何かのヒントとしてプロダクトによる価値提供速度を加速できればと考えています。 しかしながら、ドメイン駆動設計は独自の価値観や学習コストの高さから、まだ取り組んだことのないメンバーとしては大きな不安を感じる部分があると思います。
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 「理解容易性」は「保守性」の観点の1つとして重視され、多くの原則や技法が紹介されているが、断片的かつ多様であり、全体像を理解することは難しい。 抽象度は高いが、体系的に観点を整理する事で、その理解の助けとなれば幸いである。 定義 「理解容易性」を簡単に言えば、「理解のしやすさ」であるが、その意味から掘り下げると、「思考する量」と言い換えることができる。 本記事では理解容易性を「思考量の少なさ」と定義し、7つの観点に整理した。 先に要約およびチェックリストを記載し、概略を記載した。 後に詳細で理解のため、各観点毎の説明と個別の原
背筋も凍るITホラー 気付いたら“野良SaaS”のコストが4倍に 「SaaSのお片付け」真っ最中のマネフォに現状を聞く(1/2 ページ) 「SaaS型デザインツールのコストが数カ月で4倍にまで膨らんでいた。支払額で言えば数百万円規模。退職者から『あのツール、まだアクセスできるんですけど……』と連絡がきたときはゾッとした」 IT部門が利用実態を把握しきれていない“野良SaaS”が引き起こした事態について、マネーフォワードの高野蓉功(ようこう)CIOはこう振り返る。同社では事業部門が使うSaaSを導入するとき、基本的にIT部門が関与しない形を取っていた。 しかしその結果、利用実態やコストが見えにくいまま使われるSaaSが生まれ、コストの増大や、元社員が退職した後も解約ができていないといった状態につながったという。
数式って不便すぎないか? いやわからん。 俺は数学苦手だから。 でも例えば、プログラミング言語は、現代普通に使われるものだけ挙げても、C#、JavaScript、Ruby、Python、PHP、Java、Swiftとまあ軽く7種類くらい。C系で言えば、C、C++もあるし、C++もバージョンによってはほとんど別物になったりする。プログラミング言語ではない人工言語としても、HTML、SQL、VHDL・・・アセンブリ言語などがあり、使う人は少ないが恩恵に預かってる人が多い言語で言うとLISPやHaskellなんてのもある。 しかもこれらのプログラミング言語は、すべて「同じアルゴリズム」を記述することが可能なのだ。 「同じことを説明するのに複数の方法(言語)がある」と言うことが一体何の意味があるのか、プログラマー以外の人にはわかりにくいだろうが、プログラマーにとっては大問題である。 それぞれのプロ
This course is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) license. This is a human-readable summary of (and not a substitute for) the license. Official translations of this license are available in other languages.
// 割る2をする関数の引数が偶数であることを型によって強制する例(実用性はない) data O // 数字の0を表すデータ型 data S(A) forall { A } // +1を表すデータ型 // 型エイリアス type Nat = O | S[Nat] // 非効率すぎる他倍長整数 type Even = O | S[Odd] type Odd = S[Even] // 偶数を引数にとって2で割った結果を言語組込みの整数として返す関数 div2 : Even -> I64 = // 網羅性チェックつきのパターンマッチ | O => 0 | S(S(n)) => 1 + n.div2 TL;DR ユニオン型は直和型の上位互換である(追記あり)。関数型言語を作るときは直和型の代わりにユニオン型を採用するのもあり。 はじめに Cottonというプログラミング言語を2021年の夏頃から作
はじめに 昨今、テストピラミッドなどの側面からユニットテストの重要性が説かれていますが、クラス間が密に結合している等で適切なユニットテストを書くのが難しいという状況に陥ることは多いのではないでしょうか。そのような状況は、ユニットテストの解像度が低いために生まれると自分は考えます。 本記事では、防御的プログラミングと契約プログラミングという二種類のプログラミングの方法論を元にユニットテストを再考し、ユニットテストの解像度を高めることを目標とします。また、ユニットテストのより良い書き方を模索している人に本記事を読んでいただきたいです。 防御的プログラミングと契約プログラミングとは 防御的プログラミングと契約プログラミングとは次のようなプログラミングの方法論のことを指します。この二つの方法論については、こちらの記事にわかりやすくまとめられているので、ぜひ参考にしてください。 防御的プログラミング
ChatGPTがコーディング支援を強化。コードエディタ機能を統合、コードレビューやデバッグ、他言語への移植ツールなどを含む新機能「Canvas」が登場 OpenAIはChatGPTの新機能「Canvas」を発表しました。 ChatGPTはさまざまな指示や依頼にAIが対応する汎用目的で使えるサービスですが、新機能「Canvas」は特に文章の作成とコードの作成においてChatGPTをより生産的なツールとして使えるような機能を提供しています。 When writing code, canvas makes it easier to track and understand ChatGPT’s changes. It can also review code, add logs and comments, fix bugs, and port to other coding languages l
仮想通貨のマイニングツール「Coinhive」を閲覧者に無断で自身のWebサイトに設置したとして、Webデザイナーの男性が不正指令電磁的記録保管罪に問われた「Coinhive事件」を無罪と判断した理由について、最高裁判所が1月20日に全文を公開した。 不正指令電磁的記録に関する罪は、利用者の意図する動作をさせないなどの「反意図性」と、社会的に許容できない影響を与えるなど「不正性」の2つを持つプログラムの作成や提供、保管を処罰するものであると最高裁は説明。 被告側が閲覧者の同意なくマイニングのプログラムコードを設置したことに関して最高裁は「より適切な利用方法などが採り得た」とし、閲覧者の知らないところで行われていたマイニングには反意図性があったことを認めた。 一方で、そのコードがPCの機能や情報処理に与える影響は「CPUを一定程度使用することにとどまり、使用程度も閲覧者がその変化に気付くほど
こんにちは!ラクス1年目のkoki_matsuraです。 今回は掲示板アプリ作成を通して、SvelteKitの基礎的な部分をご紹介させていただきます。 目次は下記のようになっています。 はじめに Svelteとは SvelteKitとは 掲示板アプリ作成 アプリの概要 環境構築 SvelteKit データベース Prisma テーブル作成 ルーティング作成 新規登録画面 ログイン画面 スレッド投稿画面 スレッド一覧画面 スレッド詳細画面 ログアウト機能 エラー画面 終わりに はじめに Svelteとは WebアプリケーションやUIを構築するためのJavaScriptフレームワークです。有名なものでは「React」や「Vue」が挙げられます。 Svelteにはこれらのフレームワークと比べて下記のような特徴があります。 仮想DOMを用いない こちらが最も大きな特徴となります。 まず、仮想DOM
GitHub CopilotやCursorなど、コーディングを補助してくれるAIツールの登場で、プログラミングの敷居は劇的に低くなりつつあります。しかし、Cursorでレーシングゲームを開発していたエンジニアが、AIがコードを書くのを拒否し、「プログラミングを学ぶように」とアドバイスしてきたことを報告しました。 Cursor told me I should learn coding instead of asking it to generate it + limit of 800 locs - Bug Reports - Cursor - Community Forum https://forum.cursor.com/t/cursor-told-me-i-should-learn-coding-instead-of-asking-it-to-generate-it-limit-of-
オライリー・ジャパンから「Googleのソフトウェアエンジニアリング」という翻訳の書籍が発売され、その中からコードレビューに関する箇所を読んで学んだことの紹介です。 サブタイトルの持続可能という表現が良い この本のサブタイトルは「持続可能なプログラミングを支える技術、文化、プロセス」です。 この持続可能(sustainable)の部分がとても響くものがあって、持続可能とするためにはどうしたら良いだろうか? これを根源的な欲求として持ち、コードとコードレビューに向き合うのが本書では語られています。 実は、原著のサブタイトルは「Lessons Learned from Programming Over Time」で、 持続可能という直接的な表現はありません。 Over Time が刻を超越して、転じて持続していく様子につながると感じます。 持続可能の表現は、本文序文に sustainable
ChatGPTがあるから誰でもプログラムを書けるみたいに言われますが、実際のところ、基礎知識がないと効率も悪く、複雑なものは作れないので、 私がプログラムを読めるようになり、アプリをリリースできるようにまでなったきっかけのpythonの基礎を記載します。 基本的にChatGPTが書いてくれるので、概念を理解して、コードを読んで修正出来たら大丈夫です。 この記事もほぼChatGPTが書いてます。 1. Pythonにおける重要な概念 まず、Pythonにおける重要な概念を整理して説明します。 1. モジュール (Modules) 概念: モジュールは、関数、クラス、変数などを含むPythonのファイルです。これにより、コードを再利用しやすくなり、プログラムを整理して管理しやすくなります。 使用方法: import文を使用してモジュールをインポートします。例えば、import mathはmat
最初に断っておきますと、OpenTelemetry を良く知っていたり真面目に調査しようという人が読むべき内容はここにはありません。 公式ドキュメントなりをご参照ください。これは最近 OpenTelemetry を使いだした一般人の感想記事です。 さて、いけてる Web 開発者、特にバックエンド開発者の方はオブザーバビリティという言葉は聞き及んでいるかと思います。 なかでもオブザーバビリティ三種の神器と言われている(?)ログ、メトリクス、分散トレーシングをどう実装するか頭を悩ませているかもしれません。 頭を悩ませてきた、あるいは頭を悩ませている理由の一つは、これらを実装するときに特定の実装向けになりがちであったためです。 メトリクスであれば最近は Prometheus 向けに /metrics エンドポイントとして提供する実装が多いといった話です。しかしながら、 あらゆる人が Promet
「Windows Autopatch」はMicrosoftに“丸投げ”できる更新管理の新たなカタチ:企業ユーザーに贈るWindows 10への乗り換え案内(128) Microsoftは2022年7月から、Windows 10/11 EnterpriseのE3/E5ライセンスを持つ企業や組織に向けて、WindowsやMicrosoft 365 Apps、Microsoft Edgeなどの更新を管理する新サービス「Windows Autopatch」の一般提供を開始します。 企業ユーザーに贈るWindows 10への乗り換え案内 企業や組織における更新管理はIT部門の大きな負担に MicrosoftはWindowsの品質更新プログラムや機能更新プログラムのクライアントデバイスへの配布方法として、個人ユーザーと同じ「Windows Update」の他に、「Windows Update for
はじめに 最近コードを書いていてふと、今の自分は以前とは全く違う思考でコードを書くようになってるな。。。と気づいたので、少しまとめたいと思います。 以前 「本でこういうコードの書き方が良いって書いてあったな〜」 「本でこういうコードの書き方だめって書いてあったな〜」 「凝集度あげるためにデータとメソッドは一箇所にまとめた方がいいな〜」 「単一責務の原則に反しているからなおさないとな〜」 ↓ 実際に改善 ↓ 「よし綺麗になった」 最近 「使いやすい形のインタフェースになっているかな?」 「メンテのためにも共通化しておいたほうが良いな。。。」 「どういうデータ構造で持っておくのが嬉しいだろうか?」 「直感的に理解できるようになっているだろうか?意図などは伝わるかな?」 ↓ 実際に改善 ↓ 結果的に綺麗になっている 以前と最近との違いは? 以前と最近の主な違いは、思考の過程で具体的に自分のコード
こんにちは。広瀬マサルです。 これまでのパッケージをまとめて統合Flutterフレームワークを作成しました。 コンセプトは 自動生成を用いて安全かつ高速に高品質のアプリを開発可能にするフレームワーク です。 使い方をまとめたので興味ある方はぜひ使ってみてください! masamune はじめに まずはこちらを御覧ください。 ※動画のサンプルコードはこちらに公開しています。 こちらはメモ帳アプリを全くの空の状態からわずか10分以内で完成させる動画です。 このMasamuneフレームワークを利用することでアプリ開発で行うコーディングの大半を削減することが可能になります。 このフレームワークは下記の機能を中心としています。 CLI(コマンドラインインターフェース)ツールによるコードテンプレートの生成 build_runner による追加コードの自動生成 つまりコードの大半を機械的に生成させることに
paizaでWebエンジニアをやっています藤田と申します。 「今期は技術記事6本書きます」と自ら目標にしておいて、4か月ぐらい記事を滞納していた良心の呵責に耐えかねて投稿いたします。 今回の記事では、不要コードの削除に関するモチベーションをあらためて整理するとともに、以前noteで私が執筆した記事の続編として実運用について説明します。 CI/CDであまり語られない課題 -不要コード- プロダクション開発を進めるにあたり、自動テスト(ユニットテストやブラウザテスト)を書くとか、CIやlintingはほぼ常識化していると考えます。 自動テストを書けば、ある挙動が維持されていることを保証できるとともに、コードパスの検証状況(カバレッジ)を可視化できます。 実装とテストがどんどん増えていき、正常系と異常系の動作は十分に確認できたとします。 一方時の試練に耐えられず、不要となったコードはどうなるので
Pydanticが今最高にCool こんにちは、極論モンスターのYosematです。pydanticに替えてdataclassを使う理由は今ほとんどありません。pydanticがV2になったこのタイミングでpydanticに乗り換えましょう。この記事ではなぜdataclassよりもpydanticなのか理由を述べていきます。 ※2024/02/26追記 OpenAIのクライアントもPydanticを採用しました 素敵なブログからの引用。ただし現在はdataclassもslotを導入している。slotを利用して通常より高速にフィールドアクセスしたい人はattrsやdataclassもアリ。 理由① より洗練されたインターフェース pydanticをdataclassに代えて使うのはなんといってもかゆいところに手が届くインターフェースです。はっきりいってdataclassも素晴らしいライブラリ
はじめに GitHub Copilotをチーム全員で使ってモブプロしたい!と思った時にハマりポイントがあったので、その内容と解消法です。 前提 チーム全員でVSCode & GitHub Copilot Extentionを利用。 GitHub Copilot for Businessを利用。 リモートで繋いで開発するチームのためLiveShareでコードを共有してモブプロ。 結論 LiveShareのゲスト側(URLを払い出してもらった側)はWorkspaceのTrustをしよう! ハマったこと LiveShareのゲスト側(URLを払い出してもらった側)でなぜかVSCodeにCopilotアイコンが表示されない&コードがサジェストされない、、 ホスト側(LiveShareのURLを払い出した側)からはCopilotのアイコンが見えていて、コードのサジェストが動くぞ、、 原因 LiveS
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く