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

  • オーディオプログラミング言語のカレンダー | Advent Calendar 2020 - Qiita

    オーディオプログラミング言語について、メジャーどころや面白そうなものを実際に触ってみて紹介する企画です。 共通のテーマは、(1)440Hzのサイン波生成+ゲイン調整、(2)wavファイルに400msecのディレイをかけてフィードバックとウェットレベルを調整の上で再生、としました。それぞれの言語でこの二つのプログラムを実装します。 オシレーター、ファイル読み込み、バッファ格納、フィードバック処理といった頻出処理の実装方法(もしくはライブラリ利用方法)がひととおり確認できて、言語間の比較もしやすいのではないかと思います。 githubの方も公開しました。こちらはすべての実行確認済みソースコードをダウンロード可能です。 https://github.com/aike/audiolang

    オーディオプログラミング言語のカレンダー | Advent Calendar 2020 - Qiita
    lbtmplz
    lbtmplz 2020/12/15
  • クラスタのノード欠損を復旧しようとしてクラスタを丸ごと落とした話 - Qiita

    これは、私が若…くはないけどピカピカのAWS1年生だった、数年前のお話です。 何をやらかしたのか やらかし前の状態 番運用しているWebアプリケーションの裏側に、EC2インスタンス3台でクラスタを組んだ某データストア製品を使用していました。データはクラスタ内でレプリケーションされており、1台がダウンしただけならクラスタは稼働を継続できます。2台がダウンするとクラスタ全体が機能しなくなります。 ある日、3台のうち1台で障害が発生してインスタンスへ疎通できない状態になりました。この時点ではクラスタは正常に応答しており、あと1台ダウンしない限りはサービスに影響が出ない状態でした。 まず、ダウンしてしまったインスタンスを再起動して復旧させようとしました。ところがEC2マネジメントコンソールから再起動、停止を選択しても障害中のインスタンスは反応しません。そして私は間違いを犯します。 やらかしたこと

    クラスタのノード欠損を復旧しようとしてクラスタを丸ごと落とした話 - Qiita
    lbtmplz
    lbtmplz 2020/12/11
  • 単一責任原則で無責任な多目的クラスを爆殺する - Qiita

    この記事は クラウドワークスアドベントカレンダー2020 8日目の記事です。 概要 こんにちは、クソコードを爆殺リファクタリングするのが大好きなミノ駆動です。 今回は単一責任原則の話です。 単一責任原則はSOLID原則のひとつとして有名で、2020年のオブジェクト指向カンファレンスのアンケートでも、SOLID原則の中で最も人気がありました。 皆さんは単一責任原則を遵守した設計をしていますか。 どんな構造が単一責任設計で、一方どんな構造が単一責任でない設計か、明確に意識していますか。説明できますでしょうか。 ところで「単一責任原則とはなんぞや」について、少なくとも私の観測範囲では、概念的な話にとどまっているものが多く、コードレベルで具体的に説明しているものは少ないように感じます。 そうした状況からか、単一責任原則の解釈が人によって違っていたりしているように感じます。 記事は、今一度単一責任

    単一責任原則で無責任な多目的クラスを爆殺する - Qiita
    lbtmplz
    lbtmplz 2020/12/09
  • 【個人開発・ポートフォリオに】無料で簡単にいい感じのデザインにできるサービスまとめ - Qiita

    個人開発・ポートフォリオ作成をする方に贈る いくらプロダクトが素晴らしいとしても、一見してダサいデザインだと、ユーザーは使う気がなくなってしまう。 でも、今からデザインの勉強をするのは面倒だし、そこまでこだわりがあるわけでもない。 Q. 簡単に及第点のデザインにできるサービスとかないんですか? A. あります。 ということで、デザインのことはよくわからなくても、簡単にそれっぽくできるサービスをまとめました。 個人的には、「それっぽさ」の大部分はページレイアウトと画像、「こなれ感」は配色とフォントによって構成されていると思っています。 また、私はケチなのでここで紹介しているものは、すべて無料で使えるサービスです(課金プランはある)。 書かないこと 細かい使い方 大体有名なので、使い方はggれば出てきます。 ライセンスなどの情報 特に素材系は規約などを確認の上で使ってください。 あくまでも、こ

    【個人開発・ポートフォリオに】無料で簡単にいい感じのデザインにできるサービスまとめ - Qiita
    lbtmplz
    lbtmplz 2020/12/04
  • 可視化や統計でデータに『恣意的なストーリーを語らせる』16の闇の魔術【bad charts】 - Qiita

    闇の魔術に対する防衛術 Advent Calendar 2020の三日目 はじめに データの可視化は非常に難しい。 まずデータの抽出が難しい ・データソースごとの整合性が取れているか ・取得したデータとソースデータに欠損が生じていないか ・SQL文を実行したサマリの結果が部分的に抜け落ちていないか。 その確認は時間的にも精神的にも苦痛。 しかし、苦労して抽出したデータも使い方で全くの無駄になる その例として「可視化や統計」部分に着目してお話をしようと考えた。 データの背景を知らない人には、データ可視化が歩み寄る手段になるし、伝えたい事をインパクトを伴って伝えられるなど非常にメリットである。 ※ただし 「可視化」の使い方によっては誤った理解をさせることも可能。 伝えたい事だけを正しいように見せる方法もあり、 可視化に詳しくない人に誤解を与えて自分の主張を通すこともできるかもしれない。 これは

    可視化や統計でデータに『恣意的なストーリーを語らせる』16の闇の魔術【bad charts】 - Qiita
    lbtmplz
    lbtmplz 2020/12/04
  • ニコニコで12年運用した決済システムを移行する上で必要だったこと - Qiita

    はじめに 今日は、ニコニコのプレミアム会員サービスを支える「プレミアム課金システム」を動画システムのモノリスから切り出し、変更可能にしていった過程について書きます。プレミアム課金システムは金銭を扱うシステムですので、「(特に、失敗した)話を聞くのは面白いけど、自分で触りたくない」と思われる方も多いのではないでしょうか。 この記事では、決済にかかわるシステムでも一般的なシステム改善の方法が適用できることをお伝えしたいと思います。また、コストを抑えつつ着実なシステム改善を行う方法論としてもご理解していただけると嬉しく思います。 背景 プレミアム会員サービスについて 月額500円(税別)のプレミアム会員制度には159万人(2020年9月末現在)の方が加入してくださっており、ニコニコ事業を支える主要な有料サービスです。 ニコニコ動画は2006年にサービスを開始し、2007年にプレミアム会員サービス

    ニコニコで12年運用した決済システムを移行する上で必要だったこと - Qiita
    lbtmplz
    lbtmplz 2020/12/04
  • 本番環境でやらかしちゃった人のカレンダー | Advent Calendar 2020 - Qiita

    昨年非常に盛り上がっていましたので作成させていただきました。 番環境でやらかしちゃった人のアドベントカレンダーです。 例) DB吹き飛ばした 番サーバをデストロイした ネットワーク設定をミスって番サーバにアクセス出来なくなり、サーバが世界から孤立した などなど... 以下の2点については必須項目なので、記述お願いします。 惨劇はなぜおこってしまったのか 二度と惨劇を起こさないためにどうしたのか もう二度とあの惨劇を繰り返さないために、みなで知見を共有しましょう。 過去 番環境でやらかしちゃった人 Advent Calendar 2019

    本番環境でやらかしちゃった人のカレンダー | Advent Calendar 2020 - Qiita
    lbtmplz
    lbtmplz 2020/11/27
    人類…
  • 成功する投資:トレーディングのサイエンス - Qiita

    はじめに 早速ですが、皆さんは投資をしているでしょうか。しているとすれば、どのような投資をしていらっしゃるでしょうか。 世の中には様々な投資対象が存在し、またその投資手法も様々です。投資に関する情報は世の中に溢れています。氾濫していると言ったほうがよいかもしれません。書籍を例に取ると、甘い文句で投資を奨励するライトな入門書から金融の専門書までずらりと並びます。またブログやSNSも重要な情報源となっており、最近では投資向けのYouTubeも人気を集めているようです。 しかしこれだけ多様な情報ソースが存在するにも関わらず、投資で成功を収めることができるのはごく一握りです。少し古いリサーチになりますが2015年の野村證券の個人投資家リサーチでは、通算で利益が出ている個人投資家の割合は9.3%とのことです。どうしてこのような事態に陥ってしまうのでしょうか。投資の初級者の方はどのようなアプローチをし

    成功する投資:トレーディングのサイエンス - Qiita
    lbtmplz
    lbtmplz 2020/11/11
  • Google『reCAPTCHA』を突破!『2Captcha』でブラウザ操作の完全自動化に挑む - Qiita

    目次 はじめに 2Captchaとは 2Captchaの使用準備 Python+Selenium+2Captchaで『reCAPTCHAv2』を突破 さいごに 参考 はじめに スクレイピングやブラウザ操作の自動化タスクにおける一番の難所は各種キャプチャの突破だと思います。そもそもキャプチャ機能はロボット操作されないために設置するものなので,それを突破しようとする時点でどうなのという気はしますが,それでもなんとかしたいと思うことがあります。そんなときの解決方法として「2Captcha」というサービスがあります。 最近このサービスを知り利用してみたところ,あまりに簡単にキャプチャ突破できたので,ここで紹介しようと思います。 ※ ご利用は自己責任でお願いします。くれぐれも悪用しないように。 2Captchaとは ロシアの会社が提供するキャプチャ機能を突破するためのサービスです。 2Captcha

    Google『reCAPTCHA』を突破!『2Captcha』でブラウザ操作の完全自動化に挑む - Qiita
    lbtmplz
    lbtmplz 2020/11/09
  • 僕「PDFとは何か知りたい」 - Qiita

    追記情報 - (2020/11/7 18:30) @scivola さんのコメントに基づき、 ラスタースキャン、 ベクタースキャン、 ブラウン管 の説明を追加しました。 TL;DR PDFについて次のような内容を(私の好奇心の赴くままに)調べたので共有したいと思います。 「PostScript」とは? 高速ロードの仕組み フォント埋め込み 「PDFってどんなファイルなんだろう」 PDFを使ったこと無い人はいないと思います。 それほど、PDFは身近な存在となる一方で、その仕組みについて触れる機会はほとんどないと言っても過言ではないです。 何百ページにも渡るPDFで開いた時、ページ移動したときに、パッと表示されたりしますよね。 あれってなんでか知っていますか? 私はもちろん知りませんでした。 たまたま仕事PDFをあれこれいじるにあたって、仕様がわかってないこともあり、なかなかうまくいかず

    僕「PDFとは何か知りたい」 - Qiita
    lbtmplz
    lbtmplz 2020/11/08
  • Next.js 4年目の知見:SSRはもう古い、VercelにAPIサーバを置くな - Qiita

    Next.js by Vercel - The React Framework 画像は Next.js サイコー!っていう顔です。 Webフロントエンドエンジニアであれば、「Reactのフレームワーク」と聞いて真っ先に思いつくであろうNext.js。僕は小規模の趣味開発から中規模の業務まで、4年程度Next.jsを使い続けてきました。触りはじめの当時はバージョン4で、”SSR(Server-side Rendering)を提供するReact製フレームワーク”だったものが、執筆時時点の最新バージョン(10.0.1)ではガラッと異なるフレームワークへと進化しています。 この4年間は実務で利用するだけでなく、新しいものや廃止された機能、RFC止まりになった機能など、Next.jsに関する情報を追いかけており、ある程度の知見をためつつも、Next.js並びに開発元のVercelが目指す方向性を何と

    Next.js 4年目の知見:SSRはもう古い、VercelにAPIサーバを置くな - Qiita
    lbtmplz
    lbtmplz 2020/11/06
  • Pythonのオブジェクト指向プログラミングを完全理解 - Qiita

    1. オブジェクト指向の起源 2003年チューリング賞の受賞者アラン・ケイさんはよくオブジェクト指向プログラミングの父と称されます。ご人も憚ることなく、幾度、公の場で発明権を宣言しています。しかし、ケイさんは「C++」や「Java」などの現代のオブジェクト指向言語を蔑ろにしています。これらの言語は「Simula 67」という言語を受け継いだもので、私が作った「Smalltalk」と関係ないのだとケイさんは考えています。 オブジェクト指向という名称は確かにアラン・ケイさんに由来するものです。しかし、C++Javaで使われている現代のオブジェクト指向は当初のと結構違います。ケイさん自身もこれらの言語を後継者として認めないです。では、ケイさん曰くC++Javaの親であるSimula 67という言語はどんな言語でしょうか。ここで、簡単なサンプルコードを見てみましょう。 Class Recta

    Pythonのオブジェクト指向プログラミングを完全理解 - Qiita
    lbtmplz
    lbtmplz 2020/11/02
  • 「この位置に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
    lbtmplz
    lbtmplz 2020/10/19
  • インターネットの本質から理解できるプロトコル「BGP」についてまとめた! - Qiita

    BGPを通してインターネットが何なのか理解しよう リンク ・Macのオススメな初期設定15選(メールアプリ設定編) ・Macのオススメな初期設定30選 (システム環境設定編) ・Macのオススメな初期設定20選(Finder設定編) ・Chromeのオススメな初期設定10選(Mac) ・Macのオススメなアプリ40選 インターネットってそもそも何? インターネットの仕組みを知らない人に インターネットってどんな仕組みなの?って言われたらなんて答えますか? この答えをここで示したいなと思って書きました。 記事では以下のような 「インターネットは世界中の誰とでも繋がることができるんだよ」 みたいな話はしません。 なるべく専門用語を少なくして、インターネットの仕組みを理解することを目的とします。 書籍では氷山の一角しか書かれないため非常に全体像が分かりにくくなっています。 そして専門用語が多す

    インターネットの本質から理解できるプロトコル「BGP」についてまとめた! - Qiita
    lbtmplz
    lbtmplz 2020/09/27
  • SQL記述者全員が理解すべきSELECT文の論理的な処理順序のお話 - Qiita

    2020/9/30追記 記事は元々、「SQL記述者全員が理解すべきSELECT文の実行順序のお話」というタイトルで投稿しておりました。 しかし、知見のある方からのコメントと自分でも調べてみた結果、今回紹介している順序はあくまで論理的な処理順序であり、実行順序とは別物ということがわかりました。 誤った知識を布教してしまい申し訳ございません。 2020/9/30のタイミングで、記事のタイトルを「SQL記述者全員が理解すべきSELECT文の論理的な処理順序のお話」に変更させていただきました。 はじめに 「SQLといえば、エンジニアが扱うスキル」と思われがちですが、最近はマーケターや営業など、非エンジニアの方もSQLを使って、自らデータを抽出し分析する方が増えてきています。 またエンジニアの方でも、ORM任せでなんとなく理解している状態の方もいるのではないでしょうか? 今回は、そんな方々にこそ

    SQL記述者全員が理解すべきSELECT文の論理的な処理順序のお話 - Qiita
    lbtmplz
    lbtmplz 2020/09/22
  • フルスタックエンジニアになるためのモダンな8つのプロジェクト - Qiita

    こんにちは、たかとーです。 今日は8 Projects with modern designs to become a Full-stack Master 2020の日語訳記事です! *当記事は、Thuさんの許可を得て翻訳しています。 ブログでも読めます! 8 Projects with modern designs to become a Full-stack Master 自分のスキルを磨くためのプロジェクトを探していますか?新しいアイデアを思いつくのに行き詰っていませんか? 開発者として、私たちはコードを書くのが大好きですが、デザインやアイデアを見つけるのが難しいことがあります。 こんにちは、Thuです。ここ数ヶ月、私はデザインや要件を含む8つの実在するプロジェクトの作成に取り組んできました。 私は、あなたがスーパースターなフルスタックデベロッパーになるために必要な全てのスキルを鍛

    フルスタックエンジニアになるためのモダンな8つのプロジェクト - Qiita
    lbtmplz
    lbtmplz 2020/09/19
  • TypeScriptのNever型とは? - Qiita

    TypeScriptのDocumentを読んでいてNever型にすごく引っかかり2日潰したものです! やっと理解につながったのでNever型について書きます。 では、まずNever型とはなんなのか 以下公式引用です。 The never type represents the type of values that never occur. For instance, never is the return type for a function expression or an arrow function expression that always throws an exception or one that never returns; Variables also acquire the type never when narrowed by any type guards t

    TypeScriptのNever型とは? - Qiita
    lbtmplz
    lbtmplz 2020/09/19
  • ハイパーバイザを作ってみた - Qiita

    仮想マシンがどのように実現されているか気になったので、勉強がてら簡単なハイパーバイザを作ってみました。ソースコードはGitHubで公開しています。 方針 RaspberryPi3で動作するAArch64向けのType-1(ベアメタル)ハイパーバイザを作ることにしました。名前は"raspvisor"とします。 スクラッチから作り始める気力はなかったので、なるべく流用できるものは使っていくことにしました。そこで、RaspberryPiのOS開発教材であるRPi OSをハイパーバイザに改造していくことにしました。RPi OSはコード量が少なく読みやすい上、割り込み処理、プロセススケジューラ、ユーザプロセス、システムコール、仮想メモリといった機能が一通り実装されています。OSを改造することにしたのは、プロセス管理や仮想メモリ、割り込み処理といった部分を、ハイパーバイザの実装に流用できそうだと思った

    ハイパーバイザを作ってみた - Qiita
    lbtmplz
    lbtmplz 2020/09/05
  • 機械学習で競馬の回収率100%超えを達成した話 - Qiita

    はじめに みなさん競馬はお好きでしょうか? 私は今年から始めた初心者なのですが、様々な情報をかき集めて予想して当てるのは当に楽しいですね! 最初は予想するだけで楽しかったのですが、『負けたくない』という欲が溢れ出てきてしましました。 そこで、なんか勝てる美味しい方法はないかな〜とネットサーフィンしていたところ、機械学習を用いた競馬予想というのが面白そうだったので、勉強がてら挑戦してみることにしました。 目標 競馬の還元率は70~80%程度らしいので、適当に買っていれば回収率もこのへんに収束しそうです。 なのでとりあえず、出走前に得られるデータを使って、回収率100パーセント以上を目指したいと思います! 設定を決める 一概に競馬予測するといっても、単純に順位を予測するのか、はたまたオッズを考えて賭け方を最適化するのかなど色々とあると思います。また、買う馬券もいろいろな種類があります。 今回

    機械学習で競馬の回収率100%超えを達成した話 - Qiita
    lbtmplz
    lbtmplz 2020/09/04
    クラウドファウンディングで5000兆円突っ込んで欲しい
  • 【JavaScript】本日未明、[ async - await ]さんが死体で発見され... - Qiita

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

    【JavaScript】本日未明、[ async - await ]さんが死体で発見され... - Qiita
    lbtmplz
    lbtmplz 2020/08/27