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

  • [翻訳]なぜ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
    delphinus35
    delphinus35 2020/09/07
    文中、一箇所だけ「vim」になっていることが訳者のメッセージ。そう、真の勝者はVimだったんだよ!ΩΩ Ω<ナンダッテ-
  • 【JavaScript】本日未明、[ async - await ]さんが死体で発見され... - Qiita

    「な、なんじゃこりゃあああぁあっtっt!!!!」 ・・・ ・・・ ・・・ 非同期処理を"ちゃんと"理解して使いたい 『非同期処理なんとなくの理解で書いている...』 『動いてるし、ヨシ!』 令和プログラマー*1である私自身、なるべく気を付けようと思っていますが、ついついなんとなくで書いてしまいそうになります。 (*1: 令和になってからプログラミングを知った人。初心者のこと。) ちなみに冒頭のコードは、「並列でいける処理をつい直列でやってしまっている」 例です。 実際に手を動かしながら非同期処理の理解を深める 記事は以下の構成で、順を追って非同期処理を学習し、明日から自信を持って非同期処理が書けるようになるためのハンズオンです。 JSの非同期処理について知る Promise について知る Async / Await を使えるようにする 冒頭のコードがリファクタリングできるようになる 実際

    【JavaScript】本日未明、[ async - await ]さんが死体で発見され... - Qiita
    delphinus35
    delphinus35 2020/08/26
    最初の例の何が悪いかわからなくて一番下の解答までスクロールする必要があった。これはケースバイケースなのでは……同時にアクセスできないパターンはいくらでもあるでしょ。
  • 【PHP8.0】非厳密な比較演算子`==`の挙動が今さら変更になる - Qiita

    結果は順にtrue、true、falseです。 これがPHP7までの非厳密な比較(等価)演算子だったわけですが、まあおかしいよねってことで、この挙動がPHP8.0で変更になることになりました。 よもや今さら基中の基である比較演算子の動作を弄ってくるとは思わなかったぞ。 以下はSaner string to number comparisonsの日語訳です。 PHP RFC: Saner string to number comparisons Introduction ==やその他の非厳密な比較演算子を用いた文字列と数値の比較は、現在は、文字列を数値にキャストし、その後整数か浮動小数の比較を行っています。 この結果、多数の不可解な結果が得られますが、中でも注目すべきは0 == "foobar"がtrueになることです。 このRFCでは、文字列が実際に数値型文字列である場合にのみ数値型

    【PHP8.0】非厳密な比較演算子`==`の挙動が今さら変更になる - Qiita
    delphinus35
    delphinus35 2020/08/03
    Perl民としては何がおかしいのかわからんので変える必要ないのでは感
  • JavaScriptからletを絶滅させ、constのみにするためのレシピ集 - Qiita

    はじめに 記事では、constこそが唯一神であることを証明したあと、letを使いがちな場面でいかにしてconstを使うかをまとめていきます。なお、ES2018までの基構文(reduce, async/await, 配列とオブジェクトのスプレッド構文)を使用します。「いや、reduceとかスプレッド構文とか難しいからlet使うわ」という方のために、便利メソッド詰め合わせであるLodashを使った例もご紹介します。もちろん、Lodashは機能に対してサイズが大きいライブラリであるため、フロントエンド開発でバンドルサイズを軽減したいという方などはLodashの例は無視し、Lodashを使っていない方の例をご参照いただければと思います。 追記:Lodashの使用について 注意事項 この記事は半分ネタで半分気です。実際の開発でどこまでconst教を導入するかは、他のメンバーと慎重に相談してくだ

    JavaScriptからletを絶滅させ、constのみにするためのレシピ集 - Qiita
    delphinus35
    delphinus35 2020/08/03
    大体は TypeScript 使えよ、で終わる気がする
  • 糞コードは直すな。 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? とりあえず落ち着け。 みなさん、毎日なにかしらのコードを読み、開発する日々を送っていると思います。そんな中で、 糞コードは死ぬべきである!!絶対に直すべき!! という感情に取りつかれてしまうことがあると思います。自分の技術力に自信のある人ほど、無理やりにでも直そうと試みると思います。それがどんな修羅の道か。そして、糞コード修正がどんな道を歩むのか。この記事では糞コード修正の罠とありがちなストーリーについて書きたいと思います。 ビジネスとしてのプログラムは質的に糞である 例えば、「携帯電話の利用料金」のプログラムがあります。 「携帯電話

    糞コードは直すな。 - Qiita
    delphinus35
    delphinus35 2020/08/02
    なげえ。ざっと見ただけだけど、「糞コード」なるものの定義が最初にない時点で糞だと思います。
  • 西暦3000年、地球外生命体はlinux kernelをコンパイルできるのか? - Qiita

    この問いかけにまじめに考えてみる。 ほぼ全てのソースコードってランタイムなりコンパイラとして何かしら別のものに依存しているはずだけど、最終的に行き着くだろうOSとかってそもそもGitHub上に存在するのかなhttps://t.co/KNME92Qcz8 — yuta (@yuta0381) July 18, 2020 TL;DR(要約) RISC-VだったらCPUから作れそう。エミュレータのコード見て自作もできそう。 RISC-Vだったら、多分linux動かすところまで行けるよ! x86とかだったら、動かそうとするけどライブラリ古くて苦しむよ! Linux Kernelだけ見ても、GitHub上にすべての依存する「最新の」コードは存在していない。若干古かったりするので、そこらへんは地球外生命体の人に頑張ってもらうしかない。 前提条件 西暦2500年、地球人類は滅亡した(唐突)。北極には、か

    西暦3000年、地球外生命体はlinux kernelをコンパイルできるのか? - Qiita
    delphinus35
    delphinus35 2020/08/02
    まだまだ GitHub 以外で管理されてるものも多いんだな。
  • OAuth 2.1 の標準化が進められています - Qiita

    IETFのOAuth WGでは、今あるOAuth2.0関連の仕様を整理し、一つの仕様としてまとめなおし OAuth2.1 として標準化するとりくみが進められています。 今回は、簡単にOAuth2.1について紹介します。 OAuth 2.0 OAuth 2.0は2012年10月に「RFC6749 The OAuth 2.0 Authorization Framework」として標準化されています。その後、OAuth2.0の改善は続けられ、セキュリティ向上のために利用すべき機能(PKCE)などが追加されているほか、逆に非推奨になっている機能(Implicit Grant)などがあります。 IETFのOAuth WGではOAuth2.0を安全に利用するためのベストカレントプラクティスを「OAuth 2.0 Security Best Current Practice」としてまとめています。 この

    OAuth 2.1 の標準化が進められています - Qiita
    delphinus35
    delphinus35 2020/08/02
    う……リフレッシュトークンも1回きりになるのか。PKCE必須化とImplicit Grant削除は納得。
  • 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
  • C言語で16文字でセグフォらせる - Qiita

    PythonをSegmentation Faultで落とすのが最近流行っているようなので。 pythonを三行でセグフォらせる pythonを2行でセグフォらせる pythonを1行でセグフォらせる Pythonを33文字でセグフォらせる Pythonをctypesを使わずに1行でセグフォらせる Rustを5行でセグフォらせる 主語(Python)をC言語に変えるだけで途端につまらなくなりますが、やってることは同じです。 コード gcc 10.1.0で動作確認(警告は出ます) > gcc segf.c segf.c:3:4: 警告: データ定義が型または記憶域クラスを持っていません 3 | *a;main(){*a=0;} | ^ segf.c:3:5: 警告: 型がデフォルトの ‘int’ に ‘a’ の宣言内でなります [-Wimplicit-int] 3 | *a;main(){*

    C言語で16文字でセグフォらせる - Qiita
  • ZOOMと全く同じ機能をwordpressで実装した時の概算見積を真面目に考えてみる - Qiita

    的にはビデオ会議機能の提供ですね。 有料版では参加人数や時間の制限が変わる形ですね。 プロ版以降の機能はZoomのメインの機能ではなく、付加機能であると思われるので Zoomと同じことをしたいと思うならとりあえず、ビデオ会議できればいいんですよね。 wordpressとは WordPress(ワードプレス)は、オープンソースのブログソフトウェアである。PHPで開発されており、データベース管理システムとしてMySQLを利用している(後述のプラグインよりSQLiteでの使用も可能)。単なるブログではなくコンテンツ管理システム (CMS) としてもしばしば利用されている。b2/cafelogというソフトウェアのフォーク(後継)として開発、2003年5月27日に初版がリリースされた[4]。GNU General Public License (GPL) の下で配布されている。 参考:wikip

    ZOOMと全く同じ機能をwordpressで実装した時の概算見積を真面目に考えてみる - Qiita
    delphinus35
    delphinus35 2020/06/06
    どうやらZOOMの利用もWorpress(のプラグイン開発)もやったことない人らしいので読む価値はない。でも見積を命じられるのは得てしてそんな人なんだろう。
  • nkf の代替としての StreamRelay.jar (文字コード変換) - Qiita

    java.exe -Djava.security.policy=StreamRelay.policy -jar StreamRelay.jar ⇔ StreamRelay.bat InputStream/OutputStreamにReader/Writerを被せる事で、(文字コードを含む)文字列を扱うことができるので、入力の文字コードと出力の文字コードを異なるオプション指定をすれば、文字コード変換を行う事ができる オプション 使うオプションは、 -LocalCharset -RemoteCharset 通信方向ごとに個別に設定したい場合は↓ -LocalRequestCharset -LocalResponseCharset -RemoteRequestCharset -RemoteResponseCharset レスポンスだけ文字コード変換したい。という時に使える 文字コード変換ツールと

    nkf の代替としての StreamRelay.jar (文字コード変換) - Qiita
    delphinus35
    delphinus35 2020/06/02
    なぜ Java…… スクリプト言語で書いた方が文字数短そう。
  • スクリプト言語としてみた各POSIXシェルの特徴と互換性上の注意点まとめ - Qiita

    はじめに この記事は私の主観かつ知っていることをまとめたものです。古くからのシェルの専門家とかではなくここ数年の間に必要になった時にその都度調べたものなので間違いとかもあると思います。またタイトルの通りスクリプト言語としての比較です。つまりインタラクティブシェルの機能についての比較はしていません。(そもそも使い込んでるわけじゃないので知らないです。)POSIX シェルに限定しているのも私が他のシェルを詳しく知らないからです。もし今も使われていて(もしくは開発中で)ここに書かれていない POSIX シェルがありましたらコメントで教えて下さい。(※ csh, tcsh, fish は POSIX シェルではありません。) シェルの系統は少し古いですが「What does it mean to be “sh compatible”?」に投稿されている図が詳しくてわかりやすいです。またこちら「~s

    スクリプト言語としてみた各POSIXシェルの特徴と互換性上の注意点まとめ - Qiita
    delphinus35
    delphinus35 2020/06/01
    こんなに数あんの……びっくりした。
  • Pythonの文字列が標準でf文字列になる(かも) - Qiita

    はじめに Python言語サミット2020が4月の15日、16日の2日間で開かれました。これはPython実装の開発者(家のCPythonに加えてPyPyなども)が集まる会議で、単にプレゼンし合う場というよりは言語体や標準ライブラリの現状や今後に関する議論をして合意を目指すという会議とのこと。 今年はコロナウイルス蔓延の影響で、ご多分に漏れずオンライン開催となったそうですが、2日間の議題を見るとなかなか興味深いものが並んでいます。 全ての文字列をf文字列にする CPythonのパーサーをPEGベースの物にする (C)Pythonの仮想マシンの形式仕様記述 実装非依存のC言語拡張API CPythonのドキュメンテーション保守の変革 ライトニングトーク pip, PyPI そしてパッケージングに今後何を求める? 「マルチコアPythonプロジェクトの失敗を振り返る Pythonの型導入

    Pythonの文字列が標準でf文字列になる(かも) - Qiita
    delphinus35
    delphinus35 2020/05/06
    Perlというか、bash(sh?)に回帰する流れだ
  • で、結局 #include <bits/stdc++.h> って何? - Qiita

    hakatashiです。 競プロ界では一般的なテクニックであるにも関わらず、何かと定期的に燃えがちな話題であるbits/stdc++.h。便利ではあるけど、そもそもこのファイルって何?年齢は?性別は?家族構成は?彼女はいる?調べてみました! そもそも、bits/stdc++.hって何? GNUが開発するC++の標準ライブラリの実装であるlibstdc++のプリコンパイル済みヘッダを生成するためのソースファイルです。 具体的な中身はgccのソースリポジトリのlibstdc++-v3/include/precompiled/stdc++.hから参照することができます。見ると、CおよびC++の標準ライブラリに含まれるヘッダがすべてインクルードされており、このことから「#include <bits/stdc++.h>と書くとすべての標準ライブラリを一度にインクルードできる」という性質を持ちます。

    で、結局 #include <bits/stdc++.h> って何? - Qiita
    delphinus35
    delphinus35 2020/04/10
    彼女がいるかどうかについての記載がないんだが(怒)
  • 【注意喚起】第三者のQiitaのコピー記事で飯を食っているかもしれないサイトについて... - Qiita

    見つけた タイトルをそのままGoogleで検索したら同じ記事が出てきました。 Qiitaの色んな方の記事タイトルをGoogleで検索したら全く同じタイトルの記事がやや高確率で検索上位に出てきました。 私は怪しいと思ったので、軽く調べることにしました。 そのサイト のんのん技術ブログ 怪しい 別ドメイン(←まぁ人かもしれんし...) タイトルと記事が全く同じ 投稿記事元のユーザがバラバラ →同一人物が運営しているとは思えない サイト運営者の情報不足 Aboutページ→信頼性がない プライバシーポリシー→なし お問い合わせ→連絡手段なし 広告ばっかり タイトルと記事が全く同じ 左←問題のサイト 右→Qiita プライバシーの保護のため、ぼかしています。 リンクも画像ソースも同じ。 多少デザインを加えていますね。 投稿記事元のユーザがバラバラ どれだけコピーされているか相手の記事の一部を示しま

    【注意喚起】第三者のQiitaのコピー記事で飯を食っているかもしれないサイトについて... - Qiita
    delphinus35
    delphinus35 2020/03/30
    落選。まあ該当期間中に記事書いてないんだけど。
  • VSCodeのマルチカーソル練習帳 - Qiita

    { "id" : "12345678-1234-1234-1234-123456789012", "title" : "myTitle", "content" : "myContent", "createdAt" : "2019-09-01 00:00:00", "createdUser" : "12345678-1234-1234-1234-123456789012", "updatedAt" : "2019-09-01 00:00:00", "updatedUser" : "12345678-1234-1234-1234-123456789012" } VSCodeのマルチカーソル練習帳 VSCodeのマルチカーソルをうまく使うには、3つのポイントを押さえる必要があります。 カーソル追加のポイント カーソル移動のポイント マルチカーソルを活用した編集のポイント 3つのポイントそれぞれに

    VSCodeのマルチカーソル練習帳 - Qiita
    delphinus35
    delphinus35 2020/03/15
    マルチカーソルの何がいいの?それ全部正規表現でできるよ、と言っちゃう自分はもう老害なんだろう。
  • NewSQLのコンポーネント詳解 - Qiita

    4.2.1 Shardingの手法 先ほどの表1を理解するにはSharding手法の列にあげられた各用語の理解が必要となる。 YugaByteDBのブログ「Four Data Sharding Strategies We Analyzed in Building a Distributed SQL Database」には、非常に詳しくShardingの手法が紹介されている。この記事では、大きく以下4つの分類があるという。 Algorithmic Sharding (例: Memcached/Redis) Linear Hash Sharding (例: 過去のCassandra) Consistent Hash Sharding (例: DynamoDB、Cassandra) Range Sharding (例: Spanner、HBase) 詳細は割愛するが、1つ目のアルゴリズム・シャー

    NewSQLのコンポーネント詳解 - Qiita
    delphinus35
    delphinus35 2020/03/14
    無言ブクマが増えるやつ。
  • ES2019で追加されたflatMap()の使いどころ - Qiita

    はじめに ES2019のアップデートで配列のメソッドflatMap()が追加されました。 はじめてflatMap()を見たときは「これはどんなときに使うのだろう」と思いました。 私のようにflatMap()をいつ使うのかピンと来ていない方も多いと思います。 しかし調べていくうちに色々使える事がわかったので、flatMap()の使いどころをご紹介します。 flat()とは まず事前知識として同じくES2019で追加されたflat()について説明します。 flat()は配列のメソッドで、自身の配列の次元を1つ下げたものを返します。 const example1 = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], ]; example1.flat(); // 実行結果:[1, 2, 3, 4, 5, 6, 7, 8, 9] const example2 = [ 1, 2,

    ES2019で追加されたflatMap()の使いどころ - Qiita
    delphinus35
    delphinus35 2020/03/11
    最後の例、filter いらないよ。要素を除きたいときは変数 pre をそのまま返せば良いのだから(それ reduce でできるよ派)
  • 「たけのこの里」を「きのこの山」に『正しく』自動で修正して差し上げるプログラム - Qiita

    はじめに ~素晴らしいお菓子の紹介と後発劣化品の存在~ みなさんご存知かと思いますが、「きのこの山」1という素晴らしいお菓子があります。株式会社明治様が1975年から製造・販売されているチョコレートスナック菓子です。きのこのような可愛らしいフォルムで、茎の部分がクラッカー、傘の部分がチョコレートになっています。 5年もの開発期間をかけてベストな組み合わせを試行錯誤されたとのことだけあって、持ちやすく機能的でありながら、たっぷりと使われたチョコと、程よい塩味とサクサク感のクラッカーが合わさり、至上の味わいを実現しています。このような素晴らしいお菓子を生み出してくださった明治様には当に頭が上がりません。 一方で、その爆発的ヒットを受けて4年後に**「たけのこの里」なる類似粗悪品が登場しました。こちらは開発期間が短いこともあってか、チョコは約30%減らされ、土台はボソボソと粉っぽく持ちづらいク

    「たけのこの里」を「きのこの山」に『正しく』自動で修正して差し上げるプログラム - Qiita
    delphinus35
    delphinus35 2020/02/25
    「誰だお前」なんだこのオチw
  • プログラムの可読性を上げるための条件分岐を減らす方法7個 - Qiita

    Help us understand the problem. What is going on with this article?

    プログラムの可読性を上げるための条件分岐を減らす方法7個 - Qiita
    delphinus35
    delphinus35 2020/02/18
    三項演算子はマジでクソである。Pythonの後置if .. elseの方がまだ読みやすいし、いっそのことGoのように完全に廃する方がいい。