タグ

ブックマーク / akisute.com (10)

  • セキュリティを一切考慮しないMMORPGを開発するとどうなるか

    どうもご無沙汰しております。Blogが私の年1回の生存報告、兼、アドベントカレンダー用と相成って久しいですが、今年も一発恒例行事として筆を取らせていただきたいと思います。 今年、私が話題に取り上げますのは、とあるゲームです。Amazon Game Studiosという会社が開発・リリースしました、New WorldというMMORPGについてご紹介させていただきたいのです。ゲームの話題には一切興味がない読者諸君も、どうか少し我慢して、私に騙されたと思って最後まで話を聞いていただけませんでしょうか。そもそも、あのAmazonが開発したMMORPGというのですから、どれほどゲームに興味がなくても、技術に興味のある方でしたら、少しは興味深く感じられるのではないでしょうか? けして後悔はさせませんよ。悪い方向にね。 さて、ゲームに何ら興味知識のない方にもわかるように少し解説を入れさせていただきます

    セキュリティを一切考慮しないMMORPGを開発するとどうなるか
  • マネージメントに必要なことは全てゲームから学んだ

    この投稿は毎年恒例、pyspa Advent Calendar 2020の1日目の投稿になります。 どうもご無沙汰しております、akisuteです。すっかり年に1回アドベントカレンダーのときにだけ顔を見せる人になっておりますが、おかげさまで無事平穏に過ごしております。 さて突然ですが私はプログラマーを引退しました。 なぜなら今年で36歳だからです。プログラマーは35歳になったら定年ですね。 実際のところ、このぐらいの年になると、よほど何らかの意志が働かない限り、技術に対する情熱みたいなものが失われてくると思います。もちろん当に技術とプログラミングが好きな人は間違いなく35歳なんかで情熱を失ったりはしないと断言しますが、残念ながら私はそうではなく、もはやiPhoneには大した興味が湧いておりませんし、最近はJavaだのGoだのTypescriptだのVue.jsだのといったものを必要に応じ

    kutakutatriangle
    kutakutatriangle 2020/12/01
    これだけ長い文章なのに読みやすいというのはすごい文才。ためになる話でよかった
  • レガシーな Objective-C プロジェクトを Swift なプロジェクトに変換する

    ここで言うレガシーなObjective-Cプロジェクトの定義とは iOS 7時代 (Xcode 5) より前に作成されたプロジェクトである Swiftのコードを一行も含んでいない IOS_DEPLOYMENT_TARGETが8.0よりも小さい (7.xをサポートしている) とします。 こんな由緒正しいiOSのプロジェクトを未だにメンテしている人もなかなかいないのかと思いますが、もしいらっしゃいましたらそんな方のためにSwiftプロジェクトに変換していく方法をメモしておきます。 ■前提条件 まずIOS_DEPLOYMENT_TARGETを8.0以上にしましょう。IOS_DEPLOYMENT_TARGETを8.0以上にすることでdynamic frameworkおよびclang moduleが使えるようになるため、Objective-CとSwiftの間の垣根が非常に低くなります。 ■ケース1

    レガシーな Objective-C プロジェクトを Swift なプロジェクトに変換する
  • Xcode 7.2 の LLDB で Swiftのデバッグをするコツ

    現在のXcode 7.2でSwiftを使ったiOSアプリのデバッグをするときのコツみたいなものをまとめました。将来的にはより良くなる可能性はあります。というか良くなってほしいです(´・_・`) ■LLDBbreakした地点によって挙動が変わるまずハマりどころがこれですが、現在のLLDBbreakした地点で実行されていたコードがSwiftのコードかC言語系のコードかによってモードが変わります。 // Objective-C mode (lldb) po [someObject property] // Swift mode (lldb) e someObject.property Objective-Cモードの時にSwiftっぽい呼び出しをしたり、その逆をしてもまともにLLDBは動作しません。なので現在自分がどちらのモードのLLDBにいるのかを判断するのがキモになります。 ハマりどころと

    Xcode 7.2 の LLDB で Swiftのデバッグをするコツ
  • Apple Push Notification (APN) 使用時の delegate の挙動について、 iOS 7以降 / iOS 6以前の差をまとめた

    Apple Push Notification (APN) 使用時の delegate の挙動について、 iOS 7以降 / iOS 6以前の差をまとめた iOS 7以降とiOS 6以前で、俗にいうリモートPush通知の受け取り方と受け取った際の挙動がまるで違っているので、最近リモートPush通知を実装した時につまづいた箇所をまとめてみました。 使用するdelegate methodの違い いかなる種類のPush通知においてもapplication:didReceiveRemoteNotification:fetchCompletionHandler:を使用します。 application:didReceiveRemoteNotification:fetchCompletionHandler:とapplication:didReceiveRemoteNotification:が両方実装され

    Apple Push Notification (APN) 使用時の delegate の挙動について、 iOS 7以降 / iOS 6以前の差をまとめた
  • Swift を使ってみてがっかりした点まとめ

    数日間iOS8/Xcode6/Swiftな環境で色々試してみて、Swiftを使っていて思ったよりがっかりした点が多かったのでちょっとまとめてみようと思います。 動的な処理がSwiftだけでは一切できない [NSObject performSelector:]の類と、NSInvocationがSwiftからは一切呼び出せません。使おうとすると怒られます。objc/runtime.hは試していませんが、同様に直接Swift経由では呼び出せず間にObjective-Cをかます必要があるのではないかと思われます。 @optionalなprotocolが限定的にしか使用できない 具体的には@objc属性を付けないと使えません。しかしながらこのような後方互換性のためだけに存在する属性をいつまでもAppleがサポートするかは疑問が残るというのと、もう一つ以下の様な問題があります。 @objc属性のついた

  • ユビレジを支える技術

    年末にユビレジさんのところでちょっと仕事のお手伝いをさせていただいたので、その時の内容をご紹介させていただきます。 ■ユビレジって何? iPadをキャッシュレジスタに変えてしまうサービスです。会計からレシートの印刷までやってくれます。最近飲店などでレジがなくiPadだけが置いてあるお店などを散見するかと思いますが、アレがそうです。一般的なキャッシュレジスタ+店舗システムよりもはるかに安価で導入でき、しかも使いやすいというのがウリです。 開発者的に言うと、Scalaモヒカンの@kmizuさんやiOSモヒカンの@k_katsumiさんなどが在籍されていまして、エンジニアのレベルが高いです。 ■開発スタイル 少人数のため、厳密なウォーターフォール管理やアジャイル/スクラムなどは無く、チケット/Issueベースの開発になっています。githubをフル活用します。すべてPull Request(以

    ユビレジを支える技術
  • 「モバイルアプリのバックエンド(Web API)に特化したサービスのまとめ」のその後(2013年版)

    1年ほど前にモバイルアプリのバックエンド(Web API)に特化したサービスのまとめというBaaSサービスについて非常に丁寧にまとめた記事が公開されていたのをつい最近知ったのですが、公開から1年が経ちBaaSサービス周りも統合再編が起きているようなので誠に勝手ながら2013年版を引き継いて書いてみようかと思います。 まずBaaSについて基的なところはlaisoさんの元記事が素晴らしく良くまとめてくださっていますのでそちらを参照してください。 2013/05/16追記: こちらのSlideshareにも2013年現在のBaaSサービスを取り巻く状況が非常に丁寧にまとめられていますので、オススメです。 2013年のトレンド まずは元記事で上がっていたBaaSサービスの名前を片っ端からGoogleトレンドに突っ込んでみて人気度を評価してみました。その他、2013年になって登場してきたサービスが

    「モバイルアプリのバックエンド(Web API)に特化したサービスのまとめ」のその後(2013年版)
  • Mercurial の、 hg revert / hg rollback / hg backout の使い分け

    Mercurial の、 hg revert / hg rollback / hg backout の使い分け 以前からgitを使っていたのですが、最近は職場のバージョン管理システムがMercurial hg になっているので、もっぱらhgばかり使っています。ということで、いくつか覚えたhgネタ。 Mercurialやgitに限らず、いかなるバージョン管理システムを使用していても、人間が使う以上運用中にミスが発生することは避けられません。今回はMercurial使用中に間違ったコミットやプッシュを行ってしまった際の対処法を調べてみました。 参考文献はこちら。 間違いを修正するためのコマンドは、大きく分けて以下の3つがあります。hg reverthg rollbackhg backoutまたコマンドを用いて修正する意外にも、ローカル作業する際に作業用リポジトリを別に作って、問題に気づいたらリ

    Mercurial の、 hg revert / hg rollback / hg backout の使い分け
    kutakutatriangle
    kutakutatriangle 2012/01/14
    細かい違いとどういうときに使えば良いのかが初心者にわかりにくかったので非常に参考になった。
  • Mac OS X LeopardでPYTHONPATHとPYTHONSTARTUPを設定してみました

    環境変数PYTHONPATHとは、Pythonがimportするときにモジュールを探しに行くパスのこと。JavaでいうところのCLASSPATHにあたる 環境変数PYTHONSTARTUPとは、Pythonを対話モード(プロンプトモード)で実行した時に自動的に実行されるPythonスクリプトのこと。起動時に毎回読み込みたい設定とかを書いておくことができる autoimpとPYTHONSTARTUPを組み合わせるとimportの手間から解放されて非常に便利 Pythonのモジュール名・関数名がわからないときや、ちょっとだけスクリプトを実験してみたいときなどPythonをコマンドラインから呼び出すことがよくあると思います。 ところが未設定のままのPython対話モードだと以下のような問題が生じます。 毎回毎回使うimport osとかimport sysとかをいちいち手で実行するのが面倒くさい

    kutakutatriangle
    kutakutatriangle 2009/03/03
    PYTHONPATHの通し方を調べているうちにたどり着きました。自分が直面していた問題の解決には直接役立ちはしませんでしたが、私に取って有用なことがたくさん書かれていたので、ブックマークしておきます。
  • 1