このメモは、私(@ymmt2005)が長年にわたってソフトウェアプロダクト開発に関わってきて 2022年現在こうしたほうが良いと考えているベストプラクティスです。
科学的な分析等に基づくわけではない経験則であるため、今後も随時見直すことがありますし、 ここに書いてあることが常に正しいわけでもあらゆるソフトウェア開発に適するわけでもありません。
しかしながら、実務経験が豊富で、モダンな技術スタックに明るいエンジニアの経験則は一定の 役に立つのではないかと考えて記します。
| package main | |
| // http://blog.golang.org/go-image-package | |
| // http://d.hatena.ne.jp/taknb2nch/20131231/1388500659 | |
| import ( | |
| "flag" | |
| "fmt" | |
| "image" | |
| "image/color" |
| """ | |
| dpx.py | |
| Read Metadata and Image data from 10-bit DPX files in Python 3 | |
| Copyright (c) 2016 Jack Doerner | |
| Permission is hereby granted, free of charge, to any person obtaining a copy | |
| of this software and associated documentation files (the "Software"), to deal | |
| in the Software without restriction, including without limitation the rights |
| jibanyan_equation <- function(x,y) { | |
| min(max(min(1-(x/108)^2-(y/94)^2,y),min(1-((abs(x)-119)/103)^2-((y-56)/86)^2,1-((abs(x)-15)/77)^2-((y-119)/100)^2),1-((abs(x)-42)/66)^2-(y/55)^2,min(55+y,51-abs(x),-y)),3*abs(y-100)-2*(x-75)) * | |
| min(min(max(min(1-(x/106)^2-(y/92)^2,y),min(1-((abs(x)-119)/101)^2-((y-56)/84)^2,((abs(x)-99)/40)^2+((y-54)/86)^2-1,92-abs(x)),1-((abs(x)-42)/64)^2-(y/53)^2),min(((abs(x)-52)/26)^2+((y+28)/26)^2-1,((abs(x)-51)/13)^2+(y/13)^2-1,max(abs(x)-51,y))),abs(x/51+10/51*sin(abs(y/61.2)^(1.2)*pi*(7/2)))^(2/3)+abs(y/61.2)^(2/3)-1) * | |
| min(1-(x/32)^2-((y+30)/32)^2,1-((abs(x)+5)/22)^2-((y-18)/22)^2) * | |
| min(1-((abs(x)-18)/20)^2-((y+10)/20)^2,((abs(x)-20)/22)^2+((y+7)/20)^2-1) * | |
| (1-((abs(x)-51)/11)^2-(y/11)^2) | |
| } | |
| x <- seq(-150, 150, length=400) | |
| z <- outer(x,x, Vectorize(jibanyan_equation)) |
| #!/usr/bin/env python | |
| import argparse | |
| import os | |
| import pygame | |
| from pygame.locals import * | |
| import sys | |
| # constants | |
| supported_formats = ('yv12', 'iyuv', 'i420', 'nv12', 'nv21') |