跳至主要内容

博文

目前显示的是标签为“编程”的博文

门口的家庭服务器

自从买了树莓派起,门口一直放着一个服务器。后来pi坏了,换成了旧的笔记本。 后来把大学时候的dell的屏幕拆下来,买了一个control board,钉在了门口的柜子上。 现在门口的笔记本连着两个usb外置硬盘,音箱和话筒以及摄像头,然后控制着外面的显示器。 逐步的,服务器已经有了很多功能。总结一下: 挂载两块硬盘,可以局域网访问 git库,放了各种项目以及minecraft的存档 blog同步,以及静态化,每十分钟检查一次feed 家里ip定期登记到固定ip,以此实现在外面远程访问家庭服务器 显示 天气查询:用的是world weather online的api,查询三天的预报和即时的天气 日历显示:把未来一周的google calendar日程显示出来 各个服务的状态监视,以及各种update的最后时间 显示log文档的最后动态 自定义告示板 临时:监视网站信息,以红字显示大型醒目alert 屏幕待机省电 依据时间,家里有没有人,和声音监控控制屏幕开关 手机端,回家和离家时在服务器上登录 夜间关闭期间解锁手机点亮服务器五分钟 白天安静时关闭屏幕 热敏打印机 网页控制打印 手机端,send文字内容到应用,可以直接打印 待上线功能: 单词表,基本上测试一下就可以上线了 声音识别 识别出声音片段 判断声音类型 如果识别为语音,尝试用google api进行语音识别 精确控制屏幕 打印 手机端接收到图片时,处理后传回服务器,打印 控制键 播放音乐时切歌,控制音量 实现其他各种需要互动的功能 摄像头 监控 运动识别 警报 账本 监控dropbox,自动读取excel文件到数据库 扫描小票自动生成数据 其他客户端添加数据 导出同步到excel文件,并上传到dropbox 也许以后搬别的地方换个专门用的服务器设备,多放几个硬盘什么的。 新电脑的虚拟机都比笔记本快!

日志系统更新

因为网站服务器变慢等诸多原因,把blog弄成了静态的。(其实是增设了静态版本)用的是 Hugo ,编译器放在家庭服务器上。 基本思路是: 一次性把blog导出为XML,用解释器转成md,Hugo编译,FTP同步到网站。 每十分钟抓取一次Blogger的feed,看看有没有新的entry,有就把它转成md,编译同步。 大体上没问题。但是现有的导出XML解析器都不能直接用,于是写了一个。。。而且Blogger在线编辑器存的HTML像屎一样,没有规律,全是妖蛾子。不过在正则表达式的强烈攻势下,HTML的各种问题都被纠正了。 如果还有下一步就是自己写爬虫和静态页面生成器了。 滚去写论文了。

准备用Python3重写GTalk机器人

今天在外面试图使用机器人的时候,机器人再度崩溃。这个机器人在处理中文的时候极其不稳定,其原因在于Python2处理字符串时默认使用ascii编码。在程序里显式的转换几次以后,我已经不清楚哪需要ascii编码哪需要utf-8,哪个字符串是ascii,哪个字符串是utf-8了。一方面是由于python处理变量的方式比较随意,另一方面它没有从底层支持utf-8,使得这些问题十分恶心。 其解决方案,python给出的是,用python3。python3改了一些语法,使语言更加严密,但是无法兼容旧代码。之前用的xmpppy好像也没做出python3的支持。于是需要从头来一遍。虽然代码重写很麻烦,但是代码的基本逻辑已经确定了,也不是太费脑子的事情。 另外,今天机器人崩溃的时候,我还没有得到家里的ip,这样我就没有办法重启机器人,无法登ssh。于是我在blog的空间里写了一个小脚本,能够记录一个ip地址。然后在树莓派上写了另一个脚本,每十分钟检查一下家里宽带的ip,和空间里的比较,不一样的话就重置空间里的ip。这样我最长等十分钟就可以连上家里的ssh了。 这种永远可以连线的感觉,好像延长了干预世界的触手。。。

遇到了难题

重新开始做Project Euler之后,遇到了一个难题。。。具体的说就是 这道题 ,除了暴力解,没发现什么好方法。而且改进了一下,比暴力解还能优化一点。但是在当前计算能力条件限制之下,只能算到10。显然是没有找到诀窍。理论上Project Euler中的题都是不需要暴力解的。 谁来帮帮我。。。。。。

寻找正事

为了不知道能不能签成的HiWi,学学python。但是又没什么好途径。想来想去想起了Project Euler,当时做了74道题,后来卡在一道题上就干别的去了。说来惭愧的是,我竟然一点都不觉得半途而废可耻。唉。。。 另一件事是,终于订了显示器支架,而且是dual的。这样看转屏幕文档问题就完美解决了。显示器的灵活性也提高了,和哈哈哈哈哈哈。

人就是不能偷懒啊。。。

刚才懒得弄数据库存在了文件里,果然出问题了,写不进去。结果倒好,所有可见的25个日志都被重发了N次。 现在弄到数据库里去了,每个日志都保存了标题和唯一的id。这样应该是没什么问题了。 再测试一下。唉。。。然后就是等梅梅同学发个日志,测试一下用她的ID有没有问题。

blog发布进一步简化

三个同步blog带来的麻烦真是。。。但是由于对网络服务的不信任以及日志本身的重要性,还是留着这三个。。。 这次简化的主题思想是自动同步。由于wordpress的接口比较简单,于是就从blogger同步到两个wordpress。本来的思路是,用ifttt监控blogger,一旦有新日志就自动发到wordpress里去。但是只能设置一个wordpress的帐号,而且对分类没有支持,对作者没有支持,于是开始想别的办法。 第二次尝试,用ifttt触发自己写的php,用这个php把blog同步过去。php做完了,用GET提交blog标题,然后从feed里提取该这一篇,发到那两个里去。到这都没什么问题,但是ifttt无法访问网站,只能用dropbox什么的下载某url的文件转存。但是每次都会发生莫名错误,有时根本不转发,有时转发很多次。 于是放弃了ifttt,第三次尝试,手动触发。。。这个概念立即被否定了。。。 第四次尝试:用schedule访问触发。但是一个blog是BSP托管的,另一个是shared host,不能执行schedule task。搜索了一下发现了免费的第三方 网站 ,提供定期http访问。然后修改了一下php文件,记录最后一次发布的标题,和feed里最新的一个比较,不同时发布该日志。由于实在懒得写了,把标题记到了一个本地文件里,权限什么的问题都很大,准备有时间改一下,至少存到数据库里什么的。 总之现在这个同步器已经上线了,这篇日志就是第一篇自动触发同步的日志。(如果那个网站可靠的话。。。) Drück mir die Daumen!

减肥的日子里就是一个吃啊

虽然早知道会这样,但是也太饿了吧。。。而且觉得永远都吃不饱了。。。 做什么事的时候瞬间走神眼前突然晃出吃的来的这种事虽然这几天已经几乎不会出现了但是一旦想起了什么吃的就一天都忘不了啊混蛋。 前几天,突然想起了葱油饼,于是风风火火的和面烙饼。还做了一小锅鸡蛋柿子汤。然后吃到饱,喝汤喝到打嗝。一切来得如此自然,好像减肥这件事就是梦里的一场梦,没有开始没有结束,就是刚醒的时候剩的那么点感觉而已。但是吃完了突然觉得不对,原来吃饱这种事才是做梦。。。 但是第二天还是淡定的把剩的饼烩成汤,吃得不亦乐乎。 实际上这个礼拜对饮食的控制已经如上所述的分明没有之前的那么严苛了,话说这已经不能算是控制了。体重下降速度也明显慢了许多,第一周的每天一公斤再也没有出现过。不过好在至少没有出现反弹。 总之没饭可吃的日子里,饥饿的灵魂愤怒的燃烧,总会萌生出许多能量来。我用这些能量做了一个关于吃饭的网站。。。这个 网站 功能十分简单,就是在里面记录各种会做的吃的,给这些吃的贴各种标签以便整理分类查找,然后计划未来几天做什么东西吃。 当然从另一个意义来讲,这个网站对我来说是一个Milestone,标志着我从半吊子的会编点php的人一举成为半吊子的会点php和html和css的人。。。这个成就对于别人来说可能不算什么,可是对我来说,其实也不算什么。。。总之这个网站算是一个网站了,有后台服务器端脚本,有前台的设计,虽然不咋好看但是审美问题是设计师们研究的问题我没那两下子了,重要的是还有js脚本。很多高阶的功能我还没有学会,但是基本的东西算是掌握了。 虽说本人不是什么设计型人才,但是被逼无奈中居然还给别人画logo。。。我觉得唯一的原因就是我有时间,然后还会用各种画图的软件。然后我学着各种牛掰设计师在那画各种黄金分割的参考线,然后各种往上凑,最后其实就是照着开源字体描了个边,然后各种改。。。 当然这个logo也不重要,重点是logo背后的企业,这个企业有个牛掰的团队,也就是俩大老娘们儿和她们的老爷们儿以及开着公司的顾问邻居。这个牛掰的团队,本着不想学习不想考试的精神和野驴一样的惊人行动力,在一星期之内居然把一个想法整得像模像样风声水起。我不禁要问,这帮马上要考试要交论文的人是有多没正事多不着调啊。。。不过不着调归不着调,我还是十分看好我们这帮人。年轻嘛,年轻人就是应该活得像野驴一样,在夕阳里你追我赶,把热情...

自从S2来了以后

S2具体是哪天来的,已经不记得了。查各种记录,发现是上周五。原来才这么几天。。。 好像自打S2来了以后就没再继续编dokueditor,只是刷机写wiki的时候用了一下,其间出了几个错误,修改了一下。 这一个多礼拜,把DEFY刷了好几次,试过了MIUI和CM7的两个版本。最后用的是CM7的RC1,感觉很好,没什么问题,而且快了很多。关键是能运行flash了,其实也没什么flash能运行的。。。 S2各种好,但是我用不到。。。不过自从DEFY刷了以后,我觉得完全够用了。 周三吃了一顿烤肉,冒雨。然后剩下的肉吃了两天。 期末要来了啊,得开始看看这学期的课了。。。PG这个东西麻烦得要死,永远都做不完。其实还挺希望早点毕业的。。。

关于dokuwiki

由于这两个礼拜集中的在写DokuEditor,这个应用现在已经有点样子了。准备等编得差不多了的时候写个详细的集中的关于Dokuwiki的介绍。 需要介绍的内容: 关于wiki 什么是wiki 为什么要用wiki wiki能做什么 关于dokuwiki dokuwiki的优势和劣势 dokuwiki的安装 dokuwiki的主题和插件 dokuwiki的语法 关于dokuwiki的离线编辑 DokuEditor DokuVimki 但是在这之前先要确认一下dokuwiki有没有被墙。。。

编程进展顺利

昨晚继续做DokuEditor,进展顺利,图形界面有了个小眉目。 还是没有系统的看过SWT,东拉西扯的就拼出来了个界面。 另一方面,上课这边就相对的没时间了。本来这个应用是帮助学习的啊。。。现在本末倒置了。

GUI是个大问题

wiki编辑器的基本功能实现是没有问题的。但是wiki编辑需要的交互性远大于blog,所以GUI是必需的。 java的GUI是无法接受的。Qt倒是很好,只是C++好久没用过了。而且从没用它编过大程序。所以现在问题不在编程上,而是在编译上。 python倒是也可以编Qt的界面,但是也是完全没有用过。也不知道能不能静态编译。 直接在手机上开发倒是简单,但是手机用着没有电脑方便,只能补充不能替代。 回去好好研究编译吧。

关于项目的一些新想法

前几天想做的那个帮助学习的东西,经过了几天的沉淀,有了一点新的想法。 我想写的那个东西实际上是wiki的一个加强版 wiki没有桌面应用程序,web应用虽然功能没有问题,但是性能比较弱。 桌面应用程序可以结合本地资源改进wiki 一直在用的dokuwiki实际上是有一个编辑器DokuVimki的,但是最近不知道什么地方不对了,每次一连接上之后网站就慢得不行,已经几乎不能用了。 dokuwiki有xmlrpc接口,今天用java试了一下,可以用。 乱七八糟的记下来了,总之就是web版的wiki用得十分不爽,准备开发个GUI。 GUI没什么想法,暂定用Qt,但是Qt没有用过,一切从零开始。又是一个漫长的过程。不过我在windows和ubuntu里的Qt4编译环境都应该是架好了,慢慢来吧。 终于能写点有用的东西了,欣慰啊。。。

我想要个软件。。。

我想要个这样的一个软件,来帮助学习。。。 起因是这样的,上课记笔记,下课写作业,已经慢慢的都是在用电脑了。加上个手写板,文件和笔记的组织和管理,越来越成问题了。 这个软件应该有如下功能: 组件一:文件组织管理 文件标签管理 全文搜索(至少标题搜索) 标注和笔记的管理 组件二:文件手写标注 任意文件标注 任意点插入注释页链接 标注和原文件分离,但透明关联管理 所有标注索引 组件三:笔记 本质上就是没有关联的标注 插入任意链接(到其他笔记,到任意文件,到网络) 文字和图片插入 这样基本上就能满足所有的需要了。但是速度是个大问题。 据说mac里面有人开发了类似的东西了,但是咱是用不起mac的人。。。windows下有onenote,但是文件组织不能,而且windows的手写板驱动太弱了。linux下也没有什么好的组织文件的东西。虽然标签管理这种事可以通过符号链接来凑合,但是那也太凑合了。手写和标注只有xournal,但是没有链接功能。 这个东西有点大,有点不太敢开始弄啊。。。 哪个公司给我开发个吧。。。

能发图第一版完成啦

终于做好了,发个小花壮壮门面~~~ 不过问题还是比较多,因为很多检验都被我省略了,真是非常不好的编程习惯。。。 无论如何,这一版的发图功能应该是能实现了,简直是天大的进步。(掌声)但是我太需要一个格式编辑器了,下一版里一定会实现的 下一步 预计 要做的事: 提高安全性,自动保存,尽量少崩溃 增加格式编辑功能,不能手写HTML啊,尤其不能用手机手写啊!!! 改善图形界面,好不好看倒是次要的,应该得更好用一点 上传图片的EXIF信息,虽然是编辑过的文件。。。 总的来说就是这些,纪念一下,哈哈哈哈,太有成就感了。

上传成功发帖祝贺

实在太不容易了。 还是用的GData的jar,但是一直说找不到某某库,研究了一下午,根据 这个页面 ,缺少activation.jar和mail.jar。于是添上了,但是还是不行,又搜索,发现 这里 有人碰见同样问题。解决的办法是,用 这个 版本的jar。 然后居然就发上去了,我简直高兴得屁滚尿流。。。 这样发图就没有障碍了。 等一下把剩下的代码写完。 木哈哈哈哈哈哈哈~~~~~~~~~

发图遭遇困难

弄了一下午上传图片到Picasa,结果没成功。 但是不成功的只是上传部分,前期的处理还是很有成效的。 现在做到了: * 从文件浏览或者图片浏览的地方分享图片,便可以用我的程序打开 * 打开以后读取EXIF信息,旋转图片 * 将图片缩小到800X600,这样可以无限上传 * 把生成的图片存入临时文件,返回路径 如果GData的Picasa接口在Android上能用的话,现在已经完成了。。。 解决方案: * 用GData的alpha源码 * 调用系统上传到Picasa的action * 用xmlrpc硬来 明天估计就有图了,哈哈哈哈哈哈哈

继续折腾

最近折腾的主题非常多,昨晚又申请了一个freehosting的空间,用后台直接导入了herobo的数据库备份,完全成功。 把邻居暂存在这的显示器拿来当双显示器用,看着有点晕,非常晕。。。 看了DAP2(Datenstruktur, Algorithmus, Programmierung)的实习内容,觉得非常有必要弄一下,之前学操作系统的时候只稍微弄过一点,现在觉得用的时候完全抓瞎。 用笔记本编程序的时候觉得屏幕太小太不爽了,于是想起了双屏,可以一个屏幕看参考,一个屏幕编文本。。。真是太邪恶了。 于是想再往台式机里装个Ubuntu,正好Ubuntu10.04出正式版了,笔记本太破装不上了,嗯嗯。 Live Writer真舒服,btw发现微软拼音2010比原来的版本快很多,那个快捷版的使用起来基本和Google拼音差不多了,但是没有绑定网络账户,更新词库是用Windows Update,直接否定了这个产品本身。我等用盗版的人是整天防备着Update的。要不是Live Writer对其他所有的输入法兼容都有问题,我才懒得用微软拼音。。。 为了往台式机上装Ubuntu,把硬盘上东西往移动硬盘里面倒动,发现陆续下载的游戏已经一百好几十G了,得挪一个小时。。。其间下载了Ubuntu的iso,还剩大约一个小时,写个日志,还剩85G。。。 折腾,继续折腾。。。

用UBUNTU在写日志

其实这个Ubuntu的图形界面十分漂亮,不用终端基本也可以完成日常的操作了,十分舒服。 用Ubuntu是因为Windows启动太慢了。。。原因是启动项太多懒得清理。。。那些个QQ啊MSN啊要是不自动运行着就永远想不起来上,现在干脆用这个系统,不上算了。。。 Ubuntu真是一个干净的系统,想要研究一下编程的事情。。。说起来惭愧,除了算法以外的应用的编程基本什么都不会,趁现在有时间赶紧补习补习。 就是这样。