arachansan's diary

誰にも左右されず、硬派なBlogを書きます。

iPhone/iPadでPDFをMailDrop

巨大ファイルをメールで転送してしまうお話は後を絶たない。

MailDropならそんな巨大ファイルを難なく送ることができる。

今回はよく使うPDFファイルを中心にMailDropで送信する方法を伝えていきたい。

メールからの送信方法

送信側

  1. iOSのメールを立ち上げる

  2. メールを新規作成

  3. 件名に「maildropできるかな?」を入れる

  1. 本文を長押しすると項目が出てくる

  1. 項目の▶(みぎさんかく)を押していくと[添付ファイルを追加]が現れる。

  1. ファイルの添付を押すとiCloudDriveが登場する

  1. DropBoxの方に巨大ファイルがあるので、場所をクリック

  2. DropBoxを選択

  1. 巨大PDFファイルを選択

  1. メール本文に添付されます

  1. 宛先を入れる

  2. 送信ボタンを押す

  3. MailDropのボタンが現れるので、[MailDropを使用] を押す

  1. 送信終了

受信側

  1. Thunderbirdでみると図の通りになる。

  1. Click to Downloadを押す。

  2. ブラウザーが立ち上がりファイルがダウンロードされる。

特記事項

ファイルの場所が以下の場所から選べる。

au by KDDIiPad導入企業に勧めているKDDIファイルストレージには対応していないようだ。

iBooksに格納されているPDFはMailDropができない。

巨大サイズのPDFの場合はそもそもメールという項目が出現しない。

参考資料

plus.google.com

plus.google.com

iOSでMail Dropを使う方法

iOS 9.2が配信されました。

僕の目に留まったのは

"メール"のMail Dropで大きい添付ファイルを送信できます。

一般的なユーザーはメールに添付して送信することしか知りません。

メールで送れる容量なのかをチェックするようなことはできません。

彼らの受け皿になるのかもしれないと思い本格的に調べてみようと思いました。

iOSでMail Dropを使う方法は?

日本語ブログでiOSのMailDropを試したものはありませんでした。

英語でも現在のところ下記の記事のみでした。

下記の記事を参考に僕のiPhoneで試してみます。

www.iphonehacks.com

Mail Dropを試す方法

  1. f:id:arachansan:20151209110721p:plain:w30写真アプリから写真を20枚ぐらい選択しコピー
  2. f:id:arachansan:20151209111336p:plain:w30メールを起動
  3. f:id:arachansan:20151210083527p:plain:w30新規作成
  4. 本文部分を長押し
  5. [ペースト]を押す
  6. 図のように写真が本文に貼り付けられます。

center

  1. 送信ボタンを押します。

すると、下図のように画像を圧縮するかを聞いてきます。

[実際のサイズ]を押します。

  8. Mail DropのDialogが出現します。

 [Mail Dropを使用]を押します。

   

  1. 送信を押すとMail Dropを使った状態で送信される。

iCloudにアップロードしながら送信しているようですので、送信に少し時間が掛かります。    

MSYS2でOpen usp Tukubaiが動かなかったでござる

おぉ!待ってました。 Windows + MSYS2で心置きなくOpen usp Tukubaiが動かせそう。 と思いきや。

kunst1080.hatenablog.com

Open-usp-Tukubai 動かない。 MSYS2にインストールはできるのですが、 動きません。

Open-usp-TukubaiはPython2奨励なのに、 pacmanは勝手にpython3をインストールします。

そして勝手にPython3で実行しようとするので動きません。

環境

  • Windows 7 SP1 (x64)
  • MSYS2(x64)
  • update-coreにて最新版にアップデート済み (2015/11/19現在)

現象

くんすと氏のサイトのとおりにインストールを実行

$ pacman -U open-usp-tukubai-HEAD-1-any.pkg.tar.xz パッケージをロード...
依存関係を解決しています...
衝突するパッケージがないか確認しています...
パッケージ (2) python-3.4.3-2 open-usp-tukubai-HEAD-1
合計インストール容量: 75.21 MiB
インストールを行いますか? [Y/n] Y
...(省略)....

で試しにjoin0を実行してみると SyntaxErrorでまともに動いてくれません。

$ join0
File "/usr/bin/join0", line 217
print tline.getField(0)
^
SyntaxError: invalid syntax

対処方法

Python2で動かすようにすればいい。

幸か不幸かOpen-usp-TukubaiはPythonスクリプトなので、 先頭のスクリプト起動の指定を python から python2 に変更してみる。

まずはPython2をインストール

$ pacman -S python2

join0の先頭を python2に書き換え

$ head -n 1 join0
#!/usr/bin/env python

$ sed -i 's/python/python2' /usr/bin/join0

$ head -n 1 join0
#!/usr/bin/env python2

お試し実行

$ join0
Usage   : join0 [+ng<fd>] key=<n> <master> <tran>
Version : Fri Oct 21 11:26:06 JST 2011
          Open usp Tukubai (LINUX+FREEBSD/PYTHON2.4/UTF-8)

お、動いたけど…。 全てのOpenTukubaiコマンドにこれを実行しないと…。

シェル芸スタート

まずは、ls -lでタイムスタンプでも見てみる。

$ cd /usr/bin
$ ls -l | awk '$6~/10. * /' | awk '$7~/15. * /'
-rwxr-xr-x   1 yusuke None     3983 1015 19:58 calclock
-rwxr-xr-x   1 yusuke None     4735 1015 19:58 cgi-name
...(省略)...

2015年10月15日のファイルは全て Open usp Tukubaiのようだ。

findで絞り込んで xargsで渡す戦略でいく。

$ find -mtime 34
./calclock
./cgi-name
./check_attr_name
./check_need_name
./cjoin0
...(省略)...
$ find -mtime 34 -type f | xargs head -n 1
==> ./calclock <==
#!/usr/bin/env python

==> ./cgi-name <==
#!/usr/bin/env python

==> ./check_attr_name <==
#!/usr/bin/env python

==> ./check_need_name <==
#!/usr/bin/env python

==> ./cjoin0 <==
#!/usr/bin/env python

...(省略)

お、sedに食わせても大丈夫だな。

$ find -mtime 34 | xargs sed -i 's/python/python2/'

成功!

$ find -mtime 0 -type f | xargs head -n 1
==> ./calclock <==
#!/usr/bin/env python2

==> ./cgi-name <==
#!/usr/bin/env python2

...(省略)...
$ join2
Usage   : join2 [-d<string>] key=<n> <master> <tran>
Version : Wed Oct 26 03:01:58 JST 2011

終わりに

pacmanのパッケージを作ってくれた作者には、問題点を報告した。 Github Issueにも書くべきかな?

PrinterPortを追加するPowershell

はじめに

WMIOjbectのWin32_TcpIpPrinterPortを使えばprnport.vbsの場所を気にすることなく、ポートを作成できます。

ソースコード

Portを追加するPowershellです。

Add-Port.ps1

     $PortList=New-Object System.Management.ManagementClass("Win32_TcpIpPrinterPort")
     $Port=$PrinterList.CreateInstance()
     $Port.name=“192.168.0.200"  # Port名
     $Port.Protocol=1    
     $Port.HostAddress=“192.168.0.200” # PortのIPアドレス   
     $Port.PortNumber=“9100” # Port番号   
     $Port.SnmpEnabled=$true # SNMPをonにするかしないか  
     $Port.Put()  #  管理者権限でないと動かない 

Win32_TcpIpPrinterPortでPortを追加している。

$Port.nameにはポート名を追加している。

Windowsでは通常IPアドレスと同じになっている。

$Port.HostAddressにPortのIPアドレスを入れる。

$Port.PortNumberにはポート番号を入れる。

これを実行すればプリンターのポートを追加することができる。

この前にプリンタードライバーを追加しているので、

後はWin32_Printerでプリンターを追加すればプリンターが使えるようになる。

PrinterDriverを追加するPowershell

はじめに

プリンターをコマンドラインで追加するバッチは長らく、rundll32 printui.dll,PrintUIEntry を実行したり、prnport.vbsといったvbsを使ったものが主流であった。

私はこれらの設定方法はもう古いと思っている。

Powershellという武器を使えばWMIObjectを使ってプリンタードライバーをインストールできる。

PrintUIEntryを使ったバッチファイルよりもわかりやすい。

基本的なソース

プリンタードライバーのインストールをPowershellで書いた。

まずはソースを眺めてください。

次に説明を書きます。

add-prindriver.ps1

# 共有ドライブ Z:ドライブを作っておく
net use z: \\NAS\Driver password /user:root
 
$PrinterDriverList=New-Object System.Management.ManagementClass("Win32_PrinterDriver")
$PrinterDriver=$PrinterDriverList.CreateInstance()
# プリンタードライバー名
$PrinterDriver.Name="Canon LBP8720/8710 LIPSLX"
#  Windows x64か Windows NT x86か
$PrinterDriver.SupportedPlatform="Windows x64"
$PrinterDriver.Version="3"
# ドライバーのフォルダ
$PrinterDriver.DriverPath=”Z:\Printer_Driver\LIPSLX\x64\Driver"
# INFファイルのあるパス
$PrinterDriver.InfName=”Z:\Printer_Driver\LIPSLX\x64\Driver\CNLB0JA64.INF"
$PrinterDriverList.AddPrinterDriver($PrinterDriver)
# Putするのに管理者権限が必要
$PrinterDriverList.Put()

New-Object System.Management.ManagementClass("Win32_PrinterDriver") でPrinterDriverを追加するWMIObjectを呼び出している。

infファイルに書かれているプリンタードライバー名をNameに書く

SupportPlatformは64bit版OSであれば、Windows x64と書く。

DriverPathにはプリンタードライバーのフォルダーを指定する。

InfNameにはinfファイルがある場所をフルパスで書き込む。

これを実行すればPCにプリンタードライバーを追加できます。

ポートの追加は?プリンターの追加は?

上記のようにプリンタードライバーを追加した上で 下記のWMIObjectを使って追加します。

  • ポートの追加 -- Win32_TcpIpPrinterPort
  • プリンターの追加 -- Win32_Printer

追って説明します。

Powershellで遠隔操作

VNCの限界

会社には100台以上のPCがある。
プリンターの入替や社員へのPCサポートで遠隔操作する必要がある。

そこで数年掛かりでVNCを導入していった。
現在ほぼ全てのPCにUltraVNCを常駐させている。

社員へのPCサポートでは威力を発揮するのはいいのだが、
何か作業をする時に社員からPCの操作を奪う必要がある。
社員の PCの操作を奪わず に作業をしたい。

LinuxだとSSHで入って、

  • プロセスをkill
  • yumやapt-getを使ってソフトをインストール
  • CUPSを弄ってプリンターをインストール

なんてことができる。

社員のPCの操作を奪う必要もない。

そんなことがWindowsでできるだろうか?

PowershellはProcessをkillするのも難しくない。

Powershellで遠隔で繋ぎに行ければ、最強なんだけどな。

plus.google.com

Powershellで遠隔操作

Enable-PSRemotingが使えるもログインできない

Enable-PSRemotingという機能を使えば、 Powershellで遠隔ログインが可能になるようだ。

下記サイトには具体的にログイン方法まで書いてあったのだが、 パスワードなしのアカウントだらけなので、 こいつは使えない。

atamoco.boy.jp

パスワードなしでも接続できるようにする

パスワードなしでも接続できる方法が欲しい。

と検索をかけていると下記のサイトに方法を発見した。

Powershellレジストリーを下記のように弄った。

Set-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Control\Lsa -name LimitBlankPasswordUse -Value 0

パスワードなしのアカウントで Windows XP Professionalにリモートデスクトップ接続する - ブログ - ワルブリックス株式会社

Private networkとwork networkのみにする

それでも接続できない。

下記のネットワークだけにしておく必要がある。

  • 「 プライベートネットワーク (Private network)」
  • 「 社内ネットワーク (Work network)」

僕のクライアントにはVirtualBoxが作った「認識されないネットワーク」があったので

下記のサイトを参考に社内ネットワークに変更した。

  1. コントロールパネル」-「システムとセキュリティー」-「管理ツール」を開く
  2. ローカル セキュリティー ポリシー」を実行
  3. 左側のペインから「ネットワーク リスト マネージャー ポリシー」を選択
  4. 右側のネットワークの場所から「識別されていないネットワーク」を選択しダブルクリック
  5. 場所の種類「プライベート」・ユーザーアクセス許可「ユーザーは場所を変更できる」に変更
  6. OKボタンを押下した後、OSを再起動

blog.goo.ne.jp

接続成功

僕のPowershellのコンソール上から

Enter-PSSession -ComputerName IPアドレス

あれ?繋がらないな。

やっぱり、-Credentialが要るのかな?

PS >Enter-PSSession -ComputerName IPアドレス -Credential workgroup¥username

[IPアドレス]c:¥users¥username >

お、繋がった!

終わりに

Powershellで遠隔操作できるということは僕にとってはかなりのブレークスルーだった。

社内の100台近くのPCを一気に操作できるようになったからだ。

こうして更にPowershellにハマっていく。

黄色いおじさんは何故いい生活ができるの?

おさるのジョージ -- Curious George の黄色いおじさん、 何であんないい生活ができるんだ?

  • NewYorkのど真ん中のドアマン付の高級マンション
  • 郊外に別荘
  • 時々、海外旅行

年収1000万円以上の生活だと思う。

お稼ぎになっているかというとそうでもない。

彼の職業はワイズマン博士お付きの学芸員

日本では学芸員とか図書館司書とかという職業は比較的給料が安い。

比較的優遇されているというアメリカでもそんなにいい給料はもらえないと思う。

黄色いおじさんには、スコットランドにお城を持っている親戚がいる。

そこでピンと来た。

彼は稼ぐ必要も無い生まれながらのお金持ちなのではないかと。

実はスコットランド貴族で何かの拍子にアメリカに渡り、 アメリカで暮らしている。

貴族で膨大な資産、領土からの賃借料が上がってくるので糧を稼ぐ必要も、 ちまちま株で資産運用する必要も無い。

参考資料

NewYorkに住むにはいくら必要なのか?

www.cafeglobe.com 最低ラインは下記の通り 年収 1000万円以上 賃料月30万円

学芸員(Curator)の年収

www.payscale.com 平均年収 449,806$ 日本円だと 年収500-600万円ぐらい

うーん、NewYork住まいは難しいな。