タグ

programmingに関するnatu3kanのブックマーク (683)

  • スマホにカメラついてるんだからOCRできるでしょという気持ち - Progate Tech Blog

    どうも、 株式会社Progate で SoftwareEngineer チームのマネージャーをしています @satetsu888 です。記事は Progate AdventCalendar 2020 10日目です。 普段仕事ではエンジニア組織のことやプロダクトの技術戦略的なことを考えたり、ミーティングしたり採用活動したりタスクをお願いして回ったりなどを担当していますが、今日はそういうのとはなんの関係もないただの日常の話を書こうと思います。 ことの始まり 我が家では子どもの朝ごはんとして週に2,3回くらいの頻度でポケモンパンを買っています。 先日(2020/09/18 ~ 11/24) ポケモンパンについてるポイントを5点集めるとポケモンシールホルダーの抽選に1回応募できるキャンペーンがありました。(キャンペーン自体はすでに終了しています) いつも通りのペースでパンを買ってると何回か挑戦で

    スマホにカメラついてるんだからOCRできるでしょという気持ち - Progate Tech Blog
    natu3kan
    natu3kan 2020/12/11
    使えそうな素材を見繕って組み上げるDIYプログラミング。これがドミニオンちゃんですか。一度限りの作業なら手作業の方が迅速だけど、何万回も反復するなら自動化する方が制作時間以上のリターンが見込める。
  • 2で割ることと3で割ること - Qiita

    この記事でお題にするのはCPUレジスタ上の整数除算です。以下、単に除算とも書きます。 除算は非常に高コストな演算なため、コンパイラは最適化によって、できるだけ整数除算を別の計算に置き換えようとします。 最適化ができる場合の一つとして、割る数が定数である場合があります。頭のいいコンパイラは、除算を乗算とビットシフト等を駆使した演算に置き換えます。この記事では、そういった最適化の背景にある理屈を部分的に解説します。 計算機環境としてはモダンなx86 CPUを仮定します。したがってレジスタは32/64ビットであり、負数は2の補数表現になっています。ある程度は他の命令セットでも通用する話になっているかもしれません。 そもそも整数の除算とは プログラミングにおける整数の除算の定義について確認します。整数$n$を整数$d$で割るとき $$ n = q \times d + r $$ が成り立つように除

    2で割ることと3で割ること - Qiita
    natu3kan
    natu3kan 2020/12/09
    2の補数とビットシフトで手早く割り算をする。10進法の1431655766は2進法で1010101010101010101010101010110で16進法で55555556。ウィキペによると1431655766/2の715827883はワグスタッフ素数で2^31+1/3。
  • 管理者用初期化URLを踏んでWebサービスのデータをふっとばした話 - Qiita

    自己紹介 職のエンジニアではありませんが、ちょっとICT系に詳しそうなやつって感じで、部署のサーバ管理を任されたりもしています。 背景 私の(当時所属していた)部署では、毎年、数週間かけて前年の各人の業務実績をとりまとめて一つの冊子(PDF)にするという仕事があり、この作業を少しでも自動化するため、Webサービスが内製されました。当初は単純に各ユーザが自分の業務実績一覧をテキストで用意してアップロードするというものでしたが、秘伝のタレのように毎年少しずつ改良されたり、大幅に作り直されて別システムから業務データを取り込んでからブラウザ上で編集できるようになったりしつつ、なんやかんやあって私が引き継ぎます。他にやりたい人もなく、ひとり鯖管です。OSはCentOS6でした。 このシステムでは、毎年新しいデータを編集するため、その作業開始時にデータを初期化する必要があります。この作業も自動化し、

    管理者用初期化URLを踏んでWebサービスのデータをふっとばした話 - Qiita
    natu3kan
    natu3kan 2020/12/08
    そんな手軽に初期化できるなら、うっかりやっちゃうわな。
  • Computer Scienceの学位を取るために学費無料のオンライン大学UoPeopleに入ってもうすぐ1年 - えんぴつぶろぐ

    この記事は社会人学生 Advent Calendar 2020 7日目の記事です。 米国のオンライン大学University of the People(以下、UoPeople)に入って約1年経った振り返り記事となります。 これまでのUoPeople関連の記事はこちら 自分について University of the Peopleとは 動機 入学するには 授業について 卒業までの所要期間 Computer Science専攻はどんなコースが受けられるのか これまでの進捗 これまでにかかった金額 課題がめっちゃ出る どうやって勉強時間を確保しているか よかったところ 学習内容への満足度は高い 英語のライティングスキルは多分あがった 日英両方でインプットするメリット 毎日強制的にアウトプットできる。 GPAのためなら頑張れる よくなかったところ National Accreditationなの

    Computer Scienceの学位を取るために学費無料のオンライン大学UoPeopleに入ってもうすぐ1年 - えんぴつぶろぐ
    natu3kan
    natu3kan 2020/12/07
    覚えることがたくさんあるから語学がメインじゃないし、早い理解のサポートに機械翻訳を活用した方がいいのはあるか
  • 本番環境でsudo yum updateしてサービスが動かなくなった - Qiita

    EC2 (Amazon Linux) Apache php7.1 私がやってしまったこと この事件が起きたのは2020年6月。既に稼働しているWebサービスでとあるデータ取得の処理が止まってしまっているので調査してほしいと頼まれました。また、サービスに影響が出るものだからなるべく早めに対処してほしいと言われました。 マネージャー 「今日の夕方までにはお願いね。もし難しそうだったら午後イチで一旦MTGしよう。14時までに連絡をください。」 わたし 「任せてください!」 ・・・・ とは言ったものの、番サーバーで起きている障害の調査は今までやったことがありませんでした(もちろん番サーバーにログインしたこともない)し、進め方も全く思いつきませんでした。しかも、対応するサービスの開発には携わったことがなく、sshログインの設定から行う次第でした。 まあ、今まで頼まれたタスクを期限内に終えられなか

    本番環境でsudo yum updateしてサービスが動かなくなった - Qiita
    natu3kan
    natu3kan 2020/12/02
    テスト環境で大丈夫だからすぐ本番ってやらないで、ステージング環境でのテストって大切だなって思いました。熟知した人以外が管理者権限で入れちゃうのは、焦ってやらかす場合もあるし危ないよね。
  • もうじき40代なかばを迎えるプログラマーの遺言(少し追記)(もうちょっと追記)(さらにもうちょっと追記)

    世の中にはプログラマー35歳定年説というものがあった。昔からそんなのはないという人と、あるという人がいた。40代も半ばになったときに「あぁ、これが35再定年説の根拠か」というものがなんかちらほら見えるようになってきたので書いてみようと思った。 世の中にはものすごいプログラマーというのはやっぱりいる。なんなら死ぬまでプログラミング書いていられるという人たちもいる(ブラック的な意味ではなく)。そんな彼らからしたらプログラマー35再定年説とか意味がわからない都市伝説にしか映らないだろう。 だが、普通に職業プログラマとして生きている俺のような人からすると、この35歳定年説はかなりの真実味を帯びている。 だが、そんな俺でも40代半ばまで延命できたのはやはり技術革新のおかげかもしれないが、結局平均寿命が伸びただけとも言えるだろう。 まず、技術に対する姿勢が変わる。正直言うとプログラミングとかもうしたく

    もうじき40代なかばを迎えるプログラマーの遺言(少し追記)(もうちょっと追記)(さらにもうちょっと追記)
    natu3kan
    natu3kan 2020/11/15
    いっぱいコードを書く気で大企業に入社したら、継ぎ足しされた秘伝のExcelシートを管理し、仕事を発注して右から左に流すだけの人になってたとかあるある。組み込みとかだと40代でも前線に立ってる人はそこそこ居る。
  • プログラミング初心者のための 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 の歴史、それを踏まえた勉強方法
    natu3kan
    natu3kan 2020/11/13
    jQueryは数年前までソシャゲでも一線級で、今でもサービスしてる歴史の長いソシャゲだと更新されず、継ぎ足された秘伝のソースって感じで普通に使われてるのあったりするしな。
  • ExcelでVBAを使わないでドラクエ3を再現する | パパセンセイ365

    English 久しぶりにExcelゲームを再現してみました。 ツイッターでどんなゲームを作るのが良いか募集したところ、なんと1位がドラクエ。 初めて質問箱を使ってみます。なかなか決められなくて‥‥。 VBAを使わないExcelゲーム、どれを作るのが良さそうですか? — パパセンセイ@Excelを眺める人 (@10mikiya) September 21, 2020 正直どう作って良いか見当もつかないまま見切り発車で進めましたが、なんとか形になったので公開の流れになりました。最適化されてないロジックもありますので温かい目で見守っていただけますと幸いです。 一応、再度伝えておきますがVBAは一切使っていません。 [ad01] どんなものが出来たか 実際にどんなものになったか、見ていただいた方が早いのでまずは結果をご覧ください。(※音声はありません) あのイルカ 最後まで見た方が面白いですよ

    natu3kan
    natu3kan 2020/11/04
    VBAつかわないで、 散布図のマーカーに画像を張り付けて動かす事でいろいろできるわけか。ローグくらいだとテキストだけど、ファミコン時代ですらマップチップで範囲でいろいろ管理してたしな。
  • 西暦1年は閏年か? - プログラマーの脳みそ

    閏年(うるうどし)の話題。 Twitterで見かけた話題で「西暦1年は閏年かどうかぱっとわからん人おる?」という些か煽り気味のツイートを見かけたのだけども、反射的に「閏年じゃないに決まってるじゃん」とぱっと答えてしまわないだろうか。当にそうだろうか? そう単純な話なのだろうか? プログラミングを学んでカレンダーを扱うことを学ぶ際に置閏法についても簡単に触れられることがある。置閏法というのは閏年や閏月(太陰暦では1年が13ヵ月になるケースがあり追加の月を閏月と呼ぶ)をどのようなルールで挿入するかという話で、まさにアルゴリズムであるからプログラミングの話題と相性がいい。 置閏法 現代の西暦の置閏法(ちじゅんほう)は 西暦を 400 で割り切れる年は閏年 上記以外で西暦を 100 で割り切れる年は平年 上記以外で西暦を 4 で割り切れる年は閏年 上記以外は平年 といった手続きで閏年(つまり2月

    西暦1年は閏年か? - プログラマーの脳みそ
    natu3kan
    natu3kan 2020/10/31
    暦って政治的都合で変わってて面倒っていう。セプテンバー(7)なのに9月とかオクトーバー(8)なのに10月とか。
  • テスト、正常系から書くか異常系から書くか - hitode909の日記

    今週は同僚と毎日長時間ペアプロしていた。 おもしろかったのが、同僚のテストの書き進め方で、一番複雑な正常系のテストをちゃんと書いてから、その複雑なテストをもとに、いろんな条件を削っていって異常系のテストを作っていく、というところ。 僕は逆で、入力が空なら何も起きない、とか、一番簡単な異常系のテストを書いて、そこだけ通るのを確認して、よしよし、と進めていって、メソッド来の動きは最後に確認して終わる。 変な進め方だな〜(主観)と思って眺めていたけど、たしかに正常系のテストが通っていれば、あとはバリデーションまわりのチェックとか、例外となる場合のチェックをすれば終わりで、異常系のテストがすごい速さで書かれていておもしろかった。 …という話をしたら、チームメンバーたちは正常系のテストから書きはじめるという人が多くて、正しくことを確認してから、1個ずつ前提となる条件を外してみて試す、と聞いて、同値

    テスト、正常系から書くか異常系から書くか - hitode909の日記
    natu3kan
    natu3kan 2020/10/23
    正常が固まらないと何が異常が思い浮かばないってケース。逆に異常の類型から固めて行って消去法的に正常を浮き彫りにするケース。
  • Early Work

    初期の作品 --- Early Work Paul Graham, October 2020 これは、Paul Graham: Early Work を、原著者の許可を得て翻訳・公開するものです。 <版権表示> 和訳テキストの複製、変更、再配布は、この版権表示を残す限り、自由に行って結構です。 (「この版権表示」には上の文も含まれます。すなわち、再配布を禁止してはいけません)。 Copyright 2020 by Paul Graham 原文: http://www.paulgraham.com/early.html語訳:Shiro Kawai (shiro @ acm.org) <版権表示終り> Paul Graham氏のエッセイをまとめた『ハッカーと画家』の 邦訳版が出版されました。 出版社の案内ページ Amazon.co.jp サポートページ 2020/10/20 翻訳公開

    Early Work
  • ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習

    最近、あまりプログラミングが得意でない人のサポートをする形で、長い時間にわたってペアプログラミングを行っている。そのなかで、気がついた悪い習慣と成長するための良い習慣というものをまとめてみる。 この記事のバックグラウンドとなる体系的知識がになりました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング あわせて読みたい 経営者マインドが足りない!vs. 現場に任せてくれない!の対立をなくすカードゲームをつくった話 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡 ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習 あきらめるにはまだ早い!ソースコードの品質向上に効果的なアプローチ 心理的安全性ガイドライン(あるいは権威勾配に関する一

    ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習
    natu3kan
    natu3kan 2020/10/21
    仕様や社内ルールみたいなので挙動だけじゃなくて、拡張性を考慮し、こういう関数をこういう項目ごとに組み立てておくみたいなガイドラインとかある方がいいのかもね。
  • 「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita

    はじめに 先日ツイッターで見かけた呟き pic.twitter.com/33Yk02hu1U — TOMO (@tomozh) October 14, 2020 そういうこともあるのか的な反応もあるようなので具体例を挙げてみることにする。 例1 所謂FizzBuzz問題。 #include <stdio.h> void fizzbuzz(int n) { int next; int i = 1; do { printf(i % 15 ? i % 5 ? i % 3 ? "%d\n" : "Fizz\n" : "Buzz\n" : "FizzBuzz\n", i); if (i++ >= n) next = 0; } while (next); } int main(void) { printf((char[]){""}); // この位置にprintfが無いとなぜか動かない fizzbuz

    「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita
    natu3kan
    natu3kan 2020/10/20
    変数をしっかり定義し、メモリの使う場所や初期化もしっかりしておかないと、初期化されてない前提じゃないと動かないみたいな状況になったりとかはある。
  • レガシーおじさん、SPAを始めてみた。そして限界を知る

    はじめに 最近、Webの記事を見てるとReactVue.jsばかりが上がっていてJSPやERBの話をしてる人は誰もいません。jQueryの記事ももちろん見ない。 つまり、Webだけ見る限りではほとんどの人がSPAを使ってるように見えます。 私はWeb界隈には居るもののどちらかというとバックエンド寄り、もっというとそもそもWebとか関係ない領域を見る事が多いので、ちょっとキャッチアップを兼ねていくつかの個人プロダクトにVue.jsを採用してみました。 jQueryくらいで頭が止まってたので。サーバサイドもマイクロサービスでAPI化が進んでるのでフロントもそれに合った技術を選ばないとですしね。 というわけで、今回はその中で得た知見というか、従来型のサーバサイドでのWeb開発をしていた人の視点でVue.jsをキャッチアップする流れで書いていきたいと思います。 まあ最終的な結論は正直「これすごく

    レガシーおじさん、SPAを始めてみた。そして限界を知る
  • 嫁にプログラミング教えるの辛い

    前提 嫁のことは好き 嫁はバリバリの文系。もともとIT関係ない職だったけど、興味を持ったらしくIT転職しようとしてる自分の過去の職歴に若干コンプレックスを持ってる節(自分には専門性がない、とか)があり、それを克服するためにも応援したいと思ってる自分はバリバリの理系&IT系なので、半年くらい少しずつ教えてる 最初はProgate やってた。一通り終わったらしいので、edabit を勧めておいた。leetcodeにも手を出し始めた 悩み論理的思考力の話 何かのロジックを自分で考えるのが苦手。過去のパターンに当てはまることはできるけど、少し捻った問題だと途端にフリーズしてしまう なんというか、理解しているのではなく、パターンを暗記している感がある うまく動いていない時に、プログラムの流れを追うのが苦手。あれこれ適当に試してうまくいったら満足してしまう 関数の呼出しの流れとかを追うのがきついみた

    嫁にプログラミング教えるの辛い
    natu3kan
    natu3kan 2020/10/16
    親から宿題しなさいって言われると、やりたくなくなるのと同じで、身近な家族の指示に反射的に反発する人っているよな。会社の上司とか仕事の上下関係だと受け入れるけど。
  • メンタルが弱いエンジニアが安心して開発するために気をつけていること - SMARTCAMP Engineer Blog

    スマートキャンプで業務委託でエンジニアをしている佐藤です。BOXILの開発を1年3ヶ月前から、沖縄からフルリモートでやっています。 皆さんは、毎日楽しくお仕事できていますか? エンジニアという職業は労働時間やストレスが多く、IT業界は他の業界と比べて精神疾患にかかりやすいと言われています。 私はもともと自己否定ばかりしてしまう思考の癖があることに加えて、7年前に起業に失敗してメンタルを壊してしまったことをいまだに引きずっていて、日々悩みながら生活をしています。 スマートキャンプは、過労とは無縁で、メンバー間のサポートもよく、これ以上ないくらい私に合った職場です。それでも自分の心の問題で不安になったり、絶望感に襲われたりすることがあります。今回はそうなるたびに書き綴ったメモを、開発中にネガティブな気持ちにならないための技術としてまとめようと思います。 メンタルが強くないエンジニアはこんな気持

    メンタルが弱いエンジニアが安心して開発するために気をつけていること - SMARTCAMP Engineer Blog
    natu3kan
    natu3kan 2020/10/15
    育つ前にヤバいデスマに投げ込まれないよう祈る。ヤバいデスマが常態化する怪しい会社に入らない。ヤバいデスマは心身ともに折りにくる。期限のリスケも許されない。
  • Low-Level Academy

    In this course, you will learn how to work with the UDP and TCP internet protocols in real-world scenarios. You will apply your skills to build small, fun networking applications in Rust — right in your browser! No previous knowledge of network programming is required, but we assume that you are familiar with Rust syntax. If you’re not, that's fine too! You can read The Rust Book and learn by prac

    Low-Level Academy
    natu3kan
    natu3kan 2020/10/15
    TCP / IPの基礎。2進法や16進法から。
  • 東京大学の講義「AWSによるクラウド入門」をTypeScriptで写経した - dackdive's blog

    AWSによるクラウド入門 少し前に話題になっていた東京大学の講義資料をやってみたので、内容、感想などメモ。 講義で使用するソースコードはすべて Python で書かれていますが、自分が実際に使うとしたら TypeScript で書くだろうなと思ったので TypeScript で写経しました。 が、CDK のコードはすべて TypeScript で書けましたが、Lambda 関数や動作確認用のスクリプトなどを全て置き換えるところまでは至らず、Python のままです。 写経したリポジトリは https://github.com/zaki-yama-labs/intro-aws に。 学べること 講義資料には全部で5つのハンズオンがあります。 各ハンズオンで利用する AWS のサービスについては以下の通り。 全般 AWS CDK: Cloud Development Kit CloudFor

    東京大学の講義「AWSによるクラウド入門」をTypeScriptで写経した - dackdive's blog
    natu3kan
    natu3kan 2020/10/04
    自分は別の事を写経した事あるけど身につかなかったので、ある程度の開発者の意図や原理や背景を知ってて、自分でアウトプットできる素養がないと写経でも身につかないと思う派
  • 取り返しのつかない人間が職場に来た

    30歳過ぎたあたりで、突然気づいたんだけど 「意識高い系」を見かけなくなったなと気が付く。 なんというか、野球バカは野球する側から見る側になって、オタクはアニメ見ずにVtuberのラジオ聞いてるし、キラキラ系女子は子育てマウントに移行してる みたいな「年取っていく過程で元気がなくなっていってる」という現象は見受けられるんだけど、 相も変わらず、野球バカは野球好きだし、オタクはかわいいアニメの女が好きだし、キラキラ女子はずっと誰かと何かと戦い続けているっていう根底は変わっていない。 けど、どうも大学3年生くらいに雨後のタケノコかってくらい湧いて出てた「意識高い系」がどこにもいない。 若さ特有の自意識に飲み込まれている感覚も、就活を終えて年を取ると同時に消えてしまい、何か特別だと思っていた自分は超ドドド級の凡人だと気づき、 クソみたいな上司に叱られながら「まあ、人生ってこんなもんだよな」とあき

    取り返しのつかない人間が職場に来た
    natu3kan
    natu3kan 2020/10/02
    具体性をもって取り組まないと、世界のトレンドになってる技術の名前を知って、ちょっとかじるだけで終わるのは、ままある。そういう知ってるだけの人でも人脈あってセレブになったりしてるのが世の中の理不尽。
  • Python初学者のためのPandas100本ノック - Qiita

    Information 2024/1/8: pandas , Polars など18を超えるライブラリを統一記法で扱える統合データ処理ライブラリ Ibis の100 ノックを作成しました。長期目線でとてもメリットのあるライブラリです。こちらも興味があればご覧下さい。 Ibis 100 ノック https://qiita.com/kunishou/items/e0244aa2194af8a1fee9 2023/2/12: 大規模データを高速に処理可能なデータ処理ライブラリ Polars の 100 ノックを作成しました。こちらも興味があればご覧下さい。 Polars 100 ノック https://qiita.com/kunishou/items/1386d14a136f585e504e はじめに この度、PythonライブラリであるPandasを効率的に学ぶためのコンテンツとして

    Python初学者のためのPandas100本ノック - Qiita
    natu3kan
    natu3kan 2020/09/26
    ライブラリーは偉大である