「text」を含む日記 RSS

はてなキーワード: textとは

2017-09-10

anond:20170910121642

ウソです

 

 

CentOSインストール
c:\>docker pull centos

c:\>docker run -i -t centos /bin/bash

# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

pythonパスバージョン
# which pyhton
bash: which: command not found

# yum install which
Loaded plugins: fastestmirror, ovl

# which python
/usr/bin/python

# ls -l /usr/bin/py*
-rwxr-xr-x 1 root root   78 Nov  6  2016 /usr/bin/pydoc
lrwxrwxrwx 1 root root    7 Aug  1 17:23 /usr/bin/python -> python2
lrwxrwxrwx 1 root root    9 Aug  1 17:23 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 7136 Nov  6  2016 /usr/bin/python2.7

# python --version
Python 2.7.5

yumとは
# which yum
/usr/bin/yum

# file /usr/bin/yum
bash: file: command not found

# yum install file

# file /usr/bin/yum
/usr/bin/yum: Python script, ASCII text executable

# head /usr/bin/yum
#!/usr/bin/python
import sys
try:
    import yum
except ImportError:
    print >> sys.stderr, """\
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:

    %s

# yum --version
3.4.3
  Installed: rpm-4.11.3-21.el7.x86_64 at 2017-08-01 17:23
  Built    : CentOS BuildSystem <http://bugs.centos.org> at 2016-11-05 23:37
  Committed: Florian Festi <ffesti@redhat.com> at 2016-07-26

  Installed: yum-3.4.3-150.el7.centos.noarch at 2017-08-01 17:23
  Built    : CentOS BuildSystem <http://bugs.centos.org> at 2016-11-15 15:30
  Committed: CentOS Sources <bugs@centos.org> at 2016-11-03

  Installed: yum-plugin-fastestmirror-1.1.31-40.el7.noarch at 2017-08-01 17:23
  Built    : CentOS BuildSystem <http://bugs.centos.org> at 2016-11-06 00:11
  Committed: Valentina Mukhamedzhanova <vmukhame@redhat.com> at 2016-08-04

yum remove pythonしてみた
# yum remove python
Loaded plugins: fastestmirror, ovl
Resolving Dependencies
--> Running transaction check
---> Package python.x86_64 0:2.7.5-48.el7 will be erased
--> Processing Dependency: python >= 2.4 for package: yum-3.4.3-150.el7.centos.noarch
--> Processing Dependency: python >= 2.2 for package: pyxattr-0.5.1-5.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: yum-metadata-parser-1.1.4-10.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: python-kitchen-1.1.1-5.el7.noarch
--> Processing Dependency: python(abi) = 2.7 for package: pygpgme-0.3-9.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: python-pycurl-7.19.0-19.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: libxml2-python-2.9.1-6.el7_2.3.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: python-chardet-2.2.1-1.el7_1.noarch
--> Processing Dependency: python(abi) = 2.7 for package: dbus-python-1.1.1-9.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: python-urlgrabber-3.10-8.el7.noarch
--> Processing Dependency: python(abi) = 2.7 for package: pyxattr-0.5.1-5.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: yum-3.4.3-150.el7.centos.noarch
--> Processing Dependency: python(abi) = 2.7 for package: pyliblzma-0.5.3-11.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: pygobject3-base-3.14.0-3.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: python-iniparse-0.4-9.el7.noarch
--> Processing Dependency: python(abi) = 2.7 for package: yum-utils-1.1.31-40.el7.noarch
--> Processing Dependency: python(abi) = 2.7 for package: rpm-python-4.11.3-21.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: yum-metadata-parser-1.1.4-10.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: python-kitchen-1.1.1-5.el7.noarch
--> Processing Dependency: python(abi) = 2.7 for package: pygpgme-0.3-9.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: python-pycurl-7.19.0-19.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: libxml2-python-2.9.1-6.el7_2.3.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: python-chardet-2.2.1-1.el7_1.noarch
--> Processing Dependency: python(abi) = 2.7 for package: dbus-python-1.1.1-9.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: python-urlgrabber-3.10-8.el7.noarch
--> Processing Dependency: python(abi) = 2.7 for package: pyxattr-0.5.1-5.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: yum-3.4.3-150.el7.centos.noarch
--> Processing Dependency: python(abi) = 2.7 for package: pyliblzma-0.5.3-11.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: pygobject3-base-3.14.0-3.el7.x86_64
--> Processing Dependency: python(abi) = 2.7 for package: python-iniparse-0.4-9.el7.noarch
--> Processing Dependency: python(abi) = 2.7 for package: yum-utils-1.1.31-40.el7.noarch
--> Processing Dependency: python(abi) = 2.7 for package: rpm-python-4.11.3-21.el7.x86_64
--> Processing Dependency: python-sqlite for package: yum-3.4.3-150.el7.centos.noarch
--> Running transaction check
---> Package dbus-python.x86_64 0:1.1.1-9.el7 will be erased
---> Package libxml2-python.x86_64 0:2.9.1-6.el7_2.3 will be erased
---> Package pygobject3-base.x86_64 0:3.14.0-3.el7 will be erased
---> Package pygpgme.x86_64 0:0.3-9.el7 will be erased
---> Package pyliblzma.x86_64 0:0.5.3-11.el7 will be erased
---> Package python-chardet.noarch 0:2.2.1-1.el7_1 will be erased
---> Package python-iniparse.noarch 0:0.4-9.el7 will be erased
---> Package python-kitchen.noarch 0:1.1.1-5.el7 will be erased
---> Package python-pycurl.x86_64 0:7.19.0-19.el7 will be erased
---> Package python-urlgrabber.noarch 0:3.10-8.el7 will be erased
---> Package pyxattr.x86_64 0:0.5.1-5.el7 will be erased
---> Package rpm-python.x86_64 0:4.11.3-21.el7 will be erased
---> Package yum.noarch 0:3.4.3-150.el7.centos will be erased
--> Processing Dependency: yum >= 3.4.3 for package: yum-plugin-ovl-1.1.31-40.el7.noarch
--> Processing Dependency: yum >= 3.0 for package: yum-plugin-fastestmirror-1.1.31-40.el7.noarch
---> Package yum-metadata-parser.x86_64 0:1.1.4-10.el7 will be erased
---> Package yum-utils.noarch 0:1.1.31-40.el7 will be erased
--> Running transaction check
---> Package yum-plugin-fastestmirror.noarch 0:1.1.31-40.el7 will be erased
---> Package yum-plugin-ovl.noarch 0:1.1.31-40.el7 will be erased
--> Finished Dependency Resolution
Error: Trying to remove "yum", which is protected

 

 

結論

依存チェックではじかれて、pythonを削除できません

2017-08-27

[]Android 8のソース、27GB

追記

ローカルaospミラーからのcheck out(repo sync)に3時間かかった

(Core2Duo w)

 

追記

tar.gzに40分かかった

追記

 

追記

解凍に1時間40分w

 

追記

にんにん中now。途中でディスク容量が足りなくなる予定

 

追記

80分後にエラー終了

[  4% 2919/61548] yacc out/soong/.intermediates/frameworks...cc/frameworks/compile/mclinker/lib/Script/ScriptParser.cpp
FAILED: out/soong/.intermediates/frameworks/compile/mclinker/lib/Script/libmcldScript/android_arm_armv7-a_static_core/gen/yacc/frameworks/compile/mclinker/lib/Script/ScriptParser.cpp out/soong/.intermediates/frameworks/compile/mclinker/lib/Script/libmcldScript/android_arm_armv7-a_static_core/gen/yacc/frameworks/compile/mclinker/lib/Script/ScriptParser.h
BISON_PKGDATADIR=external/bison/data prebuilts/misc/linux-x86/bison/bison -d  --defines=out/soong/.intermediates/frameworks/compile/mclinker/lib/Script/libmcldScript/android_arm_armv7-a_static_core/gen/yacc/frameworks/compile/mclinker/lib/Script/ScriptParser.h -o out/soong/.intermediates/frameworks/compile/mclinker/lib/Script/libmcldScript/android_arm_armv7-a_static_core/gen/yacc/frameworks/compile/mclinker/lib/Script/ScriptParser.cpp frameworks/compile/mclinker/lib/Script/ScriptParser.yy
prebuilts/misc/linux-x86/bison/bison: 1: prebuilts/misc/linux-x86/bison/bison: Syntax error: "(" unexpected
ninja: build stopped: subcommand failed.
15:45:20 ninja failed with: exit status 1
make: *** [run_soong_ui] Error 1

 

 

今日はここまで

ちょっとアレしないと

 

 

追記

WSL(Windows Subsystem for Linux

bisonネットでひろったバイナリへ変更 → エラー対処できた可能性あり。時間切れで中断。ただ、ビルド継続するとディスクの空き容量が・・・

https://github.com/Microsoft/BashOnWindows/issues/1771

https://github.com/kxzxxx/android_build

 

UM(Ubuntu on Mac

make -j4でjavaメモリ不足?エラー。j4なしで → エラー対処できた可能性あり。時間切れで中断。こっちはディスク空きは大丈夫なはず

にしても、ネイティブメモリ16GBで厳しいのか・・ → 追記 8GBって認識されてる。

$ ldhw -c memory
     *-bank:0
          詳細: SODIMM DDR3 同期 1333 MHz (0.8 ns)
          ベンダー: 0x0383
          物理ID: 0
          シリアル: 0x00000000
          スロット: DIMM0
          サイズ: 8GiB
          クロック: 1333MHz (0.8ns)
     *-bank:1
          詳細: SODIMMProject-Id-Version: lshwReport-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>POT-Creation-Date: 2009-10-08 14:02+0200PO-Revision-Date: 2014-10-12 06:22+0000Last-Translator: Shushi Kurose <md81bird@hitaki.net>Language-Team: Japanese <ja@li.org>MIME-Version: 1.0Content-Type: text/plain; charset=UTF-8Content-Transfer-Encoding: 8bitX-Launchpad-Export-Date: 2016-06-27 17:08+0000X-Generator: Launchpad (build 18115) [空]
          物理ID: 1
          スロット: DIMM0

壊れたか!!!???

 

 

 

予断は許さないが、WSLでAndroidロムのビルドができる可能性あり

っていうか、AOSPじゃなくて、カスロムだとビルド成功報告があるしな

ただし、ディスク容量がたんまり必要

たぶんビルドで30GB以上でてくるはず

 

ソース 約30GB

.repo 約20GB

ビルド 約30GB

雑に計 約80GB

 

追記

WSL(Windows Subsystem for Linux

進捗10%でディスク空きが3GBwになったので、泣く泣く中断

UMでの出力ファイルサイズを見て、やるやらないきめましょう

 

UM(Ubuntu on Mac

時間で30%ぐらい。ってことは、10時間ってことか??

寝て起きても終わってないな。

 → さらに、前回中断してるので、それを加味すると10時間じゃきかないな。

追記

UM(Ubuntu on Mac

[ 57% 30322/52868] Building with Jack:...k_intermediates/with-local/classes.dex
FAILED: out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/with-local/classes.dex 
/bin/bash out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/with-local/classes.dex.rsp
Out of memory error (version 1.3-rc6 'Douarn' (441800 22a11d4b264ae70e366aed3025ef47362d1522bb by android-jack-team@google.com)).
GC overhead limit exceeded.
Try increasing heap size with java option '-Xmx<size>'.
Warning: This may have produced partial or corrupted output.
ninja: build stopped: subcommand failed.
01:27:14 ninja failed with: exit status 1
build/core/main.mk:21: ターゲット 'run_soong_ui' のレシピで失敗しました
make: *** [run_soong_ui] エラー 1

#### make failed to build some targets (07:31:51 (hh:mm:ss)) ####


real	451m51.293s
user	418m48.588s
sys	13m8.276s

 

おおぅ・・

再起動してみるか

 

 

追記

mac再起動したけど、片方のメモリ認識せず

蓋開けて、刺し込み位置取り換えして、再起動・・・、16GB認識OK

よかった・・・

Galaxy S3が壊れて泣きそうなので、ほんとうによかった・・

 

 

追記

UM(Ubuntu on Mac

ビルド成功トータルで何時間だろう?10時間未満だとは思うけど・・

んで、outが44GB

ふざけんなwww

$ du -hs android-8.0.0_r4/
93G	android-8.0.0_r4/

これってなんかおかしくね?

WSL(Windows Subsystem for Linux)でもやりたかったけど、無理だな

外付けもあまってないしな〜〜

SSD調達しようかねえ?

 

追記

SSD500GB 20,000円付近か~~

KKOだからな~~~

どうしようかな~~~~

しぃなぁ~~~~~

 

外付けデータディスクとして使う予定だから、3.5HDDでもいいか???

いっつも悩むんだよなあああああ

 

内蔵の確かSSD128GBだったような気がするけど、この際に交換か???

 

追記

Core2DuoメモリGBの廃スペックノートPCUbuntu)でビルド

[  3% 2191/61548] Building with Jack: ...l_intermediates/with-local/classes.dex
FAILED: out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/with-local/classes.dex 
/bin/bash out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/with-local/classes.dex.rsp
Out of memory error (version 1.3-rc6 'Douarn' (441800 22a11d4b264ae70e366aed3025ef47362d1522bb by android-jack-team@google.com)).
GC overhead limit exceeded.
Try increasing heap size with java option '-Xmx<size>'.
Warning: This may have produced partial or corrupted output.
ninja: build stopped: subcommand failed.
11:39:11 ninja failed with: exit status 1
make: *** [run_soong_ui] エラー 1

#### make failed to build some targets (49:35 (mm:ss)) ####


real	49m34.775s

予想通りではあるが、メモリ不足で終了。オプションで調整できる?調整したところで無理か?

どうも、HDDの肥やしをみると、Android 6はビルドできたっぽいんだが。7でもメモリ不足で失敗してたか

 

追記

WSL(Windows Subsystem for Linux

USB2.0wの外付けHDDでやりなおし。なんか出てるな~~

[ 27% 17003/61548] Generating TOC: out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar.toc
FAILED: out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar.toc
/bin/bash -c "(prebuilts/build-tools/linux-x86/bin/ijar out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar.toc.tmp ) && (if cmp -s out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar.toc.tmp out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar.toc ; then rm out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar.toc.tmp ; else mv out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar.toc.tmp out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar.toc ; fi )"
ftruncate(fd_out, GetSize()): Invalid argument
/bin/bash: line 1: 30384 Aborted                 (core dumped) ( prebuilts/build-tools/linux-x86/bin/ijar out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar.toc.tmp )
ninja: build stopped: subcommand failed.
10:26:21 ninja failed with: exit status 1
make: *** [run_soong_ui] Error 1

#### make failed to build some targets (08:44:50 (hh:mm:ss)) ####


real    524m50.540s
user    332m5.844s
sys     170m18.359s

https://forum.xda-developers.com/android/general/guide-build-rom-source-windows-10-t3469420/page2

 

追記

あの~~、ninja差分ビルド?部分ビルドってどうやんの・・・

 

まとめ

Core2DuoメモリGBの廃スペックノートPCUbuntu) → メモリ不足

Ubuntu on Mac miniメモリ16GB → 10時間ぐらい?でビルド完了

WSL(Windows Subsystem for Linux)・メモリ16GB・USB2.0外付けHDD → 検証なう・・

 bisonの入れ替えが必要

 ijarエラーが出ている

2017-08-13

フォントサンプル文・サンプルテキスト書体見本一覧

写研:

愛のあるユニークで豊かな書体


モリサワ

デジタル文字は美しく進化する


フォントワークス

text編集することができます


タイプバンク

印象あざやかな書体の美しいフォルム

武士道はそのシンボルである桜花と等しく、日本の地に固有の花である

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz?!1234567890


ダイコムウェア:

心をこめて届ける書体デザイン


和文フォント大図鑑

あたらしい朝が来た希望の朝だ

喜びに胸を開け青空仰げラジオの声に健やかな胸をこの香る風に開けよ

ABCDEFGHIJKLMNOPQRSTUVWXYZ@&(^^)!?abcdefghijklmnopqrstuvwxyz.


windows

windowsコンピューター世界が広がります。1234567890


Mac

あのイーハトーヴォのすきとおった風、夏でも底に冷たさをもつ青いそら、うつくしい森で飾られたモリーオ市、郊外のぎらぎらひかる草の波。

―――宮沢賢治ポラーノの広場』より―――


いろは歌

いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす

はにほへど散りぬるを我が世たれぞ常ならむ有為の奥山今日越えて浅き夢見じ酔ひもせず


英文パングラム

The quick brown fox jumps over the lazy dog.


Google Font:

Grumpy wizards make toxic brew for the evil Queen and Jack.


Google Font:

All their equipment and instruments are alive.

―――フィリップ・ディックMr. Spaceship』より―――


アルファベットの羅列:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.


よく使われる漢字

永 東 国 鷹、鬱 愛

理由は永字八法、左右のバランス?、国構え、画数の多い漢字


個人的にはアルファベットなら「g」とか、ひらがななら「な」とか「や」とか「を」とか個性が出るものは含めて欲しい気がする。

フリーフォント統一された文章がない感じ。

2017-07-15

タイトル

h3

強調 STRONG

h3 space

h4
  • li -
    • li --
      • li ---
  • li +
    1. li ++
      1. li +++
h4

text br

text br br

text br


h5
th1 th2
td1 td2

2017-07-07

https://anond.hatelabo.jp/20170706235735

以前ならDana Text Editorがおすすめだったんだけれど、開発が止まっていてWindows 10時代に使うには違和感を感じてしまうんだよね。

整形したり、抽出したりは秀丸サクラあたりよりはかなり高機能だったのだけど。

人力検索はてなでは乗り換え先としてNoEditorが勧められているけどこれはいいものなのだろうか。

2017-07-06

無知無理解プロジェクトが殺されそうだ

当方フリーIT 技術者。ある Web ベースシステムを開発しているのだが、プロジェクトマネージャーリーダーをはじめとするメンバー無知無理解のおかげで作業が進まずに困っています

ブラウザーキャッシュの仕組みを少しでも知っている人なら、非 IT 系の方でも読めるように書きました。ぜひ助言をお願いします。

登場人物

私は発注元(A 社)に客先常駐している。私が契約しているのは A 社のグループ会社である B 社だ。

A 社内のチームメンバーは以下のとおり。

さて、今開発しているシステム(以下システム P)はもともとスタンドアローン運用する形態だったが、最近クラウドバージョン提供も始まり現在スタンドアローンバージョンクラウドバージョンの並行開発となっている。X さん、Y さん、Z さんは主にクラウドサーバー管理や、私や W さんが作った部分のテスト担当している。

問題発覚

クラウドバージョンの初めてのアップデートを控えた 6 月に問題が発覚した。コードアップデートすると、ブラウザーキャッシュが効いていて表示がおかしくなるというのだ。

プログラマー以外の 4 人は実は Web システム案件は初めてで、ブラウザーキャッシュの仕組みすら理解していない。X さんから相談を受け、「Web アプリケーションからブラウザーキャッシュクリアーすることはできない。代わりに、HTML から読み込まれる外部リソースの後ろに『?v=3.14』のようなダミークエリ文字列をつければよい。アップデートのたびに数字を変える。これは一般的採用されている手法で、これ以外の解決策はない」ということを伝えた。具体的にコードエディター上で修正イメージを見せて、すべてに対応するのに 1 日あればできる、とも。

これで「そうですか、ではお願いします」となれば、テストを含めて 2、3 日で終わった話なのだが、ここから長い混乱が始まる。

前回リリースから変更のあったファイルの洗い出しを命じられる

X さんから、「変更箇所をなるべく少なくしたいので、前回リリース分と今回リリース分で変更のあったファイルリストを出してほしい」と言われる。変更のないリソースにはクエリ文字列をつけたくないらしい。

内心呆れつつ、Git (ソースコード管理システム)でファイルの変更履歴を調べ、一覧表を提出した。X さんに「それぞれのページでソースコード確認し、この一覧表に載っているファイルにはクエリ文字列がついていることをひとつひとつ確認するのですよね。却って手間が掛かりますよ。それよりも、すべてのファイル対象にしたほうが作るほうもテストするほうも楽です」と伝えた。

問題発生箇所の調査を命じられる

6 月も残り 1 週間を切ったある日、Z さんから、「実際に問題になっているのはどのファイルのどの部分か、スタイルシートのどのクラスID 指定が効いていないのか、V さんが知りたがっている。原因解明に必要なので調べるように」と指示が出る。

私は「ブラウザーキャッシュが効いているためで、キャッシュを消すか無効にすれば直る。今までも修正のたびにテストではキャッシュを消してもらっていたでしょう」と説明するが、調べろ調べろと繰り返すばかり。「そんなことを調べて何になるんですか。キャッシュ問題ですよ?」と言うと、Z さんは手をわなわな震わせて、「お客さまが知りたいと言っているのに、『そんなことを調べて何になるんですか』とはどういうことですか!」と声を荒らげる。しまいには「お客さまのご要望にお応えして私たちお金をもらっている。お客さまからの依頼なら応えるのが当たり前」と言い出す。技術的に意味がないことをいくら説明するも理解されない。

ブラウザーキャッシュの仕組みを基本から説明する

プログラマー 4 氏の知識底上げをしないといつまで経っても平行線だと思い、Redmine (課題管理システム)にブラウザーキャッシュの仕組みを解説する文書投稿した。ほぼ同じものを以下に掲載する。非技術者にも分かりやすく書いたつもりだ。あまりかいことを説明しても混乱させるだけだと思い、リクエストヘッダーの Cache-Control や Expires などは説明を省いた。

キャッシュとは

キャッシュ(cache) とは、一度読み込んだデータを内部に保存しておく機構のことです。2 回目以降の読み込み時はキャッシュを読み込むことで、処理時間の短縮を図ります

ウェブブラウザーにおけるキャッシュ一般に、HTML ファイルおよび HTML から読み込まれる外部リソース(スタイルシートファイルJavaScript ファイル画像ファイルなど)に対して適用されます

キャッシュが作られるタイミング

ブラウザーがあるファイルを読み込もうとする時、キャッシュがなければ実ファイルを読み込んだ上でそのファイルの内容をキャッシュします。

キャッシュが破棄されるタイミング

キャッシュがいつ破棄されるのかは完全にブラウザー依存です。異なるファイルキャッシュが同じ期間だけ存在するかどうかも分かりません。

キャッシュユーザーブラウザー操作で明示的に削除(クリアー)することはできますが、 サーバーからクライアント(ブラウザー)のキャッシュクリアーすることはできません。

ウェブアプリケーションキャッシュ対策

ウェブアプリケーションアップデートした際、クライアントキャッシュ無効にするために、以下の手法がよく使われます

link rel="stylesheet" type="text/css" href="style.css" >
< script type='text/javascript' src='script.js' >< /script >
< img src="picture.jpg" alt="" width="640" height="480" >

このような外部リソース読み込みについて、ファイル名の後ろにクエリ文字列を追加します。

link rel="stylesheet" type="text/css" href="style.css?v=2.4.0" >
< script type="text/javascript" src="script.js?v=2.4.0" >< /script >
< img src="picture.jpg?v=2.4.0" alt="" width="640" height="480" >

スクリプトでない静的ファイルクエリ文字列を付加しても、読み込まれファイルは同じです。つまりstyle.cssstyle.css?v=2.4.0 は同じ style.css というファイルを指します。

ブラウザーが style.cssキャッシュしている状態で、この行を読み込んだとします。

link rel="stylesheet" type="text/css" href="style.css?v=2.4.0" >

ブラウザーは「style.css?v=2.4.0 というファイルキャッシュにない」と判断し、style.css?v=2.4.0 というファイルを読み込みます。結果として、ディスク上の style.css が読み込まれスタイルシート更新されます

この HTML をまた読み込んだ時は、「style.css?v=2.4.0 というファイルキャッシュ済み」と判断し、ディスク上のファイルではなくキャッシュを利用します。

ウェブアプリケーションバージョン 2.5.0 にアップデートする時には、「?v=2.4.0」の部分を「?v=2.5.0」に書き換えてリリースします。

link rel="stylesheet" type="text/css" href="style.css?v=2.5.0" >
< script type="text/javascript" src="script.js?v=2.5.0" >< /script >
< img src="picture.jpg?v=2.5.0" alt="" width="640" height="480" >

同様の仕組みで、2.4.0 時代キャッシュがあっても 2.5.0 用に書き換えられたファイルが読み込まれキャッシュ問題は起こりません。

この手法は、キャッシュ問題解決する手段としては一般的に用いられているものです。俗に「キャッシュバスター (cachebuster)」とも呼ばれます

上記に長々と書いた内容を踏まえ、今回の問題についてご説明します。

「暫定対応」の指示が出る

日経った日の午後。Y さんが A4 判数ページにもなる「調査報告書」を作成した。問題になっているスタイルシートについて前回リリース分と今回リリース予定分の差分を取り、それぞれの行について「新規」「変更」「削除」の印をつけ、「とりあえず、このクラス指定が効いていないだけなので、HTML 中にインラインスタイル(< div style="..." >)で指定すればよい」と結論づけていた。

報告書には「状況から見て、変更・削除されたスタイル指定は影響が出るらしい。新規に追加した部分については影響がないようだ」とも。私が書いた説明を読んでいないのか、理解できなかったのか。

この報告書を元に、X さんから「この行とこの行にインラインスタイル指定してください。これで暫定対応します」と指示が出た。

私は「この修正は何ら根本的な対策になっていないことは理解していますか。『現状で問題になっている箇所』は、この環境たまたまそうなっているだけの話で、ほかのお客さまの環境では別の画面が崩れるかもしれないのです。それを承知の上で、これを暫定対応としてよいのですね」と X さんに確認。X さんは「はい」とだけ答えたので、黙って作業完了した。Gitコミットメッセージに「この方法は何の効果もないこと、それでも作業をしてよいのかを X さんに確認の上、作業」と書いてコミットした。

しばらくすると X さんから「うまく表示されていますOK です」と報告があった。

その日のうちに問題再発

夕方、私が帰ろうとすると、X さんが Y さんに「画面がおかしい」と言っている。横から覗くと、先ほど「暫定対応」とやらを入れた画面で、表示は正常だがボタンを押しても何の反応もない。私は静かに「JavaScriptキャッシュですね」。

聞けば、Y さんは「キャッシュスタイルシートにだけ効く」と思い込んでいたらしい。やはり先の説明を読んでいないようだ。そして、Y さんの環境ではボタン有効だったとも。

私は「Y さんの環境では(JavaScript の)古いキャッシュは効いていなかった。X さんのところではキャッシュが効いていた。これが、私が言っている『環境依存』の意味です。昼の暫定対応ではダメなんです。半月から私が言っているように、すべての外部リソース読み込みにキャッシュバスターをつけないと解決にならないんです」と伝える。

Y さんは観念した様子で、「キャッシュバスターって、一部分にだけ適用することもできますか」と聞く。この人、理解してないなと思いつつ、「はい、できますよ」と返すと、「では、問題の発生している範囲調査して、問題が起こっているファイルにだけキャッシュバスターを……」。やはり何も分かっていない。

私は繰り返し、ブラウザーキャッシュ環境依存なのですべての外部リソース読み込みにキャッシュバスターを付加しないと無意味だと説明した上で、こう付け加えた。

「指示されたことだけを黙ってやっていれば、そりゃあそっちのほうがラクですよ。でも、喧嘩をしてでも、場の雰囲気を悪くしてでも自分意見を主張するのは、技術者としてのちっぽけな良心からです。お願いですから専門家の言うことを聞いてください。私の意見が信用ならないのでしたら、ほかの技術者意見を聞いてください」

対応が先送りになる

この数日後、本件の対応を先送りにすることが決まったと X さんから報告があった。

聞けば、リリースを急いでいるのは特定顧客要望によるものらしい。その顧客スタンドアローンバージョンを利用しているので、アップデートの現地作業の際にブラウザーキャッシュを消してくればいいとのこと。

リリースに間に合わない間に合わないとあれだけ騒いでいたのに。プロジェクト管理がまるでできていない。

レビュー開催

そして今日夕方、この件についてレビューを開きたいとプロジェクトマネージャーの V さんから言われる。レビューって、何をやればいいんだろう。何をすれば気が済むんだろう。Redmine に書いた説明を読んで理解してもらえれば、やるべきことはひとつしかないと分かろうものなのに。

X さんから質問を受ける。「例の件、ほかの方法はないんでしょうか。『こういう方法もあるけれど、工数が掛かるので採用しません』というのがもしあれば話が進めやすいかと」。残念ながらありません、せいぜいファイル名そのものを変更するくらいですが、本質的には同じことですし管理の手間が増大します、と伝えた。

ついでに、X さんに「あの説明を読んで、よく分からない部分があったら教えてください」と尋ねると、実は忙しくて斜め読みしかしていないと白状された。その状態対応策を一生懸命協議していたのですな。

レビューの席でまた一悶着ありそうだ。どうやったら彼らを納得させられるのだろうか。信用できない技術者説明してもらったって、信じないんだったら意味がないのにねえ。

追記

文字数制限に引っかかってしまい、末尾が切れてしまっていました。続きはこちらに書きました。

https://anond.hatelabo.jp/20170706122924

2017-06-08

「なぜコスパ最悪な"Mac"を使っているの?Windowsサイコーじゃん」を読ん

Sublime Text記事を書こうとしたところ、こんな記事があったのでmacユーザーとして書いてみます

ここからほぼ全部引用しながら書いていきます

読んだ記事

http://diary.netank.net/entry/2017/06/07/202630

==

>無職ブロガーヨシダの本音

>なぜコスパ最悪な"Mac"を使っているの?Windowsサイコーじゃん

>1.Macコスパ最悪

>MacBook Pro価格を調べてみると、Appleストアで一番安いTouch BarTouch IDなしの13インチモデルで税込15万4224円です。

>スペック

>13インチ

>Intel Core i5デュアルコア 2.3GHz)

>8GBメモリ

>128GB SSD

>グラフィックCPU内蔵

>です。性能的には、Windowsベーシックモデル(普及帯モデル)と同程度。

>皆さんが欲しいであろうTouch Bar(Fキーの部分がディスプレイ)と

>Touch ID指紋認証機能付きモデルもっと高くて、税込214,704円~となりま>す。

>スペックCPUSSDアップグレードされ

>13インチ

>Intel Core i5デュアルコア 3.1GHz)

>8GBメモリ

>256GB SSD

>グラフィックCPU内蔵

>となります

>この性能でこの価格あなたはどう思いますか?しかも、Macって家電量販店での値引きもほぼ不可能です。

>僕はとんでもなく高額だと思いますよ。

⇨同感です。10選手ですが、macのおかげで散財させられています

>2.普通USB廃止するとか頭おかし

>

>最新のMacBookProやMacBook無印には普通USB端子がありません。スマホなどでも使われ始めている小型のUSBタイプCにすべて置き換わってい

>ます

>SDカードリーダーすらなくなりました。

>USBタイプCから普通USBに変換するケーブルも売られていますが、わざわざ使うのが面倒です。USBタイプCを採用する機器も登場していますが、>需要が少ないためか滅茶苦茶高いです。

>Windows機であれば、超薄型モデルでも従来のUSB端子が付いている場合ほとんど。

>普通USB端子を廃止するとか頭おかしいです。どう考えたって不便でしょ。

⇨同感です。それまで仲良くしてた仕様をいきなり切ったり困りものですよ。

>3.美しいデザイン

>Macを使う人の多くが、本体デザインの美しさが理由じゃないでしょうか?確かにカッコよくて、美しいデザインであることは僕も否定しません。

>スタバどや顔したくなるのも分かります

>(最近では群馬でもMacBookスタバで使う人が登場してます。恥ずかしくないのって思ってます。)

>重たくないですか?

>美しいアルミボディーを採用したためか、MacBookPro13インチで1.37kgもありますWindowsノートなら、ほぼ同程度のスペックで1kgを切って

>いるモデルも沢山あります。13インチなのにモバイル向きではないのが残念すぎます

>性能の低いMacBook無印なら0.92kgですが、性能のわりに価格が高いので個人的にありえない選択です。

>WindowsでもカッコいいPCはあるぞ

>Windowsノートデザインがカッコ悪いと批判するMacユーザーも多いですが、Windows機の良いところは種類が豊富なところです。

>デザイン優先のカッコいいモデルから低価格実用性重視のモデル、頑丈で軽量なモデルまで様々です。

>デザインが美しいWindows機なんていくらでもありますよ。ちゃんと探しまたか

⇨同感です。macは美しいですが、確かにwinでもキレイものはいくらでもありますよね。

>4.Mac OSは凄い?

>MacOSのすばらしさを主張する人もいますが、それはないですね。MACにできてWindowsにできないことなんてほぼないと思います

>足りない機能フリーソフトいくらでも拡張できます

>ソフト豊富さではWindows圧勝です。MAC向けにしかなかった一部のプロ向けソフトも、現在ではウィンドウズ版もちゃんとあります

⇨同感です。過去はそうだったかもしれませんが、winも同様に素晴らしいものを持っています

>会社Windowsです

>一部の業界を除いて、ほぼすべての会社PCWindowsです。あなた会社PCWindowsだと思います

>僕が製造業仕事をしていたころは、自社や取引先を含めて、MACを使っている人なんて一人もいませんでした。全員Windowsです。

>どんなことでも同じですが、全く操作性の違うものを2つ併用して使うのは辛いです会社Windows、自宅はMACというのはイライラするはずです。

>実は僕も2年位前にMacBookProを使っていたことがあるのですが、やはり共通性という面で苦労しました。

>結局、会社に合わせる形でMacBookProは売却してWindows機を買いなおしました。

⇨同感です。二兎追うものは一兎をも得ずです。

>学生Windowsを選ぶべき

>会社Windowsなので、大学生絶対Windowsを選ぶべきです。会社に入ってから、「Windows触ったことありません」なんて

>正直お話にならないです。ふざけるなってなりますよ。

>就職後のことも考えれば、圧倒的にシェアが高いWindowsを選ぶべきだと僕は思います

>まぁ、フリーランスとかデザイン業を目指しているのであれば、MACでも良いかもしれませんが。

⇨同感です。入社という未来があるのに今がよければという考えはもってのほかです。

>5.MACウイルス感染しない?

>MACウイルス感染しにくいことを自慢する人も多いですが、それも間違いです。MAC向けのウイルスなんて大量に存在しています

>Windowsよりユーザー数が少ないから、あまり話題にならないだけです。

>ちゃんと、MAC向けのウイルス対策ソフトだって売られてますよ。安全だという思い込みによって、セキュリティ意識が低下する方が怖いです。

>ちなみに、Windows10ならOS自体ウイルス対策機能が搭載されています。家庭利用なら別途ウイルス対策ソフトを入れなくてもウイルス

>感染することなんてほぼないです。

⇨同感です。意識が低下して感染する可能性は大いにありますね。

>6.ハードウェアソフトを同じ会社が作っている

>MACソフトハードAppleが作っています。そのため、安定性が高いとか、ソフト最適化が進んでいるとか、主張する人も多いです。

>でも、僕がMacBookProを使っていた時は、特別ソフトインストールしていないにも関わらず、結構フリーズしてましたよ。

>頻繁に動作不良問題も発生しているので、大して安定しているとも言い難いと思います

>そもそもMAC OSって、BSDUNIXベースなので、Appleが一からOSを作っているわけではないです。

>最近Windowsはほぼブルースクリーンフリーズが発生しないですし・・・MAC OSWindowsより安定しているという主張は納得いきません。

⇨同感です。急な不調を訴えて働くなったりでは困りますよね。

>7.WindowsフォントUIが酷い?

>MACユーザーはよくWindowsフォントが酷いとか、UIダサいとか、批判します。でも、それって本当でしょうか?

>僕はWindowsUIフォントは好きですよ。むしろMACのようにデザイン重視ではなく、実用性も考慮しているので、使いやすいと思います

>正直言って、Macフォント無駄アンチエイリアスを利かせすぎていて、綺麗だけど見やすくはないと思うんですよね。

⇨同感です。外見だけでなく実用性も備えているべきですよね。

>8.トラックパッドが使いやすい?

>たしかMacトラックパッドは使いやすいと思いますが、最近Windows機もかなり改善されています

>激安モデルはあまり良いさわり心地とは言えませんが、MACと同価格帯の高級機であれば、凄く使いやすいと思います

>そもそも、僕はMacBookのような大きなトラックパッドが嫌いです。キーボード入力時に誤動作する可能性が高いので、僕はレッツノートの様な小型タイプが好みです。

⇨同感です。昔はそうだったかもしれませんが他を探せばいくらでもいいものはありますよね。

==

無職ブロガーヨシダさんが仰ることに全て同感です。

winにはとても素晴らしいPCがたくさんあります価格も申し分ない。

それに比べてmacコスパ良くないですし急にフリーズだってします。さっきもしました。

本気で苛立つことだって1度や2度ではありません。

そう認めてもなお、どうしてmacを使い続けるのか。

それは。

macに恋してるからなんでしょう。

macのすべてが、僕にとって魅力的にうつるわけです。

そう言えば、Sublime Textは「恋に落ちるエディター」と呼ばれています

よかった、最後に元々書きたいことが書けました。

2017-05-29

留学しないと英語ができないのは、日本英語教育が嘘まみれだから

直訳と"literal translation"

日本人にとって、直訳という言葉は「機械的文法に沿って訳語を並べて、意味不明の訳文を作ること」といった印象が強い。意味が通じる翻訳をするには、意訳、つまり元の文を理解した上でその内容を自分言葉で書き直す必要があると考えられている。

しか英語で直訳を表わす"literal translation"は、そういった言葉ではない。もちろん、機械的に置き換えて意味の通じない文を作ってしまうことも言うのだが、"literal translation"は「原文に忠実である」というポジティブな側面を持っていて、formalで立派な翻訳という感覚を伴う。

それはつまり、「意訳」に良い印象がないということでもある。それは「意訳」に当たる適切な英語表現がないことでも分かる。

https://www.onehourtranslation.com/translation/blog/literal-translation-vs-conveying-sense-text

ここでは"literal translation vs. conveying the sense of the text"(直訳 vs. テキスト意味を伝えること)というタイトルになっている。日本人から見ると「"直訳 vs."と来たら『意訳』が来るに決まっているだろう」と言いたくなる。しかし、英語で意訳という言葉は、直訳とvs.出来るほどの市民権を得ていない。

英語翻訳フランス語ラテン語といったヨーロッパ圏の言語から知識を取り入れるために行われることが多く、ヨーロッパ圏の近縁語同士では直訳は有効方法論だ。結果として、"literal translation"は立派でフォーマル翻訳という意味合いが生じた。

対して、訳者勝手自分なりの表現を加えてしまうと、fidelity(原文に対する忠実さ)が欠けているという批判対象になる。

たとえば、私は素人ながらアニメ英語翻訳に関わったことがあるのだが、海外アニメオタクは意訳を嫌う。佐藤さんはSatou-san,斎藤先輩はSaitou-senpaiだし、学校先生敬称英語だとMr.なのだが、犬塚先生はInuzuka-senseiだ。

たとえば、アニメセリフに「ありえなくね?」と出てきたら、文字通り"That's impossible, right?"と訳すのが好まれ意味を汲み取って"Are you kidding?"と訳したりすると、"over-translation"とか"liberal translation"などと言われて叩かれてしまう。日本人の私から見ると、とても理不尽に感じるが、彼らの感性はそうなっている。

http://www.proz.com/forum/translation_theory_and_practice/160439-%22overtranslation%22_vs_%22undertranslation%22.html#1349407

この問題についてググっていたら「literal translationが良いというのは神話だ」という海外の人の意見を見つけた。これを言っているのが日本語英訳をしている人だというのも示唆的だ。

日本では英語文献を翻訳するのが主なので、literal translation、直訳はほとんど役に立たず、ひどい翻訳代名詞のようになっている。英語話者にとっての日本語英訳でも同じだろう。

Translationと翻訳

基本的に、英語圏でTranslationと呼ばれているものと、日本翻訳と呼ばれているものは、行為としては似ているが、内実は全く異なっている。

英語圏で行われているのは直訳であり、我々がやっているのは意訳だ。英語圏でやっているのは文法ルール訳語を覚えて他言語に当てはめ、原文を出来るだけ変えずに英語に直すことであるが、我々がやっているのは「他言語を(何らかの方法で)理解し、その内容を自分なりに日本語で作文する」という行為である

直訳が役に立たないとはどういうことか

直訳が役に立たないということは、つまり文法ルールを覚え、日本語訳語を覚えて適用しても、英語理解することは出来ないということだ。

これは残酷現実であるが、「いくつの文法ルールを覚え、何万の訳語を覚えても、英語理解することは出来ない」

これは文法訳語が不必要だと言っているのではない。文法訳語はヒントにはなる。だが、答えにはならない。

はっきりいえば、ヒントを一生懸命集めて暗記しても、意味がない。文法ルールをいくつ暗記しようと、英単語訳語をいくつ暗記しようと、それは英語力ではない。

身も蓋もない言い方になってしまうが、法則化出来ないなんらかのプロセスによって、英語を直接理解する能力。それが英語力だ。

そして直訳が出来ない、つまり英語日本語に変換して理解するための法則が導けないという事実から分かるのは、日本語理解している我々の脳をどういじくっても、それを英語適用することは出来ないということだ。

それはつまり、「英語理解するための脳の回路を、日本語とは別にゼロから構築する必要がある」ということに他ならない。赤ん坊が新しい言語習得するときのように、何年もかけて、少しずつ脳を開発していき、英語理解できる脳を構築していくしかないのである

どこかの英語学習体験記で読んだことがあるのだが、「留学に行った所、フィンランド学習者と同部屋になった。フィンランド学習者はひたすら単語帳を眺め、英単語だけをひたすら覚えていたが、それによってあっという間に英語が出来るようになっていた。だから、私も一生懸命単語帳を眺めることにした」といったものだ。

これがつまり、直訳が可能言語使用している脳と、直訳できない言語使用している脳の違いだ。欧州の人々は基本的に、母国語理解するために使っている脳を英語向けにアレンジするだけで、英語ができるようになる。我々はそうではない。

しかその体験記の終わりは、「一生懸命英単語を覚えた結果、留学を終える頃にはかなり英語ができるようになっていた」となっていたように思う。しかし私が声を大にして言いたいのは「それは英単語を覚えたおかげではない」

留学神話は本当か

日本英語学習界には、留学神話がある。「留学さえすれば英語は出来るようになる。留学しないといつまでたっても英語ができるようにはならない」というものだ。

もちろん留学さえすれば英語ができるようになるというのは嘘だ。それはもちろん神話しかない。「留学して、英語を使わざるを得ない環境自分を追い込み、一生懸命英語に取り組めば英語は出来るようになる」というのは正しいが、「留学はしたものの、日本人同士で固まって遊んでいただけで、勉強はしていない」といった生活英語ができるようになるはずもない。実はそういう日本人留学生は数多い。

しかし「留学しなければ英語ができるようにはならない」というのは真実を突いている。

日本英語教育に従って、文法ルールを覚え、訳語を覚え、どんなに努力を続けても、英語ができるようにはならない。留学して、日本英語教育から離れ、ただがむしゃらに英語と格闘すれば、それだけで英語は出来るようになる。

そして「がむしゃらに英語と格闘する」ためには、留学別に必須ではない。がむしゃらに英語の本を読む事もできるし、映画を見てもいい。海外英語フォーラムに書き込んでもいいし、Lang-8英語日記をつけてネイティブ添削してもらうのも、アジア圏のネイティブスカイプ英会話をやるのも良いだろう。

がむしゃらに英語と格闘することが必要なだけだ。そしてそれ以外に英語ができるようになる方法はない。

なぜ日本英語教育では英語を出来るようにならないのか

基本的に、日本英語教師英語ができないという事実がある。

http://www.nikkei.com/article/DGXLASDG25H1M_V20C15A5CR0000/

全国の公立中学高校英語教員のうち、英検準1級以上かそれに相当する資格を取得しているのは中学28.8%、高校で55.4%だったことが25日、文部科学省2014年英語教育調査で分かった。政府教育振興基本計画17年度までに中学で50%、高校で75%との目標を掲げている。英語教員のいっそうのレベルアップが必要な状況が浮かんだ。

高校英語教師英検準一級が55%、半分近くが英検準一級を持っていないということだ。準一級を持ってないということは、日本文法単語の暗記中心の教育をする能力すら疑問符がつく。

準一級の問題は、日本英語教育で教えられたとおりに暗記した単語を当てはめ、文法ルールにそって直訳すれば理解出来る、日本人向け英語もどきしかない。それが分からないということは、英語もどきを教える資格もないということだ。

もちろん教師聖職として尊敬されるべき存在であり、それを指揮するのは霞が関文部科学省エリート官僚であるから自分たちが教えているのが「実際には役に立たない英語もどきです」とは言えない。「私たち英語がよく分かりませんし、『生徒をちゃんと英語が出来るようにしろ』と言われても出来るわけありませんよ。むしろ、そんなやり方を知っているなら教えて下さいよ」などと口が裂けても言えるはずがない。

それに対して一方では「聞き流すだけで英語ペラペラに!」とか「たった100語で英語は出来る!」とか「頻出フレーズを暗記すれば日常会話はバッチリ!」とか、英語教育界はオカルトだらけである

もちろん商売でやってるのであるから、「がむしゃらに英語と格闘しろ、それ以外ない」などと言えるはずもないのだが、そんなことを言っていても誰も英語が出来るようにならない。なんとかならないものだろうか。

私が実践してきた、オススメの、実際はがむしゃらにやるだけの英語学習法を紹介しておく。

http://anond.hatelabo.jp/20170526220542

http://anond.hatelabo.jp/20170524213622

http://anond.hatelabo.jp/20170522214348

TOEIC3000語が覚えられない

コメントを頂いた。本を読んでもTOEIC3000語が覚えられない、ということだった。

TOEICリーディング結構速読必要なので、その実力が身につくまで、100万語ぐらい、500ページのペーパーバック12冊分程度読まないと、普通最後までたどり着かないんじゃないかと思う。12冊分を辞書を引きながら、単語表現感覚を感じ取りながら舐めるように読めば、どうやっても8000語程度の単語感覚的に理解できる、生きた語彙力が身についてるはずだ。必要なのは暗記力ではなく、文を深く読み、英語表現意味を感じとる力だ。記憶は忘れるけれど、感覚は忘れない。忘れたと思っていても残っていて、何度か同じ表現を見かければ、その都度感覚は強化され磨かれていく。

単語を覚えるというのは読書の途中で自動的についてくるもので、ピクニックの途中で摘める野イチゴのようなものだ。しか英語学習者は読書というピクニックには出かけず、ピクニックの準備だけを念入りに行っているように感じている。「自分にはピクニックも難しい。ピクニックに出かけたらヤマで遭難するかもしれない。その時のために食料を買い込んでおこう」と言いながら、辛い奴隷労働をして腐りかけのイチゴを買い込んでいるように見える。ヤマに出ればいくらでもおいしい野イチゴが摘めるのに、ヤマに行っても腐ってて使い物にならない表面だけの単語知識必死で暗記しているように感じている。これは本当によくないことだと思う。

LONGMANをやるべきか

もう一つコメントを頂いた。学習者は英英辞典オックスフォードでなく、ロングマンをやるべき、というご意見だ。

辞書から得られるもの単語理解ではなく、ヒントでしかない。ヒントを英語で貰っても基本的英語学習者にはわかりにくい。英英辞典自体を読み物として楽しめないなら、英英辞典を見ても英和より効率が悪いと考えている。もちろんロングマンが読み物として楽しい、読んで頭に入りやすいという方がいるならその方が良いと思う。私はオックスフォードが読み物として楽しいので使っているが、面倒な時はウェブリオに走っている。

忘れていた

この記事は長文すぎて最後が切れていたので、二つに分割したものの後半部分だ。前半部分はこの記事と繋がりがあるようでないのだが、いろいろと書いた。 http://anond.hatelabo.jp/20170529095534

終わり

ネタがなくなったので、多分この増田で吠える英語考察は今回でしばらく休止するかと思います。今まで長文をご覧いただいた方、コメントを頂いた方、ありがとうございました。

英語教育は嘘まみれではないのではないか、という意見について

http://anond.hatelabo.jp/20170529221645 こちらでコメント返しをしました。

2017-05-25

[]一応マニュアルのとこ

http://anond.hatelabo.jp/20170524171732

id:yosukegatzさん

FAQはあくまFAQだからね。手続き正当性をなぜFAQでみているのか、どの部分を持って手続き問題がある、とツイート主がおっしゃってるのかわかりませんが、マニュアルにちゃんと書いてあって、ふつうに執り行われてる手続きであるとは思いますよ。そもそも国連特別報告者はあくまで準司法quasi-judicialで、問題提起大事だって書いてあるし、これが初動なわけだから、内容が不適切だとおっしゃるなら質問にちゃんと答えりゃいいんですよ。とりあえずツイート主が言ってることは根拠がないですよ。むしろ人権侵害がある国にこそ公開でやることで回答する動機づけをしてるのは明らかだし。

国際機関を含む多国間交渉の場は利害も考え方もまちまちだから手続き大事で、そこを外すと何も進まなくなる。日本政府問題を指摘しつつも誠実に対応する(ことが求められる)が、他の国(人権侵害のひどい国)なら「回答する前に書簡政府攻撃に使われた」として回答拒否の口実にしてくるはず。

これは実例に照らして真反対。緊急性や重大性が低く、相手がちゃんと回答してくる可能性が高い場合にこそconfidentialにしている。

今回の書簡基本的には「質問」であり、当該政府からの回答に加え、別途行ったその他の調査内容と合わせて検討し、国連人権理事会報告書を提出するのが特別ラポルトゥールへの委託内容。その報告書はまだ単なる個人作成文書であるがこの時点で公開されて議論対象となる。書簡公開はルール違反

これも事実誤認ルール違反じゃない。ちゃんと書いたように,マニュアルに認められている。

送られた書簡とそれに対する受け取った回答の文章は、受任者が対応した報告書作成するときまで機密にするか、受任者が、特定の状況によって、それ以前に行動が必要であると決定する。

37. The text of all communications sent and responses received thereon is confidential until such time as they are published in relevant reports of mandateholders or mandate-holders determine that the specific circumstances require action to be taken before that time.

プレスリリースを即座にすることも認められている。

重大な懸念や、政府書簡に対して本質的な回答が出来ない状態が続く場合などの適切な状況では、受任者は個人で、あるいは他の受任者(特別報告者、作業部会など)プレスリリースプレスカンファレンス、その他の公的意見表明などを行う場合がある。

一般的に言って、受任者は政府との対話の中で、プレスリリースなどのプレス向けの声明を発出する前にそのことを明らかにするべきである。受任者が、書簡の中で、プレスリリース等をすぐにおこなう意向を示したい時は、書簡の中にそのような意向記載することが出来る。受任者は、懸念された国からの応答に対しても公平に明らかにするべきである

49. In appropriate situations, including those of grave concern or in which a Government has repeatedly failed to provide a substantive response to communications, a Special Procedure mandate-holder may issue a press statement, other public statement or hold a press conference, either individually or jointly with other mandate-holders.

50. In general, mandate holders should engage in a dialogue with the Government through the communications procedure before resorting to a press release or other public statement. When a mandate holder sends a communication with the intention of issuing a press release shortly thereafter, such intention could be indicated to the Government in the communication. Mandate holders should indicate fairly the responses provided by concerned States.

とされているように、初動が一方的に公開であることは別に認められているし、反論公平性は、反論文を同じ場所に掲示することで保とうという意思が見える。

また前に書いたように、イギリスのSnooper's charterについては、就任直後にガーディアンインタビューでいきなり問題提起しており、不必要テロ危険性をマスコミ翼賛的に報道している状態に苦言を呈しているけど別にイギリスは「反論の機会もなしにメディアでしゃべるなんて!」とも批判もしてない。(なぜインタビューされたかというと、このケナタッチ氏の就任は、アメリカメルケルとかを盗聴してたことが明らかになったのちだったので、親アメリカ派のエストニア候補が反対されたという経緯でヨーロッパではその就任が注目されていた。)そしてイギリス政府は、ガーディアン政府見解を送り、ガーディアンもそれを掲載した。ただそれだけの話なんだよ。

 当然指摘は一方的になされるので、誤認があるなら反論すればいいだけなんだよね。我が国対応が際立ってみっともないだけ。

とりあえずツイート主はFAQじゃなくってマニュアルを読んだ方がいい。

2017-05-10

トラバ書こうとすると元増田が何言ってたか一瞬で忘れる

greasemonkey書いて戻るボタンさなくて良くした。

// ==UserScript==
// @name         anond easy track back
// @description  anond easy track back
// @namespace    http://anond.hatelabo.jp/
// @include      http://anond.hatelabo.jp/*
// @require      https://code.jquery.com/jquery-3.2.1.min.js
// ==/UserScript==

(function() {
    var url = window.location.href, isEditPage = url.slice(url.lastIndexOf('/')).startsWith('/edit');
    if (isEditPage) {
        appendTrackBackContent();
    } else {
        appendEditLink();
    }
})();

function appendTrackBackContent(){
    var postId, match = $('#text-title').val().match(/anond:(\d{14})/);
    if (match.length>1){
        postId = match[1];
    } else {
        return;
    }
    jQuery.ajaxSetup({async:false});
    var content = '';
    $.get('http://anond.hatelabo.jp/' + postId, function(data){
        var section = $(data).find('.section');
        var title = $(section).children('h3').text().slice(1);
        $(section).children('p:not([class])').each(function(idx, val){
            content += $(val).text() + "<br/>";
        });
        content = '<hr><h4>' + title + '</h4><p><small>' + content + '</small></p>';
    });
    jQuery.ajaxSetup({async:true});
    $(content).insertAfter('.post-submit');
}

function appendEditLink () {
    var masudaId = $('#bannersub .username a').text();
    $('h3').each(function (idx, val){
        var postId = $(val).children(":first-child").attr("href").slice(1);
        $(val).append(' <a href="http://anond.hatelabo.jp/' + masudaId + '/edit?title=Re: [anond:' + postId + ':title]">\u2190</a>');
    });
}

タイトルに「anond:14桁の番号」があったらそっから引っ張ってきて画面下に表示する。

大なり小なりとかがエンコードされてるけど普通に表示する方法よくわからない。ちなみに直さないと使えない。

http://anond.hatelabo.jp/20070612084049

一部これの真似

2017-05-02

マストドンAPI

マストドンリポジトリ

ttps://github.com/tootsuite/mastodon

マストドンAPIリファレンスAPI実装済みのライブラリ(サードティ)の紹介

ttps://github.com/tootsuite/documentation/blob/master/Using-the-API/API.md

マストドンAPIに関するドキュメントが置いてあるディレクトリ(色々ある)

ttps://github.com/tootsuite/documentation/tree/master/Using-the-API

マストドンアプリ認証にdoorkeeperを使ってるので認証APIはこっちを参照する必要がある

ttps://github.com/doorkeeper-gem/doorkeeper/wiki

マストドンドキュメントで紹介されてるAPI実装済みのライブラリ(サードティ)を使うのが一番ってっとり早い

以上

=====

わざわざ自前でAPIを叩くコードを書く

step1

アプリマストドンサーバー登録する

ttps://github.com/tootsuite/documentation/blob/master/Using-the-API/API.md#apps

POST /api/v1/apps

必要データをPOSTするだけ、難しくない

アプリ登録をわざわざコーディングする場合ライブラリとして作って提供する場合くらい(?)

(アプリ複数インスタンス対応させる場合はやはりコード書くしかないけど)

(登録したIDを自前サーバーで持って同一アプリで共有するとか?)

別にhtmlフォーム作って送信するだけでも登録できる

(ローカルhtmlファイル作ってブラウザ表示して必要入力してsubmit送信するだけ簡単)

<form name="regsterapp" method="POST" action="http://SERVERNAME/api/v1/apps">

<input name="client_name" type="text" value="">

<input name="redirect_uris" type="text" value="urn:ietf:wg:oauth:2.0:oob">

<input name="scopes" type="text" value="read write follow">

<input name="website" type="text" value="">

<input type="submit"></form>

step2

ユーザに対してのアプリ認証

doorkeeperについて知る必要がある

ttps://github.com/tootsuite/documentation/blob/master/Using-the-API/Testing-with-cURL.md

このページに書いてあるgrant_type=password認証法ではread権限しか貰えないぽい

grant_type=authorization_codeで認証する必要がある、これ読めば早い

ttps://github.com/doorkeeper-gem/doorkeeper/wiki/Authorization-Code-Flow

GET /oauth/authorize

必要パラメータ(※1)つけたリンクアプリ認証したいユーザに踏んでもらい許可を押してもらった上でそこで表示されるコード(RETURNED_CODE)を使う必要がある

(自前サーバーなどでリダイレクトで受け取ることもできるけど)

その表示されたコード(RETURNED_CODE)を使って次のAPIを叩くと認証完了する(アクセストークンをゲットできる)

POST /oauth/token

これもただのPOSTになるのでそんなに難しくない

さっきのアプリ登録みたいにhtmlとかで簡易にもできるけどアプリ秘密キーを使うので公開はダメでしょうな

※1

ttp://SEVERNAME/oauth/authorize?client_id=YOUR_CLIENT_ID&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=code&scope=read+write+follow

scopeというパラメータで取得したい権限指定する必要がある

step3

認証終わってアクセストークンをゲットしたらもうAPI使えるので

ttps://github.com/tootsuite/documentation/blob/master/Using-the-API/Testing-with-cURL.md

これの2番目に書いてあるようにHTTPのヘッダに Authorization: Bearer ACCESS_TOKEN を加えてから

APIの叩けばよい

toot(トゥート)はAPIドキュメントではstatusという表現になってる

ttps://github.com/tootsuite/documentation/blob/master/Using-the-API/API.md#statuses

POST /api/v1/statuses

がtootするためのAPI

三木谷浩史さんのコードひどいのでなおしてみた

http://techwave.jp/archives/a-source-code-written-by-mr-mikitani.html

書き直してみた

void reverse(char* text, int length)

{

int i = 0;

int j = length;

while (i<j) {</p>

char temp;

temp = text[i];

text[i] = text[j];

text[j] = temp;

i++;

j--;

}

}

int add_comma(int n, int length, char *out)

{

int i = 1;

int j = 0;

int mod = n % 10;

n = n / 10;

while (n > 0) {

if ((i % 3) == 0) {

out[j] = ',';

j++;

}

out[j] = mod + '0';

i++;

j++;

mod = n % 10;

n = n / 10;

}

if (j > length) {

return -1;

}

out[j] = mod + '0';

reverse(out, j);

return j;

}

http://anond.hatelabo.jp/20170501041533

レスポンスヘッダー抜粋

Cache-Control:no-store, no-cache, must-revalidate

Connection:keep-alive

Content-Encoding:gzip

Content-Type:text/html; charset=UTF-8

Pragma:no-cache

Server:cloudflare-nginx

Set-Cookie:CAKEPHP=xxxx

X-Powered-By:PHP/7.0.18

2017-04-20

マストドン投稿するブックマークレット誰か作って

誰も作ってないか自作しようと思ったけど意外と難しそうだったからやめた。増田ときクエリパラメータ文字列いれるだけでできたが...

公式textareaにisset $_GET["text"] 的なことしてくれないと対応出来ないのではないのかしら。誰か作って

2017-04-08

http://anond.hatelabo.jp/20170408175015

低速SIM使ってるとよくわかる

はてぶは遅い

 

<script type="text/javascript" src="//cdn-ak.b.st-hatena.com/js/hatena_dfp2.js?a16f7e7ba419b41ff07e90f4ea9126097f2a6bff"></script>

<link type="text/css" rel="stylesheet" href="//cdn-ak.b.st-hatena.com/css/v3/base.css?296a8df6c20332fef25d920d21d9989b8d3d333b" />

<link type="text/css" rel="stylesheet" href="//cdn-ak.b.st-hatena.com/css/v3/contents.css?40116584c503ce16944f052eedd7c5fb006e4548" />

<link type="text/css" rel="stylesheet" href="//cdn.www.st-hatena.com/css/hatena/header.css" />

<script type="text/javascript" charset="utf-8" src="//s.hatena.ne.jp/js/HatenaStar.js"></script>

<script type="text/javascript" charset="utf-8" src="//cdn-ak.b.st-hatena.com/js/lib/underscore-min.1.4.4.js?3757bd6bf3d27b23919bd69c87259db857c6a30f"></script>

<script type="text/javascript" charset="utf-8" src="//cdn-ak.b.st-hatena.com/js/lib/micro-location.0.1.1.js?303f552c22e921272d44c4ebe7a31eb447a381d4"></script>

<script type="text/javascript" charset="utf-8" src="//cdn-ak.b.st-hatena.com/js/Hatena/Bookmark.js?2d608dd908733757bb0f7822a276ca83fe9d2090"></script>

<script type="text/javascript" charset="utf-8" src="//cdn.www.st-hatena.com/js/header.ja.js"></script>

<script type="text/javascript" charset="utf-8" src="//cdn-ak.b.st-hatena.com/js/v3/startup.js?debbb1bc004886d83e3724aa2f5e653238598e94"></script>

意味あんのか?これ

2017-03-21

<META name="GENERATOR" content="IBM WebSphere Homepage Builder V6.0.0 for Windows">

これを見るとお腹いっぱいになっちゃ

しか

<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">

とかな

2017-03-10

スパ!の幸福の科学広告女子スパ!の幸福の科学記事の連動性に「?」

最初きっかけは「何これ?」っていうハテナマークだったのよね。

「ああ、これは幸福の科学イタコ本の広告か」、

と気づいたときには「扶桑社も大変なのね」って悲しい気持ち

何がって、3月7日(火)に発売された週刊スパ!の後半カラーページに

幸福の科学星野源イタコ本の宣伝が丸々1ページのってたのよね。

夕刊ゲンダイなんかには以前からのってたけど

いまのこの時期に幸福の科学の本の広告をのせるってのは、

週刊誌編集部としては悩むと思うのよね。

それでも、のせたというのはすごく広告料が高かったと思うのよね。

ただまあ、本の広告をのせるくらいは仕方ない、まあいいじゃないと思うよね。

でもね、ヤフーニュースを見てたら、ヘンな記事を見つけたのよ。それが下の記事ね。

星野源前世でも恋ダンス?“幸福の科学カフェ”で芸能人前世を調べてみた」

http://zasshi.news.yahoo.co.jp/article?a=20170304-00668142-jspa-life

この記事は当然女子スパ!にものってるのよね。記事の公開日は両方とも3月4日(土)。

https://joshi-spa.jp/668142

魚拓

http://megalodon.jp/2017-0309-2116-55/https://joshi-spa.jp:443/668142

http://megalodon.jp/2017-0309-2125-50/https://joshi-spa.jp:443/668142?page=2

この記事、、、ちょっと自然じゃない?

スパ!のスタンスってもっとイジワルな視線とかがあってもおかしくないと思うのよ。

でもこの記事幸福の科学を笑うわけでもなく、銀座カフェを紹介して、最後には

「というわけで、潜入してみて感じたことは、「うん、なんだかいカフェかもしれない」ってことですね」

って書いて終わってるのよね。ぜんぜんスパっぽくないね

3月4日に女子スパ!に幸福の科学カフェ宣伝みたいな記事がのって、

それをヤフーニュースに流用して、

3月7日に週刊スパ!に幸福の科学イタコ本の広告がのる。

これって偶然なのかな? 

広告のせるのが決まってるのに、無断でカフェに潜入取材って

リスク大きすぎると思うのよね。雑誌やってる人ならわかるでしょ?

雑誌って、よくあるのよね。

スキャンダルがのる、ちょうどおなじ時期に広告がのる予定があると、

スキャンダルをのせる時期を少し遅くしたりするの。

それだからこの女子スパ!の記事おもしろおかしい内容にするなら公開する時期をずらせばいいんだよね。

でも、そんなことはせずに、淡々幸福の科学がやってるカフェを紹介してるのよ。

広告が乗る寸前のタイミングに、無断で潜入取材っていうリスクを背負ってまで。

それもおもしろおかしバカにするスタンスでもないのによ。

それでこの記事ライタークレジット表記が<TEXT女子SPA!編集部>なのよね。

見てみればわかるけど、女子スパ!の記事の多くはライター名前がのってるのに、

この幸福の科学記事編集部名前なのよ。

ライターを守るため? 別に幸福の科学バカにしてる記事でもないのに?

ヤフーニュースは一応調べたほうがいいと思うのよね。

前にもステマが取り沙汰されたことはあったけどあのときは何か売るくらいだったでしょ? 

だけど今回は宗教からね。これはメディアとして倫理的にすんごくヤバくない?

2017-02-07

英語読むのってこんなに簡単だったのか

javascript:var%20t=((window.getSelection&&window.getSelection())||(document.getSelection&&document.getSelection())||(document.selection&&document.selection.createRange&&document.selection.createRange().text));var%20e=(document.charset||document.characterSet);if(t!=''){location.href='http://translate.google.com/?text='+t+'&hl=ja&langpair=auto|ja&tbb=1&ie='+e;}else{location.href='http://translate.google.com/translate?u='+encodeURIComponent(location.href)+'&hl=ja&langpair=auto|ja&tbb=1&ie='+e;};

これをブックマークレットとして呼び出すだけで英語がスラスラ読める。

スゴイ。

あんな難しそうだった英文が実は「痩せたいけどご飯が美味しくてつい食べ過ぎちゃって困るの><」とかい女の子かわいい愚痴だったよ。

っていうか日本人日本語って頭に入ってきづらい。

変に感情が入ってきて。

2017-01-02

日本を動かしてるのは東京高学歴

知財高裁判例でも見てこい。東京高学歴もの凄さが分かるから

http://kanz.jp/hanrei/search/ip/

[知財] [民事] 平成28(ネ)10079 110ViewsMoreinfo

損害賠償請求控訴事件(不正競争民事訴訟)




平成28年12月21日

知的財産高等裁判所 詳細/PDF

HTML/TEXT

[知財] [民事] 平成28(ネ)10010 99ViewsMoreinfo

特許権侵害差止請求控訴事件(特許権民事訴訟/非磁性材粒子分散型強磁性スパタリンターゲット)




平成28年12月21日

知的財産高等裁判所 詳細/PDF

HTML/TEXT

[知財] 平成27(行ケ)10261 68Views

審決取消請求事件(特許権行政訴訟/非磁性材粒子分散型強磁性スパタリンターゲット) 平成28年12月21日

知的財産高等裁判所 詳細/PDF

HTML/TEXT

[知財] [民事] 平成28(ネ)10054 95ViewsMoreinfo

著作権侵害差止請求控訴事件(著作権民事訴訟)




平成28年12月21日

知的財産高等裁判所 詳細/PDF

HTML/TEXT

[知財] [民事] 平成28(ワ)11697 141ViewsMoreinfo

著作権侵害賠償請求事件(民事訴訟)




平成28年12月15日

東京地方裁判所 詳細/PDF

HTML/TEXT

[知財] [民事] 平成28(ネ)10060 123ViewsMoreinfo

損害賠償請求控訴事件(特許権民事訴訟)




平成28年12月14日

知的財産高等裁判所 詳細/PDF

HTML/TEXT

[知財] 平成28(行ケ)10074 97Views

審決取消請求事件(特許権行政訴訟/畦塗り機) 平成28年12月14日

知的財産高等裁判所 詳細/PDF

HTML/TEXT

[知財] [民事] 平成28(ネ)10068 68ViewsMoreinfo

損害賠償請求控訴事件(不正競争民事訴訟)




平成28年12月12日

知的財産高等裁判所 詳細/PDF

HTML/TEXT

[知財] [民事] 平成28(ネ)10067 105Views

楽曲演奏禁止請求控訴事件(著作権民事訴訟) 平成28年12月8日

知的財産高等裁判所 詳細/PDF

HTML/TEXT

[知財] 平成28(行ケ)10143 86Views

商標登録取消決定取消請求事件(商標権行政訴訟/縁の会) 平成28年12月8日

知的財産高等裁判所 詳細/PDF

HTML/TEXT

[知財] [民事] 平成28(ネ)10031 131ViewsMoreinfo

特許権侵害差止請求控訴事件(特許権民事訴訟/オキサリプラチン溶液組成物ならびにその製造方法及び使用)




平成28年12月8日

知的財産高等裁判所 詳細/PDF

HTML/TEXT

[知財] 平成27(行ケ)10255 95Views

審決取消請求事件(特許権行政訴訟/ケーシングの打設方法) 平成28年12月7日

知的財産高等裁判所 詳細/PDF

HTML/TEXT

[知財] 平成28(行ケ)10011 88Views

審決取消請求事件(特許権行政訴訟/掘削土飛散防止装置) 平成28年12月7日

知的財産高等裁判所 詳細/PDF

HTML/TEXT

[知財] [民事] 平成27(ワ)7051 133Views

不正競争行為差止請求事件(不正競争民事訴訟) 平成28年12月7日

東京地方裁判所 詳細/PDF

HTML/TEXT

[知財] [民事] 平成27(ワ)29158 90ViewsMoreinfo

特許権侵害差止請求事件(特許権民事訴訟/オキサリプラチン溶液組成物ならびにその製造方法及び使用)




平成28年12月7日

東京地方裁判所 詳細/PDF

HTML/TEXT

[知財] 平成27(行ケ)10150 80Views

審決取消請求事件(特許権行政訴訟/炭酸飲料) 平成28年12月6日

知的財産高等裁判所 詳細/PDF

HTML/TEXT

[知財] [民事] 平成27(ワ)29001 98ViewsMoreinfo

特許権侵害差止請求事件(特許権民事訴訟/オキサリプラチン溶液組成物ならびにその製造方法及び使用)




平成28年12月6日

東京地方裁判所 詳細/PDF

HTML/TEXT

[知財] [民事] 平成27(ワ)28699等 74ViewsMoreinfo

特許権侵害差止請求事件(特許権民事訴訟/オキサリプラチン溶液組成物ならびにその製造方法及び使用)




平成28年12月2日

東京地方裁判所 詳細/PDF

HTML/TEXT

[知財] [民事] 平成27(ワ)12415 90ViewsMoreinfo

特許権侵害差止請求事件(特許権民事訴訟/オキサリプラティヌムの医薬的に安定な製剤)




平成28年12月2日

東京地方裁判所 詳細/PDF

HTML/TEXT

[知財] [民事] 平成28(ネ)10066 136ViewsMoreinfo

契約金返還請求控訴事件(不正競争民事訴訟)




平成28年11月30日

知的財産高等裁判所 詳細/PDF

HTML/TEXT

2016-12-27

Sublime Text って

最近話題聞かないけどもう流行わっちゃった?

もう触らなくていい?

2016-11-13

スパムの消し方を教える

1.TampermonkeyまたはGreasemonkeyを導入する

Tampermonkey

https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo?hl=ja

Greasemonkey

https://addons.mozilla.org/de/firefox/addon/greasemonkey/


2.次のスクリプトを追加する

// ==UserScript==

// @name unvisualizer

// @namespace http://anond.hatelabo.jp/

// @description unvisualize section including specific word at Hatelabo::AnonymousDiary

// @include http://anond.hatelabo.jp/*

// @exclude http://anond.hatelabo.jp/hatena/*

// ==/UserScript==

(function() {

var target = document.evaluate(

"//div[@class='section' and descendant::*[contains(text(),'Troyes') or contains(text(),'fiorentina') or contains(text(),'genoa') or contains(text(),'forums.zoho') or contains(text(),'medhelp.zendesk') or contains(text(),'.co.uk/') or contains(text(),'elbertcountyrepublicans') or contains(text(),'purob.com') or contains(text(),'imvu.com') or contains(text(),'thelittleonescollection') or contains(text(),'nfyi.org') or contains(text(),'usa-fox-tv.kinja.com') or contains(text(),'livestream1.odiblogs.com') or contains(text(),'reddit.com') or contains(text(),'huffduffer.com') or contains(text(),'healthunlocked.com')or contains(text(),'surveymonkey.com')or contains(text(),'yakmari.kinja.com')or contains(text(),'putlockeronline') or contains(text(),'freefullmovies.website') or contains(text(),'change.org')or contains(text(),'nervefullmovie.com') or contains(text(),'navtv.co.za')or contains(text(),'Hrvatska')]]",

document,

null,

XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,

null);

for(var i=0; i<target.snapshotLength; i++) {</p>

target.snapshotItem(i).style.display = "none";

}

})();

// or contains(text(),'')


3.スパム投稿が表示されなくなる

ついでにこの記事も消える

NGワードは適宜追加してください

参考

http://anond.hatelabo.jp/20070517234726

2016-10-07

障害者を雇うことの責任とは

text.ssig33.com - 俺が糸柳和法に関して知ってること

ドワンゴ糸柳雇用した時点で、異常者であることが分かって採ったんだから、その辺ちゃんとケアすべきでしょ。ここで解雇したら「障害者障害理由にクビにする会社」ってイメージ持たれることになるよ。障害者を雇ったのだからそれは責任を果すべきだ。

はてなブックマーク - kawango のブックマーク - 2011年3月14日

今回の件で糸柳解雇するか/できるかは置いといて、障害者からといって企業いくら害をなされても面倒みなければいけないなんて主張を認めるなら、どんな企業障害者絶対に雇うべきじゃない。

2016-08-11

フィッシングメールが来た

vプリカを利用しているのだが、そのメールを騙ったフィッシングメールが来た。

弊社を装うEメールにご注意ください!

http://vpc.lifecard.co.jp/news/20160720.html

というやつ。

特徴は

対策は、リンクを踏まずにサイトへ行って、お知らせを確認する。

以上です。

2016-07-26

BouyomiLimeChat.jsを改造し、英語テキストを読み上げないように

目的

棒読みちゃんTipsにあるLimeChatスクリプト「BouyomiLimeChat.js」を改造し、英語テキストを読み上げないようにします。

参考 : 棒読みちゃん Tips

ここでは英語テキストとは「半角英数字記号(=アスキー文字)のみで構成されたテキスト」とします。

改造内容

40行目の「function talkChat(prefix, text) {」の次行に次のコードを挿入。

    if (text.match(/^[\x20-\x7E]+$/)) return;

以上です。

読み上げないテキストを増やす

同じような行を更に追加することで、読み上げないテキストの種類を増やせます

text.match(/この部分/)を書き換えることで、好きなテキスト無視できます。"この部分"は正規表現指定します。

次の例ではURLを含むテキストも読まないようにしています

    if (text.match(/^[\x20-\x7E]+$/)) return;
    if (text.match(/https?:/)) return;

LimeChat 2.40ユーザー向け

棒読みちゃんTipsの「●スクリプトを利用する方法」はLimeChat2.40だとそのまま使えないようです。2.40向けに書き直したものを以下に記載します。

1.スクリプトファイルダウンロードする

こちらのスクリプトダウンロードしてください。
ZIP形式ですので、展開してください。

2.ファイルを配置する

LimeChatメニューから「設定→スクリプトの設定」を開く。
「スクリプトフォルダを開く」ボタンを押す。
開いたフォルダに「BouyomiLimeChat.js」を置く。

3.LimeChat側でスクリプト有効にする

LimeChatメニューから「設定→スクリプトの設定」を開く。
スクリプトの設定画面で、「BouyomiLimeChat.js」の行を右クリックし、○を付ける。
スクリプトの設定画面の閉じるボタンを押す。

2016-07-25

gitにおけるコミットログ/メッセージ例文集100

私はコミットログの書き方に悩む英語の苦手な人間である。実際、似たような人は世の中に結構いるようで、頻出単語を集計したりまとめたものは既にあって役に立つのだけれど、これらはあくま単語の話であり、具体的な文を構成する過程でやっぱり困る部分がかなりあった。

要するに、どういう時にどういう文が使われているのか、ということを示した例文集が欲しいのであるググると他にも「例文集があればいいのに」みたいな声はあるくせして、しかし誰も作ろうとしない。何なんだお前ら。それじゃ私が楽できないじゃないか

仕方なく自分でまとめたので、増田に垂れ流しておく。

はじめに

ここで挙げているコミットログは全て実際のコミットログから転載である。当然ながら各コミットログ著作権はそれぞれの書き手にある。いずれも各英文でググれば出てくるし、フェアユース範囲なら許してくれるだろうと考え名前プロジェクト名は割愛したが、ここにお詫びと感謝を述べておきたい。

抽出条件だが、参考にできそうなコミットログを多く含んでいそうなリポジトリGitHubSTARの多い方からざっと目で見て適当に選び、それぞれ最新コミットから5000件抽出した(あわせて前処理として、コミットログ冒頭のタグ情報は消去した)。

結果として対象としたリポジトリは以下の通り。

atomのみ5400件抽出していたため、計25400件のコミットログベースである。このうち、以下の条件に合致するものは参考例にすべきでないとして一律排除した。

こうして残った8540件を眺めながら、適当に切り出したのがこの用例集である個人的に「うーんこの」と思った表現も、散見される場合は載せた。

ということで、以下用例を羅列していく。

用例集

オプションフラグメニューを追加した
ファイルを追加した
メソッド機能を追加した
実装を別のものへ切り替えた
  • Use args.resourcePath instead of args.devResourcePath
  • Use arrays instead of while loops
  • Use auto instead of repeating explicit class names
  • Use weak pointer instead of manual bookkeeping
  • Change all uses of 'CInt' to 'Int32' in the SDK overlay
  • Change Integer#year to return a Fixnum instead of a Float to improve consistency
新しく何かに対応した/機能上の制約を取り払った
何かを使うようにした
より好ましい実装に改良した
何かを出来ない/しないようにした
  • Don't bail reading a metadata instance if swift_isaMask isn't available
  • Don't exit until the parent asks for an instance
  • Don't include Parent pointer in Nominal/BoundGeneric TypeRef uniquing
  • Don't use MatchesExtension for matching filters
  • Don't use ES6 class for AutoUpdater windows class
  • Don't use MatchesExtension for matching filters
  • Avoid `distinct` if a subquery has already materialized
  • Avoid infinite recursion when bad values are passed to tz aware fields
オブジェクトの内容や挙動確認やすくした
Assertを追加した
不要コードを除去した
コードを移動した
名前修正した
さなバグタイポ修正した, 警告を潰した
バグや好ましくない挙動修正した
テストコメントドキュメントを追加した
テストを削除した
テストコメント修正した
ドキュメント修正した

表現傾向とまとめ

以上の用例をふまえ、今回の参考ログ8540件から先頭の単語を出現回数で並べると次のようになった。

Add1149
Fix1014
Update584
Remove566
Use382
Don't260
Make228
Move178
Change103
Rename85
Improve76
Avoid68
Allow65
Implement60
Handle58

コミットログの基本形はもちろん動詞 + 名詞である名詞固有名詞複数形、不可算名詞が多いが、単数形場合冠詞は a が使われるか、あるいは省略される。the はまず使われない。

何かを追加した、という表現では非常に広く Add が使われる。メソッドからテストドキュメントに至るまで大概これでまかなえる。

一方、何かを修正した、という表現では広く Fix が使われる。「何か」は typocrash といった単語からメソッド名まで幅広い名詞を取るが、動名詞はあまり取らないのと、that節は取らないのでその点は注意が必要である

Fix は「何かが正しく動くようにした」ことを示し、正しい動作内容が何かを説明しない。そこで正しい動作内容に言及したい場合Make sure が使われる(こちらはthat節が取れる)。ただし Fix よりもニュアンス的に重い表現と思われ、Fix を使わず Make sure ばかり使うのはちょっとキモいのではないかと思う(Ensure はさらに重い表現っぽい)。

また、Fixtypo 以外でのドキュメント修正に対して使われることは稀である。対して Update はドキュメントコメントテストに使われ、本体コード修正に対しては使われない。本体コード修正にあわせてテスト更新したなら Update が使われる。ただ、テスト機構それ自体バグ修正したなら Fix である

無駄な何かを単純に除去したなら Remove を使う。これまでのもの(A)からのもの(B)に切り替えたのであれば Use B instead of A か Change A to B が使われる。新たに何かを利用するようにしたのであれば Use を、利用を取りやめた場合Don't use を使うことが多い。

何かをしないようにしたなら Don't を、内部実装効率化なら Make A + 比較級/形容詞Improve が使われる。

中身の変更を伴わない単なる名前の変更なら Rename A to B、コード機能論理上の場所を移動させたなら Move A to B である

この辺はリファクタリングと呼ばれる行為と思うが、Refactor というぼんやりした動詞はあまり使われず、このように変更内容の種類に応じて動詞が使い分けられている。

余談

コミットログにはWhyを書くべきだ、というのを何かで見かけたので because とか since を使ったログがどの程度あるかを調べたが、8540件のうち22件だった。基本的に短く、シンプルに、一目で意味が取れるログが好まれる傾向がある。例えば get rid of とか2件しか使われておらず、圧倒的に remove である

一方で、シンプル単語だけど開始単語としては使われないものもある。例えば次のような単語である。Expand(9)、Extend(8)、Print(5)、Optimize(5)、Publish(4)、Append(4)、Modify(3)、Manage(2)、Revise(2)、Dump(2)、Insert(2)、Migrate(2)、Enhance(1)、Edit(1) 。いずれもカッコ内は8540件に対する冒頭での登場回数である。結局、より一般的平易な単語で表せたり、Refactor同様に抽象度が高すぎると使われないのだろう。

おわりに

8000件もログを見たおかげで、迷いなくコミットメッセージが思いつくようになったのが個人的には今回書いてて最大の収穫だった。たぶんカンニングペーパーを作る行為それ自体効率のいい学習になるという話と同じだと思う。

このまとめも100以上用例を転載してあるので、それを読むだけでも多少は効果があるんじゃないかと思う。同じようにコミットログ書きたくねぇなぁ英語わっかんねぇなぁと思っている人にとって、何か役に立つところがあれば幸いである。

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん