将来読み返して「そんなこともありましたねぇ」と思うために書き残しておきます。なお、記事中の日時は日本時間です。 2020年9月16日 2:00に開催されたAppleEventにて、iOS14のリリース日が2020年9月17日だと発表されました。突然の発表に戸惑い、時にはキレるエンジニアたち。どうしてでしょう。 iOS 14のGM版が出てねぇ AppleEventの開始時点ではiOS 14のBeta版は以前から利用可能でしたが、GM版は出ていませんでした。 Beta版でのデバッグも可能ですがやはりBeta版ですので、不具合も発生します。この不具合がBeta版iOSのせいなのか、アプリのせいなのか判断をするのは難しいです。そのため、不具合報告をAppleにフィードバックを送ったりしてGM版の登場を待ちます。そして、GM版が公開されてから、再度がっつりと動作確認・デバッグすることが多いです。 i
こんにちは。Reactの話題の中でもかなりの部分を占めるのがステート管理、さらに言えば各種のステート管理ライブラリです。今さらながら、Reactにおけるステート管理の手法やいくつかのステート管理ライブラリを比較考察して記事にまとめました。 useState + バケツリレーReactにおける基本的なステート管理はuseStateです。ひとつのコンポーネント内で完結するようなステートならばuseStateは非常に適しており、他の選択肢はほぼ無いと言っても構わないでしょう。 ステートをアプリケーションの広範囲で使いたい場合が問題です。次の画像に例示されるように、分岐したコンポーネントツリーの末端のコンポーネント(使用者)で同じステートを参照したい場合を考えます。 useStateと組み合わせる場合、もっとも原始的な方法はpropsのバケツリレーによるものです。propsは親コンポーネントから子
訂正(2022/10/12 15:00) 本文中で「Twitter日本法人に内容証明郵便を発送した」と書いていましたが、 これは「Twitter本社(アメリカ)の日本担当者に内容証明郵便を発送した」の間違いでした。 今朝いきなり凍結されましてね…… pic.twitter.com/025nwyqdZJ— gecko (@gecko535) 2022年6月9日 アカウントを取り戻しました!!!!!!!!!!!— gecko655 (@gecko655) 2022年10月6日 2022年6月9日10時〜2022年10月6日12時の間、Twitterの @gecko655 のアカウントは凍結されていました。 この記事では、凍結解除されるまでに何をやったか、凍結解除のためにどのくらい費用がかかったか等を記録していきます。 なんで凍結されたの? 凍結されたあとにやったこと 公式の異議申し立てフォーム
昨日、Facebook製のReact用ステート管理ライブラリRecoilが発表されました。Facebook製といってもReact公式のステート管理ライブラリとかそういう位置付けではないようですが、それでも大きな注目を集めているのは間違いありません。 そこで、筆者がRecoilに対して思ったことや、筆者の視点から見たRecoilの特徴を記事にまとめました。 なお、この記事の執筆時点では副作用の扱いなどの点はいまいち情報が揃っていません。この記事では速報性を重視し、コアのステート管理部分に絞って考えています。また、まだexperimentalなライブラリなので、今後この記事の内容からRecoilのAPIが変化したとしても悪しからずご了承ください。 この記事を書くときに筆者が色々試していたCodeSandboxはこちらです。 https://codesandbox.io/s/recoil-san
個人的なJavaScriptの情報収集の方法についてまとめてみます。 JSer.infoなどをやっているので、JavaScriptの情報については色々な情報源を見るようにしています。 JSer.infoの範囲の中での情報源については、次の記事でまとめています。 JSer.info 13周年: JavaScriptの情報源を整理する - JSer.info この記事では、少しスコープを広げてJavaScriptの情報収集についてまとめてみます。 かなりスコープが広がってしまうので、万人向けの方法ではなく、個人的な情報収集方法としてまとめています。 この記事では、膨大な情報の中から見つけるというアプローチをとっているので、人によって向き不向きがあると思います。 情報収集の方法 情報の元となる情報源はさまざまなサイトや人になると思います。 しかし、そのサイトや人ごとに見ていくというのはかなり大変
テキスト編集だけでなく、表計算やイラスト作成など、何かの目的を達成しようとした際には「どのツールを選ぶのか」が問題になってきます。テキストエディタの世界でVisual Studio Codeがその地位を不動のものにしつつある点について、ロビン・クリーンさんがデータをまとめています。 The Era of Visual Studio Code | Roben Kleene https://blog.robenkleene.com/2020/09/21/the-era-of-visual-studio-code/ ツール選びの一つの考え方は、「一番寿命が長いツールを選ぶ」というものです。どんなに慣れ親しんだツールであっても、開発が終了してしまうと新たなツールの使い方をまた最初から学びなおす必要があり、そうした苦労を避けるには人気があって長く使われているツールを選びたいところ。表計算やイラスト作
1年間で4万台以上! ネットワークカメラ「ATOM Cam」が売れている秘密:あの会社のこの商品(1/6 ページ) 防犯、家族やペットの見守りのためにネットワークカメラの導入を検討したものの、値段が高くて断念したことはないだろうか? しかしアトムテックの「ATOM Cam」なら、値段を理由に諦めることはないだろう。1台2500円と激安だからだ。 2020年5月に一般販売された「ATOM Cam」は、撮影した映像をスマートフォンやPCでリアルタイムに見ることが可能。Wi-Fiに接続して、専用スマートフォンアプリで簡単に設定することができる。ほかにも次のような特徴を持っている。 1080PフルHDに対応した高画質 高感度CMOSセンサー搭載で、月明かり程度の光があればカラー撮影可能 赤外線ナイトビジョン搭載で、暗闇でも9メートル先まで鮮明に映せる 動体検知機能で留守中の子どもやペットの動き、屋
こんにちは、IoT スペシャリストソリューションアーキテクトの三平です。 最近は安価なネットワークカメラ製品が色々販売されていて、セキュリティカメラや見守りカメラとして簡単に利用できるのでとても便利ですね。でも、そういった製品をわざわざ買わなくても、皆様のご自宅に余っている Raspberry Pi と USB カメラを組み合わせるだけで、簡単にクラウド録画対応のおうちセキュリティカメラを作れてしまうんです! この記事では、Raspberry Pi と USB カメラ、Amazon Kinesis Video Streams を用いた簡易的なホームセキュリティカメラシステムを構築します。カメラの映像を常にクラウドにアップロードするかわりに、Raspberry Pi の中で顔検出のアルゴリズムを動かし、検出時のみに動画をアップロードすることで、コストパフォーマンスの良いクラウド録画の仕組みを
GitHubは6月8日(現地時間)、テキストエディタ「Atom」の開発を終了すると発表した。12月15日に関連する全プロジェクトをアーカイブするという。理由は「Microsoft Visual Studio Code」と「GitHub Codespaces」による、クラウドでのソフトウェア開発の信頼性向上に集中するためとしている。 Atomは、GitHubが開発したオープンソースのテキストエディタ。2015年にバージョン1.0をリリース、その後もアップデートを繰り返していた。しかし、過去数年間は重要な機能開発をしておらず、メンテナンスとセキュリティアップデートのみを実施してきたという。 また、クラウドベースのツールが新しく登場したことにより、Atomコミュニティーへの参加者は大幅に減少。このような背景からGitHubでは、Webブラウザで動作する統合開発環境であるGitHub Codesp
Fecebook が新しく発表した Recoil について 自分の学習手順 Getting Started | Recoil を写経して動かす Facebook 製の新しいステート管理ライブラリ「Recoil」を最速で理解する - uhyo/blog で非同期周りを理解 公式ドキュメントの API Reference で理解 <RecoilRoot ...props /> | Recoil これは自分が写経しながら書いた型定義。色々足りてないがチュートリアルで出る範囲は理解できる。 declare module "recoil" { export type RecoilState<T> = {}; export const RecoilRoot: React.ComponentType<{ initializeState?: (options: { set: <T>(recoilVal:
Reactの開発において、状態管理の方法は注意深く検討する必要があります。状態管理ライブラリ「Redux」が大きい勢力ではありますが(参照:npm trends)、記事『ベストな手法は? Reactのステート管理方法まとめ』でも紹介した通りさまざまな状態管理の手法が現在でも編み出されています。本記事では状態管理ライブラリ「Recoil」についての概要と簡単な使い方、Reduxとの思想の違いについて解説します。 Reduxによる状態管理の懸念点 Reduxでは状態管理を一か所にまとめられるというメリットがあります。これはメリットのように思えますが、小さな単位の状態管理もReduxに委ねるのか迷いどころです。 また、Reduxは状態更新の作法的な書き方が複雑でした。Redux ToolkitというReduxのアドオンとしてのJSライブラリもありますが、基本的には作法的な書き方はあまり軽減しませ
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 1. 概要 2024年の1月24日にZedがOpen source化しました! ということで、Zedとは何か、実際に使ってみてどうだったかというのを簡単にご紹介できればと思います。 2. Zed とは何か? AtomとTree-sitterのクリエイターによる、Rust製のコードエディターで、OSS (オープンソースソフトウェア) であり、 Githubのリポジトリ こちらで公開されています。 公式サイトから一部抜粋すると下記のような特徴があるようです。 2.1 パフォーマンスを重視した設計 2.2 インテリジェンス系のサポート Git
2023 年に使った技術まとめ 2023 年もそろそろ終わりなので、今年のエンジニア生活のまとめです。 正直今年はほとんど仕事しかやっていないです。どうしてもお仕事だと攻めた技術選定ができなくて(記事書くには)あんまり面白くないなあ…の気持ちではあるんだけど、その分実務でこんな技術使ってますよ、ってお話としてみていただければ幸いです。 React 18 / TypeScript 去年(2022)までは Vue と React 半々くらいで生きてたんだけど、今年はどっぷり React でした。 Vue の選択肢もないわけではなかったんだけど、ある程度の規模のプロジェクトで、かつアプリケーションとしての複雑度が高いものを作る時に Vue はやっぱりちょっと怖いんですよね。。正直コントロールできる自信がちょっとない。 多分当面は、ロジックの複雑度や抽象度が高いものは React、ロジックは素直で
日本時間の7月1日午後11時ごろからTwitterの閲覧制限が続く中、ニュースも取得できず困るという声が上がっている。そんな中、ITmedia NEWSのTwitterアカウントで編集長がRSS利用の選択肢を呼び掛けたところちょっとした話題になった。 しかし、筆者(20代半ば)はRSSを使ったことがない。知ってはいるが必要だと感じたことがなかった。ネットを始めたころにはとっくにTwitterがあったからだ。そんな話をすると編集長に「え、RSS使ったことないの?」と不思議な顔をされた。 編集長のインターネット老人ムーブを見ているのもムカつく(検閲済み)ので、そのRSSとやらが現在でも使い物になるのか、人生初挑戦してみた。 RSSとは何ぞや SNSの台頭で“古の技術”に? 筆者もそうだが、中にはTwitterを“最新情報取得ツール”として使っている人もいるだろう。その役割をもともと担っていたの
愛媛大学は3月10日、118種類の原子すべてをまとめた周期表に記載されていない、仮想的な原子からできているかのように振る舞う物質を発見し、その物質中では質量がゼロの特殊な電子が光速に近い速度で動き回っていることも発見したと発表した。 同成果は、愛媛大大学院 理工学研究科の内藤俊雄教授らの研究チームによるもの。詳細は、結晶学に関連する全般を扱う学術誌「Crystals」にオンライン掲載された。 現在の科学では原子番号1の水素から同118のオガネソンまで、118種類の原子の存在が確認されており、それらはすべて周期表に記載されている。研究チームは、さまざまな分子からなる伝導性物質や磁性体などを長年にわたって研究してきており、これまでも、紫外線を当てたときだけ金属に変わる有機物など、ほかの物質には見られない機能を持った新しい物質を発見してきたという。今回の研究もそうした一連の流れとして、新しい物質
※こちらは初代ATOM Camに関する記事になります。 技術的に共通する部分も多いですが、ATOM Cam2に関する記事は ↓こちらに記載していますのでこちらもどうぞ はてなブログに投稿しました #はてなブログ ATOM Cam2が届いた&赤外線問題の検証 - honeylab's blog https://t.co/M9OHyihAP7 — ひろみつ(honeylab) (@bakueikozo) 2021年5月20日 ---------------------------- 激安防犯カメラ「ATOM Cam」 一部界隈で話題になった、クラウドファンディング形式で発売することが報じられ、一時期は達成は全然無理かと思われた「ATOM Cam」ですが internet.watch.impress.co.jp 最終的には十分な投資を集めて無事発売、にこぎつけたようです。 そして、こちらの製品を
scrollbar-gutter CSS プロパティでスクロールバーの切り替わりによる画面のガタツキを解消する 2024.06.01 子要素が親要素のボックスからはみ出した時、overflow プロパティの値が auto または scroll の場合にスクロールバーが表示されます。スクロールバーがクラシックスクロールバーの場合、スクロールバーの表示・非表示によりボックスの幅が変わるため、画面がガタつくことがあります。scrollbar-gutter プロパティを使うとスクロールバー用のスペースをあらかじめ確保でき、画面のガタツキを解消できます。 子要素が親要素のボックスからはみ出した時、overflow プロパティの値が auto または scroll の場合にスクロールバーが表示されます。スクロールバーがどのように表示されるかは OS やブラウザの設定により異なりますが、大きく分けて以下
税込み2500円の低価格ネットワークカメラ「ATOM Cam」+Echo Showで監視システムを作って分かったこと:山口真弘のスマートスピーカー暮らし(1/2 ページ) その価格の安さで、発売以来人気を集めているのが、アトムテックのWebカメラ「ATOM Cam」だ。同社直販で2500円(税込み、送料別)というリーズナブルな価格ながら、一般的なネットワークカメラが備える基本的な機能を網羅しており、コストパフォーマンスは抜群だ。 このATOM Camは、音声アシスタントの「Amazon Alexa」に対応しており、スマートディスプレイ「Echo Show」シリーズと組み合わせて、リアルタイムの映像監視が行える。実機を使ってその使い勝手をチェックした。 角度調整の自由度が高いネットワークカメラ 本製品は、スクエア形状のボディーを持つネットワークカメラだ。スマホに専用アプリを入れて、Wi-Fi
こんにちは、ラクス入社1年目のkoki_matsuraです。 本日は前回記事の「【Recoil】Reactの状態管理ライブラリ基礎学習 ~第三部~」で作成したToDoアプリのRecoil部分をリファクタするとともにパフォーマンスを上げるためにどうするかについてご紹介させていただきます。 もし、前回の記事を読んでいない方は下記のリンクから読んでいただけると嬉しいです。 tech-blog.rakus.co.jp アジェンダは以下の通りになっています。 Recoilを用いたToDoアプリの問題点 複数人でRecoilを使うときに意図しない状態変更が行われる可能性 無駄な部分まで走る再レンダリング 解決方法 「複数人でRecoilを使うときに意図しない状態変更が行われる可能性」の解決方法 「無駄な部分まで走る再レンダリング」の解決方法 コード修正 TodoStateの修正 Atomの正規化 変更
scrapbox.io から派生して、 blog.sushi.money こういうことが可能だとわかった。 はてなブックマークはAtom形式でのエクスポートが可能なので、 はてブにAtomを吐き出させる AtomをJSONに変換する あとは同じ というプロセスで、自分のはてブのコメントを知っている状態のChatGPTのモデルを作ってみた。 コード 一番元々の記事ではPythonで書かれていたコードが、 id:hitode909 のコードではRubyになり、自分のコードだとScala3になっていて面白い。 #!/usr/bin/env -S scala-cli shebang -S 3 // usage: batom2json.scala.sc ~/Downloads/Windymelt.bookmarks.atom > from_bookmark/Windymelt.json // You
ソフトウェアエンジニアの坊野です。 この blog では、先日 GitHub で公開された HEVCPlayerView について説明させていただきます。 背景 Pococha は DeNA が提供しているライブコミュニケーションアプリです。 Pococha は動画配信時に様々な動画エフェクトを表示しています。 この動画エフェクトは配信画像の上にエフェクト画像を合成することによって実装されています。 しかし、この "動画エフェクトが重い" というご意見を多くのユーザからいただいたため、私たちはこの動画エフェクト表示部分の負荷について詳しく調査しました。 その結果、以下の処理の負荷が高くなっていました。 動画ファイル1 のデコード 動画ファイル1 の読み込み 当時 Pococha の動画エフェクトは 2 個の動画ファイル1 で構成されていました。 Pococha は動画エフェクト表示時にこれ
1台たったの約2000円という驚きの低価格でクラウドファンディングに登場し、5月から開始した税込2500円の一般販売でも順調な売れ行きを見せているスマートホームカメラ「ATOM Cam」。シンプルな外観に似合わない多機能さが特徴だが、9月には監視用カメラに止まらない大きな進化を見せる。ポイントとなるのは、なんといっても「エッジAI」としての機能が強化されることだ。 ATOM Camはすでにモーション(動体)検知の機能を備えており、映像内に動きがあったときにスマートフォンにプッシュ通知しつつ、同時に録画を開始できるようになっている。今度はこれに「犬や猫」あるいは「人」を見分けて通知・録画する機能が追加されるのだ。こうした検知機能を実現できるのは、ATOM CamがAI処理可能なチップを搭載しているからこそ。スマートフォンやサーバー、ネットワークに負荷をかけることなく、エッジ端末であるカメラ単
こんにちは、Jotaiの作者です。Jotaiが生まれるまでに様々な取り組みをした歴史を短い記事にしてありますのでよろしければご覧ください。今後のJotaiの発展に期待します。 以下、ChatGPTによる翻訳です。 はじめに この投稿では、なぜ私がJotaiの開発を始めたのか、その背景にあるストーリーを共有したいと思います。JotaiはしばしばRecoilと似たような解決策と見なされますが、その開発にはもっと長い歴史があります。 React Hooks React Hooksが最初に発表されたのは2018年10月のことでした。Reactコンポーネントの外でロジックを開発するというアイデアが気に入り、すぐに多くのライブラリがこのアプローチを採用するだろうと考えました。何か開発したいと思い、グローバル状態管理という分野を選びました。私のモチベーションは、Reduxのセレクター、当時「mapSta
スマートホームカメラ「ATOM Cam」を開発・販売するATOM Tech(アトムテック)は6月12日、同社の提供する「ATOM – スマートライフ」アプリ(Android版、iOS版)において、事前の説明と異なる目的で位置情報を利用していたことを謝罪し、位置情報の利用を停止した修正版のアプリを公開した(ATOM Techのニュースリリース)。 発端は5月29日、Googleのソフトウェアエンジニアである河本健氏がAndroid上でのパケットキャプチャにより、同アプリが起動時に端末の緯度・経度をアトムテックのサーバーに送信していることを発見したことに始まる。 同アプリでは事前に「スマートフォンのWi-Fi情報を取得するため」として初期設定時に位置情報の取得の許可を求めていたが、そのために位置情報を送信する必要性を同社に問い質したところ、実は「ユーザーのタイムゾーンを判定するため」という回答
弊社、アトムテック株式会社が5月18日から販売を開始した新製品ATOM Cam 2(アトムカム ツー)において、赤外線ナイトビジョンモードの際、画面の隅で一部映像が見にくい現象が出ることが判明いたしました。赤外線ナイトビジョンは、赤外線照射により暗闇でも9メートル先まで鮮明なモノクロ映像が映せる機能です。 この現象は、照射する赤外線の一部がレンズに漏れて写ることにより発生していることを確認し、原因はカメラレンズ周辺部品の遮光率が設計基準に達しないものが装着されていたことであると判明しました。これは当該部品の生産メーカーが、設計開発で指定され検証段階まで使用していた材料とは異なる材料を、製品版製造段階で間違えて使用してしまったためであることが、昨夜からの調査で判明しました。 ATOM Cam 2 製品版で現出した、上部左右に見えにくい箇所のある赤外線ナイトビジョン画像 ATOM Cam 2
「シェルスクリプトで作る Twitter bot 作成入門」を見て簡単なボットでも作ろうかと色々と調べているのだが[1],ブログ等が公開している RSS/Atom フィードを取得する構造が簡単な Go パッケージがないかとググってみたら丁度いいのがあった。 mmcdole/gofeed: Parse RSS, Atom and JSON feeds in Go mmcdole/gofeed が優れているのは,フィードの種別に関わらず食べてくれて,統一された構造体に落とし込んでくれるところ。たとえばこんな感じ。 package main import ( "fmt" "os" "time" "github.com/mmcdole/gofeed" ) func main() { feed, err := gofeed.NewParser().ParseURL("https://zenn.dev
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く