
TL;DR Go(のランタイム)は以下のタイミングで自動的にGCを実行する 前回のGC後に占有していたメモリと同量を新たに確保したとき 前回のGCから2分後 cgroupなどでメモリ制限しているときは、メモリ使用量が制限の50%以上になったらruntime.GC()を呼び手動でGCすべきである 前置き: GoとOOMのこれまで 以下はGo 1.16での調査結果です。Goのバージョンが異なった場合は事情が異なる可能性があります。 Goでプログラムを書く際に、使用メモリ量を気にしなければならないシーンはGCのおかげでそう多くはありません。実際それは間違いではないのですが、運用まで視野に入れるとそうは言ってられないことがあるのもまた現実です。昨今はコンテナの利用が当たり前になったことに伴い、OOMによりプロセスが強制的に終了させられることもあり、それを避けるために一定量以下のメモリで動くことが重
Amazon Web Services ブログ Amazon ECS での Bottlerocket の始め方 〜 コンテナ向けのセキュアな Linux ディストリビューション この記事は Getting started with Bottlerocket and Amazon ECS を翻訳したものです。 2021年 6 月 30 日に、Amazon ECS に最適化された Bottlerocket の AMI が一般提供され、Amazon ECS が Bottlerocket をサポートしたことを発表しました。Bottlerocket はセキュリティとメンテナンス性を重視し、コンテナベースのワークロードをホスティングするための信頼性と一貫性のある Linux ディストリビューションを提供するオープンソースプロジェクトです。 この記事では、Amazon ECS で Bottlerocke
自分は Ebiten という 2D ゲームエンジン (ゲームライブラリ) を趣味で開発しています。使用しているプログラミング言語は Go です。 2013 年 6 月に最初のコミットを行ったので、現在 8 周年の 9 年目です。 Ebiten は「くまのレストラン」などのモバイル及び Nintendo Switch 向けゲームで使われており、一定の実績があります。 ゲームエンジンの開発は一朝一夕では終わりません。Unity や RPG ツクールといった既製品がある中、ゲームエンジンをわざわざ自作することは酔狂かもしれません。ではなぜそのようなことをしたのでしょうか。端的に言うと「ミニマムな API で実用的な 2D ゲームが作れるかどうか」ということを証明したかったのです。自分の美的感覚の追求です。この目的に気づいたのは割と最近のことです。やっていくうちに「自分がやりたかったのはこういうこ
Rustはじめました Rustイイですよね。Cと同程度のパフォーマンスで動作して、メモリリークを防止し、マルチスレッドも安全に記述できます。GC(ガベージコレクション)処理よりも高速にメモリーを開放します。今まで、より高速に動くプログラミング言語を求めるとC/C++等が必要になり、安全面で気をつけないところが増えてしまって手が出しづらく、一方で、Javaなどの安全面が確保された言語や、JavaScriptやPythonなどのスクリプトで記述できる言語は、nullやundefinedなどを気をつける必要があり、更に実行速度を上げるには課題がありました。(Javaは十分速いと思います) Rustは、C/C++と同程度のパフォーマンス(強い)を持ちつつ、型やメモリやスレッドに関する安全面を備えているため、今後、OSやミドルウェアの開発に使われることが増えるのではと思っています。一方で、JavaS
フルカラーLEDが10個並んだ画期的なバーLEDが発売され、価格も手ごろなことから衝動買いしてしまいましたが、なかなかよい使い道が思いつかず、しばらく眠らせてしまいました。Webなどで検索しても、これといっておもしろい使い方をしている作例が見当たりません。そんな折、あるイベントで縦に並んだLED列を回転させて、残像で文字や画像を表示させる装置を見かけました。一般的にバーサライタ(versa-writer)とかPOVと呼ぶそうです。バーLEDはLEDが1列に並んでいるので、バーサライタの製作にはうってつけに思われ、さっそく作ってみることにしました。 設計 使用したフルカラーバーLEDはOptoSupply社のOSX10201-LRPB2という型番のもので、秋月電子で1つ250円で販売されています。1つのセグメントにR、G、Bの3つのLEDがアノードコモンで入っており、それが10セグメント分カ
初めましての方は初めまして、 そうでない方はお疲れ様です。 なんだかんだで10本目です。 概要しか攫っていないのに全然おわらない… 字数としてはそこまで多くないはずですが、同人誌とか書く方々スゴイです… 今回はDCマウスは勿論、多くのロボットで採用されるセンサ、IMUとエンコーダについてです。 どうせなのでマウスに限らない範囲で考えてみましょう。他のロボットを知る上でも基礎となる部分ですので。 もくじはコチラ。 自己位置推定 オドメトリ(デッドレコニング) インクリメンタルエンコーダ IMU 理論と現実のズレ 自己位置推定 ロボットをロボットたらしめる重要な技術として自己位置推定があげられます。これはまさに文字通りで 「センサの情報からロボット自身がロボットの位置や姿勢を推定する事」 です。 人間で言えば、立っているのか座っているのか、自分がどの位置にいるのかを「常に」「推測」しています。
最近,量子コンピュータの話題をニュースや新聞で見かけることが増えてきました. その中で気になってきたのが,組合せ最適化と量子コンピュータ(特に量子アニーリング)に関する怪しい言説.私自身は(古典コンピュータでの)組合せ最適化の研究をやってきて,量子コンピュータを研究しているわけではないのですが,さすがにこれはちょっと・・・と思う言説を何回か見かけてきました. 最近の「量子」に対する過熱ぶりは凄まじいので,こういう怪しい言説が広まるのは困りものです.すでにTwitter上には,“組合せ最適化は今のコンピュータでは解けない”とか“でも量子なら一瞬で解ける”という勘違いをしてしまっている人が多数見られます*1. さすがに危機感を覚えてきたので,この場できちんと指摘しておくことにしました. 今北産業(TL;DR) “古典コンピュータは組合せ最適化を解けない” → 古典コンピュータで組合せ最適化を解
店に入ると、出迎えてくれるオリヒメD。会話をすることもできる=東京都中央区日本橋本町3で2021年6月24日午後4時28分、生野由佳撮影 「自分には生きる価値がない」。そんな絶望を経験しながら、自分の居場所を見つけた人たちがいる。6月下旬にオープンした「分身ロボットカフェ」は、難病や重度障害などで外出が困難な人たちが、ロボットを遠隔操作して接客する店だ。20年寝たきりの秘書との夢をかなえて店を開くロボット研究者の思いを取材した記者は、実際どんな人が何のために働いているのか気になっていた。ロボットを操作する「パイロット」と呼ばれる重度障害の男性スタッフ2人に密着すると、挫折や孤独を越えて、“分身”を使って働く深い理由が見えてきた。【生野由佳/デジタル報道センター】 50人のパイロットがシフト制で接客 6月24日午後、東京・日本橋にオープンしたばかりの「分身ロボットカフェDAWNver.β(ド
軽量な時系列データベースエンジンをスクラッチで開発する機会があったので、どのように実装したのかを必要知識の解説を交えながらまとめていきます。 実装はGo言語によるものですが、本記事のほとんどは言語非依存な内容となっています。 モチベーション 筆者は時系列データを扱うツールをいくつか開発しています。その中の一つであるAliは負荷テスト用のcliツールで、メトリクスをクライアント側でリアルタイム描画できるのが特徴です。リクエスト毎にレイテンシーなどの計測結果が際限なく書き込まれてくる中、同時に一定のクエリパフォーマンスが求められます。 これは言ってしまえば、簡易クエリ機能付きのpush型モニタリングシステムを単一ホストで実現するようなものです。 以前までの実装ではヒープ上の可変長配列にデータポイントを追加していくだけだったので、当然ながら時間の経過とともにメモリ使用量が増加していく問題を抱えて
基本的なROS上で動くプログラムの書き方とビルド方法を学習します。 基本的な用語 パッケージノードや設定ファイル、コンパイル方法などをまとめたもの ノードROSの枠組みを使用する、実行ファイル メッセージノード間でやりとりするデータ トピックノード間でメッセージをやりとりする際に、メッセージを置く場所 ノード、メッセージ、トピックの関係は以下の図のようにに表せます。 基本的には、ソフトウェアとしてのROSは、ノード間のデータのやりとりをサポートするための枠組みです。加えて、使い回しがきく汎用的なノードを、世界中のROS利用者で共有するコミュニティも、大きな意味でのROSの一部となっています。 ソースコードを置く場所 ROSでは、プログラムをビルドする際に、catkin というシステムを使用しています。また、catkin は、 cmake というシステムを使っており、ROS用のプログラムのパ
Jetson Nanoという小型コンピューターにUbuntu 18.04を入れて、ROS Melodicを入れた。 Jetson NanoはNVIDIAが提供するパワフルな小型コンピューター。そこにUbuntuというOSを入れ、ロボット用のミドルウェアであるROSを入れたのだ。 ●Ubuntu 16.04を入れる手段が見当たらない…… Jetson Nanoを使い始めたのは、Raspberry Piを使うことに限界を感じたからだ。 ノートPC(Let’snote)にUbuntu 16.04とROS Kineticを入れてオリジナルのウェアラブルロボットを動かしていた。 しかし、ノートPCからケーブルが出ているロボットはウェアラブルな感じがしない。そこでSBC(シングルボードコンピュータ)で動かせるようにして、SBCもウェアラブルにしようと考えた。 SBCといえば、でまず使い始めたのがRas
「GoPiGo」USBカメラ、Web、スマホで見る https://codezine.jp/article/detail/10068 参考 【1】準備 必要なROSパッケージのインストール (Indigoでなくてkineticだよ!) $ sudo apt-get update $ sudo apt-get install ros-kinetic-rosbridge-suite ros-kinetic-roswww ros-kinetic-libuvc-camera ros-kinetic-web-video-server $ rospack profile USBデバイス一覧表示 (Logitech, Inc. Webcam C270の表示確認) $ lsusb yoshi3@yoshi3-raspberry:~$ lsusb Bus 001 Device 006: ID abcd:12
CX事業本部@大阪の岩田です。先月GAされたCloudFront Functions(以後CF2とします)ですが、従来から利用できたLambda@Edge(以後L@Eとします)と比較して、高速かつ低コストというのがウリの1つになっています。最大実行時間や最大メモリといった制約はありますが、レスポンスヘッダを固定付与するようなライトな処理はCF2のユースケースとしてAWSの公式ドキュメントでも紹介されています。 Customizing at the edge with CloudFront Functions では今後はレスポンスヘッダの固定付与のような処理は全てCF2で実装すべきなのでしょうか?基本的にはCF2で良いと思いますが、使い方次第ではCF2よりもL@Eの方が低コストになることも考えられるので、なぜこのようなケースが起こり得るのかをご紹介します。 CF2とL@Eの料金体系比較 まず
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く