Visual Studio Code はエンジニアのみなさんでしたら、とても馴染み深い印象をもたれているのではないでしょうか?現在、私はマイクロソフト社で Developer Advocate として VS Code 開発チームとも一緒に働いています。今回は Developer Experience の観点から、マイクロソフトの開発者たちと試みた取り組みに関してご紹介します。今回の試みでは、開発者の体験をより良いものにし、モチベーションを上げるために、開発者ならば誰もが好きな VS Code のエクステンションを使ったアイデアを実施しました。また、技術的な観点から VS Code の新機能や、これからの取り組みについてもお話ししたいと思っています。
Visual Studio Code はエンジニアのみなさんでしたら、とても馴染み深い印象をもたれているのではないでしょうか?現在、私はマイクロソフト社で Developer Advocate として VS Code 開発チームとも一緒に働いています。今回は Developer Experience の観点から、マイクロソフトの開発者たちと試みた取り組みに関してご紹介します。今回の試みでは、開発者の体験をより良いものにし、モチベーションを上げるために、開発者ならば誰もが好きな VS Code のエクステンションを使ったアイデアを実施しました。また、技術的な観点から VS Code の新機能や、これからの取り組みについてもお話ししたいと思っています。
The Fastest Possible Way to Develop an Interactive AppLINE Corporation
Kenichiro Nakamura
SDK & Tool contributor
You might have productivity issues in development for LINE platforms, such as LINE Bot, Clova, LINE Pay. In this session, he will share best practices for interactive app development.
Optimization of sophisticated development environments like Visual Studio Code enables us to develop interactive apps faster while achieving higher precision. This session presents the demonstration of debugging that leverages LINE Simulator, Clova Simulator, which are being developed as open source, and other code editors.
※C# and Node.js will be used.
セル生産方式におけるロボットの活用には様々な問題があるが,その一つとして 3 体以上の物体の組み立てが挙げられる.一般に,複数物体を同時に組み立てる際は,対象の部品をそれぞれロボットアームまたは治具でそれぞれ独立に保持することで組み立てを遂行すると考えられる.ただし,この方法ではロボットアームや治具を部品数と同じ数だけ必要とし,部品数が多いほどコスト面や設置スペースの関係で無駄が多くなる.この課題に対して音𣷓らは組み立て対象物に働く接触力等の解析により,治具等で固定されていない対象物が組み立て作業中に運動しにくい状態となる条件を求めた.すなわち,環境中の非把持対象物のロバスト性を考慮して,組み立て作業条件を検討している.本研究ではこの方策に基づいて,複数物体の組み立て作業を単腕マニピュレータで実行することを目的とする.このとき,対象物のロバスト性を考慮することで,仮組状態の複数物体を同時に扱う手法を提案する.作業対象としてパイプジョイントの組み立てを挙げ,簡易な道具を用いることで単腕マニピュレータで複数物体を同時に把持できることを示す.さらに,作業成功率の向上のために RGB-D カメラを用いた物体の位置検出に基づくロボット制御及び動作計画を実装する.
This paper discusses assembly operations using a single manipulator and a parallel gripper to simultaneously
grasp multiple objects and hold the group of temporarily assembled objects. Multiple robots and jigs generally operate
assembly tasks by constraining the target objects mechanically or geometrically to prevent them from moving. It is
necessary to analyze the physical interaction between the objects for such constraints to achieve the tasks with a single
gripper. In this paper, we focus on assembling pipe joints as an example and discuss constraining the motion of the
objects. Our demonstration shows that a simple tool can facilitate holding multiple objects with a single gripper.
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matchingharmonylab
公開URL:https://arxiv.org/pdf/2404.19174
出典:Guilherme Potje, Felipe Cadar, Andre Araujo, Renato Martins, Erickson R. ascimento: XFeat: Accelerated Features for Lightweight Image Matching, Proceedings of the 2024 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) (2023)
概要:リソース効率に優れた特徴点マッチングのための軽量なアーキテクチャ「XFeat(Accelerated Features)」を提案します。手法は、局所的な特徴点の検出、抽出、マッチングのための畳み込みニューラルネットワークの基本的な設計を再検討します。特に、リソースが限られたデバイス向けに迅速かつ堅牢なアルゴリズムが必要とされるため、解像度を可能な限り高く保ちながら、ネットワークのチャネル数を制限します。さらに、スパース下でのマッチングを選択できる設計となっており、ナビゲーションやARなどのアプリケーションに適しています。XFeatは、高速かつ同等以上の精度を実現し、一般的なラップトップのCPU上でリアルタイムで動作します。
14. Visual Studio Code Extention
<概要>
Visual Studio Codeの拡張機能
Visual Studio Market Placeで公開できる
https://marketplace.visualstudio.com/vscode
実装はType Script(node.js)
しっかりしたものを作ろうとすると大変だけど、コンソールアプリを実行するだけなら
詳細は以下を参照
https://code.visualstudio.com/api
15. Visual Studio Code Extention
<作り方>
例:.Net Core global tool として公開したコンソールアプリを呼び出すだけのVS Code 拡張
yeoman テンプレートでひな型を生成
npm install -g yo generator-code
yo code
# ? What type of extension do you want to create? New Extension (TypeScript)
# ? What's the name of your extension? HelloWorld
### Press <Enter> to choose default for all options below ###
# ? What's the identifier of your extension? helloworld
# ? What's the description of your extension? LEAVE BLANK
# ? Initialize a git repository? Yes
# ? Which package manager to use? npm
16. Visual Studio Code Extention
<作り方>
例:.Net Core global tool として公開したコンソールアプリを呼び出すだけのVS Code 拡張
package.json に設定項目(コマンドの引数として設定するオプションなど)を記述
"contributes": {
"configuration": {
"type": "object",
"title": "C# to PlantUML configuration",
"properties": {
"csharp2plantuml.inputPath": {
"type": "string",
"scope": "resource",
"default": "",
"description": "Specify a input folder (relative to workspace folder)."
},
}
}
}
17. Visual Studio Code Extention
<作り方>
例:.Net Core global tool として公開したコンソールアプリを呼び出すだけのVS Code 拡張
extension.ts で node.js の child_process.exec() を使ってアプリを実行する
import * as vscode from 'vscode';
import { exec } from 'child_process';
import { join as pathJoin } from 'path’;
export function activate(context: vscode.ExtensionContext) {
let disposable = vscode.commands.registerCommand('sample.commandName', () => {
const toolPath = pathJoin(context.extensionPath, 'lib', 'sample', 'tool.dll');
exec(toolpath, (error, stdout, stderror) => {
outputchannel.appendLine(stdout);
outputchannel.appendLine(stderror);
if (error) {
console.log(error);
}
});
18. Visual Studio Project Template
<概要>
Visual Studio の「プロジェクト」の「新規作成」ウィザードで選択できるプロジェクトのひな
型
Visual Studio Market Place で公開できる
https://marketplace.visualstudio.com/vs
クラスライブラリを公開したら
ライブラリを利用した“実行可能な”最小限のサンプルプログラムを用意し、それをプロジェクト
テンプレートとして提供することでより使ってもらいやすくなる
参照:プロジェクトテンプレートを作成する
https://docs.microsoft.com/ja-jp/visualstudio/ide/how-to-create-
project-templates?view=vs-2019
19. Visual Studio Project Template
<作り方>
Visual Studio SDKのインストールが必要
⇒Visula Studio インストーラで「拡張機能の開発」ワークロードを選択
拡張機能作成用のプロジェクトを作成
• ProjectTemplate:テンプレートに含めるファイルなどを定義するプロジェクト
• VSIX プロジェクト:VSIX形式で公開するためのプロジェクト
ProjectTemplateは、まず実行可能なサンプルプロジェクトを作成し、「プロジェクト」メ
ニュー「テンプレートのエクスポート」を使用して出力したテンプレートをベースに作成すると良
い。
VSIXプロジェクトのvsixmanifestにテンプレートの概要やターゲットバージョンを記載。
「Assets」にProjectTemplateを指定する
20. Desktop Brige(Windows Store)
<概要>
Desktopアプリ(Win Forms,WPF)をWindows Store で公開できるようにする仕
組み
使い慣れたForms やWPFでさくっと作ってさくっと公開
⇒ Windows Store パッケージプロジェクトでVSから簡単に作成できるようになった。
Storeに公開すると、インストール数や利用状況の分析結果が利用できる
• インストールした人の年齢や地域など
• アプリを起動した回数、アクティブユーザー数
• アプリがクラッシュした回数
• エラー発生時のスタックトレースなども見ることができる
21. Desktop Brige(Windows Store)
<作り方>
Microsoft Partner Centerで開発者登録する
https://partner.microsoft.com/ja-jp/dashboard/
Windows Store パッケージプロジェクトを作成
パッケージプロジェクトで公開したいデスクトップアプリのプロジェクトを参照する
「プロジェクト」メニューの「アプリケーションマニフェストの編集」にアプリのアイコンや使用する機能の宣言等を
入力
「プロジェクト」メニューの「公開」ー「アプリパッケージの作成」のウィザードに従ってパッケージを作成
パッケージ作成後、テストツールによる検証が走る。合格したらパッケージをアップロードして申請手続きを
進める
参照:デスクトップアプリのパッケージ化
https://docs.microsoft.com/ja-jp/windows/msix/desktop/desktop-to-uwp-root