2016年4月28日木曜日

Atomのスニペットにバックスラッシュを入れる方法

いつものことながら前置きが長くなってしまったので、結論を先に書きます。
「\\\\」ってやるといいよ。

では、以下本文。

-----

皆さん、エディタは何を使ってますか?
私は普段かなりマイナーなエディタを使ってるんですが、マイナー過ぎてエディタの話をしても誰とも打ち解けられないことが多々あります。家で一人でコーディングしてる分にはまぁそれでもいいんですが、職場で浮くのはちょっと嫌なのでメジャーどころのエディタを押さえようと、最近はAtomに手を出しています。
今までも何度かAtomを使おうとしてきたんですが、致命的な弱点があってどうしても移行には踏みきれませんでした。それは、動作が超重いこと。エディタ内の検索をしただけで数秒、ファイルを開こうとしてもさらに数秒。やってられっかってなもんです。

特に最近は職場のサーバーを海外のクラウドに移行したからか、ものごっつ遅かったんですよね。
昨今の開発環境といえばローカルで開発してからGitでデプロイ的な感じが主流かもしれませんが、世の中には諸事情でサーバーを直接マウントして開発しなきゃいけない人もいます。いるったらいるんです。異論は認めません。なので、サーバーの場所が遠いとけっこう致命的なわけで。

と、今までずっとそんな感じだったんですが、最近Atomがバージョンアップしたようなので試してみたら、速度が超改善されてました。
メモリは相変わらず割と食うんですが、何かするたびに待たされるってことは無くなった感じです。
なので、今後はAtomをメインで使っていこうかなと。

で、快適な入力環境を目指してキーバインディングの設定を済ませ、今度はスニペットの登録…という段階で問題が発生。
スニペットの中に「\n」って入れたかったんですが、登録してスニペットを呼び出してみると、スニペットが勝手に改行されてしまう始末。ならばと「\\n」ってやってみたら、今度は"n"しか表示されない。。
うむぅと唸りつつ、「\\\n」ってやってみたら、これもダメ。心が折れそうになりつつもググったら、GitHubのQ&Aで『「\\\\n」って書いたらできるよ』って書いててあっさり解決しました。

以上。

って切り上げてもいいんですが、スニペット書くときにもそこそこググったので、せっかくなのでスニペットの登録方法もまとめておきます。

  • スニペットに登録したいコードを選択して、Ctrl+Shift+Alt+P(Macだとoption+cmd+P)を押すと"source.python"とか"source.coffee"とかそういうのが表示されるのでメモ
  • Ctrl+Shift+Pでコマンドパレットを出してsnippetと入力、snippets.csonを表示(メニューバーからでも出せるけど)
  • 表示されたsnippets.csonのコメント行のコードを参考に、スニペットを作成して保存
ちなみにPythonだとこうなる。

'.source.python':
  'snippet_name':
    'prefix': 'mysnippet'
    'body': 'print "hello \\\\n world"'

※さっきのsource.pythonってところをスニペットに記入するときには「.source.python」って感じで頭にドットを付けるのを忘れないこと。

これで、Pythonファイルで"mys"くらいまでタイプすると自動補完で「print "hello \\\\n world"」に展開してくれる。
便利。

ちなみに何でAtomを選んだかというと、現在公開中のエンジニア交流SlackでAtom使ってるって方がいたから。非常に単純な理由ですが、こういう情報交換って大事ですよね。
というわけで、興味を持った方がいらっしゃいましたらこちらのフォームにご記入ください。
メールアドレスだけで簡単に参加できます!よろしくお願いします。

2016年4月26日火曜日

ぼっちプログラマ、図形描画のサンプルソースを探す

更新するの久しぶりな気がするけど気のせいだと思います。

先週はIPAの資格試験も終わったので英気を養おうと思って休養してたんですが、全然回復しませんでした。GWに期待するばかりです。とはいえ、ぐだぐだ過ごすのも性に合わないので、いい加減サスペンドしてる開発案件を進めようと思い立ちました。

普通は要件定義からなんですが、今回は参考になるプログラムを探してさくっと作れないかと考えているので、まずはソース探しから始めてみようかと。その前にやりたいことを整理。

  • SeekGeeksにプレゼン資料として投稿するためのPDFを作成するツール
  • 簡単な図形を用いた図と、文章を作成・編集できる
  • あまり自由度は高くなくて良い(むしろ誰が作っても一定程度の成果物になるようなツールが望ましい)
  • 最終的に作成した成果物はPDF出力したい
Pythonでプレゼン資料を作ろう!みたいなツールは見つけたんですが、図形のことも考えるとjQueryの方がありそうだなぁなんて考えてます。

イメージとしてはすごい機能を制限したdraw.ioが近いかな。
いろいろと勉強したいことが他にもあるし、GWはDockerを試そうと心に決めてるんですが、まずは参考になりそうなソースを探すところから始めて、スケジュールを立てようと思っています。
何か良い参考プログラムに心当たりのある方、ご一報頂ければ幸いです。

2016年4月21日木曜日

ロゴジェネレーターを試してみた

昨日、会社の名前を入れるだけでロゴを作成してくれるロゴジェネレーターの記事を見つけて、せっかくなのでSeekGeeksで試してみました。

サイトはこちら。
MarkMaker

入力項目がホントに名前だけだったので驚いたけど、とりあえずSeekGeeksを入力!

ん〜、出た…けど。。

Aboutってリンクを覗いてみると、どうも学習して精度を高めていくタイプのスタンドサイトらしい。
なので、もう少し使ってみるとジェネレートされる画像も変わっていくのかも。
ちなみに日本語には非対応のようで、試しに「太郎」って入れてみたら文字化けしました。
まぁ漢字のロゴって難しいよね。

ロゴを作らないといけない!って方は試してみてはいかがでしょう。
ところで、こういうの「ジェネレータ」って言いますか?
それとも「ジェネレーター」って伸ばしますか?
小さいことですが気になりました。誰か教えてください。

2016年4月20日水曜日

PythonでWebスクレイピングをやろうとしてやっぱりやめた話

こんにちは。毎月末の恒例行事がマンガやラノベの発売日チェックの者です。
この恒例行事、ずっととあるサイトのお世話になってきたんですが、そのサイトが先月残念ながら終了してしまいました。。多分何か大人の事情が絡んでるんだと思います。

仕方がないので4月発売分のマンガやラノベは個別に出版社のサイトを巡回してたんですが、まぁこれが効率悪いのなんの。
そこで、せっかくブログもやってるし、ネタにするのも兼ねて、PythonでWebスクレイピングして発売日一覧を作ってくれるWebアプリでも作ろうかな?と思ったんです。入門編として、最初の記事はこんな感じかな、と。

  • まずはPythonのインストール(Windowsユーザー向け)
  • Webスクレイピングのライブラリの比較
  • クロール対象にするサイトの紹介
と、ここまで考えたところで、こんなサービスを見つけました。


まだユーザー登録もしてないですが、どうもこれを使えば発売日をメールで知らせてくれるらしい。
すでにあるならわざわざ自分で作らなくて良いんじゃなかろうか。。

…というわけで、作るのやめました。
一旦これで試してみて、合わなかったらそのとき考えよう。そうしよう。
皆さんはどんなツールで発売日チェックしてますか?

2016年4月19日火曜日

SeekGeeksと今やりたいことと今やれること

4月はずっとWindows10をUSB-SSDにインストールしようとしたり、情報処理技術者試験を受けたりして割と慌ただしく過ごしてたんですが、一昨日試験も終わって大分落ち着いたので、これからどうしようかなぁと考えてみたりしています。

もちろん、作っただけで全然ユーザーが増えていないSeekGeeksエンジニア交流用Slackについてもやらなきゃならないことは山ほどあるんですが、それだけではなくて、何かものづくりもしたいなぁと。
一応、SeekGeeksでご応募頂いてるプランがひとつあるのでそれに取り組む予定でもあるんですが、それも含めて、もうちょっと長期的な視点で今後どんなものを作っていくのが良いのか考えてみたいと思いました。

「何を作りたいか」というのはなかなか重要なテーマで、これがあるのとないのとでは開発のモチベーションが大きく変わってきます。「よくわかんないけど、こういうのが流行ってるから作ってみよう」とか、「あんまり詳しくはないけどこの技術が次流行になりそうだな、やってみよう」みたいな感じで始めると、何かでハマってしまったときに抜け出すために真剣になれないんですよね。「まいっか、次行こ!」みたいな感じで、簡単に投げ出せるというか。もちろんそれはそれで良い面もあって、一つのことに拘泥せず、どんどん新しいものを学んで視野を広げられるっていうのもあるんですが、私の場合はせっかく時間を割いてやってることなので、自分が作りたいものを作りたい。

なので、ちょっとだけ時間を割いて、自分の棚卸しをしようと考えてます。
ひとまず、やりたいことはSeekGeeksを中心にした、「誰でもアイディアをプロダクト化できる場の創出」。SeekGeeksはプランナーとエンジニアとのマッチングという形でそれを実現しようとしてますが、それ以外でも何かあるんじゃないかなと。例えば、プログラミング無し、もしくは比較的簡易なプログラミング手法でプロダクトを作る方法を模索してみたり。もしくは今取り組もうとしてることですが、簡易なツールで自分のアイディアを表現するツールをこさえて、あとはSeekGeeksに連携してみたり。あとは、プロダクト作った後になってしまうかもしれませんが、作ったもののマーケティングに役立つツールや、プロモーションに役立つツール等々。
実はこういうの、10年以上前から興味ある分野だったんですよね。でも、当時はプログラミング知識も無ければ社会人経験もなくて、ホームページビルダーでテーブルレイアウトのサイトを作るのが精一杯の状態だったので、考えるばかりで何もできなくて。
でも今なら、Pythonで何かツールを作ったり、ちょっとしたWebアプリやハイブリッドアプリくらいなら作れるようになったと思ってるので、この機会にやりたいこと、できることを整理してみようかと。

ひとまずは、実現できるかどうかは別として、やりたいことをまとめてみようかな。
何か進展があればブログにも書いていこうと思います。

2016年4月15日金曜日

Windows7を外付けSSDにインストールしようとして諦めた話

タイトル通り諦めた話なので、参考になる話は一個もありません。過度な期待はしないでください。

普段使いのPCではOSにLinux Mintというのを使っています。これは人とは違うものを使って個性を出していこうとかではなくて、単純に安物のPCでもサクサク開発できるから。実際、今使ってるPCもWindows8.1とLinux Mintのデュアルブートにしてますが、Win側を起動するとあまりにも遅いので基本的に起動しません。たまにWindowsじゃないと動かないソフトウェアを動かしたいときに起動する程度。同じメモリ8GBなのに何でこうも違うのか…
一方で外で開発するとき用にMacBook Airも持ってて、こちらは普段使いのPCよりもさらに速い。メモリは8GBで、これはSSDを使ってるのでそれで速いのかなと漠然と思ってました。

で、ある日ふと、「じゃあメモリ8GBでSSDのマシンにWindows入れたら速いのか?」という疑問を持って、調べてみることにしました。元々別にWindowsが嫌いなわけじゃないので、うまいこと使えるようになるならそれはそれで嬉しいなと。あと速いWindowsって生涯で2回しか見たことないので、見てみたいという好奇心もあったり。

で、Windows7 Home Premiumを元々持ってたので、これと今使ってない古いPCのHDDをSSDに換装すれば…と考えたのですが、換装とか正直めんどい。調べてみたら、簡単だよって書いてる記事にまぎれて、いくつか面倒そうな手順を書いてるものもあったので、この面倒は回避したいなと。そもそも壊れてないHDDを換装するとかやりたくなかったし。で、他に大きな買い物を同時期にしたのと、調べたとき酔ってた勢いもあって、外付けSSDを買ったんですね。買っちゃえば後はどうにかなるだろうと。それが間違いだったわけですが。

いろいろ調べてみた感じ、参考になりそうだなと思ったのは以下の記事。

16GBのUSBメモリで Windows To Go っぽいことをする
「Windows8評価版(無料)」を使って、(USBブートできる)「Windows To Go」もどきを作ってみる

なんかこれ見たら簡単にいけそうな気がしたんです。
実際コマンド打っていったらエラーも起きなかったし、ちゃんとWindows7の起動画面も出て、夜中独りで「うぉっ」とかつぶやいてみたりもしました。
でも、起動して数秒でブルースクリーン&再起動の無限ループ…ってのを5回ほど繰り返して思いました。あぁ、やっちまったな、、って。。

この時点で2〜3日ほど時間をつぎ込んでしまってるので諦めるのもなぁ、とか、この外付けSSDどうすんだよ。。とかいろいろ葛藤して、最終的に、「古いPCにWindows10を入れて、基本的に使うアプリケーションは全部外付けSSDにインストールして運用する」というのをやってみることに。
幸い、Windows10をクリーンインストールした後でWindows7のプロダクトキーを使って認証することも、今までCドライブにしかインストールできなかったアプリを他のドライブに移すことも最近のWindows10の進化のおかげでできるようになっていたので、これ自体はすんなりできました。
昨日一日でほぼ作業は終わって、今調子を見てるところです。現状、Win10をクリーンインストールしたのでそこそこ快適。後は普通に使っていって、普通なら遅くなってくる頃にどうなるか。ちょっと怖いですが様子を探りながら試してみたいと思います。
あと、HDDが壊れたら今度こそSSD換装にチャレンジしたい。そのためにもバックアップはしっかり取っておかねば…

それにしても、埋もれてたWin7を無償アップデート期間前にWin10にできて良かった。
何か嫌われ者のWin10ですが、他のPCで試した感じそんな悪くもないんですよね。まぁWin7の方がそりゃもちろん良いけど。
でもほら、Win10ならbashが動くようになるらしいし。今度そっちも試してみたいと思います。

2016年4月14日木曜日

新卒時代を振り返ってみた

昨日大手企業に新卒入社した人が希望の部署に入れてもらえなくて辞めた、みたいなのをネットで読んで、何となく自分の新卒時代を思い返してました。
自分の場合はそんな大企業じゃなくて、部類としては中堅SIerくらいだったんですが、まぁ人数はけっこういたような気がします。就活自体特段やる気はなくて、とにかくプログラミングを覚えたい一心で、開発職なら何でもいいって思いでやってました。思えばこのとき真剣に就活っていうか業界研究やってなかったこともあって、プログラマ=Webエンジニア、って思ってたんですよね。周りに同じ業界進む人がいなかったので相談できなかったってのもありますが、それにしても無知だった。

で、結局就職はできたものの、Web系に進むことは叶わずメインフレーム+COBOL、部署も希望してた流通じゃなくて金融でした。発表された日の帰り道、そこから先の未来に絶望してたのを覚えてます。いつ辞めようかということも真剣に検討しました。まぁ結局そのときは辞めずにずるずる6年近く働いて、最終的には辞めちゃって今はWebエンジニアになったんですけど。
じゃあこの6年が無駄だったかっていうとそうでもなくて、中堅SIerだったのでプロジェクト管理の真似事みたいなこともできて、そのおかげかプロジェクトマネジメント試験にも合格したし、COBOLだとフローチャートと処理が一致しててわかりやすいので未経験の新卒プログラマには良い訓練になったと思うし、メインフレームずっとやってたのでWebだとあんまりやらないようなバッチ処理に関して多少経験を積めました。おかげで夜勤とかけっこうあったけど。
もちろんさっさと辞めちゃってWeb系の会社に移ってれば、今よりずっと技術的な知識は身に付いたかもしれないけど、少なくとも私の場合は必要な6年だったなって思ってます。いや、6年は長かったな、やっぱり。4年くらいで良かったような気もする。。
もちろんマイナスの面もありましたけどね。Web系の知識は独学で覚えなきゃいけなかったので夜中の2時までPHPの本読んで、昼休みにもJavaの本読んだりしてました。あ、同じような境遇でネットに繋がらない端末持たされて鬱々としてる人がいたら、VBScriptをオススメします。テキストエディタだけあれば動くから、COBOL以外を触りたいときはよく一人でいじってました。今ならJavaScriptかな。ブラウザさえあれば動くし。

まとまりがなくなってきたけど、今振り返ると、無駄だと思ってた時間が本当は無駄じゃなかった、ってこともあるよと。とはいえ石の上にも3年とか言う気はまったく無いんだけど。ブラックで身体とか精神病むって思ったり、他にやりたいことがあるならさっさと辞めた方が良いし。でも、辞めるって決断はある意味いつでもできるので、今自分が経験してることを無駄にしないためにどうすればいいか?っていうのを、辞める前に一度考えてみると良いような気がします。

…何か年取るとこういうの書きたくなるな。気を付けよう。

2016年4月13日水曜日

エンジニア交流用Slackが賑わってきたので嬉しい

先月くらいからエンジニア交流用公開Slackなんてものをやってるんですが、本当に少しずつですが参加者が増えてきています。
たまに募集用のツイートをしたりしてるんですが、それをリツイートしてもらったりしてる効果もあると思います。
いつも本当にありがとうございます。(私信)

さて、このSlackですが、交流用ということで特段目的もなく、今どんなライブラリ使ってますか?とか、こんなツール使ったことありますか?という話や、最近だと、Web系やるならこんな本読んでおきたいよね、みたいな情報をまとめてみたり。これはまだ途中ですが。
参加者も数は少ないですが幅が広くて、Python、C#、PHPときて、昨日Ruby使いの参加者も新しく入ってくださいました。
今後はbotを作って投入してみたり、技術的な悩みを相談したりされたり、一緒にこんなプロダクト作りませんか!?的なことをSeekGeeksを通しつつやっていければなんて思ってます。

実際やってみると、フリーな場だと話題をどうしよっかなーとか悩んじゃったりもするので、その辺の話題作りをbotがうまいこと振ってくれるようになるといいなって思ったり、実は今書きながら思いついてたり。私の場合、職場以外でエンジニアと交流する機会も無いので、こういう場でいろいろと質問できるのはすごく新鮮なんですよね。
今後も皆様のご迷惑にならない範囲で、いろいろと質問させて頂ければと思っています。
今後ともよろしくお願いします。

Slackへの参加者は引き続き募集中ですので、ちょっとでも気になったエンジニアの方、良かったらこちらからご連絡ください!

以上、宣伝でした。

2016年4月12日火曜日

勉強したいことが多すぎる件

タイトルの通り、勉強したいことが多すぎる。
今気になっていることをあげてみると、こんな感じ。
  • Dockerで開発環境作ってみたい
  • Visual Studio CodeでPythonのdefをリスト表示させるエクステンション作りたい
  • 外付けSSDにWindows7をインストールしてUSBブートさせてみたい
  • Xamarin試してみたい
  • Electron試してみたい
  • Swift勉強してみたい
  • 「テストを書く」というのをやってみたい
  • エンジニア交流Slackにもっといろんなエンジニアを招待したい
  • SeekGeeksにもっといろんなユーザーが増えるよう頑張る
後半は勉強っていうかただの願望になってしまってるけど。
でも、自分の身体はひとつで、一日は24時間しかないんだよなぁ。。
あー、そういえば週末DBスペシャリスト試験もあるのに昼休みの15分くらいしか勉強してない。土曜くらいはちゃんとやらなきゃ。。
精神と時の部屋、現実世界に実装されないかな。

とりあえず、今はDockerと外付けSSDのWindowsインストールやってみてます。
うまくできたらブログに書くかも。ちなみに後者は絶賛苦戦中。
何か良い参考URLとかあったら教えてください。

2016年4月11日月曜日

Dockerをインストールしてみた(Ubuntu, Mac)

先週Dockerをインストールしたので、メモ。
2年くらい前に勉強しようと思って電子書籍買ってたんだけど、いつの間にかインストール方法から変わっていたらしい。

※以下、2016/4/11時点の情報です。

とりあえず普段使ってるLinux Mintに入れて、それからMacに入れてみました。
Linux Mintでできたので、LubuntuとかUbuntuでも普通にできると思います。(古いやつはどうかわかりませんが)

<Ubuntu系の場合>

って言っても超簡単なんですけどね。

sudo apt-get install docker.io

".io"が必要とか罠過ぎる…
ちなみに電子書籍では最初にリポジトリを追加して云々ってやってたけど、今は不要らしい。あと、ネットで調べると上記の方法でインストールした後、docker.ioコマンドじゃなくてdockerコマンドで実行するためにdocker.ioからシンボリックリンクとか張ってたけどそれもやらなくて良くなってるっぽい。

あとは、このままだとdockerコマンド実行するたびにsudoしなきゃいけないので、

sudo gpasswd -a user docker

と打って再起動。ググるとログオフだけでいいって書いてたけど、自分の環境ではうまくいかなかったので再起動しちゃいました。ちなみにこの設定は一般ユーザーをdockerグループに追加するということでセキュリティ上好ましくないらしく、実行するかどうかはお好みで。不特定多数が使う端末ならやめておいた方が良いかもです。

で、再起動後に、

docker info

これで動いた。
以上。

<Macの場合>

これはもっと簡単で、ここでパッケージ落としてきて普通にインストールしました。
こちらもググるとhomebrew使う方法とかもあるみたいだけど、公式サイトに書いてる方法が無難だと思ったので、それ以上は調べませんでした。

ちなみに今は新しくDocker for Macってのがあるらしいです。
Docker for Mac プライベートベータを早速使ってみた! - paiza開発日誌
興味あったんですが、現在は承認された人しか使えないらしいので諦めました。

後はインストール後、Docker Quickstart Terminalってのが入ってるのでそれを起動。(普通のターミナルからコマンド打っても動きませんでした)

docker info

動いた。
以上。

==========

この後もコマンドいくつか試してみたんですが、今回はインストールということでこの辺で。
こういう新しい技術って、情報変わるの速すぎてインストールで躓いたりするんですよね。
そして一度躓くと何かしばらくいいかなーとか思ってしまったり。

とりあえず、2016/4/11時点ではこの方法でインストールできると思われます。
これから勉強しようという方、一緒に頑張りませんか?
エンジニア交流Slackでお待ちしています。[PR]

2016年4月8日金曜日

SeekGeeksに投稿しやすくするためにはどうすればいいか考えてみた

以前の記事でも書きましたが、私がSeekGeeksで公開しているプランの中の、「ミニマムプレゼンジェネレータ」というプランに応募を頂いて、現在どんなものが良いか考えている最中です。

どんなプランかざっくり説明すると、「ブラウザ上でプランの説明用資料のPDFを作れるWebアプリを作ろう!そしてそれをSeekGeeksユーザーに使ってもらおう!」というもの。

そもそもこれを作ろうと思ったきっかけはSeekGeeksにプランを投稿するに当たって、できるだけプランナーの負担を少なくしたいと思ったから。とりあえず自分でプランを3つほど考えてみましたが、やっぱりPDFを用意する負荷ってけっこう高いんですよね。。

どんなアイディアでも、コンセプトを説明するために必要な図ってのはある程度パターンがあると思っていて、そのパターンを押さえておけば図で説明する部分は何とかなるのかなと。後は文章で説明する部分ってのもあると思いますが、そこはもうプランナーに頑張って頂くしかないわけで。
でも図を考える、作るといった手間が省ければ、「ちょっと作ってみてもいいかな?」と思ってくださる方もいらっしゃるのではないかとカクサクしてます。

あと、ブラウザで簡易的なプレゼン資料作るっていうのにも興味があったり。私自身は普段開発しかやってないのですが、数年前にちょっと新規サービスのアイディアを作るという機会に恵まれまして。それ自体はボツになったんですが、けっこう資料作りに苦労したなぁと。ぶっちゃけどうせボツになるならあんな苦労したくなかった。そんな経験もあって、とりあえず自分の頭の中を簡単に図に起こせるっていうのは今後あっても良いかな、と。

実際どんな実装にするかはまだ全然決めてないです。一番悩んでるのはUI部分。ドラッグアンドドロップでペタペタ張り付けていくパターンと、Markdownみたいな感じの記法でテキストベースの記述を書くと、勝手に図にしてくれるようなパターン。↓みたいな感じ。
もう保守されない画面遷移図は嫌なので、UI Flow図を簡単にマークダウンぽく書くエディタ作った

ミニマムってくらいなのであまり自由度は求めてなくて、本当に簡易的な図にコメントを付与する程度の作りにするつもりです。だったらドラッグアンドドロップよりは、Markdownっぽくある程度ルールが決まった中でテキスト書いてもらった方が楽なのかなーとか。

どっちが良いんですかね。ご意見頂けましたら幸いです。
個人的にはMarkdown形式の方が良いと思ってるけど、そうしちゃうとプログラミング経験に馴染みがないプランナーにはとっつきづらいかな?とも思ってみたりするんですが、かといってドラッグアンドドロップなのに使ってて制限があるっていうのもイライラするだろうな、と。

ちなみに先ほども書いた通り、実装方法は現在のところ全然決まっていません。。
どっちかのサンプルになりそうなコードを探してみるところから始めようと思ってます。
SeekGeeksは時間をかけすぎちゃったので、こちらはなるべくスピード重視で実装しちゃいたいな。。長期のプライベートプロジェクトって、モチベーション保つの鬼難しいし。

あと、もし完成したらGithubとかに上げてみたいなーというのも考えてます。
最近のエンジニアといえばGithubアカウントくらい持ってるよねっていう風潮がありますが、残念ながら私は持っていないので。。
っていうか、そんなにみんなGithub使ってますか?私の周りだと一人くらいしか持ってないんですが…

2016年4月7日木曜日

Macでマージツールを比較してみた

前々からMacの開発ツールを揃えようといくつか記事を書いてきましたが、
  Macでも開発ツールを揃えたい!
  Macで開発環境を整えてみた
やっぱりマージツールが欲しくていくつか試したのでメモ。
結論から言うと、まだベストなソリューションが見つかってないです。

この手の話題はググるといくつも比較記事とかも出てはくるんですが、自分の用途に合った使い方かというと必ずしもそうではないようなので、まずは整理。
やりたいことは以下。

  1. SourceTree等の外部diffとして指定
  2. ファイル・ディレクトリの比較
  3. 2つのテキストをコピペしてきて比較
1.はすでにDiffMergeというツールを入れてて、とりあえず何とかはなるかなといった感じ。同じツールで2.もいけそう。でも3.の用途は、DiffMergeは事前にファイルやディレクトリを指定して比較するようになっているのでまだ足りない。っていうかWinMergeが使えれば解決するのに…

で、ググりながらツールを探して、試してみたのは以下。
  • P4Merge
  • TextWranglerのFind Differences機能
  • KDiff3
  • Diffuse
比較記事みたいなのは以下のサイトを参考にさせて頂きました。


で、3.の用途に限って比較していきました。1.と2.はとりあえずDiffMergeでいいかなって。
まぁもっと良いのが見つかれば乗り換えるのもやぶさかではありませんが。

P4Mergeを試す

うん、そもそもファイル指定前提だから無理だね。
終了。ちなみにインストーラの場所がわかりづらかった。これはただの愚痴です。

TextWranglerを試す

うん、これもそもそもファイル指定前提だから無理だね。
終了。

KDiff3を試す

すごいわかりづらいけど、一応クリップボードからペーストはできた。
でも、同じテキストをコピペして比較してみたら、「ファイルAとBのテキストは同じですが、バイナリ的に等しくありません」ってメッセージが出た。冗談きつい。
あと、ペーストした後の文字列を編集できない。きつい。

Diffuseを試す

ネットで探してもインストーラが見つからなかったので、homebrewで入れてみた。

brew install diffuse

これで入った。(たしか)

見た目はレトロな感じ。使ってみた感じは悪くなかった。コピペでの比較も一応できたし。
でも、Macだとショートカットが動かなかった。操作ミスかもしれないけど。。
あと、他のツールでよくある、「一致しました!」みたいな表現が出てこないのでわかりづらい。
アンマッチの部分は赤くなるので、そこが消えたらマッチってことみたいだけど。

とりあえずDiffuseを残しつつ、継続して他のツールを探していこうかな、と。

何か他に良いのがあれば教えてください。

2016年4月6日水曜日

SeekGeeksにはプランナーが少ない

タイトルの通りです。
自分のWebサービスのPR記事というか、お悩み相談というか。

少ないっていうか、厳密にはまだいないんですけどね。
プランナーとエンジニアのマッチングWebアプリを公開してますが、ユーザー数は悲しいことに全然伸びません。。まぁ覚悟はしてたのでそれはそれで良いのですが。

問題は「じゃあどうやって増やしていくか」という対策のお話になるんですが、とりあえず現状はこうやってブログを書いて、後はツイッターでいろいろな方にお声がけさせて頂くしか今のところできていないんですが、そこについても現在悩んでいることがありまして。
プランナーってどうやって探したら良いんだ?と。

エンジニアだったらプロフィールとかはっきりしてるので「あ、Rubyの人だ」とか、「あ、PHPの人だ」とわかるのですが、SeekGeeksが想定してるプランナーっていわゆる事業企画とかの企画職の方たちだけじゃなくて、「ちょっと思いついたこんなアプリのアイディアを試してみたい」とか、「こんなWebサービスあったらいいのにな」という、「アイディアを持ってる人」なんですよね。普段は企画とかやったことないけど、パワーポイントやkeynoteで自分の考えをまとめることはできる。でも作ってくれるエンジニアに心当たりはないし、かといってクラウドソーシングでお願いするような気にもならない。
そんな方々がパートナーを探して、「それ面白いじゃん、一緒にやろうよ」的に盛り上がれる場としてSeekGeeksを作ったわけなんですが、そもそものプラン投稿が無いと仕組み自体が成り立たないというか。

知恵を絞ってはいますが、今のところ妙案は浮かばないまま。
ランニングコストはserversmanのサーバー月500円とドメイン料年1000円くらいなので稼働しっぱなしでも影響は無いのですが、このままだとけっこう寂しいので、プランナーを集めるプランを絶賛募集中です。
こんなのやってみたら?というアイディアのある方、良かったら教えてください。
よろしくお願いします。

…まぁ、プランナー登録が無い、と書くとエンジニアの登録はありそうな感じの文章になっちゃいますけど、別にそんなこともなくエンジニアの登録も絶賛募集中です。
何かワクワクするプロダクトを作りたい!というエンジニアの方、良かったらユーザー登録をお願いします。
経験年数とかの制限は無いし、Githubアカウントが必要とかいうこともないので、気軽な感じで遊びに来てください!


以上、PR記事でした。

2016年4月5日火曜日

expectで自動ログインしてみた

ちょっとした事情があって、crontabでSFTPコマンドを叩いてファイルを取得する、みたいなことがしたかったんですが、SFTPだとパスワードを求められるのでcrontabで自動実行することが出来ず苦労したので、expectというのを試してみました。
※鍵認証にしたら?的なごもっともな話は省かせて頂きます。

で、これがけっこう便利だったのでメモ。
割とsshでいろんなサーバーに繋ぐことが多いので、鍵認証にしてないサーバーの場合はこれ使おうかなと考えてます。
SFTPでいけるならsshでもscpでもいけるはず。

そういえばSFTPって接続時にファイルを指定できたんですね。
昨日初めて知りました。。
毎回毎回ググってないで、もう少し体系的に勉強するべきだよなぁ。。

閑話休題。

まず、expectがインストールされてない場合があるので、
which expect
であるかどうか確認して、無かったらインストール。
yum install expect
デフォルトのリポジトリには無いかも。。
その場合はepelなりremiなり試してみてください。

で、以下のコマンドをmyexpect.shという名前で作成しました。

#! /bin/sh
expect -c "
spawn ssh user@your.server.domain
expect password:
send \"yourPassword\n\"
interact
"
ユーザー名とサーバー、パスワードのところを書き換えれば使えると思います。
パスワードの最後に\nを入れないと入力完了しないので注意。
場合分けして引数でサーバー名渡すようにしたら複数でもいけそうだな、これ。

同じように毎回何かにログインして面倒だなって思ってる方は試してみてください。

2016年4月4日月曜日

Macで開発環境を整えてみた

Macで開発ツールをひと通り整えてみたので、メモ。
これがいいよ!っていうおすすめツールじゃなくてあくまで自分用メモなので、「こっちの方が良いよ!」とか「これは使ってないの?」みたいなのがあれば教えて頂けると助かります。

<エディタ>…どっちが良いか検討中。軽さで言うとVS Codeなんだけど、Atomの方が使いやすそう。
Atom
Visual Studio Code

<IDE>
Xcode

<ブラウザ>
FireFox
Chrome

<ターミナル>
iTerm2

<サーバーマウント>…リモートサーバーをローカルファイルみたいに扱うツール
OSXFUSE
Macfusion…上記ツールをGUIで操作するためのものらしい。でも何故かマウントしようとしてもエラーになってマウントできないので諦めた。。

SSHFS…上記ツールでやってもうまくできないのでこっちをインストール。マウント/アンマウントをコマンドラインで実行するようにした。

<DBクライアント>
Sequel Pro…まだ慣れない…。他に何かツールがあれば知りたい。

<マージツール>
DiffMerge…日本語対応させるのに苦労したけど今のところ問題無く動いてるのでこれで。ベストではないので余裕のある人は有料ツールを試した方が良いと思う。

ちなみに日本語対応の方法はこちらのブログで紹介されてました。
拡張子によってはうまくいかないって書いてますが、設定画面をよく見るとPythonとかテキストファイルのとき用の設定が別途デフォルトで決められてるだけなので、そっちの設定をEditしてUTF-8にすれば問題無いです。

<Gitクライアント>
SourceTree…重いのでこれがベストではないけど、他に良いやつ知らない。。

<クラウド>…全部入れると同期しちゃってストレージ食うので、どれかに絞るのがベストな気がする。
Dropbox
Google Drive
OneDrive

<ランチャー>
Alfred…すでにこれが無いと不便に感じるレベル。

<キーボード周り>
Karabinar…ファンクションキー使うときにFnキー押しながらとか面倒なので使った。
Seil…外付けキーボードで変換/無変換キーを有効化するために使った。

<その他便利ツール>
Vagrant
Go2Shell…Finderからターミナルを立ち上げる。
AppCleaner…アプリを削除したいときに綺麗に消してくれる。
Clipy…クリップボードの履歴管理。無くてもいいけどあると便利。
MenuMeters…CPUとかディスクアクセスとかそういうやつを可視化してくれる。
ShiftIt…アプリの全画面表示とか右寄せとか左寄せとかをショートカットで簡単にできるようになる。慣れると超便利。
CheatSheet…commandキー長押しすると、そのアプリで使えるショートカットキー一覧を表示してくれる。便利。

<homebrew>…使いこなせてないけど、Macでの開発には必須っぽいのでインストール。方法はググればいっぱい出てきます。
Git
Mercurial
Node.js…nvmというのを経由してインストールした。


こんな感じにしてみました。
しばらくはこれでいろいろ頑張ってみようと思います。

2016年4月1日金曜日

SeekGeeksに投稿したプランに応募があった場合の流れを書いてみる

プランナーとエンジニアのマッチングWebアプリ、SeekGeeksというサービスを公開していますこんにちは。

先日、自分で自分のサービスにプランを投稿したのですが、そちらのプランに対して応募を頂いたので(知り合いなので若干サクラ感ありますが…)、良い機会なのでプラン投稿後の流れをまとめてみようと思います。
あくまでこれは私が考える流れなので、実際にはプランナーとエンジニアが双方納得のいくやり方を探り合って見つけて頂ければと思います。

1. プランナーにメールが届く


応募があると、プランナーの登録しているメールアドレスにメールが届きます。基本的には簡単な自己紹介と、一緒にやりましょう!的なメッセージが添えられることを想定しています。
一緒にやってみたいと思った場合は、返信にてその旨を記載願います。
※応募後のプランナーとエンジニアとのやり取りは自己責任とさせて頂いております。あらかじめご了承ください。

ちなみにSeekGeeksではバリバリ現役でエンジニアやってます!という方はもちろんですが、これからプログラミングを勉強したい、レベルアップしたい、という方もユーザーとして歓迎していく予定です。なので、プランナーがスーパーハカーを求めている場合は、その旨「ギークへのメッセージ」という欄辺りにご記載頂いた方が良いかと思います。


2. 進め方やコミュニケーションツールを決める


ざっくりしたスケジュール感と、今後どうやって話し合いをしていくか、タスク管理をどうするか、くらいは決めておいた方が良いと思います。
今回は、Slackでコミュニケーションを取りつつ、タスク管理はTrelloを使っていきたいと考えています。
あと、進め方というか方針はすり合わせておいた方が後々のトラブルを回避できると思います。
空いた時間ちょこちょこでいいならやってみたいとか、週末起業的に週末はある程度コミットして一気に仕上げたいとか、もうマジこれで天下取るから人生賭けてます、とか。温度差があるとけっこう進めていく上でつらいと思うので。(お互いに)

3. 募集を継続するかどうか決める


マッチングサイトだからパートナーを見つけたらそれ以上の募集はできないのかな?と思うかもしれませんが、そこはプランナーご自身で判断をお願いします。
チームじゃないと作れないほど大規模なプランだったら複数名必要ですし、スキルセットの問題でパートナーでなくチームになる場合もあるかとあると思います。
募集を終了する際は、マイページから「公開中止」ボタンをクリックすれば他のユーザーの画面には表示されなくなります。(一旦非公開にしても、後から再度公開することもできます)

4. 頑張って作る


これはもう頑張るしかありません。
頑張ってください。
Pythonいいよ、Python。

5. リリースする


おめでとうございます!

リリースが完了した場合は基本的に募集は終了だと思うので、お手数ですがマイページから「公開中止」をクリックしてください。
また、もしよろしければ、「SeekGeeks経由でパートナー見つけてリリースしたよ!」というご連絡を頂けると嬉しいです。
もしよろしければインタビューさせて頂いて、こうしてブログ記事にさせてもらったり、アレだったらアレして私もJOINさせてもらったりゲフンゲフン。



ざっくりした説明にはなりましたが、流れとしては以上です。

・アプリやサービスのアイディアはあるけど、プログラミングがわからないのでアイディアを実現できない
・身に付けた技術を活かして、何かワクワクするプロダクトを作って公開したい

そのような方々が何かのきっかけで出会い、一緒にプロダクトを完成させる。
そういったことは今の時代、SNSなどを活用すればそう難しいことではないのかもしれません。
ですが多様な使い方ができるSNSでは、同じ目標を持つ仲間を探す、というのは案外難しいのではないかと考えています。
特に、資金も潤沢でない、プライベートプロジェクトで小さくスタートさせたい人たちにとっては、プランを発表して仲間を探す、というのはハードルが高いのではないかと思います。
SeekGeeksはそのような方たちの仲間探しのハードルを下げ、少しでも多くのプランを実現するお手伝いができればと思って作りました。

やってみたいアイディアがある、何か面白いものが作りたい。
そんな想いを持っている方がいらっしゃいましたら、是非SeekGeeksに遊びに来てください。
お待ちしております。