Xcode7がインストール出来ない時に読む記事

こんばんは、たかきです。

この度私物MacBook Air(13-inch 2012 Mid)をEl Capitanにアップデートしたのですが、Xcodeをバージョン7にアップデートしようとすると、

Xcodeをダウンロードできませんでした
“購入済み”ページからダウンロードし直してください。

というアラートが出てアップデート出来ませんでした。
その時に試したことを紹介します。

Cdgy6q6UMAAuN7k.jpg-large

症状
ダウンロードの途中で上記アラートが出てアップデートが完了しない

やったこと
Macを一度セーフモードで立ち上げる

こんな場合に試してください
ストレージ不足で一度アップデートに失敗したことがある場合

解説っぽいこと
Xcodeのアップデートには4GBくらいのストレージの余裕が必要です。
十分な空きが無いことに気づかずアップデートを始めてしまい、空き容量不足で一度エラーを経験すると、その後ストレージを十分に空けてもアップデートができずに上記のアラートが出続けます。
Wi-Fiの環境が悪いのかなとも思い自宅や会社で試しても同じく失敗しました。
実はこの時、Xcodeのゴミファイルがシステムにキャッシュされているようで、これが悪さをしていた模様。
セーフモードで起動するとこのようなキャッシュファイルを削除してくれます。
不具合がない時でも定期的にセーフモードで起動するとMacを綺麗に保てるという人もいます。
ちなみに、今回失敗を繰り返した時のストレージの空きは13G、セーフモードで一度起動した後は16Gになっていました。

環境
ハード: MacBook Air 2012 Mid 13-inch
OS: Mac OS X El Capitan
新Xcodeバージョン : 7.2.1
試した日: 2016年3月16日

カテゴリー: Apple, Work | コメントする

【jQuery】あとづけする要素に .on() する方法

今日サーバーサイドエンジニアにjQueryの相談をされて調べ物をしていたら面白い書き方を見つけたので共有しますね。

append したものにクリック判定を当てたい場合ってよくありますよね。
今日はこんなケースを見てみましょう。

<div id=”parent”> が置かれていて、2秒待つと #parent の中に <div id=”child”> がアペンドされる。#child をクリックするとアラートが出る。

早速悪い例から。

See the Pen BKNbyb by Takaki Hiemno (@takaki1216) on CodePen.
↑jsを見てみてください。

$('#child').on();

このときにまだ <div id=”child” /> のDOMが生成されていないので、 .on() が bind されないんですね。
で、次のが今日知った書き方。

See the Pen LNVaxQ by Takaki Hiemno (@takaki1216) on CodePen.

$('#parent').on('click', '#child', function() {
alert('You touched me!');
});

これね。1.7から採用されたっぽいですね。
詳しくはここ読んでね。event-delegation って言うのかな?イベントの委譲?
api.jquery.com/on/

カテゴリー: JavaScript, jQuery | コメントする

Panasonic の電動自転車のバッテリーが充電できなくなった時の対処方法例

いつものように充電しようと充電器にバッテリーを差し込んだ時、事件は起こった。

子供(2才)が充電器の端子部分に巨大なゼムクリップを置いてしまっていたようで、それに気づかずに差し込んだところ、火花が散り充電ができなくなってしまった。

充電器に挿すといつも光るLEDが点灯しなくなってしまったのだ。

今日はこのバッテリーを自力で修理した話をする。

我が家の自転車のバッテリーはパナソニックの「NKY452B02 / Li-ion / 25.2V-13.2Ah」という製品。

すぐに購入店舗にバッテリーを持って行き事情を説明するも「いやぁ、新しいの買うしかないっすね〜」と。

途方にくれながらネットで「Panasonic 電動自転車 バッテリー 充電できない」などと検索すると、ヒューズ交換で済んだというブログを見つける。

それならとメーカーのPanasonicカスタマーセンターに電話するも、修理は受け付けておらず買い換えるしかないとのこと。

…。

ならばダメ元で分解してみよう、と立ち上がったのが今回の話。

まずネジはプラスやマイナスのものではなく、星形なので専用のドライバーが必要である。


以前にiMacを開ける必要があった時に買ったこちらのドライバーを使用した。
IMG_7355
蓋を開けるといきなりヒューズを発見。なるほどこれを交換すれば。

ところが驚いたことにこのご時世、平型ヒューズなどどこにも売っていないのだ。
ホームセンターや街の電気屋さんを何件か回ったが手に入らなかった。
結局、オートバックスで買うことができた。これを読んだ方で同じく平型ヒューズが手に入れられないという人がいたらカー用品店に行けばあるかもしれない。
150円出せばお釣りが来るような価格で2個買える。

しかし、後にわかるところなのだが、この緑(30A)のヒューズは充電に関係ない
このヒューズを交換し意気揚々と充電器に挿した時の期待感と、LEDが点灯しないことがわかった時の絶望感の高低差たるや。

やはりヒューズ以外の原因で壊れているのか。
もっと詳しく調べる必要があるとケースから中身を取り出してみると
IMG_7373
側面に別のヒューズを発見(写真はヒューズを抜いた後のもの)。

恐らく防水のため、バッテリーの中身が更にビニールの袋に包まれていたのでそれをソムリエナイフで丁寧に開け、こちらのヒューズを見てみると、

IMG_7371
絶対にこれが原因だ。中が焦げて切れているのが目で見てわかる。

後はもう面白い話はなにもなく、これを交換してビニールテープで袋の穴を閉じ、カバーを閉じたらめでたく充電できた。

結局はじめからわかっていれば150円で直る故障だったのだ。
これを直せないと案内して4万円も出費させようとしたメーカーには遺憾だ。

ここまではすべて自分で経験した事実である。
同じようにショートが原因で充電ができなくなってしまった人の助けになればと思ってブログを書いたが、感電などにはくれぐれも注意してほしい。
この記事を読んだことが原因で起きた事故の責任を私は負わない。


あとは余談だが、はじめショートさせてしまって充電ができなくなった時に、自転車にバッテリーを挿すと自転車が動いたものだから、充電器の故障を疑って充電器を先に買ってしまった。

これでまず10,000円の出費。

そして、ヒューズがどうしても手に入れられないまま翌日自転車を使う必要があり、ヒューズ入手まで待っていられないとバッテリーも買い換えてしまった。
それで更に40,000円。
一個目に間違えて買ったヒューズが150円。
正しい知識があれば150円で済んだ修理に50,150円もかけてしまった記念のブログでもある。

(2016年10月31日追記)
記事の反響が思ったより多かったため追記します。
本記事で交換するのはヒューズです。
リチウムイオンバッテリーは大変危険です。バッテリー部分への改造は絶対に行わないようご注意願います。
カテゴリー: 生活 | 5件のコメント

2016

あけましておめでとうございます。
本年もよろしくお願いします。

カテゴリー: 生活 | コメントする

smarty + javascript

こんばんは。
フロントエンドエンジニアのtakakiです。

smartyベースでソシャゲなんかを作ってますと、smartyにアサインされた値をjsに渡したいことがありますよね。

<script>
  {literal}
    userId = {/literal}{$userId}{literal};
  {/literal}
</script>

こんな風にしてグローバルに置いて外部jsから触れる様にすると思います。

が、これやると、{$userId}がnullの時にバグるので要注意!
どういうことかというと、{$userId}がnullだと、jsは

  userId =;

こうなるからです。
これを防ぐには<script>
タグより前に、

{if !$userId}
  {assign var="userId" value="null"}
{/if}

と書いておけば解決します。
valueに文字列のnullをセットするのがミソです。
これを普通のnullにしちゃうと、

  userId =;

これのまんまになりますからね。

あるいは、<div id=”main-container”>かなんかに、

<div id="main-container" data-user-id="{$userId}">
  <!-- 略 -->
</div>

こうやってセットしておけばjQueryで簡単に取得できますね。書きながらいま気づきましたけど。
外部jsなどからこのuserIdにアクセスするには、以下のように書いてください。

var userId = $("div#main-container").data("user-id");
カテゴリー: front-end, JavaScript, jQuery | コメントする

初めてのTime Machine

11402567_10207069695491579_2323208356274435480_o

自宅iMacの調子がおかしくなり始めてはや一ヶ月。
日に日に悪化していき、FireFoxが落ちない日はなく、ちょいちょいSafariも落ち、それだけならまだしも遂にCubaseまで落ちるようになったので、断腸の思いでTimeMachineからMacを復元しました。
なにせはじめての経験で、失われるデータはないかとか、アクティベートできなくなるアプリはないかとか、いろいろ心配だったのですが、各アプリはアクティベートされた状態まで復元されました。
(Dropboxだけはログアウトされましたけどね)

めでたしめでたし。

ただ、Photoshopだけは立ち上げる時に「カラーの設定に失敗しました」とアラートが出るようになってしまいました。これ以外に動作に異常はありませんが。

あと、ある地点に戻した時、それ以降の日付のデータは元に戻せなくなるっぽいです。
今回、2015/6/9の状態に戻したんですが、6/9 ~ 7/7 の間のデータは飛んでしまいました。
何か方法があったかもしれませんね。
この記事を読んでからTimeMachineを試される方はその辺よく注意してくださいね。

カテゴリー: Apple | コメントする

エンジニアなら3分で解けるらしい

virates.com/funny/4313743

ここにあったパズルが今日のお題。
サイトから引用すると、

(▼引用開始)
5×5マスの中にひとつだけ「?」が書いてあります。

この中に入る数字とは何か? それが問題です。

この問題、エンジニアなら3分以内で解くことができ、建築家なら3時間で、医者なら6時間、会計士なら3カ月、弁護士なら解けないかもしれないという話があるそうです。

あなたは何分かかるでしょうか?
(▲引用ここまで)

7347ea699a5dcbb2a30e35fe9c100061

てなわけで、皆さん解けましたか?
このサイトには答えが書かれていないんですけど。

答えは91になりました?
イマイチ自信ないんですけが、僕なりの解法を。

エクセルのように列を左からA列〜E列、行を上から1行目〜5行目 と呼びます。

各行のE列は、B列 × C 列です。

で、問題のD列なんですが、
B列 × (E列の十の位 + C列) だと思うんです。

一行目から順に、
3 × (1 + 4) = 3 * 5 = 15、
4 × (2 + 5) = 4 * 7 = 28、

というわけで、「?」に入るのは、
7 × (5 + 8) = 7 * 13 = 91

かな、と。
でもそうするとA列を使わないから気持ち悪いんですけど…
こんなのあり?

と、書きながら、別の法則みっけ。

D列は
B列 × (C列 + A列 – 1)
なのか。
そうか、そうかも。

そうすれば全部使うわ。

じゃあ今日の記事はなんでもなかった。

カテゴリー: エンジニア, 生活 | コメントする

Smarty でテンプレート内で配列を定義する構文

こんにちは。
実は私、フロントエンドエンジニアという職業です。
子どもと音楽と車の話しかしてませんが、WEB屋なのです。
自分の勉強も兼ねて、今日からは少し技術的なことも書いていこうかなと。

PHPではサーバーサイドの処理と、UIに関する部分を独立して開発するために、smartyという技術があります。

僕も毎日smartyに触れているわけですが、わからないことを検索すると、
「PHP側でこのように定義してassignします」みたいに書かれてることが多いですよね。
しかし我らはフロントエンド。
わざわざサーバーサイドエンジニアの仕事を増やすくらいならテンプレ側で何とかしようと思うことも多いわけです。
(一人で開発してる場合は絶対に計算などはPHP側でやらせるべきなんですけどね。フロントエンドエンジニアという立ち位置の場合、テンプレ側で面倒くさいことをした方がトータルの工数が少ない場合が少なくないのです。)

で、今日はテンプレ側で配列を定義する書き方。昨日知りました。
それはコチラ。

{assign var=myArray value=”,”|explode:”apple, banana, grapefruit, pineapple, peach” }

理由は知らん。
こういうものだと覚えましょう。

カテゴリー: front-end, Work, エンジニア | コメントする

車庫証明

車庫証明って取ったことあります?
2600円も払って、自分には車を停める場所があることを自治体に証明してもらう謎の制度。
これがないと車が買えないんですね。

先日自慢したセレナを我が家に納車するために車庫証明を取得しようとしたら、なんとうちの駐車場が小さすぎて車がちょっとはみ出すから却下という返事が来ました。
メジャー持ってうちまで測りに来たそうですよ。

しかし車はもう手配済み。
ここでまさか車のキャンセルだとか、月極駐車場を新しく借りるなんてことはどうしても避けたい。

警察から電話があって
「お前んちの車庫証明却下だからwwwwww」
って言われた時に3秒で思いついた回避策。

スロープ付けて玄関前まで乗り上げれば収まるんじゃね?だから待て。と。

警察も3日くらいなら待ってくれるというから保留にさせて、今朝スロープを買いに行ってきました。

それがこちら。

parking

全部で8k円程度。

「スロープ付けたから見に来やがれ」と電話したら数時間で電話があり、これならOKと。
どうした神奈川県警。珍しく仕事してんじゃん。明日は雪か?

そんなこんなで一時は絶望までした車庫証明でしたが無事におりました。

今日は何が言いたかったかっていうと、同じ状況に陥った人は、あの手この手で「ここも駐車スペースだ」と言い張ればなんとかなる事を知っておいてほしい、ということ。

くれぐれも車庫飛ばしなんてしないように。
僕も魔が差しそうになったけど、結構罪が重いらしい。

カテゴリー: 生活 | コメントする

自宅鯖

Linuxっていうのを使って自宅にサーバーを置いてみようと思いまして。
さっきCentOSってのをDLして今DVDに焼いています。

ちょうどWindowsXPの捨てようか迷ってたPCが余っているので。
勉強のためにもね。

一番の目的は、いま私的に立ち上げてるアプリ作成プロジェクトのタスク管理をWEBベースでやれたらなと思って。
月々数百円でサーバー借りればいいんですが、電気代とかも含めてどっちが安いんだろうとかそんな興味もありましてね。

この後どうすればいいんだろ。
Linux向けのXAMPPみたいなものってあるのかな。

まっったくなにもわかりません。
ネットワークのセキュリティーとかの話もわかりません。

無料ドメインとって、PHPとMySQLが使えるようにしたいです。

Linuxにもいろいろ種類があることを今日初めて知った猿が公開まで漕ぎ着けられるのか乞うご期待。

カテゴリー: エンジニア, 生活 | コメントする