shikoan’s memo

プログラミング初心者のチラ裏

ぷろぐらみんぐ帳

Coursera Machine Learningを終わらせてきた

前回の記事の続き。4/19に始めて5/14に終わりました。すごい楽しかったです。 ここのコースのまとめはQiitaに上がっています。だいたいこの記事と自分の感想は一緒ですね。とにかく初心者向けに丁寧に教えてくれます。全部英語ですが日本語字幕があるのがポ…

Courseraでスタンフォード大学に入学してきました

というのは半ばタイトル詐欺で、Courseraというインターネット上で講義が受けられるサイトがある。 www.coursera.org ここの機械学習(Machine Learning)のコースが大変評判がよく、「機械学習をちゃんと勉強したいならここ」というのいうのをよく耳にした…

AtCoderに登録してみた

前々から気になっていたAtCoderに登録してみた。Beginners Sectionの10問全てと過去問のA~Dの10問ちょいを解いてみた(あんまそこまで本気でやるつもりはない)。 abs.contest.atcoder.jp AtCoder Problems レートがつく大会に出ていないので晒すほどのプロ…

Numpyで相関行列

テスト用のデータを作成。 import numpy as np # テストデータ x = np.arange(5).reshape(5,1) print(x) print() [[0] [1] [2] [3] [4]] このまま複製して相関係数を計算すると「標準偏差が0だゴルァ」と怒られるので、ノイズを乗っける。平均0、標準偏差0.5の…

C#で標準(エラー)出力をリダイレクトする

前置き。月額200円ぐらいでWindowsServer2016が使えるVPS環境が見つかったのでお遊び。バックグラウンドで動かすプログラムがあるのだが、たまに落ちてしまうことがあるので、定期的に「実行していなければ動かして、動いていれば何もしない」という操作をし…

iKoulaの専用サーバーでGPUマイニングをしてみた

以前、この記事でフランスのサーバー会社iKoulaの専用サーバーを借りた話をした。 koshian2.hatenablog.jp ちなみに現在半額のプロモコード配布中で、初期の1~3ヶ月分がだいたいのプランで半額になる。自分が借りたE3 1220v5のプランは月額14.99€+VAT(付…

NumPyの行列演算で二重ループをなくす

100 Numpy Exercisesの86番を見て知ったテクニック。これは数値を2進数表記する問題。 86.Convert a vector of ints into a matrix binary representation (★★★) # Author: Warren Weckesser I = np.array([0, 1, 2, 3, 15, 16, 32, 64, 128]) B = ((I.resha…

numpy.ufunc.reduceatの意味

100 Numpy Exercisesの78問目より。この関数意味わからなかった。ちなみにこんな問題。ブロック単位での和を計算することを想定している。 78.Consider a 16x16 array, how to get the block-sum (block size is 4x4)? (★★★) # Author: Robert Kern Z = np.o…

numpy.bincountのweightの意味

100 Numpy Exercisesの56問目で解いていたときにふと湧いた疑問。こんな問題。 56.How to accumulate elements of a vector (X) to an array (F) based on an index list (I)? (★★★) # Author: Alan G Isaac X = [1,2,3,4,5,6] I = [1,3,9,3,4,1] F = np.bin…

フランスのホスティング会社iKoulaで専用サーバーを丸々1台借りてみた

日本国内のサーバー会社だと、専用サーバーって個人で簡単に借りられる金額ではないんですよね。 例:さくらサーバーより ・さくらスタンダードシリーズ Xeon E3-1230 v5 4C/8T 3.4GHz 最大3.8GHz メモリ 標準8GB 最大64GB ストレージ 標準2台1組 最大2台 こ…

VPSを使い始めたときの初期設定(Ubuntu編)

自分用メモ。 CentOSに飽きたのでUbuntuを使ってみた。基本的には同じ。インストールオプションでUbuntu17.04も選べたが、2018年1月にEodOfLifeを迎えているので、apt installを行うときにちょっと手間取る。後発バージョンを使うか、よりサポート期間の長い…

CentOS7+Python3.xで日本語を内容に含むファイル出力をしたときにUnicodeEncodeErrorがでたときの対策

環境:CentOS7、Python3.6 Windows環境では発生しなかったのにLinux環境で実行したら発生した。 test.py with open("hoge.txt", "w") as fp: fp.write(u"あああああいいいいうううう日本語") Traceback (most recent call last): File "test.py", line 2, in <module></module>…

型の違う配列やTupleをjoinで文字列結合するときの注意

大丈夫だろうと甘く見ていたら怒られたのでメモ Pythonは型にルーズなので、配列やTupleの中に文字列と数字が混在していても特に問題なし。例えば次のようなTupleは許容される。 a = (1,"a",2) ところが文字列結合すると途端にうるさくなる。例えばこれです…

月額2.5ドルから使える素敵なクラウドVPS「Vultr」の良いポイント

日本でもそこそこ有名になりつつある、海外VPSの『Vultr』を使ってみた。 いろいろ解説しているサイトがあるので(例えばこのへん↓)端折るけど、自分の独断と偏見でポイントを紹介。 www.pr1sm.com qiita.com 1. 何と言っても月額2.5ドルのインスタンス こ…

Vultr(CentOS7)でSSHのポートを変更したあとにTeraTermでログインできなくなった

環境:Vultr、CentOS7 64bit こちらを参考に設定をしてた(Time4Vpsじゃないけど) time4vps.ysklog.net SSHのポートを変更して秘密鍵認証に変えて、iptablesも変えていざTeraTermを再起動!としたらいきなりログインできなくなったときのメモ(これにハマっ…

PostgreSQLでテーブル、インデックスの合計容量を取得する

探してたら古い情報しかなかったのでメモ。最新バージョンのドキュメントだと、結構明瞭に記述できるようになっている。 SELECT relname, pg_size_pretty(pg_total_relation_size(relid)) AS totalsize, pg_size_pretty(pg_table_size(relid)) AS tablesize,…

PostgreSQLでISO8601形式の日付を扱う(タイムゾーン付き)

PostgreSQLでタイムスタンプの文字列から、インポートするときにちょっと困ったのでメモ。 例えばC#でいうところの Console.WriteLine(DateTimeOffset.Now.ToString("o")); //2018-02-17T23:50:31.5652713+09:00 こういうISO8601形式のタイムスタンプをパー…

PostgreSQLでデータディレクトリを変更して起動する方法

PostgreSQLをローカルで使っていると、通常と別のデータディレクトリから読み込ませたり、データディレクトリを切り替えながら使用したいことがある。その方法のメモ。 環境:PostgreSQL 10.2 64bit 1. サービス登録の解除 インストールするとデフォルトでサ…

Goutteでhtmlファイルからスクレイピングする方法

Goutteにはダウンロード用のクライアントがついているが、ファイルからHTMLの構造解析をしたいことがある。その方法のメモ。 事前準備:FriendsOfPHPから「>If you need support for PHP 5.3 or Guzzle 3, use Goutte 1.x (latest phar).」にある goutte-v1…

PHPのZipArchiveの日本語を含むディレクトリでハマった話

PHP

PHPでディレクトリ内のファイルを1つのZipファイルに圧縮しようとしたらハマったときの話。 以下のようなファイル構成である。 -test └index.php └data -001.txt -: : ここでdataフォルダ以下をtest直下のdata.zipに圧縮したい。index.phpのソースは以…

Tumblrのテキスト投稿でLightBoxを独自導入して使う

Tumblrにはbuilt-inのLightBoxがあり、カスタムHTML編集で簡単に導入することができる。以下のサイトで紹介されているのがこれを用いた方法。 f-u.seesaa.net しかし、これはどうも写真投稿限定のようで、テキスト投稿になると画像のURLやサイズをbuilt-inの…

OpenCvSharp3で画像合成

メモがてらに。OpenCV独特のMat形式の扱いに慣れるのが大変だった。 hotspring.jpgはWikipediaより。これとレナをアルファブレンディングで合成してみる。 var bigImg = new Mat("hotspring.jpg"); using (var smallImg = new Mat("lenna.png")) { //貼り付…

C#でLanczos法による画像リサイズ

画像をリサイズ+αをするプログラムを作りたくなったので、Lanczos法の実装を行ってみた。 自力で実装 クォリティはさておき、とりあえず一回ぐらい自力で実装してみようということでまずは考え方から。このサイトが参考になった。 http://cafe.mis.ous.ac.j…

VisualStudioで生のReact.js+linq.js

前々からやってみたかったReact.jsを触ってみた。詳しいことはまだちゃんと把握していないぺーぺーなのだが、思想が.NETのWPFやRxそのものなので親近感があったので。.NETっぽくしたかったのでlinq.jsも使ってみた。結論から言うと意外と相性が良かった。 プ…

JavaScriptの日付計算を(少し)楽にする

JavaScriptで日付計算やったら発狂しそうになったんで、多少楽にする方法を考えた。 C#みたいにAddHours()で時間計算する関数を追加してみた(C#の日付計算も結構地雷あってハマるからあんまり両手を上げて褒められないのがアレ)。 Dateの拡張 Date.prototy…

NaNのみ除外する数値判定

JavaScriptの闇が深い真偽値の話。NaNを含む数値列に対して一括計算するときにどうする?という問題。 isNaN()の場合 NaNのみ判定したければisNaN()という関数がある。ECMAScript 1stから対応。とりあえず評価用に次のようなtest関数を作ってみる。 develope…

linq.jsをVisualStudioで使う

C#に慣れているとJavaScriptでもLINQを使いたくなることがある。linq.js自体の使い方はいろいろ探すと出て来るが、JavaScriptのIDEとしてVisualStudioを使うことができるのでVS内で完結させてみた。IntelliSenseのおかげでほとんどC#と同じような感覚で扱え…

連想配列のJSONをパースする

JSONを扱っているとたまにこのような連想配列の文字列に出くわすことがある。 { "fruits": { "1": { "key": 1, "value": [ "apple", "りんご", 150, "青森県" ] }, "2": { "key": 2, "value": [ "melon", "メロン", 600, "茨城県" ] }, "3": { "key": 3, "va…

任意の文字の繰り返し回数を検出する

特定の文字列の繰り返しを検出したいなら正規表現を使うのが王道だが、繰り返す文字列が任意だと一筋縄にはいかないことがある。例えば、 hogehogeeeeehoggggggge という文字列があったとして、2文字以上連続した箇所とその文字と繰り返し回数を検出したい場…