坂東です。 WebRTCでP2P(STUNだけ)で疎通できない回線を見つけたのでTURNサーバーを立てることにしました。 手順とかハマった点を共有します。 1.TURNサーバーの選択とインストール 「rfc5766-turn-server」というのは更新が終わり、今は「Coturn」というのが主流のようでした。 以下のサイトあたりを参考に、Coturnをインストールしました。 https://gist.github.com/uemuraj/1909514059a056f3a024 http://qiita.com/okyk/items/2d7db6b148a43bc3b405 10分もあればサービス起動までいけると思います。 ためしにrfc5766も入れてみましたが、挙動も設定ファイルもほぼ同じでした。 2.動作確認の手順 立てたTURNを早速自分のサービスに組み込んで見る。 でも、うまく
講演動画:https://youtu.be/YXGmiWzHxeo 基礎編:https://www.slideshare.net/EpicGamesJapan/ue4-festeast2019-60fpsbasic 2019年10月6日に行われた「UNREAL FEST EAST 2019」における「60fpsアクションを実現する秘訣を伝授」の登壇資料です。 ●公式サイト https://unrealengine.jp/unrealfest/ === 発売中のタイトル「NARUTO TO BORUTO シノビストライカー」に開発中のプロジェクトの事例も加えて、60fpsアクションゲームを実現するためのポイントや、パフォーマンス・チューニングについて解説します。おまけとして「NARUTO TO BORUTO シノビストライカー」のグラフィック面の技術を紹介。
概要 前回セーブ関連の記事を書きましたが、一定数の関心がある技術領域のようで、記事を公開して数年がたった今でもちょくちょく訪問いただいています。 前回記事で紹介したセーブクラスは使いづらい部分もあり、個人的には納得がいってませんでした。 今回はUnity標準のPlayerPrefsクラスを参考に、同じような使い勝手で使用できるコードを意識して実装しました。 またUnity 5.3でJson関連がUnity標準機能になったので、前回まで使用していたLitJsonはお役御免としました。 前回の問題点、今回の改良点は以下のとおりです。早く機能実装したい方は読み飛ばしてください。 問題点 ・LitJson.dllが必要。→dllインポートが手間かかる。以下のとおりビルドをミスる可能性ありとのこと(コメントありがとうございました!) ・セーブしたい変数を増やすたびにGameDataクラスに追記しない
はじめに このオンラインブックは執筆中です。完成版ではありません。フィードバックフォーム この本には一冊の本に盛り込むにはやや欲張りな内容を詰め込みました。本書では、C言語で書かれたソースコードをアセンブリ言語に変換するプログラム、つまりCコンパイラを作成します。コンパイラそのものもCを使って開発します。当面の目標はセルフホスト、すなわち自作コンパイラでそれ自身のソースコードをコンパイルできるようにすることです。 この本では、コンパイラの説明の難易度が急に上がりすぎないように、様々なトピックを本書全体を通じて次第に掘り下げていくという形で説明することにしました。その理由は次のとおりです。 コンパイラは、構文解析、中間パス、コード生成といった複数のステージに概念的に分割することができます。よくある教科書的アプローチでは、それぞれのトピックについて章を立てて解説を行うことになりますが、そのよう
IIJ プロダクト本部 応用開発課 所属。2015年に新卒入社。webアプリケーションの実装・運用を中心にやりたいことがあれば何でも手を出してみる所存です。 【IIJ 2018 TECHアドベントカレンダー 12/6(木)の記事です】 はじめに 最近go言語でDDDやクリーンアーキテクチャを実践してみたという記事を多く目にするようになりました。 自分が半年ほど前に初めてgoでサーバーを実装することになった際も、先人達の記事のおかげでどうにか形にすることができました。 特に pospome さんの Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える はとても参考にさせていただきました。 (勝手に出してしまって申し訳ありません。) 恩返しというわけでは無いですが、自分なりに消化して実装したものを紹介したいと思います。サンプルコードは実際のコードを元にでっち上げて書いているので
はじめに Go 言語練習のため gorilla/mux, gorilla/context, gorilla/sessions を使ったユーザーログイン機能を実装してみました。 ユーザーの管理はメモリ上の map 型変数にユーザー名とパスワードを入れているだけなので、ここをDBに変えるのが次の課題のつもりです。 package main import ( "net/http" "html/template" "github.com/gorilla/mux" "github.com/gorilla/context" "github.com/gorilla/securecookie" "github.com/gorilla/sessions" "errors" ) var ( // セッションストアの初期化 store *sessions.CookieStore = sessions.NewCo
Hi folks. Today, I would like to write up a step - by - step guide with a sample web app on how to do Google Sign-In and authorization. Let’s get started. EDIT: A sample project of this, and Part 2, can be found here or here. Setup# Google OAuth token# First what you need is, to register your application with Google, so you’ll get a Token that you can use to authorize later calls to Google service
TL;DR Go Modules(vgo)はGo1.11から導入され始めたGoの新しいバージョン管理 Go1.12ではまだ有効にはなっていない(Go1.13からはデフォルトで有効になる) Go Modulesの概要とTipsなどを簡単にまとめた Go1.12のModules関連の変更をDockerを動かして確認してみた GOPATHi外でgo.modがなくてもgo run可能 replaceディレクティブで依存パッケージをローカルのコードを使って解決 etc… 確認に利用したDockerfileやスクリプトは以下のリポジトリにある。 https://github.com/budougumi0617/gomodules-explore vgo発表前のGoのバージョン管理は以下のような手法が取られていた。 go getでgo1タグ・ブランチもしくは最新のmasterブランチを取得する go g
あなどるなかれ部活制度 SmartHR社は、組織づくりが上手くいってると思われているようで、社外の人から組織や人事制度についての質問をたくさんいただきます。 そのなかで「部活いいですよ」と答えることが多いのですが、8割くらいは「部活ですか…。ふーん…。」という、興味がなさそうなリアクションをもらいます。 そのリアクションわかる。なぜなら私も昔はそうでした。しかし、あなどるなかれ部活制度。 SmartHR社の福利厚生の利用率を調べてみたら「部活」がやばかったw ・52部活が存在 ・のべ182回活動 ・のべ1,164人が参加 ・1回でも参加した社員は90名(全体の86.5%) ・これまで178万円を支給(1人1回1,500円補助) ・最も活動数が多いのは「うなぎ部」 いま社員数104名で、1年ちょっとの数字です— 宮田 昇始 (@miyasho88) 2019年3月12日 部活導入前の課題感
インスパイア元→kamipo traditional (というかSTRICT_ALL_TABLES) では防げないMyISAMという名の化け物 タイトルが全てです。ピンときた方は読み進む必要はありません。 データがなかったらINSERTして欲しいけど既に入っている場合には何もして欲しくないみたいな処理をするときに、 INSERT IGNORE を使ってしまうことがありますが、 INSERT IGNORE はユニークキー制約違反だけじゃなくて、あらゆるエラーをIGNOREしてしまいます。つまりkamipo TRADITIONALすらIGNOREしてしまうのです。なので使わないほうが安全です。 様子です。 mysql> SET SESSION sql_mode='TRADITIONAL,NO_AUTO_VALUE_ON_ZERO,ONLY_FULL_GROUP_BY'; Query OK, 0
CakePHPはよく触っていたものの、MySQLについてあまり知らなかったんですが、大規模なデータベースを扱ってみようと思い立ちいろいろ試行錯誤しています。 で、ついさっき感動したのが、40万件のレコードを扱ってるテーブルに簡単なSELECT分を投げて返ってくる時間がなんと5秒もかかっていて、なんじゃこりゃ?って首をかしげてたんですが、INDEXひとつで劇的に早くなったこと。 40万件が大規模かそうでないかはこの際おいておいて、INDEXのつけ方次第でこんなにも速度に変化があるのかと涙が出そうになった。 最初の激遅いテーブルは簡単に書くとこんな具合。 CREATE TABLE IF NOT EXISTS `shops` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `status
なんか日付け型のカラムにインデックスをつけようと思ったんだけど、これってほんとに有効なの?って思ったので、改めて検証して見たんだよという話からの気付き。 皆これ当たり前の様に知っているのかなぁ。少なからず僕は改めて気づいたのでメモとして。 前提条件 MySQL5.6 以下のテーブルを検証用に用意します。検証するデータ型はTIMESTAMPとDATETIMEです。 [sql] CREATE TABLE test (c1 INT NOT NULL AUTO_INCREMENT, c2 TIMESTAMP, c3 DATETIME, PRIMARY KEY(c1), KEY (c2), KEY (c3)) ENGINE InnoDB; INSERT INTO test (c2, c3) VALUES (‘2014-01-01 00:00:00’, ‘2014-01-01 00:00:00’),
はじめまして。2019年1月に入社したSREスペシャリストのsonotsです。最近MLOpsチームのリーダーになりました。今回の記事はMLOpsの業務とは関係がないのですが、3月に弊社で実施した会社用GitHub個人アカウントの廃止について事例報告します。 TL;DR 会社用GitHubアカウントを作るべきか否か問題 会社用GitHubアカウントの利用で抱えた問題 1. OSS活動時にアカウントを切り替える必要があり面倒 2. GitHubの規約に準拠していない 会社用アカウントを廃止した場合にセキュリティをどのように担保するか GitHubのSAML single sign-on (SSO)機能について 会社用アカウントの廃止およびSSO有効化の実施 会社用GitHubアカウントを使い続ける場合 私用GitHubアカウントに切り替える場合 Botアカウントの場合 Outside Coll
インターネットで検索するとPerl4のころの古い記述がたくさんあります。また書籍などの多くもPerl4の記法で書かれています。Perl4の記法は複雑になりやすく間違いを生みやすいのでこれからPerlを書く人はPerl5の現代的な記法で記述することを強くお勧めします。 strictプラグマとwarningsプラグマ (必須) strictプラグマとwarningsプラグマを有効にします。 use strict; use warnings; use strict;とuse warnings;の2行はスクリプトの最初に必ず記述してください。これらはPerlの文法チェックを厳しくするためのものです。面倒だという軽い気持ちでこれを記述しないと後々本当に面倒なことになります。 use strict;とuse warningsを書かなくてもよいのはワンライナーと呼ばれるコマンドラインスクリプトを記述する
Drivemodeというスタートアップにジョインしてから4年が経ちました。ジョインした(入社すると決めた)当時はまだシードラウンド以前であり、ファウンダー4人+エンジニア2人という状態でした。ですが今となっては組織も数十人規模まで大きくなってきています。 組織が大きくなるにつれ、様々な組織やマネジメントの問題に遭遇するようになり、今後もこれらと真剣に向き合わないといけません。 本記事では、これまでの経験を踏まえて、組織の成長に伴ってどのようなアプローチで組織や文化を構築すれば良いか、考えをまとめて書きます。 常に管理されたプロダクトバックログの重要性 いきなりですが、まずプロダクトバックログの話をします。 常に管理されているプロダクトバックログというものは非常に大切です。プロダクトバックログとは目的地に向かうための道筋であり、そこが空になっていたり、でたらめな状態だと、車(プロダクト)は暴
今回は JVM, .NET といった仮想マシン(VM)についての記事です。 最初、 .NET と仮想マシンの説明のスライドを作っていたのですが、 最近 JVM と BEAM を少し調べて興味がでてきたので、合わせて VM の話としました。 そうすると今度は、スクリプト言語や LLVM の話も外せないなと思って足したら、結構な大作になってしまいました。 JVM に絞った話では、以下の記事にも説明を書いているので、こちらもご覧ください。 JDK のインストール(Windows)と Java 関連用語の説明 | プログラマーズ雑記帳 スライド版です。 ここからブログ版です。 はじめに 仮想マシンといっても、 OS のエミュレーターのようなものではなく、 JVM といったプロセス仮想マシンについてのお話です。 JVM 、 .NET Framework など最近、この仮想マシン(VM)のシェアが大幅
κeenです。これは言語実装 Advent Calendar 201714日目の記事です。 JVMのコンパイラエンジンGraalと高速インタプリタ作成フレームワークのTruffleについて。 この記事の前に昨日の記事を読んでおくと理解の助けになるかもしれません。 Graalについて 公式ページ/GitHub。 Oracle Labで開発されているJavaのJITエンジンの1つです。 JVMのコンパイラインタフェース(JVMCI)を利用してJavaでコンパイラを書いたものです。 従来はコンパイル部分はC++で書かれてましたが曰くJavaも十分速くなったし高級で安全なJavaでコンバイラを書いてもいいだろとのこと。 この絶妙にランタイムが拡張可能でかつパフォーマンスを損なわない感じはJavaならではですね。 また、Javaで書かれているのでユーザがJavaで拡張可能でもあり、最適化や機械語生成
Javaでコンパイラを書くと大きな利点がいくつかあるとわかる。次のようなことだ。 コンパイラエンジニアが新規に加わる際のハードルが非常に低くなる。 コンパイラにおいてメモリ安全になる。 コンパイラ開発で成熟したJavaのツール群を活用できる。 新しいコンパイラ機能のプロトタイプをより早く作れる。 コンパイラがHotSpotから独立したものとなる。 コンパイラが自分自身をコンパイルでき、自分自身のより速いJITコンパイルされたバージョンを生成できる。 Graalは新しいJVMコンパイラインタフェース (JVMCI) を使っている。これはHotSpotにプラグインできるようJEP 243として提供されているが、GraalVMの主要な部分としても使われている。この技術はもう存在しており、現時点でリリースされているが、Java 10ではまだかなり実験的な技術である。次のようにすると新しいJITコン
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く