全球首发,Ubuntu Tweak 0.4.999体验报告

2009.12.14 , Linux, Programming , 8 Comments ,

比过鸡王胜过暴雪,本年度最佳跳票大王 TualatriX主导开发的Ubuntu-Tweak全新的UT0.5系列,在历经无数次跳票之后,今天终于拿到了版本号0.4.999.20091213的......DEMO一枚,撒花,鼓掌~~~

因为UT0.5系列中的重量级特性需要结合UTCOM(也就是UT的web端)联合操作,在动手架设UTCOM的过程中,遇到了很抓狂的问题,然后TualatriX通过VPN(我们都是yegleVPN的用户)直接SSH进我的系统,最直接后果就是折腾一顿发现我犯的白痴错误之后差点疯掉....

OK,言归正传,成功完成UTCOM的架设后,顺利在终端启动开发模式的UT:

(点击看大图)

也许这一个图你还看不出新UT带来的变化,那么请看下面这张: (点击看大图)

现在看出来了么?对的!UT中的图标将采用当前系统主题使用的图标!这个特性更好的保持了软件与系统主题的协调统一,鼓掌~~ 至于大家看到的中英文混杂的问题,是因为开发中的UT的i18n还没有完善的缘故,正式发布的时候肯定不会的啦~

下面,重量级特性现身~ Application Center! (点击看大图) 没错! 这个就是新UT中application Center的更新提示!结合开发中的UTCOM,新UT的这个特性将带来一个有别于Ubutnu系统自带的软件中心的软件中心...走精品路线, 更加简洁!更加好用~

(点击看大图) 更新之后是与UT现行版本类似的界面, 这里因为是本地假设测试,所以App比较少啦~(PS,对于UI布局方面的问题,欢迎大家提意见)

那么,仅仅只有Application Center么?肯定不是!还有Source Center! (点击看大图) 没错!Source Center同样也是结合未来的UTCOM 来实现对第三方源的更新和管理!

通过上面对Ubuntu-Tweak 0.5的两个最重要特性的介绍,我相信大家已经明白UT正在依托软件的成功,由纯粹的软件开发者向服务提供者转变,没错,那就是未来的UTCOM,一个全世界的Ubuntu/Debian用户们交流好用好玩的Application和Sources的地方~~

未来的UTCOM会是什么样子呢?爆图~~ 这个就是开发中的UTCOM,从Ubuntu-tweak 0.5开始将成为其一个很重要的核心,是的只是其一,未来UT的一个另外一个重要特性,就是插件,通过插件的扩展,UT将成为Utuntu系统优化配置的瑞士军刀,让Ubuntu更加好用,也更加实用~

对于我这个版本控属性爆表的人来说,最吸引我的还是UTCOM的Application Center和Source Center啦,那样我就可以整天刷看有什么好玩好用的APP了,嘿嘿~~~

恩,今天对新UT的介绍就到这里,一句话:新的UT非常值得期待。这里要夸奖一下TualatriX,虽然新的UT一直跳票跳票,但是在拿到UTCOM的代码后,我决定不拜春哥改拜TualatriX!基本完全依靠业余时间的情况下,在同时维护0.4系列的UT的情况下,开发新的UT和UTCOM,工作量惊人!没有很强的毅力和信念,要坚持下来很困难!

来吧,信TualatriX考本科,信TualatriX不挂科~~~

=================折腾的分割线=================

信春哥,得永生

2009.12.5 , Others , 10 Comments ,

都说 信春哥,得永生 我不信,一直都不信 但是现在,在我那天偶然中带着必然,必然中有夹杂着那么点寂寞,踏进了春哥庙之后,我已经彻底拜倒在春哥门下了...

事情是这样的, 某日,某猥琐男人发来了一个很猥琐的链接,带着那么点不屑,我点击了,然后...我深深的被震撼了,被春哥那sexy的架势,深深的打动了。

我忏悔,忏悔过去对春哥种种的不敬。。。 我祈祷,向春哥祈祷:哥,我的google ad挂了5年了还没拿到钱,妳懂的…

============第二天的分割线============ 早晨 我醒了 随手摸出M8,亮屏 才7点 我很奇怪为什么今天回提前2个小时醒来

既然醒了,那就看看新闻吧,解锁... 哦也...怎么触摸没反应咧... 关屏...再开...没反应... 抠电池,开机。。。还是没反应

我的心跳开始加速,难道...难道传说中我的触屏失灵了? 这个时候,我想到了春哥,是的,我昨天刚刚膜拜了春哥! 一定是春哥显灵了!

阿,果然神给人的惊喜都是以外的! 虽然没有 拿到Google AD的那100美刀 但是此刻,我已经满足了 因为...魅族承诺凡是触摸失灵均可以免费换机...

于是,中午,坐了20分钟的公车,在专卖店不到10分钟的时间里 一台崭新的白色M8SE到了我的手里...

哥...谢谢你~~

在Django的admin表单中显示图片

2009.11.25 , Programming , 1 Comment ,

这几天又在折腾admin这颗Django皇冠上的明珠... 这次折腾的还是跟附件相关,不过主要是图片,也就是在表单里显示上传的图片。

查看了一下Django admin的模板,发现对于表单的处理,只用了几个简单的条件判断和循环:

{% if fieldset.name %}

{{ fieldset.name }}

{% endif %} {% if fieldset.description %}
{{ fieldset.description|safe }}
{% endif %} {% for line in fieldset %}
{{ line.errors }} {% for field in line %} {% if field.is_checkbox %} {{ field.field }}{{ field.label_tag }} {% else %} {{ field.label_tag }}{{ field.field }} {% endif %} {% if field.field.field.help_text %} {{ field.field.field.help_text|safe }} {% endif %}
{% endfor %} {% endfor %}

并没有出现对表单元素的相关处理,也就是说相关表单元素的已经在{{ field.label_tag }}{{ field.field }}中包装好,模板只负责显示,遂转移目标。

翻文档,在ModelAdmin Options里发现formfield_overrides,用法如下:

from django.db import models
from django.contrib import admin

Import our custom widget and our model from where they're defined

from myapp.widgets import RichTextEditorWidget from myapp.models import MyModel

class MyModelAdmin(admin.ModelAdmin): formfield_overrides = { models.TextField: {'widget': RichTextEditorWidget}, }

也就是说可以用widget的方式来进行包装,继续翻Django的代码,发现奥秘:在Django/contrib/admin/widgets.py中,有对各种input的包装!哈,有戏,于是自己写了一个widget,其实也就是原本照搬Django自带的那个AdminFileWidget,将其中的a改成img:
def render(self, name, value, attrs=None):
        output = []
        if value and hasattr(value, "url"):
            output.append('%s 
%s ' % 
                (_('Currently:'), value.url,  _('Change:')))
        output.append(super(AdminFileWidget, self).render(name, value, attrs))
        return mark_safe(u''.join(output))
然后在formfield_overrides中填写自己写的这个widget即可。

但是这样做有个问题,就是使用formfield_overrides处理的话,表单中所有的同类型input(比如上面的TextField)都会被这么包装一次,这显然是不行的,那怎么解决呢? 别着急,在在ModelAdmin Options里还有一个参数,就是ModelAdmin.form,可以自定义一个form,而不是Django admin默认调用model生成表单,那就好办了,参照这里就可以很简单的重写指定的一个input,避免上面的情况~~~

应为Django的资料相对来说比较少(特别是中文资料),加上自己对Django了解也比较肤浅,实现上面的这个效果费了小周折,不过通过这次,对Django的代码结构有了进一步的了解,相信以后应用起来要轻松很多了~~

CupTool

2009.11.22 , Life , 1 Comment ,
人生是一只茶几,上面放满了杯具。而本身就是杯具的我们还非加上茶叶自以为与别人没有茶具,结果人人都说咱现在要具就用餐具。 我们在沉默中灭亡,成了文具;在沉默中爆发,成了火炬。我们想明哲保身,都成了面具。我们想一鸣惊人,都成了京剧。不能再次相聚,执手相看泪眼,成了默剧。 生活是自己的杯具,别人眼里的洗具。

我跟上帝说我渴了,于是上帝给了我一大堆杯具。

昨天晚上刚吃完晚饭,就来电话说从南宁回来玩的家志请吃饭,我瞬间就杯具了——刚才为虾米要吃的那么饱呢... 晚上5个人窝在房间里聊天扯到半夜3点,出了学校,才知道柴米油盐贵,每天掐着手指头算钱,一分钱都没敢多花... 毕业之后,我们宿舍的人,基本上都留在桂林,几个月的经历,大家的想法都成熟了很多,也都有了新的想法,也许农历年后,大家就都要离开桂林了。 可是谁知道呢,就像四年前我压根没想留桂林一样。世事难料,谁也不知道后面会发生什么事情。

到手的鸭子飞了几只。银行卡已经是负数,压力越来越大... 创业的心酸,只有经历过之后才知道。

Mountain climbing and Graffiti

2009.10.25 , Life , 7 Comments ,

小媳妇老早就说要去爬尧山了,前段时间实项目上是在忙不过来,加上一直加班,精力也不咋地,所以一直没去,然后昨天准备去的,结果半夜下雨,我听到雨声就跟抓到救命稻草,就跟媳妇儿说下雨了,明天再去,然后对倒头就睡了,结果白天艳阳高照,理甚亏,下午赶忙跑公司加班,修bug若干= =!

今天天气还不错,6点多爬起来,就带着媳妇儿去爬山了。恩,跟大多数人一样,开始那个高兴劲哈,然后爬了一半...“再也不来爬了.....”,好歹咱也曾经是每周都来怕一次的人,连哄带拖,花了差不过两个小时总算到了山顶,然后又花了差不多3个小时走后山的公路下来,好歹咱也是曾经每周去走一次的人....咳....半路饿昏了还闹别扭= =!

回到理工大的时候已经下午2点多了,去吃饭的路上看到了墙上的涂鸦,其实这个涂鸦已经出来1个多月了,不过都没来拍,刚好身上带了相机,随手拍下来。不过中间还有有办证的广告了,唉....

话说这墙上的涂鸦从我大一进学校开始就有了,基本是每个学期都会更新几次,不过到现在为止还没晓得是哪些人做的= =!

不过不得不承认的是,我一点深度都没有,这玩意儿完全看不懂....