ptz 发布的文章

安装 freemind 之后,感觉菜单上面的字体比较模糊,通过设置 tools --> preference 中的 defaults --> default fonts 里面 的 default font size, 把大小加大,还有 default font 修改为 Inconsolata。看上去就好一些。

如果需要导出 pdf,svg,需要修改 USE, 增加 pdf svg。增加这些的时候,需要手动从 oracle 下载文件。 https://download.oracle.com/otndocs/jcp/7542-jms-1.1-fr-doc-oth-JSpec/ 从这个连接,点同意许可,然后下载后的文件放到 /usr/portage/distfiles 里面,然后重新编译 freemind 即可。

虽然官网上面说修改字体可以在 "freemind.properties" 或者 "user.properties" 这两个文件里面增加,但是实际测试后发现,软件不使用这两个文件,软件只使用 auto.properties,在这个文件中可以通过:

#The default node font. This will only work if the font (TrueTypeFont) is available on the system
defaultfont = SansSerif
defaultfontstyle = 0
defaultfontsize = 12

来修改字体,字体可以选择 AR PL KaitiM GB,字体大小可以选择 20, 这样看起来效果不错。

可以通过控制台输入 DEBUG=1 freemind 启动软件,来收集一些信息。

转自: https://www.douban.com/note/688353496/

版权归作者所有,任何形式转载请联系作者。 作者:Steven(来自豆瓣) 来源:https://www.douban.com/note/688353496/

笔者用emacs已经好多年,一直在arch上开发。困扰了很长一段时间的中文问题,今天解决了,把解决的路径分享下,希望有帮助。

  1. 关于你用什么输入法,不管你是Ibus也好fcitx也好,应该是无所谓的。

  2. emacs不解决编码问题,必须要在启动的时候设置LC_CTYPE=zh_CN.utf8,当然这个设置对不对,你要看你的locale -a的结果(注意这里有的系统是zh_CN.UTF-8,有的是zh_CN.utf8,看locale -a的结果设置),得开进程前env LC_CTYPE=zh_CN.utf8,很多教程,我不做多赘述。不确定自己是否设置正确,可以/bin/emacs -Q,进去后ALT-X,getenv,LC_CTYPE看是否是zh_CN.utf8。

  3. 别忘了设置$HOME/.xprofile。

export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS="@im=fcitx"

由于不同的桌面环境,比如用i3的朋友就需要设置到.xinitrc里。

这一步是为了让你的GTK和QT应用能直接呼出fcitx,这一步不设置啥都出不来。

  1. 字体问题:也可以直接看这个设置:https://wiki.archlinux.org/index.php/Fcitx_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

Emacs 默认 fontset 会使用 "----r-normal--14-------" 字体 (terminus, 75dpi 等等,可以通过xlsfonts命令查看),如果您并没有匹配的字体,无法呼出 Fcitx.

  1. 恭喜你基本快成功了,如果这时候你还是呼不出fcitx或者ibus输入法。就可能跟你的桌面环境或者字体有关系了。 笔者用的fcitx,先说下fctix,用fcitx-diagnose诊断下是否有问题,emacs26是依赖gtk3的,只要gtk3设置了,就基本没问题了。那么还是呼出不了fcitx是怎么回事,这个论坛给了我答案,我系统的字体设置设置出了问题。可以根据这里的设置来解决这个问题:https://wiki.archlinux.org/index.php/Fonts#Installation

  2. 设置你系统载入的字体配置(这部分看上面链接即可)

/etc/fonts/local.conf

里面加入fallback的字体配置

  1. 确认你的fcitx进程存在。可以通过fcitx-diagnose来查看有没有问题,其实emacs也不一定非要设置编码格式,我取消了zh_CN.UTF8也能呼出输入法,这个目前还不太明白。

Done!,重启电脑,/bin/emacs -Q,测试下能不能呼出输入法,能呼出输入法中文写不到emacs一定是LC_CTYPE或者字体问题。不能呼出就是桌面环境问题或者.xprofile的问题。弄个空的emacs测试,有可能你的一些自己配置的lisp搞乱了环境,笔者就因为是fork的别人的emacs, emacs -Q 跑的没问题,后来排除了问题。

最近在另外一台电脑上面安装 gentoo和 emacs,但是碰到奇怪的问题,在旧电脑上面,可以使用 ctrl + space 呼出输入法,而新电脑只能触发 复制功能。 经过在网上查找和两台电脑之间的对比,找到了解决方法。

  1. 首先使用 locale -a 来查看电脑是否支持 zh_CN.utf8 或者 zh_CN.UTF-8, 然后在 .bachrc 中设置 LC_CTYPE = zh_CN.utf8 或者 UTF-8.

  2. 我用的是 i3wm,所以在 .xinitrc 中设置 export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS="@im=fcitx"

  3. 安装字体,经过对比,发现旧电脑比新电脑多了一些字体文件,在 /usr/share/fonts 文件夹下面,多出了 misc, 100dpi, 75dpi。经过仔细对比 font 相关安装软件,发现旧电脑多安装了 font-alias, font-misc-misc。在新电脑上安装这两个软件之后,退出当前帐号,再进无效, 重启再进,就可以生效了。

参考了: emacs中文问题(输入法无法呼出) https://www.douban.com/note/688353496/

最近考虑搞个私人 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,使用web 下载稳定版的安装包,使用 tar 进行解压。

安装需要共享库:sdl2-mixer,

未完待续

win7 为了使用英文的 pcb 软件,把语言包改为英文版后,碰到一部分中文会变成乱码。通过下面方法可以识别:

control panel --> region and language --> administrative --> change system locale --> chinese (sim, prc).

转自: 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语言的函数。

- 阅读剩余部分 -

转自:https://www.cnblogs.com/wzd5230/p/6744448.html

浮点型变量在计算机内存中占用4字节(Byte),即32-bit。

  遵循IEEE-754格式标准。 一个浮点数由2部分组成:底数m 和 指数e。

±mantissa × 2exponent (注意,公式中的mantissa 和 exponent使用二进制表示)

底数部分 使用2进制数来表示此浮点数的实际值。

指数部分 占用8-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 进行处理,结果怎么也不能触发事件。 经过仔细排查,发现是TEXT选中了 wrap 的原因,毕竟如果是多行的话,肯定是需要回车进行换行的,这样就和回车表示确定的功能相冲突了。所以wrap 覆盖了回车确定的功能。把 wrap 去掉,就可以正常触发了。