タグ

Programmingとprogrammingに関するt-satのブックマーク (500)

  • カロリーメイトリキッドのQuineを書きました - まめめも

    縁あって、カロリーメイトリキッドのプロモーション用にちょっとした Ruby プログラムを書かせてもらいました。 www.otsuka.co.jp ↑のリンクを開いて、cd .Quine したところにある CML_quine.rb がそれです。 cat CML_quine.rb とすると中身が見えます。ruby CML_quine.rb すると動きます。 CalorieMate-Liquid-Quine 実行してみましたか?サイト上で気楽に実行できるので、ぜひ試してみてください。 これがどういうプログラムなのか、簡単に解説しておきます *1 。 ローカルでの遊び方 サイト上で ruby CML_quine.rb をするだけでも楽しめますが、自分のパソコンに保存するとより楽しめます。 まず、cat CML_quine.rb した中身をまるごとコピーしてください。 n=2;で始まる行の頭から、'

    カロリーメイトリキッドのQuineを書きました - まめめも
    t-sat
    t-sat 2020/08/05
    内容はともかく、RubyとQuineという単語で、誰が書いたのかは察しがついた。
  • 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)
    t-sat
    t-sat 2020/05/24
    ユーザとしてはまずグラフィカルシェルをreunionしてほしいわけだが。
  • 0から始めるNode.jsパフォーマンスチューニング

    近年の Node.js は API のサーバとしてはもちろん、Nuxt.js や Next.js といった SSR や BFF などフロントエンドのためのバックエンド言語としての人気が高まっています。 フロントエンドエンジニアがコンテキストスイッチ少なくバックエンドの整備ができることは非常に大きな利点です。 ですが、フロントエンド(ブラウザ側)とバックエンド(サーバ側)ではパフォーマンスチューニングで見るべき点が大きく違います。 しかし Node.js アプリケーションのパフォーマンスイシューの見つけ方などがまとまっている資料は少ないです。 そこで、記事ではフロントエンドエンジニアが Node.js でパフォーマンスイシューを見つけ、改善するため自分が普段パフォーマンスチューニングを依頼されているときにみている基礎的なポイトをまとめていきます。 1. 計測ステップlink Node.js

    0から始めるNode.jsパフォーマンスチューニング
  • Kyoto University Research Information Repository: プログラミング演習 Python 2019

    書はCC-BY-NC-NDライセンスによって許諾されています。ライセンスの内容を知りたい方はhttps://creativecommons.org/licenses/by-nc-nd/4.0/deed.ja でご確認ください。

  • コンピュータサイエンスが気になるプログラマに勧める書籍リスト - Rubyist Magazine 第61号 巻頭言

    コンピュータサイエンスが気になるプログラマに勧める書籍リスト Rubyist Magazine 第 61 号をお届けします。 (今回は内容に合わせて文体を変えております。ご了承ください。) さて、コンピュータサイエンス(以下「CS」)は知らないけど日々プログラミングしている、というプログラマの方はたくさんいらっしゃるかと思います。 そんな方でも、ふとCSを知ってる方がいいのかなとか、CSも知らないとまずいのかな……などと思い、改めて勉強してみたいけどとっつきが悪いとか、うっかり手にとったCSの教科書が何を言ってるかさっぱりで10秒で閉じた、という方もいらっしゃるかと思います。 それでもCSが気になるので、「腰を入れて勉強をする前に、どういうことをやってるのか眺めてみたい」くらいの温度感の方向けに、CSに隣接するジャンルで、職業プログラマや趣味プログラマの人なら読めそうな書籍のリストを作っ

  • Microsoft、ソフトの動作を理解するコード分析ツールをオープンソースで公開

    Microsoftはアプリケーションやソフトウェア開発においてオープンソース・ソフトウェアを利用している。既存のオープンソース・ソフトウェアライブラリやコンポーネントを使用することで、開発時間を短縮する狙いがあるとされている。同社はこうした取り組みを円滑に進めるために、利用するライブラリやコンポーネントが何を行うものかを分析するツールを開発して利用している。 1月16日(米国時間)、Microsoftは「Introducing Microsoft Application Inspector」において、そのツール「Microsoft Application Inspector」をオープンソース・ソフトウェアとして公開したと伝えた。MITライセンスの下で提供されている。 Microsoft Application Inspectorによる分析結果のレポートサンプル - 資料: Microsof

    Microsoft、ソフトの動作を理解するコード分析ツールをオープンソースで公開
  • 2つのことを同時に学ばない

    こんにちは、ある人のところてんです。プロシンという情報処理学会の<s>新年会</s>学会にかれこれ15年くらい参加しているわけですが、稿はそこで水島さんと話をした「2つのことを同時に学ばない」という考え方についてのまとめになります。 初手レイトレーシング「2つのことを同時に学ばない」というのは私が発した言葉ですが、この言葉には私の友人の影響があります。 私の友人に「新しいプログラミング言語を覚える際には、とりあえずレイトレーシングを書いてみる」と言うやつがいます。 彼にとってはレイトレーシングのコードは、資料を何も調べずとも書けるそこそこに複雑なコードという位置づけのようです。 そのため、彼にとってはレイトレーシングを新しい言語で書くことで、言語仕様にのみ問題を絞って勉強することができるわけです。仮に実行結果がマズかったとしても、それは言語仕様の理解の問題であり、アルゴリズム自体に問題な

    2つのことを同時に学ばない
  • N予備校プログラミング入門コースで学べること - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 私 is 誰 今年の7月にドワンゴの教育事業部に異動し、N予備校でプログラミング講師をやることになりました。 現在は週2回ニコ生やN予備校上にてプログラミング入門コースの授業放送をしています。 ドワンゴ自体は7年目となり、ニコニコ動画の開発を4年、エンジニア教育エンジニア採用を2年ほどやってきました。 この記事で書きたいこと 現部署に異動後、教材のインプットを兼ねて『N予備校プログラミング入門コース』を履修したのですが、明らかに難易度が僕の想像した "入門コース" から外れたガチ編成になっていて衝撃を受けたことが記事を書こうと思ったき

    N予備校プログラミング入門コースで学べること - Qiita
  • .ogg ファイルのメタデータを読んでみた - ジンジャー研究室

    .ogg ファイルのメタデータを確認する作業が発生したので、ブラウザでディレクトリ内の .ogg ファイルのリストを読めるようにしてみた(TypeScript)。 背景 友達ゲームBGM を提供しました。 スマホゲーム「スノーマン・ストーリー」の音楽を担当しました!全 18 曲こちらで聴けます! https://t.co/AXDOjWsnUf #スノーマンストーリー #SnowmanStory— Yosuke Torii / ジンジャー (@jinjor) 2019年12月13日 ゲームに使用する ogg ファイルにループ位置指定のためのメタデータを埋め込むんだけど、どのファイルにメタデータを入れたのかが分からなくなるのと、変数名のタイポが不安だったので一覧でさっと確認したくなった。というのが経緯。 ちなみに、仕様は RPG ツクールのを踏襲しているらしいので、多分同じことで困ってい

    .ogg ファイルのメタデータを読んでみた - ジンジャー研究室
  • 現代のコンピュータに�おける自作OS事情

    現代のコンピュータにおける 自作OS事情 2019-06-29 hikalium @ Hackers Champloo #hcmpl

    現代のコンピュータに�おける自作OS事情
  • ソフトウェアアーキテクチャの歴史 - tasuwo's notes

    改めて ソフトウェアアーキテクチャ GUI のアーキテクチャの歴史を調べてみたくなった。来の MVC とは何か?何が正しくて何が間違っているか?も重要なのだが、それよりは、なぜそれが生まれたのか?何を解決しようとしたのか?どのような問題点が生まれて、それをどう工夫して解決・発展してきたのか?を知りたい。しかし、そういうことがまとまっている日語の情報が少ないので、自分で色々かいつまんでメモしておく。 MVC の原点は 70 年代にまで遡り、実装としては Smalltalk-80 のクラスライブラリとして実装されたのが最初だと思われる。しかし、後世に大きな影響を及ぼしたポイントをいくつか持ちつつも、当時のアーキテクチャが現代においてそのまま利用されているケースはほぼないといっていい。したがって、単に MVC といった時には大抵最初期の MVC を指すことは少なく、区別するために最初期の M

    ソフトウェアアーキテクチャの歴史 - tasuwo's notes
  • パイプライン演算子の歴史 - まめめも

    (You can read this article in English.) Ruby の開発版にパイプライン演算子(pipeline operator)が試験的に導入されましたが、いろいろあってプチ炎上になっています(チケット)。 せっかくの機会なので、パイプライン演算子の歴史を調べてみました。付け焼き刃の調査なので、間違ってたら教えてください。 パイプライン演算子とは こんな感じのものです。 x |> f |> g |> h # h(g(f(x))) と同じ意味 h(g(f(x))) という関数適用の式は、関数が呼ばれる順序(f→g→h)と、プログラムの字面上の順序(h→g→f)が逆でわかりにくいとされます。この問題は、特に、関数が大きくなったときに顕著になります。 wonderful_process_h( marvelous_process_g( fantastic_process

    パイプライン演算子の歴史 - まめめも
  • 岡田を切る技術 - Qiita

    これはとある回顧録 何度も諦めかけましたが、数年の歳月を経て遂に岡田を切る技術が一旦の完成へと至りました。その技術を巡る奮闘の歴史と成果について、ここに記録を残していきたいと思います。 画像時代 まずは「切る」という動作が何を指すかを明確にしておきます。 厳密な定義というよりは、切った感を得るために必要そうなふるまいとして定義します。 平面上のある領域が、任意の直線を境界として分割されること 分割された領域は物理法則に準じてふるまうこと 要するに気持ちよく岡田を切ることができれば目標は無事達成です。 物理エンジン 切った感を高めるためにはやはり「物理法則」に準じたふるまいが欲しくなります。つまりブラウザ上で動く物理エンジンが必要です。 世の中にはフルスクラッチで物理エンジンを作れる人間と作れない人間が居ると思われますが、残念ながら私は後者でした。勝ち目の薄い勝負は避け、素直に巨人の方にすが

    岡田を切る技術 - Qiita
  • 再帰関数を学ぶと、どんな世界が広がるか - Qiita

    0. はじめに 再帰関数は初めて学ぶときに壁になりがちで なんとなくわかった...けれど どんな場面で使えるのだろう...いい感じの例を探したい! という気持ちになりがちです。再帰関数は、なかなかその動きを直感的に想像することが難しいため、掴み所が無いと感じてしまいそうです。 そこで記事では 再帰関数の動きを追いまくることで、再帰関数自体に慣れる 再帰的なアルゴリズムの実例に多数触れることで、世界を大きく広げる! ことを目標とします。特に「再帰関数がどういうものかはわかったけど、使いどころがわからない」という方のモヤモヤ感を少しでも晴らすことができたら嬉しいです。なお記事では、ソースコード例に用いるプログラミング言語として C++ を用いておりますが、基的にはプログラミング言語に依存しない部分についての解説を行っています。 追記 1. 再帰関数とは 再帰の意味はとても広いです。自分自

    再帰関数を学ぶと、どんな世界が広がるか - Qiita
  • Write yourself a Git!

    This article is an attempt at explaining the Git version control system from the bottom up, that is, starting at the most fundamental level moving up from there. This does not sound too easy, and has been attempted multiple times with questionable success. But there’s an easy way: all it takes to understand Git internals is to reimplement Git from scratch. No, don’t run. It’s not a joke, and it’s

  • 【感想】『Vue.js入門 基礎から実践アプリケーション開発まで』でしっかりVue.jsに入門【JavaScrpt】 - Rのつく財団入り口

    JSフロントエンドフレームワーク Vue.js の格入門書 ロー◎製薬の目薬V・◎ートのマーク……じゃなかったVue.jsのVのロゴもブイっと眩しく輝く格入門。480ページという大ボリュームのがっつりした骨太なです。 著者の中心となった川口和也さん(@kazu_pon)は、OSSとしてのVue.js自体の開発のコアチームでコントリビュートしてきた第一人者。僕がこの前sp.53で出てしまったテック系Podcast「しがないラジオ」の初期の頃のsp.9a/sp.9bや、同じくPodcastの「soussune」episode28でもゲスト出演されています。他のメンバーもそうそうたる顔ぶれ、Vue.jsを自社プロダクトのKARTEで活用していることで知られるPLAIDの方もおられますね。おっ、しがないラジオMeetup#2でご挨拶できた、めるさん(@c5meru)の名もありますぞ。 とい

    【感想】『Vue.js入門 基礎から実践アプリケーション開発まで』でしっかりVue.jsに入門【JavaScrpt】 - Rのつく財団入り口
  • JavaScriptの { } を理解する - Qiita

    結果はどうなったでしょうか。 自分が今使っているGoogle Chromeだとこうなりました。 結果は{a: 10}というオブジェクトです。まあ、これは当然ですね。3 + 5と入力すれば実行されて8が返ってくるのですから、{a: 10}というオブジェクトリテラルを書けば{a: 10}というオブジェクトが作られるのは当然です。 ……。 ここで、一部の人は「おいふざけんなよ」と思っているかもしれません。というのも、この例は環境によっては違う結果になるのです。具体的には、Chrome以外2のブラウザのREPL(FirefoxやEdgeなど)が該当します。あと、ts-nodeのREPLも該当するらしいです。これらの環境では、結果は{a: 10}ではなく次のようになります。 オブジェクトを作ったはずなのに結果が10とか意味不明ですね。そもそも、こんな簡単なプログラムで結果が全然違うとか、JavaSc

    JavaScriptの { } を理解する - Qiita
  • 実践的低レベルプログラミング

    はじめに 学校で習わないが(習う学校もある)、現実に必要になるプログラミング技術に、低レイヤプログラミングなどと呼ばれるものがある 厳密な定義は聞いたことがないし、おそらく存在しないとは思うが、大体のみんなの共通認識として、 「高級プログラミング言語を使わないプログラムを書き、OSで抽象化されないデバイスの機能を使う」といったような認識があると思う。 筆者の経験から言わせてもらうならば、低レイヤプログラミングに関する知識は、プログラミングにおいてあらゆる場面で、常に、少しずつ役立てられる知識だと言えると思う。 普段はRubyPHPなどを書いてる人であったとしても、メモリが足りなくなった場合や、デバッガを使っている場合、性能が足りなくなった場合など、 厳しい環境におかれた時に低レイヤプログラミングに関する知識が必ず役に立つ場面が来ると信じている。 また、役に立つかどうかは置いておいても、「

  • Table of Contents · Game Programming Patterns

    Table of Contents Game Programming Patterns Acknowledgements Introduction Architecture, Performance, and Games Design Patterns Revisited Command Flyweight Observer Prototype Singleton State Sequencing Patterns Double Buffer Game Loop Update Method Behavioral Patterns Bytecode Subclass Sandbox Type Object Decoupling Patterns Component Event Queue Service Locator Optimization Patterns Data Locality

  • すべてのプログラマが機械学習を受け入れる準備をする時代になった - mizchi's blog

    という予感がしたので書く。正確に言うと機械学習の成果としての訓練モデルを。 まず事前に前置きしておくと、僕は機械学習をほとんど抑えていない。トレンドだけ追ってる。 大学生の時にニューラルネットワークを実装してみてフ~ンって言ってた程度に知識しかなくて、ディープラーニングが流行る前だから、「バックプロパゲーションってややこしかったけど、今は自動でモデルの最適化いい感じにやってくれるんでしょ?」ぐらいの雑な理解しかない。(この時点で怪しい) で、今はフロントエンドやってて、ここは機械学習は縁遠いように思えるかもしれないだろうけど、最近のGoogleはなんとブラウザで tensorflow を動かすのに情熱を注いでいる。 で、こんなのが Hacker News で流れてきた。 medium.com とりあえず試した。デモをそのままデプロイした。 PoseNet - Camera Feed Dem

    すべてのプログラマが機械学習を受け入れる準備をする時代になった - mizchi's blog