QString, std::string 和 const char * 的互相转换

好多人都喜欢重新造一个轮子, 所以这个世界上的的轮子千奇百怪. 作为在这些轮子下面苟延残喘的洒家,往往不得不无尽的寻找两个轮子之间转换的方法. STL库, 作为标准库, 在写C++的时候理所当然的, 被各种使用. const char * 数组, 作为和C一起过来的小伙伴, 在很多场合下也会被调用. 如果脑抽居然还打算使用Qt, 那么,Qt自带的QString, 恐怕也很难有人能完全不使用. 于是乎, 类型转换就是个问题了. (more…)

callback 用法简介

callback,函数的回调,从ANSI C开始,一直被广为使用。无论是windows API的所谓消息机制,动态链接库的调用,还是sqlite的命令,gcc下的pthread,qsort。callback都在其中起着难以替代的作用。

(more…)

Oneiro 主题调试记录:评论区域的优化和邮件插件的更换

Note: 因为后来不再使用这个主题,内容仅供参考 orz。

@良心发现的主题Oneiro,据自称是"折腾html5的即兴之作",里面使用了大量的html新特性,里面有很多实验性的内容。一般情况下,作为在前端凑活过,希望付更多精力在后端的我,会无视掉这个主题才对,但实在太漂亮了,真的很不错。

于是下载过来主题,各种粗暴的修改了一堆设定后,就直接丢小站上上线了。之前一些修改都是属于“我喜欢这样”这种类型的,今天做了一些对白璧微瑕的修改。主要记录的是对评论部分的一些完善。

(more…)

spring下的IncompatibleClassChangeError

使用Maven管理传说中的CRUD程序员三部曲,一路坎坷不必细说,都整完了还给我报个IncompatibleClassChangeError

java.lang.IncompatibleClassChangeError: 
    class org.springframework.core.LocalVariableTableParameterNameDiscoverer
    $ParameterNameDiscoveringVisitor has 
    interface org.springframework.asm.ClassVisitor as super class

有完没完.... (more…)

mysql添加自增索引后一个报错解

现在有一个mysql数据库表,需要给主键加上自增。很容易可以找到命令类似于下面这样

alter table `table_name` 
change column `id` 
`id` int(10) unsigned auto_increment not null ;

但是,一直没问题的代码这次失效了,报错如下:

ERROR 1062: ALTER TABLE causes auto_increment resequencing, 
resulting in duplicate entry '1' for key 'PRIMARY'

(more…)

Qt 下 ibus 托盘跟随问题

经常使用一些QT的程序。因为这玩意儿是跨平台的,所以很受大家喜欢。 但是,作为一个使用ibus+qt的中文使用者,常常遇到这样悲剧的问题--输入中文的时候,ibus成功打开,输入也没啥大问题,除了,每次输入中文,那个托盘总是在左下角晃荡--我了个去,锻炼我的眼球么? 在网上常常可以看到各种解决,不过大多认为是ibus的问题,建议我们安装ibus-qt这玩意儿。安装完毕,没有任何效果。以为要重启ibus,依然失败,重启整个系统,依旧。或许这东西对后面的步骤有用,但总而言之,至少说明,光是安装这东西是没啥用的。 然后在继续找,然后发现了这篇博文。 (more…)

audacious 怎样在后台运行?

audacious 可能是我最喜欢的播放器之一。加上 gnome 的一些插件后,播放各种音乐超爽。但是有个小问题,因为一般情况下,音乐是常驻的,所以希望能点击关闭后在后台运行。 很多人有各种建议,比如加这个参数那个参数的。 其实 audacious 自带后台运行功能的。 (more…)

java插入mysql一条数据,如何返回自增的ID?

在实际操作中,我们常常有一些各种古怪的需求,比如现在这个。数据库的table中有一个自增的id字段,插入数据库后,要求返回刚刚插入那条数据的id。 在单线程情况下,这当然是一个很简单的问题。首先获得数据库的最大id,给将要插入的语句id赋值为MAX+1,然后插入即可。 Oracle也很容易实现,给这个table建立一个sequence,每次都向这个sequence获取下一个id,效率也是价格公道童叟无欺。 但是,给多线程下的mysql返回刚刚插入的id,这似乎有点小为难。一个立刻可以想到的方法是,给插入操作加个锁,插入后查询MAX id,然后解开锁。但是这个显然是不怎么讲究了。 (more…)

mysql修改存储路径参考

linux下存储数据,mysql无疑是个很不错的选择。mysql的默认存储路径为/var/lib/mysql。以前数据库一直不是很大,总共十个G左右的大小,放在默认路径毫无压力。但是今天,因为新导入一个数据库,光是导入数据就是30+G,瞬间就悲剧了,因为我并没有为/目录准备足够的硬盘分区空间。所以,修改配置,迁移数据库存储路径到合适的地方成了最省力的选择。 (more…)

grub2下修改启动次序

Linux 一般使用 grub2 来引导操作系统, 它不但可以管理各个内核, 而且可以同时管理 Windows 和 Linux. 最近换了个新的机器,虽然是个很不爽的回忆,但总而言之,家里希望能使用我的旧机器.那么,默认启动linux的grub似乎不太合适了(windows都还没搞明白,让我搞linux?你是故意的吧!老妈咆哮.).那么,修改下启动次序,表示下诚意吧. 很多方法[1]可以修改,不过我觉得修改grub.d可能是最合适的. (more…)

mozjs185 在哪里?

安装某个东西,cmake的时候,报错如下

-- checking for module 'mozjs185'
--   package 'mozjs185' not found

如往常,copy这个module的名字,然后

# yum search mozjs185

结果是Not Found (废话,如果不是not found,还写这个干啥...) 直接杀到网上找结果。 (more…)

Java compiler level does not match the version of the installed Java project facet

有个 Eclipse 下的 Java 项目, 虽然已经把所有的错误都调通了, 但是在工程的左下角还是有个鲜红色的叉. 检查 Problems, 可以观察到唯一一个错误如下:

Java compiler level does not match the version of the installed Java project facet. .. Unknown Faceted Project Problem (Java Version Mismatch)

这是什么意思呢? 字面意思, Java 版本不匹配. 实际意思? 不懂, 求助 google 去. (more…)