chevron_left

メインカテゴリーを選択しなおす

cancel
Memo plus Alpha https://semanticist.hatenablog.com/

メモにプラスアルファを加えて価値ある情報に。VBやPHP, Perlなどを中心に。

semanticist
フォロー
住所
八王子市
出身
未設定
ブログ村参加

2013/11/23

arrow_drop_down
  • さくらVPSで複数のサブドメインをSSL化する(HTTPS接続)

    はじめに さくらVPSでサイトをSSL化(HTTPS化)したときのメモです。先人たちの知恵を拝見しつつ、やっただけなので、ウェブ上に情報はたくさんありますが、メモとして…。 前提 前提条件として、すでにサーバーが稼働しており、ドメインを割り振った状態とします(ドメインの移行についてはこちらを参照)。なお、今回はUbuntuがOSです。 証明書の取得 SSL化に必要な証明書を取得します。今回はLet's Encryptを利用します。 証明書はワイルドカード指定で複数のドメインに対応できるようですが、今回はサブドメインごとに取得します。 サーバーにSSHで入って: sudo certbot cer…

  • ドメイン(含サブドメイン)をさくらVPSに移行する

    はじめに コアサーバーで使っていたドメインをさくらVPSに移行したときのメモです。 大まかな手順: (1)ファイルをサブドメインごとにフォルダ分けしてVPSサーバーに移行する (2)さくらVPSコントロールパネルでサブドメインを宣言する (3)VPSサーバーでサブドメインの振り分けを設定する (4)ドメイン発行元(今回はバリュードメイン)のネームサーバーを書き換える サーバーはUbuntu+Apacheです。 (1)ファイルの移行 まずは旧サーバー(コアサーバー)にあるファイルをさくらVPSサーバーにコピーします(旧サーバーのファイルは残しておく)。このとき、サブドメインのファイルはフォルダご…

  • さくらVPSでCGIを動かすのにハマったところ

    はじめに サーバー上で少し重めのプログラムを動かす場合、レンタルサーバーではメモリが十分ではない場合が多いです。そのため、VPSを使うというのが第一選択肢になると思います。しかしながら、VPSは自由に設定できる反面、非常に多くの設定を自分でしなければなりません。ここでは完全に個人的なメモですが、ハマったところをメモしておきます。 CGIその前に さくらVPSではSite Guardという高性能なファイアウォール的なアプリを無料で提供しています(個人で契約しようと思うと数十万)。これを使わない手はないので、スタートアップスクリプトでこれをインストールすることを選択しました(対応のOSが限られるの…

  • PythonでCGIが動かないときにハマったこと(改行コード!)

    はじめに Pythonをサーバー上でCGIとして動かすとき(htmlファイルから呼び出す)、コードは合っているはずなのに、Internal Server Errorが出続けて数時間ハマる…ということになってしまいました。とてもシンプルなところでハマってしまっていました…(シンプルなものほど気が付かない)。 対処方法 サーバー上ではエラーメッセージを吐かないので、XAMPPのローカル環境で動かしてみました。すると: End of script output before headers というエラーを吐いていました。これを検索してみると、「改行コード」が原因らしいということが判明(以前も同じとこ…

  • Slackの新規チャンネルに参加者を全員一括で登録する

    はじめに Slackに新しいチャンネルを作ったとき、そこに全員を一括で登録したい場合の操作を方法をメモしておきます。 調べた限りでは、全員をチャンネルに招待する/invite allのようなコマンドはないので、「メンションされた人がチャンネルにいなければ、招待の提案が出る」ということを利用します。 【参考サイト】 How do I invite all team members to a new Slack channel - Web Applications Stack Exchange 設定方法 (1)参加者のリストを取得する まず、メンション形式(@name)で追加する人のリストを取得し…

  • matplotlibとnetworkxで日本語を表示する

    はじめに matplotlibとnetworkxはデフォルトでは日本語を表示できず豆腐(□のダミー記号)になります。 networkxの日本語の文字化け これを避けるための方法をメモしておきます(ハマって1日が溶けたので…)。 日本語フォントのダウンロード いくつか手法があるようですが、「日本語のフォントをダウンロード」→「それをmatplotlibに登録」→「描画時に指定」というのが一番簡単でした。 IPA Font ダウンロード 一般社団法人 文字情報技術促進協議会 上記のサイトからフォントをダウンロードし、ipaexg.ttfをpythonスクリプトと同じフォルダに置きます。その後、…

  • Unityで作ったアプリをGoogle Playで公開するときにつまずいたポイント

    はじめに Unityでアプリを作ったらほぼ終わり!と思っていましたが、甘かった…。Google Playストアで公開するまでに幾多の難所がありました。以下、箇条書きですが、自分のメモ用に残しておきます。 AdMobの設定 自分のGoogleアカウントでAdMobを申請したところ、2日後くらいに「もう持っているよ!」というメールが。実は別のアカウントでAdSenseを利用していたのですが、これが重複とみなされたようです。つまり、Googleアカウントを2つ持っていて、AdSense, AdMobを分けて持つことはできないようです(Googleはアカウントの重複を特定するアルゴリズムを持っているよ…

  • Modern UI PackのModal Windowで日本語を表示する

    はじめに UnityのUIはデフォルトではあまり洗練されていませんが、アセットストアからUIを導入すればだいぶ見た目がよくなります。今回は、Modern UI Pack($20)というものを導入してみましたが、日本語が表示されないという問題がありました。 準備 Modern UI PackはText Mesh Proに依存しているため、これをインストールする必要があります。これはUnityにデフォルトで入っていますが、次の操作で有効にする必要があります。 Window->Package Manger->Text Mesh Pro また、日本語のフォントを準備する必要があります。「日本語 フリー…

  • TreeTaggerErrorの対処(TreeTaggerWrapper)

    TreeTaggerWrapper PythonのモジュールでTreeTaggerWrapperというものがあり、これを用いるとシームレスにTreeTaggerの解析結果を利用できます(PCにTreeTaggerがインストールされていることが前提)。 モジュールのインストール pip install TreeTaggerWrapper エラー import treetaggerwrapper as ttw text="This is a pen." tagged = ttw.TreeTagger(TAGLANG="en", TAGDIR="C:\TreeTagger").tag_text(te…

  • GPUを使った深層学習を自分の環境で実行する(tensorflowの場合)

    はじめに GPUを使うと、ディープラーニングの処理が速くなります。しかしながら、GPUを使うには、1手間かかります。その方法を自分用のメモとして残しておきます。 前提として、Windows PCであること(私の場合はWin 10)、NVIDIAのGPUを搭載していること(同じくGeForce GTX 1080)、ですので、ご注意ください。 なお、これらの設定を行わずにtensorflow-GPUを使おうとすると、use_multiprocessing=use_multiprocessingというエラーがでます。 Anacondaのインストール 環境設定にAnacondaを使います。使わなくても…

  • Google ColaboratoryのRを日本語に対応させる

    はじめに Google Colaboratoryはオンライン上でPythonやRを実行できる優れた環境です。しかしながら、日本語を扱う場合に、躓いてしまうことがあります。Pythonの日本語については以下の記事が参考になります。 qiita.com しかし、Rに関する記述があまり見つからなかったので、四苦八苦しながらいろいろと検証しました。結論から言うと、特定のフォルダにフォントファイルを置くということで解決します。 なお、Google ColaboratoryでRを使うには以下の記事を参照してください。 www.marketechlabo.com 現象 何もしなければ以下のようになってしまい…

  • コアサーバー(coreserver)でCGIを動かす(Internal Server Errorへの対応)

    現象 コアサーバーでCGIを動かそうとすると、Internal Server Errorがでました。プログラムは以下のような単純なもの。 #!/usr/bin/perlprint "Content-type: text/html \n\n";print "Hello"; これが何故か動きませんでした。パーミッションも705にしているし、引っかかるようなところはなさそうです。 解決策 解決策は、1行目末尾にハイフンを2つ入れるだけ! #!/usr/bin/perl --print "Content-type: text/html \n\n";print "Hello"; これは改行コードの問題の…

  • App Storeでファミリー共有の「購入済み」が表示されない問題(iPhone, iPad)

    ファミリー共有とは? iOS等で「ファミリー共有」の設定をすると、家族で有料のアプリなどを共有することができます。 support.apple.com ただし、家族のアカウントから同じアプリを(ストアから)インストールすれば自動的に無料になる、というわけではありません。 共有の仕方は、例えばiPhoneのアプリの場合: App Store→プロフィール画像っぽいところをタッチ(図1)→「購入済み」(図2)と進みます。 図1:プロフィール画像っぽいところ 図2:購入済みの表示 ところが、この「プロフィール画像っぽいところ」(図1)が表示されない場合があります。 対処方法 この原因の一つはファミリ…

  • Windows 10 (ver 1803) 電源切れない問題、三度…

    はじめに Windows 10を1803にアップデートしたら、また電源が切れない問題が起きました…(バージョンの確認はWindowsボタン+R、プロンプトにwinverと入力)。 今回は少し症状が違って、スリープはできるけど、ハードディスクが落ちず(電源が切れず)、間隔をおかずに再起動するというものです。 原因 で、いろいろと試みた過去がありますので、その中で試したものを順次適応していきます。まずは悪名高い「高速スタートアップ」から。オフにしているはずですが、念のため確認すると…。 オンになっている!!(アップデートで勝手に書き換わった模様です。質が悪い…。) ということで、こいつが原因でした…

  • Windows 10電源切れない問題、再び

    概要 以前、Windows 10でシャットダウンできない問題(下記)について書きましたが、その症状が再発しました。 semanticist.hatenablog.com 前回は増設のLANボードを無効にして、オンボードのLAN口に変えることで解決し、3,4ヶ月ほどこれで大丈夫だったのですが、再び電源が切れない自体に。 解決策 今回もいろいろと調べたのですが、もっと根本に問題があるような気がして、BIOSレベルで設定を見直しなました。これが正解。 シフトを押しながら「再起動」→「トラブルシューティング」→「詳細オプション」→「UEFI ファームウェアの設定」 ※参考サイト SETTINGS→Ad…

  • Macのローカル環境でCGIを動かす

    Macのローカル環境でCGIを動かすためのメモ MacにはもともとApacheやPerlなどが入っているので、XAMPPなどを利用しなくてもサーバー環境を構築でき、ローカルで動かせます。 Step 1 apacheの設定を変更。以下のページなどを参考に。 qiita.com shopetan.hatenablog.com perlをcgiで動かすにはperlモジュールが必要なので、そのあたりのコメントアウトも外す。 LoadModule perl_module libexec/apache2/mod_perl.so なお、xxx.plファイルをcgiに認識させるには : AddHandler …

  • Windows 10でのプリンタの不調(印刷失敗)に対応する

    はじめに PCを新調し、OSがWindows 7からWindows 10に。プリンタもドライバーから入れ直してセットアップしたのですが、プリントアウトがうまく行かないことがしばしば。 印刷をすると、ウィィーンと反応はするものの、「印刷失敗」と出てきてしまいます。 解決策 いろいろと調べてみたり、ドライバーの再インストールなどをしても解決せず。で、Windows 10のトラブルシューティングを実行すると、「プリンタが古いからUSB3.0がダメかも」というメッセージが。 それでケーブルをUSB 3.0(青色のポート)からUSB 2.0に差し替えたところ、見事に解決しました。 トラブルシューティング…

  • Perlで文字列をファイルを一括して置き換える(削除する)

    Perl memo ファイルの中身を一括して置き換える。 use utf8;use Encode;#標準出力(しない場合は不要)binmode STDIN, ":utf8";binmode STDOUT, ":utf8";#テキストファイルの一括取得@files = glob ("*.txt"); #それぞれのファイルに対して処理foreach $i (@files){ #ファイルを開くopen A,$i;#内容を配列に格納@data = <A>;close A; #保存用のファイルを作るopen B,">edit_$i"; #一行ごとの処理foreach my $line (@data){$…

  • Windows 10でシャットダウンできない問題を回避

    はじめに Windows 10 (ver 1511)をAniversary Update (ver 1607)にアップデートすると、シャットダウンができないという問題が起きました。一度電源が切れるものの、2秒くらい経つとすぐに再起動する現象が発生。 おそらくドライバー等の問題ではないかと思い、いろいろと試す(高速スタートアップの無効化、デバイスによる電源管理の無効化 etc)も効果なし。 そのうちWindowsが対応してくれるだろうと思い、放置していましたが、Creators Update (ver 1703), Fall Creators Update (ver 1709)にしても改善せず……

  • WordPressでSFTPを設定する

    はじめに サーバーがSFTPにしか対応していない場合、WordPressのプラグインをブラウザ経由ではインストールすることができません(FTP、FTPSのみがデフォルトで対応しているため)。SFTP対応のプラグインを手動でインストールすることで、この問題は解決します。 対応策 (1) プラグインをダウンロードします。例えば: SSH SFTP Updater Support — WordPress プラグイン など。 (2) ローカル上で解凍し、ssh-sftp-updater-supportというフォルダ(バージョンのあるフォルダ(例:ssh-sftp-updater-support.0.7…

  • 起動しなくなったWindows10からUbuntuでファイルを救出する

    はじめに 急にWIndows 10が起動しなくなりました。以前(かなり前ですが)Linuxをつかって救出したことがあったのですが、今回はエラーが出てうまくいかず…。 エラーは簡単に言うと、Windowsのあるディスクにアクセスできない、というもの(error mounting /dev/sdb1 at ...などのように出てきます)。 これはどうやらWindowsの高速起動なるもののためにディスクが「休止状態」になり、そのため「使用中」と判断されてLinuxからアクセスできない、ということのようです。 対策 (1) LinuxのDVDをつくる 今回はUbuntuを使います。詳細については「Ub…

  • WordでPNGの背景が透過しない問題

    現象 Wordに背景が透明なPNGを貼り付けると、画面上は馴染んでいる見えるのですが、印刷すると、背景部分が次のように浮き上がってきてしまいます。 いろいろと試したけど、うまくいかず…。 解決策? Wordのファイル形式をdocにすれば少し「まし」になります。再現性が下がるという警告がでますが、これは無視。 左のほうだけ、なぜか微妙に枠が見えます。で、色を赤に変えると… これは綺麗にできました(下に別の印刷物が透けて見えていますがこちらは関係ありません)。 ということで、PNGの透明な背景がうまくいかないときは、docで保存して色を原色っぽいものにすれば良くなります。ワードのバグですかね…。

  • Python (Jupyter)でファイルが読み込めない問題

    エラーの内容 WindowsでPython (Jupyter)を使っている場合、ファイルを読み込む際に次のようなエラーが出ることがあります。 UnicodeDecodeError: 'cp932' codec can't decode byte 0xef in position 0: illegal multibyte sequence これは例えばutf-8のファイルを開くときに起きることがありますが、Windowsのデフォルトの文字コードではデコードできないというエラーです。 対処法 その対処法としてはcodecsを使って、encodingを指定して開くのが有効のようです。 # codin…

  • IPアドレスからアクセス元のホストを取得する(nslookup)

    はじめに ウェブサイトなどでログをつけていると: 111.11.111.11 111.11.111.22 111.11.111.33 などのIPアドレスのリストを得ることがあります。このIPアドレスのリストからホストを取得し、アクセス元のおおよその国などを特定する方法を紹介します。 方法 Windowsのコマンドプロンプトのnslookupを使います。このコマンドのあとにIPアドレスを打つと: nslookup 182.22.59.229 >サーバー: UnKnown>Address: 111.111.1.1 >名前: f1.top.vip.ssk.yahoo.co.jp>Address: 1…

  • Rにread.tableで2次元の表(分割表)を読み込む

    データ このようなデータをRにクリップボード経由で読み込むには、次のようなコマンドを打ちます。 data=read.table("clipboard",header=T) この読み込みでは、Student, Eng, Kokugo, Mathという4つの変数からなる形で認識されています。これでは行に名前がない状態ですので、例えばこのデータを使って対応分析を行うことはできません。 対応策1:row.namesを指定する row.names="Student"のオプションを加えることで、Studentの列を行名として認識させることができます。 対応策2:Studentの部分を空白にする 単純な方法…

  • Rのデータ入力:read.tableによるテーブルヘッダーの読み込み

    ヘッダーにXがつく現象 Rにデータをロードするには、clipboardから読み込むのが楽です。 このデータをクリップボードにコピーして: data=read.table("clipboard",header=T) で読み込めます。しかしながら、オブジェクトをロードすると次のようにヘッダーの名前がおかしくなります。 これはヘッダーを数値として読み込んでいるからですが、この現象を回避するには次の形で対処できます。 > data=read.table("clipboard",header=T, check.names=F) ただし、この場合、各行に$を使ってアクセスするには、変数名をクォーテーション…

  • 対応分析(コレスポンデンス分析)のラベルのはみだしをWordで調整する

    はじめに Rで対応分析などを行ってplotすると、ラベルの端が切れてしまうことがあります。そのときの対処法のメモ。 現象 次のような現象が今回の処理の対象です。 対応方法 Rのコマンド例: library(MASS) plot(corresp(jikken,nf=5)) (1)plot後、右クリックをして「メタファイルにコピー」 ※ビットマップではだめです。 (2)Wordの貼り付け (3)図を右クリックして、「図の編集」 そうすると、後ろに隠れていた部分が見えるようになります(原理は不明ですが、おそらく編集するためにすべてを可視化するのかもしれません)。 ※図が「前面」に変更されてしまいます…

  • Gmailで添付ファイルのダウンロードが失敗する場合の対処法

    はじめに gmailで添付ファイルが送られてきてChrome等のブラウザからダウンロードしようとすると、「失敗―ダウンロード エラー」となることがあります。 ブラウザを変えても、キャッシュを削除してもうまくいかない場合の対処法を書いておきます。 解決策:ファイル名を変更する 解決策は、「ファイル名を変更する」ということです。アルファベットなどの単純なファイル名にしてダウンロードすれば、エラーは回避されます。 原因は? この原因はOS間の「ユニコードの正規化の違い」のようです。 「ダ」「ポ」「グ」などの文字列は、一文字(ダ)として表現される場合と結合文字(タ+濁点)として表現される場合があります…

  • Rの対応分析でラベルの重なりを解消する

    はじめに Rで対応分析を行う場合、変数が多いとラベルが重複してしまう可能性があります。その場合、plot関数だけではうまく処理できません。 地道なやり方としてはメタファイルに出力して、Adobe Illustratorなどで処理することも可能ですが、ここではwordcloudライブラリを使った方法をメモしておきます(参考:wordcloud makes words less cloudy « Fells Stats)。 用意するもの R(できるだけ最新版を) MASSライブラリをインストール wordcloudライブラリをインストール 分析するデータ →ここでは次のデータ(部分抜粋。単語は38…

  • RMeCabを使ってwordcloudを作る

    (1)RMeCabをインストールinstall.packages("RMeCab", repos = "http://rmecab.jp/R") ※場合によっては管理者権限でRを起動する必要あり(ショートカットを右クリックから) (2)"tm"と"wordcloud"をpackagesのメニューからインストール (3)パッケージの読み込みlibrary(wordcloud)library(RMeCab) (3)分析対象を決める分析対象のテキストをマイドキュメント(Rが自動で参照できるフォルダ)に設置。 ここではdata.txtとした。 (4)RMeCabで頻度を解析data.freq=RMeC…

  • Wimaxで追加機器オプションでルーターを登録する

    Wimaxでは、月々の基本料金+200円で、ルーターを追加登録できます。 これを行うことで、「家用」「外出用」などを使い分けることができ、便利です(※ただし、2つのルーターから同時接続は不可。同時接続を行うプラン(WiMAXファミ得パック)もありますが、これは+2400円程度かかります)。 その追加機器の登録方法ですが、躓いたのでメモ。 ルーター1(回線契約をしているもの) こちらに接続をする必要はありません。 ルーター2(追加する方) こちらにPCからアクセスします。ルーターにSSIDとパスワードが記載されているはずですので、PCの無線スポットの一覧から選択し、このルーターに接続します(普通…

  • VBでWordファイルをutf-8のテキストで保存する

    ハマったのでメモ。 タイトルの通り、VBでWordファイルを開き、utf-8のテキストで保存する方法です。 Dim wdApp Dim wdDoc wdApp = CreateObject("Word.Application") wdDoc = wdApp.Documents.Open(Filename:="C:\Test\test3.docx", ReadOnly:=True) 'テキストファイルとして保存 wdDoc.SaveAs(FileName:="C:\Test\test3.txt", Encoding:=65001, FileFormat:=7) wdDoc.Close() wdD…

  • PHPでチェックボックス(checkbox)の値を受け取る

    【ポイント】チェックボックスは配列 チェックボックスは複数選択可能な入力であるので、注意が必要です。PHPなど、CGIで入力を受け取るとき、値が0のときもあり、1のときもあり、それ以上のときもあるので、それに対応しなければなりません。 どのように対応するか、というと、チェックボックスを配列として扱うことです。例えば、checkboxという名前の配列があるとすると、この1つ目にチェックされたチェックボックスのvalueの1つ目が、2つ目にチェックされたチェックボックスのvalueの2つ目が入る、ということです。 次の例では、checkboxという配列に値を格納しています。 <form metho…

  • 【Perl】ホームページの更新日時を取得する(html,pdfなど)

    ホームページの更新日時取得する方法。 「更新が滞っているページ」や「最も古いページ」を調べたい場合、以下のPerlのコードで更新日時を取得できます。 (1) modifieddate.pl use LWP::Simple; use HTTP::Status; require LWP; require LWP::UserAgent; $ua = new LWP::UserAgent; $ua->agent("LWP::GETHEAD"); open(URLLIST, "< urllist.txt") or die("error :$!"); while (my $line = <URLLIST>…

  • CRONで一定時間ごとにファイルを削除する(さくらレンタルサーバーの場合)

    CRONを利用して、サーバー上のファイルを一定時間ごとに削除する方法(さくらレンタルサーバーを利用)。 【CRONで動かすスクリプト】 CRONで直接コマンドを書くこともできますが、スクリプトのほうが柔軟性があるので、次のPHPファイルを動かすことにします。 <?php foreach (glob('www/XXXX/images/*.jpg') as $filename) { //変更があってから1時間以上たったファイルを削除 if(time()-filemtime($filename)>=3600){ unlink ($filename); } } ?> このスクリプトでは、globでim…

  • IEで画像のキャッシュを回避する方法(動的に画像を生成する場合など)

    ウェブページを早く表示するためのキャッシュ。 これをページで利用させないためには: <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="0"> とhead部分に書けばよいわけですが、画像の場合、IEではこれが効きません。 発生する問題としては: (1)image.jpg→プログラムで変更して上書き保存→(2)image.jpg という場合、IEは(1)のキャッシュを表示してしまう…

  • PHPでexif情報を削除する(iPod, iPhoneで画像が回転する問題)

    iPod, iPhoneで撮影した画像は、特殊なExifがつき、ウェブにアップロードされたときに画像が意図しない方向に回転してしまう。 その場合、(1)exifを削除して、(2)アップロード後に画像を回転することで対応。 (1)exifの削除 これにはimagemagickを使う。 さくらインターネットのレンタルサーバーを利用している場合、コントロールパネルから「PHP設定の編集」でphp.iniにextension = imagick.soを追加。 phpでの呼び出しはsystem関数を利用する。パスは以下の通り: system("/usr/local/bin/convert -strip …

  • 【HP作成】美しいナビゲーションバーが使えるCSSフレームワーク5選

    はじめに CSSフレームワークを使用すると、classプロパティを指定するだけで非常に高度なレイアウト・デザインが可能です。 例えば、CSSフレームワークの1つであるTwitter Bootstrapをダウンロードして、それぞれのhtmlファイルにCSSへのリンクをheader部分に設定します。 【ヘッダーにリンクを記述】 <head> <link href="./css/bootstrap.css" rel="stylesheet"> </head> こうすることで、Bootsrap内のスタイルをclassで呼び出せます。実際のナビゲーションはulとliを指定して記述します。 【ナビゲーショ…

arrow_drop_down

ブログリーダー」を活用して、semanticistさんをフォローしませんか?

ハンドル名
semanticistさん
ブログタイトル
Memo plus Alpha
フォロー
Memo plus Alpha

にほんブログ村 カテゴリー一覧

商用