タグ

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

  • Stop abusing .map()!

  • \と¥の問題 - 立命館大学情報理工学部セキュリティ・ネットワークコース プログラミング言語サポートページ

    バックスラッシュ\を入力する時に円記号¥に文字化けが起きる理由 プログラムのソースプログラムは(LaTeXのソースファイルやWebページのHTMLファイル等と同様に)テキストファイル(教科書ではテキスト形式と呼ばれています。プレーンテキスト(plain text)とも呼ばれることがあります)というファイル形式で書かれます。このテキストファイルはどのようなOSでも必ずサポートされている最も基的なファイル形式であり、実体は1バイトを単位として文字コードで表現されたデータが先頭から順に並んでいるだけのファイルです。 その文字コードは歴史的にはさまざまなものがありましたが、次第にアメリカで定められたASCIIコードが主流になり、世界中で使われるようになりました。これが国際的な規格になったものがISO/IEC 646です。これらは7ビットの文字コードなので2の7乗つまり128種類の文字が表現でき、

    \と¥の問題 - 立命館大学情報理工学部セキュリティ・ネットワークコース プログラミング言語サポートページ
  • Laravel + Vue.jsでGoogleカレンダーのクローンを作ろう!!【Laravel8対応】準備編|Yuu's Memo

    皆さんこんにちは!! 今日から何回かに分けて、Laravel8とVue.jsを使用して「スケジュール管理アプリ」を作成したいと思います。 簡単に言えば、「Googleカレンダーのクローン」を作成していくチュートリアルです。 WEBアプリケーションにスケジュール管理機能を組み込む場合、「FullCalendar」を利用することが多いと思いますが、今回はFullCalendarなどは使用しません。 LaravelVue.jsは非常に人気が高いので、多くの解説記事やチュートリアルが出ています。 ただ、どれも小さなサンプルを作ったり、解説が断片的で、実際の開発に活かせないものが多いです。 今回から皆さんと作る「Google Calendar Clone」は、LaravelVueを触ったことがない方には少し難しいかも知れませんが、中規模のアプリケーションを開発することで、LaravelVue.

    Laravel + Vue.jsでGoogleカレンダーのクローンを作ろう!!【Laravel8対応】準備編|Yuu's Memo
  • シェルスクリプトを書くのをやめる - blog.8-p.info

    今年から、できるだけシェルスクリプトを書くのをやめようとしている。私が毎日 zsh に打ち込んでいるのも広義のシェルスクリプトだし、自分用の雑なスクリプトを書くことはあるけれど、チームの他の人も将来に使ったり改変したりするようなものは、なるだけ他の言語を使っている。 シェルスクリプトを書くのは難しいし、その難しさは、学ぶに値しないといったら言い過ぎかもしれないけれど、2021年に初心者が取り組むべき問題とは言い難いと思う。 シェルは悪いプログラミング言語である Bash Strict Mode とかを使ってみても、シェルスクリプトには落とし穴が多すぎる。自分で書いたものを自分で使っている分には大丈夫なのだけど、スクリプトがチーム内で使われるようになると、考慮していなかったところ、例えばファイル名に空白文字が含まれるとか、そういうレベルの微妙なところで、ちゃんと書かれていないスクリプトは壊れ

  • 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

  • 記者に「プログラミングのスキル」って必要なの?ちなみにNHKニュースの画像生成も記者がコードを書いてます|NHK取材ノート

    記者に「プログラミングのスキル」って必要なの?ちなみにNHKニュースの画像生成も記者がコードを書いてます 新型コロナウイルスの新規感染者の数を示す日地図に、毎日厳しい視線を送る男がいる。 コロナの感染拡大の今後が懸念されるが、地図がきちんと描画されているかも気になってしまう。 それはこの「新型コロナ感染者数マップ作画システム」をプログラミングしたのが彼だから。 ちなみに彼は技術部局のエンジニアではなく、いつもはテレビで解説している記者だったりする。 このシステム、記者が作りましたこんにちは、NHK解説委員の三輪誠司といいます。専門はITやサイバーセキュリティで、主に「シブ5時」や「くらし解説」などでニュースの解説を担当しています。 新型コロナウイルスの「感染者数マップ作画システム」は、1週間で作成しました。 言語はJava、地図はSVGで、ブラウザの画面をそのまま放送で使っています。SV

    記者に「プログラミングのスキル」って必要なの?ちなみにNHKニュースの画像生成も記者がコードを書いてます|NHK取材ノート
  • 出来るプログラマーやエンジニアの方でも「何をやっているか分からない」「何が分からないか分からない」状態に陥りますか?その時は、どの様にして対処・解決しますか?

    回答 (11件中の1件目) 私は出来るエンジニアじゃないせいか、何かちょっと経験の浅い分野のことをやると「何をやっているか分からない」「何が分からないか分からない」状態に陥ります。それで、Stack Overflowで調べたコード片をコピペして動かすことがあります。最近はGradleのビルドスクリプトの書き方が当に何も分からなくてStack Overflowに世話になりました。 ただしそういう状態から脱するための対処法はそれなりに身につけていて、必要であれば遠からず解決できるので、その手順を説明しますね。 まずは試してみて動かすこと、次に概念を体系的に理解すること、それから実例と利...

    出来るプログラマーやエンジニアの方でも「何をやっているか分からない」「何が分からないか分からない」状態に陥りますか?その時は、どの様にして対処・解決しますか?
  • プログラマによるプログラミングのためのBGMなど、仕事や勉強の邪魔にならない無料で使えそうなBGM集。2021年版

    プログラマによるプログラミングのためのBGMなど、仕事や勉強の邪魔にならない無料で使えそうなBGM集。2021年版 在宅で仕事や勉強をしている時間が増えてくると、ずっと無音だと寂しい気がして、できればあまり気にならないBGMや環境音があるといいなあ、と思ったことはありませんか? 最近流行しているYouTubeでの24時間365日ライブ配信のLoFiチャンネルにはそうしたニーズに応えてか、プログラマがプログラミングのためのBGMを配信しているものもあります。 YouTubeの再生には動画広告が付き物ですが、ライブ配信では最初に広告が再生されると、あとは広告なしでずっと配信が続くため(少なくとも記事執筆時点では)、BGMとして使うのにぴったりです。 この記事ではそうしたYouTubeの配信を中心に、仕事や勉強のBGMとして使えそうなサービスを紹介していきましょう。 いわゆるLoFiチャンネルと

    プログラマによるプログラミングのためのBGMなど、仕事や勉強の邪魔にならない無料で使えそうなBGM集。2021年版
  • Scratchのここが嫌いだ(1) - ビスケットのあれこれ

    今までは,一般人に対するプログラミング教育の重要性を共に説いて行く仲ということで,表立ってScratchの批判はして来なかったのですが,安倍首相までがプログラミング教育を言い出したので,そろそろ良いかと思って,ちょっと書いておきます.(1)となっているのは,この先何回続くかわからないから. コンピュータ科学を専攻している人は,この先を読む前に自分でScratchとViscuitを比較してみるのもよいかと思います.良い勉強になるはずです. まず,こういうツールには(特に子供向けと言っているツール)伝えたいメッセージというのが必須です. 僕はViscuitを作ったときに子供たちに伝えたかったメッセージは コンピュータは君たちのものだよ こんなに可能性があるんだよ ということでした.この二つをかけ算すると,この可能性を切り開くのは君たちなんだよ,ということです. それと,逆にこれだけは伝えたくな

    Scratchのここが嫌いだ(1) - ビスケットのあれこれ
  • Binary search with modern processors

    第16回 StringBeginners での発表資料

    Binary search with modern processors
  • プログラマの抱いている名前についての誤謬

    パトリック・ミッケンジー(Patrick McKenzie)さんのブログ・エントリ、 “Falsehoods Programmers Believe About Names” の日語訳です。翻訳の公開を快諾してくださったミッケンジーさんに感謝します。 公開: 2012-02-22 Posted on June 17, 2010 by Patrick きょう、ジョン・グレアム゠カミング(John Graham-Cumming)が、正しくない文字が含まれているといって彼のラスト・ネームを受け付けないコンピュータ・システムへの不満の記事を書いていた。もちろん彼の名前に「正しくない」ところなどない。当人の申し出たものが当人を識別するものとしては相応しいのであって、定義からして名前とはそういうものである。このことにジョンは当然ながらいらだったし、そうなるのもきわめて正当なことだ。定義からすれば事実

  • ペアプログラミングはXPの5つの価値をエクストリームにする - Uzabase for Engineers

    SaaS Product Team の野口です。 以前にもいくつかの記事で触れたように、SaaS Product Team では XP(エクストリーム・プログラミング)をベースとしたチーム開発に取り組んでおり、ほぼ全ての作業をペアで行っています。*1 かく言う私もこのチームに入ってから 1 年以上の間 *2、日々ペアプログラミングに取り組む中でわかってきたことがあるので、この記事で共有したいと思います。 XP はうまくいくことを極限(エクストリーム)まで推し進めることから生まれた ペアプログラミングは XP の 5 つの価値を極限まで推し進める 注記 コミュニケーション シンプリシティ フィードバック 勇気 リスペクト 旅は続く 一緒にペアプログラミングと XP を探求しませんか? XP はうまくいくことを極限(エクストリーム)まで推し進めることから生まれた Kent Beck の『エクス

    ペアプログラミングはXPの5つの価値をエクストリームにする - Uzabase for Engineers
  • ラムダ式でStrategyパターンで実装されたコードをシンプルにする ~ そこから見えてくるストラテジオブジェクトの本質

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    ラムダ式でStrategyパターンで実装されたコードをシンプルにする ~ そこから見えてくるストラテジオブジェクトの本質
  • ソフゲート - Design

    グラデーション配色の計算方法 配色のグラデーションを簡単な計算で求める場合、用途によって2種類の計算方法があります。1つめは色のバランスを保持したまま変更する「等比計算」、2つめは色の違いを保持したまま変更する「等差計算」で、このページでは2種類の算出方法と違いについて考えてみます。 等比計算の算出方法 グラデーション配色を行う場合、「徐々に明るくする」「徐々に暗くする」「徐々に目的色にする」の3種類が考えられますが、「明るく」→「白」、「暗く」→「黒」とすれば、すべて「徐々に目的色にする」事になります。このため、「基色」から「目的色」への中間色を求める場合は、配色値をR・G・Bに分解して以下の計算を行います。 基色を「R=Ra, G=Ga, B=Ba」、目的色を「R=Rb, G=Gb, B=Bb」とする。 この際の「X%」にあたる中間色「R=R(X), G=G(X), B=B(X)」

  • 「娘に情報が古いと指摘されます」 老舗サイト「とほほのWWW入門」の管理人ってどんな人? | 五反田計画

    90年代後半から2000年代にウェブ制作を経験した者なら『とほほのWWW入門』と聞いて、ピンと来ない人はいないだろう。同サイトは、HTMLJavaScriptRubyPythonなどの基礎知識が学べる、ウェブ制作初心者にとってはバイブルのような、とてもありがたい存在だ。サイトが開設されたのは1996年。国内でインターネットが普及し始めた初期からある老舗サイトで、お世話になった人も多いはずだ。 2016年10月を最後に更新がされていないようだが、それでも20年間コンテンツを出し続けるのは、かなり大変なことだったのではないか。同サイトの管理人・杜甫々(とほほ)さんは、いったいどのような人物なのか。サイトを開設したきっかけやインターネット初期の空気感などについて、話を聞いた。 「とほほのWWW入門」管理人・杜甫々さんとは? ――今回は取材に応じていただき、ありがとうございます。杜甫々さんは

    「娘に情報が古いと指摘されます」 老舗サイト「とほほのWWW入門」の管理人ってどんな人? | 五反田計画
  • たとえばなしで見る誇張の少ない「並行」と「並列」

    まえおき 参考 前回の記事では「並行の間違った理解を正すため」に分かりやすさを優先し若干(相当)誇張を入れて「間違いとは言いきれないけれども必ずしも正しいとも言えない」形で並行計算と並列計算を定義しました。 特に並列計算については記事の題ではなかったために相当に雑な定義となっていました。その件に関していくらか指摘もありましたので、ある種の責任を果たすために前回よりももう少し真面目にその差異を示しておこうと思います。 ただ読み始める前に、大前提として並行計算と並列計算という言葉は使う箇所、すなわち必要とされるシーンが異なっているために差異を考えるという行為それ事態にあまり意味がありません。見た目や一部の性質は似ていても必要とされるシーンは大きく異なる言葉なんだということを念頭に置いた上で以下を読んでください。 ちなみに私はちょっとハードウェアにも詳しいソフトウェアエンジニアという視点を持っ

    たとえばなしで見る誇張の少ない「並行」と「並列」
  • 君たちの「並行」の理解は間違ってる

    TL;DR 並行計算の理解を間違ってる人が多いので正したい 並行計算=同時に実行すること 並列計算≒同等のタスクを並行計算すること もうちょっとちゃんと書いたフォローアップ記事も合わせて、お時間が許すようであればお読みください。 状況 並列と並行 / 多言語からみるマルチコアの活かし方に見られるように並行(concurrent)とは「複数の処理を順番に実行すること」とする誤った記述を、この記事に限らずチラホラ目にします。 大事になことなので繰り返しますが、間違った記述を含んでいるのはこの記事だけに限りません。 そのような誤った記述を見かけるたびに「ああこの人も間違ってるのか」と諦観を抱くだけというのもあまりに非生産的なので、間違ってますよとポインタとして示せるように簡単な読み物にしたものがこの記事です。 事実 計算=computingの分野においては並行=concurrentと並列=par

    君たちの「並行」の理解は間違ってる
  • プログラミング初心者のための JavaScript と Node.js の歴史、それを踏まえた勉強方法

    プログラミング初心者のための JavaScript と Node.js の歴史、それを踏まえた勉強方法 2020年でJavaScript学ぶならきっとブラウザ向けJSガン無視していきなり初手node.js(ただし暫く何も足さない)がいいんじゃないかというメモ - min.t (ミント) Node.js を教えることについて、自分は賛成なんですが、その学習パスが整理されてないなと思っていたのと、学習パスがなぜ整理されていないかについて書きます。 はじめに 問題意識として、今のプログラミングスクールや独学勢が Ruby on Rails に偏っていて、 Node.js の人間としては、歯がゆく感じているんですが、実際 Node.js を教えるとしても問題も多いと認識しています。 歴史の話は、当時の実情や政治を省いて結果だけを書きます。具体的には第一次ブラウザ戦争、第二次ブラウザ戦争を言及しませ

    プログラミング初心者のための JavaScript と Node.js の歴史、それを踏まえた勉強方法
  • ソフトウェアテストのスムーズな導入

    はじめに 第1回で解説したように、ソフトウェアテストによって開発を効率良く進めることはできますが、その取り入れ方も効果的なほうが良いでしょう。 そこで今回は、テスト自体による効果ではなく、テストの効果的な取り入れ方について解説します。 ソフトウェアテストの2つのアプローチ ソフトウェアテストだけに限りませんが、何か活動を起こすときには「継続のしやすさ」が重要になります。現時点で皆さんが実施中の活動についてもそうですが、ソフトウェアテストに関する活動を起こし継続させていく際に障害が起きやすい始め方はできるだけ避けましょう。 筆者がこれまでの経験から見てきた障害で多かったものは、次の2つです。 興味がないものを無理やりやっておりモチベーションが上がらない マネジメントや決裁権を持っている人間から反対されて止められてしまう これらは継続のしやすさを下げるものです。筆者はそれぞれに対するアプローチ

    ソフトウェアテストのスムーズな導入
  • 開発者としての「テスト自動化」の基礎

    はじめに 連載は、開発を加速・効率化させるソフトウェアテストをテーマに解説を進めています。前回の解説で、読者の方々はソフトウェアテストの新たな分類やそのアプローチを知ることができたのではないでしょうか。 今回は、「開発者としての」という視点で「テスト自動化」の実践に向けた基を解説します。なお、ここではテスト自動化を下記のように定義することとします。 「ソフトウェアを使って、テストマネジメント、テスト設計、テスト実行、結果チェックなどのテスト活動の実行や支援をすること(ソフトウェアテスト標準用語集(日語版)Version 2.3.J02)」 その上で、皆さんが開発者にとってのテスト自動化を知り、テスト自動化をどのように実施するかチームで議論・決められるようになることを期待しています。 開発者にとってのテスト自動化のメリット テスト自動化とは人手で行うことをソフトウェアで実施することにな

    開発者としての「テスト自動化」の基礎