Windows 下配置 Tcl 开发环境

之前写过一篇一样的,不过丢失了,这次再写一次,权当帮助初学 VS 并且对嵌入 Tcl 感兴趣的人。

继续阅读

#tcl 上删除 ijchain 的名字

Tcl Chatroom 一般是用 TkChat 交流的,不过有的时候嫌麻烦就直接上 freenode 的 #tcl 了。但是,那个 ijchain 真的非常烦人,怎么办呢?如果你用 XChat,就可以试试下面的方法。

继续阅读

Fossil 的分支处理

MemMaster 的开发是用 Fossil 做版本管理的。最近需要分支开发,于是研究了一下 Fossil 的分支处理。(但是在研究过程中对我的仓库造成了永久性不可恢复的损害……)

继续阅读

Fedora 使用 Broadcom 43xx 官方驱动

我是一个大骗子,因为我又回来了。。哦不,准确说是被逼无奈啊。详情我就不说了,太伤心了。

首先下载 bcm Linux-STA 驱动。

make
sudo make install
insmod wl.ko
depmod -a
modprobe wl

好了

bsdman —— linux下看freebsd的手册页

用不到50行shell搞定了原来用300行C还没搞定的东西。

现在的版本是 0.2.1(0.2实现的依云需要的功能,结果忘了改下面的代码,于是又有了0.2.1),功能如下:

  • 智能判断分页器(more或你自己定义的,需要设置 PAGER 环境变量)
  • 无垃圾文件
  • 浏览 FreeBSD 的手册页

用法很简单

bsdman [要man的东西] [节]

代码很短,要看就自己看吧。。

仓库

*这是我在arch下第一个写的无意义的东西。

更新到 Fedora Rawhide

一。Fedora Rawhide 是什么?

简单的说,Rawhide就是Fedora的滚动更新版,但这与 Gentoo、ArchLinux 等又不同,因为这个分支指向的是当前开发版(如同 FreeBSD 的 CURRENT 分支),所以极其不稳定。在更新前用你的脑子想想干什么?

需要注意的是,这不是测试版,是开发版,比如现在是 Fedora 15,进行中的版本是 Fedora 16,而 Rawhide 已经指向 Fedora 17 了。

某人说这是“最激进发行版的最激进分支”,窃以为非常贴切。

二。为什么需要 Fedora Rawhide?

为 Fedora 开发者提供一个快速的反馈平台,所以一般都是开发者在用,普通用户一般用不到,当然如果你有开发经验而且有一定的解决问题能力可以尝试。

三。如何安装 Fedora Rawhide?

这是非常简单的,只需要

sudo yum install fedora-release-rawhide
sudo yum update --disablerepo=\* --enablerepo=rawhide

即可。我强烈建议不要任何在X下的终端模拟器!因为我在使用的时候不知怎么 X 突然崩溃了,yum当然也崩溃掉了,因为它是一个模拟出来的终端。这样我就引来了好多麻烦的问题。更新途中突然崩溃的结果就是这个,要是恰巧包管理也坏掉了,那就囧了,所以一定要小心

更新的时间会非常长,因为要更新电脑上所有的软件包,即使版本号一样,包名也不一样,比如 xxx.fc15 一定要更新到 xxx.fc17(没有17的话也一定会有16的)。建议你在睡前进行更新并关掉电源选项中的X分钟后睡眠、挂起,这会断网的。

在更新途中你可能会遇到各种各样的问题如“损坏依赖”“冲突”“未找到”等等,非常麻烦,一定要做好心理准备,当然一旦开始就没有什么问题了,除非突然给你说 404 错误。

四。这个 Rawhide 源好慢啊!

那是因为 Rawhide 源默认指向一个列表,而如果你没有安装选择最快的源的插件,一般都非常慢,这里我们可以选用 163、网易等国内源来加速。不过这需要自己修改源。

打开 /etc/yum.repos.d/fedora-rawhide.repo,将所有baseurl前的#去掉,再改为你用的源的URL。附上一份我的fedora-rawhide.repo(163的,特点是更新快,不过速度比搜狐慢点,搜狐更新很慢)。

[rawhide]
name=Fedora Rawhide - $basearch - 163.com
failovermethod=priority
baseurl=http://mirrors.163.com/fedora/development/rawhide/$basearch/os/
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-rawhide&arch=$basearch
enabled=1
metadata_expire=7d
gpgcheck=0

[rawhide-debuginfo]
name=Fedora Rawhide - $basearch - Debug - 163.com
failovermethod=priority
baseurl=http://mirrors.163.com/fedora/development/$basearch/debug/
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-debug-rawhide&arch=$basearch
enabled=0
metadata_expire=7d

[rawhide-source]
name=Fedora Rawhide - Source - 163.com
failovermethod=priority
baseurl=http://mirrors.163.com/fedora/development/rawhide/source/SRPMS/
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-source-$releasever&arch=$basearch
enabled=0
metadata_expire=7d

注,该repo是我空写出来的,所以有一点小问题,建议你自己修改安装fedora-release-rawhide后出现的repo文件。

五。我不想用 Rawhide,可不可以用下一个版本?

当然可以,而且比安装 Rawhide 更加方便,你只需要安装 preupgrade 即可,这是一个图形软件,很方便,唯一需要注意的是,你的 /boot 分区至少需要 500M 空余空间。

六。可能遇到的问题

我这里遇到了一个很郁闷的问题,就是开机没法显示图形界面,这个问题很容易知道,显然是显卡问题。

这个问题也不是很难解决,只要用一个禁用调试的内核就解决了,你可以去bodhi和koji上搜索查找(描述里面会说 disable debug build),从Koji上下载下来,安装即可解决问题。注意千万不要升级内核,除非你找到了新的禁用调试的内核。

 

让 JED 看起来更像窗口程序

本文大量依赖 gnome-terminal,如果你用 XtermKonsole,现在就可以离开了。

不过知道方法也可以:用你当前的图形终端模拟器给 JED 加一个外壳。我们这里起的名字叫 gjed,如果你用 Konsole 可以叫 kjed啥的,其实 JED 自身有窗口版本,叫做 XJed,不过 Fedora 没有。

关于 JED 是什么,我就不赘述了,在上一篇《扔掉 Emacs,投奔 JED》中已经介绍过了。当然如果你天天开终端,然后输入 jed 也没什么不好,不过多了就觉得,能直接双击打开文件多好啊!

主要问题是,Fedora没有 xjed!所以只好自己 DIY 了。

我们还是使用上次在《只让Emacs以守护进程模式运行》中的方法,做一个脚本!呃,早在那个文章里我不就说了我经常用这种方法投天换日、瞒天过海、偷梁换柱……

这里我们首先要了解一下 gnome-terminal 的参数,我们要用到的是 -x,-t,--hide-menubar。

  • --hide-menubar 隐藏菜单,才能按F10,不过 ESC m 也可以。
  • -x/-e          运行命令,在该参数后都被解释为命令,所以必须是最后一个参数。
  • -t             修改标题。

所以我们可以写这个叫做 gjed 的脚本放在/usr/bin下:

#!/bin/sh
gnome-terminal -t 'JED in GTK+' --hide-menubar -x jed $*

然后你就可以在运行对话框中输入 gjed 回车,就能看到了。

我们现在可以在 Gnome Shell 中或 Gnome Panel 中建立一个启动器,复制到 /usr/share/applicantions。

建立的方法是使用终端,输入

gnome-desktop-item-edit GJED.desktop

接着在命令里面输入 gjed,名称 GJED,图标可以任选。然后修改它,加一行,写上

Categories=GTK;Utility;TextEditor;

Gnome 3 看:

点击活动,在应用程序中找到 GJED(可能需要反复等待缓存刷新),拖到旁边的 dock。

Gnome 2 看:

拖动到上面的面板上。

 

完毕

Is-Programmer博客小技巧汇总

从BUG反馈中整理。

这些小技巧大多数是和自定义CSS有关的,你可以去后台->插件(Plugins)->自定义CSS(Custom CSS)中操作。

因为我个人对CSS不甚了解,所以希望 galeki 或者 CSS 大牛对以下内容进行审校,非常感谢~

带链接的图片有下划线,要去掉

原因:这个是皮肤的默认链接样式造成的。

方法:自定义CSS

a.lightbox{border:0;}

主体文本颜色混乱

原因:因人而异。

方法:自定义CSS

body{color:#000;}

将其中的color改成喜欢的即可。

代码高亮框会少一点点高度盖住最后一行的下划线

也许已经修复了,不过我是用了这个代码的,也不知道~smiley

原因:???

方法:自定义CSS

div.syntaxhighlighter{overflow-y:hidden !important;}

修改背景图

没有原因。

方法:自定义CSS

body{
background-image: url("你的图片网址");
}

代码高亮框的横向滚动条

已经fix了,不过还是记录一下。

方法:自定义CSS

div.syntaxhighlighter
{width:500px !important;overflow-x:scroll !important;}

500px按自己喜好修改。

嵌套回复有点大

貌似fix了,我没有在意这种事情。(啊!galeki……)

现在可能已经可以动态调整了,当然你还是不喜欢可以自己调整。

方法:自定义CSS

.reply_comment_box{margin-left:3px !important;}

把3px修改成自己喜欢的。

每个分类的RSS

原因:就是想要细化一下RSS而已嘛。。。(个人觉得把留言、评论和文章都做成RSS有点不必要。)

方法:点击某个分类的链接,在浏览器的地址栏的后面加上“.rss”,回车,就是这个分类的RSS Feed了。

主题在宽屏上太窄了

原因你懂的。。

方法:自定义CSS

#container, #menuh-container{width: 1000px;}

1000改成喜欢的。

不过这样,窄屏看起来就麻烦了,不推荐。

自定义顶部图片

自定义CSS

#top{
background-image: url("图片网址");
}

导航栏乱七八糟

进入 后台->外观->导航栏 设置。

首页文章标题设置颜色

还是自定义CSS

h2.title a { color:#xxxxxx !important; }

把xxxxx改成你想要的颜色值。

设置“引用”样式

点击这里学习更多

更多技巧整理中……

如果大家想要归类的话,留言一下,我比较懒,呼声高就归类一下。

只让Emacs以守护进程模式运行

这里又写到废话了,如果你想直接要一个可以运行的办法,请直接跳转到III的第二个脚本。

I. Why?

众所周知,Emacs如此庞然大物,在不进行任何配置的情况下,启动速度还说得过去,要是.emacs里面有上几千几百行的,那这个速度就……

II. What?

咳咳,不说伤心往事了,其实Emacs最近的版本提供了“守护进程”(什么?你居然不知道守护进程?你用的是Windows吧?),也就是让它在后台运行,如果再次运行,找到了守护进程的话,就可以立刻进入运行状态。

III. How?

要启动Emacs的守护进程,就用 emacs --daemon。

要用这个daemon运行,就执行 emacsclient -a "" -c。

这里,-c指GUI模式,-t指终端模式,指定-nw后会覆盖-c语义。如果它没找到守护进程,就会调用 emacs --daemon ,然后重试。

但是每次运行都得入终端或者用“运行”,太麻烦了,点菜单的话进入的还是 emacs ,就把daemon忽略了……

好吧,我去alias一下,可是发现只在终端下有用,555,没办法了么,不过嘛,办法还是有的,当然不是改启动器,很简单,就是在/usr/bin下写一个emacs同名脚本,执行emacsclient,这招我常用,也很实用。

(注意,这里的操作全部需要root权限。另外,所建立的emacs脚本必须用chmod +x emacs赋予执行权限)

首先,进/usr/bin,把emacs重命名成run-emacs(mv emacs run-emacs,当然也可以随你所愿,比如emacsserver啥的,我用的是emacs-23)。然后建立一个脚本,写入如下内容。

#!/bin/sh
emacsclient -a '' "$@" -c

然后,试试从菜单启动,哇,瞬时启动诶!!

不过当你心情很好地重启后,却发现不能启动了……哦,想想前面提到的,emacsclient是用emacs --daemon启动守护进程的!这样,emacs已经被我们重写了,指向的是emacsclient,但是emacsclient没有--daemon参数,所以,怎么办?很简单,建立一个if判断。

#!/bin/sh
if [[ "$1" = "--daemon" ]] #可以处理$1为空的现象
then
    run-emacs --daemon
else
    emacsclient -a '' "$@" -c
fi

哈哈,这下就完美了,如果没有启动,也可以自动切到run-emacs上。

IV. Notes

但是我们要说的是,Emacs的守护进程相当笨,它居然不会自动检查.emacs或其他配置有没有修改(其实这也很简单,对吧?),但是当我们折腾Emacs时,总是会改写.emacs,然后需要重启emacs看效果,怎么办?这也没办法,只能先pkill掉run-emacs,然后再运行emacs。

这次没好好写,大家谅解。

Over~

Emacs MEW GMAIL IMAP设置

终于比较完整了,贡献给大家参考学习

(大量参考了某日文网站和Emacser的相关文章)

5-1 第一次发布,含有帐号设置

5-2 增加回复、签名档、密码缓存和GPG签名验证设置

;;;;; 该部代码节选自 Ekd123 的 .emacs 文件,略有改动 ;;;;;;;;;

;;;;; 其中注释内容用 <M-;> 取消注释 ;;;;;;;;

;;Mew
;--------------------
;回复
(setq mew-summary-reply-with-citation-position 'body)
(setq mew-cite-fields '("Date:" "From:"))
(setq mew-cite-format "\n\nOn %s %s wrote:\n")
(add-hook 'mew-before-cite-hook 'mew-header-goto-body)
(add-hook 'mew-draft-mode-newdraft-hook 'mew-draft-insert-signature)
;签名档 请确认你写好了签名文件,不自动加分隔符
;; (setq mew-signature-file "~/Mail/signature")
;; (setq mew-signature-as-lastpart t)
;; (setq mew-signature-insert-last t)
;Spam
(setq mew-summary-form-mark-spam t)
;帐号设置
(setq mew-proto "%")
(setq mew-user "whoami")
(setq mew-name "Who AmI")
(setq mew-mail-domain "gmail.com")
(setq mew-imap-server "imap.gmail.com")
(setq mew-imap-user "whoami@gmail.com")
(setq mew-imap-auth t)
(setq mew-imap-ssl t)
(setq mew-imap-ssl-port "993")
(setq mew-smtp-auth t)
(setq mew-smtp-ssl t)
(setq mew-smtp-ssl-port "465")
(setq mew-smtp-user "whoami@gmail.com")
(setq mew-smtp-server "smtp.gmail.com")
(setq mew-ssl-verify-level 0) ;;没有会导致验证失败
;密码缓存
(setq mew-use-cached-passwd t)
;GPG签名设置(非加密) 首先确认你有没有GPG ID。
;; (setq mew-pgp-ascii-suffix "84599A3C")
;; (setq mew-protect-privacy-always t)
;; (setq mew-protect-privacy-always-type 'pgp-signature)