Category: 网页开发

VPS、全局优化、Python、并行

说说最近的事,找不到一个合适的标题,就以若干关键字为题好了。

最近购买了一个VPS,新年特价,30刀一年,2G内存,续费仍然是30刀一年。对,你没看错,没有少写一个0
据说这家超售很严重,但是技术水平不错,不大看得出来。
有了VPS就可以继续肆无忌惮的挂网站、爬网页什么的了。实测CPU很给力,跑程序很快。但是毕竟是便宜货,刚入手两星期左右,今天差不多挂了10个小时才修复,看在价格上也就不说什么了。
科院选课助手 ishangke.net 目前已经迁移过去了。由于配置的提升,一些耗费内存、CPU的操作有明显变快。
预计一个月内可能会上线一个和音乐有关的小站,请期待。兴奋的是,以前从未发布过类似的东西。不过悲观的认为,不会有几个用户吧。
最近在想一个相关的问题,我如何通过网上能获得到的数据,进行音乐推荐呢?目前还没好主意。

这段时间在外访问,生活上比国内要无聊很多。这边的老师在做一些全局优化的问题,针对的是实际工程上的问题。我完全不懂背景,单从数学上来看,就是说有一个非常复杂的函数,复杂到求一次函数值需要解一大堆东西。函数本身也写不出表达式,只是给自变量能求出函数值而已。目的是用最短的时间尽可能找到函数最小值。由于求一次函数值花费时间很多,比如要将近一分钟。所以花费的时间就约等于函数值计算的次数。也就是要尽量少的找一些点求值,却希望找到最小值点。基本思想就是用一个函数去插值,但是为了求解到全局最优,又不能一直去找一堆距离很近的点,也要去尝试一些“未探索的区域”。所以对这两个目标进行一种权衡。

这边的程序都有Matlab和Python两个版本。老师说是Matlab要付费所以后来的程序都选择编写Python版本,于是果然看到了国外开始用Python进行科学计算的实例了。但是我用的太少,稍微补了一下Python和NumPy的基本知识,略有收获。第一步的任务只是用现有的程序去测试一个实际问题,感觉难度不大,具体意义大不大,由于不了解问题背景,我也没有发言权。我觉得有必要做点什么在国内宣传一下使用Python做科学计算,但是还没找到力所能及且自己觉得有意思的事情。而且我自己也才入门水平。

我感觉他这里的并行应该是希望能到集群上跑,但是他这里没有集群环境,用的是一些配置很不错的多核服务器。然后程序采用的是单机多进程,不是多线程。所以逻辑上来说移植到集群上并行跑问题不是太大,只要找到相应的工具应该就能办到。

第一次玩Hackathon

前几天去腾讯玩了一回Hackathon,确实很好玩,某种程度上比acmicpc还好玩。
之前根本没有打算进决赛的,所以复赛也没好好做。最近很忙,如果腾讯把时间推迟一周,我就肯定放弃了。
我们项目选题是分析微博/人人用户的特征,随便指定个人就能分析点有意思的东西出来。这个思路是yangzhe1991友情提供的。
爬数据、整理数据、分词、画图、前端展示。个人认为至少从代码量上看,可能是里面最累的项目(我可不愿意只做出半成品……)。这也是为什么第一天一直没有可展示的东西做出来的原因。队里BearForest也有做网站经验,所以配合起来比较容易,而javaman搞C++,主要负责后台数据处理。我们最不擅长美工,由于腾讯配了设计师,也容易很多(专业的人真NB啊……画图又快又好看)。前端其实是最容易做的,只有画柱状图和tag云略麻烦,但前者我以前做网站用过很好的插件,比较熟悉。所以前端放到最后再做,反正没有难度,结果就导致中间裁判们来“骚扰”的时候,实在没东西可以给他们看。
============据说中间插播广告效果最好============
ACM/ICPC信息站 http://acmicpc.info
ACMer博客瀑布流 http://blog.acmicpc.info
晒代码 http://shaidaima.com
acmicpc微博 http://weibo.com/acmicpc
acmicpc人人 http://renren.com/acmicpc
====================广告结束==================
三个人一夜没睡觉,期间BearForest喝了4罐红牛,javaman写了一首诗……
早上裁判们再来看的时候,都觉得我们突然就做出东西了……汗……其实因为整后台最花时间而已。
答辩一切顺利,程序没什么大bug,裁判们测试的几个人都算的还不错。其实除了微博,我们把人人网也做好了,只是正常人都不会记得自己或者其他人的人人主页地址的(因为一般都没有个性域名……),所以没特意找人玩了。早考虑到这点就暂时先不做了,多分析一个网站还是花了不少精力的。
晚上吃饭的时候,BearForest问我觉得能有第几名。我说估计在第三第四之间吧。结果就真的被我说中了……莫非是因为我抽中iPad导致RP用光,居然真的是第四名。略桑心。但是发现,前三好像都是app吧……诺基亚用户表示无法跟上app的潮流,所以只好一直搞web玩。
结论:Hackathon很好玩。
比起ACM来,Hackathon不会因为出题不好、数据出错而影响效果,也不会因为只考算法而不够全面。做出东西可以展示,时间也不是太长。确实很好玩。只是评价有一定难度。大家选题差距较大,评分标准没有ACM容易统一。个人认为Hackathon比AI大赛也好玩一些。如果存在一种结合了ACM和Hackathon的比赛形式也许会更好玩吧,不知道存在吗?
但可惜这不能经常玩,身体受不了。要是之前想过的每个点子都这种强度去搞,早就搞完了。而现在还有很多想法都搁置着。我和licstar都没什么空,有一些好玩的点子还都没有动手。并且平时维护已有的几个网站就已经比较累了。
收获公仔、抱枕、iPad、Kindle,还是很赚的啊。。。明年这时候也还没毕业,如果有空再去玩一下吧。
截至本文发布时,报道比赛结果的ACMICPC人人公共主页状态被转发145次,ACMICPC微博被转发80次。应该给我们无盈利的acmicpc.info团队一个宣传奖什么的 @_@

晒代码——为ACMer定制的代码分享平台

本文转自 http://acmicpc.info

你有没有遇到过这样的情况:
花费一番功夫AC了一个题,觉得很过瘾,有冲动和别人分享自己的成果;
费了很大力气还是过不了某个题目的时候,真心想学习一下别人的代码;
自己的代码效率太低,想了解别人用的是什么方法。

来晒代码看看吧!
晒代码为志愿开放源代码的网友提供展示和分享的平台;
晒代码为收集到的代码进行归类,便于初学者选择某一类的代码和相应题目学习;
晒代码收集网友们自愿公开的代码,并且确保这些代码可以在各大OJ上提交正确;
晒代码专注于为ACMer的定制简单、实用的功能,目前已经支持分享PKU, HDU, SGU, ZJU四个OJ的代码,满足了大多数国内ACMer的基本需求;
晒代码也在进一步完善功能,开发插件,增加OJ支持的计划当中。

这就是晒代码——送给全国ACMer的元宵节礼物,欢迎访问 http://shaidaima.com

爬网站的一些经验

以前曾经做过一个收集各大OJ近期比赛的小工具,挂在NKOJ上:http://acm.nankai.edu.cn/recent_contests.php,添加过一些小创新,今年也被杭电OJ抄走了,不过还没有我的版本功能完善,主要原因还是因为我做的早一些,遇到过一些BUG,思考过怎么去绕过他们。之后我又因为各种原因爬过几个网站,稍微有一点经验,简单总结一下。

Continue reading »

域名无法正常解析的解决方案

最近新开网站acmicpc.info,部分同学反应无法访问。经检查原来是因为域名无法正常解析,国内部分地区的DNS解析服务屏蔽掉了一部分国外域名。有一种方式是让用户把自己的DNS设置改成8.8.8.8,这个是谷歌的免费DNS服务,很牛的IP,而且也不会屏蔽国外的域名。但是这样显然不是彻底解决问题,前些日子折腾了一下,找到了不错的解决方案。

Continue reading »

欢乐的一号店(半技术分析)

一号店(http://www.yihaodian.com)貌似最近广告砸了很多钱,北京的很多公交站牌上都有一号店“商品墙”的广告,用手机拍一下就能传到一号店购买商品了。虽然不知道有多少人真的会买,但是创意确实不错。我对一号店的网站进行了一番观察,发现了很多有意思的地方,有些是技术方面,有些是用户体验方面,因此本文勉强算半技术分析。前面部分先多搞点好玩的,后面再上代码~

Continue reading »

合作建网站的初期工序

最近和人合作搞个网站,之前有ishangke.net的一段经历,所以起到了一些作用。总结一下初期工序以备后用。

Continue reading »

星星相CODE——JS制作网页动画

本篇继续上一篇日志,用JS写了一个简短而有意义的动画,紧扣本次百度之星的主题:星星相CODE。

Continue reading »

利用各种好用的Web接口创建web口袋书

前些年有一类产品迅速增长,并且一直延续到现在。就是把各种桌面应用都搬到web上去。这样做最大的好处是平台兼容性,因为浏览器是各个操作系统都有的,包括手机。于是涌现了一批好的web应用,包括webQQ,云输入法,web版office,甚至web操作系统。这些应用基本都是免安装的,非常方便。我自己也曾制作过百度划词查询小工具,也属于web应用。

Continue reading »