2019年1月27日日曜日

UbuntuでPDFを操作、編集する exiftool, pdftk

Ubuntu LinuxでPDFを編集します。

exiftoolでメタデータを変える


インストール
sudo apt install libimage-exiftool-perl

変更する。パラメータはいろいろありますが、タイトルなら -Title="XXXX" とすると XXXX.pdfとなります。
exiftool -Title="This is the Title" -Author="Happy Man" -Subject="PDF Metadata" 


pdftkでページを操作する

Ubuntu20.04 

pdftk 2.02
pdftk --help から使いそうなのを下記に。


インストール

sudo snap install pdftk

抽出

in1.pdfから1−2ページだけを抽出してout1.pdfとして保存
pdftk in1.pdf cat 1-2 output out1.pdf

結合

in1.pdfとin2.pdfを結合してout1.pdfとして保存。3つ以上も可能。
pdftk in1.pdf in2.pdf cat output out1.pdf
ワイルドカードも使える
pdftk *.pdf cat output combined.pdf

回転

全ページを右回りに90度回転して保存する
pdftk in.pdf cat 1-endeast output out.pdf
180度回転して保存する
pdftk in.pdf cat 1-endsouth output out.pdf

他にもいろいろできるらしいですが、とりあえず。

https://askubuntu.com/questions/221962/how-can-i-extract-a-page-range-a-part-of-a-pdf


保護されたファイルに対してはこんな警告が出ていました。

WARNING: The creator of the input PDF:
   XXX.pdf
   has set an owner password (which is not required to handle this PDF).
   You did not supply this password. Please respect any copyright.

--

Windows10 - WLS でUbuntu18.04 を入れている場合、18.04以降ではインストールができないときがあるようです。以下の

I've written a small bash script which automatise the installation on Ubuntu 18.04. Note that I've downloaded only amd64 packages!
からの部分をやればできました。

https://askubuntu.com/questions/1028522/how-can-i-install-pdftk-in-ubuntu-18-04-and-later

--

GIMP?

GIMPでもPDFを編集できるそうですが、よくわからずでした。軽くやってみたら、ファイルサイズがかなり大きくなってしまったので使いませんでした。

Ubuntuでウィンドウ画面がどこかに行ってしまう件

Ubuntu 16.04
(対処はできるが根本的に解決できていない)

症状


とあるウィンドウ(以下、ウィンドウAという)を開いているときを考えます。

ウィンドウAを最小化したり、他の画面を開いて作業しているうちに、どこかに行ってしまいます。

ランチャーにあるウィンドウAのアイコンをクリックしても、反応しているようなのに画面が戻ってこない。ランチャーのアイコンから右クリックで当該ウィンドウAを選択しても戻ってこない。

対処


ウィンドウA画面がどこかにあるので(大抵は見きれた左右のどちらかに飛んでいっている)、移動させます。

ウィンドウがアクティブになっているの状態でAlt+Space+M[ove] としてからマウスを画面の左右どちらかの端までドラッグ

見えなかった画面からウィンドウAが現れる。


原因


分かりません。おそらく、Workspaceを2以上にしているからだと思われます。1つのときはこの症状は出ないので。

2019年1月19日土曜日

USBの隠しバックアップファイルを削除する@Ubuntu

4GBのUSBメモリの使用量が35MBなのにこれ以上書き込めなくなりました。

こちらに答えが書いてありました。バックアップフォルダを削除すればよいようです。

media/user/USB DISKに移動して調べてみると、.Trashというフォルダにバックアップが入っていて、

$ ls -all -l で.Trash-1000 という隠しディレクトリがあることが分かりました。

このディレクトリを消すために

$ rm -r .Trash-1000/

とやって終了。-ri とやると確認が多すぎて大変だったので-rでやりました。

-r は recursive
-i は prompt before every removal

読んだ本2019メモ

7大企業を動かす宗教哲学 島田裕巳 ★☆☆☆☆

パナソニック、ダイエー、豊田、セゾン、ユニクロ、サントリー、阪急、、という大企業と宗教のかかわりを書く本・・・だと思って買ったらあまり宗教関係なかったです。パナソニックは松下幸之助が宗教家と親交があったとか経営観に取り入れているとかあるが、他の企業は薄い、というか内容が薄すぎで他の本を写したのか?と思えるほどでした。残念。

Yahoo! JAPAN全仕事 ★☆☆☆☆

ヤフージャパン20周年を記念した200人のインタビューをまとめた本。定価は2000円。インタビュー内容はとにかく褒める系で、あまりおもしろくなかったです。「YahooのXXXというサービスはXXXをXXXしている。それを担っているのがXXXさんだ。」的なテンプレでしょうか。ヤフオク事業の人の話で他のサービスの出現が脅威と言っていてその後メルカリが出てきたのは流石(?)と思いました。


Yコンビネータ― ★★★★☆

ポール・グレアム率いるスタートアップ発掘キャンプ(?)であるYコンビネータ―2011年夏のドキュメント的な本。3ヶ月間のYCの課程の中を実際に進んでいく形のストーリーで、参加の面談から、最終の発表までが書かれています。2011年の少し古い話なので、大成功例はドロップボックスだけ。エアービーアンドビーも出てますが。過程よりも結果だけが書かれている部分が多かったですが(例えば、あるスタートアップが途中で降りたとか分裂したとか)、あまり知らない話だったので面白かったです。日本語翻訳が2人に分かれているのですが、2人目の訳がかなり古くて好みに合いませんでした。

"「いつ売上が出るんだ」的なことを投資家に聞かれたときは「それはいくら投資してくれるかによります」"という部分がツボでした。

あとは、同じようなサービスがあるのに参入するとき「世の中には同じサービスがあって1つになっていないということは、参入の余地があるんです」というロジックが紹介されていましたが、確かにそうですね。


インドネシア 多民族国家の模索 小川忠 岩波新書 ★★★☆☆

少し古い本だが、インドネシアに1989−93年に勤務していた人の手記的なもの。国際交流基金ジャカルタ日本文化センター勤務とあります。政治的な話から文化的な話まで細かく書いてある。知らない話だったのでなるほどと思って読んでいました。

大統領選に出てきたスカルノの息子は結局芸術家の道を今では歩んでいるようです。スハルトも子どもがいろいろ話題にはなっているようですが・・・。文化的な踊りや演劇な話も詳しく書かれていて、トラジャ地方の墓所などは独特すぎて写真を見ただけで圧倒されてしまった。(日本からの)虐待のモニュメントっていうものがあるのも凄いですよね。


Googleの72時間 林信行 山路達也 ★★☆☆☆

東日本大震災のときにGoogleがとったレスポンスに関する本。Googleをヨイショする訳ではない部分もあって好感が持てるが、少し大げさに書きすぎというか劇場型、テレビ型の本でした。「関係のない情報が大量投下されはじめた」「怒涛のような」などなど・・・。Googleの人は六本木から歩いて帰れる距離に住んでいるようです(サンプル数2)


フラッタ・リンツ・ライフ 森博嗣 ★★★★★

5年ぶりくらいに再読。いいなと思った部分にチェックを入れていたが、やはり今読んでもそう思いますね。


『愛情がないことが、寂しいことで、それはとても辛いことだと教えられたけれど、何故そんなに愛されない状況を恐れるのだろうか。愛に満たされたことがない人でも、それを恐れている。言葉だけで信じてしまって』

『人を自由にするのは、力だ。
人はそれを持っている。
自分の力を信じること、それが力の意味だ。』

2019年1月14日月曜日

Pythonでファイルパスを対話形式で設定する(tkinter)

Pythonで、ダイアログを開いてファイル名を選ぶことができます
import tkinter as tk
from tkinter import filedialog
root = tk.Tk()
root.withdraw()
file_path = filedialog.askopenfilename()
これを実行すると、Ubuntu16.04だとこのようなウィンドウが開きます。


ファイルを選択するとfile_pathにファイル名を渡せます。
print(file_path)
でファイル名を表示することができます。

2019年1月13日日曜日

FLASKアプリでクライアント側でダウンロードするとき、iPhoneにはファイルをダウンロードできない

Flaskアプリでエクセルファイルを保存して、そのファイルをスマートフォンにダウンロードさせようとしているのですが、Androidではできるのですが、iPhoneではできません。PCではできています。

iPhone、iPadではできない

csvファイルなどでは直接ブラウザ上で表示されるのですが、xlsxファイルとかはダメ。知りませんでしたがセキュリティ上の仕様のようです。
https://www.idownloadblog.com/2016/04/14/how-to-download-files-and-documents-to-iphone-or-ipad/

- xlsx NG
- 拡張子なし NG
- csv そのままhtml表示される
- pdf OK -> 保存先をブラウザで聞かれる

ということで、pdfに変換すれば大丈夫そうです。

ダウンロードの設定など

as_attachment=True として、ファイルのヘッダをContent-Disposition: attachmentとします。この設定で、ブラウザで開くのではなく、ファイルとしてダウンロードすることになります。

/send を開いたときにtest.csvをダウンロードするには・・・

#app.py
@app.route('/send')
def send():
    filename="test.csv"
    return send_file(filename_or_fp=filename, as_attachment=True)
ソースからのファイルをアップロードするならこちらを使ってください、という注意があります。
" Please never pass filenames to this function from user sources; you should use send_from_directory() instead. " このときは、configでディレクトリを指定して、その中のファイルをアップロードするように指定します。静的に保管しているファイルをアップロードするときにはこちらの方がセキュアだとのことです。
app.config['UPLOAD_FOLDER'] = '.'
@app.route('/uploads/<path:filename>')
def download_file(filename):
    return send_from_directory(app.config['UPLOAD_FOLDER'],
                               filename, as_attachment=True)

解決: Ubuntuのフリッカー問題

Ubuntu16.04でローンチパッドをクリックすると、1秒くらい背景画面が現れる現象が起きているのですが・・・。結論としてはcompizをリセットすれば直りました。

Unityの問題なのかな?と調べていると、Unity-Tweakのresetという方法があるということを知りました。
https://cpplover.blogspot.com/2014/07/ubuntu-1404unity.html
ところが、フリッカーが出るのは普通ですよ(It is normal for your desktop to flicker during the process.)というWARNING・・・やらない方がいいのでしょうか。
$ unity-tweak-tool --reset-unity
/usr/lib/python3/dist-packages/UnityTweakTool/__init__.py:40: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '3.0') before import to ensure that the right version gets loaded.
  from gi.repository import Gtk
WARNING: You are about to reset Unity to its default configuration.
    This will result in loss of configuration.
    It is normal for your desktop to flicker during the process.
    Type yes to continue, anything else to exit.

Flickerについて調べてみるとPPAを入れると直ったという報告もあるそうですが・・・。 https://askubuntu.com/questions/994418/screen-flickering-problem-in-16-04

Unityはcompizをリセットするのがよいそうです。
https://kledgeb.blogspot.com/2013/07/unity-4-unitycompiz.html
$dconf reset -f /org/compiz/
でcompizをリセットすると直りました。ランチャーの設定はリセットされます。デュアルディスプレイにしたときから設定がおかしくなったような気がしますが、確証はありません。

OpenpyxlでPythonからエクセルをいじる

Openpyxlは
- Pythonでエクセルのような操作ができるモジュール
- 使用例: エクセルファイルを読み込んで修正して保存

注意:

- 列名は大文字にした方がよい (小文字でも大丈夫なときもある)
- マージすると、「左上」のセル名が使われる
- ファイルを読み込むと、結合されていた部分の枠線が消える(左上だけ残る)
- メモリ消費はファイルサイズの50倍程度らしい(公式による)

インストール

pipかcondaでインストールできます。

$ pip install openpyxl

または

$ conda install -c anaconda openpyxl

ゼロからファイルを作るとき

先にワークブックとワークシートを指定します。

from openpyxl import Workbook
# make empty workbook
wb = Workbook()
ws = wb.active

既存のファイルから読み込むとき

from openpyxl import load_workbook
wb = load_workbook('test.xlsx')
ws = wb.active

保存方法

ワークブックを指定して保存します。

wb.save('wb.xlsx')

セルへのアクセス

セルA1に書き込む例です。
ws['A1']  = 'hello'
セルの中身を読む例です。
print(ws['A1'])
このときA1をa1 と書いても出力されますが、他の場面で大文字で書かないとエラーが出るときがあるため、注意です。

複数セルにアクセスするには、行、列でforループにし、1つずつにばらします。例えば
for _row in ws['A1:B4']:
    for _cell in _row:
        _cell.value = 'aaa'
というように行forループの中に列forループを入れます。

セルをマージする

※結合セル後のセルは左上のセル名になる。
ws.merge_cells('A2:D2') # A2として扱われる
マージすると罫線が消えるので、再設定します。

枠線を引く

枠線はSide, Borderというモジュールを使います。セルごとに入力するのでけっこう面倒です。borderという関数を作って範囲していで同じ枠線をセットします。
・線のスタイル
・上下左右のどこを対象にするか
を決める必要があります。

from openpyxl.styles.borders import Side, Border
# define line style
thin = Side(style='thin')
bold = Side(style='medium')
double = Side(style='double')
dotted = Side(style='dotted')
# border_pattern
thin_border = Border(left=thin, right=thin, top=thin, bottom=thin)
def border(ws, cells, border_pattern):
    '''ws: worksheet
    cells: range, like 'A1:C2'
    border_pattern: like, Border(left=thin, right=thin, top=thin, bottom=thin)
    '''
    for _row in ws[cells]:
        for _cell in _row:
            _cell.border = border_pattern

で準備ができました。
border(ws, 'A1:B4', thin_border)
とすると、A1からB4の範囲で枠線が引かれます。

opnepyxlでエクセルに画像を挿入する

.pyと同じディレクトリにtest.jpgを用意します。セルA1に文字を入れて、セルA2に画像test.jpgを挿入します。

# py3.6
from openpyxl import Workbook
from openpyxl.drawing.image import Image
wb = Workbook()
ws = wb.active
ws['A1'] = 'You should see image below.'
img = Image('test.jpg')
ws.add_image(img, 'A2')
ws.save('add_image.xlsx')

--
参考文献

いろんなサイトを参考にさせてもらいました。
https://www.yamamanx.com/python-openpyxl-mergecell/
他いろいろ

2019年1月12日土曜日

PINTAを消してもPPAを消せていなかった

ubuntuに消したつもりになっていたpintaのppaが残っていたようです。updateのときにリポジトリに残っていてエラーが出るのが鬱陶しいので、PPAを削除しました。
sudo add-apt-repository --remove ppa:pinta-maintainers/pinta-stable
これで消せました。

https://pinta-project.com/pintaproject/pinta/howto/installing-pinta
https://askubuntu.com/questions/307/how-can-ppas-be-removed

2019年1月9日水曜日

JavaScriptでフォームをいじる

・HTMLのフォームの内容を消す:delete
・2つのフォームを入れ替える:swap
・フォームの内容を別のフォームにコピーする:copy

※フォームの中身inputのnameが一致しているものに値を渡すので揃えること

2019年1月5日土曜日

JavaScriptで動的にテキストを変換する

JavaScriptで、ボタンを押して、innerHTMLで文字を追加します。

parent_object.appendChild(div_element);

ボタンを再度押すと、そこにある文字が消える、としたいのですが・・・。

removeChild

を使うと、divが丸ごと消えていてhtmlが読めず、このエラーが出ます。

Uncaught TypeError: Cannot read property 'appendChild' of null

対策が分かりませんでした。
下記のページには</html>の直前にJSをおけばよい、と・・・。

http://blog.netandfield.com/shar/2015/04/avascript.html


結局、

document.getElementById("id").innerText = "";

として、idのあるdivの中のテキストを空白にすることに。

・・・これだったら、別にappendChildを使う意味がないような・・・。

jQueryだと簡単にできるようですね。

調べたサイト
https://developer.mozilla.org/ja/docs/Web/API/Element/innerHTML
http://analogic.jp/external-js-execute-timing/


ページ読み込み時にJavaScrtipt実行

window.onloadを使います

<script> 
  window.onload = function(){
    document.getElementById("inline1").style.display="none";
  }
</script>



2019年1月4日金曜日

UbuntuでFLASK ローカルホストにネットワーク内の別のコンピュータから接続する

FLASK, Ubuntu16.04

http://localhost:5000/ が起動しているとき、同じネットワーク上にある他のPCから接続したいのです。目的は主にスマートフォンで接続して、FlaskのWeb表示を確認することでした。

起動は

$ flask run --host=0.0.0.0

とします。成功するとこんな表示がでます。

$ flask run --host=0.0.0.0
 * Serving Flask app "app.py"
 * Environment: production
   WARNING: Do not use the development server in a production environment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)

説明など


Externally Visible Server
If you run the server you will notice that the server is only accessible from your own computer, not from any other in the network. This is the default because in debugging mode a user of the application can execute arbitrary Python code on your computer.
If you have the debugger disabled or trust the users on your network, you can make the server publicly available simply by adding --host=0.0.0.0 to the command line:
flask run --host=0.0.0.0This tells your operating system to listen on all public IPs.


と公式ページも書いてあるように、『デバッガオフで自分のネットワークのユーザを信用できるなら、ネットワーク上で公開できる。--host=0.0.0.0 をつけて起動する』
ということでした。

これでスマホ画面で確認ができます。

アクセスするのは

http://IPaddress:5000

です。

IPaddressはifconfigコマンドで調べることができます。

192.168.1.0 とかそういうのです。

GUIだとNetwork→Wiredから見ることもできます。無理やり消してみましたが、このようなものが見えるはずです。






2019年1月3日木曜日

flaskのメモ

■cssを入れる->static

templatesディレクトリと同じところにstaticディレクトリを作って、cssファイルを入れます。

例えばこんな感じです。

├── app.py
├── css
│   ├── font-awesome.min.css
│   └── styles.css
├── templates
│   └── form.html
└── test.html


headの中で指定します。

<head>
  <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
</head>


http://flask.pocoo.org/docs/dev/tutorial/static/

■レスポンシブ

FLASKに限りませんが
viewport を使うといい感じにしてくれます。
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
■render_templateで変数を全て渡す

# app.py
def test():
    n1 = "test"
    n2 = "this is a test"
    return render_template("confirm.html", **locals())


とすると、confirm.htmlにapp.py内の関数test内で定義されたlocal変数が全てjinjaテンプレートに受け渡されます。
上記の例では
return render_template("confirm.html", n1=n1, n2=n2)
と同じです。

■render_template
・変数を渡して、使わなくてもエラーにはならない
・渡されていない変数を{{ }} でhtml側で呼んでもエラーにはならず空白になるだけ


■formの値は文字列として渡される

<input type="checkbox" name="test" value=1>

というチェックボックスをPOSTで渡したとして、

request.form['test'] == 1

False

request.form['test'] == "1"

True

となります。valueをintで渡したつもりでも、strになるということですね。

<input type="checkbox" name="test" value="1">

最初から"1"とやっていたほうが誤解がなくて良いかもしれません。

■(htmlの話)

fontの指定はtd毎にやること

NG
<font size="+1">
<td>あああ</td>
<td>いいい</td>
</font>

OK
<td><font size="+1">あああ</font></td>
<td><font size="+1">いいい</font></td>

■flaskでprint文をコンソールに出力

printデバッグ用。

import sys

print('This is error output', file=sys.stderr)
print('This is standard output', file=sys.stdout)

こうすると、errorの方がコンソールに出力されるはずです。設定によるかもしれませんが。
https://stackoverflow.com/questions/44405708/flask-doesnt-print-to-console/44410730

■Flaskのrender_template

基本かもしれません。

from flask import render_template

@app.route('/hello/')
@app.route('/hello/<name>')
def hello(name=None):
    return render_template('hello.html', name=name)

render_templateで変数(ここではname)を送ることができます。テンプレートがhello.htmlで、urlにnameが加えられた状態になります。nameはデフォルトではNoneになっています。

@app.routeは1つのサイトに対して複数設定することができます。このURLが呼ばれたら下にあるdefを実行する、という意味になります。






2019年1月2日水曜日

日誌2019年1月

2019/01/01

珍しくパソコンに触れない日々でした。そういうときもありますよね。

2019/01/02

iPhoneの白ロムを買いました。
事前に確認したこと
・自分のMVNOで使える機種であること
・当該品のIMEI(個体番号)を検索して、ネットワーク状況が○であること。これはドコモ、au、ソフトバンク各社のページで見れます。主に中古売買用に提供されているようですね。
・アクティベーション済みであること。これはiPhoneの居場所検索等がリセットされていることを意味するようです

手に入れてから焦ったこと
・iijではネット4G回線にデータ通信をするときにAPNという設定が必要。アプリをインストールします。
https://www.iijmio.jp/hdd/guide/d2-4_apn.jsp#apn_ios
・4Gの電波が表示されているのに「ネットワークに接続できません」となり焦りました
・その直前には電話が使えることは確認していたので、???となってしまいました

必要な設定(APN)を把握していなかったので、慌てた、という話でした。


2019/01/03

iPhoneSEを使い始めたのですが、バッテリの減りが早くて少し驚きます。1600mAhだそうで、これまで使っていた機種の半分です。画面のサイズが5インチから4インチになったので、5**2:4**2で25:16でで40%減っているからあまり問題ないのかもしれません。

結局画面が大きくなると消費電力も大きくなるのが困りどころですね。

2019/01/04

iPhoneSEですが、1日は使えているので、特にバッテリは問題ないのでしょう。LINEのアプリを機種で移動するのが失敗するとアカウントが消滅するという最悪な仕様なのですが、なぜこれが放置されているのでしょうか。理解し難いですが。なかなか新しいことに慣れてないようです。

2019/01/05

大阪駅まで行きましたが、特に家電屋さんに行くことはありませんでした。

Flaskアプリを作っていますが、ほとんどの作業はHTMLとJavaScriptなのですが・・・。なかなか難しいものです。


2019/01/06

今日もFlaskをいじっています。JSは奥が深いというか、機能が多すぎて都度つど検索しないといけません。htmlの長い部分を外部ファイルとして読み込みたいのですが、ブラウザによって対応が違うという情報もあり(とはいえ、オペラに対応していないといけないのも辛い)、とりあえず長いまま元ファイルに残しています。


2019/01/07
iPhoneに変えてから、Googleマップのタイムラインが全く動かなくなったのですが、よく考えると前のスマートフォンが自宅にあるのでその位置を見ていることになっていたのでした。

仕事始めの日朝パソコンつけたらメモリの異常で動かない、という事態になりました。放置して少し温めたら治りました。寒いとそういうこともあるんですね。

2019/01/08

Flaskのsend機能がちょっと便利な気がします。他のを知らないのですが。

2019/01/09

JavaScriptでのフォーム複製などをやっていました。

2019/01/10

同じく。仕事が少し忙しいだけで、家での開発が面倒になってしまいますね。モチベーションのコントロールが急務です。

2019/01/11

マウスを左手で持つ練習をしています。なかなか新鮮でよいですね。Pythonでマルチプロセスの勉強をしています。自分のやっている範囲では、オーバーヘッドなどを気にしないでもよいレベルな感じです。imapとmapとimap_unorderedの機能的な違いが良くわかりません。unorderedにするメリットは?

2019/01/12

スーパー「ライフ」のプライベートブランドのドリップコーヒーを買ったのですが。20袋で298円・・・期待していなかったけど不味すぎる。。これは失敗しましたね。入れ方が間違っているのでしょうか。

Ubuntuのサイドバーが調子が悪く、複数開いているアイコンをクリックすると一瞬固まって最初の画面になります。とりあえずUbuntuアップデートで対応。これで直るでしょうか?

AndroidのChromeでFlaskの画面を確認しているのですが、更新しても再読み込みされないようです・・・キャッシュを保存しているからなのが理由のようですが、それにしても困りますね。

2019/01/13

Ubuntuサイドバーが一瞬固まる現象はアップデートしても直らず。フリッカーと呼ばれているもののようですが、デフォルトだとか(本当に?)

FLASKでデバッグをONにしているとapp.pyなどは変更すると自動で再読み込みしてくれるのですが、static -> ...js などはハード読みこみでもダメで、キャッシュをクリアして読み込み必要があるようです。


2019/01/14

むかしのはてなブログ(削除した)のキャッシュが残っているようで、Googleに削除申請しました。
説明がいやに分かり難かったが、こちらで良いようです。

Google 検索結果から情報を削除する
→自分が管理するウェブページではない場合
→コンテンツが提供元のウェブページから削除されている場合(キャッシュに保存された検索結果を削除する)
Google アカウントをお持ちで、該当のコンテンツが既に削除されている場合は、そのページを管理しているかどうかに関係なく、Google 検索結果からの削除をリクエストできます。その場合は、古いコンテンツの削除ツールを使用してください。
→古いコンテンツの削除
https://www.google.com/webmasters/tools/removals

2019/01/15

JavaScriptよりもjQuery、もっと新しいVue.js?とかを使うべきなんでしょうか。少し勉強している程度なので、生のJSをやっていますが・・・。機能的にjQueryが良いのかなという部分もあります。

2019/01/16

またJavaScriptで嵌っています。子にアクセスするのを直接idでできないんでしょうか。jQuery勉強するか・・・。JavaScriptでコーディングしていると異様に時間がかかる気がします。

2019/01/17

matplotlibをもう少し体系的にやりたいな、と思うのですが、特に何もしないまま終わっています。毎回ヘルプページ読んで終わり、みたいな。

vimを1年くらい使ってやっとその良さがわかってきました。しかしまだまだ使いこなせてはいません。delキー使ってしまうし・・・。

2019/01/18

仕方がないので(?)jQueryの勉強をしました@dotinstall。セレクタとメソッドが使えるようになったくらいですが、確かにJavaScriptで書くよりかは簡単ですね。

負荷試験的なことをこっそりやったらその後にAWSで障害が出た・・・と言われて少し焦りましたが2時間くらい後だったしあまり関係ないんでしょう。おそらく。調査を待っている身は少しつらいですね。


2019/01/19

初歩的なことが分かっていないので日々ググッて勉強です。系統だった勉強ができていないのが少し気になっています。URLにアンダースコアを入れてエラーが出ることを知りました、とか。

Spotifyで古い音楽を聞いているのですが、何かの研究であったように「音楽は25歳くらいまでの想い出が強く印象に残る」とかの話は正しい気もします。少なくとも自分にとっては、ですが。

2019/01/20

雨の日曜日。予定がなくなったので開発をしていたりするのですが。特に進捗なし。

2019/01/21

今日はVimのプラグインを入れようとしたら何故か関数がありませんとか言われて全然だめでした。Kaoriyaで無理やりセットしているのがだめなんでしょうか。

2019/01/22

Vimプラグインはけっこう嵌ってどうにか入りました。みんなすんなり入っているのだろうか、、と思うのですが、けっこう嵌ったという記事はみかけますのでそういうものなのでしょう。たぶん、書かれているとおりにやっていないから(Windowsで無理やりしようとしているから)なのでは。あとはバージョン違いとかでしょうか。Vimはそれそのものがプログラムというか自分で管理できるのが面白いですね。

2019/01/23
仕事で講演聞いてきたりしました。IoTはなかなか進まないようです。

2019/01/24
頭痛がひどく、数時間だけ高熱になり、インフルエンザかな?とか思ったのですが、大丈夫だったようです。ワクチン打っていたからかもしれませんが。

Vimのdeinの使い方がいまいちわかりません。updateすると30秒くらいかかってしまうのですが、これは立ち上げる度に毎回やるんでしょうか。近くにvim使いがいないのでこういうときちょっと困ったりします。

2019/01/25

DBの接続を2重にしてしまってバグが起こり、コンソールが固まって落とすしかない、ということが多発していて困っていました。大きなファイルでいきなり試すとだめですね。

2019/01/26

普通に休み。

2019/01/27

FLASKのアプリを作っているのですが、そろそろできてきたような・・・。しかし完全に自分用になってしまいました。

2019/01/28

引き続きDBの接続問題を解決しようとしています。どうやらPool.imapは毎回グローバルになるようです。別のプロセスになるということですかね。

2019/01/29

Vimの使い方が少しずつわかってきた気がします。慣れるのに1年くらいかかりました。通常のテキストを打つなら別に普通のエディタで良いのですが、コードだとVimがよいですね。これが通常のテキストでもVimのほうがよくなるんでしょうね。編集のときはかなり有効な気がしています。

2019/01/30

政府関係の統計の不正が話題になっていますが、今更だれもおどろかない感じですね。ああ、またか、という。統計のごまかしというよりは、単なる不正のようですし。

2019/01/31

家のストーブを消し忘れているという失態がありました。自動で切れるタイマを使いましょう。さて、1月は毎日日誌を書くことができました。