Python 3の波がオライリー本にも・・・
TLで、オライリーのカレンダー(O'Reilly Japan - 2015年 ブックフェア開催中)をゲットしてるひとがいて、いいなーと思って、なにげなく目録をみたら、Python 3の文字を発見。
- 作者: Bill Lubanovic,斎藤康毅,長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/12/01
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
- 作者: Mark Summerfield,斎藤康毅
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/12/01
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
はじめてのPythonとかクックブックとか、2系の時代のものだったので、ついに、オライリー本にも3系の流れがきましたね。
カレンダー目当てで、一冊買おうかな。
あと2レベルぐらいPythonに強くなりたいので、このへんとか手をだしたい気もする。
- 作者: Kurt W. Smith,中田秀基,長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/06/19
- メディア: 大型本
- この商品を含むブログ (3件) を見る
- 作者: 石本敦夫
- 出版社/メーカー: オライリージャパン
- 発売日: 2014/09/18
- メディア: 大型本
- この商品を含むブログ (2件) を見る
- 作者: Micha Gorelick,Ian Ozsvald,相川愛三
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/11/20
- メディア: 大型本
- この商品を含むブログ (2件) を見る
最近気になってること(2015年11月アップデート版)
- Webサーバ周り
- Webフロント
- HTML5 & CSS3(→モダンコーディング読んでる)
- JavaScript()
- 基礎体力
- 急がないけどやっておきたい
- 統計
- 岩波データサイエンス vol.1
読み物関係(結構読んだ)
Javaで配列をソートする
Javaで配列をソートするときの備忘録。
まずは基本のき
int[] a = {5, 2, 4, 1, 3}; Arrays.sort(a); //結果a = {1, 2, 3, 4, 5}となる
もちろん、順序が定義されているクラスは、intじゃなくてもArrays.sort()を使うことができる。
Date[] b = {new Date(100000000), new Date(50000000), new Date(0)}; Arrays.sort(b);
自分で作ったクラスでは、どうするか
1.自分で作ったクラスでComparableインターフェイスを実装しておく。intを返すようにちゃんとかく。
自ら比較する能力がある(-able)クラスを作っておく。
class MyClassComparable implements Comparable<MyClassComparable> { //フィールド変数に整数xとyをもつクラス int x; int y; public MyClassComparable (int x, int y) { this.x = x; this.y = y; } public int compareTo(MyClassComparable other) { //ここを実装する return this.x + this.y - (other.x + other.y); //2つの整数の合計が大きい方が、同じクラスを比較した時に大きいとした } }
のようにしておけば、
MyClassComparable[] c = {new MyClassComparable(1, 5), new MyClassComparable(2,1) , new MyClassComparable(3,1)}; Arrays.sort(c);
のように、基本のきのように使うだけ。
2.コンパレーターインターフェイスを実装しておく。
インスタンスを比較するやつ(クラス)を作っておく。
こんな感じで、MyClassとMyComparatorをかいておく。
class MyClass { int x; int y; public MyClass (int x, int y) { this.x = x; this.y = y; } } class MyComparator implements Comparator<MyClass> { public int compare(MyClass m1, MyClass m2) { return m1.x + m1.y - (m2.x + m2.y); } }
で、使うときは、Arrays.sort()にこんな感じで渡す。
MyClass[] d = {new MyClass(1, 5), new MyClass(2,1) , new MyClass(3,1)}; Arrays.sort(d, new MyComparator());
2'. 無名クラスでComparatorを作って渡す
MyClassで、implaments Comparableと加えるのも、新たにMyComparatorを追加するのも、あれだなーというときは、Comparatorを無名クラスで作って渡せばよい。
Arrays.sort(e, new Comparator<MyClass>(){ public int compare(MyClass m1, MyClass m2){ return m1.x + m1.y - (m2.x + m2.y);}});
多次元配列で2番目の要素で比較する
ベストプラクティスがよくわからなったけど、配列用のComparatorを作って渡せばよいので、こんな感じなるのかな?
何度も使うなら、Comparatorを作っておけばいいと思うし、今回だけ使うみたなときは無名クラスで渡してしまえばいいかなと。以下は、無名クラスで渡す場合。
double[][] f = {{1.0, 3.0},{2.0,2.0},{3.0,4.0},{4.0,1.0},{5.0,3.0}}; //2番目の要素で並べ替えたい Arrays.sort(f, new Comparator<double[]>() { //double[]でコンパレーターを実装する public int compare(double[] a, double[] b) { if(a[1] > b[1]) { return 1; }else if (a[1] == b[1]) { return 0; }else { return -1; }}});
いじょ。
最近気になってること(2015年10月アップデート版)
最近の興味関心をリストアップしようかなと思ったら、たまたま偶然、ちょうど1年前に同じことをやっていた。fijixfiji.hatenablog.com
この中で、実際になにか手をつけたことは、「O'Reilly Japan - Pythonによるデータ分析入門」だけだった。ちょっと反省ですね。
- Webサーバ周り(サクラのVPS借りたいとか、Nginxとか)
- SQL入門
- C言語(かFortran)を再入門・・・
- 「入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界」と「ふつうのLinuxプログラミング」とか。
- 関数型言語なにかひとつ(「プログラミングの基礎 (Computer Science Library)」とか?)
読み物系だと・・・
/etc/environment スクリプトじゃない
あらまし
環境 Ubuntu 14.04
ユーザーではPATHを通したが、sudoしたらPATHが通ってなくて、コマンドが見つからなかった。
/etc/environmentに記述すれば、sudoしたときにも使えるみたいなのを読んだ*1ので、迂闊に次のような行を追加した。
PATH=$PATH:/usr/lib/hoge
で、再起動後、ログイン画面は立ち上がったが、ログインできなくなった。
学習したこと
/etc/environmentはスクリプトじゃない
https://help.ubuntu.com/community/EnvironmentVariables#A.2Fetc.2Fenvironment
上のような書き方はできません。反省。
全部にPATHが通ってなくても諦めない
sudoとかviとかもフルパスで指定して、/etc/environmentを編集して保存して、再起動で無事復旧。
危なかった。
*1:この問題は、下記で本質的にこれで解決しないのですが・・・
nginx いろいろ
参考になりそうなところwww.atmarkit.co.jp
postd.cc
さくらのナレッジ VPS 初心者向け記事のまとめ とその他
さくらのナレッジの初心者向けの記事のシリーズがおわったので、まとめておいておく。
- 「サーバーってなに?」~初心者でもよくわかる!VPSによるWebサーバー構築講座(1) - さくらのナレッジ
- 「サーバーをさわってみよう!」~初心者でもよくわかる!VPSによるWebサーバー構築講座(2) - さくらのナレッジ
- 「Webサーバーを構築しよう(1)」~初心者でもよくわかる!VPSによるWebサーバー構築講座(3) - さくらのナレッジ
- 「Webサーバーを構築しよう(2)」~初心者でもよくわかる!VPSによるWebサーバー構築講座(4) - さくらのナレッジ
- 「Webサイトを公開しよう」~初心者でもよくわかる!VPSによるWebサーバー構築講座(5) - さくらのナレッジ
内容は、VPSの契約やログインの方法といったところから、WordPressまでといったところ。Webサーバーには、Apacheだった。DNSの設定やらも書かれていた。
ちなみに、現時点で、料金・仕様一覧|VPS(仮想専用サーバ)はさくらインターネットによると、メモリ512MB、SSD20GBで、税込み685円/月だった。
あとは
Apacheじゃなくて、nginx*1(http://nginx.org/ja/)。
ドキュメント生成系で、Sphinx(http://sphinx-users.jp/)
*1:「えんじんえっくす」と読むことをさっき知った