R Field - 2019年1月
type: channel
link: http://www.ramlife.org/2019/01/
description: 通玄小论
items: gentoo ebuild 私人portage
items: gentoo Cataclysm - Dark Days Ahead
items: win7 英文版 中文乱码
items: [转] Java语言与C语言混合编程(2)--在Java中调用C语言本地库
items: [转] Java语言与C语言混合编程(1)--Java native 关键字
items: [转] C语言中，float在内存中的储存方式
items: swt text 回车 defaultSelected
items: eclipse windowbuilder palette 空白
items: [转]Linux安装多功能词典GoldenDict
items: gentoo moc audacious

gentoo ebuild 私人portage
type: item
date: 2019-01-29T17:02:00+08:00
description: 最近考虑搞个私人 portage, 用于一些软件的安装和管理。 mkdir -p /usr/local/portage/app-misc/hello-world cd $_ cp /usr/portage/header.txt ./hello-world-1.0.ebuild vim hello-world-1.0.ebuild EAPI=7 DESCRIPTION="" HOMEPAGE="" SRC_URI="" LICENSE="" SLOT="0" KEYWORDS="~amd64 ~x86" IUSE="" DEPEND="" RDEPEND="${DEPEND}" BDEPEND="" 上面这个是基础模板。 vim hello-world-1.0.ebuild DESCRIPTION="A classical example to use when starting on something new" SLOT="0" ebuild hello-world-1.0.ebuild manifest clean merge 输出： Appending /usr/local/portage to PORTDIR_OVERLAY... !!! Repository 'x-portage' is missing masters attribute in '/usr/local/portage/metadata/layout.conf' !!! Set 'masters = gentoo' in this file for future compatibility >>> Creating Manifest for /usr/local/portage/app-misc/hello-world * checking ebuild checksums ;-) ... [ ok ] >>> Unpacking source... >>> Source unpacked in /var/tmp/portage/app-misc/hello-world-1.0/work >>> Preparing source in /var/tmp/portage/app-misc/hello-world-1.0/work ... >>> Source prepared. >>> Configuring source in /var/tmp/portage/app-misc/hello-world-1.0/work ... >>> Source configured. >>> Compiling source in /var/tmp/portage/app-misc/hello-world-1.0/work ... >>> Source compiled. >>> Test phase [not enabled]: app-misc/hello-world-1.0 >>> Install hello-world-1.0 into /var/tmp/portage/app-misc/hello-world-1.0/image category app-misc >>> Completed installing hello-world-1.0 into /var/tmp/portage/app-misc/hello-world-1.0/image * Final size of build directory: 4 KiB * Final size of installed tree: 4 KiB * checking 0 files for package collisions >>> Merging app-misc/hello-world-1.0 to / >>> app-misc/hello-world-1.0 merged. 上面是基本的 ebuild. vim hello-world-1.0.ebuild EAPI=7 HOMEPAGE="https://wiki.gentoo.org/index.php?title=Basic_guide_to_write_Gentoo_Ebuilds" SRC_URI="https://dev.gentoo.org/~tomwij/files/wiki/hello-world-1.0.tar.gz" LICENSE="MIT" 未完待续

gentoo Cataclysm - Dark Days Ahead
type: item
date: 2019-01-29T16:15:00+08:00
description: gentoo 中安装 Cataclysm - Dark Days Ahead，使用web 下载稳定版的安装包，使用 tar 进行解压。 安装需要共享库：sdl2-mixer， 未完待续

win7 英文版 中文乱码
type: item
date: 2019-01-21T10:34:00+08:00
description: win7 为了使用英文的 pcb 软件，把语言包改为英文版后，碰到一部分中文会变成乱码。通过下面方法可以识别： control panel --> region and language --> administrative --> change system locale --> chinese (sim, prc).

[转] Java语言与C语言混合编程(2)--在Java中调用C语言本地库
type: item
date: 2019-01-07T13:12:00+08:00
description: 转自： https://www.cnblogs.com/moon1992/p/5260226.html 阅读目录 一. 什么是JNI 二. 编写带有native声明的方法的java类 三. 使用javac命令编译所有的java类 四. 使用javah命令生成.h文件 五. 使用C/C++实现本地方法 六. 将C/C++编写的文件生成动态链接库 在上一篇文章中介绍了Java语言中的native关键字，以及Java语言调用C语言的编译生成本地动态链接库(DLL)实现加法运算的小例子，本文通过一个更加详细的例子，深入讲解Java语言调用C语言的函数。 [...]

[转] Java语言与C语言混合编程(1)--Java native 关键字
type: item
date: 2019-01-07T13:11:00+08:00
description: 转自： https://www.cnblogs.com/moon1992/p/5258245.html 阅读目录 一. 什么是 native Method 二. 为什么要使用 native Method 三. JVM怎样使 native Method 跑起来 四. Native关键字示例：Java调用C语言本地库 五. 使用批处理文件编译运行程序 [...]

[转] C语言中，float在内存中的储存方式
type: item
date: 2019-01-06T22:44:00+08:00
description: 转自：https://www.cnblogs.com/wzd5230/p/6744448.html 浮点型变量在计算机内存中占用4字节（Byte）,即32-bit。 遵循IEEE-754格式标准。 一个浮点数由2部分组成：底数m 和 指数e。 ±mantissa × 2exponent （注意，公式中的mantissa 和 exponent使用二进制表示） 底数部分 使用２进制数来表示此浮点数的实际值。 指数部分 占用８-bit的二进制数，可表示数值范围为0－255。 但是指数应可 正可负，所以IEEE规定，此处算出的次方须减去127才是真正的指数。所以float的指数可从 -126到128. 底数部分实际是占用24-bit的一个值，由于其最高位始终为 1 ，所以最高位省去不存储，在存储中只有23-bit。 到目前为止， 底数部分 23位 加上指数部分 8位 使用了31位。那么前面说过，float是占用4个字节即32-bit,那么还有一位是干嘛用的呢？ 还有一位，其实就是4字节中的最高位，用来指示浮点数的正负，当最高位是1时，为负数，最高位是0时，为正数。 浮点数据就是按下表的格式存储在4个字节中： Address+0 Address+1 Address+2 Address+3 Contents SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM S: 表示浮点数正负，1为负数，0为正数 E: 指数加上127后的值的二进制数 M: 24-bit的底数（只存储23-bit） 主意：这里有个特例，浮点数 为0时，指数和底数都为0，但此前的公式不成立。因为2的0次方为1，所以，0是个特例。当然，这个特例也不用认为去干扰，编译器会自动去识别。 通过上面的格式，我们下面举例看下-12.5在计算机中存储的具体数据： Address+0 Address+1 Address+2 Address+3 Contents 0xC1 0x48 0x00 0x00 接下来我们验证下上面的数据表示的到底是不是-12.5，从而也看下它的转换过程。 由于浮点数不是以直接格式存储，他有几部分组成，所以要转换浮点数，首先要把各部分的值分离出来。 Address+0 Address+1 Address+2 Address+3 格式SEEEEEEE EMMMMMMM MMMMMMMM MMMMMMMM 二进制 11000001 01001000 00000000 00000000 16进制 C1 48 00 00 可见： S: 为1，是个负数。 E:为 10000010 转为10进制为130，130-127=3，即实际指数部分为3. M:为 10010000000000000000000。 这里，在底数左边省略存储了一个1， 使用 实际底数表示为1.10010000000000000000000 到此，我们吧三个部分的值都拎出来了，现在，我们通过指数部分E的值来调整底数部分M的值。调整方法为：如果指数E为负数，底数的小数点向左移，如果指数E为正数，底数的小数点向右移。小数点移动的位数由指数E的绝对值决定。 这里，E为正3，使用向右移3为即得： 1100.10000000000000000000 至次，这个结果就是12.5的二进制浮点数，将他换算成10进制数就看到12.5了，如何转换，看下面： 小数点左边的1100 表示为 (1 × 2^3) + (1 × 2^2) + (0 × 2^1) + (0 × 2^0), 其结果为 12 。 小数点右边的 .100… 表示为 (1 × 2^-1) + (0 × 2^-2) + (0 × 2^-3) + ... ，其结果为0.5 。 以上二值的和为12.5， 由于S 为1，使用为负数，即-12.5 。所以，16进制 0XC1480000 是浮点数 -12.5 。

swt text 回车 defaultSelected
type: item
date: 2019-01-06T15:40:00+08:00
description: 今天试了一下SWT控件 TEXT 中的回车事件，使用 defaultSelected 进行处理，结果怎么也不能触发事件。 经过仔细排查，发现是TEXT选中了 wrap 的原因，毕竟如果是多行的话，肯定是需要回车进行换行的，这样就和回车表示确定的功能相冲突了。所以wrap 覆盖了回车确定的功能。把 wrap 去掉，就可以正常触发了。

eclipse windowbuilder palette 空白
type: item
date: 2019-01-06T01:04:00+08:00
description: 今天在 eclipse 上安装了 windowbuilder 插件，但是 palette 一直是空白的，不能放控件。 版本 eclipse 4.9.0, windowbuilder 1.9.0。 经过一番搜索后，决定更新 windowbuilder，先更新到 1.9.1 版本，还是空白，再次更新到 1.9.2 版本，终于不是空白可以正常使用了。

[转]Linux安装多功能词典GoldenDict
type: item
date: 2019-01-05T19:02:00+08:00
description: 转自： https://www.jianshu.com/p/1af17b722991 简介 GoldenDict是一种开源的辞典软体，可为不同语言提供词汇、词组释义。其允许同时使用多种流行的辞典档案格式且无需转换。 [...]

gentoo moc audacious
type: item
date: 2019-01-04T10:06:00+08:00
description: 最近想在 gentoo 上面听音乐, 以前用过 audacious，现在想换成 moc 试试看。 emerge -av moc，结果安装完了以后，放 mp3 没有声音，把 USE 里面各种相关解码的都打开也没有用。 只好回头继续安装 audacious，在安装 audacious 的时候，发现 audacious 依赖与它的插件 audacious-plugins，而 audacious-plugins 中有 USE 是 mp3，打开这个 mp3，发现安装的是 libmp123，安装完成以后， audacious 就可以放 mp3 的文件了。而且 moc 也能通过 libmp123 来播放 mp3 文件。