タグ

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

タグの絞り込みを解除

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

  • JavaScript における文字コードの初歩 - 30歳からのプログラミング

    この記事では、 JavaScript で文字コードを扱う際に知っておくべき概念である Code Point や Code Unit、サロゲートペア、といったものについて説明していく。 また、具体的にそれらの概念を使ってどのようにコードを書いていくのかについても扱う。 この記事に出てくるコードの動作確認は以下の環境で行った。 Deno 1.26.0 TypeScript 4.8.3 Code Point (符号位置) プログラムで文字を表現する方法は複数あるが、 JavaScript では Unicode という方法を採用している。 Unicode ではあらゆる文字に対して一意の値を割り振ることを目的としており、この値のことを Code Point (符号位置)という。 Code Point は 16 進数の非負整数で、文章中で表記するときは接頭辞としてU+をつける。 例えばAという文字の

    JavaScript における文字コードの初歩 - 30歳からのプログラミング
  • JavaScriptのコードには、こんな書き方もある

    この記事はコードの書き方について、書き方そのものを推奨するものではなく、このような書き方も出来るという紹介です。コメント欄まで一緒にみていただくと学びになります。 ※記事はいただいたコメントを反映しましたので、当時のコメントと記事の内容に差分があります 1.破壊的メソッドを避ける 破壊的メソッドとは、元の配列の要素を変えるメソッドです。以下の例ではconstで宣言した変数numbersが、pushメソッドにより更新されています。 対応前 const numbers = [1, 2, 3] numbers.push(4) console.log(numbers) // [1, 2, 3, 4] この場合、元の配列の要素を更新するのではなく、スプレッド構文を使って新しい変数に代入します。変数はなるべくイミュータブルにしておくと、意図しない不具合やプログラムの可読性や保守性が向上します。push

    JavaScriptのコードには、こんな書き方もある
  • 開発者が知っておきたいSQLの実行モデル~アプリからデータベースへのアクセスを高速化するには?

    データベースのデータ・モデルは解決したい問題に合わせて使い分けることができ、昨今ではドキュメントやグラフなどのリレーショナル以外のモデルも注目されています。また、トランザクション系が生成した大量のデータをリアルタイムで分析するというような、性質の異なるワークロードを扱うことも求められています。これら性質の異なるデータ・モデルやワークロードを扱うにはどのような実装が必要でしょうか。この連載では、開発者の皆様がシステム・アーキテクチャやアプリケーション・コードをより洗練させるのに役立つデータベース・マネジメント・システム(DBMS)の基を振り返り、実装に合った技術の組み合わせを解説します。 第1回はデータベースにアクセスするAPIで最も広く使われているSQLという言語の実行モデルを再確認します。なぜこの言語がリレーショナル・モデルのみならず他のデータ・モデルに対しての操作にも使われるようにな

    開発者が知っておきたいSQLの実行モデル~アプリからデータベースへのアクセスを高速化するには?
  • 2のべき乗サイズの配列は危ないという話 via 行列積 - elkurin’s blog

    こんにちは。労働者です。とあるプログラムで学生さんの課題を添削していたら面白い話に出会いました。 僕は今、主に学部生向けのインターン研修的なプログラムでメンターなるものをやっています。メンターとしての仕事は、学生さんの課題へフィードバックを返し、Office Hourというセッションを毎週設けて質問受けやCSに関するトークを行うといった内容になっています。今回話題に取り上げるのはその中の課題の1つ、「行列積のプログラムを書いて時間を計測せよ」という何気ない話で、続く課題たちのいわば前座のようなものです。こういったところに沼は隠されているものですね。 担当している学生さんたちが細かい実験を行ってくれて以下のような疑問が提示されました。 「行列積の計算が N = 1024のときだけ N = 1023, 1025のときに比べて3倍遅いのはなぜ?」 配列のサイズが2のべき乗になるのは避けるべきとい

    2のべき乗サイズの配列は危ないという話 via 行列積 - elkurin’s blog
  • ついに、Webアプリでの帳票印刷のベストプラクティスを編み出しました

    この記事で紹介した手順をライブラリ化して公開しました🎉 こちらの別記事 で使い方など詳しくご紹介していますので、ぜひご参照ください! はじめに 言い切りタイトルすみません 僕を含む一定数の人にとって現時点でのベストプラクティスとなりうる手法という意味で紹介しています 極めてシビアな帳票出力の世界にいる人から見ると使い物にならない内容かもしれないと思います 帳票印刷の世界では SVF というサービスが有名らしいです。が、こういった外部サービスは使わずに自力で実装するというのがこの記事の前提です 動的に明細行の数が増減する連票はこの記事の解説では考慮していませんが、追加で実装するのはそれほど難しくないということは読んでいただければ分かるかなと思います 結論から 僕が考える現時点でのWebアプリでの帳票印刷のベストプラクティスは、 Adobe XD や Figma で帳票のレイアウトをデザイン

    ついに、Webアプリでの帳票印刷のベストプラクティスを編み出しました
  • 常駐型PowerShellプログラムをタスクトレイに入れる

    概要 下記のような構造を持つ常駐型のPowerShellプログラム(例えばこちらのスクリプトなど)が、(最小化しても)常にタスクバー上に表示されていると目障りなのでタスクトレイ(正式には"通知領域")に入れます。 実装 以下のソースを対象のスクリプト(拡張子 .ps1)の先頭部分に追加(埋め込み)し、実行(右クリックして「PowerShellで実行」)することでタスクトレイの中に入れることができます。最後のコメント行は削除しないでください(2桁目の"!"が重要)。 なお、対象スクリプトには引数がなく、したがってparam文を持たないものとします(常駐型なら少しの工夫によりそのような形式で書ける筈)。 ※こちらの記事を参考にしました。 #@Powershell -NoP -W Hidden -C "$PSCP='%~f0';$PSSR='%~dp0'.TrimEnd('\');&([Scri

    常駐型PowerShellプログラムをタスクトレイに入れる
  • 更新頻度の高いファイルの自動世代管理 - Qiita

    #目的 よく更新するファイルを、更新日時を名前に付して自動的にコピー(バックアップ)し、世代管理します。 #環境 OS : Windows 7 以降 PowerShell: Version 3 以降 #使用方法 タスクスケジューラやスタートアップに登録して常時実行したままの状態にします。 #コード PowerShellスクリプトですが、Windows バッチファイルとして実行できる特殊な構造になっています。PowerShellスクリプトとして実行するには、1行目をコメントアウトまたは削除して拡張子を.ps1としてファイルに保存してください。 特定の1ファイルのみを対象とするスクリプト @PowerShell -NoP -C "&([ScriptBlock]::Create((Get-Content '%~f0'|?{$_.ReadCount -gt 1}|Out-String)))" &

    更新頻度の高いファイルの自動世代管理 - Qiita
  • CS50 for Japanese: コンピュータサイエンスの入門 – 当ウェブサイトは、Creative Commons ライセンスに基づいて管理されています。

    お知らせ: 2022/9/1 CS50 を活用した非営利/協賛企業による「コロナ学生支援」プロジェクトを実施中 ▼ 学生の方へ:CS50 の学習(履修証明書の取得)を一緒に取り組むプロジェクト CS50日語版の翻訳コントリビューターである CODEGYM が主催する、非営利/無償のプロジェクト「CODEGYM Academy (外部リンク)」は、昨年に続き2022年度(春/秋)も、キャリア選択を控えた学生に対し、以下の企業の協賛により無償で17週間のプログラミング教育カリキュラムを提供します。 CODEGYM Academy 協賛企業(2022年) https://codegym.jp/academy/ 今年度のエントリーは締め切りました — ようこそ! このページは、ハーバード大学 CS50 の日語版翻訳プロジェクトのページです。当サイトのドメインに掲載されているコンテンツは、Cre

  • 相次ぐ法案ミス、「可視化法学」プログラマーが指摘する「スパゲティプログラム」的複雑さ - 弁護士ドットコムニュース

    相次ぐ法案ミス、「可視化法学」プログラマーが指摘する「スパゲティプログラム」的複雑さ - 弁護士ドットコムニュース
  • コマンドプロンプトからPowerShellに乗り換えるための小さな本 - Qiita

    2015年5月 初版 2017年11月 第2版 見やすく編集。 内容 はじめに 2 使い方 2 実行ポリシーの変更 2 モジュール用ディレクトリの作成とプロファイル 3 PowerShellの操作方法 4 基的なコマンドレット 5 PowerShellスクリプト 6 コマンドレット 6 文字列の表示 6 コマンドライン引数 6 スクリプトの終了 7 変数 7 配列 7 連想配列 8 演算子 8 関数 9 オブジェクト 9 パイプラインとリダイレクト 10 .NET Framework の利用 10 COMの利用 11 既存のスクリプトの利用 11 応用例 12 ショートカットの一括変更 12 CSVファイルの作成 13 ゴミ箱へファイルを捨てる 14 Thumbs.dbの一括削除 14 フォルダのサイズ 15 はじめに Windowsでコマンド操作と言えば伝統的にコマンドプロンプトが使わ

    コマンドプロンプトからPowerShellに乗り換えるための小さな本 - Qiita
  • https://qiita.com/dairappa/items/5e954b27b81c646435f3

    伏線回収です。 批判されてるのは書き方もそうだけど、一部「ダサい」「時代遅れ」のみで非難しているようなルールがあるからでしょ。なんで駄目なのかを考えないで伝えたら文句言われるのは当たり前。私も総論は賛成だし皆もそう思ってるだからこそ200LGTM行ってるわけで https://t.co/dCw5Q9ffLY — dairappa🧲 (@dairappa) February 21, 2021 TL;DR 当該記事は総論賛成だけれど、「古い」「ダサい」で物事は変えられない 最近の環境の変化、コードを書いた人が持っている暗黙の前提なども考えないといけない 単純にコードを変えるだけでなく、それに合わせて環境やプロセスを整える必要がある。そこはみんなそれぞれ頑張れ。 まずは分類 9個の「古い書き方」が挙げられていますが、実はいくつかに分類できるかと思います。私が分けるなら以下のような感じです(いく

    https://qiita.com/dairappa/items/5e954b27b81c646435f3
  • O'Reilly Online Learningで日本語の本を読む方法 - oinume journal

    O'ReillyのOnline Learning(旧O'Reilly Safari Books Online)は月額$49でオライリーのや動画などが見放題になるエンジニア向けのサブスクを提供している。以前は英語しか読めなかったが、いつからか日語のも読めるようになっていたのでメモ。 www.oreilly.com Sign Inして、左のメニューのSettingsをクリックするとLanguage Preferencesがあるので、ここでJapaneseにチェックを入れて下のUpdate Preferencesをクリックして保存する。 これでHomeに行き、例えばGraphQLで検索すると検索結果の画面でBooksのタブがあるのでこれを選択する。そうするとLanguageの選択ができるので、ここでJapaneseを選ぶと日語のだけに絞ることができる。(手っ取り早く検索結果を表示し

    O'Reilly Online Learningで日本語の本を読む方法 - oinume journal
  • UWPからデスクトップアプリに回帰すべく、MSが送り出した「Project REUNION」 (1/2)

    自分で分断しちゃったUWPとデスクトップアプリの両環境を 再度結合しようとしているマイクロソフト マイクロソフトはオンラインカンファレンスのBuild Windowsで「Project REUNION」を発表した。かなりプログラミング寄りの話なので、今回は誤解を恐れず、大胆な省略と例えを使って解説する。 「Project REUNION」って、なんかすごいもののようだが、実際には大したことはない。というのも、そもそもマイクロソフトがWindows 8でデスクトップ環境とモダン環境を“分断”しなければ、REUNIONは必要なかったからだ。つまり、自分で2つに分けちゃっておきながら、今になって再結合って言い出しているわけで、例えて言えば、「花瓶割っちゃったので接着剤で付けました」的な話である。 マイクロソフトがUWPからデスクトップアプリ(Win32アプリ)に回帰しようとしているという話は、

    UWPからデスクトップアプリに回帰すべく、MSが送り出した「Project REUNION」 (1/2)
  • VB.NET/C#でメモリーを4GBまで使用可能にする「LAAオプション」を設定する方法 | ALIS

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

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

    なぜ我々は頑なにforを避けるのか - Qiita
  • 私が選ぶ2015年の”新しい”Pythonモジュール トップ5 | POSTD

    最近、このモジュールをに紹介したところ、そのシンプルさと実用性に驚いていました。 joblib joblibの存在は以前から知ってはいたものの、実際のところはよく理解しておらず、いろいろな機能を寄せ集めたようなモジュールだと思っていました。まあ、その印象は今もあまり変わりませんが、実は非常に便利なモジュールだったのです。私は Flowminder の同僚から再度joblibを勧められて、このモジュールをデータ分析用のコードに幅広く使用しました。では、その機能について紹介しましょう。joblibは大きく分けて、 キャッシング 、 並列化 、 永続化 (データの保存と読み込み)の3つの機能から成ります。実を言うと、私はまだ並列プログラミングの機能は使ったことがないのですが、あとの2つの機能は頻繁に使ってきました。 キャッシング機能とは、シンプルなデコレータを使って、関数を簡単に”メモ化”する

    私が選ぶ2015年の”新しい”Pythonモジュール トップ5 | POSTD
  • 各ブラウザのキーコード表[JavaScript]

    表中のセルの色は値に応じて変えている。 何も数値が書かれていない欄は何も値がなかった、もしくは取得できなかったことを示す。 キーコードの取得は以下の関数で行った。 function keyCode(e){ if(document.all) return e.keyCode; else if(document.getElementById) return (e.keyCode)? e.keyCode: e.charCode; else if(document.layers) return e.which; } ファンクションキーなど何かのショートカットキーに割り当てられ、うまくキーコードが拾えないキーは、可能ならばそのイベントをキャンセルしてキーコードを取得している。 データの取得は全てWindowsXP上、JP106キーボードで行っている。

  • staticおじさん達に伝えたい、手続き指向とオブジェクト指向の再利用の考え方の違いについて - 達人プログラマーを目指して

    何が良いプログラムかという点はもちろん人やコンテキストによって異なりますが、少なくともプログラマーとしての私の信念としては、 機能拡張や変更が容易なプログラム 単体試験によって正しく動作することの検証が容易なプログラム どういった内容が記述されているか理解しやすいプログラム といったものこそ、「品質の高い」プログラムが持つべき性質として、まず真っ先に挙げるべき事項であると考えています。もちろん、前提として顧客の要件に従うということは大切なことです。しかし、一般に要件は長期にわたって変更されるものですし、使い捨てのプログラムを除けば、プログラムを長期にわたって保守するコストという点も見過ごすべきではありません。したがって、ユーザーの目には触れない上記の性質をもっと重視すべきだと思うのです。 DRYの原理 上記のような性質を満たすプログラムを作る上で大切になってくる原理として、DRYの原理とい

    staticおじさん達に伝えたい、手続き指向とオブジェクト指向の再利用の考え方の違いについて - 達人プログラマーを目指して
  • アパートメントモデルと、.NETのSTAThreadAttribute - Bug Catharsis

    アーパートメントモデルの種類COMコンポーネント*1は、大きくシングルスレッドアパートメントモデル(STA)と マルチスレッドアパートメントモデル(MTA)に分けることができる。 レンタルスレッドアパートメントモデル(RTA)というのもあるようですが、詳細不明のため割愛します。 ■シングルスレッドアパートメント(Single Thread Apartment) シングルスレッドアパートメントは1つのスレッドから構成されているので、 シングルスレッドアパートメントの中に存在しているすべての COM オブジェクトは、 そのアパートメントに属する1つのスレッドからのメソッド呼び出ししか受け取ることができません。 シングルスレッドアパートメントの中の COM オブジェクトに対するすべてのメソッド呼び出しは、 そのシングルスレッドアパートメントのスレッドのウィンドウ メッセージ キューによって同期さ

    アパートメントモデルと、.NETのSTAThreadAttribute - Bug Catharsis
  • 正規表現:悪い表現、いい表現、最良の表現 | POSTD

    わずかな文字がいかにしてパフォーマンスに大きな違いを生めるかというお話 正規表現は、私たち開発者がことあるごとに駆使する呪文のようなものですが、私たちはそれをどんな時も巧みに使いこなしていると言えるでしょうか。正規表現は繊細で精密な言語です。入念な慎重さで記述してやれば、ボウリングで一瞬にして完璧なストライクを取るような強力なテキストとなり得ます。 しかし、正規表現が精密さに欠ける状態で投げ出されると、さながら酔っ払いがよろよろとつまずきながらテキストの上を歩くがごとく、そのボールはぎこちなくボウリングのレーンを転がり、ピンを1つか2つ倒すだけで終わってしまうのです。 これら2つの正規表現の違いは何なのか。何がいい表現と悪い表現を分けるのか。正規表現に素晴らしい力を与えるメカニズムを、この投稿で明かしてみようと思います。効果的な表現とそうでない表現との大きな違いをきっと分かってもらえるはず

    正規表現:悪い表現、いい表現、最良の表現 | POSTD