作者归档:vicalloy

Gliffy confluence插件的破解

Gliffy是一个在线画流程图的工具,或者简单的说Gliffy就是web版的Visio。Gliffy的用户体验非常的好,加打开浏览器就可以使用,使用起来非常的方便。Gliffy同时推出了confluence的插件版本。在安装插件后可在confluence中方便的编辑和插入流程图。

同事对Gliffy甚为垂涎,只是Gliffy还有些小贵。confluence插件版,500用户的许可要卖到2000$。

虽然同事的利诱有些不靠谱,但偶尔干干着方面的事也还算有趣,那就动手吧。

注:下面只是简单的讲解一些关键点,如果你对java一窍不通,那还是罢手吧。

java应用破解的通常做法是:将文件反编译,找到认证部分的处理,直接将认证结果返回true。java的反编译工具推荐Java Decompiler

Gliffy的jar包比较大,但其中java代码并不是很多。而且Gliffy采用的是仿君子不防小人的做法,里面的java代码并未混淆过。在代码中有个目录非常的扎眼\src\com\gliffy\core\license\。再做些简单的分析我们即可找到真正的关键点SimpleLicenseManager.java

不得不说Gliffy的命名还是非常规范的。以函数名为线索,很容易就可以找到我们要的函数validLicenseValues。简单粗暴的将函数返回值改为true。打包并重新安装插件。

如果问题就这么解决了,那也未免顺利的有些不太寻常。虽然可以成功安装,但运行的时候抛出一堆的异常。试着进入Gliffy的管理界面,依旧是一堆的异常。虽然我们强制的将认证结果设置为了true,但某些地方还需要获取license的到期日期等信息。由于读不到相关数据,直接出异常了。

既然如此,那我们需要先将license信息写入系统。

validLicenseValues还原,然后找到设置license的函数installLicense。在函数中注释掉license认证相关的代码,让系统在忽略认证结果的情况下强行写入注册信息。修改后的java文件在执行时还会报getHostedStatus的虚函数错误。按理说这个函数应当会在子类中被重写。不过我们先不管这么多,把它修改为普通函数并直接返回0。

重新打包安装,然后进入Gliffy的管理界面,license信息随便填写,然后保存。保存是成功的,但认证还是失败。修改validLicenseValues函数,重新打包安装。这次由于我们有写入注册信息,因此就不会再出现先前的空指针异常了。

享受Gliffy吧。

注:Gliffy确实是个好东西,如果喜欢,还是尽量说服公司出钱买吧。

宋江是个悲催的CEO

一直不太喜欢《水浒》,总感觉水浒讲述的是一窝土匪的故事。既然是土匪,那自然是粗莽之辈,明明是闯了祸却还自以为是快意恩仇的英雄。陆陆续续的看了些最近热播的《新水浒》,发现却还有些意思。又看了些水浒的影评,想若将水浒当初单纯的土匪故事确实有些浅薄了。

不知是否是张涵予演义的问题,总感觉梁山上大小头目无不欢乐,只剩宋江一人独自悲催的想着如何招安。

若将水泊梁山比作一个公司,宋江无疑就是这个公司的CEO。大多公司在创业的初期都会干些见不得光的勾当,这即是所谓的原罪。对梁山而言,他们的原罪自然就是打家劫舍了。打家劫舍这原本就是他们的营生。但到宋江接手时后,梁山的规模已经足够壮大,传统的打家劫舍已难以满足公司的正常运作。风光无限的背后,梁山正遭遇着有史以来最大的危机。作为CEO的宋江不得不思索梁山的未来。细想下来,梁山可走的路并不多。

  1. 破罐子破摔,继续打家劫舍。周边的村子都抢的差不多了,老百姓们能搬的估计也都搬的差不多了。梁山名声在外,能绕道的商旅们都绕道了,送上门的生意也不好做。现在想抢的话只能发兵去抢比较远的村子了。若不建立分部,发兵的成本无疑太高。若建立分部那无疑相当于对朝天的宣战,走上了正式造反的道路。固守梁山可以活,却没有未来。
  2. 干掉朝廷,转正上市。上市,无疑是不少公司的终极目标。然,上市对梁山来说难度太大。梁山虽多次击败了朝廷的“围剿”,但毕竟实力悬殊且当时朝廷并未真正发力。若朝廷认真对待,梁山难免不成为另一个方腊。抛开朝廷不谈,这世界上类似梁山这样的小山头也不少,如何从这些山头中脱颖而出也并不容易。有人或许会觉得我有贬低梁山实力之嫌,人家梁山可是有108位好汉啊。这108好汉西数下来,可用的还真没几个。最近流行所谓的基因文化,每个公司都有所谓的基因,这些基因决定了这个公司能做成什么,做不成什么。梁山的基因即是所谓的义,谁的功夫好谁就牛。那些“好汉”说白了也只是社会上混不下去的失败者而已。梁山文化说难听就是有勇无谋的莽夫文化,谋士很难在梁山上混的下去。宋江虽也想招募些牛人,但他能给出的筹码实在太少。宋江想靠自己的一己之力扭转梁山的莽夫文化实在太难。
  3. 被朝廷招安。这相当于找个大公司收购,操作难度比上市容易的多,而且套现快。招安对梁山而言不失是个不错的出路。

为众弟兄分配好封号,发行完内部股,安抚完兄弟后就要开始正式实施招安计划了。

招安计划的实施过程中,朝廷方面谈不拢,兄弟们又不理解。宋江近乎孤军奋战,还得两面讨好,难免不悲催。

最后推荐影评:看到77集了:失败者连撕破脸皮的资本都没有了

SkyDrive无限空间了,去整个吧

当初gmail的1G免费空间开启了大容量网络存储的先河,现在SkyDrive都无限容量了。不过SkyDrive由于没有客户端,只能使用网页上传,如果你想用他存储大量文件小文件,这几乎是一个不可能的任务。好在现在已经有不少支持SkyDrive的第三方客户端了。

试试Gladinet Cloud Desktop吧,Gladinet Cloud Desktop可以为你提供类似Dropbox的体验。更详细的说明参考小小众软件的介绍Gladinet Cloud Desktop – Skydrive/Docs/Picasa/Amazon S3 客户端程序

我已经决定将所有的照片都移到SkyDrive了,大家也去试试?

违和感

有时候会莫名其妙的想到一些词,然后按照自己的方式对其进行注解。最近想到一个词违和感
违和感按照百度百科的解释是:因为与周围的环境不适应、不协调,而感到无法融入其中,产生一种疏离感的意思。比如当一个人身处国外,面对着不同的文化背景时,就可以用“违和感”一词来表达他无法融入大环境的感觉。
违和感按照我给出的解释是:“心、行”以及“言、行”不一致使人产生的不舒服的感觉。比如,奥德曼的理想是打小怪,但每天干的活却是给领导写报告,奥特曼心中的不适就是违和感。又如领导每天都要大家提高自觉性,自己却每天上班不干正事。领导言行不一致使手下人产生的不爽就是违和感。
真正可以做到心、行合一,言、行合一的人毕竟是少数,所以违和感总是普遍存在的。
都没什么机会出去玩,相机也只能拍拍杂物玩了。

那些似是而非的寓言

很多寓言故事都是如此,刚听上去的时候似乎很有道理,但再仔细推敲下去似乎又并不是这么一回事。

木桶原理

木桶原理的核心内容为:一只木桶盛水的多少,并不取决于桶壁上最高的那块木块,而恰恰取决于桶壁上最短的那块。

木桶理论即形象又生动,似乎无懈可击。但木桶理论的前提是建立在“木桶是用来盛水”的这个前提下。或许用这个木桶来盛水本来就是个错误。如果这个木桶是用来挑石块,那这块短板或许就变的无关紧要了。

有时候认清自己的优势,了解如何将自己的价值最大化要远比盲目的取长补短要强的多。

葡萄理论

《围城》中谈到:“天下只有两种人。譬如一串葡萄到手,一种人挑最好的先吃,另一种人把最好的留在最后吃。照例第一种人应该乐观,因为他吃的每一颗都是吃剩的葡萄里最好的;第二种人应该悲观,因为他每吃一颗都是吃剩的葡萄里最坏的。不过事实上适得其反,缘故是第二种人还有希望,第一种人只有回忆。”

其实让我说,这和吃葡萄的先后顺序没多少关系,悲观者看到的永远都是悲观,乐观者看到的永远都是乐观。一千个观众眼中有一千个哈姆雷特。

《野蛮生长》

野蛮生长(豆瓣)

也不知野蛮生长这词是从哪听来的。感觉这是很酷的一个词。在蛮荒的大地上,驰骋着野心与欲望,试图以卑微的力量改变世界。

去豆瓣看了下,还真有这书。

对我而言,这是一本有意思的书。书中可以窥探改革开放后民营企业的变迁,也让我第一次对企业的资本运作有所了解。

原罪

大多民营企业的屁股都不干净,不过这和当时的历史背景有极大的关系。改革开放的实质是一次次序的重建,也是一个财富再分配的过程。每次次序的重建都必将经历一个混乱期。

郎咸平

郎咸平本和本书没太多关系,只是在谈原罪的时候有提到而已。不过我觉得郎咸平和冯仑在一定程度上代表了两类人。

郎咸平是个学者,带有太多的理想主义。在他们看来所谓的中国特色都只是借口而已。他们理论很多,也容易讨好民众,只可惜更多的只是空谈而已。

冯仑是民营企业家,是个拓荒者。他们适应着社会,并改变着社会。

这里并不是要否定郎咸平,只是相比理论家而言,我更欣赏那些以实际行动改变世界的实干家。

王石

汶川地震的捐款门让王石火了一把,只可惜是负面的。当下自然感觉王石太不厚道,但事后回想起来王石的做法其实也并无太多的不妥。一个企业的好坏的标准更多的应当看他在平常的经营活动中是否有创造良好的社会效益与经济效益。至于做秀的时候捐多少钱,这些都是次要的。万科在经营过程中没有什么违法现象,楼房质量也是有口皆碑。我认为万科在这些方面都做到了本分。至于捐款。当时很多公司的劝捐已经让捐款有些变味,而且当时汶川最不缺的就是钱。王石当时倒霉的地方就在,这事被人捅出去,变为了一个社会事件。这件事在被曲解后,给社会和企业都造成了很坏的影响。

冯仑在书中花了大量的篇幅谈王石。对冯仑来说,王石是朋友也是老师。

书中的一些说法

企业家象侠客(土匪),喜欢随心所欲的感觉。

老庄比儒学高。老庄是哲学,儒家注形式。

老外进庙花钱,中国人进庙求财。

二手数码控的pagerank为3

将博客切换到主域名的重要原因之一是博客的pagerank居然为0。虽说pagerank只是浮云,但考虑到我的博客已经存在了这么久,0这个数字多少有些让人难以接受。将博客切换到主域名,希望pagerank能有所提高(至少别继续维持在0了)。看网上说pagerank每三个月更新一次,先耐心的等待了。

今天忽然发现二手数码控的pagerank居然有3。有些太没天理。网站才上线几天,即无人来,也没有啥外链,pagerank居然也能到3。

Django标准化项目dj-scaffold

由于Django没有象rails一样指定项目的目录结构规范,很多人都对django项目的目录结构要如何组织而感到困惑。为此我又新创建了一个开源项目dj-scaffold(django的脚手架)。这个项目用于自动生成一个标注化的django项目和app。

项目地址:https://github.com/vicalloy/dj-scaffold

安装

已经发布到了pypi,所以你可以用pip或easy_install 来进行安装。

pip install dj-scaffold
easy_install dj-scaffold

使用

dj-scaffold主要提供了两个命令,dj-scaffold.pylbstartapp

dj-scaffold.py

该脚本用于取代django的startproject命令。使用方式如下:

dj-scaffold.py projectname 

在该命令执行后,将创建项目projectname。在项目的scripts目录中提供了脚本create_env.pyenv.rc

  • create_env.py 执行该脚本将自动初始化python虚拟环境。新生成的python虚拟环境在env目录。
  • env.rc 该脚本用户启动python虚拟环境(source env.rc)。该脚本同时为python manage.py设置了快捷方式$mg。你可以在任何目录调用$mg来执行django命令。比如你用$mg runserver来启动测试服务器。

项目对应的目录结构如下:

注:文件太多,去掉了部分不重要的文件
dj-scaffold.py projectname 
|+docs/    #用于存放项目的相关文档
|+env/     #python虚拟环境,由脚本自动生成
|~requirements/     #第三方依赖包的存放位置
| `-requirements.pip    #pip的依赖说明文件
|~scripts/    #系统相关的脚本
| |-create_env.py    #创建python虚拟环境(env目录)
| `-env.rc    #进入python虚拟环境。同时提供python manger.py的快捷方式$mg。可在任意目录使用$mg。
|~sites/    #Django的项目文件。在settings文件中增加了部分默认配置。如数据库默认使用sqlite,设置项目的模板以及静态文件目录。
| |+media/    #项目静态文件(用户上传)
| |+static/    #项目静态文件(css、js等)
| `+templates/    #项目模板
|+tools/    #一些项目依赖的第三方工具包。如python虚拟环境初始化脚本等。
`~wsgi/    #项目部署用的wsgi文件
  `-dj_scaffold.wsgi

lbstartapp

lbstartapp作为django的扩展命令提供。将dj_scaffold加到INSTALLED_APPS后即可使用该命令。该命令将生成一个标准的app,相比django自带的startapp,lbstartapp将那些不太常用的app默认目录也都给生成了出来。对应目录结构如下:

|+management/    #命令目录
|+static/    #静态文件目录
|+templates/    #模板目录
|+templatetags/    #tag目录
|-__init__.py
|-admin.py    #admin管理后台的models配置文件
|-forms.py
|-models.py
|-settings.py    #app自己的settings文件
|-tests.py
|-urls.py    #urls配置文件
`-views.py

NOTE

  • 项目的大多代码来自:https://github.com/lincolnloop/django-startproject
  • 类似项目:https://github.com/mozilla/playdoh 个人觉得这个项目还可以。不过我个人觉得自己写的更符合自己的习惯。
  • “摒弃魔法”是Django的哲学之一。为此Django没有为用户提供太多的默认操作,它希望一切对用户都是显示可见的。这本没太大的问题,但在我看来“no magic”并不代表连规范都不要。Django实在是太缺乏一些必要的规范。

把二手数码控的代码放到github托管

项目地址:https://github.com/vicalloy/scnews

对目录结构做了些调整,并将代码托管到github。

虽说对互联网行业比较感兴趣,工作却一直和互联网没多少关系,说起来也是叶公好龙。这世界大多人都是“说,天下无敌。做,无心无力”。于是想,整个简单的项目做个实践吧。

因为这是业余时间的一个实践,为不妨碍自己的工作与业余生活,这个项目必定会是一个非常简单的项目。

网站定位

现有二手交易网站的问题

每个人都会有些食之无味,弃之可惜的东西。目前交易二手货的主要途径有:淘宝、58等同城网站、专业论坛(如苹果产品的weiphone等)。

  • 淘宝 对普通用户的二手交易有诸多限制,发布二手信息非常的不方便,也不容易被其他用户找到。通常用户在淘宝发布二手信息后,还需到专业论坛发帖宣传。
  • 同城网站 信息确实非常的多,信息的真实性方面就没多少保证了。无用信息过多,用户想过滤出有效信息的成本过大。 同城网站发布的信息按照城市区分。我认为这是一个过时的做法。在物流业高度发达的今天,很多二手交易已经不再受到同城的局限。
  • 专业论坛 就目前而言专业论坛是完成二手交易的最佳地点。首先论坛ID本身就具备一定的信誉。其次,既然是专业论坛,信息的精准性比较有保证。论坛的最大问题是,论坛的数量众多,而且也会有不少同质性的论坛。如果想更有效的找到自己所需要的东西,你可能得同时关注好几个论坛。

我希望做成怎么样

在众多的二手物品中,数码产品有其特殊性。

  • 量多 数码产品的更新速度越来越快。潮人们,喜新厌旧,很多数码产品在卖相很好的时候就已被打入冷宫。二手数码产品买、卖需求都不少。
  • 物流成本低 如果是家居,物流成本高,这些东西基本上只能做同城交易了。数码产品一般都比较轻,物流成本低,通常不受同城的限制。

网站形式

  • 以数码产品的交易为主题,网站形式类似现在广泛存在的同城网站。
  • 因为数码产品的交易大多不受同城的限制,因此取消同城的设置。
  • 信息发布方面,尽量简单。用户发布信息时,只需要填写简单的物品描述信息即可,和论坛发帖类似。
  • 只能发布二手信息,不可发布求购信息。
  • 加强SNS功能。在个人信息页面中尽量提供个人主页、douban、facebook等信息,以ID作为信誉保证。

为啥最终作成了数据挖掘网站

做个简单的二手交易网站的工作量并不大。但没基础的核心用户,网站基本上无法正常运作起来。若是为了提供基础数据,让系统从其他网站抓起数据来滥竽充数,则无法形成网站的“文化”。既然如此,倒不如先做个数据挖掘的网站。若该网站能积累一定的基础用户,则可考虑启动下一步的工作,启动二手交易网站方面的工作。

二手数码控功能规划

二手数码控特指数据挖掘网站,二手交易部分的功能至少在短期内是不在议程之内的。考虑到今天太晚,这部分的内容留在下次再写。

专注网络热点的网站

导言

我相信每个人都会有很多有意思的想法。或许某天早上起来,想为什么没有这么一样东西(产品)?于是将自己的需求整理成一个简单的产品创意。再后来就忘了。很多有意义、无意义的创意就这么莫名其妙的来,然后又莫名其妙的消失了。

我试着将这些不成体系的片段记录下来,或许能被同好者看到也不一定。

专注网络热点的网站

正当郭美美风波越演越烈之际,“不管你信不信,反正我是信了”,让郭美美迅速过气。网民就是这样,见异思迁。不管有没有结论,在新热点出现后,老热点就迅速的被人遗忘。然后,李刚依旧是李刚,郭美美依旧住着自己的别墅。可以预见,“不管你信不信”,在下一个网络热点出现后,又将多一个有始无终的故事。

希望有一个关注网络热点的网站。

  • 以时间轴的方式展示网络热点, 每个热点一个专题页面。
    • 大事记
      • 起因
      • 发展。时间处理过程中的一些重要事件
      • 最终处理结果。主要当事人受此事的影响。社会反响等
    • 相关链接
    • 最新动态
    • 热门讨论
    • 引发流行语
  • 每个热点会有一定的评分指标。热度、社会影响、公众对处理结果的满意度等。
  • 定期可出些回顾专题
  • 价值
    • 网络永远不缺乏热点
    • 网民很有才,每个热点都能激发网民的创意,创造很多流行语
    • 网民们需要新鲜感。这个地方可以找到最新的网络热点,也可以以最简单的方式获取到相关资讯(类似于digg或国内的cnbeta,只是这个网站的主题我网络热点)。
  • 难点
    • 内容编辑需要耗费极大的精力
    • 热点通常都不太和谐,所以网站会先被和谐掉。
  • 解决方案
    • 前期用户少的时候,内容主要由网站编辑提供,普通用户只能投稿。
    • 在网站聚集了一定的核心用户后。网站编辑只负责内容模板的编辑,具体内容由网民贡献(类似维基百科)。