zhonghcc 发布的文章

Golang OpenGL 跨平台图形程序开发(1)技术选型和windows环境搭建

  • 可能你要做一个三维软件,但是不想使用现成的3D引擎(Unity3D、Unreal之类);
  • 可能你想要做一个跨平台的三维编辑软件,涉及到很多基本图元操作;
  • 可能你厌烦了C++代码的内存管理,想要换用一下更新的程序语言写UI。

那这系列文章就是为这部分需求的技术选型打造的。

目前阶段来看,opengl还是跨平台最好的3D API。opengl和各个语言都有绑定,也都会有一些跨平台的特性。

比方说C++调用opengl比较直接方便,如果选用GLFW而不是MFC等框架是可以支持跨平台的,或者选用QT的解决方案,QT4、QT5都有单独封装好的opengl widget组件,也可以直接使用QT丰富的组件库。

java有LWJGL,一个一揽子的图形图像音频库集合,MineCraft使用了这个库。

但是,QT依赖比较重,C++写起来开发效率不太高,Java在内存和cpu利用率上不如非虚拟机语言。

本系列文章的技术选型是 golang、OpenGL、GLFW、Nuklear

  • Golang编译为机器码,运行效率可以得到保障,同时相对优雅开发效率较高。
  • OpenGL自不必说,核心就是它。
  • GLFW提供了简单但是跨平台的窗口交互。
  • Nuclear是个C语言开发的UI控件库,有golang的绑定,可以帮我们处理简单的界面显示问题。

 

由于本机环境为windows10,同时这套解决方案搭建最麻烦的是windows环境,本文以windows环境为例说一下基础环境建立。

恢复vmware损坏的mac os硬盘快照中的数据

前两天,我正在用一个vmware中虚拟出来的mac os镜像happy的coding。附近线路检修,电kucha一下就断了。我可怜的台式机就像断了线的风筝一样,留下我看着黢黑的屏幕随风飘零。

电力恢复后,我悲剧的发现vmware的镜像果然是坏掉了,起不来了。我的没有push的两个commit也在损坏的vmdk文件中嘲笑我。

在查阅了相关资料后,使用了大家推荐的UFS Explorer,试着从vmdk中恢复文件像这样:

vmware1

picup.me 噼咔网 一个CC0商业免费高清图片分享网站 正式上线了

网站地址:http://picup.me

去年6月份,我突然产生了要做一个分享CC0免费协议图片的念头,经过一段时间的筹划,和非常非常缓慢的开发,很高兴对外宣布,今天上线的版本基本可以使用了。

先简单介绍一下CC0好了,这世界上的产出物,本来只有物权没有版权,但是很多人随意拷贝版权著作,给付出巨大劳动的作者来说非常不公平,所以才有了著作权、版权。而CC0协议是作者放弃版权,发布至公共领域的作品,任何人都可以复制、使用甚至用于商业用途,CC0协议链接:https://creativecommons.org/publicdomain/zero/1.0/deed.zh

 

[caption id="attachment_346" align="aligncenter" width="695"]http://picup.me http://picup.me[/caption]

BigDecimal与double四则运算性能对比

在做金融类系统处理金额数据时,double提供的精度位数有限,进行大量资产的核查清算时,容易因位数过多产生精度不够的情况。

Java的BigDecimal在这方面支持较好,可以提供任意位的精确计算,不过其效率一般,为了探究与double的性能差距,简单测了一亿次迭代情况下的加减乘除运算,进行比较,本次试验使用我的渣渣办公本,i5-2410m 4G内存。

通过测试,BigDecimal与double的性能差距在100倍这个量级,测试一亿次迭代数据,处理效率尚可在可接受范围。

结果图(单位毫秒):

BigDecimal性能

vmware mac 10.11/10.12 虚拟机 共享文件夹/调整分辨率

虚拟机的mac升级到10.12后,分辨率被锁定1024x768,直接vi编辑配置文件无法保存,在vmware中共享的文件夹也无法打开。

原因是10.11之后增加了System Integrity Protection (SIP)功能,禁止让软件以 root 身份来在 Mac 上运行。

好在有办法关掉。

常规办法是在引导时按住command+R键,进入recovery environment,在终端进行操作,比如这样:

How to turn off System Integrity Protection in El Capitan

Click the menu.
Select Restart...
Hold down command-R to boot into the Recovery System.
Click the Utilities menu and select Terminal.
Type csrutil disable and press return .
Close the Terminal app.
Click the  menu and select Restart... .

不过虚拟机好像不太好正确按出来,可以尝试在引导时按住command键(普通键盘alt键)进入boot manager,然后选择Enter setup ——> Boot from a file ——> Recovery HD[PciRoot(0x0)/…] ——> ——> boot.efi