タグ

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

  • 【AtCoder】中卒の主婦が青コーダーになったおはなし【競技プログラミング】 - Qiita

    はじめまして。mayocornです。 先日のABC281で青コーダーになりました! 経歴 20代の主婦。旦那は競プロやってないです。 中学卒業→高校入学→高校中退→バイトを転々とする(ITに関してはSESで半年ほど働いた経験あり)→今の住所に引越してきてからは無職 趣味ゲームで、最近やっているタイトルはファイアーエムブレムエンゲージ、Splatoon3です。音ゲーやカードゲームに熱中してた時期もありました。CHUNITHMは旧レートでベスト枠15.3くらい。でものめりこむほどお金がかかるのでやめました。競技プログラミングは何問解いても無料なので続けられてます。 学力に関して話すと、高校数学は確率、論理と集合がちょっとわかるくらいで三角関数、微分積分、行列あたりは全然分かりません。青パフォーマンスをとるのにこのへんの知識が必要になったことはなかった気がします。(私が参加した回の中では) 競

    【AtCoder】中卒の主婦が青コーダーになったおはなし【競技プログラミング】 - Qiita
  • 僕は、なぜ絵文字の長さが、直感に反するのか理解したい...!! - Qiita

    対象者 UnicodeやUTF-16について、よくわかってない人 -> ここから "😀".split("")で文字化けする理由がわからない人 -> ここから [..."👨‍👩‍👧"].lengthが5になる理由がわからない人 -> ここから 文字コードについてもう一度 文字コードは以下の二つで構成されています 符号化文字集合: 文字と、その文字の位置を示す一意の番号の集合 文字符号化方式: 文字に振られた番号をバイト表現にエンコードする方法 符号化文字集合 符号化文字集合は、 文字 その文字の位置を示す一意の番号 この二つの組み合わせの集合のことを指します。 例えばASCIIでは 8bit(128通り) でラテン文字や英数字を表現しています。 しかしASCIIには日語などの非英語圏の文字が収録されていません。 そのため、日語を収録したShift-JISやアジア圏の文字を収録した

    僕は、なぜ絵文字の長さが、直感に反するのか理解したい...!! - Qiita
  • 糞コードは直すな。 - Qiita

    とりあえず落ち着け。 みなさん、毎日なにかしらのコードを読み、開発する日々を送っていると思います。そんな中で、 糞コードは死ぬべきである!!絶対に直すべき!! という感情に取りつかれてしまうことがあると思います。自分の技術力に自信のある人ほど、無理やりにでも直そうと試みると思います。それがどんな修羅の道か。そして、糞コード修正がどんな道を歩むのか。この記事では糞コード修正の罠とありがちなストーリーについて書きたいと思います。 ビジネスとしてのプログラムは質的に糞である 例えば、「携帯電話の利用料金」のプログラムがあります。 「携帯電話 透明性高め料金値下げを」という記事もあるように世の中の携帯電話の料金プランはかなり複雑です。例えば、auだと「auでんき」といった電気料金とパックされた電話料金プランがあります。また、「auスマートバリュー」といったプランもあり、家のインターネット回線をa

    糞コードは直すな。 - Qiita
    haya14busa
    haya14busa 2020/08/03
    糞コードというか歴史のあるコードやシステムを直すのは多少きれいでも難しいよね。ところでreviewdogっていう新しいコードの差分に対してlinterかけれるツールがあってこういうときに便利なんですよねぇ〜
  • JSON Schema や JSON から Go の struct を生成する - Qiita

    golang には標準で JSON 用のパッケージがあって、Go で JSON を読み込んだり、書き出したりするときは、そのための struct を定義することがほとんどだと思います。 便利に使わせてもらっているのですが、 struct を定義していくのが結構面倒だったりして、これを自動で生成しようというソフトウェアがいくつかあります。 自分も作ったうちのひとりなのですが、皆さん考えることは同じですね…… 機能やできることも異なるので、それぞれの特徴などを紹介していきます。 schematyper JSON Schema struct 作者 Igor Dubinskiy ライセンス MIT JSON Schema の type に null がある要素はポインタで表現されます。(*stringなど) JSON Schema で required でない要素は、 omitempty のタグが

    JSON Schema や JSON から Go の struct を生成する - Qiita
  • App Engine Scaling Config - Qiita

    App Engineは、Deploy時にModule Version毎にスケーリング設定を行うことができます。 結構、細かい値が設定できるのだけど、いまいちどんな作用があるのか分かりづらいものもあります。 この記事では、スケーリング設定の値にどんな作用があるのかを解説します。 Moduleって?という方は GAE ModulesをSimpleに使う を見てください。 3つのスケーリング設定概要 App Engineのスケーリング設定は3つ存在します。 それぞれ特性が違うので、Moduleでどのような処理をしたいのかによって、選択するスケーリング設定を変えます。 Automatic Scaling Request数に合わせて自動でインスタンスの追加、削除を行う設定。 App Engineでよくオートスケールが特徴と言われるのは、主にこの設定を指している。 たくさんの小さなRequestをさば

    App Engine Scaling Config - Qiita
  • Netlifyへのデプロイをビルド時間0で行うためのGitHub Actions - Qiita

    やりたいこと Netlifyにデプロイをしたいです。 なおかつビルド時間0でデプロイしたいです。そのためにGitHub Actionsを使ってNetlifyにビルド結果をそのままデプロイします。 Netlifyなら300ビルド分が無償なところが、GitHub Actionsなら公開リポジトリは無償でビルド時間無制限なはずです! Netlifyの魅了は「https://5e393ed8065133a87c00914c--piping-ui.netlify.com」のようにデプロイ毎に贅沢にサブドメインのサイトを作ってくれるところです。そのため両者を組み合わせるとビルド時間を気にせず公開リポジトリのgit pushごとに静的サイトのホスティングが無償でデプロイできてしまうはずです。 (Netlify FunctionsもあるのでFaaSも無償でいけそうです。) やりかた 以下のような.gith

    Netlifyへのデプロイをビルド時間0で行うためのGitHub Actions - Qiita
  • GitHub Actions を使って Vim をデイリービルドする - Qiita

    GitHub Actions を使って Windows 向けに Vim をデイリービルドする環境を構築したのですが、その際に得られた知見を残しておこうと思います。 今回作成したリポジトリは以下になります。 vim-kt はじめに Windows 向けの Vim のバイナリパッケージは、既に以下のようなものがあります。 公式パッケージ vim-win32-installer: 公式ナイトリービルド 香り屋 Vim: koron氏による、日語をより使いやすくするための変更を加えたパッケージ tux氏によるパッケージ ただ、いずれのパッケージにも何らかの不満があったので、Vim 8.2 のリリースを機に自分でパッケージを作ってみることにしました。 パッケージの作成に当たっては、以下のような方針とすることにしました。 毎日自動でビルドする。 自分のパッチを当てた状態でビルドする。 いくつかの日

    GitHub Actions を使って Vim をデイリービルドする - Qiita
  • x/sync/singleflight の注意点とゼロタイムキャッシュ - Qiita

    ISUCON7 の戦では、更新処理の直後に、その更新操作を反映したデータを返さないといけない、しかもそのデータの計算がとても重いという問題を出題しました。 もともと ISUCON では「POSTが200を返したら、それ以降のGETリクエストにはその結果が反映されてなければいけない」というルールが課されることが多いのですが、今回の問題もそのバリエーションの一つといえます。 さて、今年になって singleflight を知り、この種の課題にも使えそうだと思っていました。 (参考 golang.org/x/sync/singleflightで重複呼び出しを排除する) そこで今年の問題を事前に Go でチューニングして見るときに試してみたのですが、普通に適用しただけでは整合性が取れずに失敗してしまいました。そこで調べた singleflight の注意点とワークアラウンドを紹介しておきます。

    x/sync/singleflight の注意点とゼロタイムキャッシュ - Qiita
  • Vue.js+TypeScriptでコンポーネントをv-modelでつなげてみる - Qiita

    概要 以下の記事でやり方がわかったので、TypeScriptでどう書くかまとめてみました。 vueでv-modelをネストして使いたい https://qiita.com/xsota/items/010e7116c895b782b7a4 準備 Vue-Cliで環境を作ります。 GitHubに利用したプロジェクトをUPしています。実際に試してみたい方どうぞ^^ https://github.com/kai-kou/vue-js-typescript-nest-v-model ここではDockerを利用して環境構築していますが、ローカルで構築してもらってもOKです。

    Vue.js+TypeScriptでコンポーネントをv-modelでつなげてみる - Qiita
  • Alpine Linuxあるある - Qiita

    BusyBoxのtarは、「invalid magic」エラーで解凍できないことがしばしばある。 busyboxのtarは腐っているので、apkでtarをインストールして使う。 Dockerを使っているなら ADD コマンドで展開できる。 /lib64/ld-linux-x86-64.so.2 が無い。 これらにdynamic linkしている実行ファイルはエラーが起こる。 依存ライブラリは、file、lddコマンドで確認できる。 例えば、go 1.4+ http://tdoc.info/blog/2015/02/03/golang_static.html https://github.com/golang/go/issues/9344 libc6-compat を apk add して $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib64 する

    Alpine Linuxあるある - Qiita
  • GAS ビギナーが GAS を使いこなすために知るべきこと 10 選 - Qiita

    はじめに Google Apps Script (GAS) は Web ブラウザ上の JavaScript とも Node.js とも環境が異なります。その違いや、 GAS 特有の機能を理解するとさらに開発が捗るので、それらをこの記事で紹介しようと思います。 Tokyo GAS で 5 分 LT した内容です。 スライドはこちら > GAS ビギナーが GAS を使いこな すために知るべきこと 10 選 ※より網羅的で最新の情報を得たい方は DevFest 2020 の登壇動画 Google Apps Script 入門 2020 をご覧ください。 1. ローカル環境で開発する GAS を好きなエディタで開発したり、ローカルで開発したものを github に上げたりしたくなる。 Google ブログの記事 Apps Script による高度な開発プロセス で紹介されているが、 node-g

    GAS ビギナーが GAS を使いこなすために知るべきこと 10 選 - Qiita
  • ブックマークレットでHit-a-Hint! - Qiita

  • トークンを利用した認証・認可 API を実装するとき Authorization: Bearer ヘッダを使っていいのか調べた - Qiita

    トークンを利用した認証・認可 API を実装するとき Authorization: Bearer ヘッダを使っていいのか調べたAPIOAuthWeb TL;DR HTTP でトークンを利用した認証・認可をする手法として RFC 6750 がある OAuth に限らず、トークンを利用して認証・認可する機構の一部として Authorization: Bearer ヘッダを使うことができる 使い方について詳しくはこの記事の下のほうに書いた 要求 トークンを利用した認証・認可機構を持つ API を作りたい クライアントがトークンを HTTP リクエストに含めて送信し、サーバはトークンを検証してリソースへのアクセスを許可したい Authorization: Bearer トークン ヘッダでトークンを送る API あるよね、ああいうやつ 疑問 Authorization: Bearer ヘッダは OA

    トークンを利用した認証・認可 API を実装するとき Authorization: Bearer ヘッダを使っていいのか調べた - Qiita
  • ソートアルゴリズムを極める! 〜 なぜソートを学ぶのか 〜 - Qiita

    NTT データ数理システムでリサーチャーをしている大槻 (通称、けんちょん) です。 今回はソートについて記します。 0. はじめに データ構造とアルゴリズムを学ぶと一番最初に「線形探索」や「ソート」が出て来ます。これらのテーマは応用情報技術者試験などでも頻出のテーマであり、アルゴリズムの Hello World とも呼ぶべきものです。 特にソートは、 計算量の改善 ($O(n^2)$ から $O(n\log{n})$ へ) 分割統治法 ヒープ、バケットなどのデータ構造 乱択アルゴリズムの思想 といった様々なアルゴリズム技法を学ぶことができるため、大学の授業でも、アルゴリズム関連の入門書籍でも、何種類ものソートアルゴリズムが詳細に解説される傾向にあります。記事でも、様々なソートアルゴリズムを一通り解説してみました。 しかしながら様々な種類のソートを勉強するのもよいが、「ソートの使い方」や

    ソートアルゴリズムを極める! 〜 なぜソートを学ぶのか 〜 - Qiita
  • 2018 年は Hyperapp の年だ - Qiita

    この投稿は Increments Advent Calendar 2017 の14日目の記事だよ。Hyperapp という JavaScript ビューライブラリを自作しているので、その説明と作った理由について話す。 Hyperapp ができるまでのプロセスや、どんな価値観で作ったかなどを書く。新しいフレームワークを作る時の参考になれば嬉しい。 Hyperapp とは? Web アプリのフロントエンドJavaScript ライブラリ。React, Preact, Vue といった代表的なものよりもずっと小さく、1 KB という超軽量サイズ。他のライブラリに依存することなく使えて、さらにスピードもある Elmアーキテクチャーに基づいてて、アプリケーション設計はElmReact、Reduxと似てるけど、ボイラープレートは少ないし、TypeScriptにも対応して、とにかくシンプル。 El

    2018 年は Hyperapp の年だ - Qiita
    haya14busa
    haya14busa 2017/12/29
    かっくいいな
  • 1年で150個のPull Requestを出した話。あるいはOSSに継続的にコントリビュートするということについて - Qiita

    1年で150個のPull Requestを出した話。あるいはOSSに継続的にコントリビュートするということについてRubyCSSOSSCrystal なんかエモいこと書きたくなったので書きます。 はじめに CrystalというRubyライクなプログラミング言語のコンパイラに、1年間(2016/12/26〜2017/12/25)で150個のPull Requestを出しました。 今年は閏年ではなかったので365 / 150 = 2.43333...、というわけで3日に1回以上のペースでPull Requestを出したことになります。 随分とたくさんのPull Requestを出したものです。 また、150個のうちマージされたものは106個でした。 こうした活動の中で感じたことを適当に書いていきたいと思います。 継続的にOSSにコントリビュートするために 継続的にOSSにコントリビュートするた

    1年で150個のPull Requestを出した話。あるいはOSSに継続的にコントリビュートするということについて - Qiita
  • Lambda 関数に俺はなる - Qiita

    この記事は Vim Advent Calendar 2017 の25日、最終日の記事です。その1、その2、多くの方に参加頂きました。参加頂いた皆様、当にご苦労様でした。そして完走おめでとうございます。 今年のおさらい 今年は Vim の国際カンファレンス Vimconf2017 も開催され、未だ衰えを知らない Vim の人気を再認識する年になったと思っています。 Vim バージョン 8.0 がリリースされたのが去年の9月の事。約1年くらいですが、最近になってようやく皆さんに認知されてきたのかなとも思います。Vim 8.0 の新機能を今一度おさらいしておくと、大きくは以下の物がありました。 チャネルによる非同期 I/O のサポート (Channel) ジョブ (Job) タイマー (Timer) パーシャル (Partial) ラムダ (Lambda)、クロージャ (Closure) パッ

    Lambda 関数に俺はなる - Qiita
    haya14busa
    haya14busa 2017/12/25
    Lambdaすごい!
  • sort.Slice に学ぶ高速化のヒント - Qiita

    sort.Slice の実装をかいつまんで紹介し、様々な型 (特に様々なスライス型) を受け取りつつ速度を落とさず処理をするヒントを探ってみようと思います。 Go 1.8 から追加されている sort.Slice は、従来の sort.Sort と同等の速度で動作します。 気になるのが、sort.Slice には様々な型のスライスを渡せるのに、要素の交換についての処理をユーザーが記述しなくても良いということです。 // 従来の sort.Sort では、ソート対象に関する操作を定義して sort.Interface として渡している。 type ByValue []string func (s ByValue) Len() int { return len(s) } func (s ByValue) Swap(i, j int) { s[i], s[j] = s[j], s[i] } fu

    sort.Slice に学ぶ高速化のヒント - Qiita
  • Go+goyaccでシェルを実装する - Qiita

    Help us understand the problem. What is going on with this article?

    Go+goyaccでシェルを実装する - Qiita
  • git rebase -iの時に役立つプラグイン - Qiita

    はじめに 以前、と言っても結構前ですが、タイトルにあるようなgit rebase -iの時に役に立つVimプラグインというのを作ったので、それを紹介したいと思います。 動機 僕の所属している開発チームでは、バージョン管理システムにgitを使用しています。 gitは広く知られている通り、分散バージョン管理システムと呼ばれているものの一つです。その特徴と言っていいのかわからないですが、gitを利用すると、手元でのソースコードの変更を、細かい単位でローカルのリポジトリにどんどんコミットしておき、それを適当なタイミングでコミット履歴を改変して内容を整理してから、チームで共有しているリポジトリに状態を同期させるようなことができます。 git rebaseとは、そのようにコミット履歴を改変するときに使用するコマンドです。 git rebaseコマンド、特に-iというオプションを付けたものは、コミットの

    git rebase -iの時に役立つプラグイン - Qiita