アナログCPU:5108843109

ゲームと音楽とプログラミング(酒と女とロックンロールのノリで)

('ω') < イザユケエンジニャー

データ復旧業者のこと

先日、surfaceSSDが壊れて復旧(?)するまでの流れを書きましたが

surfaceのSSDが突然死した話 - アナログCPU:5108843109

最後に、データ復旧業者についてちょっとだけ触れていたのをもう少し掘り下げておきます。

最初に依頼した「スマホドック24」さん

公式サイト
https://www.smaphodock24.jp/

最初はデータ復旧というより修理を考えていたので、復旧業者とはちょっと毛色が違うかもしれませんが。

メールのやりとりで詳しく相談に乗っていただき、最初から安心できました。
症状から考えられる原因をいくつか提示してもらえましたし、
発生しうる追加費用や所要日数なども明示されていました。
surfaceならではの諸々の問題もきちんと把握されていて、さすがプロだなーという印象。
また、この時点では「診断と見積りをして、実際に修理やデータ復旧を行うかを決めてもらうことができる。そこでやめる場合は診断料のみかかる」と聞いていました。

数日後店舗に持ち込んだときには、メールくださった方とは別の店員さんによる対応で、
「あらかじめメールでご相談させていただいているのですが…」と言っても一切確認しようとせず
改めて説明し直すハメになったところには不安がありましたが、
その方の話す内容自体には特に変なところもなく、本体を預けてきました。
4~5日くらいで報告できる、ということで待つことに。

少し早い2~3日後に電話があり、「結構厳しいのでさらに1週間くらい見たい」と。
予定より延びることを少し早めに連絡いただけたのは好感が持てました。

で、さらに1週間後、「SSDの物理障害で復旧も修理も無理。診断料は不要」と連絡をいただきました。
えっ???成果が出なかったとはいえ、何日も調査してもらったのに無料???

何も改善しないまま10日ほど経ったわけで、確かに一切プラスにはなっていないのですが、それでも好印象の業者さんでした。
もし次に何かあったらまたお願いしようと思いました。

次に依頼しようとした「デジタルデータリカバリー」さん

公式サイト
https://www.ino-inc.com/

こちらには結果的に問い合わせしただけなのですが、印象はめちゃめちゃ悪かったです。

まず公式サイトから問い合わせると、「メールでのやりとり希望」も「電話できる時間帯」指定も全く無視しての電話。
これだけで充分「うわっ…」という感じでした。

しかも、向こうから電話をかけてきたにも関わらず、
こちらが問い合わせで送った内容を読んでいないかのような言い回し。
さらに技術的な知識も怪しそう。
事前に自分で試した内容などを説明したりしても、なーんか理解してなさそうな受け答えだし。
こちらがプロに相談する立場のはずなのに、なんで詳しく解説して差し上げなきゃならんのだ?
わざわざ先に機種とか症状とか送ったんだから、せめて理解できる人が電話してくればいいのに…。

surfaceだつってるのに、分解する場合のリスクについて触れもしないし、
BitLockerの回復キーが必要とも言ってこない。
スマホドックさんは両方とも最初のメールに書いてくれてたんですけど。
何も言わないなら回復キーなんて教えないですけど本当に大丈夫??
それともsurface使いなら当然知ってるから言わなくていいよねってこと?いやーまさかね。

本当になんでわざわざメールじゃなくて電話してきたのかって感じの内容でした。
何故か「復旧したいのはどのファイルですか」と聞かれて(何故なのかは後で知ったので後述)
困って「できる限り多く」としか答えられなかったんですが、
ファイルパスなんて口頭でやりとりする内容じゃないでしょ…。
そもそも技術的にだいぶ怪しい感じのする人相手に「hostsと、xamppのhttpd.confと…」とか言っても通じなさそうな気しかしないし。

その情報必要?少なくとも口頭でやりとりする必要ある?つーかお姉さん理解できてる?と言いたくなるようなやりとりをひたすら続け、10分以上取られました。勘弁してくれ。
しかも期間や費用など具体的な話には全く至らず、唯一の具体的な結論は「○月○日の○時に持ち込み予約」だけ。

さすがに不信感が大きすぎたのでググりまくったら案の定悪評もぼちぼち見つかるし、それ以上に怪しい擁護サイトもちらほらあるし。
(ちなみに擁護サイトは特徴がありすぎてバレバレだと思う…一周回って逆に同業他社の嫌がらせのような気すらしてくる…)
あーやっちまったかーと思いましたが、それでもとりあえずその時点ではひとまず診断と見積りはお願いするつもりでした。
今回はそもそもダメ元だったし。

…が。
申し訳ないことにその後自力で解決したので、結局キャンセルすることに。
それで予約確認メールに返信する形で連絡すると、なんと無視。えぇ…(ドン引き)
予約日過ぎても電話がかかってきたりするわけでもなかったので、おそらくキャンセル処理はされているのでしょうけど。

こちらも技術力の高さは分かりませんし、もしかすると完全復旧してくれた可能性も…なくは…ないですが…
(うぶんつ作戦が完全失敗してる以上、たぶん可能性は限りなくゼロ)
こういう窓口対応の態度に目をつぶれるほど心が広くないので、恐らくもう問い合わせすることもないでしょう。

…と、ガチで問い合わせしかしてない感想だけなのもアレなので、
実際に依頼して復旧成功している方々のレビューも貼っておきます。
【悪評判ガチレビュー】デジタルデータリカバリーでデータ復旧!費用も公開!
デジタルデータリカバリーにデータ復旧依頼して失敗したと感じた – とあるへたれ。

問い合わせする前に読むべきだったね!

悪徳業者も多い業界らしい

2社とも、「窓口になっていただいた方々と話した感想」にしかなっておらず
(偶然やりとりしたのがその方々だっただけで、他のスタッフさんと当たっていたら印象が変わっていた可能性はありますね)
悪徳かどうかまではちょっと判断つきませんが、アレな業者が多い業界ではあるようです。
いくつか見かけたのを貼っとく。

「データ復旧率90%以上」を疑え、社名変えながら荒稼ぎする悪質業者をデータ復旧業界歴23年の本田氏が指摘 - INTERNET Watch
悪徳データ復旧業者に注意!成果報酬型 | ファイル復元業者@比較
SSDがクラッシュ! 初めて痛感した「データ復旧」の難しさ【前編】 - 日経トレンディネット
悪徳業者にご用心!信頼できるデータ復旧業者の探し方 | データ復旧大図鑑 – 自分で解決!ファイル復元

まあ、そうですよね。そんなもんですよねー。

何故か「復旧したいのはどのファイルですか」と聞かれて(何故なのかは後で知ったので後述)

これについては貼った記事の中にもありますが、
「指定のファイルが復旧できたかどうかで成功報酬が変わるから」
ということのようですね。
それならそうと言ってくれればって感じなんですが。
…あ、でもそれだと「絶対に存在しないファイルを1点だけ」指定されたりしたら困るから、とかですかね。
こちらとしては「復旧したいファイル??言ったものしか納品されないのは困るし全ディレクトリ構造覚えてるわけじゃないし…」と思って「できる限り多く」とか言うしかなかったんだけど。
何にも具体的な説明をしてくれないお姉さんだったので料金系のルールもわかりませんでしたし。

2度目の転職から8か月経ちました

過去の転職エントリのようなものはこのへん
転職エントリ(再現) - アナログCPU:5108843109
退職が決定しました - アナログCPU:5108843109

今は、2~3年という期間限定の約束でSESしてる最中です。
(SES:システムエンジニアリングサービス。IT系の準委託契約。お客様先に常駐して開発作業とかやる)
先週、入社から8ヶ月入っていた初現場を卒業して別のところに移ったのと、
新卒で入った会社の同期会をやってきたので、ちょっとした区切りとしていろいろ書き残しておきます。

SESも悪くないかも

そもそもSESという存在自体賛否両論ですし(※下記記事参照)
自分としても最初の会社での経験からやや敬遠してはいましたが、意外と悪くないかもと思いました。

日本のIT業界のためにSESは消滅するべきだと思う - 株式会社アクシア
IT業界でSESがクソって言われるのに対して実体験を元にした反論|あれっくす / 株式会社マンハッタンコード|note

何が良かったかというと、
いろんな会社を一人で移りながら働けるのは武者修行感があります。
自社に腰を据えて、というスタイルよりも引き出しの増える速度が上がります。
技術的なことだけでなく、業種ごとの知識とか、アイデアとか、働き方とか。
(もちろん、社内で多種多様な仕事ができる場合もありますし、SESでも数年単位で契約が続く場合もあるでしょうから、一概には言えませんが)
最初の会社では部署単位で常駐してたので上司フィルターがかなり大きかったのだな、と分かりました。

極度の人見知りなので新しい環境に移るのは億劫ではありますけど、
人間関係については割り切って働けるというのはプラスでもあります。

ただ…
SESの営業さんや現場プロパーさんに
よく「それだけできるならフリーランスでもやっていけますよ!」と言っていただけますが
自社という後ろ盾がないのにいつ切られるかわからないフリーランスSESは精神的にキツそうだなと思います。
不況にめちゃくちゃ弱いので、それでも選んでもらえるかもしくはすぐにでも転職できるような自信と腕がないと。
ベーシックインカムがあればフリーランスでいいかなと思うけど…。

前の現場はヤバかった

なんか、何やっても炎上する会社でした。不思議なことに。
単純な人月計算で進めるn次請けプロジェクトの末路とでも言うべきでしょうか。
度重なる仕様変更とそれを受け入れる営業、無茶な仕様変更に対する突貫実装、ソースコードのバージョン管理が下手くそでデグレするやつ、スケジュールに間に合わせるための人員追加、人員の追加削減を繰り返すことで何故かいつの間にか完全に入れ替わっているメンバー、そして赤字…
絵に描いたような炎上をほとんどのプロジェクトでやっていて結構意味が分からなかった。学習しろよと。
契約終了も突然告知されました。「この間契約延長のお願いしたけどやっぱナシ、金銭的に厳しいから来月で終了ね!」と連絡が来たそうで。行き当たりばったりかよ。

いや、SESとして入る分には「とりあえずいろんなことができるから勉強になる」で済みますし、そんだけ炎上する割には雰囲気もゆるゆるで楽ちんだったのですが
絶対に社員にはなりたくない系の会社でした。ヤバかった。

SESを何人も入れてましたけど、入れ替わりもまあまあ激しく、8ヶ月のわたしは長い方だったようです。
(最終日にはベテラン社員の退職かっていう勢いでプレゼントもらったり何人にもお見送りいただいたりしました…)

次の現場は…

久しぶりの8時間労働+炎上がデフォルトの環境にちょっとうんざりしていたので
稼働は安定しててできれば8時間未満の現場を探してもらいました。
おかげで「7時間労働・残業ほぼなし(今のところ自称)」の現場に拾ってもらっています。
通勤時間もあんまり変わらないし、もちろんスキル的にもマッチしてそうなところ。

価値観の相違はストレス

最初の会社はやっぱり価値観の違いが激しすぎたんだなーと今でも思います。
転職への後悔が未だに皆無。

この間同期会をしてきて…といっても3人飲み、うち1人はまだ在職で。
「前の会社も次の現場も7時間労働だよ~」という話をしたら、在職同期が「えっ、7時間じゃ仕事終わらなくない?」と。
その時は何言ってんだコイツと思って咄嗟に何も切り返せずだったんですが、
あの会社はあくまで「既に決まっている仕事を納期までに片付ける」という考え方だったんだなーと思いました。
一方、前の会社は「1日の労働時間を大前提としてスケジューリングした仕事をする」という考え方だったのでもちろん7時間で終わるし、仮に終わらなければ普通はリスケしてたわけです。定時を過ぎると「それほんとに今日やらなきゃだめ?」が合言葉。
どっちが正しいかは置いといて、この差はストレスになるだろうなーと思います。
個人的には理解できないですが「毎日ほどほどに残業するくらいがちょうどいい」という人もいるようですので、お互いに。
当の同期も、数年前も先日も「毎日ダラダラ1~2時間残業してる」と発言していて、「ダラダラ」という表現をしつつもその状況を脱しようとはしないので、毎日2時間くらいの残業が普通という雰囲気のあの会社には合っているのでしょう。煽りとかじゃなくてマジで。

だらだら働く人たち
だらだら働くことは悪なのか|えとみほ(江藤美帆)|note

二度目の転職もたぶん成功

前の会社がかなり居心地の良いぬるま湯だったので後悔しないか心配はありましたが、結局なんやかんやでスムーズにやっています。
自分でも意外なことに、戻りたいともそんなに思わないし。
やっぱり居心地(価値観のズレの小ささ)は重要だな。

surfaceのSSDが突然死した話

2016年に購入し、ついこの間の修理交換を経て使い倒してきたSurface pro4ですが

ついに壊れました。

結論としては元通りにはなりませんでしたが、
他の人や今後の自分の参考になるかもしれないので色々残しておきます。

症状

電源を入れるとこんな感じになりWindowsが起動しない。

f:id:honey8823:20190131120506j:plain:w300

試したこと一覧

  • データを残して修復
  • 自力でデータをサルベージして本体を初期化
  • データ復旧業者に調査を依頼
  • 以前の修理交換時のデータ移行に使用した外付けHDDのデータ復旧
  • DVDに焼いたUbuntuを起動し、そこからファイルをサルベージ
  • データ削除を伴う初期化

まあ、成功したのは外付けのデータ復旧だけなんですけどね。

試したこと その1

まずは「データを残して修復」みたいな項目があったのでそれを試してみました。

「無理やったわ!なんも変更してないから勘弁してや」みたいなメッセージが表示されて終わり。

しゃーないな。

試したこと その2

次は「自力でデータをサルベージして本体を初期化」を目指しました。
コマンドプロンプトと外付けHDDでなんとかする作戦です。

コマンドプロンプトを起動しようとすると回復キーなるものが必要と言われたので調べてゲット。
スマホからMicrosoftアカウントで見れたのでスクショ撮って保存。

クソ長い回復キーを入力するとコマンドプロンプトが無事起動。
ところが…

まずCドライブへ移動しようとすると

cd /D c:

こんなエラーが。

The volume does not contain a recognized file system. Please make sure that all required file system drivers are loaded and that the volume is not corrupted.

ファイルシステムがないよ」だそう。
いやいやまさか…。

まあとにかくこの方法はダメそう。

ついでにチェックディスクをしてみると

chkdsk c:

The type of the file system is RAW. CHKDSK is not available for RAW drivers.

……
未フォーマットになってる?
そんなまさか…。

試したこと その3

ここで、「とにかくデータの復旧が第一」と考え、データ復旧業者を調べて調査を依頼しました。
Surfaceは分解が極めて困難なのは知ってたので、まあダメ元です。
とりあえず預けて1週間ほど待ったところ、「SSDの物理障害のためデータ復元・修理不可」との回答。
調査費用は不要というめちゃめちゃ親切な対応には感謝しつつ、端末を引き取って振り出しに戻りました。

本筋とは全く関係ないんですが、ここで実はこの端末がSurface pro5だったことが判明。
以前の故障交換時に5に変わった模様?

試したこと その4

セカンドオピニオンを求めて往生際悪く別の業者にも持ち込みの予約をしつつ、
改めて自力でなんとかできないかいろいろ調べている途中、ふと思いつきました。
「以前の修理交換時に外付けHDD経由でデータ移行したので、そちらを復旧すればよい」と。

そもそも外付け側に残してあったデータも多いですし、
移行時に外付けから移動してしまったデータさえ復旧すれば、交換前のデータはすべて揃うことになります。
しかも交換~故障までは約2か月。
その間の惜しいデータもいろいろありはしますが、これに成功すれば精神的ダメージはものすごく少ないです。
これ思いついてよかった。

しかも、データ復元ソフトってだいたい有料なので「失敗したら無駄じゃん」と思うのですが、
復元できるファイルを見る+少量の復元なら無料のソフトがありました。

ということで、正常に稼働しているPCを使って以下手順で復元を試みました。

  • EaseUSをインストール
  • ソフトを起動して外付けを接続、スキャン開始
    • 数時間かかりました…放置して寝た
  • スキャン完了後、必要なファイルを選んで復元開始
    • 数十分~1時間くらい?かかりました…放置して出勤した
    • 結構なサイズの復元を試みたので課金しました
  • 復元したファイルをチェックして問題なければ完了

全部チェックしたわけではありませんが、見た感じではほとんどのファイルが復元できたようです。
(どういう理屈なんだろう…)
ファイル名が変わっているものや何故か重複しているものもあるようで、改めて整理するのは骨が折れそうですが、もうそんなことどうでもいい。神か。

もうこれでデータ復旧関連の悩みはほぼ解決です。
予約していた業者にはキャンセルの連絡入れました。

試したこと その5

もちろん、本体交換後に新しく作ったデータや復元に失敗した数少ないデータをサルベージできればそれに越したことはありません。
ということでもう一つ試してみました。
「DVDに焼いたUbuntuを起動し、そこからファイルをサルベージする」という方法です。

参考
起動しないパソコンからUbuntuを利用してデータを救出 | データ復旧大図鑑 – 自分で解決!ファイル復元

用意するもの

  • DVD-R
  • ISOイメージをDVDに焼けるPC
  • UbuntuのISOイメージ(ダウンロードするだけ)
  • Surfaceにつなぐための外付けDVDドライブ
  • USBハブと外付けストレージ、もしくはネット環境など、ファイルを移せる用意
    • ひとつしかないUSBポートがDVDドライブに取られるため

手順

  • 正常動作するPCから、UbuntuのISOイメージをDVD-Rに焼く
  • 故障したSurfaceで、DVDのUbuntuを起動できるよう設定する
    • ボリュームの上ボタンを押しながら電源ボタンを押して起動(ボリュームの上ボタンはそのまましばらく押しっぱなし?)
    • UEFIBIOSみたいなの)が起動するので、以下設定を変更
      • Security > Secure Boot configuration をNoneにする
      • Boot configuration にて USB StorageのみONにする
  • USBから外付けDVDドライブをつないで再起動
  • Ubuntuが起動するのを待つ
    • USB経由だからか、そこそこの時間がかかりました
    • もし「インストール」か「お試し」かを尋ねられたら「お試し」を選ぶそうです(尋ねられませんでした)
  • 必要なファイルがあれば任意の方法でサルベージする

どうやっても目当てのファイルは一切見つからず。
ちなみにファイルを探すには以下サイトあたりを参考にするとよいかもしれません。

参考
UbuntuのHDD管理 その1 - HDDの管理方法 - kledgeb

試したこと その6

データ復旧はここまでで諦めました。
そりゃ元通りが理想ですが、復元業者に何万~何十万も払うほどではなくなったので。
外付けHDD内の削除済みデータを復元できただけで大収穫です。
ということで、次は本体。

再度普通に起動して「データ削除していいので完全初期化」をしようとしましたが、あっさり失敗。
以上。

今後どうするか

本体はまた修理交換に出すか、もしくは新しいsurfaceでも検討するか…と思い、
microsoftに電話相談するため、microsoftアカウント内でシリアルコードを確認したく開いてみると。

f:id:honey8823:20190131145053p:plain

…?
保証…期間内…?
どこから数えて1年なのかはさっぱりですが。
(そしてほんとにpro5だ…)

なんとWEB上で交換を申し込めてしまうので、さくっと申し込みました。
あとは前回の交換と同じ流れになりそうです。やったぜ大勝利。

<追記>交換完了です

無事に交換品を受け取れました。
f:id:honey8823:20190205100256p:plain
また保証期間がちょっと残ってる。もしかして3か月つけてくれてるのか。
ぼちぼちセットアップしていきます。

1/16 故障発覚・データ復旧業者に問い合わせ
1/19 データ復旧業者に本体持ち込み
1/26 復旧・修理不可との連絡をもらう
1/28 死亡宣告された本体を引き取り
1/29 外付けから削除したやつ復元すればいいじゃんと思いついて実行
1/30 サルベージ成功・うぶんつ作戦試して失敗・初期化も失敗
1/31 本体が保証期間内であることに気付いて交換申し込み
2/1 本体をmicrosoft宛に郵送
2/5 交換品が自宅に郵送されてきた

microsoftの対応早すぎワロタ
2/2~3が土日だし2/5の朝8時台に届いたので、2/4に受取~発送の処理全部やってくれたっぽい。

ということで

今回は「本体は無料で交換」「データはまあまあ復旧」というほどほどの結果に落ち着きました。
まだ交換はできていませんがとりあえずめでたしめでたし。

復旧にあたっては以下が幸運ポイントでした。

  • ごく最近本体の交換を行っていたこと
    • おかげで本体の保証期間内だった
    • 無に帰したデータは本体交換後~故障の期間の分なので、期間が短い分ダメージが少なかった
  • 本体交換にあたってデータ移行に外付けHDDを使っていたこと
    • クラウドを介して、とかだと消したデータの復旧は難しそう
  • しかもその外付けHDDは本体交換後は全く使っていなかったこと
    • データを繰り返し書き込んだり消したりしていると復旧が難しくなっていくので

逆に以下は反省すべきポイントです。

  • そもそもデータのバックアップはもう少しきちんと取っておくべき
  • 安易にデータ復旧業者に頼まない方が良かった
    • 今回は何も起きませんでしたし実際に依頼したところはごく普通でしたが、依頼後に調べてるとなかなか闇の深い業界だったようで…
      • 2軒目の業者がなかなか悪名高かった上に、キャンセル連絡に返答すらよこさないんですがこれは…
    • 結局どこの業者なら信頼できるのか、口コミ見ても大変分かりづらい業界だなーと思いました
    • あと復旧費用めちゃめちゃ高い

スペース文字を無視して検索する(力技)

※書き方はMySQL前提です

たまーに、DBに登録されているデータのスペース文字を無視して検索を行いたい場合があります。

速度を求める必要がある場合は、検索用カラムを別途用意しておくのがよいのですが、
そうでもない場合(手作業で一時的に検索したいだけ、など)は以下のようなクエリで全半角スペースを無視して検索できます。

SELECT * FROM `テーブル`
WHERE REPLACE(REPLACE(`カラム`, ' ', ''), ' ', '') = '検索ワード'

単純にREPLACE関数を用いて、
「「対象カラムの半角スペースを空文字に置換した文字列」に対して、さらに全角スペースを空文字に置換した文字列」
と比較しているだけです。
もちろん同様の方法でスペース以外の特定文字を無視することもできますし、LIKE検索で部分一致検索も可能です。

対象カラムにインデックスを張っている場合でも全く効きませんので、レコード数が多い場合は時間がかかる可能性があります。

要素の表示・非表示を切り替える

個人的に開発作業をするときは、
非表示用のクラスを定義しておいて、そのクラスを追加削除することで対応しています。

CSS ※AdminLTEなんかだと、同様の定義が元から含まれています

.hidden {
    display: none;
}

HTML

<div class="hidden">
  ここは表示されない
</div>
<div>
  ここは表示される
</div>

jQuery

// 対象の要素をobjとして…
var obj = $(" ... ");

// 非表示にする
obj.addClass("hidden");

// 表示する
obj.removeClass("hidden");

// 非表示・表示を切り替える
obj.toggleClass("hidden");

// 表示か非表示かの判定
if (obj.hasClass("hidden")) { /* 非表示である */ }
else { /* 非表示でない */ }


最初はこういうの↓を参考にしていたのですが、クラスの追加削除で済ませる方がシンプルだなと思いまして…。
jQueryで要素の表示・非表示を判定する方法: 小粋空間


まとめていて気付きましたが、
jQuery部分は共通関数にしてしまってもいいかもしれませんね。

function displayOn(obj){
    obj.addClass("hidden");
}
function displayOff(obj){
    obj.removeClass("hidden");
}

// 呼び出すときはこんな感じで済む
displayOn($(" ... "));

WinSCPとWinMergeを連携する

特に複数人で開発する際、FTPで直接ファイルをアップロードするとき、作業がぶつかって困ることがありました。
(つーか複数人でFTPでっていうのが…そもそも…うん…)

簡単にファイルの差分を比較する方法はないのかと思い調べてみたら、WinSCPWinMergeが連携できました。
やったぜ。

  • WinSCPWinMergeがなければインストールする
  • WinMergeのインストール先フルパスをメモする
  • WinSCPツールバーから、「オプション」>「環境設定」を開く
  • 開いたウインドウ内の「コマンド」から「ファイルの比較」を編集
  • コマンドを書き換える(※後述)
  • 必要に応じてショートカットキーを割り当てる
  • 「OK」で保存
  • ツールバー上の適当なところで右クリックし、「カスタムコマンド」を有効にする

以上。

書き換えるコマンドはこんな感じ。パスはWinMergeのものにします。

"C:\Program Files\WinMerge\WinMergeU.exe" "!^!" "!"

ローカル側とサーバー側でそれぞれファイルを選び、「ファイルの比較」を押すか設定したショートカットキーでWinMergeが起動します。
あとはWinMerge側で編集・保存することもできます。

参考(というか「詳細はこちら」レベル)
WinSCPとWinMergeを連携して差分アップデートを楽にする | PC ウェブログ

WinSCPでローカルとサーバーのフォルダの移動を同期する

WinSCPは左にローカル側フォルダ、右にサーバー側フォルダが表示されていますが、
デフォルトでは片方でフォルダ遷移してももう片方は動きません。

これを同期させたかったので調べてみた。

  • ログインして、左右のフォルダ階層を合わせる
  • 一旦接続を切る
  • 改めてログイン情報の設定画面を開き、「設定」ボタンを押す
  • 開いたウインドウ内の「環境」>「ディレクトリ」にある「ローカルとリモートのディレクトリ移動を同期する」にチェックを入れて「OK」
  • 設定を保存し再度ログイン

これで同時に動いてくれるようになります。
ただし、片方にしか存在しないフォルダに移動すると、ほとんどの場合同期が解除されてしまいます。
そうなったら最初からやり直し。階層を合わせてから接続を切り、もう一度設定し再ログインです。めんどくさい。

参考
WinSCP でフォルダ同期移動 - パソコンサポートの00H ~社長BLOG~

<追記>

もっと簡単な方法があったorz
f:id:honey8823:20190227100323p:plain

配列をクエリストリングに変換する

連想配列なオブジェクトは、「$.param(オブジェクト)」で簡単にクエリストリング化できます。すげーお手軽。

// listは配列
var list = {
    hoge: 123,
    fuga: 456,
    piyo: 789,
}
// listをクエリストリング化
var querystring = $.param(list);
 
// 表示( hoge=123&fuga=456&piyo=789 となる)
console.log(querystring);

デバッグ用に一時的にログファイル出力するやつ

別に一時的なログでなくとも同じようなもんですが、よく使うので…要するに自分用コピペメモです。


PHPで開発する際、デバッグで変数の中身を知りたいときはvar_dump等でお手軽に画面表示できますが、
諸々の理由で画面には出したくない場合もあります。

  • 稼働中の本番環境で確認したい
  • データが膨大なのでブラウザには表示したくない
  • ajaxで呼び出すのでそもそもvar_dump等ではダメ

など。

そういう場合はログファイルに放り込めばよいので、その書き方を。

<?
$dat = ... ; // 中身を確認したい変数

// >>> デバッグ用 >>>>>>>>>>
$logtext  = "================================\n";
$logtext .= date("Y-m-d H:i:s") . "\n";
$logtext .= var_export($dat, true) . "\n\n";
file_put_contents("ログファイルのフルパス", $logtext, FILE_APPEND);
// <<<<<<<<<<<<<<<<<<<<<<<<<

これで、日時と変数の内容がログファイルに追加されていきます。

var_exportは変数だけを渡すと画面に表示する関数ですが、第2引数にtrueを渡すことで表示は行わず、戻り値に文字列が得られるようになります。
PHP: var_export - Manual

また、file_put_contentsの第3引数のFILE_APPENDはログファイルに追記するための定数です。
追記ではなく上書きしてしまいたい場合は省略すればOK。
PHP: file_put_contents - Manual

アップロードされた画像をDBに保存する

作る機会があったのでメモ。
フォームのタイプとか、DBではなくファイルとして保存するとか、そういうアレンジは適当に。

手順

ざっくり分けると以下のような感じ。

  • 画像のアップロードフォームを作る
  • アップロードされた画像を加工する(リサイズなど)
  • 加工した画像をbase64化する
  • base64化したデータをDBに保存する
続きを読む