… Read MoreC++标准库提供的 mutex 在大部分场合都足以保证线程安全, 但是当问题变得更加极端时,就可能需要使用lockfree风格的并行编程了. 而为了正确实现lockfree, 你将打开一扇新的大门, 接下来的名词都是在学习过程中必须正确理解的: memory model, reordering, weak(relax), strong(strict), fence, barrier, release, acquire, seq_cst, consume, mutex, futex,
分类目录归档:记录
Ethash with cpp
Google NCR ZH
因为一些众所周知的原因,我们不希望使用中文版的谷歌,但是往往又希望中文界面.以下面的链接作为查询网址即可
https://www.google.com/ncr#hl=zh-CN&q=%s
… Read More 从宿主访问Ubuntu虚拟机的文件
背景: 开发中希望能从宿主直接访问虚拟机的文件,例如用office打开word,用 source insight 阅读代码等。
-
虚拟机为16.04 ,宿主为Windows 10 1803,samba试了很多次,就是不行。
-
ftp方案:
- sudo apt-get install vsftpd
- sudo vi /etc/vsftpd.conf,并在末尾粘贴以下内容
anonymous_enable=YES
anon_root= abs_path_to_dir
… Read More Release: OPC Client X64 移植
- View On GitHub
- 该项目是OPC Client的X64移植版
- 其实就是简单的替换了
OPC Core
部分的代码文件为64位版本的
- 其实就是简单的替换了
- 调试过程中碰到了诸多问题,但最终都被证明是操作系统的问题,已经记录在GitHub的README中
- OPCTI和OPCConnect基本涵盖了OPC开发的内容
New 3DS 降级 破解记录
系统启动流程
- 位于nand的bootstrap9启动(系统更新不会写入该区域,因此可以放心的更新)
- bootstrap9加载sd卡中的/boot.firm
- 现在的/boot.firm是luma 3ds 提供的
- 在启动时按住Start,可以启动LUMA 3ds 的chain load 功能,它可以用于加载/luma/palyloads下的其他boot.firm
- /boot.frim会在启动完成后自动引到原始的系统
- boot.3dsx 是HBL的主程序
文件结构
- /3ds目录: .3ds软件目录, HBL启动后,默认就在此目录
- /cias目录: .cia文件目录
NYI摄影日常知识集
纽摄作为胶卷时代的经典,在数字时代尽管有诸多的局限性,但仍然有一些日常主题中常用的技巧,例如构图,布光,儿童摄影等
NYI摄影三原则
- 拍摄主体是基础,一定要保证主体的支配地位,排除物管要素。
- 拍摄中的其余元素都是引导,将读者视线引导至主体。
- 拍摄的主题是核心,它决定了相片的内涵和传递的感情,而主体通常是反映内涵的关键。
构图
- 除非正中央或贴边带来明显的视觉优势,否则不应当进行中央构图
- 眼睛是人像摄影的核心,对焦清晰,眼神高光通常是必要的。
- 人物为主的风光摄影中要积极利用透视效应,放大人像的支配地位
- 利用前景形成封闭框可以突出拍摄主体。
- 降低视角可以极大地扩大地面的厚重感,使主体更加突出
- 除非必要,永远在主体附近留充分的空间以便于裁剪
- 构图思路:中心-放大-封闭-采光-虚化-汇聚-重复-运动-后期裁剪
光线
- 正面硬光没有阴影,避免使用
- 45度光应当是比较完美的,阴影中仍有细节
- 90度光形成强烈的反差
- 人像摄影中,脸颊三角布光很容易构造,f/8是可以接受的最大光圈,必须保证每一处都清晰。
- 45度人像法:人体与镜头呈45度角,头转向镜头身体不动。45度三角布光
儿童摄影
… Read More相机物理基础
光圈与通光率的关系
* 对任意焦段,同样的f值拥有相同的通光率
* 光圈值为f,则通光率正比于1/f^2
曝光与白平衡
- 感光原件特性
感光元件的宽容度非常小,当拍摄范围内明暗变化大时,极容易出现暗部欠曝或亮部过曝的情形,不像人眼,同时可以看见亮部和暗部的细节。另外,过曝通常要比欠曝更容易被系统控制。 - 曝光和白平衡
在数码时代,我们应该忽略这两个因素,相机的自动系统会为我们留下最多的细节,利用后期调节要远比现场选择参数更加高效。
事实上,拍摄系统依据18%灰度原则,自动曝光时总是会选择一个参数,使整体获得尽可能多的细节。这也就产生了所谓的曝光误差,例如雪景偏暗,暗室偏亮。这些曝光误差在模拟时代是致命的,它让照片显得不真实,因此需要精确的调节曝光参数;而在数码时代,由于后期的存在,我们应当尽量多的保留拍摄细节,使自己有更多的可调节范围,当然,你如果不喜欢或不擅长后期,直接利用灰卡测光,直出也是可以的。
复制比与放大率
- 复制比是指 拍摄主体在感光原件上成的像 占 感光元件长度 的 比例。复制比的极限值为100%
simpleBMP-非常简单的BMP读写项目
发现各种找到的库都非常巨大,抽象层次也很高,不能满足需求
自己刚写了一个C++读写bmp的类,支持8位灰度图,24位RGB图。
https://github.com/edimetia3d/simpleBMP
代码很短,其实看源码10分钟就了解干了些什么。
简要说明一下:
没有任何抽象,读取就是把bmp里的所有数据(是的,每个字节都用上了)都映射到某个定义过的变量。
保存就是把这些变量再写回磁盘。
其实最初是打算完全按照C来写的,对动态内存不太感冒,所以用了vector
读写部分用的还是fread fwrite,把vector的部分换成动态内存就完全可以在C下运行了。
每个变量的意思见
http://www.cnblogs.com/xiekeli/archive/2012/05/09/2491191.html
具体映射关系如下。
class ClImgBMP {
public:
ClBitMapFileHeader bmpFileHeaderData;
ClBitMapInfoHeader
… Read More Pyinstaller打包单个bundle时封装额外的资源文件
Pyinstaller简易使用说明:
安装:
pip install pyinstaller
在待打包目录下
新建一个批处理specgen.bat,内容为
pyi-makespec.exe Name.py -F -w –icon=fav.ico
新建一个批处理exegen.bat,内容为
pyinstaller.exe Name.spec
执行specgen.bat生成spec文件(若有需要,对其进行修改)
执行exegen.bat生成可执行文件,结果位于dist目录下
正文:
在编程时往往会引用一些额外文件,如图片,音乐等。
若是用Pyinstaller打包为文件夹,那么这些文件直接复制过去就行。… Read More