はじめに 画像は記事に全く関係ないカニのフィギュアです👋 近年、善良なパッケージを騙ったマルウェアが配布されているケースが増えてきています。 これらのマルウェアはパッケージマネージャ上で配布され、開発者端末やそれをビルトインしたシステムを利用するユーザー端末で悪事を働きます。 これは俗にいうサプライチェーン型攻撃で、 これらの関連ニュースを目にする機会が増えてきていることを、多くの開発者が体感されていると思います。 ただ、これらのサプライチェーン型攻撃の記事は、 どうしてもエンドユーザー(パッケージを利用する開発者側・それらを組み込んだアプリを実行するユーザー側)の対策に焦点が当てられたものが殆どのように感じています。 そこで本記事では、このエンドユーザー側の対策だけではなく、 パッケージマネージャメンテナーたちがどう対策しているのかも含めて、 「パッケージマネージャ上で行われるマルウェ
この記事について この記事では、R言語で書かれたコードを、パッケージとして開発・管理するメリットとその方法について紹介しています。以下はあくまで概要であるため、詳細についてはぜひ今年2月にオライリージャパンから邦訳刊行された『Rパッケージ開発入門』 や、その原著の**R packages**(ウェブ版)、そして記事末尾のリファレンスをご参照下さい。 想定する読者層 業務・研究、あるいはプライベートでR言語を使いプログラムを書いている、またはこれから書く予定がある 他の人からもらったRのコード(または、他の人に渡したRのコード)がなぜかうまく動かなかった経験がある 以前書いたソースコードやファイルが散らばっており途方に暮れたことがある Rのパッケージ開発なにそれこわいと感じている 提案 次のような場合、分析タスクの運用や共有を楽にするため、Rのコードをパッケージ化しましょう。 その場限りの分
Rを使うときパッケージ(以下、package)を利用すると思います。 packageとは、Rの機能を拡張する関数、データ、資料の集まりです。 例えば、きれいな図を描きたいときは、ベースのR機能であるplotでは物足りないため、ggplot2 packageを使います。 一般化推定方程式を使いたいときは、ベースのR機能だけでは、数式を読み解き、関数を自作する必要がありますが、gee packageを使えば関数の自作は不要です。 このようにRを使う上でpackageは重要ですし、いろいろなpackageを知っていると楽ができます。ただし、packageの有無を自分の解析能力の限界にする必要はありません。自ら関数が組めると解析の幅が広がります。 packageは山ほどあります。しかし解析によく使うpackageはある程度限られます。この記事では、ぼくが使っている(使いたい)R packageを紹
最近、 Go の学習を始めました。入門書や 公式のチュートリアル を終えてもなかなか解らないことをまとめてみました。 1. パッケージ作成・パッケージ管理 1. a. ディレクトリ構成は非公式ながら標準と目されるものがある(らしい) Standard Go Project Layout /cmd にmainのアプリケーションのソースを置きます。 /pkg にライブラリのソースを置きます。 /src にソースを置いてはいけません。 なお、このディレクトリ構成は go コマンド(go build 等)がデフォルトで認識するディレクトリ (/src , /pkg , /bin) とは全く異なるので注意が必要です。 2021-05-24 追記 このレイアウトは殆ど普及していないとのこと。また、リポジトリ名が「標準」を名乗るのは誤解を招くとのissueも挙がっています。 個人的な意見として、ライブラ
めっちゃ大変やで。 ワークフロー PyPIパッケージの作成 PyPIパッケージの更新 大きく言えば上記2手順のみ。これらの手順を詳細に見ていくと膨大。 1. PyPIパッケージの作成 Pythonパッケージの作成 GitHubリポジトリの作成 メタデータファイルの作成 コミット PyPIパッケージの作成 1-1. Pythonパッケージの作成 要件定義 API定義 実装 単体テスト 1-1-1. 要件定義 曖昧。最低限、以下を一言で説明した文書くらいは欲しい。 概要: そのソースコードは何をするものか 文脈: どこで使うものか inputは何か outputは何か 項目 値 概要 指定した文字列を<>で囲った文字列を返す 文脈 Python,Console IN 文字列 OUT 文字列(INを<>で囲う) ファイル・コード例 実装例。(Python文脈) encloser.py def e
砲撃する自走砲(PzH2000自走榴弾砲)。自走砲は戦車によく似ていますが、戦車ではありません。*本編とは関係ありません。 こんにちは、エムスリー基盤開発チーム小本です。 Pythonのパッケージ管理周りでは、 「setup.pyでrequirements.txtを読み込むのが普通なんですよね?」 「pipenv があれば venv はオワコンなんですね?」 「pyenvは要らないんですよね!?」 「Pythonは歴史が古い分、Rubyなどに比べてカオス」 みたいな混乱をよく目にします。 実際、複数のツールがあって(一見)複雑です。また「なぜこうした状況にあるのか」がドキュメント化されているわけでもありません。 なので、私なりに整理してみることにしました。 ※「追伸」を追加しました。この記事では汎用プログラミング言語としてPythonを使うケース(Webアプリとか、CLIツールとか、ライブ
この記事は BeProud Advent Calender 2018 の20日目の記事です。そのためいつもよりボリュームたっぷり、文体も丁寧にお送りします。 adventar.org 本記事ではPoetryを使ってパッケージ開発→PyPIへ登録するまでの流れを紹介します。 github.com プロジェクト作成からPyPI登録までわずか30秒 Poetry について 基本的な使い方 Poetry と Pipenv Pipenvは確かに便利だけど Pipenv から Poetry に乗り換える Poetry と Pyenv PEP517 と PEP518 Poetryの各種設定 venvの作成先をプロジェクト内にしたい TestPyPIへアップロードできるようにする TestPyPIのユーザー名とパスワードを設定する ここまでの設定 プロジェクトを用意する 新規作成 標準的なレイアウト sr
Rのおすすめパッケージをアップデートしてまとめた。定番の分析手法をはじめ、可視化やデータ処理に便利なものなど、幅広く紹介した。中にはマストというものもあるし、意外と知られていないがインストールしておくと便利なものまで、使い方の例も挙げて説明している。 ミドルウェア的なレイヤーのライブラリ(must) curl ファイルをwebからダウンロードするときに使う。 データファイルやパッケージのダウンロードが発生する処理で内部的に使われるライブラリで、他のパッケージのインストールの際に同時にインストールされることが多く、意識されることは少ないパッケージ。たまに依存関係の問題でも解決されずに未インストールの場合があるので、明示的にインストールする必要がある。 read.csv('https://...') などのために必要。 devtools GitHubからのインストールなど。ほとんどがGitHu
ども、久々のブログ更新は最近導入したstraight.elというEmacsのパッケージマネージャについて書きます。 7年ほどEmacsを使い続けてきましたが、まだまだ初心者の域を抜け出せずにいる id:nukosuke です。 前置き straight.el メリット use-packageマクロをstraight.elにフォールバックできる lockファイルを生成できる 設定例 さいごに 前置き 全世界76億人のEmacs使いの皆さんはどうやってelパッケージを管理していますでしょうか。 僕はこれまでpackage.elやCask、el-getなどのパッケージマネージャを使ってきましたが、どれも好きになれませんでした。 というのも、僕がパッケージマネージャに唯一求めるのはマシンを買い変えた時の環境再現性(reproducibility)であって、今まで触れてきたものはこれを担保するために
SpresenseでOpenOCDを接続したいのにGDB server接続できない。 【理由】メインボードと拡張ボードが浮いていた!? (上から押しつけたらカチっと嫌な音。その後、無事にlocalhost:3333が立ち上がった) 【確認方法】 拡張基板側をUSB接続してみて、青ランプが点灯していれば問題ない。 筆者は結構押し込んで安定させないと、都度消えていることが多かった。 【確認したこと】 ■LPC-Link2のファームウェア tool ■SWDコネクタの接続 はんだ付けに自信がなかったので、導通チェックを何度も確認 ■ Ubuntu環境なので 60-openocd.rulesのコピー 【調査】 spresense - Eclipse IDE(LPC-Link2) デバッグの実行でエラーになる - スタック・オーバーフロー とか、Facebookのグループにも同様に悩んでる人が多かっ
el-getでプラグインを管理する¶ ここでは、ついに、Emacs標準機能ではない、プラグインについて触れていきます。 最初にインストールするのは、パッケージ管理ソフトであるel-getです。 プラグインとは¶ Emacsはカスタマイズ性に優れたエディタです。 Emacs自体にも様々な機能が付属しています。 しかし、より複雑な機能や、特定の用途にのみ特化した機能は標準では付属していないこともあります。 そこで現れるのがプラグイン、あるいはパッケージと呼ばれるものです。 例えば、Emacsから直接gitのコマンドをいじれるプラグインなどがあります。 なぜパッケージ管理ソフトが必要なのか¶ パッケージを追加しようと思った場合、通常は以下の手順が必要になります。 パッケージを配布しているサイトに行き、パッケージをダウンロードする init.elに設定を書き、パッケージをEmacsに読み込ませる
Author: Tamas Patrovic (original author), from 2007. At this time, Helm was named Anything. rubikitch rubikitch@ruby-lang.org, from 2008-2011. Helm was still named Anything Thierry Volpiatto (current maintainer). thierry.volpiatto@gmail.com, from 2011-present. Anything was renamed to Helm during this period. Homepage: GitHub Features: Helm is an incremental completion and selection narrowing frame
プログラミング (iOS, JavaScript, Jenkins, Sikuli) とMacやiPhoneなどの話題が中心のブログ 久しぶりに、Emacsの設定などを見直しました。 Emacs Mac Portにした package.elで起動時にインストールするようにした el-getを使うようにした init-loaderを使うようにした Emacs Mac Port 山本光晴氏によるいろいろなパッチを当てられたEmacsで、バイナリもあります。 railwaycat/emacs-mac-port · GitHub 入れたらいろいろ幸せになれるらしいので入れてみました。 導入後、すぐにMetaとOptionを入れかえました。 いろいろな変更があるっぽいですが、個人的に一番嬉しいのはスワイプスクロールが滑らかになる点。 init-loader Qiitaエントリを参考にして、init-
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く