![https://twitter.com/itoooon/status/1560647243283066881](https://cdn-ak-scissors.b.st-hatena.com/image/square/64b9e5c031a5dae8a3d2a18892b80590c5f26588/height=288;version=1;width=512/https%3A%2F%2Fpbs.twimg.com%2Fprofile_images%2F1230457020551057408%2FshQklpka.jpg)
データをシリアライズするには、独自のフォーマットを定めるよりも、基本的な定義済みの構造を組み合わせてフォーマットを作るほうが望ましい場合が多いです。 そのような仕組みとしてJSON, S式, XMLなどが存在しますが、これらは 「基本的な構造」として何を選ぶか、という観点からそれぞれに個性を持っています。 本記事では、具体的な構文のことは基本的に忘れて、各フォーマットが採用するデータモデルの違いに焦点を絞って比較します。 JSON data JSON = Value data Value = -- Compounds Array [Value] | Object (Map String Value) -- Scalars | Null | Boolean Boolean | String String -- UCS-2 | Number IntegerOrFloat -- no NaNs
SmartHRに頻出する、表形式で一覧表示するUIのパターンまとめています。 SmartHRでは、表形式で一覧表示するUIを「よくあるテーブル」と呼びます。 OOUIにおけるコレクションと、コレクションに関連するアクションやフォームをまとめた総称を指します。 構成よくあるテーブルは、次の要素で構成されています。必須項目以外は任意の表示項目です。 テーブルオブジェクト名(必須)オブジェクトの情報オブジェクトの操作タイトルエリアテーブル操作エリア一時操作エリア 1. テーブルよくあるテーブルは、多くの場合「1項目1行の1次元リスト」のテーブルを含みます。 オブジェクト名オブジェクトの名前を指します。行を識別するために必須要素として設定します。 移動リンクのスタイルオブジェクトの詳細ビューへ移動する場合、オブジェクト名にリンクを設定します。 テキストリンクによる移動は「オブジェクトの操作」にはあ
はじめに こんにちは、イノベーションセンターの福田です。 今回、開発環境改善の取り組みとして GitHub Actions の self-hosted runners を AWS 上に構築しました。 この構築で得られた知見について共有します。 概要 GitHub Actions は GitHub で CI/CD を手軽に実現する機能です。 GitHub が提供している環境を利用して、 CI/CD のジョブを実行できます1。 一方で、ハードウェア等をカスタマイズできないため、例えば容量が大きくより速度の早いストレージを利用したい場合や、より多くのメモリを利用したい場合に対応ができません。 そこで、GitHub Actions には self-hosted runners という機能があり、自身の環境で GitHub Actions の CI/CD ジョブを走らせる環境を用意できます。 今回は
今回振り返るのは今まで10年間、作業環境の主軸としてきたMacに接続してきた外付けモニターの環境。ここ数年の物はデスクツアーや個別レビューなどで紹介しているものもありますが、改めて時系列順にどういった試行錯誤を経てきたのか振り返っていきます。 2012年:MacBook Pro単体 Retinaディスプレイを搭載した初のMacである15インチMacBook Proを買ったのがこの年。これよりも前に自作PCも組んでいたので外部モニター自体はあったような気がしますが、確かこの頃は実家の勉強机でMacBook Pro単体で使っていたような気がします。これ単体でも15インチの2880×1800で十分すぎる広大なモニターでした。 2013年:MacBook Pro+23インチFullHD×1 一人暮らしを始めた頃の最古の写真。LGのFLATRON E2341という23インチ・FullHD・TNパネル
はじめに ZOZOMO部プロダクト開発ブロックの木目沢です。 ZOZOMOで提供しているZOZOTOWN上での「ブランド実店舗の在庫確認・在庫取り置き」APIの開発に携わっています。 今回は、開発当初から現在に至るまでのユニットテスト戦略についてお話しします。 意識してテストを書いていたのにカバレッジが低い問題 2021年11月にリリースされたブランド実店舗の在庫確認・在庫取り置きの機能ですが、開発当初のユニットテスト方針は以下のようなものでした。 モデルのユニットテストは必ず書く モデル以外の箇所は可能な範囲でユニットテストを書く 当時は実装のコードよりテストコードを先に書くといった文化はなく、レビューでテストの有無や内容を指摘する程度のものでした。 カバレッジも取っており、GitHub上では見える化していたものの、いつの間にか確認する機会も失われていきました。 もちろん、リリース前には
One would hope that in ten years time there's no longer static content because everything is generated on the fly. 画像生成AIであるMidjourneyのファウンダーDavid Holzが、ゲームから静的なアセットは無くなり、AIがオンザフライで作った各種アセットをそのまま利用できるような、巨大AIチップを搭載したゲーム機が10年後にはできるのでは、という話をしている。このようなゲーム機ができれば、ゲーム内のテクスチャやキャラクタは自動的に無限に生成可能になる。 なかなか野心的なビジョンだが、それでもゲームそれ自身が無限に生成可能になる、とまではいかないのかなあ。キャラクタ、エフェクト、サウンド、レベルデザイン、ストーリーなどに加えて、ゲームルールそれ自身まで自動生成可能にな
早速Golangで頭を抱えている Goには「このインターフェースを実装するぞ!」という明示的な宣言がない。errorインターフェースがいい例だが、Error() stringというシグニチャのメソッドがある構造体は何でもerrorとして扱うことできるようになる。ダックタイピングのような挙動を示す そんなインターフェースの型によって分岐する単純なコードを考える type Animal interface { Bark() string } // animalを実装したCat type Cat struct {} func (cat *Cat) Bark() string { return "Nyan" } // animalを実装してないApple type Apple struct{} func whatIs(x any) { switch x.(type) { case Animal:
2022-09-29 追記: Helpful Content Update の初動で落ちたとみられるサイトの傾向を見ながら、これからについても考察する記事を出しました。ぜひご一読ください。 ja.dev Google は8月18 日(米国時間)、Google 検索の新しいアップデートである"Helpful Content Update" を行うと発表しました。 ロールアウト開始は8月22日週とされ、まずは英語圏に数週間をかけて展開予定とされています。 developers.google.com 今回のアップデートは、「人が人のために書いた、より独創的で役立つコンテンツ」「人間優先のコンテンツ」(people-first content) をGoogle検索において評価する、としています。 このアップデートについての概要及び意図や背景の解説については、渡辺隆広さんの記事に詳しく書かれており、
ブログ執筆って難しいよね こんにちは。転職会議事業部でエンジニアマネージャーをやっている落合です。先月からマネージャーをやることになりました。胃が痛い………。 早速ですが、みなさんは継続的にブログ記事などのアウトプットってできていますか?私はできていません。 そもそも、なぜ私たちはエンジニアブログなんて書いているのでしょう。この記事にもある通り、エンジニアブログは本来採用の文脈とは別に自分たちの備忘、あるいは同じ問題に直面する他のエンジニアに向けた親切心、あるいは社会還元のために執筆・運用されていたように思います。 newspicks.com 一方で、現在のエンジニア採用は売り手市場であり、採用する側からすれば自社の技術や文化、働いている人の人となりを多くの人に知ってもらうことが重要です。この際、エンジニアが継続的に執筆・投稿しているエンジニアブログは、応募者が実際に働くかもしれない人たち
Go で Web Server 書く 動作確認するだけのコードなのでなるだけシンプルに書く。んで、 Port 80 を Listen したいけどプロセスは root で走らせたくないので、 systemd でポート開いてそれをプログラム側で使うようにする。 ディスクリプタごにょる部分は coreos/go-systemd がドンピシャなのでこれを使う。 package main import ( "errors" "fmt" "log" "net" "net/http" "github.com/coreos/go-systemd/activation" ) func main() { // Mux を設定する m := http.NewServeMux() m.HandleFunc("/", handler) // Server を設定する s := &http.Server{ Handl
株式会社ログラス エンジニアの山﨑(@zaki___yama)です。 ログラスではフロントエンドエンジニアとしてプロダクト開発を担当する傍ら、CRE(Customer Reliability Engineer)というロールも兼務しており、業務時間のうち一定割合をこの CRE としての活動に充てています。 本日はこの CRE というロールを立ち上げた経緯と、立ち上げにあたり具体的にどんなことをやってきたのか、そして今後取り組みたいことを紹介します。 CRE 立ち上げの経緯 ログラスにおいてカスタマーサクセスは非常に重要な要素です。 ログラスが扱う「経営管理」という領域は非常に複雑なドメイン知識が求められます。弊社のカスタマーサクセス(CS)チームには、元々お客様と同じ経営企画業務を経験していた者も多く、単なるプロダクトの使い方にとどまらずお客様の業務に踏み込んだ支援を可能にしています。経営企
Honoという僕が作っているWebフレームワークのGitHubスター数が2,000に迫ってきた。これまで作ってきたOSSのソフトウェアでは最高で revealgo の221、次点で gh-markdown-preview の134だ。それが一気に2,000である。 もちろん、スターの数がソフトウェアの良し悪しを決めるものではない。 それに2,000はとりわけ多いわけではない。 でも、以前の自分には遥か彼方に見えていた数を獲得できたのは、とても嬉しいことだ。 去年12月から作り始めて9ヶ月間、552コミット。 今や使ってくれる人も増えた。 cdnjs のAPI Serverのバックエンドにも使われているし、 HonoをきっかけにGitHubスポンサーをしてくれている企業や人も現れている。 なにより、いろんなことを勉強させてもらった。 今回はHonoというプロダクトがどうやって2,000のスタ
現在、本業・副業ともにWEBデザイナーとしてデザイン・コーディングをしているゆるけーです。 本業で携わっているWEBサービスが割と高齢者向けのサービスで、ITリテラシーやUIが今の自分と考え方が異なるよなーと思っているなか、『高齢者のためのユーザインタフェースデザイン』という書籍に出会いました。 高齢者関係なく普通にアクセシビリティの観点でも重要な視点がたくさんあり、とてもいい書籍だったので、ざっくり大事だと思った箇所を抜粋しつつ自分で探した事例等をざっと記事にまとめていきますー。 視覚 高齢者になると視力が低下する傾向があります。ただ、視力の低下=フォントを大きくするだけではありません。 視力の低下は老眼や光覚の減少などより複雑です。 主な視力の低下の具体例は以下のような点。 老眼:近く・遠くのものの焦点が合わない 周辺視野のぼやけ:画面の端に気づきにくい 中心視野の損失:画面の中央が暗
優れたプログラマーは、金銭的な報酬や人々から賞賛を浴びる目的でコードを書くのではない。単純にプログラミングを楽しむためにコードを書くんだ。 リーナス・トーバルズ(Linuxカーネル開発者) コーリー・アルソフ氏の『独学プログラマー Python言語の基本から仕事のやり方まで』(清水川貴之氏、新木雅也氏による邦訳は2018年発行)を読んだので、本のタイトルの通り独学でプログラマーを目指している方や、新人エンジニアの方に一読をお薦めできると感じたので紹介します。 かく言う私もソフトウェアエンジニアリングを独学し、肩書きとしてエンジニアの職を得て2年目の身。 『独学プログラマー』を読んで初心に返り、至らぬ点を内省できました。 (エンジニアとして就業できてからも独学は続くので、経験を重ねてからでもこの本を読む価値はあると思います!) 本書の対象となる方 プロのプログラマーになる際に必要な知識や技術
こんにちは、@nerusanです。 皆さんは、状態管理ツールなどは使っておられますでしょうか。 例えば、有名なところでは、Redux, Recoilなどがあります。 今回は、Reactにおける状態管理についての動向を知ることで、なぜ、Reduxが使われるようになったのか?何をReduxなどのグローバルな状態管理ライブラリで扱えばいいのか?現状どうなっているのか?を調べたので、記事にしたいと思います! 自身の解釈なので、もしかしたら、誤ったことを言っている可能性もあるので、その際はご指摘いただければと思います m(- -)m SPAの流行り SPAとはSingle Page Applicationの略であり、新しいページに移動する際、サーバからページを再読み込みするのではなく、JavaScriptを使って、クライアント側のブラウザで動的にページを書き換えるアプリケーションを指します。ページご
VMwareのWasm Labsは、Webブラウザ上でWordPressを実行可能にしたデモを公開しました。 デモページをWebブラウザで開くと、実際にWebブラウザ上でWordPressが実行されます。 WordPressはオープンソースで開発されている代表的なCMSです。PHPで開発されています。バックエンドデータベースとしてMySQLが使われることが一般的ですが、今回のデモではSQLiteが使われています。 今回のデモを公開したVMwareのWasm Labsは、C言語をWebAssemblyバイナリにコンパイルできるEmScriptenコンパイラを用いて、PHPとSQLiteのコンパイルを行っています。 さらにメモリ上にファイルシステムを構築し、Service Workerをプロキシとするなど追加でWordPressを実行可能な環境を作り上げ、デモを作成したとのことです。 WebA
ゲームボーイエミュレーター、ゲームボーイアドバンスエミュレーターに続いて、Rustでファミコンエミュレーター"Sabicom"とスーパーファミコンエミュレーター"Super Sabicom"を書きました。 名前にRustっぽさを出してみました。 前回作ったマルチエミュレーターMERUのコアとして実装したので、ステートセーブや巻き戻しなどの機能も使えます。MERUの対応コアはこれで4つになりました。 こちらからWindowsとLinuxのプリコンパイルバイナリがダウンロードできるようになっています。 他のプラットフォームおよびソースコードからコンパイルする場合は ファミコンとスーパーファミコンどちらも一通り本体の機能は実装してあるつもりです。スーパーファミコンは割と細かいところまでちゃんと動くようにしてあるはずなので、動かなかったり表示がおかしかったりするソフトがあればバグですので、ぜひご報
先日、グーグルが飲食店検索で初のトップにという記事を見かけて、Google Mapsがどうやってレビュー情報を集めてきたのか、過去に書いた考察記事を公開しました。 UXリサーチ目的で、普段からデザインアップデート記録を残しているんだけど、Google Mapsのレビュー機能は2016年から頻度高く使ってきたので、実体験とコンテンツを増やしてきたのか考察をまとめた内容です。 Google Mapsのレビューを始めたキッカケ最初にレビューを投稿したのは2016年で、旅行前にGoogle Mapsで行きたい場所やお店を保存して、現地に行った時になんとなく写真と口コミを投稿したのがキッカケ。 初回投稿後にレビューを促進するコンテンツがメールで届くようになった当時Google Mapsのレビューはまだ認知度が低くメールのタイトルも実験中の雰囲気があった。特典という言葉に釣られてローカルガイドに参加し
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く