积累日常生活的点滴,开发过程的心得。

ubuntu 18.04 安装windows 远程桌面服务

基本上网上的其他教程全是错误的。需要下载下面的脚本来安装xrdp才行。

http://c-nergy.be/blog/?p=12283

ubuntu18.04上安装tensorflow

网上CSDN的教程凡是让你装最新的CUDA9.1或者9.2的都是错误的,真是垃圾,害得我浪费了好多时间。因为默认的编译好的python 的tensorflow模块不支持9.1及以上,除非你自己编译tensorflow的python module。另外凡是让你用deb安装cuda也都是错的。nvidia的16.04和17.04的deb里面都自带了nvidia的driver,跟ubuntu 18.04完全不兼容,只能是用run文件来安装,并且禁止安装内置的driver才行。

1.首先用sudo ubuntu-drivers autoinstall 来安装,默认是装的的nvidia-390
2.然后下载CUDA 9.0的17.04的run安装文件,注意18.04上默认安装的gcc和g++是7.2的,需要安装6.0的版本,然后用alternative切换使用6.0版本的编译器。安装时要禁止安装内置的driver,否则会使ubuntu进入错误的状态,无法恢复,只能重装系统,我今天重装了5,6次ubuntu
3.安装cudnn 7.05 for linux的版本。
4.安装tensorflow-gpu,写一个小程序来确认安装是否正确。

注意tensorflow-gpu的安装包很大,下载的时候总是被墙搞中断。
用下面的命令加大超时设置安装好一些

安装Win10+Ubuntu18.04双系统在SSD+HD上

1.先安装Win10
2.windows上进入磁盘管理,压缩SSD和HD,留出80GSSD给Ubuntu,一半硬盘给Ubuntu
3.使用ultraiso制作一张ubuntu18.04启动usb
4.启动ubuntu后,进入分区部分,创建SSD的80G分区(ext4),Mount Point设置为/, 在硬盘上创建32G的交换分区给ubuntu,创建mount到/home的一半硬盘分区给ubuntu,将启动分区设置为windows boot manager
5.点击安装

重启后,默认会从win10启动,对于微星主板,可以点击F11键,从ubuntu启动。

要重新安装ubuntu,
方法1 从win10的磁盘管理删除ubuntu的分区,重新安装
方法2 ubuntu安装程序中选择erase and reinstall ubuntu也可以。但是要重新mount home

https://askubuntu.com/questions/20287/how-to-re-mount-a-different-partit...

防止Android下面的截图录屏软件

SharedActivity.getWindow.setFlags(TJWindowManager_LayoutParams.JavaClass.FLAG_SECURE, TJWindowManager_LayoutParams.JavaClass.FLAG_SECURE);

使用VBA在Excel中创建图表

最简单的做法是copy一个事先创建好的图表,然后粘贴后,修改Series的数据来源定义,注意Copy/Paste的时候最好是Sleep一下,否则会有异常抛出

Sub CreateChart()
Dim Sheet As Worksheet
Dim NewChart As ChartObject
Dim i As Integer
Dim j As Integer

Dim index As Integer
Dim A As Integer
Dim B As Integer
Dim R As String

Set Sheet = Excel.Sheets(2)
index = 0
For i = 1 To 5
Sheet.ChartObjects(1).Copy
Sheet.Activate
Sheet.Paste
Set NewChart = Sheet.ChartObjects(i + 1)

NewChart.Name = "Chart" + CStr(i)

NewChart.Top = Sheet.ChartObjects(1).Top + i * 400

使用荣联云通讯的接口发送语音通知

本来想用这个接口发送语音通知,结果需要注册为企业认证,并且最低消费5000元,于是放弃。

unit SoundCall;

interface
uses System.Threading, System.Generics.Collections, System.Classes, REST.Client, Data.DBXJSON, REST.Types, System.Json, IPPeerClient;

const
AccountSid='8b5514cc6710b0ba4cd0b9847f057f';
AccountToken='37d613889413f8asd39b34bd951ec09e';
AppId='8aaf0708635e4ce00asd1637b789f5f1191';//未上线

//Stopped.wav
function CallPhone(Number:string;Sound:string):Boolean;

implementation
uses System.SysUtils, System.Hash, System.NetEncoding;

function CallPhone(Number:string;Sound:string):Boolean;
var

使用boost.python和pybind11 创建Python3的64bit module

1.首先Boost.python默认的windows binary包都是针对python2.7的,要开发python3的库只能从源码重新编译
2.下载boost 1.62源代码, 解压缩后,执行bootstrap.bat
3.编辑user-config.jam,指定使用VS2015和python 3.6编译

# Configure specific msvc version (searched for in standard locations and PATH).
using msvc : 14.0 ;

using python : 3.6 : C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36 : C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36\\include : C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36\\libs ;

注意 user-config.jam要放到C:\Users\Administrator\目录下

VPS上安装Windows

http://www.laozuo.org/8929.html
上面的iso可以下载直接使用

注意VM上的Windows会自动休眠,导致时区设定总是错误,无法同步,需要禁用休眠的电源管理。

KVM默认没有声卡,要安装一个虚拟声卡的驱动
https://www.vb-audio.com/Cable/index.htm

UB

高度502600上难度降下来了,下一次调整是502800

智能插座评测

最近测试了几种智能插座

1.阿里智能插座,屎一样的功能,屎一样的价格。经常掉线,无法恢复,性能奇差,跟淘宝账户绑定,卖二手的时候卖家不解绑就不能用。

2.BroadLink的Sp Mini3,性能不错,轻松恢复在线,价格也比阿里智能便宜。缺点,电压高的时候会烧,我烧了6个插座

3.小米的智能插线板,可以显示功率,这个功能不错,但是远程遥控不能分别控制每个插座的开关。小米智能插座我没买,但是看介绍没看到测功率的部分,价格小贵。

同步内容