- Recent
- Popular
- Tags (0)
- Subscribers (1)
- Flash Viewer for PDF - 整点flash…January 5
-
一直以来就喜欢scribd,发现他的ipaper越来越强大。包括docstoc等都在向Flash Viewer靠拢
在网上随便的搜索一把,了解了他们的大致解决方案,我们也动手搞一把。
这些文章都来自晚上,版权归其所有哦。记录一下。(windows XP平台,linux下大致相同)
1, 首先PDF要转化成swf
通过swftools 提供的pdf2swf工具,转化为一个swf,其有很多选项可以参看文档,我是在windows GUI程序下进行,生成一个book.swf2, 从这个老大这里,找来了一个simple的Flash Viewer,这里是对应的flashviewer.swf,还有源文件
3, 然后呢,通过swfcombine工具,我们将我们的book.swf和flashview.swf进行合并,生成一个简单的具有翻页,缩放功能的swf:
swfcombine.exe fdviewer.swf "#1"=temp.swf -o mybook.swf经过一段时间的等待,好了,我们的图书就生成了。
我比较狠心,把programming erlang给转换了一把:
pdf: 2719kb
book.swf: 1993kb
mybook.swf:3998kb看看截图:
1 - 开始学习python了January 5
-
harry.python以会不会python为纲,正好我一直以来都很想学习python,在这个经济危机的时代,就来个语言大跃进。
这个正好也是我09年计划的一部分,比较性急的开始python之路了。ps:我看到python的标识,就想起贪吃蛇。。。harry推荐的A byte of python还在每日2章的赶工阅读中,我的Blog中会增加python的内容咯。。
顺便说说工作中的事情,我这次是痛下决心,再也不山寨了。一些基础的模块绝对不会在重复劳动,磨刀不误砍柴工。
http client现在用上了libcurl,很好很强大,ssl,http,ftp一应俱全,使用方便。
加密解密,openssl几乎可以全部胜任,候选是曾经让我着实头疼的crypto++
http server,使用yufeng推荐的shttpd,只要一个c文件解决问题
xml处理用上了轻量的tinyxml以及libxml
本地数据库,采用sqlite,小巧玲珑
也就是这样了,以后的原则是,尽量少的开发windows客户端。。天啊,解放我吧。 - 2008 Review and My 2009January 3
-
遵循网络习俗,辞旧迎新,回顾过去,展望未来!
2008做过的:
开始在linux下进行开发
使用Vim,Emacs,熟悉Shell,Make
接触并系统学习Erlang
了解了更多开源项目
使用 MFC/WTL 编写了N个Windows应用
参加Programming Erlang的相关活动
参加Erlounge III
使用Erlang尝试开源项目
认识很多的朋友2009要做的:
继续E2dynamo,发布多个版本
进行更多Server相关开发,期待从事相关工作
学习python,经常使用c
阅读couchdb和ejabbered代码
用Erlang解决更多的问题
了解更多协议和标准
更多的好友,更多的文章 - Tiny Notes About Erlang SyntaxDecember 29 2008
-
Literal Term
... -attr1(1). -attr2(1.0). -attr3(correct). -attr4({1, 0}). -attr5("good"). -attr6(<<"good">>). ...
int, float, atom, tuple, list, binary
in predefined attributes and user-defined attributes, the Value must be literal term. for example:
some_module.erlall the attributes is normal.
L = [{cn, "Beijing"}, {cn, "Shanghai"}, {us, "New York"}, {jp, "Tokyo"}]. a) CnCity = [Ci || {cn, Ci} <- L] or b) CnCity = [Ci || {Country, Ci} <-L, Country =:= cn]
List Comprehension
for example:a) we can use pattern match in generator to get some Values, this is simple.
-define(Log(S), (io:format("log:~s~n", [S]))). -define(Log(F, D), (io:format("log:~s~n", [io_lib:format(F, D)]))).
b) we can also use filter to get the expected values.
Macros With Same Name
In Erlang, if two macros with the same name, then we will get “redefing macro ..” error info when compilation. so we must give the different names for all the macro.
for example:change to
-define(Log(S), (io:format("log:~s~n", [S]))). -define(Log2(F, D), (io:format("log:~s~n", [io_lib:format(F, D)]))). - boot_server 及 Erlang emulator启动过程December 29 2008
-
在分布式系统中,因为涉及到大量的机器,所以部署略微有些繁琐。
使用Erlang开发的系统,我们可以通过boot_server来加载我们的代码,免去了ssh登陆服务器,更新代码这样繁琐的步骤。我们只需要将最新的beam文件放到一个server,作为Erlang的boot_server,其他的机器启动Erlang时,通过连接这个Boot Server加载最新的应用代码,完成程序的启动。
架设Server ip为:8.17.85.135
其中一个Client为: 124.118.219.104启动一个Boot Server涉及的主要模块为erl_boot_server,我们可以通过erlang_boot_server:start/1启动boot server,通过erl_boot_server:add_slave/1加载一个slave,也就是允许连接本机从而加载代码的client。我们也可以通过kernel config来启动boot server,这样更简单:
[ {kernel, [{start_boot_server, true} , {boot_server_slaves, [{124,118,219,104}]}]} ].
bserver.config:(注:根据Erlang 文档,slave可以采用atom, string, tuple多种方式来表示,可是我尝试只能使用tuple,不知是否bug?)
随后启动
erl -setcookie "cookie" -config bserver至此,我们的boot server就启动成功了,接下来让我们的client从boot server启动。
erl -loader inet -hosts "8.17.85.135" -id node1 -setcookie "cookie"
client:很遗憾,在我的机器,没有启动成功,因为我client是widnows xp系统。
boot server启动
