Skip to content

Instantly share code, notes, and snippets.

新しい新製品開発ゲーム

著者: 竹内弘高 および 野中郁次郎

『雑誌掲載記事』(1986年1月号)より


現代の急速に変化し、競争の激しい商業用新製品開発の世界において、スピードと柔軟性は不可欠です。多くの企業が、従来の逐次的な新製品開発アプローチではもはや十分に対応できないことを認識しつつあります。 これに対し、日本やアメリカの企業では、ラグビーのようにチームが一体となってフィールドを前進しながらボールをパスし合う、包括的な手法が採用されています。

@matarillo
matarillo / Falco.Program.fs
Created July 21, 2025 00:47
compare giraffe with falco
open Falco
open Falco.Routing
open Microsoft.AspNetCore.Builder
let endpoints =
[ get "/weather" WeatherForecast.getRandom
get "/" (Response.ofPlainText "Hello World!") ]
[<EntryPoint>]
let main args =
@matarillo
matarillo / ConsList`1.cs
Last active June 23, 2025 12:47
Cons List for C# (before Type Unions)
using System.Collections;
using System.Text;
var xs = ConsList<int>.Create([7, 8, 9, 10]);
var ys = ConsList<int>.Create([0, 1, 2, 3]);
var product =
from x in xs
from y in ys
select $"{x * 10 + y}";
type Cont<'a, 'r> = { runCont: ('a -> 'r) -> 'r }
module Cont =
let toCont c = { runCont = c }
let runCont { runCont = c } = c
let return' a = toCont (fun k -> k a)
let (>>=) { runCont = c } f =
toCont (fun k -> c (fun a -> runCont (f a) k))
using NetVips;
if (ModuleInitializer.VipsInitialized)
{
Console.WriteLine(
$"Inited libvips {NetVips.NetVips.Version(0)}.{NetVips.NetVips.Version(1)}.{NetVips.NetVips.Version(2)}");
}
else
{
Console.WriteLine(ModuleInitializer.Exception.Message);

鉄道指向プログラミング(の安易な利用)に反対する

(原文:Against Railway-Oriented Programming)

2019年12月20日

この記事は、2019年のF#アドベントカレンダーの一部です。他の素晴らしい記事もぜひご覧ください。企画者のSergey Tihon氏に感謝します。

6年半前、私は「鉄道指向プログラミング」と呼ぶものに関する記事を書き、講演を行いました。これは、エラーを生成する関数を連結するために、Result / Either をどのように使用するかを、自分自身や他の人に説明するための手段でした。

@matarillo
matarillo / Linq.fs
Last active March 8, 2025 08:52
LINQ: Building an IQueryable provider series
module My.Linq
open System
open System.Collections.Generic
open System.Linq
open System.Linq.Expressions
open System.Reflection
// 条件に一致する最初の結果を返す関数
let rec tryFirst (funcs: ('a -> 'b option) list) (input: 'a) =

https://www.youtube.com/watch?v=1VgptLwP588

Mark RussinovichによるRustの技術セッションです。Markがどういう話をしているのか、およそ10分区切りで要約して。

Mark RussinovichのマイクロソフトにおけるRust採用についての講演要約

最初の10分 (0:00-10:00)

Markは、マイクロソフトがRustを採用した理由から話し始めています。マイクロソフトでは、過去10年間のセキュリティ脆弱性の約70%がC/C++でのメモリ安全性の問題に起因していることが明らかになりました。Markは個人的にC言語をシンプルで美しいと考えていますが、C++は複雑すぎると感じています。Rustは正確性を強制するシンプルでエレガントな言語だと彼は確信しています。

2022年9月、Markは「新しいC/C++コードはRustで書くべき」というツイートを投稿し、これが彼の中で最も反響の大きいツイートとなりました。このツイート後、サティア・ナデラCEOから電話があり、MarkはマイクロソフトのRust採用を推進することになりました。このムーブメントはマイクロソフト全体からの草の根の取り組みの一部であり、後に米国国家安全保障局(NSA)もC/C++からの移行を推奨することになります。

@matarillo
matarillo / Json.fs
Created November 26, 2024 10:38
コンピュテーション式を使わない書き方
module Json
open System.Text
[<AbstractClass>]
type JNode() =
abstract member Stringify: unit -> string
[<AbstractClass>]
type JValue() =