時雨堂は企業か開発する OSS としていくつかのリポジトリを GitHub に公開しています。これらを継続的に開発するためになにをしているかを書いていきます。 まとめOSS に利益を期待しないコミュニティや社外の人と仲良くするOSS に理解のある人だけを社員として雇う前提オープンソースのライセンスは Apache License 2.0ソースコードはオープン、開発はクローズコミュニティは Discord のみOSS の定義“オープンソースの定義” を前提としています。 時雨堂が OSS 採用しているライセンスである Apache License 2.0 は OSI 承認オープンソースライセンスです。 そのため時雨堂が公開している OSS は Apache License 2.0 のもと、利用可能です。 ソースコードはオープン、開発はクローズド 時雨堂の OSS の開発方針は Lua の開発
僕は、1 日に少なくとも 3,000 行程度、多く書くときで 10,000 行以上のプログラムを書くことができる。その結果、多い月で 10 万行 / 月くらいである。なお、言語は書くソフトウェアの性質上、大半が C 言語である。 また、プログラミングにはバグが付き物だが、ここ 2、3 年の間は、発生するバグの数を極めて少なく保つことに成功している。 とても大きく複雑で、かつレイヤ的に OS に近い処理をたくさんやるプログラムを書く場合は、プログラミングをするときでも、事前の設計が極めて重要となる。設計をうまく行わないと、後になって全面的に書き直しをしないといけなくなったり、パフォーマンスが低下したりする原因となり、開発者の苦痛の原因となる。 当然のことながら、これまで書いたいくつかの大きく複雑といえるソフトウェアの大半の設計も、自分で行った。いかなる場合でも、設計は、最初の 1 回目で確定
軽い読み物としておもしろおかしく読んでください。 はじめて社外の人の仕事を見た 今まで社内の成果物しか目にしてこなかったのですが、ふとしたきっかけで外部ベンダーが作ったシステムを移行することになりました。 会社名を見て、よく知った会社でちょっと安心しました。 「ここなら設計書とかもきちんとしてるだろう、多少古臭くても堅実にやってるんじゃないかな」って思ってました。ええ。 実態は全然違った とんでもない量のExcelが設計書として渡されました。 さすがに設計が専門だけあって設計書の量はすごいなぁ。と思って読んでいるといろいろ察してきました。 正直、「オワコン大手SIer」と呼ぶしかありません。設計しかできないと思っていたのに、何もできないなんて・・・ 実際に自分が見た「オワコン大手SIer」のアンチパターンをご紹介していきます。 自分が多く当てはまっている場合は今すぐ直してください。移行する
規模大きめの皮算用のお時間です。 まずはこちらのツイート zoomの話じゃないけど、「awsって最近すごいらしいね?あれいくらで作れる?1000万くらい?」と聞かれたことはある — じゃすてぃ🍖🐈駆け出しYouTuber (@justy_sh) June 9, 2020 そもそもAWSを作ることを考えたことは無かったなーと反省し 今後日本でも新しいクラウドサービスを1から作ることになる可能性も0ではないと思ったので AWSのようなものを1から作ることを雑に考えてみましょう。 AWSとは まずは1000万円で作れると思われているAWSってなんでしょうか。 まあAWSのHP見ろって話ですよね。 AWSとは 小学生でも分かるように言うと、すっげえクラウドサービスでしょうか。 どこかの国会議員には分からないかも知れませんがwwwwwww。 参考のためにWikipediaを引用すると Amazo
そうはっきり言ったほうが良かった。いや言わなくても伝わる現場は良かったんだけど、伝わらないままごく一部だけをコンポーネントに移行、それ以外はただ生 DOM API に変えて終わり(あるいは他は jQuery のまま)みたいな「モダン化」で済ます余地を与えたのは発信の失敗だった……という10年代の振り返り。 テンプレートエンジンはなぜ倒された方が(…といって悪ければ、変わったほうが)良いのかは端的に指摘できて、それは初回レンダリングしか考慮してないからだということになる。 Web の UI には状態変化がつきもの(になったのは実は最近の話)だが、テンプレートエンジンは1回目のレンダリングだけを担当し、変化した後の2回目以降の見え方は JavaScript が担当するというパラダイムを構成する。
昨日の続き。 PHPの価値が相対的に落ちてJavaの価値があがっていく PHPとJava Windows Azureでは、PHP対応もあるらしい。 また、GAE/J上でPHPを動かしたら一緒ではないかというコメントもあった。現状ではGAE/J上でPHPを動かす環境が未完成であったとしても、先のことを言うのであればこちらも完成度があがっていくことを考慮する必要がある。 ただ、これらを考慮したとしても、PHPの相対的な価値が下がったという意見には変わりがない。 PHPがこれまでもっていた「動かす環境が確保しやすい」という特権がなくなったということをもって、PHPの相対的な価値が下がったといっているからだ。実行環境の確保という点では、PHPがもっていたほかの言語に対する優位性がなくなった。 また、Google App EngineによってPythonではなくJavaが強くなったというのは、今まで
先週のHackathonで早押しクイズ用に作ったArduino/RaspberryPi/M5Stack/M5StickC等で制御できる大型ボタンについて、さらに大型のボタンを作ってみました。 これも100均で売ってたので、材料費は激安です。 超大型LED付ボタンの製作 目次 目次 こんなふうに動きます&製作過程動画 元の商品 改造のポイント まとめと今後 主要なパーツリスト こんなふうに動きます&製作過程動画 買ってきたときの動作と、主な改造のポイントを動画にしました。 100均の大型LEDタッチライトをArduino/RaspberryPi/M5Stack/M5stickCで制御できる超大型LED付ボタンに改造する 元の商品 セリアで100円で売ってました。 手のひらより大きいです。 クイズゲームで使うには、見た目上のインパクトもあって面白そうです。 100均の大型LEDタッチライト 改
ボツネタかつ、golintが非推奨になりそうなので、急いで書きます。 golintを守ってれば、最低限Effective Goぽいコードを書くことができるので、初心者取っ掛かりのlintとしては良いよなーと個人的には思っており、非推奨には寂しい気持ちもあります。とはいえ、Goが言語自体も変化をしていく中で妥当な判断だと思います。しかし、他言語でも見られる光景ですが、lintをメンテナンスする難しさというものを感じてしまいますね…。 本題 さて、プロジェクトに途中からgolintを導入しようとすると(もはや導入すべきなのかどうか分かりませんが)、やたら警告が出てきて心が折れてしまうことで知られています。特に、 "exported $hoge should have comment or be unexported" と言うメッセージは量も多く、対応も大変なので困りものです。 これは「publ
EventEmitterのようにPub/Subを行うeventmitという小さなライブラリを書きました。 azu/eventmit: Simple EventEmitter. A single event object per an event. eventmitは、TypeScriptで書かれています。 また、Node.jsのEventEmitterなどとは違って、イベント一つに対してeventmitのオブジェクトを一つ作成して使います。 import { eventmit } from "eventmit"; const event = eventmit<{ key: string }>(); // Register handler event.on((value) => { console.log(1, value); }); event.on((value) => { consol
tblsには、tbls-cacoo のような外部コマンドをtbls cacoo のようなサブコマンドとして実行できるような機能を実装しています。私はこれを取り敢えず”外部サブコマンド機能”と呼んでいます。 外部サブコマンド機能は、 コマンド名が tbls-XXX という命名規則であること 1をtbls XXX という形であくまで tbls を実行すること という2つの条件をみたすことで、環境変数経由でtblsで取得した情報を外部コマンドに渡しています。 これにより、外部コマンド側では少ないコードベースで機能を実現できるようになっています。 実際に、例えばtbls-cacooのコードにはデータベースに接続するような実装は含まれていませんが、以下のようなコマンドでCacooで対象のデータベースのER図を生成するためのCSVを出力できます。 $ TBLS_DSN=postgres://dbuse
こないだ出てた10Xのバリューの記事で、自律する、が挙げられているのが興味深かった。 うちのチームは、リモートとは言っても、時差があるわけでもないので、皆の働く時間をあわせて業務時間中はリアルタイムに同期しながらやりましょう、という感じでやっていて、なんでも聞いてくださいって感じでやっている。 自律に寄せていくとタスクの切り分け方とかも変わってきそうで、ペアプロしまくって進めましょうというバディみたいな働き方というよりは、大きく切り出して渡しておくような形になりそう。 10x.co.jp コアタイムを設けて残りは各自で、とか、自分の集中する時間で難しいことをする、とかをやろうとすると、自律や自走することは求められてくると思って、そうするとアルバイトや新卒を育てていくようなマインドとどう折り合いをつけられるものか考えている。教育係のようなロールだとわりきって、オンボーディングや新人向けのメン
100均で売ってるキッチンタイマーを分解して解析してみました。100円のデバイスの中に、ボタン電池、スイッチ、スピーカー、電池ボックスと、単独でも十分元の取れる電子部品の宝庫ではありますが、中でも気になるのが液晶です。 制御方法がわかれば、ArduinoやRaspberryPiにも使えそうです。 線を引き出すので割に合わなさそうですが、100円で調達できる超小型・低消費電力表示デバイスとしては面白いかも、ということでまずは基本動作の確認と液晶ドライブ方法の解析からスタートします。 最終的な制御方法のまとめなどは、追って掲載していきたいと思います。 100均キッチンタイマー液晶の解析 目次 目次 基本動作と解析の様子 今回使ったキッチンタイマー 制御波形をいくつか 参考にさせていただいたサイト 基本動作と解析の様子 小型のデジタルオシロ「Quimat 2.4"TFT デジタル オシロスコープ
先月くらいからじわじわと、C# Language Design Meeting で Records がらみの議題が上がっています。 最近やっとまとまってきた感じがするのでまとめて紹介。 LDM notes for May 4 LDM notes for May 11 LDM Notes for May 27 LDM notes for June 1 record 型の新設 まず、基本方針として、record は class/struct に対する修飾子ではなくて、enum とか delegate とかと同じく1種の型みたいな扱いにしたみたいです。 なので、以下のような書き方に。 record Point(int X, int Y); とりあえず初期実装としては結構やることを絞るみたいで、 record は参照型 値型なものは既存の struct に手を入れるか、"record struct
Intro WebTransport の Quic 実装である QuicTransport の開発が Chrome で行われている。 Chrome で Origin Trials が開始されたので仕様と実装を解説する。 QuicTransport WebTransport については 以前解説した が、位置づけとしてはこうだ。 WebTransport QuicTransport Http3Transport 今回入ったのは、 WebTransport の通信レイヤとして QUIC を用いた QuicTransport という位置づけになる。 IETF で WebTransport over QUIC としてバインディングの仕様が策定され、 WICG でブラウザ API が策定されている。 draft-vvv-webtransport-quic-00 - WebTransport over
もう1週間近く経過しちゃってるんですけども、Visual Studio 16.7 Preview 2 が出ています。 Visual Studio 2019 v16.7 Preview 2 Available Today! で、今日はこの Preview 2 で追加された C# 9.0 候補の話です。 先月追加された Srouce Generator関連の機能で、 partial メソッドの亜種が追加されました。 先月、Design Notesの時点で軽く触れていた機能が、この度実際に触れる状態になっています。 (既存の) partial メソッド 意外と知られていない機能みたいなので改めて、既存の partial メソッド自体についても説明。 一番の用途としては、自動生成されているコードに、一部分だけ手動で処理をカスタマイズしたいみたいなときに使います。 例えば、以下のようなソースコードを
社のプロダクトではビジュアルリグレッションテストのためのツールであるBackstopJSをここ半年くらい使っている。referenceという正解データの画像と、testとして開いてキャプチャした画像を見比べて、差分があれば失敗、というテストを書ける。テストケースの設定がJSONを書くだけなのでテストを書くコストが低いのと、結果的に画像に出る形でテストすることを強制される、というシンプルさが気に入っている。過去にはE2Eテストをいろいろ試したけどどれも最終的に滅びてしまい、BackstopJSはそんななか生き残っている希望のテクノロジー。 リリース前の確認フローにも使っているし、書いてる途中のコードの動作確認にも使えて、数ピクセルの意図しないズレを検知できたりしている。 便利だけど、運用上苦労している点もあって、テストの書き方が悪かったり、ネットワークの調子が悪かったり、で確率的に落ちるテス
_ JavaScript Primer アスキーというかドワンゴの鈴木さん(いつもありがとうございます)からJavaScript Primer 迷わないための入門書 をもらったので読んだ。最近、JavaScript使いまくりプログラムをいじくっているのでありがたいタイミングだった。 JavaScriptのハードコアな本をちゃんと読むのはオライリーの犀本以来で、その後はおもにMDNとECMAの仕様書で済ませているわけだが、やはり日本語の(信頼がおける)文書は読みやすい(MDNはMSDNほどではないが、やはり微妙なところではEnglishに言語設定しないとわけがわからない)。 本書は基本的には通読すべきで(必ずしも精読は必要ないと思う。どこに何が書いてあるかを漠然と記憶して後から参照できるようにするため)、要は一昔前っぽいガチなプログラミング言語の入門書(言語仕様と10日でわかるチュートリアル
この機能が導入されることにより、{raw/file/url}-loader が不要となります。 webpack@4 でも使えますが、まだ実験的フェーズです。 Documentation Asset Modules | webpack webpack is a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser, ... モジュールタイプと以前との対応表 asset/resource -> file-loader asset/inline -> url-loader asset/source -> raw-loader asset -> asset/resourceとasset/inlineを自動選択する(閾値: 8kb) 使い方 実験フラグをオンにする。 // webpa
JSer.info #491 - Firefox 77がリリースされました。 New in Firefox 77: DevTool improvements and web platform updates - Mozilla Hacks - the Web developer blog Firefox 77.0, See All New Features, Updates and Fixes Firefox 77 サイト互換性情報 | Firefox サイト互換性情報 Firefox 77 for developers - Mozilla | MDN 開発者ツールのSource Mapロード時間の改善、デバッガーのステップ実行の改善、ネットワークパネルの改善などが行われています。 またES 2021で入る予定のString#replaceAllの実装、JPEG画像がExifデータに基づい
LGPLからポリフォーム非商用へ バージョン 5 から、ライセンスを LGPL からポリフォーム 非商用 1.0.0 (非商用使用のみを許可するライセンス) に変更しました。ポリフォーム非商用ライセンスと組み合わせて、商用ビジネスでEPPlusを使用する顧客向けのライセンスを販売しています。EPPlusはしばらく前からあるので、なぜ私たちがこの変更をすることに決めたのか不思議に思うかもしれません。 EPPlusの裏話 私たちはスウェーデンのストックホルムに拠点を置くJan KällmanとMats Almの2人の兄弟です。Janは、作業しているプロジェクトにスプレッドシートライブラリが必要で、その時点では十分なパフォーマンスと機能性を備えたものが何も利用できなかったという単純な理由から、2009年にCodeplexでEPPlusを開始しました。しばらくしてMatsが参加し、私たちは主に楽し
情報源: Excel spreadsheet library for .NET Framework/Core – EPPlus Software xlsxファイルを操作するためのライブラリであるEPPlusがVer.5からLGPLでは無く、商用有償ライセンスと非商用無償ライセンスの二本立てになっていました。
Learn what is new in the Visual Studio Code May 2020 Release (1.46) 情報源: Visual Studio Code May 2020 出ました。 アクセシビリティの改善、ワークベンチでレイアウトの設定の自由度が増し、タブのピン止めが可能になり、TypeScript 3.9をサポートしました。
► 2022 (2) ► 10月 (1) ► 2月 (1) ► 2021 (51) ► 11月 (2) ► 10月 (2) ► 9月 (4) ► 8月 (4) ► 7月 (4) ► 6月 (4) ► 5月 (3) ► 4月 (10) ► 3月 (7) ► 2月 (4) ► 1月 (7) ▼ 2020 (155) ► 12月 (7) ► 11月 (10) ► 10月 (8) ► 9月 (8) ► 8月 (11) ► 7月 (21) ▼ 6月 (19) 2020/06/30 筋トレ 事実の証明 2020/06/28 筋トレ マザボの型番 グラボの型番を確認 ハードウェア設定が変更されました。変更を有効にするには、コンピューターを再起動してください。 2020/06/24 筋トレ トレード SQL Server Management Studio ダークテーマ output句 inserted.
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く