タグ

ブックマーク / qiita.com (316)

  • なぜ我々は頑なにforを避けるのか - Qiita

    動機 前回の記事を投稿したことを某SNSで通知したところ、そのSNSでこんなコメントをいただいた。転記する許可を取ったわけでは無いので私なりに要約させていただくと、 なぜそんなトリッキーな書き方をしてまでforを使うのを避けるのか そんな書き方をして可読性を下げるくらいなら素直にforを使う方が良い ということだと理解している。 なるほど、一理ありそうだ。しかし一方で、前回貼ったStackOverflowのQ&Aはなかなかの人気記事(質問に1243ポイント、回答に最大で1559ポイント)なので「多少トリッキーなことをしてでもforを書きたくない!!」という意見をもつプログラマも一定以上いるのだろう。当然私もその1人だ。 ということで、この記事で「なぜそこまで意固地になってまでforを書きたくないのか」を説明することにする。 尚、今回は前回の記事つながりで言語はJavaScriptを使うが、

    なぜ我々は頑なにforを避けるのか - Qiita
    JULY
    JULY 2020/09/24
    ほぼ同意だけど、本質は for ではなくて、意味もなく配列に添え字でアクセスすること、じゃないかなぁ。単にすべての要素に同じ処理を施すとき、添え字自体に意味はない。
  • [翻訳]なぜEmacsはviにエディタ戦争で勝利を収めたのか - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 原文: How Emacs beat vi in the Editor Wars from TREVOR JIM この暗い時代1、人々は切に明るいニュースを欲している。ありがたいことに、私には報告できることがある。Emacsがviにエディタ戦争で勝利を収めたのだ!! viはEmacsよりよく使われているだろう?、と笑いながら言う人もいるだろう。これらの虚言は完全に間違っており、そしてそのことは簡単に証明できる。 ではやってみよう。iPhoneを取り出しBluetoothキーボードを繋いでほしい。そしてブラウザを立ち上げアドレスバーに文字

    [翻訳]なぜEmacsはviにエディタ戦争で勝利を収めたのか - Qiita
    JULY
    JULY 2020/09/07
    へー、Emacs が勝利したんだぁ。
  • Facebook乗っ取りへの対応と手口 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 最近、身の回りでFacebook乗っ取られ事件が多発してるので、何がどうなって発生してるのかを調べてみました。あと、乗っ取られた場合にどう対処したら良いかも、最初に書いておきます。 乗っ取られた人は「知り合いからのメッセージだったので、開いちゃったら乗っ取られた」と言うことが多いんですが、この手のメッセージは大抵は知り合いから届きます。唐突に動画付きメッセージなどが届いたら、「突然届いたけどコレなに?」とか聞き返しておくと無難です。 ##乗っ取られた場合の対処 多くの場合は「お前から変なメッセージが来たぞ」とか言われて乗っ取りに気づくこ

    Facebook乗っ取りへの対応と手口 - Qiita
    JULY
    JULY 2020/07/28
    Facebook って、友達が何人か結託したら、アカウント乗っ取れる、って話なかったっけ?
  • WSL2 を導入すると、思った通り Windows10 は仮想マシン上で動作した(と思う) - Qiita

    WSL2 と Hyper-V と Parent partition 現在では多くの方が自分のPCWSL2(Windows Subsystem for Linux 2)をインストールし、Windows上でLinuxライフを満喫しているのではないかと思います。 さてさてマイクロソフトさんからWSL2の発表があった時、それを伝えていた記事の中に「WSL2はHyper-Vの技術を利用する」という旨の文言がありました。それ以来ずーっと疑問に思っていたのが、 「Hyper-Vを使うなら、ホストOSとなるWindows10は仮想マシン上で動くんだよなぁ。性能低下とか起きないのかな??」 ということです。 そもそもHyper-Vというハイパバイザは"Type-I型"と称される仮想化方式を採用していて、ホストOSが仮想マシン上で動作するはず...。Hyper-V界隈の単語で表現すると、ホストOSは"Par

    WSL2 を導入すると、思った通り Windows10 は仮想マシン上で動作した(と思う) - Qiita
  • 超高速!多倍長整数の計算手法【前編:大きな数の四則計算を圧倒的な速度で!】 - Qiita

    1. はじめに ~メインを読むための準備~ まず、大きな数の計算の話をする前に、少しコンピューターと計算回数について話しましょうか。 コンピューターは、現代ではソフトウェアやアプリケーションの開発に使われていますが、これには重要な背景があります。これは「計算がめっちゃ速いこと」です!人間なんかと比べたら、圧倒的な計算スピードを誇ります。 1-1. 人間の計算速度はどのくらい? まず人間はどのくらいの速度で計算できるでしょうか?速い人も遅い人もいると思います。 例えば、$628 \times 463$ の計算を、今やってみましょう。10 秒以内で計算できたらかなり速い方でしょう。この計算では、次のように「単純計算」を合計 28 回もしていることになります。 9 回の 1 桁 × 1 桁の掛け算 6 回の 1 桁 × 1 桁の足し算 13 回の繰り上がり計算 もし $628 × 463$ が

    超高速!多倍長整数の計算手法【前編:大きな数の四則計算を圧倒的な速度で!】 - Qiita
    JULY
    JULY 2020/06/16
    高校生? プログラミングのスキルが高いとか、こういった知識があること自体は、それほど驚かないけど、このドキュメントスキルに感心する。
  • 線形代数の基礎 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? #稿の目的 私は工学部出身ですが、大学1年の時に授業をサボっていたため、線形代数・微分積分はチンプンカンプンな感じでずっと騙し騙しやってきました。稿は、これではいかんと一念発起し、数学を勉強しなおした時のメモとなります。主に、「プログラミングのための線形代数」というに沿って勉強した内容をまとめてあります。(このは私のバイブルです!) 稿では、まずは、そもそも、私が挫折をした、線形代数の目的や意味、エンジニア(工学部出身者)が線形代数を理解するための心得についてまとめました。 私は数学科出身ではないので、流はよく分かりませんし

    線形代数の基礎 - Qiita
    JULY
    JULY 2020/06/15
  • 現代の僕「コンピュータが生まれた歴史知りたい」 - Qiita

    TL;DR コンピュータの歴史も何も知らなかった私が、「ありがとう、先人たちよ」と言えるぐらいまでコンピュータの歴史を調べたので共有したいと思います。 最初の動機 「コンピュータってどうやって動いてるんだろう」 あなたは、この疑問に自信を持って答えられますか? そして、仮にコンピュータを知らない人類がいたとして、「コンピュータとは何か」を説明できますか? 私はできませんでした。 もちろん、コンピュータを使うことはできます。 こうして、キーボードをカタカタを打つと、見慣れた文字となってディスプレイに映すことが出来ます。 しかし、「使えること」と、「それが動く原理を説明すること」 は途方もなく大きな壁で隔てられています。 この記事では、コンピュータが動く原理を、その歴史をたどることで探っていきます。 コンピュータの歴史をまとめつつ、 「コンピュータってどうやって動くの?」 に答えられるようなも

    現代の僕「コンピュータが生まれた歴史知りたい」 - Qiita
    JULY
    JULY 2020/06/05
    なかなか良くまとまってる。今年から情報系の大学生になった息子に読ませたい。
  • NURO光はセキュリティ的にやばいって話 (安全に使うための方法) - Qiita

    要約 NUROひかりのHGWはデフォルトでIPv6ファイアウオール機能が 無効 または 未搭載 の可能性がある ので、そのまま使うと家庭内LANがインターネットから見えちゃうからちゃんと設定か対策して使おうぜって話。 このドキュメントの対象とする人たち 何も考えずに速度が速いだけでNURO光を使っている、「いんたぁねっとが何かよく分かっていない」人向けです。 ネットワークやセキュリティを理解していて、自分のルータでセキュリティを維持しつつ使える!って人には全く関係ない話なので気にしなくていいです。読まなくていいです。 IPv6 と IPv4 のセキュリティ ここでは IPv6 と IPv4 のアドレスが割り当てられたPCやスマホとかがインターネットからどう見えるのか?について説明します IPv4 の場合 一般的にIPv4アドレスは1契約につき1アドレスが付与され、それをルータ呼ばれる機器を

    NURO光はセキュリティ的にやばいって話 (安全に使うための方法) - Qiita
    JULY
    JULY 2020/06/01
    家庭用 IPv6 ルータのガイドラインに従っていない、ということ? もっとも、一般契約者に割り当てられるアドレス空間が、IPv4 全体の 2^32 倍だから、単純なスキャンを受けることも、ほぼ無い。
  • これを見ればPythonの内包表記を完全に理解できる - Qiita

    これはとても簡単な例ですが、まあなんとなくどんなものかはわかったと思います。(内部処理はまだ理解できていなくて良いです。) aとbは、結果は同じものになっていますが、具体的にどんな処理を行っているのかを説明していきましょう。 前者は、 1. まず空のリスト(可変長オブジェクト)を生成してaという変数に代入します。 2. rangeオブジェクトを生成します。 3. 2のオブジェクトから各値を取り出し、iという変数に代入します。 4. iを1で作成したリストにappendしていきます。(3, 4を繰り返します。) 後者は 1. まず空のリスト(可変長オブジェクト)を生成します。(この中で行われるiterationの結果を格納していくための箱です) 2. rangeオブジェクトを生成します。 3. 2のオブジェクトから各値を取り出し、iという変数に代入します。 4. 内包表記を使うことで、結果の

    これを見ればPythonの内包表記を完全に理解できる - Qiita
    JULY
    JULY 2020/04/09
    Python の黒魔術のお話。老人には、Perl で map/grep を知った時のような麻薬性を感じる。
  • ネットワーク作業の効率化 telnet ツールを作るツールTelnetman - Qiita

    1. はじめに 1.1 背景 私は某大手通信会社のネットワーク構築部門でシステム開発を担当しています。 弊社では商用ネットワーク機器への バージョンアップ 迂回路構築 各種設定変更 等の作業を日々行っています。 人海戦術で手作業で行うのは当然効率が悪いので作業手順をツール化するわけですが、 段々それすらも面倒に感じてきたので作業ツールを作るツールを開発しました。 名付けてTelnetman です。 1.2 実績 期間 : 3年 対象 : 1件あたり300 ~ 2,000台程度を対象とした比較的規模の大きい作業11 効果 : 対手作業比で億円規模のコスト削減 事故 : 無し 2. 機能紹介 2.1 概要 登録したコマンドをGUI でグリグリ動かして並べて作業手順を作り上げていくワークフロー製品のようなものです。 コマンドは固定のものだけでなく、show interface {IF} stat

    ネットワーク作業の効率化 telnet ツールを作るツールTelnetman - Qiita
    JULY
    JULY 2020/03/13
    逆に、人様のシステムの構築の手伝いをしている身だと、そこにある OS の標準機能で接続できることの方が大切。故に、Windows でソフトインストール禁止状態が最高に辛い。
  • PHP書いてて本当に要らないなって思うコメント達 - Qiita

    俺の場合、ソースコードから語りかけにくるよね。 By ローランド泉 はじめに PHPに限った話ではないですが、コメントってそうそういらないと思うんです。 コメントがいるのはあくまで「コードでは伝わりきらない部分を伝えるため」だと思うんです。 なので、全くいらないわけじゃないし、こういう話をすると永遠に答え出ないと思うんです。 でも、なんでこんなコメント頑張って付けてるのかなって思う事が多々あるので、それを個人的にまとめてみました。 ※今回はPHPだけに絞って考えてみました。 ※今まで自分も漠然と付けてきた部分もあるので、自分への戒めのための記事でもあ---るのです。なんて日だ!! PHPの標準コーディング規約 色々ありますが、「PSR」などを読んでおけばよいかと。 ⇒フレームワークが何を採用しているかは重要なので、あなたが使用しているフレームワークが何基準なのかは押さえておきましょう。 コ

    PHP書いてて本当に要らないなって思うコメント達 - Qiita
    JULY
    JULY 2020/02/25
    そのコメントは、人間がコードを読むときのものじゃなく、ドキュメント生成ツール用なんだけどなぁ。
  • 可読性と変更容易性のため、気をつけていること - Qiita

    コメント頂いた件について追記しました。 2020/02/24 22:17 パイプライン演算子について追記しました。 2020/02/26 1:59 コメントの返信は終了しました。 2020/02/26 11:46 タイトルを変更しました。旧タイトル「可読性のためなら改行してくれ」 2020/02/27 09:38 この記事の内容は可読性と変更容易性の向上のための 1つの方法を記載しています。 可読性の感じ方には個人差があります。 ソースコードで一番大事なのは、 速度よりも可読性 です。 少しくらい速度が上がるからといって、可読性を損なうのは基的には避けるべきで、 止む得ない事情がある時のみであると、自分は思ってます。 ・可読性を損なわない高速化は行う ・可読性を損なう高速化の場合は正しいクラス設計で開発し、動きが保証されてから最適化する 例 特定の文字列をもらった後に、決まった文字列を後

    可読性と変更容易性のため、気をつけていること - Qiita
    JULY
    JULY 2020/02/25
    例が悪いなぁ。正直、この程度のものを個別に変数に入れて3行増やすことが、可読性の向上につながっているか、となると甚だ疑問。個人的には行数が増えた分、悪くなった印象すらある。
  • 「募ってはいるが、募集はしていない」 人たちへ - Qiita

    #/_/_/_/_/_/_/_/_/_/_/_/_/COTOHA_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ # ここの部分のコードはこちらから取ってきています。 # https://qiita.com/gossy5454/items/83072418fb0c5f3e269f class CotohaApi: # 初期化 def __init__(self, client_id, client_secret, developer_api_base_url, access_token_publish_url): self.client_id = client_id self.client_secret = client_secret self.developer_api_base_url = developer_api_base_url self.access_token_p

    「募ってはいるが、募集はしていない」 人たちへ - Qiita
    JULY
    JULY 2020/02/20
  • 高校生がアルゴリズムとスパコンの力で、京都の碁盤目状道路を13.9%効率化した話 - Qiita

    2. 研究で解く問題 「いざ研究しよう!」と思っても、条件や設定を決めないと何も始まりません。 まずは研究を分かりやすくするために、「一つの問題」に落とし込むことにしました。 問題設定 縦 $N$ 行・横 $N$ 列の大きさの碁盤の目があります。隣り合う交差点間の距離は 1 です。つまり、交差点が合計で $N^2$ 個あり、それぞれ座標 $(1, 1), (1, 2), ..., (1, N),$ $(2, 1), (2, 2), ..., (N, N-1), (N, N)$ に位置すると考えることもできます。 下の図は、$N = 4$ の場合の交差点の位置です。 あなたは、碁盤の目の交差点の位置は変えずに、道路の並びのみを変えることができます。上手く道路の並びを変えることで、できるだけ「便利」な道路網を建設してください。 「便利な道路網」って何? 私は、以下の 2 つの条件を満たす道路

    高校生がアルゴリズムとスパコンの力で、京都の碁盤目状道路を13.9%効率化した話 - Qiita
    JULY
    JULY 2020/02/17
    これに、リアルな社会的条件をもってマサカリ投げている人が、ちょっと...。一旦はそういったものを無視したシミュレーションをし、そこからエッセンスをどう現実に取り込めるか、というのが、次のステップの話。
  • 焼肉サブスクの脆弱性 - Qiita

    ※規約違反として限定公開にされました。Qiita運営からのメールに「Qiitaだけじゃなくて他サービスの規約違反もあかんのやで」という文言があったので、そのへんに気をつけて修正しました。 記事はすべてフィクションです。実在する企業とは一切関係ありません 焼肉サブスクに22日通った。 その中で、色々な脆弱性が見受けられたため、詳しく書く。 ※この記事で紹介する脆弱性を実際に突いてサービスを不正利用すると、詐欺罪に問われる可能性があるので、絶対にやらないこと。また、この記事は啓蒙を目的としており、システムの悪用を推奨していない。 焼肉サブスクのシステム サブスクプラットフォームに登録し、クレカでサブスクパスに課金する。 店でパスの画面を見せる。画面には1日1回だけ押せるボタンがあり、ボタンを店員の目の前で押すことで、サービス権を行使する。べ放題が無料になる 最後にレジで会計するが、べ放題

    焼肉サブスクの脆弱性 - Qiita
    JULY
    JULY 2020/02/14
    ネタかと思ったら、比較的真面目なレポートだった。まぁ、一部店舗で試しにやってみる、レベルの話だから、最初からカッチリしたものにするはずはないし。
  • Pythonライブラリの「麻雀(mahjong)」って?? - Qiita

    「mahjong」 みなさん、Pythonに「mahjong」というライブラリがあるのをご存知でしょうか? ↓Pythonライブラリ「mahjong」 https://pypi.org/project/mahjong/ 名の通り、このライブラリは麻雀のライブラリです! (麻雀の英訳は"mahjong") 今回は、上記URLの内容をまとめて、実際に使ってみました! ライブラリ詳細 mahjongができる事を一言で表すと 「Mahjong hands calculation」 つまり、麻雀の手計算を行えます。 URLの記事に記載されているProject description部分を読んでいきましょう! Python2.7 and 3.5+ are supported. We support the Japanese version of mahjong only (riichi mahjong

    Pythonライブラリの「麻雀(mahjong)」って?? - Qiita
  • Bashの邪悪なコマンド9選 - Qiita

    rm -rf /やったことある人。 私はないです。 以下はAndreas Müller( Twitter / GitHub / LinkedIn / Medium )による記事、9 Evil Bash Commands Explainedの日語訳です。 9 Evil Bash Commands Explained 初めてターミナルを使って、そしてそれを理解したときのことを覚えています。 あらゆるファイルにアクセスし、全てのプログラムを実行し、黒い画面に何かを入力するだけでシステムの全てを完全に掌握できることに気がついた、あの感覚。 そしてもちろん、致命的ミスを犯して全てを失った、あのときの恐怖も。 私は当はシステム管理者ではありませんが、長年にわたってLinux/UNIXベースのシステムで作業してきたので、コマンドを実行しようとしてEnterキーを打つことを躊躇う状況に何度も遭遇しまし

    Bashの邪悪なコマンド9選 - Qiita
    JULY
    JULY 2020/01/09
    cd の alias は笑った。だけど、いつも思うことだけど、Bash の話ではなく、UNIX 系 OS のコマンドの話(例えば dd の例)を Bash というくくりで語られるのは、シェルスクリプトをシェルと言うのと同じぐらい苛立つ。
  • 過去の難案件 PS2のカーネル開発 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? #はじめに 時はPlayStation2も そろそろ終わり。 PS2互換機がゲームセンター等で使われていた時代の事です 私は当時 超新人だったんだけどね ただ私は 大学を3ヶ月で光速中退して すぐにフリーランスになった変な経歴持ちです そんな時 ある人物が 掲示板に メモリマネージャやDMA、3DCGについて質問をしていた ちょうどその時期 仕事が楽だったので 光速で回答しました。 メモリマネージャ作りたいっていうので、簡単な方法として、連結リストでAllocateしていくと簡単だよ DMAについては 方向のふらぐがこーであーするだけだ

    過去の難案件 PS2のカーネル開発 - Qiita
  • SELECT文で本番環境を落としたお話 - Qiita

    (この記事は 地平線に行く とのマルチポストです) 番環境でやらかしちゃった人 Advent Calendarで、このパターンのやらかしはなかったのでキーボードを叩くことにしました。 番外編のつもりでお楽しみください。 この記事が、新たな障害発生を防ぐことにつながれば幸いです。 何をやったのか ある日、ちょっとした調査のために番データベースのデータを確認することになりました。 (個人情報が格納されているようなシステムではなかったので、必要であれば番データベースへのアクセスが許されていました) もしメンテナンスがあればそのタイミングでやればよかったのですが、直近では特に予定はないとのことでした。そのため、システムが動いている状態のまま作業をすることにしました。 ごく単純な SELECT を実行するだけのつもりだったので、システムに影響がないと判断したためです。 その際、万が一コピペをミ

    SELECT文で本番環境を落としたお話 - Qiita
    JULY
    JULY 2019/12/27
    投入した SQL を見て、ちょっと間をおいて気がついたけど、このパターンは初めて聞いた。DB の側に立つと「この人がトランザクション初めて、いつまで経っても終わらないんだけど」だからなぁ。
  • cron哀歌~typoを笑うものはtypoに泣く~他 - Qiita

    この記事は「番環境でやらかしちゃった人 Advent Calendar 2019」の12日目です。 https://qiita.com/advent-calendar/2019/yarakashi-production (想像以上に人気のカレンダーに参加してしまい、正直なところ、戦々恐々としております……) はじめに ほとんどの方ははじめまして、 @NACK と申します。 エンジニアになって何十年も経ちますが、未だに、ここに書いた「やらかし」は夢に見ます。 皆さんにご笑覧いただいて、私も一緒に笑えるようになればいいなあ……と思い、今回の企画に参加させていただきました。 というわけで、ぜひ笑いとばしていってください。もしくは、今後のみなさんの業務に、ほんの少しでもお役に立てれば幸いです。 用語説明 typoとは 入力ミスのこと。"typographical error"の略。 http:/

    cron哀歌~typoを笑うものはtypoに泣く~他 - Qiita
    JULY
    JULY 2019/12/13
    よし、キーボードのレイアウトを変えて r と u を入れ替えよう(そこじゃない)。