タグ

ブックマーク / atmarkit.itmedia.co.jp (23)

  • [Python入門]関数のローカル変数とスコープ

    名前解決 プログラム実行時に何かの名前(変数名や関数名など)を発見すると、Pythonはそれを解決するために、3つ(またはそれ以上)のスコープを「ローカルスコープ→グローバルスコープ→ビルトインスコープ」の順にたどっていく。つまり、関数の実行時に名前が見つかると、まずは関数のローカルスコープからその名前を検索する。ローカルスコープにその名前があれば、それ(ローカル変数やパラメーターなど)の値を利用する。見つからなければ、グローバルスコープ→ビルトインスコープという順番で、その名前を検索していき、見つかったところでその値を利用する。最終的に名前が見つからなければ、先ほどの画像にあった「NameError」を発生させる。 以下では、名前を解決する順序についてコード例と共に見ていこう。 ローカルスコープのみ ここでmyfunc関数についてもう一度見てみよう。 def myfunc(): a =

    [Python入門]関数のローカル変数とスコープ
    teddy-g
    teddy-g 2024/05/20
    Pythonの変数スコープについて。備忘。
  • 1周回って再び活況を呈し始めたエンドポイントセキュリティ

    最適なセキュリティ対策を講じるには、IT環境や攻撃手法の変化を理解し、最新のセキュリティ対策技術を知ることが欠かせない。特集では、企業のシステム管理者、セキュリティ担当者の方々に向けて、ちまたにあふれる「セキュリティソリューション」の最新動向を紹介する。 2016年、サイバー攻撃が変わらず猛威を振るった。個人のみならず法人もターゲットとし、多くの企業が被害を受けた「ランサムウェア」や「不正送金マルウェア」による金銭的な被害はもちろん、標的型攻撃による情報漏えい事件も、件数こそ減ったものの後を絶たない。 こうした攻撃には、無差別にさまざまな企業・ユーザーにメールなどを送り付ける「ばらまき型」と呼ばれる手法もあれば、特定の組織や企業を狙う「標的型」もある。また、既に解析され、シグネチャ(定義ファイル)が作られている既知のマルウェア(ウイルス)が用いられることもあれば、既存のマルウェアに少し手

    1周回って再び活況を呈し始めたエンドポイントセキュリティ
    teddy-g
    teddy-g 2020/03/06
    エンドポイントと資産管理は近い位置にある。備忘まで。
  • SSL/TLS(Part.1)

    まず、目立つのは下半分に横たわるReocord Protocolである。Record Protocolより上位にある各プロトコルは、Record Protocolを介して対向する通信相手とデータをやり取りする。Record Protocolは前述のように圧縮/暗号化を行っているので、これら上位プロトコルでの通信内容は原則として暗号化されることになる。 その際、Record Protocolでは、図中の「利用中の暗号化パラメータ」と書かれている情報に基づいて暗号化の処理を行っている。この「利用中の暗号化パラメータ」には、具体的に言えば、使用する圧縮アルゴリズムや暗号アルゴリズム、また暗号化/復号で使うキーなどが含まれる。いわば「圧縮/暗号化のルール」とでも考えれば分かりやすいだろう。 では、この「利用中の暗号化パラメータ」は、どうやって取り決めるのだろうか。「圧縮/暗号化のルール」である以上

    SSL/TLS(Part.1)
    teddy-g
    teddy-g 2018/03/29
    SSL/TSLのプロトコルの中身がよくわかる。
  • 深刻な「ブラインドSQLインジェクション」の脅威

    深刻な「ブラインドSQLインジェクション」の脅威:OWASP AppSec USA 2013 レポート(前編)(2/2 ページ) 漏れていないようで漏れている!? ブラインドSQLインジェクションの脅威 ここからは、筆者らが受講したトレーニングの内容を紹介します。 1つ目は、「The Art Of Exploiting Injection Flaws」です。SQLインジェクションに代表されるインジェクション攻撃について、講師が用意したサーバーへの疑似攻撃を通じ、その攻撃手法を理解するのが目的です。 講師は、「SQL Injection, attacks and defense」の共著者で、ノットソーセキュア(NotSoSecure)創立者のスーミット・シッダールタ(Sumit Siddharth)氏です。 トレーニングでは、基的なSQLインジェクションの手法から、ブラインドSQLインジェ

    深刻な「ブラインドSQLインジェクション」の脅威
    teddy-g
    teddy-g 2018/02/18
    もうちょっと丁寧にBlind SQLiの説明
  • 分散サービス拒否(DDoS)攻撃を仕掛けるDNS ampとは?

    DNS amp攻撃では、インターネットからアクセス可能なDNSキャッシュ・サーバを踏み台にしてDDoS攻撃を仕掛ける。踏み台として利用されないためには、インターネットからキャッシュ・サーバが利用できないようにする。それにはアクセス制御を行うか、コンテンツ・サーバと分離して運用する。 解説 ●DNSサービスを使った分散サービス拒否攻撃、「DNS amp」の発生が懸念 インターネット上での名前解決サービスを提供するDNSは、インターネットにおける非常に基的なサービスであるが、これを利用した大規模な分散サービス拒否攻撃(DDoS攻撃)の発生が懸念されている。細工したDNS要求をBOT(攻撃を行うコンピュータ)に送ると、対策の施されていないDNSサーバを“踏み台(攻撃の足がかり)”にして、攻撃対象に大量のDNSパケットが送信される。これにより、処理能力やネットワーク回線が混雑、飽和し、正常な利用

    分散サービス拒否(DDoS)攻撃を仕掛けるDNS ampとは?
    teddy-g
    teddy-g 2017/04/15
    DNS amp或いはDNSリフレクター攻撃。問合せ元IPを攻撃先IPに偽装してリクエストするとレスポンスで攻撃できる。オープンリゾルバのチェック方法も説明あり。
  • 鍵が漏れることも想定せよ――クラウド時代における「楕円曲線暗号」の必然性

    鍵が漏れることも想定せよ――クラウド時代における「楕円曲線暗号」の必然性:クラウド時代の暗号化技術論(3)(1/3 ページ) エンジニアであれば、楕円曲線を暗号に用いる「楕円曲線暗号」という言葉を聞いたことがあるでしょう。今回は楕円曲線暗号の仕組み、そしていまこの手法が注目されている理由を解説します。 連載目次 前方秘匿性――楕円曲線暗号が注目された理由 第1回、第2回では安全な公開鍵暗号を解説しました。今回は「楕円(だえん)曲線暗号」を取り上げたいと思います。 楕円曲線暗号が発明されたのは1985年と比較的古く、ICカードなど組み込み系を中心に使われていました。近年、大手のWebサイトや、暗号通貨の「ビットコイン」などで採用され、普及が進んでいます。そのきっかけの一つとなった、ある事件を紹介しましょう。 2013年に、アメリカの国家安全保障局(NSA)がインターネット上のさまざまな通信を

    鍵が漏れることも想定せよ――クラウド時代における「楕円曲線暗号」の必然性
    teddy-g
    teddy-g 2016/11/07
    楕円曲線暗号の簡潔な説明。トーラスの上を移動する、 ってことと楕円離散対数問題っていう言葉を覚えておけば、まあ、大丈夫。多分。
  • pushd/popdでフォルダーを移動する

    cdコマンドで移動すると履歴が残らず、元のフォルダーへ戻るのが面倒である。pushdコマンドで移動すると、履歴がスタックに残り、popdコマンドで簡単に戻ってくることができる。引数なしでpushdコマンドを実行すると、履歴が表示される。 解説 コマンドプロンプト上で作業をする場合、あちこちのフォルダーへ移動しながらファイルを操作したり、コマンドを実行したりすることが多い。Windows OSに限らず、コマンドや設定ファイル、ログファイルなどは複数のフォルダーに分かれて置かれているため、このような移動は避けられない。もしフォルダーを移動せずに作業しようとすると、全てのファイルパスをフルパスで指定しなければならず、とても煩わしくなるからだ。 ●cdではなく、pushdコマンドで移動する フォルダーを移動する場合、コマンドプロンプトでは「cd」コマンドを利用する。引数に移動したい先のフォルダー名

    pushd/popdでフォルダーを移動する
    teddy-g
    teddy-g 2016/03/06
    pushdから戻るときはpopd。ネットワークドライブに割り当てされたのも解除される。
  • Windows OSのdirコマンドでファイル名の一覧を取得する

    対象:Windows 10/Windows 11、Windows Server 2012/Windows Server 2012 R2/Windows Server 2016/Windows Server 2019/Windows Server 2022 ファイルの整理あるいは納品書のような文書作成などのために、ファイル名やフォルダ名(ディレクトリ名)の一覧を取得して、その結果をテキストファイルにしたり、アプリに貼り付けたりしたいことがあるだろう。 しかし、[スタート]メニュー/タスクバーからアクセスできる検索機能や、エクスプローラーの右上にある検索ツールでは、検索はできるものの、その結果の一覧をテキストデータにしたり、アプリに貼り付けたりすることは簡単ではない。 エクスプローラーでも、ファイルを選択して、ファイル名の一覧のみを取得するような機能はない。 このような場合は、コマンドプロンプ

    Windows OSのdirコマンドでファイル名の一覧を取得する
    teddy-g
    teddy-g 2016/03/06
    dir /bでファイル名だけ出して|clipでパイプで繋げばクリップボードにコピーできる
  • よく利用されるRAIDレベル-RAIDの基礎知識- (@IT)

    RAID製品のカタログを見ていると、「RAID 1」や「RAID 5」といった単語を見かける。これらは「RAIDレベル」と呼ばれ、RAIDの技術をその機能によって分類したものだ。RAID技術は、1987年にUCB(University of California, Berkeley:カリフォルニア大学バークレイ校)のDavid A. Patterson氏らが発表した論文によって初めて紹介された。この論文では、RAIDレベルは1~5まで定義されていた(その後、RAID 0とRAID 6が追加されている)。現在、「基的な」RAIDレベルといえばRAID 0~5を指すことが多いようだ。 「レベル」といっても、数字が大きいほど、あるいは小さいほど、性能や機能が高いわけではないことに注意したい。RAIDレベルは、ディスク・システムの性能や機能のグレードを表すわけではなく、単にRAIDシステムを実現

    よく利用されるRAIDレベル-RAIDの基礎知識- (@IT)
    teddy-g
    teddy-g 2016/01/21
    RAID0=ストライピング、RAID1=ミラーリング、RAID5=パリティと覚えておけばいいか
  • もう1つの、DBのかたち、分散Key-Valueストアとは

    分散KVSが苦手なトランザクションの「ACID特性」 RDBのように、テーブルとテーブルを結合(SQLでいうJOIN文)して複雑な条件検索や集計処理を一発でこなすような芸当はできません。また、トランザクションによる「ACID特性」の確保も分散KVSが苦手な分野です。 RDBが不得意な分散/拡張 そのため、これらの不足をアプリケーション側で補うためのさまざまな工夫やフォローが必要となります。その一方で、分散KVSはデータストア全体をいくらでも多くのサーバに分散(スケールアウト)できるのが最大の特徴です。 一方でこれは、RDBが最も不得意とするところです。RDBでは、その長所であるテーブル結合やACIDの確保がボトルネックとなり、複数のサーバにスケールアウトさせることが「原理的」に容易ではありません。そのため、負荷分散や高可用性を低コストで実現することが困難です。 RDBで負荷分散させようとす

    もう1つの、DBのかたち、分散Key-Valueストアとは
    teddy-g
    teddy-g 2015/07/06
    RDBは分散が苦手と。KVS、最初はいいなと思ったが、クエリを考えるとやっぱりRDB…という気分になってしまう。
  • ブラウザでストレージ? Web Storageを使いこなそう

    連載目次 ■Web Storageの概要と活用例 旧来(=HTML 4.1以前)のWebブラウザでは、eコマース・サイトのカート情報やログイン状態の管理情報などのデータをブラウザに保存する仕組みとして、大半のWebサイトではクッキーを利用していた。しかし、クッキーでは、保存容量が4KBytesまでであることや、すべてのリクエストに対してサーバにデータを自動で送信するため、容量制限やセキュリティ対策に悩まされることも多くあった。 HTML5では、クッキーに代わるデータ保存の仕組みとして、「Web Storage」と呼ばれる機能を利用できる。Web Storageは、ブラウザ側でKey-Value型でデータを保存する機能のことで、現在のインターネットを取り囲む環境に対応した「クッキーの後継技術」ともいえる。 Web Storageとクッキーの機能の差異は、以下の表のとおりだ。

    ブラウザでストレージ? Web Storageを使いこなそう
    teddy-g
    teddy-g 2014/08/18
    localStorageとsessionStorageの違いなど簡潔に纏めてある。
  • HTML5のlocalStorageでiPhone用Webアプリを高速化

    HTML5のlocalStorageでiPhone用Webアプリを高速化:iPhoneで動かす業務用Webアプリ開発入門(4)(1/2 ページ) 今回は、iOSのSafariの中にデータを記録できる、HTML5の「localStorage」機能を使って、データの先読みとキャッシュを実現しアプリケーションの体感パフォーマンスを向上させてみます。 HTML5の「localStorage」とは localStorage(ローカルストレージ)とは、HTML5で規定されている、Webブラウザ内部のKVS(キーバリュー型データストア)です。iOSのSafariでも実装されていて、JavaScriptコードからアクセスでき、任意のデータを保存できます。 いきなり注意! localStorageの保存データはテキストで! HTML5の仕様では、localStorageに保存できるデータはJavaScrip

    HTML5のlocalStorageでiPhone用Webアプリを高速化
    teddy-g
    teddy-g 2014/08/18
    localStorageの基本中の基本。使い方は簡単。
  • SELECT文の結果を抽出条件に使う

    IN句を用いた条件抽出 今回は、SELECT文を入れ子にした副問い合わせ(サブクエリー)を説明します。 まずは、講座の第1回(「SQLの基礎SELECT文を覚えよう」)で解説した「IN」をもう一度復習しましょう。次の例題を実行してみてください。

    SELECT文の結果を抽出条件に使う
    teddy-g
    teddy-g 2014/07/17
    サブクエリ。すごい遅くなるので場合によってはスクリプト側で処理した方がいい。
  • 綱引きに蛇口当てゲーム?! 楽しく学ぶベイズフィルターの仕組み

    単純ベイズ法を2つの蛇口でとらえる いままで見てきたように、単純ベイズ法を用いたスパム判定では、すでに手元にあるスパムメール中に含まれている単語の出現頻度と、非スパムメール中に含まれている単語の出現頻度を計算することで、スパムメールの判定を行いました。 この計算の過程を、もう少し大ざっぱなモデルで説明してみましょう。 まず、無限の単語を含んだ蛇口を2つ考えます。1つは、スパム発生源の蛇口で、もう1つは通常メールの発生源の蛇口です。 そして、蛇口から流れ出た単語が袋に入りメールを生成するとします。それぞれの蛇口に含まれている単語の割合はもちろん違います。おそらく、スパムの蛇口に「無料」が含まれる割合は、非スパムの蛇口に「無料」が含まれる割合よりずっと大きなはずです。 スパム判定問題は、この蛇口を使うと次のようにモデル化できます。 いま、どちらか一方の蛇口から単語をばらばらと(有限個)こぼしま

    綱引きに蛇口当てゲーム?! 楽しく学ぶベイズフィルターの仕組み
    teddy-g
    teddy-g 2014/03/18
    ベイズ理論の説明はこれが一番わかりやすかった。
  • HTML5/スマホアプリ開発者が知らないと手痛い、セキュリティ5つの常識

    HTML5/スマホアプリ開発者が知らないと手痛い、セキュリティ5つの常識:第8回OWASP Nightレポート 2013年11月14日夜、日ヒューレット・パッカード(以下、日HP)社で「OWASP Night 8th」が開催された。 OWASP NightはWebアプリケーションのセキュリティ改善に向けた啓発、研究活動を行う非営利団体「OWASP(Open Web Application Security Project)」の日支部が主宰する定期セミナーだ。第8回目となる今回は、日HPが協賛しての開催となり、某TVドラマのロケ地にもなったという社カフェテリアで濃厚なセッションが行われた。 当日は、こちらも日HPが協賛する情報セキュリティカンファレンス「PacSec2013」、および「Mobile Pwn2Own」に参加した講師も登場し、大きな盛り上がりを見せていた。 記事で

    HTML5/スマホアプリ開発者が知らないと手痛い、セキュリティ5つの常識
    teddy-g
    teddy-g 2014/03/18
    HTML5絡みのセキュリティの話というほどたいそうなもんじゃないけど。
  • Vagrantで手軽に構築してオープンPaaS「Cloud Foundry」を理解する

    Vagrantで手軽に構築してオープンPaaS「Cloud Foundry」を理解する:DevOps時代のJavaプログラマのためのオープンクラウド入門(2)(1/4 ページ) オープンなクラウドで重要性を増すJava。DevOps時代のJavaプログラマはアプリケーション開発者(Dev)もデプロイや運用(Ops)面におけるクラウド/インフラ技術への幅広い理解が必要となる。連載では、さまざまなオープンクラウド技術を紹介していく。今回は、オープンソースのPaaSである「Cloud Foundry」を紹介。また、環境構築が手軽にできる「Vagrant」を使ってローカルにCloud Foundryの開発用稼働環境を用意してみよう。 Cloud Foundryとは Cloud Foundryはヴイエムウェアが中心となって開発をしているオープンソースのPaaS構築用ソフトウェアです。ソースコードは

    Vagrantで手軽に構築してオープンPaaS「Cloud Foundry」を理解する
    teddy-g
    teddy-g 2014/03/18
    Cloud Foundryの説明
  • いまさら聞けないHadoopとテキストマイニング入門

    ビッグデータ時代の救世主「Hadoop」とは 「Apache Hadoop」は今、最も注目を集めている技術の1つです。Hadoopとは、大量のデータを手軽に複数のマシンに分散して処理できるオープンソースのプラットフォームです。 Hadoopを活用している企業は年々増え続けていて、不可欠な技術になりつつあるといえるでしょう。 連載では、Hadoopとは何か、Hadoopがどう活用できるのかということを、「テキストマイニング」に焦点を当てて解説していきたいと思います。 重い処理を複数のマシンに分散させる 複数のマシンに処理を分散させるには、プロセス同士の通信、監視、障害時の対応などを考えなければならず、プログラマにとってハードルが高いものです。しかし、Hadoopはそういった面倒くさい処理を一手に引き受けてくれ、プログラマは、やりたい処理だけに集中できます。 例えば、Hadoopを使うと、1

    いまさら聞けないHadoopとテキストマイニング入門
    teddy-g
    teddy-g 2014/03/18
    Hadoopの基本的なアレ
  • 知られざるLTEのネットワーク構成

    知られざるLTEのネットワーク構成:次世代の無線技術LTEの仕組みが分かる(2)(1/2 ページ) 世界初の商用LTEサービス、始まる 北欧のオペレータであるTeliaSoneraが、2009年12月14日にスウェーデンのストックホルムとノルウェーのオスロにて世界初のLTE商用サービスを開始したと発表しました。もともとTeliaSoneraはLTEに対し非常に積極的でしたが、これほど早くサービスを開始するとは、われわれにとっても予想外でした。 ただし詳細を確認すると、スウェーデンにおいては6月末まで月額料金が4スウェーデンクローナ(約50円)、ノルウェーでは3月末まで月額料金が1ノルウェークローネ(約16円)であり、実質的にはユーザーにも協力してもらいながら問題を発見する「試験サービス期間」といえそうです。 また、現在のところTeliaSoneraの4GサービスはLTE通信だけを提供する

    知られざるLTEのネットワーク構成
    teddy-g
    teddy-g 2014/03/01
    LTEの仕組みに就いて。コアネットワークのところも丁寧に説明されてる。
  • TwilioならLINEみたいな通話機能をカンタン実装できる!

    「Twilioって何? そもそも何て読むの?」という人は、前回を見てね 前回の「TwilioとRailsで作る、電話でテキスト読み上げアプリ」では、Twilioについての概要、Twilioのアカウントの登録手順、そしてAndroidアプリに組み込む初歩ということで「入力されたテキストを読み上げるアプリ」を実装しました。 今回はTwilioを使ってLINEやcomm、カカオトークなどのような通話アプリを作る方法を紹介します。 今回のレシピ Twilioサービス クライアント Android SDK(APIレベル8=Android 2.2以上) Twilio Client SDK for Android サーバ Ruby 2.0.0-p195 Rails 4.0.0 twilio-ruby jquery-rails sqlite3 pg(ruby-pg) turbolinks therubyr

    TwilioならLINEみたいな通話機能をカンタン実装できる!
    teddy-g
    teddy-g 2013/08/19
    通話機能をすぐに実装できるTwilio API。使えそうで使えない。
  • コマンドによるMySQL管理テクニック

    mysqladminの基操作 データベースの作成 前回は、既存のtestデータベースを使って操作を解説しました。肝心のデータベース作成の手順については、まだお話ししていませんでした。 データベースの作成/削除やMySQLサーバの再起動/停止といった重要な作業は“mysqladmin”コマンドで行います。このmysqladminコマンドを使えるのは、許されたユーザーだけに限られます。試しに、一般ユーザーでMySQLサーバの権限参照定義を再読み込みさせてみましょう。

    コマンドによるMySQL管理テクニック
    teddy-g
    teddy-g 2013/06/21
    MySQLの基礎の基礎。ユーザーの作り方から丁寧な説明あり。