タグ

ブックマーク / qiita.com (1,909)

  • グローバルゲームジャムでクラス設計をやった話2020 - Qiita

    はじめに 毎年恒例のグローバルゲームジャム。今回も参加してきたのでそのまとめを書きます。 2016 -> グローバルゲームジャムでクラス設計をやったらスムーズに開発が進んだ話 2017 -> グローバルゲームジャムでクラス設計をやった話2017 2019 -> グローバルゲームジャムでクラス設計をやった話2019 グローバルゲームジャムとは GGJとは全世界同時に行われるゲームジャムのことです。ようするに、世界規模のゲーム開発ハッカソンです。 プログラマ、デザイナ、プランナ、グラフィッカなどさまざまな役職の人をごちゃまぜに、3~8人程度のチームを組み、48時間でゲームを作ろうというイベントです。(前回のコピペ)(前回のコピペ)(前回のコピペ) 今回も「ヒューマンアカデミー秋葉原会場」に参加しました。 ゲームの概要 今年のテーマ 今年のテーマは「REPAIR」でした。シンプルにわかりやすいテ

    グローバルゲームジャムでクラス設計をやった話2020 - Qiita
  • TypeScriptをプロダクト開発に使う上でのベストプラクティスと心得 - Qiita

    同じTypeScriptという言語を利用する場合においても、トランスパイラによってTypeScript自体の機能制限がかかったり、思わぬトラブルを招く場合があります。それぞれのトランスパイラの特徴を踏まえた上で、それにより生じる問題も見ていきましょう。 1-1. tsc TypeScriptの開発元であるMicrosoft純正のTypeScriptトランスパイラです。TypeScriptを利用する際に typescript パッケージをインストールする必要がありますが、それに同梱されています。 公式ツールなだけあって最も早く最新バージョンのTypeScriptに対応したり、言語すべての機能を利用することができる一方で、バンドラではないためminifyやchunkの設定はできません。また、Path Aliasesの未解決や旧ESへの互換性が不完全であることが欠点として挙げられます。 tsco

    TypeScriptをプロダクト開発に使う上でのベストプラクティスと心得 - Qiita
  • オレだよオレオレ認証局で証明書つくる - Qiita

    ほうほう。.pemは鍵の種類ではなく暗号方式を表しているから、rsa方式で暗号化された秘密鍵も証明書も同じ拡張子になってる場合があるのか。 この辺は好みの問題なのか?そこはようわからん。 オレオレ認証局開設 世の中で見られるオレオレ証明書の作り方って、root認証局の証明書だった。 root認証局とは証明書の署名をしてくれているラスボス。ゾーマだよ。 ゾーマは子分であるバラモスが物だって署名してくれている。 バラモスは子分である・・・と階層構造で署名がたどれる。 じゃぁゾーマを署名しているのは? それはゾーマ自身が自分の証明書に署名している。これが自己証明書だ。 この自己証明書が物だって登録がOSにある。 前提条件 今回はCentOS6のyumインストールで入ってるopensslでの記録。 コマンドパスとかファイルの場所とか違っても基やることは一緒。 Macの場合は純正インストールの

    オレだよオレオレ認証局で証明書つくる - Qiita
  • 「アプリケーションが壊れているのに検知できないテストコード」を書かないようにするための、べからず集 - Qiita

    はじめに テストコードを書くことは重要です。 テストコードがないアプリケーションよりもテストコードがあるアプリケーションの方が望ましいことは間違いありません。 ですが、テストコードも書き方を間違えると、アプリケーションが壊れているのに正しく検知できないテストを書いてしまう可能性があります。 この記事ではそんな「アプリケーションが壊れているのに正しく検知できないテスト」のコード例を「〜するべからず(〜してはいけない)」の形式で紹介し、その修正方法を説明していきます。 サンプルコードはRSpecで書いてます(でも他の言語でも考え方は同じはず) サンプルコードはRailsアプリケーションをRSpecでテストする場合を想定したものになっていますが、基的な考え方自体は他の言語やテスティングフレームワークでも適用可能なはずです。 RSpecのイロハについて先に学んでおきたいかたは「使えるRSpec入

    「アプリケーションが壊れているのに検知できないテストコード」を書かないようにするための、べからず集 - Qiita
  • ラズパイでやらなければいけない4つのセキュリティ対策! - Qiita

    この記事はRaspberry_Pi - ラズパイでやらなければいけない4つのセキュリティ対策!の再投稿です。 はじめに ラズパイは低価格で高スペックで出来ることも多いのですが、セキュリティ面を何も気にせずデフォルトで利用するのはかなり危ないです! というのも、ラズパイを使う以上はおそらくインターネットに接続することになると思うのですが、ラズパイはrootユーザーの名前とパスワードが公開されているので、インターネットに接続した段階で、猛烈なアタックを受けます。 なので 新規ユーザーの作成 SSHで公開鍵認証 ポート番号等の設定変更 piユーザーの削除 を行っていきます 参考:5ステップで完了!ラズベリーパイ(B+)のセキュリティ設定まとめ! 前提条件! 参考:Raspberry PiにSSHで公開鍵認証を使いたい! まずはルートユーザーでログインします。 ラズパイの設定が終わっていない方はこ

    ラズパイでやらなければいけない4つのセキュリティ対策! - Qiita
  • Vue.jsで作成された、ちょっと面白くて役立ちそうなサービス - Qiita

    こちらに移行しました。(2020/05/16) 概要 Vue.jsで作成されたプロジェクトを紹介しているサイト 「made with vue.js 」があります。 面白くて役立ちそうなツールやサービスをまとめてみました。 UIコンポーネント VueSocial ソーシャルサービスのボタンを作成するVueのコンポーネント CKEditor 5 リッチテキストエディタのコンポーネント Vue.Draggable ドラッグ&ドロップのコンポーネント Vuetable 2 データテーブルのコンポーネント。demo vuejs-datepicker vueのdatepicker Kalendar Vueのカレンダーコンポーネント Vue Apexcharts SVGベースのグラフ可視化コンポーネント Vue.js Google Charts VueGoogle Charts vue-cart ショ

    Vue.jsで作成された、ちょっと面白くて役立ちそうなサービス - Qiita
  • Vue開発者のためのVue.jsベストプラクティス集15選 - Qiita

    はじめに みなさん、Vue使ってますかー!・・・・・・・(へんじがない。ただのしかばねのようだ。) 私は毎日使ってます。が、正しい使い方というのがいまいちわかっていません。ということで、ネットで拾ってきた情報を元にVueで開発する上でのベストプラクティス集15選をまとめてみました。 「ふんふんそうだよね〜」といったものから「えー!?そうなのー!?」となるものまで集めています。皆さんの開発の手助けになる情報が入っていると幸いです。 また、間違っている内容やさらに良い方法等あれば、コメント欄にて(優しく)ご指摘いただけるととても嬉しいです。 1. v-for内では必ず:keyを使う v-forディレクティブでkey属性を使うと、データを操作するのに役立ちます。さらに、Vueがコンポーネントの状態を追跡し、それぞれのエレメントに対し継続的に参照ができるようになります。 特に、アニメーションやVu

    Vue開発者のためのVue.jsベストプラクティス集15選 - Qiita
  • FFT(高速フーリエ変換)を完全に理解する話 - Qiita

    となります。 この $C_i$ を、$0\leq i\leq 2N$ を満たすすべての $i$ について求めるのが今回の目標です。 それぞれ愚直に求めると、$f,g$ の全項を組み合わせて参照することになるので、 $O(N^2)$ です。これをどうにかして高速化します。 多項式補間 愚直な乗算は難しそうなので、$C_i$ の値を、多項式補間を用いて算出することを考えます。 多項式補間とは、多項式の変数に実際にいくつかの値を代入し、多項式を計算した値から、多項式の係数を決定する手法です。 たとえば、$f(x)=ax+b$ という $1$ 次関数があるとします。 $a$ と $b$ の値は分かりませんが、$f(3)=5,f(7)=-3$ がわかっているものとします。 実際に $3,7$ を代入してみると、 $3a+b=5$ $7a+b=-3$ と、連立方程式が立ち、$a,b$ の値が求められま

    FFT(高速フーリエ変換)を完全に理解する話 - Qiita
  • 厳選!C++ アルゴリズム実装に使える 25 の STL 機能【前編】 - Qiita

    (AtCoder Beginner Contest 152 で提出されたソースコードの分類) それほど C++ が、競プロやアルゴリズムの学習に人気であるのには、以下のような理由があるのです。 計算速度が 1 秒あたり $10^{8} ~ 10^{9}$ 回程度と、他のプログラミング言語に比べ高速だから。 基礎的文法の習得がそれほど難しくないから。 しかし、C++ の利点はこれだけではありません。元々用意されている標準ライブラリがあるのです。一方、標準ライブラリは C++ を学ぶ大きな障壁となるものの一つです。C++ を学ぶ上で標準ライブラリが上手く使えず挫折したという人も多いと思います。そこで記事では、 競技プログラミングやアルゴリズムの実装に使える 25 個の C++ 標準ライブラリと、それらの各種アルゴリズム実装への応用例 を解説したいと思います!!!!! 記事を読んだら何ができ

    厳選!C++ アルゴリズム実装に使える 25 の STL 機能【前編】 - Qiita
  • 良いコードの書き方 - Qiita

    概要 チームによる継続的開発を前提としたコーディングのガイドライン。 特定の言語を対象としたものではないが、主に静的型付けのオブジェクト指向言語を想定している。 サンプルコードは別段の定めがなければSwiftで記載。 ガイドラインの目的 生産性を高め、メンテナンスコストを下げる バグが生まれづらくする 開発メンバー(特に新規参加者)がコードを理解しやすくする 初心者プログラマー教育 内容の説明 タイトルの頭についた【数字】は重要度。 高いほどシステムに与える影響が大きいが、低いものの方が影響が小さく改修しやすいものが多い。 【5】変数のスコープを小さくする 変わり得る値は複雑さを生み誤解やバグに繋がるため、プログラムは変数が少ないほど問題が生まれづらい。 プログラミングの大原則として、変数は必要最低限を心がけ、むやみに増やさないようにする。 また、変数はスコープや寿命が大きいほど悪影響が

    良いコードの書き方 - Qiita
  • 【Firebase, Nuxt】リアルタイムなスライド共有サービスを作ってハッカソンで優勝した話 - Qiita

    昨年末にFirebaseのアイデアソン/ハッカソンに参加しました。 その場で出会った3名で即席チームを結成して、約1ヶ月でFirebaseを使ったサービスを開発しました。 その結果、最優秀賞を獲得し、更に1ヶ月で機能を追加して、サービスを正式リリースしました! 自分なりに大きな経験になったので、その経緯をサービス紹介を含めて公開します。 個人開発したいと思っているエンジニアで、参考にしてくれる人がいたら幸いです。 どんなサービスか "SlideLive(スライドライブ)"といいます。 勉強会やセミナーのライブ感を飛躍的に高めるリアルタイムスライド共有サービス です。 SlideLiveのコンセプト 勉強会をライブに 私はプレゼンが苦手です。 「アイスブレイク」ってどうやったらいいのでしょうか? 「勉強会でプレゼンしている時にリアクションが無く緊張する」ことってありませんか? そんな課題認識

    【Firebase, Nuxt】リアルタイムなスライド共有サービスを作ってハッカソンで優勝した話 - Qiita
  • 認証付きGraphQL APIサーバーを爆速で立てる。 Hasura + Firebase Authentication - Qiita

    認証付きGraphQL APIサーバーを爆速で立てる。 Hasura + Firebase AuthenticationFirebaseGraphQLcloudfunctionsFirebaseAuthenticationHasura HasuraはPostgreSQLからGraphQL APIサーバーを爆速で構築できるものの、認証については外部の認証基盤を使う必要があります。 今回は、認証基盤としてFirebase AuthenticationのJWT認証を使った例を紹介します。 Hasuraの認証について Hasuraの認証はWebhook方式と、JWT方式があり、今回はJWT方式を使います。 JWTは属性情報をJSONデータ構造で表現したトークンを使い認証を行う方法で、Firebase Authenticationにて採用されています。 Hasuraの認証でFirebase Auth

    認証付きGraphQL APIサーバーを爆速で立てる。 Hasura + Firebase Authentication - Qiita
  • 要件定義~システム設計ができる人材になれる記事 - Qiita

    はじめに 株式会社デジサク がお送りするプログラミング記事、 今回は要件定義・システム設計について扱っていこうと思います。 プログラミングを勉強していて、こんな事を感じた経験はないでしょうか。 「勉強してもプロダクトが作れない」 「そもそも開発ってどうやるの?」 「要件定義ってなに?」 その悩みを解決するために、まずは開発の全体感を理解しましょう。 下図『ソフトウェア開発プロセス』をご覧ください いつも勉強しているプログラミングは 『実装』 の部分に該当します。 つまり、プログラミングの実力を発揮する前に4つも壁が存在するのです。 そのため、記事では実装(プログラミング)を開始する前に必要となる、 『企画~設計』 について順を追って説明して行きます。 特に、エンジニアが理解しておくべき 『要件定義』『設計』 にフォーカスします。 なお、開発全体において実装(プログラミング)に使用する時間

    要件定義~システム設計ができる人材になれる記事 - Qiita
  • Docker入門:Docker概要,基本操作,マウント,Dockerfile,マルチステージビルド - Qiita

    最近ちょっとDockerを入門しました。 アウトプットも兼ねて、ハンズオンっぽくまとめてみたので公開したいと思います。 まだ「Dockerを触ったことない」という方の入門に使って頂けたら幸いです。 ※出力結果のすべては記載できていません。(ハンズオンで一緒に操作して確認しながら進める想定だったため) 目次 事前準備(環境構築) Docker概要 ハンズオン1:基操作 ハンズオン2:マウント ハンズオン3:Dockerfile ハンズオン4:マルチステージビルド おわり 事前準備(環境構築) 公式ドキュメントなど参考に構築してください。 Docker Documentation - Get started with Docker Docker Hubアカウントをお持ちであれば、Play with Dockerが便利です。 インストールなしでDockerを試すことができます。Login、St

    Docker入門:Docker概要,基本操作,マウント,Dockerfile,マルチステージビルド - Qiita
  • MySQL データベースの負荷対策/パフォーマンスチューニング備忘録 インデックスの基礎〜実践 - Qiita

    TL;DR この記事に書いた事 二分探索木のお話(前提知識) MySQLのInnoDBで利用されているB+木インデックスの構造と特性 (前提知識) MySQLのClusteredIndex,SecondaryIndexについて(前提知識) カーディナリティについて(前提知識) 実際の負荷対策 検出編 スロークエリ 検出編 その他のクエリ割り出しいろいろ クエリ・インデックスの最適化 explainの使い方と詳細 ケース別実践 単純にインデックスがあたっていないケース カーディナリティが低いインデックスが使われているケース 部分的にしかインデックス/複合インデックスがあたっていないケース 複合インデックスの順序誤りでインデックスが適用できていないケース 複合インデックスの最初がrange検索のケース ソートにインデックスが適用できていないケース ソートにインデックスが適用できていないケース(

    MySQL データベースの負荷対策/パフォーマンスチューニング備忘録 インデックスの基礎〜実践 - Qiita
  • 【GitHub】README.mdをカッコ可愛くデザインしてアプリの魅力を120%にする - Qiita

    就職活動をするにあたってポートフォリオを誰にでも分かりやすく伝える為に、リポジトリの説明であるREADME.mdをカッコ可愛く見せられないか試行錯誤したので共有します。 最近はGitHubで採用をしている会社さんもあるので是非分かりやすく力を入れたい所です。 リポジトリを見てくれても分からない物を丁寧に構築して確認してくれる可能性は低いです。 エンジニアを目指している人など凄いアプリを作っている人はいますが、READMEを書いていない人が多く、しっかり見てもらえているのか私はずっと気になっていたのでまとめました。 🎨 作ってみた物 以下、私のリポジトリにあるアプリのREADME.mdを一部紹介します。 それぞれ全体を見たい場合はリポジトリへ ・ ラーメンタイマー アプリの雰囲気に合わせてかっこよく可愛くしてみた。 ・ 書籍管理アプリ 緑をベースに目立ち過ぎずにアプリの仕組みを伝えたい。

    【GitHub】README.mdをカッコ可愛くデザインしてアプリの魅力を120%にする - Qiita
  • 順を追って学ぶKubernetesのキホン〜ローカル環境でKubernetesクラスターを作成してKubernetesの概念を理解する〜 - Qiita

    順を追って学ぶKubernetesのキホン〜ローカル環境でKubernetesクラスターを作成してKubernetesの概念を理解する〜Dockerインフラkubernetescontainermicroservices こちらの記事は、Jonathan Natanael Siahaan 氏により2019年 10月に公開された『 Step by Step Introduction to Basic Concept of Kubernetes 』の和訳です。 記事は原著者から許可を得た上で記事を公開しています。 Kubernetesを聞いたことがありますか? 興味があることは間違いないはずです。 だからこそこの記事を開いたのでしょう。 この記事では、Kubernetesの基概念とその使い方について説明します。 最終的には、Minikube上で動くKubernetesを使用してdocker

    順を追って学ぶKubernetesのキホン〜ローカル環境でKubernetesクラスターを作成してKubernetesの概念を理解する〜 - Qiita
  • 現場で役立つシステム設計の原則メモ - Qiita

    This article is a Private article. Only a writer and users who know the URL can access it. Please change open range to public in publish setting if you want to share this article with other users. ※この記事は著者の増田さんの了解の上で限定公開させて頂いております。 https://twitter.com/masuda220/status/1215122054795522049?s=20 オブジェクト指向、設計がなぜ必要か = ソフトウェア全体の整理整頓をするため 第1章 小さくまとめてわかりやすくする 変更が大変なプログラムの特徴 メソッドが長い クラスが大きい 引数が多い 関心事を詰め込みすぎ

    現場で役立つシステム設計の原則メモ - Qiita
  • 【Google Apps Script, Slack】彼女にバレずにワクワクメールのメッセージに気付くために夜な夜な怪しげなスクリプトを組んだ話 - Qiita

    次に、Google Apps Script にて 1 分おきに動くスクリプトを用意する スクリプトでは、まず Gmail の内容をチェックし、該当のタイトルのメールを抽出する 抽出したメールの中で、スター(★)がついていないメールにおいて、メール文から、ユーザ情報およびメッセージ文を抽出する ユーザ情報を隠蔽した文字列を、Slack に用意した"通知あり"のチャンネル(#tsuchi)に飛ばす ユーザ情報およびメッセージ文を、Slack に用意した"通知なし"のチャンネル(#hitsuchi)に飛ばす もちろん、処理が終わったメールについては、スター(★)をつけることを忘れない 前提事項 Slack にて、"通知あり"のチャンネル(#tsuchi)および"通知なし"のチャンネル(#hitsuchi)は作成済み 上記チャンネルに対応する Webhook URL は、Slack にログイ

    【Google Apps Script, Slack】彼女にバレずにワクワクメールのメッセージに気付くために夜な夜な怪しげなスクリプトを組んだ話 - Qiita
  • Vue Devtoolsでパフォーマンス改善ポイントを見つける - Qiita

    この記事は、Vue.js Advent Calendar 2019 #1 8 日目の記事です。 Vue Devtools の Performance タブを使って、パフォーマンスの改善ポイントをサクッと見つける方法を紹介したいと思います。 「サクっと」というのがポイントです。 さらに、見つけた改善ポイントから実際にパフォーマンスを改善する例を紹介したいと思います。 Vue Devtools とは Vue.js を使った開発におけるデバッグなどを助けてくれるツールです。 vuejs/vue-devtools Chrome Extensionとしても提供されています。 機能ごとにタブが存在しており、今回はその中の Performance タブを使います。 Vue Devtools について詳しくは以下の記事が参考になると思います。 Vue Devtools で快適なデバッグ - ROXX(旧

    Vue Devtoolsでパフォーマンス改善ポイントを見つける - Qiita