並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 285件

新着順 人気順

"Static analysis"の検索結果1 - 40 件 / 285件

  • シェルスクリプトを書くときにいつもやるやつを調べた

    bash のシェルスクリプトを書くときに、いつも脳死で以下をやっている。(同僚が整備してくれたものをコピペしている) エディタなり CI で shellcheck をまわす set -euxo pipefail と冒頭に書く こんな感じ #!/bin/bash set -euxo pipefail いつまでもコピペではさすがにアレなので、意味を調べたメモ。 shellcheck koalaman/shellcheck: ShellCheck, a static analysis tool for shell scripts イケてない書き方に警告を出してくれる それぞれの警告にはエラーコード割り振られていてとても便利 エラーコードごとに正誤例、解説が書かれているのでわかりやすい SC1000 の例 CI もそうだし、エディタのプラグインも充実 しているのでとりあえず入れておくと良い set

      シェルスクリプトを書くときにいつもやるやつを調べた
    • セキュアにGoを書くための「ガードレール」を置こう - 安全なGoプロダクト開発に向けた持続可能なアプローチ - Flatt Security Blog

      The Go gopher was designed by Renee French. (http://reneefrench.blogspot.com/) The design is licensed under the Creative Commons 3.0 Attributions license. 種々の linter が様々なプロダクトの品質を高めてきた、というのは疑う余地のない事実です。実装の初歩的な問題をエディタ内や CI/CD パイプライン中で機械的に検出できる環境を作れば、開発者はコーディングやコードレビューの邪魔になる些末な問題を早期に頭から追い出し、本質的な問題に集中できます。 また、そのような環境づくり(e.g. linter のルールセットの定義、組織独自のルールの作成、…)は、まさに開発組織のベースラインを定義する作業として捉えることができます。一度誰かが定義

        セキュアにGoを書くための「ガードレール」を置こう - 安全なGoプロダクト開発に向けた持続可能なアプローチ - Flatt Security Blog
      • プロと読み解く Ruby 3.0 NEWS - クックパッド開発者ブログ

        技術部の笹田(ko1)と遠藤(mame)です。クックパッドで Ruby (MRI: Matz Ruby Implementation、いわゆる ruby コマンド) の開発をしています。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 本日 12/25 に、ついに Ruby 3.0.0 がリリースされました。一昨年、昨年に続き、今年も Ruby 3.0 の NEWS.md ファイルの解説をします。NEWS ファイルとは何か、は一昨年の記事を見てください(なお Ruby 3.0.0 から、NEWS.md にファイル名を変えました)。 プロと読み解く Ruby 2.6 NEWS ファイル - クックパッド開発者ブログ プロと読み解くRuby 2.7 NEWS - クックパッド開発者ブログ Ruby 3.0 は、Ruby にとってほぼ 8 年ぶりのメジャーバージョンア

          プロと読み解く Ruby 3.0 NEWS - クックパッド開発者ブログ
        • AWS×コンテナで基本的なDevSecOpsアーキテクチャをデザインしたお話 - How elegant the tech world is...!

          はじめに 先日、僕が担当する業務でECS/Fargate利用を前提にDevSecOpsアーキテクチャをデザインし、社内のAWS勉強会にて登壇する機会をいただきました。 本ブログでも内容をかいつまんでご紹介できればと思います。 AWSによらず、コンテナを利用されている方にとって、一つのプラクティス例としてご参考になれば幸いです。 ※コンテナ自体の説明や必要性に関する内容は省略していますm(_ _)m そもそもDevOpsとは? DevSecOpsの導入意義をお伝えするた前に、まず軽くDevOpsの意義をお伝えします。 ※とは言え、この記事をご訪問されている方にとっては「何をいまさら...」な内容かもしれませんし、ググればDevOps自体の情報はたくさん見つかりますので、重要なポイントのみ述べることにします。 DevOpsとは、一言で述べれば、開発チームと運用チームが協力してビジネス価値を高め

            AWS×コンテナで基本的なDevSecOpsアーキテクチャをデザインしたお話 - How elegant the tech world is...!
          • textlint - Linterの作り方

            [fit] textlint - Linterの作り方 自己紹介 Name : azu Twitter : @azu_re Website: Web scratch, JSer.info Book: JavaScript Primer アジェンダ Linterを作る人向けの話 Linterの考え方とアーキテクチャを一致させる 使うものを作ろう、作るために使おう textlint とは 自然言語(日本語や英語など)に対するLinter MarkdownやHTMLなどのマークアップ言語に対応している ビルトインのルールは0 利用できるルールは100以上ある 多くのルールはオフラインで動くので、外部に入力してる内容を送信しない CI/CDに組み込める自然言語のチェッカー(表記揺れ、スペルチェック、誤用、読みやすさのチェックなど) textlint users Translation: Angul

            • Grit

              Grit automatically fixes technical debt by combining static analysis and machine learning to generate pull requests that clean up code and migrate to the latest frameworks.

                Grit
              • Everything I know about the XZ backdoor

                Everything I Know About the XZ Backdoor stateevergreeninblogtagsopen-sourcedate3/29/2024This publication was last updated at 12:49 PM EST on April 8th Recently, a backdoor was discovered in XZ, a popular library for lossless data compression. Initial research efforts were predominantly concentrated on unpacking the well-disguised attack vector, while the social aspects of the attack received only

                • The new wave of Javascript web frameworks

                  The new wave of Javascript web frameworksMake sense of the proliferation of new Javascript web frameworks. A deep dive into the problems at scale and the recent evolution of innovation. IntroductionStaying current in the Javascript ecosystem is not for the faint of heart. It’s challenging for those entering the industry to follow what’s happening amongst the new libraries, frameworks, concepts, an

                    The new wave of Javascript web frameworks
                  • level=0 から始める PHPStan(Larastan) 導入ガイド - Shin x Blog

                    PHP にはアプリケーションを実行せずに静的にコード品質をチェックする静的解析ツールがいくつかあります。有名なところでは、PHPStan や Psalm、Phan、PHPMD などがあります。本エントリでは、まだこうした静的解析ツールを導入していないプロジェクト向けに PHPStan 導入の流れをまとめてみました。 3(4) 行まとめ サンプルコード PHPStan とは 適用方針 Playground PHPStan のインストール Composer Composer(Larastan) Docker 設定ファイルの作成 PHPStan の実行 主なエラー(level=0) baseline ファイルの作成 baseline ファイルの修正 CI での自動実行 GitHub Actions の設定 ブランチ保護ルール さいごに 3(4) 行まとめ composer もしくは Docker

                      level=0 から始める PHPStan(Larastan) 導入ガイド - Shin x Blog
                    • Go公式のlinter、Golintが非推奨になった

                      Goが公式で出していたGolintがdeprecated/frozenしました。 メンテがされていない 2018年から実質的な変更が加わってない Issueも放置されているものが多い golang orgに存在するlinterなのでGoが公式として推奨しているlinterに見える Go が実際には保守されていないプログラムを公式として推奨しているように見えてしまう 開発者は合理的に異なるスタイルを採用したい場合がある Golint単体で特定の警告を無視したりするなどの機能を持っていない ということからattractive nuisance(魅力的な迷惑者)になっているというProposalでした。 Issueの議論を見てもdeprecate/frozenすることに対して否定的な意見は少なく、一年ほど前にapproveされました。(なので「非推奨にしよう」なったの自体は少し前の話です) そし

                        Go公式のlinter、Golintが非推奨になった
                      • Terraformのセキュリティ静的解析 tfsec の導入から始めるAWSセキュリティプラクティス - BASEプロダクトチームブログ

                        こんにちは。BASE BANK 株式会社 Dev Division にて、 Software Developer をしている東口(@hgsgtk)です。 BASE BANK Dev での開発では、クラウドインフラの構成管理に、 Terraform を利用しています。 世の情報をたくさんキュレーションしている CTO の@dmnlkさんに、手軽に CI に組み込めそうなセキュリティチェックツールがあることを教えてもらったので、導入してみました。 CTO氏のキュレーションメディアで紹介された tfsec を早速試して良さそうだったhttps://t.co/bl67dlW2Ub https://t.co/vAkTOVagec— Kazuki Higashiguchi (@hgsgtk) August 21, 2020 このブログの公開日は 2020/10/30 ですので、導入してから約 2 ヶ月

                          Terraformのセキュリティ静的解析 tfsec の導入から始めるAWSセキュリティプラクティス - BASEプロダクトチームブログ
                        • What it was like working for GitLab

                          I joined GitLab in October 2015, and left in December 2021 after working there for a little more than six years. While I previously wrote about leaving GitLab to work on Inko, I never discussed what it was like working for GitLab between 2015 and 2021. There are two reasons for this: I was suffering from burnout, and didn't have the energy to revisit the last six years of my life (at that time)I w

                          • Pysa: An open source static analysis tool to detect and prevent security issues in Python code

                            Pysa: An open source static analysis tool to detect and prevent security issues in Python code Today, we are sharing details about Pysa, an open source static analysis tool we’ve built to detect and prevent security and privacy issues in Python code. Last year, we shared how we built Zoncolan, a static analysis tool that helps us analyze more than 100 million lines of Hack code and has helped engi

                              Pysa: An open source static analysis tool to detect and prevent security issues in Python code
                            • バグハント入門 (OSS編) - blog of morioka12

                              1. 始めに こんにちは、morioka12 です。 本稿では、バグハントの入門として、主に Web アプリケーションの OSS に焦点をおき、脆弱性の発見・報告・CVE ID の取得について紹介します。 1. 始めに 免責事項 想定読者 筆者のバックグラウンド 2. CVE とは 3. 探す対象の選び方 OSS Topic (Type) 特定の条件で絞る バグバウンティの OSS 4. 脆弱性の検証方法 アプローチ方法 5. 脆弱性の報告先 6. 報告書の書き方 CVSS CWE 7. 脆弱性発見から CVE ID の取得までの流れ 注意点 8. バグハント前のスキル準備 過去の CVE ID やレポート Web Security の場合 9. その他 その後のチャレンジ バグバウンティ入門 セキュリティエンジニアを目指す就活生の方へ OSS の開発者の方へ 10. 終わりに 免責事項

                                バグハント入門 (OSS編) - blog of morioka12
                              • CISSP 勉強ノート

                                目次の表示 1. 情報セキュリティ環境 1-1. 職業倫理の理解、遵守、推進 職業倫理 (ISC)2 倫理規約 組織の倫理規約 エンロン事件とSOX法の策定 SOC (System and Organization Controls) レポート 1-2. セキュリティ概念の理解と適用 機密性、完全性、可用性 真正性、否認防止、プライバシー、安全性 デューケアとデューデリジェンス 1-3. セキュリティガバナンス原則の評価と適用 セキュリティ機能のビジネス戦略、目標、使命、目的との連携 組織のガバナンスプロセス 組織の役割と責任 1-4. 法的環境 法的環境 契約上の要件、法的要素、業界標準および規制要件 プライバシー保護 プライバシーシールド 忘れられる権利 データポータビリティ データのローカリゼーション 国と地域の例 米国の法律 [追加] サイバー犯罪とデータ侵害 知的財産保護 輸入と

                                  CISSP 勉強ノート
                                • What I learned from Software Engineering at Google | Swizec Teller

                                  Senior Mindset BookGet promoted, earn a bigger salary, work for top companies Start with a free chapterGet a free chapter from the Senior Engineer Mindset book and a sample audiobook chapter, followed by a Senior Mindset 101 email course. What I learned from Software Engineering at GoogleWhen I first picked up Software Engineering at Google I thought it was another one of those FAANG books full of

                                    What I learned from Software Engineering at Google | Swizec Teller
                                  • Modern Node.js Patterns for 2025

                                    Node.js has undergone a remarkable transformation since its early days. If you’ve been writing Node.js for several years, you’ve likely witnessed this evolution firsthand—from the callback-heavy, CommonJS-dominated landscape to today’s clean, standards-based development experience. The changes aren’t just cosmetic; they represent a fundamental shift in how we approach server-side JavaScript develo

                                    • PHP Conference Japan 2020 スライドまとめ - Qiita

                                      PHP Conference Japan 2020 Re:born 公式サイト: https://phpcon.php.gr.jp/2020 公式YouTubeチャンネル: https://www.youtube.com/user/PHPConferenceJP 公式ツイッター: https://twitter.com/phpcon 公式Discord: https://twitter.com/phpcon/status/1337547720806989824?s=20 ハッシュタグ: #phpcon #phpcon2020 日時: 2020.12.12 SAT YouTube Live PHP Conference Japan 2020 - Track 1 PHP Conference Japan 2020 - Track 2 PHP Conference Japan 2020 - Tr

                                        PHP Conference Japan 2020 スライドまとめ - Qiita
                                      • Speculation in JavaScriptCore

                                        This post is all about speculative compilation, or just speculation for short, in the context of the JavaScriptCore virtual machine. Speculative compilation is ideal for making dynamic languages, or any language with enough dynamic features, run faster. In this post, we will look at speculation for JavaScript. Historically, this technique or closely related variants has been applied successfully t

                                        • Introducing Ezno

                                          Ezno is an experimental compiler I have been working on and off for a while. In short, it is a JavaScript compiler featuring checking, correctness and performance for building full-stack (rendering on the client and server) websites. This post is just an overview of some of the features I have been working on which I think are quite cool as well an overview on the project philosophy ;) It is still

                                            Introducing Ezno
                                          • The End of Programming – Communications of the ACM

                                            The end of classical computer science is coming, and most of us are dinosaurs waiting for the meteor to hit. I came of age in the 1980s, programming personal computers such as the Commodore VIC-20 and Apple ][e at home. Going on to study computer science (CS) in college and ultimately getting a Ph.D. at Berkeley, the bulk of my professional training was rooted in what I will call “classical” CS: p

                                            • Wake up, Remix!

                                              At React Conf last summer we announced that Remix was going to "take a nap". Remix v2 had become such a thin wrapper around React Router that an artificial separation developed between the two projects. We simplified the projects by moving the bundler and server runtime code from Remix directly into React Router v7, merging everything that made Remix great into React Router v7 “framework mode”. We

                                                Wake up, Remix!
                                              • CommonJS is hurting JavaScript

                                                JavaScript, the undisputed king of web development, is being sabotaged — not by a rival language or a revolutionary new technology, but by its own baggage from the past. This insidious saboteur is none other than CommonJS, the antique module system that we’ve tolerated for far too long. The rise of CommonJS About 15 years after its invention, JavaScript started expanding beyond the browser to the

                                                  CommonJS is hurting JavaScript
                                                • Elm at Rakuten | Rakuten Engineering Blog

                                                  In our team at Rakuten, we have been using Elm1 in production for almost two years now. This post is about our story, the lessons we learned, and our likes and dislikes. This post is quite long so if you prefer to see an overview, feel free to jump to the index. Everything started in the Berlin branch of Rakuten during the summer of 2017. We were maintaining a medium-size single-page application w

                                                    Elm at Rakuten | Rakuten Engineering Blog
                                                  • M1RACLES: An Apple M1 Vulnerability

                                                    M1RACLES (CVE-2021-30747) is a covert channel vulnerability in the Apple Silicon “M1” chip. Executive Summary A flaw in the design of the Apple Silicon “M1” chip allows any two applications running under an OS to covertly exchange data between them, without using memory, sockets, files, or any other normal operating system features. This works between processes running as different users and under

                                                      M1RACLES: An Apple M1 Vulnerability
                                                    • 脆弱性を発見するコードスキャン機能がGitHubに統合、セキュリティの問題が次々見つかる

                                                      開発者が作業に集中できるように、コードスキャン機能はデフォルトで、具体的な行動につながるセキュリティルールのみを実行する。 コードスキャン機能は「GitHub Actions」や既存のCI/CD(継続的インテグレーション/継続的デリバリー)環境と連携して、チームの柔軟性が高まるようにする。作成されたコードをスキャンし、プルリクエストなど開発者が日々利用するGitHubエクスペリエンスの中で、行動につながるセキュリティレビューを表示する。ワークフローの一環としてセキュリティ対策を自動的に組み込むため、本番コードに脆弱性が残ってしまう事態を回避できる。 コードスキャン機能はCodeQLに支えられている。CodeQLはコードがデータであるかのように扱い、コードに対してクエリを実行できる。GitHubとコミュニティーが作成した2000以上のCodeQLクエリを使ったり、カスタムクエリを作成して新し

                                                        脆弱性を発見するコードスキャン機能がGitHubに統合、セキュリティの問題が次々見つかる
                                                      • Webpack 5 release (2020-10-10) | webpack

                                                        Webpack 4 was released in February 2018. Since then we shipped a lot of features without breaking changes. We know that people dislike major changes with breaking changes. Especially with webpack, which people usually only touch twice a year, and the remaining time it "just works". But shipping features without breaking changes also has a cost: We can't do major API or architectural improvements.

                                                          Webpack 5 release (2020-10-10) | webpack
                                                        • GitHub Actions を静的検査するツールの紹介 (actionlint/ghalint/zizmor)

                                                          先日、 tj-actions/changed-files や reviewdog/action-* などのアクションの Git タグが書き換えられるという出来事がありました。 これにより、これらのアクションを Git タグで参照している GitHub Actions Workflow 内で悪意のあるコードが実行されてしまうという事態が発生しました。 このような事態を防ぐためには、アクションの参照には Git タグではなくコミットハッシュを使用するなどの対策が必要です。 # ❌ Git タグは書き換えられる可能性がある - uses: actions/checkout@v4 - uses: actions/checkout@v4.2.2 # ⭕ コミットハッシュを指定しておけば Git タグが書き換えられても影響を受けない - uses: actions/checkout@11bd71901

                                                            GitHub Actions を静的検査するツールの紹介 (actionlint/ghalint/zizmor)
                                                          • How to make an awesome Python package

                                                            If you are like me, every once in a while you write a useful python utility and want to share it with your colleagues. The best way to do this is to make a package: it easy to install and saves from copy-pasting. If you are like me, you might be thinking that creating packages is a real headache. Well, that's not the case anymore. And I am going to prove it with this step-by-step guide. Just three

                                                              How to make an awesome Python package
                                                            • Get Ready For ESM

                                                              JavaScript Modules will soon be a reality for Node.js package maintainers. Edit: It’s now a reality! This blog post is targeted Node.js package maintainers. At the end of April 2021, Node.js 10 will be end-of-life, which means that package maintainers can target Node.js 12. This Node.js version has full support for JavaScript Modules, also known as ESM. From the left: Addy Osmani, Dave Herman, and

                                                                Get Ready For ESM
                                                              • GitHub Actions Supply Chain Attack: A Targeted Attack on Coinbase Expanded to the Widespread tj-actions/changed-files Incident: Threat Assessment (Updated 4/2)

                                                                GitHub Actions Supply Chain Attack: A Targeted Attack on Coinbase Expanded to the Widespread tj-actions/changed-files Incident: Threat Assessment (Updated 4/2) Executive Summary Update April 2: Recent investigations have revealed preliminary steps in the tj-actions and reviewdog compromise that were not known until now. We have pieced together the stages that led to the original compromise, provid

                                                                  GitHub Actions Supply Chain Attack: A Targeted Attack on Coinbase Expanded to the Widespread tj-actions/changed-files Incident: Threat Assessment (Updated 4/2)
                                                                • JSConf JP 2023 公開資料・Xアカウントリンクまとめ

                                                                  2023/11/19(日)で開催された JSConf JP 2023に関する、現時点での公開資料と X アカウントリンクをまとめました。 よろしければご活用ください。 はじめに 登壇者名は敬称略させていただいています。 x アカウントについては、以下のように確認できたものを記載しております。 JSConf JP 公式サイトに記載がある JSConf JP 公式サイトに記載のプロフィールと一致している 当イベントで登壇されることに言及されている スライドに記載されている リンクの間違い等ありましたらコメントいただけると助かります🙏 アーカイブ 本イベントは YouTube で配信されていましたが、執筆時点ではトラック A の動画が非公開になっていました。 アーカイブとして残るのかがわからなかったため、一旦 JSConf JP の YouTube アカウントへのリンクのみ記載にしておきます。

                                                                    JSConf JP 2023 公開資料・Xアカウントリンクまとめ
                                                                  • OPA/Regoによる汎用的なGo言語の静的解析

                                                                    TL; DR Go言語は様々な静的解析ツールがあるが、独自ルールのチェックなどをするには都度ツールを自作する必要がある 1つのツールでより汎用的なチェックができるように、汎用ポリシー言語のRegoでGo言語のAST(抽象構文木)を検査できるようにした 「第一引数に必ずcontext.Contextをとる」というルールをCIでチェックした様子 背景 Go言語では様々な静的解析ツールが提供されており、一般的なベストプラクティスが正しく記述されているか?については既存の静的解析ツールを利用することで概ね必要なチェックをすることができます。例えばセキュアなGoのコーディングをするためのツールとして gosec などがあり、自分も愛用させてもらっています。しかし、ソフトウェア開発におけるコーディング上のルールはベストプラクティスによるものだけでなく、そのソフトウェアやチームに依存したルールというのも

                                                                      OPA/Regoによる汎用的なGo言語の静的解析
                                                                    • Rewriting the Ruby parser

                                                                      At Shopify, we have spent the last year writing a new Ruby parser, which we’ve called YARP (Yet Another Ruby Parser). As of the date of this post, YARP can parse a semantically equivalent syntax tree to Ruby 3.3 on every Ruby file in Shopify’s main codebase, GitHub’s main codebase, CRuby, and the 100 most popular gems downloaded from rubygems.org. We recently got approval to merge this work into C

                                                                        Rewriting the Ruby parser
                                                                      • Elm at Rakuten

                                                                        lucamug Posted on Jan 25, 2021 • Edited on Mar 4, 2023 • Originally published at engineering.rakuten.today In our team at Rakuten, we have been using Elm1 in production for almost two years now. This post is about our story, the lessons we learned, and our likes and dislikes. This post is quite long so if you prefer to see an overview, feel free to jump to the index. Everything started in the Berl

                                                                          Elm at Rakuten
                                                                        • PHP is Legacy, in 2024

                                                                          We travel in our jobs a lot at Vonage. I speak to plenty of developers from all walks of life, and I can confidently say one of the most asked questions I get is: Why do you still do PHP? Variations of this question can be "Isn't PHP supposed to be bad?" On several occasions, the person I was speaking to had done some PHP back in 2012. Or 2010. I forget. For reasons I do not understand, we're goin

                                                                            PHP is Legacy, in 2024
                                                                          • Ruby 3.0.0 Released

                                                                            Posted by naruse on 25 Dec 2020 We are pleased to announce the release of Ruby 3.0.0. From 2015 we developed hard toward Ruby 3, whose goal is performance, concurrency, and Typing. Especially about performance, Matz stated “Ruby3 will be 3 times faster than Ruby2” a.k.a. Ruby 3x3. With Optcarrot benchmark, which measures single thread performance based on NES’s game emulation workload, it achieved

                                                                            • Move on to ESM-only

                                                                              [[toc]] Three years ago, I wrote a post about shipping ESM & CJS in a single package, advocating for dual CJS/ESM formats to ease user migration and trying to make the best of both worlds. Back then, I didn't fully agree with aggressively shipping ESM-only, as I considered the ecosystem wasn't ready, especially since the push was mostly from low-level libraries. Over time, as tools and the ecosyst

                                                                                Move on to ESM-only
                                                                              • フロントエンドテストはじめの一歩 [FLEXY meetupイベントレポート] - FLEXY(フレキシー)

                                                                                2023年6月27日に開催されたFLEXY meetupのテーマは「フロントエンドのテスト」です。 技術の進化とともにバックエンドとフロントエンドが疎結合になる今、フロントエンド領域ではテストの重要性が高まっています。 一方、現場レベルではテストコードを書いたことがなく、何から始めるべきなのか悩みを抱えているエンジニアは多いのではないでしょうか。 そこで今回は、実際にフロントエンドのテスト導入を行っている古川さん、nus3さんの2名がディスカッション。「フロントエンドテストはじめの一歩」として今、何ができるのかを実例も交えながら教えていただきました。 イベント概要 技術の進化に伴い、アーキテクチャレベルでバックエンドとフロントエンドが疎結合になった今、フロントエンド領域におけるテストの重要性について注目が集まっています。 一方でまだ手法が広まっておらず実際にテストコードを書いたことがないた

                                                                                  フロントエンドテストはじめの一歩 [FLEXY meetupイベントレポート] - FLEXY(フレキシー)
                                                                                • How to start a Go project in 2023 | Ben E. C. Boyter

                                                                                  I previously wrote about starting a Go project in 2018. A lot has changed since I wrote that and I had been wanting to write an updated version. What follows should be enough for anyone new to Go to get started and ideally start them being productive. Quicklinks Install / Setup Starting a Project Learning Go Searching Building / Installing Linting / Static Analysis / Security Scanning Profiling Un