分类目录归档:vicalloy的庄家

黑客News

在SAE上架了个wordpress博客,用来做阅读分享。
黑客News 是一个关于“互联网、编程、创业”的团队博客。我们在这里分享我们认为有价值的文章以及我们认为有趣的东西。
全文转贴导致互联网上有着太多的重复、垃圾信息,因此博客上只发布原创内容。对于第三方的优秀文章,我们将只写内容摘要或推荐理由。

为博客增加Markdown支持

前些天给ipad买了个蓝牙键盘。想日后短途旅行可以直接带上ipad,配合蓝牙键盘,整理照片发博客啥的无压力。遗憾的是ipad上并未找到什么好用的wordpress客户端软件。
wordpress的官方ipad客户端只支持原始的html,使用原始html写博客完全没有书写的乐趣。
Markdown 是一种「标记语言」,通常为程序员群体所用。Markdown的语法比html要简单很多,相应的写起来也要舒服很多。
我通过插件Markdown on Save Improved,实现Markdown的支持。Markdown的语法参考:php Markdown Extra
这篇文章就是用Markdown所写的。
调整博客的字体以及字体大小

body{font:75% "Palatino","Georgia","Hiragino Mincho ProN","Microsoft YaHei","WenQuanYi Micro Hei",serif;...

我的博客史

前些天看了下自己的博客,本博客第一篇博客的发布日期是2005-08-05。

一不小心已经近7年了。

这个博客最早托管在微软的msn space。msn space使用体验非常糟糕,而且访问速度也不怎么样。终于有天不堪受虐,买了个虚拟主机自己托管,博客程序也切换到wordpress。有朋友说我在博客中流露了太多心情,所以在迁移的过程中删除了不少生活相关的博客。

在这个博客前,还曾在天涯写过博客。博客的更新日期为2005-1-5~2007-11-8。这是一个介于微博和博客之间的博客,一个纯粹关于心情的博客。里面写有我的困惑与纠结,写满了我关于青春的记忆了,写着类似“人生如戏,戏如人生”的词句。博客的创建日期是2005-1-5,不过里面的不少文字写在2004。当时在天涯的一个分版中开了一篇帖子用来写心情。后来在开头天涯博客后将其中的内容转到博客。帖子的发表日期在2004-8-1

再往前追溯就是我的个人主页了。在学校时有写一些小软件,为自己的软件做了个网站。在每次软件发布的时候都要写个简单的发布日志。从现在的角度看,那些所谓的发布日志倒更接近微博或博客。在2002年左右网上有着非常多的免费个人主页空间,我的个人主页用的就是免费资源。随着互联网泡沫的破灭,互联网上的免费资源也都消失殆尽。花了¥100买了个静态主页空间,将个人主页迁了过去。此后因为没有续费,空间关了,再加上后来的硬盘灾难,数据应当是彻底的找不回了。

又挖了一个新坑-_-,文本分享网站

网站 http://qnotes.sinaapp.com
代码 https://github.com/vicalloy/jstnote
类似 http://dpaste.com/ 的文本分享工具。
dpaste.com 用来贴代码,这个用来分享一般文档。
支持TXT, Html, Markdown, Textile, reStructuredText格式。
匿名使用,在保存文本的时候设置编辑密码,凭编辑密码对文本进行编辑删除(密码暂时还不可修改-_-)。
罪魁祸首是我想随便写个小东西放到SAE上,把SAE的免费配额用掉点。
最开始只是想做个最简单的在线标记语言标记分享工具,预计花1~2天时间做到 http://dpaste.com/ 的程度。
接着…
考虑到使用的方便性,取消了注册功能。
因为是文档写作工具,所以编辑功能是需要的。
后来想评论功能得加上。
然后想加上评论功能后就是一个类似百度贴吧的匿名社区了,那不如把tag也加上。
最终就成了现在的样子。
因为功能一直加,时间也远超预期(好在没拖到下周)。
UI用的twitter-bootstrap。
使用的django框架加若干第三方APP
代码放在
https://github.com/vicalloy/jstnote
写代码的时候只考虑到工作量,有现成的组件尽量用现成的,性能应当会非常的差。
吐槽:
– django自带的评论app非常的不人性化。为了防止进入评论的错误提示页面,花了不少时间用JS写表单的错误检验。
– SAE不是太好用。默认带的django太老。使用自己的django,一直出错。尝试解决了几个问题后最终放弃。(注:已经成功部署上去,感觉问题不少,还有待验证)

天使湾第二季见闻

昨天参加完天使湾最后一轮面试,今天下午公布结果。和预期的一样顺利落选。以我们当前的互联网经验与觉悟都还不足以立马全职创业。

天使湾的这次活动对我而言更多的是一种体验,一种有趣的体验。这是一个交流的平台,在这里可以遇到许多创业者,和他们分享各自的想法。

作为创业者,他们常常会有很多有趣的观点,并能从各自独特的角度看问题。

天使湾给人的感觉还不错。天使湾的CEO庞小伟,给人的感觉很低调务实。如果你确实需要天使基金,可以考虑找他们聊聊。

最后祝大家都能坚持并实现自己的梦想。

timeline项目开发日志–登陆、注册模块

利用twitter/bootstrap,项目的基础模板算是顺利搞定。接下来开始处理用户中心。
用户中心主要包括用户登陆、注册以及头像等个人信息维护。此前,用户的注册管理我一直使用django-registration。只是这个APP有些不思进取,09年发布了0.8alpha版后就一直没什么动静。这次决定尝试另外一个用户模块组件django-userena
相比django-registration,django-userena的功能要完善的多。除基础的登陆注册模块外django-userena甚至还带了站内消息功能。django-userena的易用性方面也做的非常的不错。django-userena自带了默认模板,并有提供一个完整的演示项目,让你可以轻松上手。这里有个官方的在线demo,感兴趣可以去看看

django-userena同twitter/bootstrap的整合

我们自然是希望所有的APP不用做任何修改,拿来就能用了。不过事与愿违,在整合的过程中多多少少都会遇到一些问题。django-userena默认的模板在项目中显示的非常难看。我们需要重写django-userena的默认模板,并且用django-bootstrap来生成form。
forms.py

#为原始form添加BootstrapMixin
from bootstrap.forms import BootstrapMixin
class BsAuthenticationForm(AuthenticationForm, BootstrapMixin):
    def __init__(self, *args, **kw):
        super(BsAuthenticationForm, self).__init__(*args, **kw)
        self.__bootstrap__()

urls.py

#重写urls,指定使用的form
from django.conf.urls.defaults import *
from userena import views as userena_views
from profiles.forms import BsSignupForm, BsAuthenticationForm
urlpatterns = patterns('',
    url(r'^signup/

中文用户名问题

同django-admin一样,django-userena也无法使用中文进行注册。对于一个中文网站而言,不能使用中文注册ID似乎有些太不合理的。
django-userena使用正则表达式对用户名进行校验,重写注册form修改认证规则即可取消该限制。

USERNAME_RE = r'^\S+
, userena_views.signup,
        {'signup_form': BsSignupForm}, name='userena_signup'),
    url(r'^signin/

中文用户名问题

同django-admin一样,django-userena也无法使用中文进行注册。对于一个中文网站而言,不能使用中文注册ID似乎有些太不合理的。
django-userena使用正则表达式对用户名进行校验,重写注册form修改认证规则即可取消该限制。

USERNAME_RE = r'^\S+$'
attrs_dict = {'class': 'required'}
class BsSignupForm(SignupForm, BootstrapMixin):
    username = forms.RegexField(regex=USERNAME_RE,
                                max_length=30,
                                widget=forms.TextInput(attrs=attrs_dict),
                                label=_("Username"),
                                error_messages={'invalid': _('Username must contain only letters, numbers, dots and underscores.')})
    def __init__(self, *args, **kw):
        super(BsSignupForm, self).__init__(*args, **kw)
        self.__bootstrap__()

已在github上创建timeline项目

项目地址:https://github.com/vicalloy/timeline-site

感兴趣的朋友就过去关注下吧。

目前还只有一个项目框架,并对基础的模板做了一些调整。因为是自己一个人写,且没人督促,所以项目前期的重构会比较频繁,且项目进度不可控。

下面就是刚的工作成功,一个简单的首页框架。

timeline

timeline项目前期准备工作

前些天在日志里说想做个timeline相关的网站。由于最近的琐事较多,也是出于惰性,迟迟没有动手。想最近还是先将项目启动好了,然后在blog上记录项目的过程。记录的过程,一方面是方便日后的总结,令一方面多少也有些督促作用。

缘起

很早以前就想做一张古今中外的大事年表,看中国历史上的同时期国外都发生了些什么事。对于普通的文字列表而言,timeline的展现方式无疑要直观很多。在寻找timeline工具的时候没有发现好用的。到了现在,已经出现不少在线timeline工具了,不过中文的还没有,既然如此那就自己做一个吧。

网站定位、功能规划、前期推广方案

timeline功能有些过于单一,可发掘的余地不会太大。不过换个角度看,做一个有价值的小众服务也不错。
这会是一个类似维基百科的网站。大家可以在上面察看、制作自己感兴趣的timeline。网站支持多人协作,可以多人共同维护一个timeline。timeline支持评论。用户可以将自己感兴趣的timeline做个列表(类似豆瓣的豆单)。如果用户活跃的话甚至可以考虑增加小组的功能。
网站创建初期最需要的是基础内容以及第一批核心用户。内容方面会自己做几个timeline并进行社会化分享。针对目标人群的不同会将timeline分为明星偶像、社会化事件、历史、技术类(如js的演化)。然后看目标人群的接受程度再做适当的调整。

技术方案

服务端采用django。UI方面采用twitter出品的bootstrap
除此之外令一个重要的问题是如何实现timeline的展示。网上不少timeline的js实现。经过调查后决定采用timeglider。下面是入围JS库的介绍。

参考网站

既然此类网站已经有了,必要的参考自然少不了。

  • http://www.xtimeline.com
    • UI不是很美观,功能方面和我的想法比较接近。
  • http://www.timerime.com/
  • http://www.tiki-toki.com/
  • http://delicious.com/search?p=timeline
    • delicious上可以找到很多有用的资料
  • http://www.douban.com/event/search?search_text=%E5%B0%8F%E7%BB%84&loc=china
    • 参考UI
  • http://www.timetoast.com/
    • 同xtimeline类似,UI更好些。

最近想做的一些东西

由于长期的挖坑不填,于是想做简单一些的东西,简单到一周之内可以完成。

WP7的虾米电台客户端

虾米的电台很不错,有多种风格的电台可以选择。选择一个自己喜欢的电台然后有啥听啥,比自己选歌来的方便的多。目前虾米有官方的ios、android的客户端,wp7的客户端暂时还没有。虽然手机可以用网页版的虾米,不过网页版无法后台播放将是一个很大的缺陷。

我还没有wp7的手机,想做着东西主要还是想体验一下wp7开发。

timeline在线制作

世界历学的很烂,完全不知道国外的重大历史事件对应到中国的朝代。想做这么一张历史年表,将国内外的大事件都标记在上面。顺带想做一个关于timeline的网站。用户可以制作自己的timeline并进行分享。最好还可以象wiki一样大家共同编辑同一个timeline。

前期会做的很简单,只有简单的创建和展示功能。评论功能直接使用disqus实现。

目前国外网站已经有一些提供在线timeline服务的网站。里面大多网站都面向企业用户提供收费服务。其中比较接近我想法的是xtimeline

收到SAE的开发者证书了

前段时间SAE开始分发python的内测名额,一时手慢,错过机会。不过倒看到SAE可以申请开发者证书。申请资格中写有开源作者可以申请高级开发者证书。由于错过内测名额,所以就有啥拿啥吧。
感觉SAE的这次营销策划想法非常的好。可以花很少的钱就可以做到不错的推广效果,最重要的是还能得到一个皆大欢喜的结果。
PS:
申请一个SAE证书还是有些好处的。申请成高级开发者后,每年可以有¥1800的免费SAE资源可以使用。