Skip to content

天楚锐齿

人工智能 云计算 大数据 物联网 IT 通信 嵌入式

天楚锐齿

  • 下载
  • 物联网
  • 云计算
  • 大数据
  • 人工智能
  • Linux&Android
  • 网络
  • 通信
  • 嵌入式
  • 杂七杂八

锐齿车音app,实现开车时语音识别和语音交互操作手机的功能

2018-06-20

该应用图标如下:   大家开车时经常要使用手机,手机的操作就很不方便,这个应用专门用来解决该问题,提供语音操作 …

继续阅读

腾讯云主机默认配置下/run分区空间占满的问题

2018-03-15

现象: 1. 登录很慢; 2. 有些命令会提示/var/run/或者/run/空间不足 # yum searc …

继续阅读

车机技术之基于ASR的麦克风阵列

2018-03-15

概述 我们之前介绍过语音识别技术(ASR),随着ASR的逐步成熟,麦克风阵列也逐步得到重用。尤其在汽车里,空间 …

继续阅读

PPT定律

2018-03-15

所谓PPT定律,就是指越花哨漂亮的ppt,越没有内容,越不值得一看。

扩展:

企业网站越花哨的公司技术越不行。

文章标题越夸张内容越不值得一读。

文章越是到处加重、加粗、各种五颜六色越是没啥内涵,都是口号式的。

网页越是使用大图片大动画越是不值得花时间等加载完,内容大部分可概括为一句话。

 

利用axure进行响应式自适应网站的设计

2018-03-15

        在axure 8发布以后,可以利用几项技术(axure自动生成自适应html、前后端分离、响应式网站设计、restful接口、json或xml等)进一步简化网站的开发,该设计模式的主要流程如下:

1. 产品经理利用axure设计原型。

2. 原型讨论定型后由UI人员设计图标,更新到axure原型中。

3. 由axure生成自适应的响应式网站设计的html文件。

参考:http://www.woshipm.com/rp/696039.html

注意:axure发布项目生成html时,在左侧的“移动设备”这个设置页,需要勾选“包含视口标签”,不勾选“禁止页面垂直滚动”,宽度设置为“device-width”,高度留空不设置,初始缩放倍数绝对不能设置,最小缩放倍数设置为“0.1”,最大缩放倍数设置为10,允许用户缩放留空不设置,ios部分可以不理默认即可。另外需要axure 8以上版本才能普遍适配手机屏幕。

 

4a. 前端开发人员全盘使用上面生成的html文件、资源文件、axure的js文件,在各个页面上以前后端分离方式添加业务逻辑的实现(比如在html中加入jquery的ajax,和后端交互数据)。

4b. 后端开发人员设计和实现业务逻辑和前后端接口(4b可以和3、4a步骤同步进行),比如前后端使用restful的json封装作为前后端接口的数据交互。

5. 单元测试、集成测试、灰度测试,bug修复,发布上线。

该模式问题: 一旦axure原型有修改,前端怎么能更快适配该修改(现在是文件比较方式,类似git的merge)。

 

用java语言在IPV6下的socket通信编程

2018-03-15

在java下,如果使用主机名或者dns解析来进行ipv6的socket通信编程,代码和在ipv4下一样。

客户端:

import java.net.*;

import java.io.*;

void client(String name) {

Socket s = new Socket(name, 8080);

InputStream in = s.getInputStream();

//…

in.close();

}

服务端:

ServerSocket server =new ServerSocket(port);

Socket s;

while (true) {

s = server.accept();

doClientStuff(s);

}

配置:

启动jvm时,通过带参数来设置优先使用ipv4还是ipv6地址:

-Djava.net.preferIPv4Stack=true

-Djava.net.preferIPv6Addresses=true

如果要直接使用具体的ipv6地址,则需要使用InetAddress和Inet6Address来判断和设置:

InetAddress a = InetAddress.getByName(“www.sun.com”);

/* InetAddress a = InetAddress.getByName(“2002:fe76:6523::1”); */

/* InetAddress a = InetAddress.getByName(“211.45.65.2”); */

if (a instanceof Inet6Address) {

Inet6Address a2 = (Inet6Address) a;

if (a2.isIPv4CompatibleAddress()) {

…

}

if (a2.isLinkLocalAddress()) {

…

}

}

 

用c/c++语言在IPv6下的socket通信编程

2018-03-15

下面为Daytime这个服务的源代码例子,同时兼容IPV6和IPV4的地址,最后部分有更多说明。 单播模式下的 …

继续阅读

在Windows上使用Teredo隧道上IPV6网站

2018-03-15

使能(使用微软默认的teredo服务器): C:\> netsh interface teredo se …

继续阅读

IPv6地址格式、ICMPv6、邻居发现NDP、DHCPv6、SLAAC、Path-MTU(PMTU)

2018-03-15

IPv6地址 IPv6地址的表示方法 IPv6地址总长度为128比特,通常分为8组,每组为4个十六进制数的形式 …

继续阅读

车机技术之乘用车轮胎气压监测系统的性能要求和试验方法

2018-03-15

1 范围  本标准规定了乘用车轮胎气压监测系统的性能要求和试验方法。 本标准适用于安装有轮胎气压监测系统的M1 …

继续阅读

车机技术之MIPI接口标准

2018-03-15

MIPI标准概述 对于现代的智能手机来说,其内部要塞入太多各种不同接口的设备,给手机的设计和元器件选择带来很大 …

继续阅读

房卡棋牌游戏为啥这么火,游戏和微商式的结合为变相赌博护法

2018-03-15

概述 据《2017年手机棋牌游戏研究报告》的数据显示,2016年手机棋牌游戏的市场规模达到28亿元,而棋牌游戏 …

继续阅读

车机技术之车牌识别技术(LPR)

2018-03-15

车辆牌照识别(License Plate Recognition,LPR)技术作为交通管理自动化的重要手段和车 …

继续阅读

车机技术之360°全景影像(环视)系统

2018-03-15

概述

360度全景系统提供给驾驶员一个新的、以前无法获得的车辆视角,通常是使用4个摄像头和一个ECU,在一些复杂情况下,这些视角对驾驶员非常有用,例如高速公路上变道时的盲点探测,从平行的停车位中把车辆安全的移出。 360度全景系统依靠4枚大于180°水平视野的鱼眼摄像头来探测车辆周围的情况,综合利用这4个摄像头能够建立起车辆周围任何视角的影像。

360环视系统,系统同时采集车辆四周的影像,经过图像处理单元一系列的智能算法处理,最终形成一幅车辆四周的全景俯视图显示在屏幕上,直观地呈现出车辆所处的位置和周边情况。

全景系统最终可实现智能、主动全景系统,它包含四个摄像头–车头,车尾,车外后视镜–它不仅能够监控车辆周围的情况,也能识别行人,警告驾驶员,甚至在危急情况下刹停车辆,所以特别适合城市驾驶,可以尽早的识别附近的行人。还可以探测穿过本车行驶轨迹的其他车辆,实现车道保持,甚至识别路沿石。

 

系统构成

系统构成图如下图所示,简化的有用2个摄像头的(一般效果不好),复杂可有用6个甚至8个摄像头的。

 

显示原理示意图:

 

实际效果

早期的有缝拼接效果

四个摄像头的广角在150度到180度之间,对拍摄的图像进行处理和显示,不是像分频显示那样简单地将图像叠加起来,而是将图像处理后,中间是车子,将图像放在周边,很直观。但是有一个缺点,由于技术的问题,四个图像拼接的地方,就是四个对角线上,无法进行全面平滑的处理,因此在四个图像的拼接处有明显的四条线。

 

当前的无缝拼接效果

在其基础上进行优化,利用的也是四个广角摄像头,广角在170度到180度之间,对采集的图象进行畸变还原和完美无缝拼接,也就是说没有了拼接线,就象卫星的航拍图一样,高空俯视下来,车的周围真正没有盲区,连车在里面,展示一个完美的整体景象。

 

将来的3D全景效果

相较上面2D的产品形态,这种3D全景倒车系统从VR的发展上得到了灵感,不仅带来新的视角体验,更重要的是提升了安全性。在视距上,也从传统的3m扩大至无穷远,能更好地确保车主泊车和在复杂路况下行驶安全。

 

环视系统发展趋势

(一)、扩展功能的发展前景

1、行车记录(本机存储)

2、实时监控和网络传输并存储

3、触发报警和移动监控

4、远程遥控监视

(二)、应用延伸功能的发展前景(智能化应用)

1、障碍物识别

2、障碍物测距

3、行驶报警

4、主动规避

5、智能驾驶

6、无人驾驶

车机技术之车规级Linux-Automotive Grade Linux(AGL)

2018-03-15

简介 Automotive Grade Linux(AGL)是一个开源操作系统项目,基于Linux内核基础,汽 …

继续阅读

车机技术之Android Automotive

2018-03-15

借助各种总线拓扑,很多汽车子系统都可以实现互连以及与车载信息娱乐 (IVI) 系统的连接。根据制造商不同,所提 …

继续阅读

汕尾海边玩记

2018-03-15

      深圳、惠州的海边人都太多,只好跑远一点去踩点,把汕尾兜了个圈,感觉有些海边不错,没有商业开发,问题 …

继续阅读

阳江海边玩记

2018-03-15

        阳江的海边还是不错的,上下川岛的照片找不到,先不放上来了。 海陵岛: 沙扒湾: 上洋镇白沙村边 …

继续阅读

车机技术之OBD(在线诊断系统)

2018-03-15

OBD是一种装置于车中用以监控车辆运行状态和回报异常的系统,可于车辆的子系统出现问题时,产生故障代码和提醒讯号 …

继续阅读

车机技术之CAN、CAN-bus

2018-03-15

CAN是车载控制局域网(Controller Area Network)的缩写,是ISO国际标准化的串行通信协 …

继续阅读

车机技术之胎压监测系统TPMS

2018-03-15

TPMS是汽车轮胎压力实时监视系统”Tire Pressure Monitoring System”的英文缩写,主要用于在汽车行驶时实时的对轮胎气压进行自动监测,对轮胎漏气和低气压进行报警,以保障行车安全,是驾车者、乘车人的生命安全保障预警系统。

TPMS的重要性

在所有的交通事故中,因轮胎爆胎引发的交通事故占20%;而根据统计,高速公路46%的交通事故是由于轮胎发生故障引起的,其中爆胎一项就占事故总量的70%;而时速超过160km/h的情况下发生爆胎,死亡率是100%,因此,轮胎安全是必须被重视起来。

因为轮胎压力而导致的爆胎主要分为两种:

胎压不足: 在胎压不足的情况下,轮胎与地面接触的部分会由于车身自重而受到挤压,导致轮胎侧壁发生变形,而转到离开与地面接触的位置时,会因为胎内气压发生变化而重新被拉伸。轮胎转动的时候,整个轮胎侧壁都在随转动不停的重复挤压、拉伸的过程,很容易发生爆胎。

胎压过高: 当胎压过高时,会减小轮胎与地面的接触面积,而此时轮胎所承受的压力相对提高,轮胎的抓地力会受到影响。另外,当车辆经过沟坎或颠簸路面时,轮胎内没有足够空间吸收震动,除了影响行驶的稳定性和乘坐舒适性外,还会造成对悬挂系统的冲击力度加大,由此也会带来危害。同时,在高温时爆胎的隐患也会相应的增加。

TPMS原理

当前的轮胎压力监测系统主要分为三种类型,下面逐一介绍:

1. 直接式(Pressure-Sensor Based TPMS,简称PSB)

利用直接安装在每个轮胎里测量轮胎压力和温度模块,将测量得到的信号调制后通过高频无线电波(RF)发射出去。一辆轿车或面包车TPMS系统有4个或5个(包括备用胎)TPMS监测模块,一辆卡车有8~36个TPMS监测模块。中央监视器接收TPMS监测模块发射的信号,将各个轮胎的压力和温度数据显示在屏幕上,供驾驶者参考。如果轮胎的压力或温度出现异常,中央监视器根据异常情况,发出报警信号,提醒驾驶者采取必要的措施。

轮胎压力监测模块由五个部分组成:

具有压力、温度、加速度、电压检测和后信号处理ASIC芯片组合的智能传感器MCM。

8-16位单片机(MCU)。

RF射频发射芯片。

锂亚电池。

天线,外壳选用高强度ABS塑料。

所有器件、材料都要满足-40℃ ~ +125℃的使用温度范围。轮胎压力监测模块做成的TPMS发射器分成车胎内内置和车胎外外置两种。TPMS智能传感器是整合了硅显微机械加工(MEMS)技术制作的压力传感器、温度传感器、加速度计、电池电压检测、内部时钟和一个包含模数转换器(ADC)、取样/保持(S/H)、SPI口、校准(Calibration)、数据管理(Data)、ID码的数字信号处理ASIC单元或MCU的SoC,模块具有掩膜可编程性,即可以利用客户专用软件进行配置。它是由MEMS传感器和ASIC/MCU电路二块芯片,用集成电路工艺做在一个封装里的。

2. 间接式(Wheel-Speed Based TPMS,简称WSB)

间接式胎压监测的工作原理是:当某个轮胎的气压降低时,车辆的重量会使该轮的滚动半径将变小,导致其转速比其他车轮快,这样就可以通过比较轮胎之间的转速差,达到监视胎压的目的。间接式轮胎报警系统实际上是依靠计算轮胎滚动半径来对气压进行监测。 间接式胎压监测装置成本要比直接式低的多,它实际上是利用汽车ABS刹车系统上的速度传感器来比较四只轮胎的转动次数,如果其中一只轮胎胎压较低,这只轮胎的转动次数会和其它轮胎不同,如此采用ABS系统同样的传感器和感测信号,只要车内计算机在软件上作调整,便可以在行车计算机建立新功能,警告驾驶人一只轮胎和其它三只相比胎压较低的信息。当然,带来的缺点也是很明显的,需要校准、需要路面平整不打滑、高速转弯不准、所有轮胎同时减压监测不到等等。

3. 复合式

它兼有上述两个系统的优点,它在两个互相成对角的轮胎内装备直接传感器,并装备一个4轮间接系统。与全部使用直接系统相比,这种复合式系统可以降低本钱,克服间接系统不能检测出多个轮胎同时出现气压过低的缺点。但是,它仍然不能像直接系统那样提供所有4个轮胎内实际压力的实时数据。

TPMS主要作用

预防事故发生: 胎压监测系统属于主动安全设备的一种,它可以在轮胎出现危险征兆时及时报警,提醒驾驶员采取相应措施,从而避免了严重事故的发生。

延长轮胎使用寿命: 有了胎压监测系统,我们就可以随时让轮胎都保持在规定的压力、温度范围内工作,从而减少车胎的损毁,延长轮胎使用寿命。有资料显示在轮胎气压不足时行驶,当车轮气压比正常值下降10% ,轮胎寿命就减少15%

使行车更为经济: 当轮胎内的气压过低时,就会增大轮胎与地面的接触面积,从而增大摩擦阻力,当轮胎气压低于标准气压值30% ,油耗将上升10% 。

可减少悬架系统的磨损: 轮胎内气压过足时,就会导致轮胎本身减震效果减低,从而增加车辆减震系统的负担,长期使用对发动机底盘及悬挂系统都将造成很大的伤害;如果轮胎气压不均匀,还容易造成刹车跑偏,从而增加悬挂系统的磨损。

总结

TPMS现在还属于比较高端的产品,离大众化和普及化还有很长的时间。在高度重视汽车安全性的未来,轮胎压力监测系统早晚会成为所有汽车上的标准配置,就像ABS从出现到普及一样,需要一个过程,而在标配前,可以通过目前车机支持方式体验胎压监测的好处。

当然现在的轮胎压力监测系统还是存在着不少需要完善改进的地方。对于间接系统来说,同轴或2个以上轮胎缺气的情况无法显示;车速100 km/h以上时监测可能失效。而对于直接系统,无线信号传输的稳定性和可靠性、传感器的使用寿命、报警提示的准确性(有无误报、错报)以及传感器的耐压性等都是亟待提高的,期待的是国内已经有相关部门准备对胎压监测系统制定行业标准。

车机技术之HUD(平视显示、抬头显示)

2018-03-15

HUD(Head-up Display)是普遍运用在飞机上的飞行辅助仪器。抬头或平视的意思是指飞行员不需要低头 …

继续阅读

车机技术之手机车机互联MirrorLink、Miracast

2018-03-15

MirrorLink

MirrorLink由车联网联盟(Car-Connectivity-Consortium,CCC联盟)在2011年9月份正式规范命名的(此前叫做Terminal Mode), 其目的在通过跨产业合作打造无缝隙的车内通讯环境,让智能手机、平板电脑、电子书等各式移动终端都能通过该标准,便捷而且迅速地与车载信息娱乐系统互联使用,为使用者提供最简单而直接的体验。

MirrorLink包括用户移动设备(ML服务器)和车载系统(ML客户端),还有应用程序(ML APP)。在MirrorLink运行的环境下,移动设备上的程序和服务将会被复制到汽车环境,界面和音频也将同步到车载系统,并通过车载屏幕和音响显示和播放,同时,车载触摸屏、按键、麦克风也可以通过触控或音控去访问移动设备上的这些程序和服务。

MirrorLink除了ccc定义的鉴权部分,没有新的底层技术和标准,只是结合了多种现有技术(Virtual Network Computing (VNC,核心协议),IP,USB,Wi-Fi,Bluetooth HFP/A2DP,Real-Time Protocol (RTP),Universal Plug and Play (UPnP),NFC等)来满足各种可能的车内使用情境, 包括以虚拟网络运算进行画面显示与用户指令输入、通过通用随即随插寻找对应的设备与完成正确的设定配置, 运用蓝牙和实时传输协议执行声音串流等。

象百度CarLife就使用了mirrorlink作为底层框架,Android Auto和苹果CarPlay的功能也类似(因为两者采用半开放和不开放方式,底层使用了哪些协议未知)。

MirrorLink整体架构如下图所示:

MirrorLink的协议栈

连接协议,包含以IP为基础的有线(USB)或者无线(Wifi或蓝牙)甚至NFC的面向连接的服务和无连接的服务,用于传输数据和音频。以及专用的蓝牙连接方案用于传输电话音频和应用音频。

UPnP的服务协议,主要为ML服务器和客 户端之间提供广播机制, 通知ML客户端此时服务器上的应用程序列表,并对它们进行操作(开启、终 止、报告它们的状态等)。

VNC协议,复制ML服务器的显示内容到ML客户端,并将MK客户端的控制信息反馈给ML服务器。包含RFB(远程帧缓存)协议和控制事件 的传输, RFB协议是基于TCP/IP或UDP/IP协议的基础之上的,用于传输帧缓存内的数据,并提供压缩 技术。

传输音频的协议,主要有RTP协议,蓝牙的HFP和A2DP,主要用于移动设备的电话和应用程序的音频传输。

安全机制协议,用于MirrorLink的认证和保密。

MirrorLink的版本当前已发布到1.2,新的版本还在讨论中,整个协议栈如下图所示:

Miracast

Miracast作为DLNA、Airplay更简化和显示升级的新技术,更高的传输速率和更好的匹配也完全可能替代MirrorLink(缺点是只能单向控制,需要增加其他手段实现双方控制)。

Miracast基于WiFi联盟的WiFi-Direct协议(两个wifi设备可以直接进行连接,无须经过AP),发送者叫Source方,接收者叫Sink方,连接方式如下图所示:

Miracast底层为WiFi驱动,上面带IP、UDP、RTP协议,再上面为H264 TS码流(未来不排除采用H265这个更高效的码流协议),下图为NVidia公司的Miracast实现协议栈:

总结

MirrorLink和Micacast家族到底哪种方式会占主流,让我们拭目以待。当然随着带3G、4G、5G通信协议的车机崛起,也许MirrorLink和Micacast在车机上都会退出历史舞台。不过现在仍有了解他们的必要。

车机技术之ADAS(先进驾驶辅助系统)

2018-03-15

在介绍ADAS之前,我们先来看看自动驾驶的级别,如下图所示: 当前一般说的ADAS就是指的L1,有些车上也实现 …

继续阅读

车机技术之ASR(语音识别)

2018-03-15

车机从WinCE逐步进化到Android,从不能通讯到带4G通讯,随之带来了一系列的新技术的应用。今天就来介绍 …

继续阅读

国民党铁面御史 何汉文

2018-03-15
  湖南省宁乡县沙田乡长冲村白牛冲,在上世纪20年代,一位名叫何汉文的青年,走出国门赴莫斯科中山大学留学。在共产国际和布尔什维克思潮影响下,与同班同学蒋经国结为拜把兄弟,遐想、谋划中国的未来。回国后,他任国民政府监察院委员兼任江南九省巡视总督。他对当局腐败疾恶如仇,严惩贪官,有“铁面御史”之称。在湖南和平解放后,任省人民政府参事、省政协常委,晚年从事文史资料和历史研究,成为著名的历史学家。
 何汉文(资料图片)

11月10日,“宁乡名人故里行”采访组在沙田水管站站长姜利剑的带领下,走访了沙田乡长冲村白牛冲何汉文故里。

  铁肩担重任

在长冲村白蚁冲一座陡峭的山坡上,立着一间年代久远、墙壁开裂的土砖屋。今年77岁的何桃清,是何汉文的堂叔,他指着那饱经岁月风雨、破烂不堪的土砖房子说:“当年,何汉文就出生在这里!”我们望着那在初冬的寒风中有些摇摇欲坠的房子,难以想象在一百多年前,在这样闭塞、艰苦的环境里,会走出那么一位享誉全国、青史留名的人物。

何汉文堂叔何桃清和堂婶

何桃清说他还是在1953年的时候见过何汉文,但何汉文的两个儿子何金处、何金本在上世纪80年代曾经回老家来看望过。何桃清向我们讲述了他所知道的何汉文的事迹。

1904年,何汉文出生于沙田乡长冲村,父母都是老老实实的种田人,但从小重视对孩子的教育。何汉文6岁入学堂,在家乡读了九年私塾,从小天资聪慧的他对古诗古词很感兴趣。1919年,考入县云山高等小学,1922年考入省第一师范。受五四新文化运动的影响,开始吸收新思潮。1925年秋,在第一师范加入国民党。1926年秋,由国民党湖南省党部选送入苏联莫斯科中山大学学习。1927年夏,国共两党分裂,中苏两国断交,莫斯科中山大学的全部国民党籍学员被遣返。何汉文也于同年底转道日本回国。

1928年10月,由于中山大学同学王陆一引荐,何汉文认识了当时国民党中央常委于右任,并在于右任的安排下,到南京国民党中央党部训练部的党员训练课任总干事,主要负责国民党员训练计划和编订训练教材。

1931年12月后,国民党中央训练部先后改为民众运动指导委员会和社会部,何汉文分别任编审科主任、编审处长。1938年初,陈立夫任社会部长,何汉文被调任专门委员的闲职,不久便离开国民党中央党部。其间除短期兼任过国民党中央军校政治教官以外,前后在国民党中央党部工作了九年。这一时期,何汉文利用工作的空余时间,除编写出《国民党党员训练大纲》以外,还致力于社会历史的研究,有《中国国民经济概况》、《中俄外交史》、《俄国史》等著作出版问世。

1938年6月,何汉文在于右任等人的帮助下,进入国民政府监察院担任监察委员。1940年8月,他被指派担任监察院战区第一巡察团委员,历经江南九省200多个县,纠办地方贪污腐败的官吏,清理各县积案、错案,使监狱中一些无辜者得以释放,开始享有“铁面御史”之美誉。

1946年3月,国民党政府实施黄金买卖政策,希望借此平抑物价,回笼法币。因为抗战胜利后,人民已经饱受八年抗战之苦,谁知蒋介石又发动内战,弄得百业凋敝,法币贬值,物价狂涨。面对如此时局,正在南京准备召开“国大”的蒋介石责成行政院院长宋子文,拿出办法来“立刻解决”。宋子文说:“为今之计,只有抛售中央银行库存黄金这个办法。只要黄金一上市,法币就会大量回笼,物价自然下跌。”该方案经蒋介石同意后,立即紧锣密鼓进行。但出乎他们意料的是,顷刻之间抢购黄金风潮铺天盖地而起,贪得无厌的“金牛党”应运而生,不久即酿成黄金抢购的风潮。尤其是“金牛党”头目詹莲生当上金号业公会主席后,又担任金号同丰余经理,便成天跑中央银行业务局长林凤苞、副局长杨明仁的公馆,相互勾结,主宰市场,谋取暴利。1947年,仅上海金号业公会和银楼业公会的成员,在数月之间,就吞掉国民党中央银行库存的黄金800余万两,制造了国民政府最大的金融案。其中詹莲生一个月内到手的黄金就达40多万两,前后吞进的黄金达120万两左右。如此一来,急速加剧了民众恐慌和国民经济极度紊乱。

宋子文对此黔驴技穷,只好于1947年2月16日炮制出一个“经济紧急措施方案”,宣布停止一切黄金买卖,要求存有黄金者立即到中央银行按1946年价格换回法币,违反者一经查出将依法治罪。政府抛售黄金给商民,半年后又强制从商民手中把黄金掠夺回来,这一掠夺政策出台之后,军警宪特闻风而动,把持有黄金者赶得鸡飞狗跳。同年3月,上海淞沪警备司令宣铁吾首先扛起“打金牛党”的大旗,成立经济监察团,发动上海军警宪特连夜出动,把守车站码头,大肆进行搜捕。据宣铁吾事后向国民党监察院的报告记述:该经监团经3天3夜的突击,把1600多家商店,400多家工厂,1200多个行商,800多个庄号,200多家妓院作了彻底搜查,共查获没收黄金20余万两,美钞120多万元,还有价值在三四百亿以上的棉纱百货。

由于搜查民间黄金油水巨大,使得国民党方方面面都想借机插手。继上海淞沪警备司令宣铁吾行动之后出马的,是军统二号大头目、国防部二厅厅长郑介民。1947年4月,郑介民带领一个检查团到上海,为了不与宣铁吾的经监团发生冲突,他先向宣铁吾打招呼,来了个君子协定:“你管民,我管军,大家井水不犯河水。”因为郑介民从情报中得知,在这次黄金风潮中,军方抢购的黄金数量大,油水多,还不像民间那么零零散散。于是郑介民来到上海后,毫不掩饰地向他的部属说:“军队会挤金老虎的脖子,我们就以其道还治其人之身,挤他们的脖子。”为了给3个军需处长和自己捞油水留余地,他写了3封私函给3个军需处长,要他们立刻到上海对簿公堂。3个军需处长得到郑介民的私函,知道这是要脑袋搬家的事,顿时吓得魂飞魄散。继而一想,郑介民没有用国防部二厅的命令,用的是私函,这就表示可以私了,只不过是讲价钱的问题。因此,经过与郑介民周旋,最终把到手的黄金进行分账,落个皆大欢喜,不了了之。

宋子文所采取的抛售黄金政策,在全国造成了种种不良后果,不但引起人民的强烈不满、舆论界也一片哗然。并且,在国民党各派系之间,掀起了不小的反宋浪潮。人们认为,宣铁吾和郑介民的两个检查团,只不过拍了几个金苍蝇,打击了一些无辜者,不仅没有触及宋系上层,就连像名声很大的詹莲生这样的大老虎连名都没点过,这不能不令各派系大失所望。政学系、CC系和黄埔系把目光投向监察院。不谙内情的舆论界,由于国民政府五大院中的监察院平时少有劣迹,有些清誉,便不断在报刊上呼吁:请铁面御史出朝打大老虎。在这种情况下,监察院长于右任便派出精明干练的何汉文、谷风翔、张灿和张庆桢四个监察委员,赴上海办理黄金案,打击大老虎。

  智斗“金牛党”

何汉文等4名监委出马之后,舆论界便大捧特捧,政学系、CC系和黄埔系呐喊助威。上海报纸说,当时是“御史出朝,地动山摇”。何汉文等人到上海,先从主管抛售黄金的中央银行着手调查。他们问该行业务局正副局长林凤苞和杨明仁:究竟抛售了多少黄金,为什么要交与金老虎詹莲生总揽其事?二人答道:抛售黄金数量是国家机密,贝祖贻总裁交代不得向任何人泄露,由金号银楼出面这是根据宋院长的指示,詹莲生是金号业公会主席,交他去办是理所当然的事。何汉文等人去找贝祖贻问抛售黄金数字,贝祖贻推到宋子文身上。他们去找宋子文,宋说:“抛售黄金数字保密是奉蒋主席的口谕,你们要问就去问主席。”由于他们一个推一个,最后事情推到老蒋头上。于是何汉文等四监委在气愤之下,给老蒋打去这样一个请示电:“此次黄金风潮事出突兀,查办该案抛售黄金数字极为关键。据宋院长称此数保密系奉钧座口谕,不知确否,祈即电示。”蒋介石对此不作答复,四监委碰了一连串钉子。面对这种尴尬局面,何汉文便派人去找詹莲生。詹莲生有恃无恐地向来人说:“何汉文是谁?找啥吃的?我没听说过,你回去向他说我没空。”后来由于贝祖贻向詹莲生打了招呼,叫他应付应付,他才与何汉文见了面。何汉文问詹莲生:“你赚的大笔黄金究竟弄到哪里去了?”詹莲生满不在乎地说:“告诉你你又能把我怎样?我是赚了一二十万两黄金,赚项大应酬也大,剩下的只是金砖改铸金条的火耗,每天240两,半年下来不过七八万两。”何汉文问他:“你的黄金应酬了哪些人?”詹莲生说:“上上下下,四面八方,无名无姓,有形无踪。”何汉文见再问无益,便打开录音叫詹莲生听了一遍。詹莲生听后才觉不妙,趾高气扬的神气一扫而空,像蔫了的气球。他哀求何汉文:“委员你高抬贵手,把录音交给我吧,那是我以为房内只有我们两人才信口开河,哪知你就当真了。”何汉文笑笑:“詹主席,你有贝祖贻做后台,又何必怕呢?”

第二天,立法委员、军统大特务、杜月笙的徒弟王新衡请何汉文到他家吃饭。饭后王新衡向何汉文说:“关于詹莲生的事,我以老同学的关系向你说句知心话,官场的事不能太认真,留点余地大家今后好见面。昨天你和詹莲生的谈话没有第二人在场,我看你就把录音交给他,叫他拿400根金条出来。你这辈子也阔了。”何汉文不作答复。王新衡又说:“今天杜月笙杜老板本来要和你谈谈,后来考虑到你的令誉,才叫我来向你转告上面那段话。你不答应我王新衡不算啥,可杜老板那里这面子怎么放得下?”何汉文知道,上海是流氓世界,杜月笙这尊神无人惹得起。他心中明白,这次叫詹莲生拿400根金条来周旋,说不定是军统搞的圈套,他绝对不敢要。于是他机智委婉地向王新衡说:“办这件案子的是四监委,再说录音已由另一个监委在今晨送往南京交与于右任去了。不过请杜老板放心,我一定从中斡旋,不把案子搞得太严重就是。”

后来,何汉文把调查资料和录音交给上海法院院长查良鉴,结果判处詹莲生有期徒刑12年,林凤苞、杨明仁10年。这3只金老虎虽然被判刑,但随后又用黄金开路,花了2000多两金子,连一天监狱都没有蹲,便以保外就医为名,逍遥法外,不了了之。

这次查办上海黄金风潮案,使“金牛党”受到不少的打击,活动大大收敛。但舆论界认为,“金牛党”猖獗的根子在宋子文和贝祖贻那里,宋、贝不下台,“金牛党”总有死灰复燃的一天。因此,朝野人士反宋浪潮并未终止。1947年5月,监察院根据宋、贝贪污的确凿证据,向新闻界曝光之后,两次提出对宋、贝的弹劾案,迫使宋子文引咎辞职,贝祖贻也被撤职查办。

  呕心著史学

1947年2月28日,台湾“二·二八事件”爆发。因国民党军警2月27日在台北打死了为减税请愿的商贩,至2月28日台北市民罢市、游行请愿,又遭国民党当局的镇压,激起了台湾民众的愤怒,爆发了大规模武装暴动。几天之内,暴动民众控制了台湾大部分地区。国民党政府一方面从大陆调集军队进行残酷镇压,至3月13日死者多达3万多人。同时又先后派遣白崇禧、蒋经国赴台“宣慰”,其真实目的就是布置对台湾民众进一步的镇压。当起义被全部镇压之后,蒋介石政府迫于国内外舆论的压力和当时台湾局势的严重,便派监察委员何汉文以“钦差大臣”的身份,会同杨亮功到台湾全省“巡察”一番,“彻查”这次事件发生的行政责任,借此掩盖政府的残酷统治对激起事变的直接责任,收拾人心。何汉文是3月22日由上海坐飞机到台湾的。当时,各地的起义斗争已被国民党军镇压下去了。到台湾后,他为了“彻查”事变真相,曾到台湾全省各县、市与各有关方面作过深入接触,对这次事变的前因后果及其经过情形进行了全面的了解。在领略到蒋介石的真实意图之后,他与杨亮功紧密配合,及时公布了起义经过和陈仪治台失当情形的调查报告,并对陈仪提出弹劾案。在巡视各县市时,召集当地一些人士,宣示“中央德意”,以爱国的大义“慰勉”一番。同时接受一些百姓的控诉,惩办了几个贪官污吏。回到南京后,何汉文在向蒋介石报告事变经过情形时,还当面向他提出一个“关于台湾善后问题建议书”。从而使台湾“二·二八事件”得到妥善解决。后来,陈汉文曾撰写过《台湾“二八”起义见闻纪略》,对这一重大历史事件进行了比较详细的回忆和记载。

由于何汉文在监察院期间,连续调查处理了上海黄金风潮案和台湾“二·二八事件”,在当时引起了巨大的社会反响,因此被外界冠以“铁面御史”之美称。但是,这时候已经面临全国解放的关键时刻,也使得何汉文在政治前途上面临艰难的选择。

1948年5月国民大会后,何汉文毅然做出决策,卸去国民党监察委员职务。同年8月,他应程潜邀请回到湖南,出任湖南省经济委员会主任委员。为了摆脱国民党中央的控制,稳定湖南经济,为和平起义作准备,他曾积极向程潜建议,并为其起草文告,宣布在湖南停止征兵征粮、限制粮食出境等政策。同时领导省经委采取果断措施,从国民党中央银行湖南分行截收了准备运走的国库银元;并清理湖南粮政弊案,查办前任粮政局局长黄德安贪污案。此外,他在任内还接济过在宁乡黄材举行起义的姜亚勋部队,直到1949年3月省经济委员会被撤销才离职。此后,改任省政府设计考核委员会副主任委员等职务,直至湖南和平解放。

1950年6月,经程潜推荐,何汉文任湖南人民军政委员会参议室参议,1955年任湖南省人民委员会参事室参事。他是第四届湖南省政协常委。但1957年被划为右派,改任省参事室秘书。1961年摘除右派帽子,1978年3月任湖南省革命委员会参事室参事。1980年4月21日,湖南省为其彻底平反,恢复名誉。何汉文自任参议、参事以来,潜心文史,笔耕不辍,撰写有70余万字的《秦史》,与人合著出版《杨度传》,并参与了《辞源》的修订工作,加上原来编著过《中国国民经济概况》、《中俄外交史》、《俄国史》等一系列著作,使之晚年成为一名颇具影响的社会界知名学者。

何汉文一生经历了两次婚姻,其原配夫人名彭兆正君,毕业于早稻田中学,婚后一直居住在宁乡沙田老家。第二任夫人邵一萍,祖籍浙江东阳,是我国著名女国画家,于1955年因病去逝,终年55岁。1982年2月18日,何汉文在长沙病逝,享年79岁。

2011年9月,由中国先秦史学会主办的中国莱芜首届嬴历史文化学术研讨会隆重召开,来自全国各地的80名专家学者参加研讨。为确认秦始皇祖人姓氏嬴起源于古时莱芜境内的嬴城,即现今莱城区城子县村,与会者还引用了何汉文先生于1981年在《求索》杂志上发表的专文,并将所著的《秦史》列为重要的研究文献。

何汉文著作

 

车载总线进入以太网时代,将组成车域网

2018-03-15

汽车总线发展从CAN、LIN、LVDS到MOST、FLEXRAY,再到现在进入1TPCE、RTPGE以太网技术阶段。

 

2008年前后起用于OBD故障自我诊断。而2013年以后,其用途扩展到周边监控用摄像头系统、运行辅助系统及影像传输领域。2015年以后,以太网的应用范围逐步扩大到将综合了车身系统、控制系统、安全系统及信息系统等的网关连接起来的主干网络。甚至就控制系统,也有车厂考虑在部分车型采用。2017之后,随着汽车智能化、网联化、自动化的发展,诸如ADAS、HUD、高品质车载娱乐影音、OTA远程升级、V2X、大数据、云计算等一系列技术在汽车上的应用,导致Ethernet在车机上的使用变得更急迫和广泛起来。

 

据预测,到2020年,汽车中部署的以太网端口将达5亿个。

 

先看看传统车载总线的对比,再来看以太网总线能解决哪些痛点。传统车载总线见下图:

 

那么,加入以太网能解决哪些问题或扩展哪些功能呢:

  • 高带宽,低成本:以太网协议非常成熟,所以成本低,带宽已经可以到万兆甚至用SFP方式到400Gbps都不是问题。
  • 支持各种协议:可以同时支持AVB(音视频桥)、TCP/IP(因特网TCP/IP协议)、DOIP(以太网上诊断)、SOME/IP(基于IP面向服务可扩展中间件)、TSN(时间敏感网络)、POE(以太网供电)、EEE(高效节能以太网)等等协议。
  • 适应未来的能力:从100Base-T到1000Base-T,将来还可以到万兆以太网,满足自动驾驶、无人驾驶等高带宽情景。
  • 无线功能:支持现在的Wifi,以及将来IEEE802.11p这种汽车环境无线存取的Wifi。

当然,从支撑消费类的以太网变更到支撑汽车的以太网,必须解决之前以太网的实时性和故障安全问题,这块的进展就是增加了新的协议,比如IEEE802.1AS/Qat/Qav/BA等4个新协议能实现提前为特定用途确保通信带宽的“带宽预约”及时间同步,并将延迟时间控制在7跳点(hop)、2ms以下。

下图为车载以太网发展趋势,预计将在2025年之后发展成熟:

 

预测最终汽车上的整个电子系统可以组成一个混合总线的车域网,如下图所示:

 

在该架构下,车域网内总线、器件会很多,电磁兼容、电磁干扰的测试必不可少,至少需要做到下图所示的测试:

人工智能深度学习神经网络TensorFlow库

2018-03-14

TensorFlow是一个深度学习的库,上层支持Python语言,底层用C++实现具体操作。 它以图graph …

继续阅读

“拉卡拉”是协助洗钱的么,钱从拉卡拉被刷走

2018-03-14
身边有朋友中招,估计步骤如下:
首先是准备过程:
1. 骗子先在拉卡拉注册虚假商户,假身份证注册收款银行卡;
2. 在拉卡拉买POS机或作为拉卡拉代理商;
然后收集卡信息,可能的几种方式:
1:把改装的pos机(截图卡号和大家输入的密码)卖到或免费给到其他真实店铺收银,让大家刷一段时间后,然后以维护名义拿回来,获得大家的银行卡信息(含密码);
2:通过其他手段获得大家的卡号、密码,举例:比如以前有过的银行atm机被安装卡号截取设备+私有摄像头看到大家输入的口令;
最后刷卡、转账、取现、跑路,可能的几种方式:
1. 拿到了大家的卡号、密码,复制银行卡,直接atm取款;
2. 拿到了大家的卡号、密码,直接atm转账;
3. 拿到了大家的卡号、密码,在拉卡拉POS机上刷爆这个银行卡,刷的收款商户就是上面注册的虚假商户,让后从拉卡拉转账到上面假身份证对应的银行卡,再取现,这个方式最好,都不用跑路,反正是虚假的商户和假身份证开办的银行卡,换个虚机商户和假身份证的银行卡可以继续骗(这次朋友中招后从银行查询到的钱的去向就是从拉卡拉刷走了,而且为盗窃者赢得了时间);
4. 拿到了大家的卡号、密码,在网上消费;
5. 拿到了大家的卡号、密码,其他方式把钱转走;
所以:
1. 不要在饭店、超时等地方刷“拉卡拉”的POS机;
2. 不要泄露了银行卡的卡号、密码(啥,还用说吗);
3. 拉卡拉成了盗窃份子洗钱的好地方,监管在哪里(虽然看到处罚了几次,但是时至2017.7月,盗窃还在继续)。
参考:
亚洲财经: 接二连三遭央行点名 拉卡拉欲提交IPO申请
新浪财经、中国网:拉卡拉宁波收单业务被叫停 分公司虚假商户比超65%

微店、微商的几种开店方式

2018-03-14

不要开发,花点时间谁都能弄:

  • 官方的微信小店(服务号入口+认证+微信支付);
  • 微信合作的京东微店、拍拍微店等(用户入口好像不明显了);
  • 第三方平台(比如微店、微盟、有赞)+共享到好友、朋友圈作入口;
  • 第三方平台(同上)绑定公众号作入口。
需要开发:
  • 公众号自己开发购物功能;
  • 微信小程序开发购物功能;
  • 微站开发购物功能+共享作入口。

还有其他方式么?

Android O 新特性预览

2018-03-14

限制后台程序 Android O 将提高用户的電池壽命和設備的交互性能 , 為了達到這個重點 , Androi …

继续阅读

字符编码

2018-03-14

新人老是搞出字符编码问题,在utf8、utf8mb4、unicode、gb2312、cp936搞来搞去,下面给 …

继续阅读

把jar文件提前放到Wildfly的modules里面

2018-03-14

如果所有jar文件全部打包进自己的war文件,会变得很大,不利于持续集成。所以可以把网上共有的已知jar包以m …

继续阅读

Linux性能监视、检测工具示意图

2018-03-14

top, proc, dmesg, perf, sysdig, strace, ltrace, lsof, pcstat, vmstat, mpstat, ethtool, iostat, sar, dstat, tcpdump, netstat, ss, swapon, snmpget, rdmsr

Android的UncaughtExceptionHandle处理和Crash异常信息收集后台ACRA、acralyzer

2018-03-14

后台分析展示: https://github.com/ACRA/acralyzer 前端Android库: h …

继续阅读

3G、4G的APN

2018-03-14
有哪家用SDN来实现GGSN的APN功能的么?
GPRS的漫游_实现移动分组接入的解决方案

使用python tornado实现微信公众号实例

2018-03-14

实现几个必须功能的例子,离实用远着呢: main.py: #!/usr/bin/python #-*- enc …

继续阅读

阿里云内部SLB的问题

2018-03-14
线上系统跑了一段时间,发现了一个阿里SLB的问题,不知道有人碰到过没,求答案:
vpc内部的一台SLB给三台mariadb数据库做负载均衡和HA,没过一段时间(时间都比较长,至少几个小时,有时一天都有)之后发现给数据库插入数据时需要10多分钟,一旦等待这条插入成功,后面的插入、查询又能正常一段时间。
查找数据库的log和打开慢查询log(1秒以上的就计入慢查询),几天观察下来,没有发现log里有异常的情况。
想着可能是阿里SLB的问题,所以跳过SLB,业务系统直接连接到数据库,这样再观察了好几天,发现再没有异常情况,非常稳定。
业务在线上,数据量比较大, 出现问题的几率又不是太高,不好一直抓tcpdump的包来分析。
有谁碰到过类似问题或有什么好办法没?

libwebp(处理webp图像)的安装和使用

2018-03-14
webp是相同视觉下,压缩率较高的图像压缩格式。
下载:libwebp-0.5.2-linux-x86-64.tar.gz
安装:
$ sudo yum install libjpeg libpng libtiff giflib
$ tar -zxvf libwebp-0.5.2-linux-x86-64.tar.gz
$ cd libwebp-0.5.2-linux-x86-64
$ sudo cp ./bin/* /usr/local/bin/
$ sudo cp ./lib/* /usr/local/lib/
$ sudo cp -r ./include/* /usr/local/include/
$ sudo bash -c “echo ‘export LD_LIBRARY_PATH=/usr/local/lib/:\$LD_LIBRARY_PATH’ >> /etc/profile”
使用:
cwebp -longhelp
默认格式的图:
cwebp car_ocean_portal.png -o car_ocean_portal.webp
输出10KBytes大小的图:
cwebp -size 10240 car_ocean_portal.png -o car_ocean_portal1.webp
输出100×100大小的图:
cwebp -resize 100 100 car_ocean_portal.png -o car_ocean_portal2.webp
cwebp -resize 50 50 car_ocean_portal2.webp -o car_ocean_portal3.webp
同时限制大小:
cwebp -resize 100 100 -size 1024 car_ocean_portal.png -o car_ocean_portal4.webp
在小图片,且色彩比较单一的情况下,效果并不好,大小比png要大。

阿里云ECS主机和VPC限制

2018-03-14

VPC虚拟专有网的坑: a. 公网SLB里面的监听端口需要配置峰值带宽,虽然要求所有监听端口的峰值带宽总和不大 …

继续阅读

使用python从MySQL生成discuz的excel报表

2018-03-14

要求:每周从discuz的mysql数据库读取数据,生成所需要的xecel报表,模板格式如下: 同时生成统计图 …

继续阅读

某云计算中心网络架构图

2018-03-14

 

一个用来测试物流包裹长宽高的小程序

2018-03-14
之前帮别人写的,要求:
用一个摄像头,得到包裹的投影图,用一个雷达经过两次测距,得到包裹的高度。由高度和投影图,计算包裹的长和宽,最后 输出包裹的长宽高。
使用C++,加上OpenCV的方式实现,开发环境采用VS2010。
下载:
http://pan.baidu.com/s/1eRLJTsA

支持农历提醒的生日提醒、节假日提醒app

2018-03-14

搜索了各种农历生日之类的apk,发现不是广告太多,就是提醒做的不好。所以自己做了一个来用。

是个本地应用,没有广告,不用流量,支持Android5.0以上手机。

主界面如下(纯红色为当天,稍浅的红色为需要提醒的日子):

点击具体日期,可查看万年历:

在生日、节假日当天会提醒,还可以设置提前几天提醒:

设置部分:
下载位置(修正了跨年跨月的bug):
http://www.max-shu.com/blog/upload_manual/lunar_notice.apk
扫码下载(微信扫描的话,扫描打开了之后需要点击右上角菜单里面的“在浏览器打开”才能下载,因为微信屏蔽了apk文件的直接下载):

linux下的类似wireshark、tcpdump的IP抓包程序

2018-03-14

很久写的个小程序,可以实现类似wireshark、tcpdump的抓包分析功能: /*linux下用socke …

继续阅读

使用VMWare虚机Centos7.x实现网关、DHCP、修改HTTP User-Agent字段(绕过深信服、绿盟等对该字段的检测)

2018-03-14

起因: 朋友公司上外网有限制: 1. 不能建立内网wifi给手机上网用; 2. 必须在上外网的电脑上安装深信服 …

继续阅读

EMQ(emqttd) 2.x 安装和使用(物联网传输控制协议的Broker)

2018-03-14

支持下国产开源。 MQTT物联网传输控制协议:《MQTT-3.1.1-CN.pdf》 下载:emqttd-ce …

继续阅读

需要写一个基于SCTP的类netty、mina组件

2018-03-14
TCP是基于流的传输协议,不利于传输消息。
UDP是无重传保障的传输协议,消息可能会丢。
SCTP是基于消息的带重传保障的传输协议,符合IM、消息推送、通信控制等应用模式。
所以需要写一个基于SCTP的类XMPP(Ejabberd、netty、mina)、MQTT(emqtt)组件。 有现成的推荐么?

KVM虚拟机挂载Sheepdog卷时tgtd报错Can’t locate Config/General.pm

2018-03-14
错误:
Can’t locate Config/General.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5
原因是缺少perl的Config::General模块。
解决:
自动安装:
perl -MCPAN -e shell
perl> install Config::General
不成功,不能连接到外网。
手工安装:
tar -zxvf Config-General-2.56.tar.gz
cd Config-General-2.56
#vi General.pm
perl Makefile.PL
make
make test
make install

Python使用openpyxl读取、修改excel文件及绘chart图(支持xlsx)

2018-03-14

安装: C:\Python27\Scripts>pip install openpyxl 使用例子,不多 …

继续阅读

CentOS6.x下升级httpd2.4.3到httpd2.4.10

2018-03-14

首先下载需要的包: apr-1.5.1.tar.bz2 apr-util-1.5.3.tar.bz2 dist …

继续阅读

挂载iscsi ipsan共享存储及设置multipath多路径

2018-03-14

第一次手动挂载iscsi盘: # iscsiadm -m discovery -t sendtargets – …

继续阅读

libvirt的网络过滤、可以只让虚拟机通过某个IP、mac等向外访问

2018-03-14

官方: Goals and background The goal of the network filter …

继续阅读

CentOS永久保存多个静态路由,重启network服务不丢失

2018-03-14
新建一个文件,把路由写到这个文件里即可:
# vi /etc/sysconfig/static-routes
any net 10.11.0.0 netmask 255.255.0.0 gw 10.11.101.254

static-routes其实在被network这个脚本调用的,打开这个脚本:

/etc/rc.d/init.d/network 

里面有写到:

# Add non interface-specific static-routes.
if [ -f /etc/sysconfig/static-routes ]; then
grep “^any” /etc/sysconfig/static-routes | while read ignore args ; do
/sbin/route add -$args
done
fi

network在执行的时候到static-routes里面寻找any开头的行,然后执行

/sbin/route add -$args 相当于手动执行了route add脚本,那后面事情就简单了,回到了手动执行的方式,根据前面的说明,正确的脚本就是:

any host 10.0.0.10 gw 192.168.1.1

network执行的时候把any去掉,获取后面的参数:host 10.0.0.10 gw 192.168.1.1

然后执行route add –host 10.0.0.10 gw 192.168.1.1

注意这里host前面的-是network自带的,不需要配置到static-routes文件中。

Git的安装和简单使用

2018-03-14

安装: # yum install curl-devel expat-devel gettext-devel …

继续阅读

Docker —— 从入门到实践(完)

2018-03-14

10. 实战案例 介绍一些典型的应用场景和案例。 10.1. 使用 Supervisor 来管理进程 Dock …

继续阅读

Docker —— 从入门到实践(续)

2018-03-14

6. 仓库 仓库(Repository)是集中存放镜像的地方。 一个容易混淆的概念是注册服务器(Registr …

继续阅读

Docker —— 从入门到实践

2018-03-14

v0.2.9 Docker 是个伟大的项目,它彻底释放了虚拟化的威力,让应用的分发、部署和管理都变得前所未有的 …

继续阅读

如何用 Excel 計算单元格裡面的不同值之個數?(转)

2018-03-14

今天朋友問了我一個 Excel 的問題,如果有一串資料,想要計算裡面的不同值共有幾個,要怎麼作?這個問題在資料庫很簡單,就是 select + count + group by 就作完了,但在 excel 嘛,還是拜請 google 大神,結果第一篇就得到這個答案。

=SUMPRODUCT((A1:A10<>””)/COUNTIF(A1:A10,A1:A10&””))

A1:A10 當然是 Range,可以自己替換,但這一串到底在作什麼,我試著用我的理解解釋看看。

假設有一串資料 A1 到 A10 共 10 個儲存格,共有 4 個 A、3 個 B、2 個 C、1 個空白,裡面不同的值就是 ABC 共 3 個,所以要得到的答案就是3,我們用上面的公式跑出來的結果如下:

判斷公式作啥,當然從括號裡面來,首先是 (A1:A10<>””),這句判斷 Range 裡的每一個值是否不等於空字串,換句話說就是儲存格內有值為 true (1),儲存格內沒有值就是 false (0) 囉。

那除號 (/) 後面的 COUNTIF(A1:A10,A1:A10&””) 又是什麼意思,它計算每一個值出現的次數,第二個參數之所以 AND (&) 空字串 (“”),是希望計次時用字串處理,這樣遇到空字串也計次得到,不會產生 0 的結果。

所以我們得到了一個全部是 true 跟 false 的資料陣列,以及一個全是次數的資料陣列,接下來相除 (/),得到:

以 A 來說出現了 4 次,結果經過了上面的計算,得到的就是 1/4,這樣最後我們再用 SUMPRODUCT 加起來,就剛好是一個完整的 1,相同值因此不會被重覆計算而達到我們要的目的了。

至於最後一步為什麼要用 SUMPRODUCT 而不用 SUM 呢,這部份我也不瞭解,不過用 SUM 是不行的,所以我猜應該是因為 SUM 要的是數值的型別的關係吧。

 

Java线程调用阻塞式函数时的优雅终止

2018-03-14

如果在线程里面使用socket的阻塞式编程,则优雅关闭线程时需要注意:

tcpServerThread.isRun = false;
try{
if(tcpServerThread.socket != null)
tcpServerThread.socket.close();
if (tcpServerThread.serverSocket != null)
tcpServerThread.serverSocket.close();
}catch (Exception e){
e.printStackTrace();
}

退出时机:
1. 线程里面while循环使用isRun判断是否需要退出。
2. socket.close()之后,阻塞函数(accept、read)会导致SocketException异常,在线程里面捕获该异常,然后优雅退出。

public void run()
{
try{
serverSocket = new ServerSocket(port);
}catch (Exception e){
e.printStackTrace();
return;
}
while(isRun)
{
try{
// 等待客户端连接
socket = serverSocket.accept();
BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
//注意第二个参数据为true将会自动flush,否则需要需要手动操作output.flush()
//PrintWriter output = new PrintWriter(socket.getOutputStream(), true);
char[] charArray = new char[8192];
while(isRun){
int rtnBytes = input.read(charArray);
}
socket.close();
}catch (SocketException e){
return;
}
catch (Exception e) {
e.printStackTrace();
}
}
try{
serverSocket.close();
}catch (Exception e){
e.printStackTrace();
}
}

H.265(HEVC)简介

2018-03-14

        H.265已经在2013年正式批准为ITU标准,H.265即HEVC。         H26 …

继续阅读

Ubuntu安装之后:修改root密码、开启sshd、sudo免密码、修改IP地址

2018-03-14

Ubuntu还是适合做桌面,不太适合做服务器。 修改root密码: ubuntu默认root密码是什么? 没有 …

继续阅读

HBase和Hadoop增加 Snappy压缩

2018-03-14

# tar -zxvf snappy-1.0.5.tar.gz # ./configure # make # …

继续阅读

iozone进行linux下的硬盘性能测试

2018-03-14

安装: # tar -xvf iozone3_408.tar # cd iozone3_408 # cd sr …

继续阅读

mcollective安装和使用

2018-03-14

其实跟puppet关系不大,只不过都是puppet实验室的东西。 安装好activeMQ,只要在Master机 …

继续阅读

使用redhat func来管理集群

2018-03-14
在master和slave上先安装好python,接着安装certmaster:
# yum install pyOpenSSL
# tar -zxvf certmaster-0.28.tar.gz
# cd certmaster-0.28/
# python setup.py install

安装func:
# tar -zxvf func-0.28.tar.gz
# cd func-0.28/
# python setup.py install

在Master机器10.24.1.47上修改配置并启动certmaster:
# vi /etc/certmaster/certmaster.conf
autosign = yes

# lokkit -p 51235:tcp
# chkconfig certmaster on
# service certmaster start

在Slaves机器上修改配置后启动func:
# vi /etc/certmaster/minion.conf
[main]
certmaster = 10.24.1.47

启动:
# lokkit -p 51234:tcp
# chkconfig funcd on
# service funcd start

在Master主机上查看:
# certmaster-ca –list-signed
# certmaster-ca –list
如果有没有签名的,则用如下命令签名:
# certmaster-ca –sign hostname

在Master机器上执行命令即可,可支持“引号”下的通配符:
# func hostname call cpu usage
# func “*” call cpu usage
# func “com*” call cpu usage
# func “*” call command run “ls -lrt “

这玩意儿并不好用,不如c3 tools 之类的简单直观,速度也不快。

linux的init/Main.c

2018-03-14

从head-common.S调用了start_kernel函数,就定义在这个文件中,这里是内核的c函数入口点。 …

继续阅读

linux的arch/arm/mm/proc-(arch).S

2018-03-14

这里以arch/arm/mm/proc-v6.S做例子: ENTRY(cpu_v6_proc_init) mo …

继续阅读

linux的arch/arm/kernel/head-common.S

2018-03-14

最终调用c函数start_kernel()执行内核进程 #define ATAG_CORE 0x5441000 …

继续阅读

linux的arch/arm/kernel/head.S

2018-03-14

要注意和“boot/compressed/head.S”的区别。 进入这个代码时,从解压缩代码传入的参数:r0 …

继续阅读

linux的arch/arm/kernel/vmlinux.lds,真正内核一切从这里开始

2018-03-14

要注意和“/arch/arm/boot/compressed/vmlinux.lds”的区别,那个是boot方 …

继续阅读

linux的boot/compressed/piggy.S

2018-03-14
就是为了引入piggy.gz这个文件,链接的时候会把它链接进来,定位在这里。
     .section .piggydata,#alloc               /*piggydata段*/
.globl     input_data                        /*input_data是个全局地址*/
input_data:
.incbin     “arch/arm/boot/compressed/piggy.gz”     /*包含二进制文件*/
.globl     input_data_end                /*input_data_end也是个全局地址*/
input_data_end:

linux的boot/compressed/misc.c

2018-03-14

主要完成解压缩的功能。 int fill_inbuf(void) { if (insize != 0) err …

继续阅读

linux的/arch/arm/boot/compressed/vmlinux.lds,内核一切从这里开始

2018-03-14
这里以linux 2.6.28.6内核为例。
编译内核时选择压缩内核而且是arm架构,则Makefile调用的lds文件由arch/arm/boot/compressed/vmlinux.lds.in生成vmlinux.lds文件供连接器使用。因为连接时增加了-fpic参数,所以所有代码都是地址无关的,需要实际运行时用GOT和PLT的方法重定位。
(需要注意区别:
1. arch/arm/kernel/有vmlinux.lds.S和head.S:真正的内核lds和入口,会调用start_kernel函数进入init/main.c,然后进入内核。
2. arch/arm/boot/compressed/vmlinux.lds.in和head.S:uboot之后的入口,它会解压缩内核piggy.gz(用gzip压缩出来的含有上面的head.S和main.c等内核代码的文件),然后进入真正的内核head.S入口。
3. mkimage会把64字节的头加上zimage(含有boot/compressed/head.S,misc.c,piggy.S,big-endian.S和piggy.gz构成)做成uboot可用的映象。)
OUTPUT_ARCH(arm)
ENTRY(_start)                       /*从_start开始执行*/
SECTIONS
{
. = TEXT_START;
_text = .;

.text : {
_start = .;                        /*从_start就是从start段开始执行*/
*(.start)
*(.text)
*(.text.*)
*(.fixup)
*(.gnu.warning)
*(.rodata)
*(.rodata.*)
*(.glue_7)
*(.glue_7t)
*(.piggydata)
. = ALIGN(4);
}

_etext = .;

_got_start = .;
.got               : { *(.got) }
_got_end = .;
.got.plt          : { *(.got.plt) }
.data               : { *(.data) }
_edata = .;

. = BSS_START;
__bss_start = .;
.bss               : { *(.bss) }
_end = .;

.stack (NOLOAD)     : { *(.stack) }

.stab 0          : { *(.stab) }
.stabstr 0          : { *(.stabstr) }
.stab.excl 0          : { *(.stab.excl) }
.stab.exclstr 0     : { *(.stab.exclstr) }
.stab.index 0          : { *(.stab.index) }
.stab.indexstr 0     : { *(.stab.indexstr) }
.comment 0          : { *(.comment) }
}

OpenStack 安装和使用(八)

2018-03-14

Swift对象存储 所有存储的文件系统格式最好为ext4或者xfs,以便支持xattrs属性。 每台机器都按照 …

继续阅读

OpenStack 安装和使用(七)

2018-03-14

Image制作 建立一个raw格式的10GB大小的image文件: # qemu-img create -f …

继续阅读

OpenStack 安装和使用(六)

2018-03-14

VNC访问 安装: # yum install –enablerepo=updates-testi …

继续阅读

OpenStack 安装和使用(五)

2018-03-14

使用Eucalyptus tools 管理虚拟机 # euca-run-instances f16-jeos …

继续阅读

OpenStack 安装和使用(四)

2018-03-14

查看项目(租户)配额: # nova-manage project quota hanborq metadat …

继续阅读

OpenStack 安装和使用(三)

2018-03-14

使用Compute 安装: # yum install –enablerepo=updates-t …

继续阅读

OpenStack 安装和使用(二)

2018-03-14

建立服务和访问点: 建立keystone服务: # keystone –token c8701a1 …

继续阅读

OpenStack 安装和使用(一)

2018-03-13

OpenStack 安装和使用 OpenStack的yum安装位置: 1. http://yum.griddy …

继续阅读

linux的arch/arm/kernel/head.S

2018-03-14

#ifdef DEBUG #if defined(CONFIG_DEBUG_ICEDCC)         / …

继续阅读

mini6410板uboot的Armlinux.c

2018-03-13

void do_bootm_linux (cmd_tbl_t *cmdtp, int flag, int ar …

继续阅读

mini6410板uboot的Cmd_bootm.c

2018-03-13

int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, cha …

继续阅读

mini6410板uboot的Board.c

2018-03-13

/* * To match the U-Boot user interface on ARM platform …

继续阅读

mini6410板uboot的Movi.c

2018-03-13

#include <common.h> #ifdef CONFIG_MOVINAND #if de …

继续阅读

mini6410板uboot的Nand_cp.c

2018-03-13

#include <common.h> #ifdef CONFIG_S3C64XX #includ …

继续阅读

mini6410板uboot的Main.c

2018-03-13

其中的main_loop函数如下: void main_loop (void) { #ifndef CFG_H …

继续阅读

mini6410板uboot的lowlevel_init.S

2018-03-13

文件:u-boot/board/samsung/mini6410/lowlevel_init.S #inclu …

继续阅读

mini6410板uboot的cpu_init.S

2018-03-13

#include <config.h> #include <s3c6410.h> .g …

继续阅读

mini6410板uboot的start.S

2018-03-13

#include <config.h> #include <version.h> #i …

继续阅读

qemu-img使用帮助

2018-03-13

例子: # qemu-img info f16-x86_64-openstack-sda.qcow2 imag …

继续阅读

guestmount 挂载虚拟机的文件系统到host 进行编辑

2018-03-13
例子:
查看虚拟机文件里面的设备,xxx随便写个,如果不存在,则会显示出分区来:
# guestmount –rw -a /var/lib/nova/instances/instance-0000001c/disk -m /dev/xxx /mnt/tmp1/
libguestfs: error: mount_options: mount_options_stub: /dev/xxx: No such file or directory
guestmount: ‘/dev/xxx’ could not be mounted.
guestmount: Did you mean to mount one of these filesystems?
guestmount:     /dev/sda1 (ext4)
guestmount:     /dev/sda2 (swap)
guestmount:     /dev/sda3 (ext4)
把/var/lib/nova/instances/instance-0000001c/disk这个虚拟机文件的/dev/sda2设备mount到host机器的/mnt/tmp1/目录,之后可以在这个目录修改:
# guestmount –rw -a /var/lib/nova/instances/instance-0000001c/disk -m /dev/sda2 /mnt/tmp1/
修改完之后,umount掉:
# fusermount -u /mnt/tmp1

guestfish 直接在host 上编辑虚拟机文件系统

2018-03-13
例子:
修改/var/lib/nova/instances/instance-0000001e/disk虚拟机的/dev/sda2设备下面的文件:
# guestfish -a /var/lib/nova/instances/instance-0000001e/disk
><fs> run
><fs> list-filesystems
/dev/vda1: unknown
/dev/vda2: ext4
><fs> mount /dev/vda2 /
><fs> ls /
bin
boot
…
在这里可以编辑,编辑完成后退出。
><fs> exit

qemu-kvm使用例子

2018-03-13

qemu-kvm使用例子: /usr/libexec/qemu-kvm -S -M rhel6.2.0 -en …

继续阅读

Openstack nova的存储、ephemeral以及虚拟机实例的备份与恢复

2018-03-13

一个例子: # ll -h -rw-r–r–. 1 root root 204M Fe …

继续阅读

亚马逊EC2的AZ有效区域和Openstack nova的aggregate主机聚合

2018-03-13
主机聚合单元:host aggregates
AWS EC2按区域大小分两类:Region和Availability zone,前者可以认为是一个地区,后者可以认为是地区中的某个数据中心,而OpenStack的主机聚合单元可以认为是比AZ更小的单元,可以将同一个AZ中的实例分组,同一分组使用同一个网关,同一组存储等资源。这样区分的主要目的是为了保证虚拟机在某个AZ中的高可用,比如,单AZ中某个VM 的宿主机需要维护,这时可以通过合适的虚机在线迁移技术迁移到另一个聚合单元中去。“聚合单元”是管理员界面的概念,对普通用户透明。

使用OpenFiler来做iSCSI target设备

2018-03-13

openfiler用来做存储,最突出的可以用来做iSCSI的target。

下载openfileresa-2.99.1-x86_64-disc1.iso
本身就是带有一个操作系统,直接安装linux操作系统的方式安装即可。安装中分区时默认就行,其中会保留大部分硬盘作为free部分不分配,后面使用web方式来分配和使用。

使用:
通过web界面来配置和使用,地址:
https://OPENFILER_IP:446/
用户名/密码:openfiler/password

进入后需要在System tab页里面的Network Access Configuration位置处加入外部可以访问该机器的IP地址,否则别的机器无法跟该机器通信。

接着进入Volumes tab页里面右侧的“Volume Groups”菜单,建立需要用到的卷,在进入“Edit partitions in /dev/sda”这里时,整个web页面要往下拉才能看到硬盘的free部分。建立PV的时候有可能需要把开始位置加大5G左右,把结束位置减小5G左右,否则可能不能建立,而且不出错。
按照步骤建立PV、VG。这里的PV/VG概念和linux里面的一样。

设置文件系统为iSCSI
进入Volumes tab页里面右侧的“Add Volume”菜单,选择VG,建立volume。其中“Required Space (MB)”和“Filesystem / Volume type”根据需要选择(比如iscsi就要选择“block(iSCSI,FC,etc)”),一个VG可以建立多个volume。
进入Services tab页里面把“iSCSI Target”服务Enabled,并且Start起来。
进入Volumes tab页里面右侧的“iSCSI Targets”菜单,从“Target Configuration”(注意这里面的“Maxconnections”意思是一个initiator只有一个连接到这个target,但是不限制有多少个initiator来连接)到“CHAP Authentication”开始一步一步往下走。注意在“Target Configuration”里面选择的“Select iSCSI Target”会一直作用到“CHAP Authentication”。

这样就可以供外面使用了。

HTML5 新特性网站

2018-03-13

用来展示HTML5 新特性的网站:

http://www.html5rocks.com/en/

还要多久才可以替换android app、ios app呢

文章导航

  • Previous
  • 1
  • 2
  • 3
  • Next

个人介绍

需要么,有事情这里找联系方式:关于天楚锐齿

=== 美女同欣赏,好酒共品尝 ===

微信扫描二维码赞赏该文章:

扫描二维码分享该文章:

分类目录

  • Linux&Android (79)
  • Uncategorized (1)
  • 下载 (28)
  • 云计算 (37)
  • 人工智能 (8)
  • 大数据 (24)
  • 嵌入式 (34)
  • 杂七杂八 (34)
  • 物联网 (59)
  • 网络 (23)
  • 通信 (21)

文章归档

近期文章

  • 使用Python渲染OpenGL的.obj和.mtl文件
  • 用LVGL图形库绘制二维码
  • Android使用Messenger和SharedMemory实现跨app的海量数据传输
  • CAN信号的c语言解析代码
  • QT qml下DBus的使用例子

近期评论

  • 硕发表在《使用Android的HIDL+AIDL方式编写从HAL层到APP层的程序》
  • maxshu发表在《使用Android的HIDL+AIDL方式编写从HAL层到APP层的程序》
  • Ambition发表在《使用Android的HIDL+AIDL方式编写从HAL层到APP层的程序》
  • Ambition发表在《使用Android的HIDL+AIDL方式编写从HAL层到APP层的程序》
  • maxshu发表在《Android9下用ethernet 的Tether模式来做路由器功能》

阅读量

  • 使用Android的HIDL+AIDL方式编写从HAL层到APP层的程序 - 16,805次阅读
  • 卸载深信服Ingress、SecurityDesktop客户端 - 12,078次阅读
  • 车机技术之Android Automotive - 6,661次阅读
  • 车机技术之车规级Linux-Automotive Grade Linux(AGL) - 5,861次阅读
  • Linux策略路由及iptables mangle、ip rule、ip route关系及一种Network is unreachable错误 - 5,710次阅读
  • 在Android9下用ndk编译vSomeIP和CommonAPI以及使用例子 - 5,658次阅读
  • linux下的unbound DNS服务器设置详解 - 5,601次阅读
  • linux的tee命令导致ssh客户端下的shell卡住不动 - 4,998次阅读
  • 车机技术之360°全景影像(环视)系统 - 4,897次阅读
  • libwebp(处理webp图像)的安装和使用 - 4,749次阅读

功能

  • 文章RSS
  • 评论RSS

联系方式

地址
深圳市科技园

时间
周一至周五:  9:00~12:00,14:00~18:00
周六和周日:10:00~12:00

标签

android AT命令 centos Hadoop hdfs ip ipv6 kickstart linux mapreduce mini6410 modem OAuth openstack os python socket ssh uboot 内核 协议 安装 嵌入式 性能 报表 授权 操作系统 数据 数据库 月报 模型 汽车 测试 深信服 深度学习 源代码 神经网络 统计 编译 网络 脚本 虚拟机 调制解调器 车机 金融
© 2023 天楚锐齿