忍者ブログ

Home

Born Neet

[PR]

  • 2024-04-20 (Sat)
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

  • Comments (Close):
  • TrackBack (Close):

JavaScript Anywhere 1.6.3をリリースしました

最近はもっぱらこっちでブログを書いていますが、昔のプロダクトのアップデートなのでたまにはこちらに。

告知が遅れましたが、久々にJavaScript Anywhereをアップデートしました。

iOS6・iPhone 5のサポートと、あと、iOS5以降でファイルの更新が反映されない問題への暫定対応として、Reloadボタンを設置しました。
(根本的な解決策にはコアな部分を作り直す必要があるため、ひとまずこのような対応になっています。ご了承下さい。)

なお、このアプリですが、9月25日に申請して30日に通るという、最近では考えられない速度で通りました。
iOS6対応のは優先して審査されてるのかとも思いましたが、他のアプリは普通に1週間以上放置されているので、ただの担当者依存のようです。

というわけで、以下、2010年に初心者が作ったアプリをiOS6に対応する上でハマったことを、ご参考までに書き連ねてみます。

ワイルドカード App IDで署名できない!?

僕がアプリ開発をはじめた2010年頃には、まだ「App IDはワイルドカードにしておくと楽だよ」みたいなことが真しやかに囁かれていました。
初心者だった僕はそれを真に受けてしまいました。
そのせいで、iCloudやGame Centerが使えないという制約がありつつも、いままでこのアプリについてはそのままで来ました。

が、ついに今回、

Code Sign error: Provisioning profile 'xxx' specifies the Application Identifier 'com.bornneet.*' which doesn't match the current setting 'com.bornneet.JsAnywhere'

というメッセージと共に署名できなくなってしまいました。

これは大変だ、と思いましたが、ワイルドカードじゃないApp ID(com.bornneet.JsAnywhere)とプロビジョニングプロファイルを作ればそれで解決でした。
今まではApp IDを変えちゃダメだと思っていましたが、Bundle Identifierが変わらなければいいので、ワイルドカード→通常の変更はなんの問題もないようです。

スプラッシュスクリーンなんて、そもそも設定してねぇ。

iPhone 5のRetina(4 inch)に対応するためには640x1136のスプラッシュスクリーンを設定しないといけません。
ですが、この古いアプリにはそもそもスプラッシュスクリーンが設定されていません。
(iPadが出るまでは今ほどスプラッシュスクリーンが設定されているアプリは多くありませんでした。)

スプラッシュスクリーンを作るのがまともな対応ですが、今回は、新規でXcodeプロジェクトを作ると付いてくる「真っ黒画像」を借りてきて設定しました。

無事、審査は通ったのでとりあえずの対応としてはこれでよさそうです。

Xibベースのアプリは面倒い!

Xibで作ってるアプリはコードや設定を変えないと縦長対応にうまく対応できないようです。
これ以外のアプリは全てコードで書いているので、一瞬で対応が終わりましたが、これは一手間必要でした。
今まで、XibやStoryboardを使うのがAppleの推奨なのかなぁ、と思っていましたが、今回の対応を見ると、全部コードで書いてた方がやっぱ変更に強いし、これからもそうしようと改めて思ったのでした。

まとめ

初心者が書いた古いコードを弄るのは限界。

こいつを今更1からやるのもなぁと思い、Coffescript At Onceを別アプリとしてリリースしましたが、こっちもストアに出している以上はやっぱりそれなりの品質を保ちたいので、Version 2として作り直すのもありかなぁと思い始めています。

とはいえ新しく作りたいアプリもたくさんあるので、期待せずにお待ちください。

それでは。3連休も残り1日。良い休暇をお過ごし下さい。

PR

27歳になったことだし「普通の」Webサービスを作ってみた

Doesn't Work'n

4/8に27歳になったわけですが、26歳最後の1ヶ月ちょっとの間、何をしていたかと言うと、Webサービスを作っていました。
本当はエイプリルフールか、遅くとも誕生日には公開しようと思っていたんですが、リリース前に燃え尽き症候群を発症し、今になってしまいました。

そんなこんなで、ようやく日の目を見るサービスがこちらです。

Doesn't Work'n: Share Bug and Fix

エンジニア向け(というか主に僕)向けのサービスで、バグったコードとFixできたコードを投稿するサイトです。

完全招待性を装ってますが、現状特に制限はないのでリクエストしてしばらく待てばアカウントが発行されます。
また、Grow!するとMacアプリ使えるようになる特典付きですので興味ある方は是非お願いします。
あと、ドッ ドッ ドリドリ ドドドド ドリランド のパクリでGumroad課金も付けたので、プライベートなバグとかグループ作りたい人はこちらもご検討下さい。
Plans & Pricing - Doesn't Work'n

以下いつもの「作ってみた感想」です。

普通?

このサービスは、jsdifflibという出来の良いJS製diffライブラリを知った時に思いついた、「diffを共有するだけのサービス作れば面白いんじゃ?」という考えを形にものです。
(結局このライブラリは使いませんでしたが)

特に先進的なテクノロジーを使っているわけでも、これだ!という革新的なアイディアが元になっているというわけではありません。
機能も特別なものはなく、

  • ユーザ認証
  • 完全招待性
  • パスワードリセット
  • いいね (++)
  • フォロー
  • メール通知
  • 検索
  • プレミアム
  • ニュース
  • フォーラム
  • SSL強制
  • ブログパーツ

などなど、ある程度のWebサービスであれば備えているものばかりです。

そう、Doesn't Work'はこの「普通」を目指して開発しました。
今まで僕はサービスを作る時、個人であるということに甘えて、最低限必要であろう機能も実装しないことが多々ありました。
しかし今回は、こういう機能普通あるよな、でも作ったことないな、という機能から逃げないことをテーマにしました。

まさに手段と目的の混同ではありますが、そのおかげで、「Facebook/Twitterログインできて、JSでdiff表示するだけ」になったり、「ちょっと規模大きいのでいつか作る」リストに加えられるだけになったりせずに済みました。

まだまだバグはありますが、「普通のWebサービス」と言える機能は備えられたかな、と思っています。

ものづくりは大変だ

今回やってみて思ったのは、Webサービスを作るのはやっぱ大変、ということ。
Rails等のフレームワークのおかげで、scaffoldに毛が生えたようなアプリは非常に簡単に作れる時代になりましたが、ある程度普通の機能を実装しようとするととても大変なんだということを思い知りました。
そして、今までいかに自分が真面目にWebサービスを作ってなかったかということも。

とつぶやいてから1ヶ月半。
ちょっと時間がかかりすぎましたが、宣言通りMacアプリも同時リリースできたので結果はまぁオーライかな、と思っています。

また、今回の開発でかなり勉強になったので今後はもっと効率アップできるはずです。

見捨てない「普通」

今まで僕はリリースしたプログラムは二度と見返さないといっていいぐらい放置してきました。

なので普通にWebサービスを保守・運用した経験がありません。(仕事は除きますよ、もちろん)
今回は僕が使えるレベルのものはできたし、真面目に作ること自体が目的のサービスでもあるので、しばらくは暖かく見守って行きたいと思います。

以上

27歳になっていろいろ思うところもあるのですが、それはまた別エントリで。

マスキングテープで作るBlack Macbook Pro

  • 2012-03-10 (Sat)
  • mac

今日は目の調子も良くなかったし、パソコンから離れて過ごそうと、久しぶりに街をブラブラしてきました。
残念ながら雨でしたけど。
雨でも都会は混むんですね。僕は普段、雨だったら外出を諦めたりするのでみんなを尊敬しました。

そんな中ふと立ち寄った東急ハンズ渋谷店で流行りのマスキングテープを大々的に売り出していました。
そして、こいつを見つけたのです。



マットブラックのマスキングテープです。
瞬時に閃きましたね、「これはマックブックプロに貼るしかない」と。
mt ex 図鑑・太陽系も大好きな惑星がいっぱいのってて捨てがたかったけど今回はおあずけ。

で、家に帰って速攻やりました。

完成品がこちらです。

閉じた状態


うーん…

開いた状態


うーん…?

アップルマークは?


あちゃー!
(微かに光を通すぐらいになっちゃっています)

こんな感じです。
うーん、若干残念ではありますが、200円弱という価格を考えると悪くはないかもしれません。
ただ、マスキングテープの長所でもあり短所でもあるのですが、めくれやすいので、すぐ外れちゃうと思います。

お金をかけずにそこそこ遊べると思うので、お暇な人は是非。

あと、せっかく渋谷に行ったので、気になってたTYP Exhibition. o1にも行ってきました。

こんな感じでとてもオシャレでした。



僕はまだまだタイポグラフィを学び始めたばかりで、偉そうにコメントできないのですが、
明日までやってるので、渋谷に行かれる方はふらっと立ち寄ってみてはいかがでしょうか?

たまにはDIYも、ということで、プログラミングじゃないエントリを投稿してみました。
久々に体を動かしたら体調もすこぶる良くなったので、明日からまたコーディングをバリバリ頑張ります。

それでは。

npmからもSecurity Alert - Please reset your npm registry accountなるメールが来た

今日は脆弱性が騒がしいですね^^
githubから、Action Required - SSH Key Vulnerabilityなるメールが来た - Born Neet

メールの内容は、

・漏れたのはパスワードのハッシュ値(shaとだけ書いてあるからおそらくSHA-1)
・saltも一緒に漏れた
・強いパスワード使ってる人は何もしなくていいけど、リセットもできるよ
・同じパスワード使ってる他のサービスのパスワードも変えてね

って感じかな。

saltも一緒に漏れてるから、時間さえかければ元のパスワードばれますね。
というわけで問答無用で変えた方が良いんじゃないでしょうか。
(衝突させるのにどれぐらいの時間がかかるか詳しく知りませんが、"2010年"をとっくに過ぎてますし、SHA-1値がsaltと共に漏れたのなら、パスワードが漏れたと考えておいた方がよいと思います。)

リセットの方法は、

CouchDB _User Resetからusernameとemailを入力。
・メールが届くのでそのリンクをクリックする(ユーザがリセットされる)
・~/.npmrcの"_auth"行を消す
・$ npm adduser してユーザを作り直す
・適当なpackageを$ npm publish --force とかしてみる

これでいいのかな?
(タイミングによっちゃ他の人にアカウント取られちゃう気もするw)

…と思ったけど、他のマシンで認証しなおそうとnpm adduserしたら、

Error: conflict Document update conflict.: -/user/org.couchdb.user:

となってできなかった。
バグかな?
(とりあえずリセットしたマシンから_auth行をコピペしたら使えました)

ssh-keygenコマンドでSSH公開鍵の拇印を確認する方法

githubから、Action Required - SSH Key Vulnerabilityなるメールが来た - Born Neet
で書いた通り、githubのSSH公開鍵を確認しようと思ったら、
Unix/Linuxコマンドで拇印を確認する方法を知らないという凹む事実に気がついた。
ssh-keygenコマンドで出来るんですね。

$ ssh-keygen -lf ~/.ssh/yourpublickey.pub
2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx id_rsa.pub (RSA)

僕は拇印って習ったけど、指紋とも言うみたい。
英語だと、Fingerprintの方がよくみかける(Thumbprintじゃなくて)から、指紋の方がよいのかな?

Home

Search
Loading
Feeds
Links
スポンサードリンク

Page Top