タグ

関連タグで絞り込む (206)

タグの絞り込みを解除

プログラミングに関するUhoNiceGuyのブックマーク (303)

  • 問題「2から100までの素数を出力するプログラムを書け」に対するゴリゴリ力技な回答。「草」「これが1番早いんです!」「こういうコードも実在する」

    ひさ @hisagrmf 問題 2から100までの素数を出力するプログラムを書け 答 print("2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97") 2022-04-16 10:49:01 ひさ @hisagrmf 「それだと例えば10000までの素数を求められた時にどうする?」 「ちょっと待ってくださいね、10000までの素数が載ってるサイトを調べますので」 2022-04-16 10:52:45

    問題「2から100までの素数を出力するプログラムを書け」に対するゴリゴリ力技な回答。「草」「これが1番早いんです!」「こういうコードも実在する」
    UhoNiceGuy
    UhoNiceGuy 2022/04/17
    8bitのsin関数なんかテーブルでやりますね。円周率を定数で持つのもズルってなっちゃいそう
  • 8時間を0.01秒に短縮 「アルゴリズムの素晴らしさが2分で分かる動画」が今すぐ勉強したくなる分かりやすさ

    記事はアフィリエイトプログラムによる収益を得ています アルゴリズムの素晴らしさを2分で解説した動画が、とても分かりやすくためになると人気です。なるほど、これがアルゴリズムと仕組みかぁ。 最短経路をアルゴリズムで算出しよう この動画では、迷路を最短手数で解くアルゴリズムについて解説。迷路はマス目状になっており、全部で8900億個の手順が存在するものとなっています。全ての経路を試せば最短手順を導き出せますが、普通のコンピュータでは約8時間かかってしまう計算になります。 全パターンの網羅は非常に時間がかかります そこで計算の手順を変更。スタートに0を書き、その隣1を、また隣に2……と繰り返していきます。こうして進めていくと最終的にゴールは34となり、この34が最短手数となることが分かります。今度はゴールから34,33,32とたどっていけば、最終手数で進む経路の1つが導き出せました。 数字を振

    8時間を0.01秒に短縮 「アルゴリズムの素晴らしさが2分で分かる動画」が今すぐ勉強したくなる分かりやすさ
    UhoNiceGuy
    UhoNiceGuy 2022/04/15
    距離が同一だと、あんまダイクストラと言わないのでは…
  • Nimを知ってほしい2022

    Nimを知ってほしいという記事があり、Nimを知らなかった人々向けに最初の紹介として大変な貢献をしてくださりました。 しかしまだNimを使ったプロダクトというのも少なく、競プロではチラホラ見かけるものの、人々の中にある意識としては「気になっています」という域を越えられていないのも事実です。 そこで今回は企業での意思決定をする人や、5年以上の経歴があるエンジニア向けに、Nimを書いてみようと感じてもらうことを目的に、先日私が登壇したみんなのPython勉強会#79 『Pythonistaに伝えたいNimの魅力』に加筆して投稿してみたいと思います。 Nimって何? 2008年から開発が始まった新しいプログラミング言語です。 「Pythonに型が付いて、Goみたいに高速に、バイナリになってOSの実行環境に依存しないで動いてくれる言語ないかな〜」という全プログラマーの夢を叶えてくれる言語です。 書

    Nimを知ってほしい2022
    UhoNiceGuy
    UhoNiceGuy 2022/04/04
    これは凄い言語//GC、ARCのリンク読むとナイーブな参照カウントではなく、静的に解決してるみたい。他の言語もスコープ内で破棄される変数はヒープではなく、スタックに確保して欲しいな。(当たり前にやってたらゴメン)
  • 20分で分かるDirty Pipe(CVE-2022-0847) - knqyf263's blog

    極限まで詳細を省けば何とか20分で雰囲気だけでも伝えられるんじゃないかと思って書きました。書き終えてから見返したら多分無理なので誇大広告となったことを深くお詫び申し上げます。 背景 概要 脆弱性の影響 ページキャッシュやsplice パイプ マージの可否 下準備 攻撃手順 まとめ 背景 先日Dirty PipeというLinuxカーネルの脆弱性が公表されました。 dirtypipe.cm4all.com Linuxのパイプに関する脆弱性なのですが、仕組みは意外とシンプルでぎりぎりブログでも伝わるかもしれないと思ったので自分の理解を書きました。あといつも細かく書きすぎて長くなるので、今回は雰囲気だけでも伝わるようにとにかく説明を簡略化し、ふわっとした概要だけでも理解してもらえるように頑張りました。その結果、若干正確性に欠ける部分があるかもしれませんがお許しください。細かい部分はまた別の記事でま

    20分で分かるDirty Pipe(CVE-2022-0847) - knqyf263's blog
    UhoNiceGuy
    UhoNiceGuy 2022/03/11
    これってあまりにも簡単過ぎない!?キャッシュの寿命はあるが、read権限があるだけでファイルの改竄ができるなんて//非常にわかりやすい解説。
  • トッププログラマ一のデスクを覗き見!! 高橋直大さんの仕事術に迫る

    リモートワークが一般的になり、快適な作業環境を求めて試行錯誤しているエンジニアの方も多いのではないでしょうか。 マシンのスペックはもちろん、キーボードやマウスにモニターデスクやチェアに至るまで、作業環境はエンジニア仕事効率に大きな影響を与えます。業界で活躍するあの人はどんな環境で仕事をしているのか気になりますよね!? そこで、競技プログラミングの第一人者であり経営者でもある、髙橋直大さんのデスク環境を覗き見! ハード面はもちろん、お気に入りのソフトウエアやツールの使い方、さらにはエンジニアとしてスキルアップするポイントまで、仕事に役立つヒントをじっくりとお聞きしました。 高橋直大 1988年、東京都生まれ。慶應義塾大学大学院政策メディア研究科在学中、2010年に、プログラミングコンテストを開催する企業であるAtCoder株式会社を創業。著書「最強最速アルゴリズマー養成講座」などがあり、

    トッププログラマ一のデスクを覗き見!! 高橋直大さんの仕事術に迫る
    UhoNiceGuy
    UhoNiceGuy 2022/03/02
    こんなディスプレイ遠くにしてるんだ//直大さんはレッドコーダーなんだからトッププログラマでしょ。9割事務仕事でも
  • RPAで疲れ果てた

    物流会社の事務員なんだけど会社がRPAツールを導入するってんで定型作業を自動化しろって話しでRPAプログラミングをやらされてたんだわ。 それで色々クソな点があったのでシェアします。 1、実務の合間にやらないといけない マネジメントの問題でもあるけど、そういうことなんだよな。 現場がクソ忙しい時に悠長にデバッグとかやってられん。あとデバッグみたいな作業は見た目何もしていないように見えるからここぞとばかりに仕事振られたりする。 2、番環境とか開発環境とかない。ぶっつけ番で稼働→失敗→デバッグを繰り返さないといけない。 これは自動化する仕事によると思うんだけど、実際に現場で使うデータをRPAプログラムに投入しないとそもそも要件がわからないことがある。データの特性というか、物流事務なんかだと8割がシステム化されているけど2割は荷主や配送先のわがままで特徴的なデータの不備があって、それに対応する

    RPAで疲れ果てた
    UhoNiceGuy
    UhoNiceGuy 2022/02/17
    RPAって本来One linerですむことをやらせる為にあるべきなんだと思ってる。なんで、誰かに作ってもらうんじゃなくて、ユーザーがその場その場でad hocにほぼ書き捨てで作るようになるといいと思うんだけど、やっぱ理想か
  • Microsoft、OfficeのVBAマクロをデフォルトブロックへ 悪用対策で

    Microsoftは2月7日(現地時間)、ネットからダウンロードしたOfficeファイルでVBA(Visual Basic for Applications)マクロをデフォルトでブロックすると発表した。対象はExcel、Word、Access、PowerPoint、Visioのファイルで、4月上旬からCurrent Channel(プレビュー)のバージョン2203で展開を開始する。 攻撃者がメールに添付したりWebサイトからダウンロードさせたりしたOffice文書にVBAマクロを埋め込み、これを実行させることは、Emotetなどのマルウェアで使われる手段だ。マクロを実行すると、悪意のあるコードがユーザーのID、ドキュメント、ネットワークなどにアクセスできるようになってしまう。 VBAマクロをデフォルトでブロックするようになると、ドキュメントの上部に「セキュリティリスク このファイルの出自

    UhoNiceGuy
    UhoNiceGuy 2022/02/08
    簡単に、無意識に有効化できないようにしたということ?
  • 最近linuxを触るようになったのですが、なぜvimはこんなに使いづらいのですか?

    回答 (19件中の1件目) モーダルだからというのを、UIの授業で聞いたことがあります。 つまり、書き込みモード、上書きモード、コマンドモードなど、状態を常に意識し、それぞれある意味違うプログラムとして覚えなければならないということです。 ただ、他の回答者も仰る通り、「覚えやすいもの」と「便利なもの」は必ずしも同じではないので、毎日使うような道具は覚えやすさより便利さが重視されるのも間違いではないと思います。 僕自身はvimvimプラグインをそこらじゅうで使っています。殆どの機能が英文字キーだけでこなせるので、疲れない気がします。気分の問題だとも思いますが。

    最近linuxを触るようになったのですが、なぜvimはこんなに使いづらいのですか?
    UhoNiceGuy
    UhoNiceGuy 2022/02/04
    viの良さは3j4ddみたいなコードゴルフ的なものよりも、intをlongに変更する場合なんか「/intcwlong」もっと言うと他コメにある「.,+4 s/int/long/」みたいに思考をそのままタイプすればいいことだと思う。カーソル移動は脳に重い
  • コンセプトから理解するRust

    2022年2月12日紙版発売 2022年2月7日電子版発売 原旅人 著 B5変形判/360ページ 定価3,520円(体3,200円+税10%) ISBN 978-4-297-12562-2 Gihyo Direct Amazon 楽天ブックス ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle ブックライブ 楽天kobo honto 書のサポートページサンプルファイルのダウンロードや正誤表など このの概要 Rustはメモリ安全,スレッド安全を保ちつつ,高パフォーマンスなプログラムを開発できるプログラミング言語です。また,手続き型,オブジェクト指向型,関数型でのプログラミングに対応できるマルチパラダイムの言語でもあります。ただ,そういったRustのポテンシャルを引き出すには,所有権やライフタイム,ジェネリクスやトレイトといった特徴的な

    コンセプトから理解するRust
    UhoNiceGuy
    UhoNiceGuy 2022/01/25
    他言語との比較はいいね。Rustの煩わしい構文がないとどういう問題が発生するのか、がないと理解しにくいからね
  • Pythonの波に飲み込まれたRuby、日本のケータイ敗戦との共通点

    プログラミングの学習を始めようとする人がする定番の質問がある。「どのプログラミング言語を選べばいいか」というものだ。 私はこのコラムで以前、JavaScriptからプログラミングを始めてはどうかと書いた。JavaScriptはWebブラウザーさえあれば動作するからだ。例えば「Chrome」であれば、F12キーを押して「Console」タブを選ぶだけで、JavaScriptの対話実行環境を利用できる。 関連記事: 保存していないクレジットカード情報が漏洩する謎、鍵はあのプログラミング言語 もっとも、JavaScriptは最初に学ぶ言語としては少し癖が強いとも感じている。どちらかというと、2番目か3番目に学ぶことで視野が広がるタイプの言語ではないだろうか。 私が初心者に勧めるとしたら候補は2つある。「Ruby」と「Python」だ。 私がRubyを勧める理由は、「プログラミングの楽しさ」を体験

    Pythonの波に飲み込まれたRuby、日本のケータイ敗戦との共通点
    UhoNiceGuy
    UhoNiceGuy 2022/01/14
    記事は読んでない。Pythonのライブラリが凄いのもあるが、RubyはWindowsで気楽に始められないんだよね(だよね?)。なので、他人に勧められるのがPythonになる。自分が使っているのはRubyなのに(自分はマカー)
  • 他言語ユーザがRust言語をガチめに使っての雑感 - 分散KVSを書いてみて - - Qiita

    どうも ryo_grid です。 昨年はRustを覚えたいと思い、題材としてRESTインタフェースを持った分散KVS(実質はいわゆる分散ハッシュテーブル)を書いたりしました。 FunnelKVS: Rust implementation of autonomous distributed key-value store which has REST interfaces この記事では、他言語を使ってきた私が、経験のないRustを用いてそこそこのコード規模・複雑さのシステムソフトウェアを書いてみた上で、Rustについて感じたことを、独断と偏見で述べます。 Rustってなんか流行りそうな雰囲気あるけど難しいとも聞くし、どうなんだろ?と考えている方や、Rustガチ勢の方々に、「初学者はこう感じるんだな」「ここらへんに苦労するんだな」というところを伝えることで、Rustのスムーズな普及に少しでも寄

    他言語ユーザがRust言語をガチめに使っての雑感 - 分散KVSを書いてみて - - Qiita
    UhoNiceGuy
    UhoNiceGuy 2022/01/12
    この人程レベルは高くないが同じ印象。必要性がわからないと学習の理解は進まない。所有権の概念なんかはC++でムーブ?コピー?とか悩んだ経験がないと理解しづらい。
  • 【JavaScript】実数から整数への変換に parseInt() を使ってはいけない2つの理由🙅‍♀️ - Qiita

    背景(誰のための記事?) JavaScriptプログラマのみなさまこんにちは。 最近のお仕事の傾向として、マイクロサービス化といいいますか、オブジェクト指向の延長といいますか、MVVM化といいますか、下回りは速度&効率重視でC++で構築し、中間は保守(メンテ)&書きやすさ+ちょっぴり速度も重視で node.js(JavaScript)、上層のUIはなるべく広範囲で使えるように考慮して HTMLCSS 、という3層構造 ・上層:HTML + CSS ・中層:node.js(JavaScript) ・下層:C++ が流行っていまして、今回の事件は中層の node.js スクリプトの部分で発生した問題でした。しかも、下層で生成された巨大なデータを中層で処理し、上層で表示しようとするとある条件で遅延が発生し、表示がカクつくという問題で、その「ある条件」が長期間に渡って特定できない、、、といった難

    【JavaScript】実数から整数への変換に parseInt() を使ってはいけない2つの理由🙅‍♀️ - Qiita
    UhoNiceGuy
    UhoNiceGuy 2022/01/08
    これはハマる//正直、配列のindexは明示的にintにキャストしたいのはある。a[2.0]とかなんか気持ち悪い。あと、暗黙のキャスト嫌い
  • Rust初心者殺しの文法10選 - Qiita

    概要 この記事ではRust初心者が驚いたり混乱させられたりするようなRustの文法を10項目集めてみました。 これらの項目は知らないと理解できなかったりコンパイルエラーに悩まされたりする一見厄介なものたちなのですが、そのような直感的でない挙動を敢えてさせているところには重要な意味が込められていることが多いです。 そのため、これらの項目を通してRustが目指しているものや実現したい機能の一部を垣間見ることができると思います。 1. デフォルトの代入がムーブ Rustの最大の特徴が所有権の概念であることは有名ですが、それでもなお初心者殺しになるのがムーブです。 以下のコードがコンパイルエラーになるメジャーな言語は現状Rustくらいしか無いでしょう。 let mut a = vec![1, 2, 3]; let mut b = a; // ここでaの持つベクタの所有権がbにムーブされ、aは無効に

    Rust初心者殺しの文法10選 - Qiita
    UhoNiceGuy
    UhoNiceGuy 2021/11/04
    安全なプログラミングをするために意識しなければならないことを文法で明示させているんだね。ここらのことを理解している(させられている)プログラマだけでチーム組んだら、そりゃ凄いもの作れますよ
  • 正規表現の"正規"とは何か気になったら正規表現の歴史を紐解くことになってしまった話

    正規表現の"正規"って何 ある時ふと思いました。 「正規表現の"正規"って何だろう?」 「何を根拠に"正規"を名乗っているのか?」 と。 「誰かが『これが正規の表現だ』と言ったはず」で、 「それは周りにどうやって"正規"だと認められたのだろう」 ということが気になったので調べてみました。 "正規表現"という名前でなくて、"ジャックさんの表現"とか"記号ごちゃごちゃ表現"だったらこんな疑問も持たなかったのですけど。 数学における"正規"とは 一般に"正規"というと、"正規品"や"正規の手順"といったように"物の(genuine)"や"公式な(official)"といった意味がありますが、数学の"正規"はちょっと違います。 数学で"正規"(および"正則"、英語では"regular"または"non-singular")は、ある概念に強い制限をかけたもの、という意味です。強い制限をかけたものは取

    正規表現の"正規"とは何か気になったら正規表現の歴史を紐解くことになってしまった話
    UhoNiceGuy
    UhoNiceGuy 2021/10/31
    「正則」表現原理主義派//自分で習作の正則表現エンジンを作ろうと思って10年経った。そろそろ本腰を入れないと
  • みんな個人でプログラム書いて便利になってるの?

    Pythonが流行っているけれど、どうも便利になってない。 自分はプログラマーではないので、スキルが足りてないだけなのかもしれないけれど・・・。 例えば動画を編集していてDaVinciと他のソフトを連携したいなと思っても、そういうのはググっても出てこない。 Photoshopのプラグインとして機械学習を使ったものを入れたいと思っても、ググっても出てこない。 Pythonからエクセルを動かすのは、試してみたが、VBAマクロの方が楽に感じる。操作を記録する機能はあるし、そこから不要部分削ったりすればよく、 Pythonでエクセル動かそうとすると読みにくいし何やってるか結局わからない。 プログラマーの人はエクセルなどを嫌うけれど、matplotlibを細かい調整しようとすると調べて描画し直してを繰り返さないとならず、 GUIでポチポチ調整する方が楽に感じてしまう。 個人でGUIを作るとして、ボタ

    みんな個人でプログラム書いて便利になってるの?
    UhoNiceGuy
    UhoNiceGuy 2021/10/28
    VBAでいいじゃん//スクレイピングが便利というコメが多いのはHTMLという素性のいいデータを扱うからで、仕事で使うデータがExcelシートではなくCSVだったら増田もPython使ってると思う。DXはまずここからだな
  • あるエンジニアの面接で、ソートについて聞かれたら

    あるエンジニアさんが面接でソートについてきかれました。 ここまで覚えておく必要あるの?と思いましたが、知っている人はいるものですね。 でも、必要なら調べるぐらいの情報のような気もする。Webエンジニアなら必要な知識なのかなあ。

    あるエンジニアの面接で、ソートについて聞かれたら
    UhoNiceGuy
    UhoNiceGuy 2021/10/14
    ソートはライブラリ使うにしてもライブラリで使ってる(であろう)アルゴリズムの計算量は議論できなくてはいけないのでは(暗記の必要はないと思うが)
  • Javaで作るのは他人のためのプログラム、Pythonで作るのは自分のためのプログラム - きしだのHatena

    JavaやCで組むのは他人のためのプログラムで、Pythonで組むのは自分のためのプログラム、という違いがないかなという話。 TIOBEでとうとうPythonが1位になったというニュースが流れてました。 https://internet.watch.impress.co.jp/docs/yajiuma/1357645.html でも、Pythonが1位になったとはいえ、CやJavaであったような、世の中のプログラム全部Pythonになるみたいな雰囲気はないなと思いました。 で、こんなツイートをしたわけです。 PythonJavaやCを抜いて1位になるのは、JavaやCが担っていたところがPythonに置き換えられたのではなくて、他人のためのプログラミングではなく自分のためのプログラミングが増えたということじゃないかなと思う。https://t.co/LeM3ADCwAA— きしだൠ(K1

    Javaで作るのは他人のためのプログラム、Pythonで作るのは自分のためのプログラム - きしだのHatena
    UhoNiceGuy
    UhoNiceGuy 2021/10/13
    Pythonで1000行超えるプログラム書くの嫌だな。自由というのは責任が増えると言うことなのだよ。まぁ、自分用のプログラムで500行超えることはあまりないと思うけど。
  • Go言語が成功した理由

    Go言語の作者であるRob Pike氏が「Go言語が成功した理由は何なのか?」というタイトルで2015年に発表をしてる動画を見つけたので、雑に和訳してみたいと思う ちなみに最近Go言語の好き嫌いに関する記事がいくつかバズっており、それに乗っかってるというのは言うまでもない Go言語を嫌う6個の理由 Go言語が好きな理由 良く挙げられる成功要因 Pike氏は以下がよく理由として挙げられると述べている コンパイルの速さ 実行の速さ デプロイの容易性 ツール ライブラリ しかしこれらは全て表面的であって、質的な理由ではないとも述べている ではGo言語が成功に至った質的な理由とは一体何なのか?彼は続いて説明している Go言語が成功に至った真の理由 彼は「Simplicity」、シンプルさがGo言語が成功に至った質的な理由であると述べている そしてこのコンテキストにおける「シンプルさ」とは以下

    Go言語が成功した理由
    UhoNiceGuy
    UhoNiceGuy 2021/09/28
    最近、ライブラリ管理も言語設計に含まれるようになったよね。なんかパラダイムシフトが起こったら混乱する予感。
  • 頭が痛くならない「ダメージ計算式」の基本の話|だらねこ

    戦闘のあるゲームを作るなら、考えないといけないのがダメージの計算式。でも、計算式のコツとか基とか調べると、小難しそうな話が出てきて め、めんどくせぇ~ってなったりしませんか?私はなります。色んな計算式とその特徴を羅列されても、よくわかんなくなっちゃう。 とはいえ私もゲームデザイナーの端くれなので、ダメージ計算式を考える機会がそれなりにあります。そして他人の作った変な計算式に苦しめられることも、いっぱいあります。泣きたい。 大元の計算式が悪いと、それを利用してバランス調整しても苦労する事が多いんですよ。なので、そんな悲劇を少しでもい止めるためにもですね。 この記事では 数字が苦手な文系の人でも、なんかいい感じに計算式を考る…とっかかりになることを目指して書いていこうかと思います。 ※こういう計算式がある!選んで使え!!という記事ではありません。 ※計算式を考える時、こういうのを把握して、

    頭が痛くならない「ダメージ計算式」の基本の話|だらねこ
    UhoNiceGuy
    UhoNiceGuy 2021/09/28
    その点、ダメージ数値が爽快感の演出になるスパロボのダメージ計算式は、先祖伝来の巧の技だね。逆にファイアーエムブレムはアルテリオス計算のピーキーさで剣士の群れにアマナイ放り込むとかパズル要素が魅力だね
  • Objective-C小史

    Mediumより。 BY ハンセン・スー これまでに、ユーザがダウンロードしたiPhoneアプリは1,400億を超えています1。iPhoneの成功は、サードパーティ製アプリのエコシステムに関係しています。2008年にApp Storeがデビューしたとき、すべてのアプリは、Apple以外のコミュニティではほとんど使われていなかったプログラミング言語Objective-Cで書かれていました。それ以来、Objective-Cの使用は爆発的に増加し、アプリを作る開発者たちのゴールドラッシュとなりました。Appleは2014年に新しい言語Swiftを導入しましたが、AppleのiOSオペレーティング・システムのほとんどは今もObjective-Cで書かれており、今後何年もAppleのデバイスで使用されるでしょう。 多くのプログラマがObjective-Cを知ったのは、iPhoneアプリ革命の時でした

    Objective-C小史
    UhoNiceGuy
    UhoNiceGuy 2021/09/28
    ちょっとしか使ってないけど、頭をObjective-C脳に切り替えるイメージ。なんか不思議な感じ。ObjCの自由さを生かせるのは一流プログラマで自分みたいな凡百だとはぇーって感じ