链子枪

昨晚上跟同学扯淡时候说到小时候玩的东西,想起来链子枪这么个古董级的玩具,就突然非常想再弄一把玩玩。小的时候曾经动手做过几把,然后从家里偷点火柴,跑到外面跟别人比枪,很有玩头。搜了几张图,回头有空了动手再玩玩,找一下小时候枪神的感觉,:-)

一个美化过的,很有感觉:

无题

第一次想不出题目,无题。

这两天过得有点压抑,因为找工作的原因。很多时候我们看似简单的事情是因为没有身在其中,当把你放进去的时候,压抑的难以呼吸。周一双选会,因为之前针对拓普郑州那边的专门准备了一下,也就只投了拓普一家。现场因为人太多,没有过多的交流,每个人填一张个人信息表,然后让回去等通知。有点打乱我的计划,本来以为现场面试什么的话可以好好介绍一下自己的一些东西,现在只好回去等通知。两天了,一点消息没有,不停地刷邮箱,从来手机都是震动的我这两天也调了声音,生怕错过一丁点消息。有点强迫症的感觉,没办法。拓普这个机会挺好的,在郑州,很方便,又是做网络编程方面的,虽然是 J2EE 方面,没有什么大项目实际经验,不过自己兴趣在网络编程这一块,有兴趣再加上 Java 基础,上手不是问题。可现在的问题是你上手的机会还不知道有没有。。。再等等。

上午有一家北京的公司直接到学院里招人,实习参观回来就直接过去了,有点晚,没有听到他们的宣讲,过去就让自己介绍一下,稀里糊涂说了一些,过了好久才知道人家要 .NET 方面的,自己拿着 PHP、JSP 说了一通,哎,看进展吧。

JSP连接MySql数据库

相关环境:XAMPP 外加 Tomcat 6.0 扩展;JDK 并配置好环境变量;Mysql 里新建数据库,表。

JSP 使用 Mysql 主要是通过 com.mysql.jdbc.Driver 驱动,Tomcat 一般都自带的有,~\tomcat\lib\mysql-connector-java-5.1.6-bin.jar 有这个包就可以。新建 jsp-mysql.jsp 页面:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<%@ page contentType="text/html;charset=utf-8" %>
<%@ page language="java" %>
<%@ page import="com.mysql.jdbc.Driver" %>
<%@ page import="java.sql.*" %>
<html>
<head>
    <title>Untitled</title>
</head>
 <body>
     <%
     String url ="jdbc:mysql://localhost/myguestbook";
     String user="root";
     String password="root";
     Connection conn= DriverManager.getConnection(url,user,password);
     Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
     String sql="SELECT * FROM gb_content";
     ResultSet rs=stmt.executeQuery(sql);
     while(rs.next()) { 百分号>
     编号:<%=rs.getString(1)%>
     <百分号}%>
     <%rs.close();
     stmt.close();
     conn.close();%>
 </body>
</html>

没有差错的话一般就会连接成功的。继续学习 JSP.

实习第一站

上午实习参观可口可乐,是毕业实习的第一站。流水帐了一下上午的行程。

  1. 8点钟爬起来,说实话有点困难,不过能吃早饭还是很爽的。9点半,班车出发。
  2. 可口可乐在开发区那边,偏郊区,饶了好久才到,一位美女接待,:)
  3. 美女接待讲解太古可口可乐公司的一些东西,其中说到可口可乐的发明,糖浆里误加了苏打水,说了句很有哲理的话:”错误发生在正确的人身上摩擦出漂亮的火花。”
  4. 很多可口可乐的限量版纪念装,96年 NBA 促销版,94年世界杯促销版。
  5. 一位技工给我们讲解可乐灌装流程,隔着玻璃看了看。
  6. 在会议室看了一些可口可乐早期的广告,上世纪五、六十年代的。
  7. 11点多的时候开始回校,每人一罐可乐,囧。

这样的实习参观也就走走看看,还不如到车间干几天呢。。再说了,这个计算机有啥关系?我愣是没看明白。可恶的是,还得写实习报告!

Vimperator使用小记

小记一些 Vimperator 快捷键:

  1. esc,当快捷键无效时候大部分是因为切换到了命令模式,esc返回正常模式;
  2. tab,善用tab补全;
  3. o/t,当前/新标签打开页面;
  4. Shift+h/l,后退/前进,一般来说后退用的比较多;
  5. u,undo,撤销关闭的标签;
  6. d,关闭当前页面;
  7. r/R,刷新/强制刷新当前页面;
  8. /,当前页面查找,回车后n标记下一个关键字,N标记上一个关键字;
  9. y/Y,复制当前标签页url/复制选中的文字;
  10. gg/G,跳转到页面顶端/底端;
  11. p/P,粘帖并打开当前剪贴板里的url地址,小写当前标签打开,大写新标签打开;
  12. gf,查看页面源代码;
  13. f,进入QuickHint modo,用的不多;
  14. :pref, 打开Fx opinion对话框;
  15. :addons,扩展列表,同样可以tab补全;
  16. :restart,重启Fx;

来一张 vimperator 的快捷键列表,基本上常用的都有了。

vimperator 同样有类似 vim 的配置文件,_vimperatorrc,保存到当前系统用户目录下即可,vista 是 C:\Users\Heyward。 我的 _vimperatorrc:

"默认显示菜单栏,工具栏,书签栏;隐藏任务栏;
:set guioptions=b

"解决vimperator与Google reader跟gmail快捷键冲突,自动PASS THROUGH状态
autocmd LocationChange .* :js modes.passAllKeys = /mail.google.com/.test(buffer.URL) || /google.com\/reader\//.test(buffer.URL)

:imap <C-v> <S-Ins> "粘帖键映射

vimperator 看似很复杂,不过上手后就发现会有多么高效,推荐 Fx 必备扩展。

Could not find the main class问题

因为毕业设计要用到jsp,这两天在准备着搭Java环境。下午把JDK装上,配置好path,classpath和java_home几个环境变量,然后随手用EmEditor中自带的Java模板自动生成了一个hello world函数,测试一下JDK是否装好。

hello.java
class Hello {
    public static void main(String args[])
    {
        System.out.println("Hello, world!");
    }
}

编译:javac hello.java,顺利通过,然后运行:java hello,报错:

Exception in thread "main" java.lang.NoClassDefFoundError:
……
Could not find the main class: hello.  Program will exit.

编译能通过,不能运行,这个报错生生折腾了我两个小时,起初以为是环境变量没设好,改了N次,仍然是报错,气得半死。Google的时候说Java严格区分大小写,就留心了一下,果然是这个问题。类名是calss Hello,大写,文件名却是 hello.java,小写,编译的时候javac不区分大小写,所以编译通过,生成 Hello.class 文件,运行的时候却是java hello,与类名不符,进而 could not find the main class,所以报错。

教训啊,一定要注意,Java里文件名要和main class类名完全一致,大小写严格区分。还有,写程序时候遇见错误一定要心平气和的去debug,越急躁越不行;也要注意写程序的细节问题,细节决定成败。

配置Vim

  1. 添加ctags、taglist插件。官网下载这两个插件。taglist解压后合并到 $VIM/vimfiles 下doc和plugin目录,ctags.exe单文件放在vim安装目录下
  2. ctags使用:源文件目录下cmd中运行 ctags –R,会在源文件目录下生成一个tags文件.
  3. taglist使用很简单,常用的命令有 :Tlist,ctr+],ctr+o
  4. 添加SearchComplete.vim插件,很小巧,功能就是搜索时候支持Tab补全关键字。

插件就先这么几个,慢慢的用了再添加。然后一个主要的就是 _vimrc 配置文件,这个更是要慢慢摸索,把现在的贴出来先:

" 自动载入_vimrc配置文件
autocmd! bufwritepost D:\Program Files\Vim_vimrc
" 不同中文编码显示
set encoding=utf-8
set fileencodings=utf-8,gbk,chinese,latin-1
if has("win32")
    set fileencoding=chinese
else
    set fileencoding=utf-8
endif
language message zh_CN.utf-8
" 默认目录
cd E:\Vim
set backupdir=E:\Vim\Backup
" 显示行号
set number
" 禁用swf交换文件
setlocal noswapfile
" 使用中文帮助文档
set helplang=cn
" 自动缩进,tab缩进
set autoindent        "always set autoindenting on
set smartindent       "set smart indent
set smarttab          "use tabs at the start of a line, spaces elsewhere
set expandtab
set tabstop=4
set shiftwidth=4
" 自动匹配括号
set showmatch
set mat=2
" 状态栏显示
set statusline=%F%m%r%h%w\ [TYPE=%Y]\ [POS=%04l,%04v][%p%%]\ [LEN=%L]
set laststatus=2 " always show the status line
" 侦测文件类型
filetype on
" 启用语法高亮
syntax on
" smartcase,搜索时默认不区分大小写,只有搜索关键字中出现一个大字母时才区分大小写
set ignorecase smartcase

最后一点,关于vim插件安装位置的问题,滇狐大侠这篇文章里有很详细的解释。我的方法,$HOME目录不装,牵扯到系统重装恢复,比较麻烦;$VIMRUNTIME目录尽量不装,这里面是发行版自带的插件等,升级vim时候可能会覆盖掉;自己安装的插件、文档等全部放在$VIM/vimfiles目录下,这样既便于管理又安全。

趁着毕业设计把以前许多想做的但又偷懒没做的拿起来,下一个,版本控制,做项目的必备啊。

考研成绩出来了

RT,昨晚上一点多的时候论坛里说可以查分了,查了一下:

政治    外语    数一    专业课     总分
62      45      45      73      225

跟自己的估计差不多,第一天的两门正常吧,英语的作文写的有点跑题;第二天上午的数学崩溃掉,脑子空空如也,都是很正常的题目,平时在下面练习的很顺手的东西,写不出来,当时在考场上就想着交卷走人,还是忍住了,坚持到最后;由于上午的崩盘,下午的专业课算是半放弃了,没有好好的写完,不完美的结束了考研经历,结果当然也不会完美。

经历过就行了,不多想了,好好准备找工作吧。在这里留个记录,给若干年后的自己有个后悔的机会,曾经不是很努力的考研经历带来的这个结局;当然,若干年后也有一个不后悔的机会,坚持到了最后,经历过那种心理折磨,成长的经历吧,只有自己知道。

毕业设计开始了

上午学院开毕业设计动员大会,无非是强调一下毕业设计的意义,要求,流程等等,然后把选题分发下来,中午一回来大家都开始疯抢,我的题目:

利用JSP和SQL server实现局域网内办公自动化系统。

选题差不多有四类,MIS类,Web类,系统应用程序类以及算法复现类,难度应该是依次增加。我自己偏向于Web程序设计类,自从大三下开始,慢慢的就开始把自己的方向转向Web程序设计,桌面编程基本上荒废了。上学期的课程设计就是用PHP+MySql实现了一个简单的留言板,很简单的功能,对自己也算是一个锻炼。今年毕业设计就想着还做Web方面的,算是积累一些实战经验。

这个选题初步打算是用JSP+SSH(Struts+Spring+Hibernate),丫头是做JSP开发的,说目前这个组合企业级的开发比较多,是一个很流行的开发组合,就打算尝试一下,虽然现在来说啥都还不知道。下午去图书馆借了本JSP的书,语法方面的,大二学Java时候有一部分是JSP的东西,不过尝试不多,没有做过什么项目。暂时先把丢掉的东西捡起来,然后看老师提供的需求,加油做。

其实还有一道题挺想做的,博客网站设计,没有要求具体语言,当时就特想要这个题,用Python写一下,然后架设到GAE上,做一个辅助博客。不过计算机专业毕业设计有一个潜规则,搞Web做网站的答辩时候得分普遍较低,那帮子老师可能感觉写Web的没有搞算法的那么高深,不应该是科班人做的。科班的好像都应该是实现什么很牛逼的算法复现才说的过去……再一个考虑找工作时候写简历时候,做一个办公自动化系统看起来至少比写一个博客网站来的正规高级一点,自己写一个博客系统给人的感觉就有点份量不是很足。也见过很多coder业余时间写一个Python blog假设在GAE上,算是一种学习能力扩展,尝试新东西吧。现在GAE确实非常热,Google云计算的一个重量级武器,目前来说大型应用还不够成熟,不及Amazon EC2、S3那样可以拿来做企业应用,不过GAE一直在加强,今年也将推出付费应用,功能将越来越强大。好吧,我承认去年的时候就想着用GAE做一个博客应用,一直没动手。。。今年要是时间充足的话尝试一下,功能不要求强大,简单的博客抑或是一个留言本也行,算是09年的一个小目标吧。

努力做毕业设计,也要努力找工作,加油!

卸载Microsoft .NET Framework Assistant扩展

备份Firefox配置时候发现Microsoft .NET Framework Assistant扩展,自己都不知道啥时候MS给我装上的,Google了一下,可能是自动更新 .NET 3.5 Framework SP1时候装上的,居然一点提示都没有,够流氓,更流氓的是常规卸载Fx扩展的方式居然不能卸载,Addons里面卸载按钮不可用,杀之。以下是Google到的卸载方法:

  1. 备份Fx配置文件,安全第一。然后关掉Fx。
  2. 删除 C:\Windows\Microsoft.NET\Framework\v3.5\Windows Presentation Foundation\DotNetAssistantExtension 下所有文件,不放心的话可以先备份再删除。
  3. Fx地址栏打开 about:config,搜索 general.useragent,重置 general.useragent.extra.microsoftdotnet
  4. 打开注册表编辑器(开始-运行-regedit),定位到 HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Firefox\extensions,删除对应项。Done.

最后鄙视一下MS这种强盗流氓做法。

Update:发现还有一个 Windows Presentation Foundation 插件,在 about:config 里面重置 microsoft.CLR.clickonce.autolaunch 即可。