G.耶利内克的《一般国家学》
很想看看Georg Jellinek在此书中的分析及论证方法,网上资源及各国内书店没有中译本。德文原版书名为《Allgemeine Staatslehre》,于1900年发行第一版,1905年第二版,1914年由Jellinek的儿子Walter Jellinek编辑推出第三版。
很想看看Georg Jellinek在此书中的分析及论证方法,网上资源及各国内书店没有中译本。德文原版书名为《Allgemeine Staatslehre》,于1900年发行第一版,1905年第二版,1914年由Jellinek的儿子Walter Jellinek编辑推出第三版。
朋友到深圳出差,晚上在一起喝酒。这是我状态最好的一次,两个人一共喝了二十瓶啤酒,喝到凌晨两点,我扛着朋友送他回酒店。今天整整一个上午,我喝水都能吐出来,身体动弹不得。妈妈和老婆极其不爽,我也懒得去理了。和朋友聊了很多,工作和生活。家家原来都有一本难念的经,每个人都有巨大的苦衷。生活本身就是痛苦的,我们所能做的,只能是尽量减少痛苦,而无法新增快乐。想起《流光飞舞》的词,“半冷半暖秋天/熨帖在你身边/静静看着流光飞舞/那风中一片片红叶/惹心中一片绵绵/半醉半醒之间/再忍笑眼千千/就让我像云中飘雪/用冰清轻轻吻人脸/带出一波一浪的缠绵/留人间多少爱/迎浮生千重变/跟有情人做快乐事/别问是劫是缘/像柳丝像春风/伴着你过春天/就让你埋首烟波里/放出心中一切狂热/抱一身春雨绵绵。”半醉半醒原来才是真实的美丽。
下载CKEditor,解压到/var/lib/mediawiki/extensions目录下:
root@athens:/var/lib/mediawiki/extensions# ls ckeditor README
修改/var/lib/mediawiki/LocalSettings.php文件,在最后加上:
require_once("$IP/extensions/ckeditor/ckeditor.php");
$wgHooks['EditPage::showEditForm:initial'][] = 'showEditForm';
function showEditForm($form){
global $wgOut;
$wgOut->addScriptFile( '/extensions/ckeditor/ckeditor.js' );
$script =
"<script type=\"text/javascript\">
window.onload = function()
{
CKEDITOR.replace( 'wpTextbox1' );
};
if ( window.removeEventListener )
window.removeEventListener( 'load', mwSetupToolbar, false ) ;
else if ( window.detachEvent )
window.detachEvent( 'onload', mwSetupToolbar ) ;
</script>";
$wgOut->addHTML($script);
return true;
}
他是我的老师,朋友和领导。他是一个诚信,正直的人,这五年来我受到他的影响极大。甚至我在工作和生活上好几次危机能比较顺利渡过,都是得益于他的分析和引导。公司组织架构调整,他选择了离开,还有很多老同事。我有强烈的孤独感和失落感,但是很快我意识到这些是肤浅的,无意义的。一起工作的经历,使我的思想得到了真正的磨练和升华,让我感受到很多美好的东西。这些会一直陪伴着我,永不磨灭。既然明白已经得到了这么多,那么还能狭隘地任由孤独和失落感不断蔓延吗?谢谢你,我会好好珍惜这份亦师亦友的情谊;无论面对何种挑战,我会认真做好自己该做的事情。
上次和表姐见面是五年前。她外表没有什么变化,只是言语中多了一些世故和谨慎(我在她眼中何尝不是如此?)。我很想和她好好聊聊,无奈行程非常紧凑,实在抽不出时间。在车上说起姨妈的病情,她不停地落泪;而坐在前排的我,明明知道她在后排哭,却没有给她一张纸巾或说一句安慰的话,反而故作轻松地和姐夫聊些其它的话题。我很想关心她,却没有关心她,内心强烈扭曲的折磨也让我很不好受。我为这件事情感到深深的自责。
记录搭建第一个Catalyst应用实例的步骤。前面安装的Catalyst::Devel中已经包括了用来输出HTML的Template Toolkit,现在需要安装的是Catalyst和它的接口Catalyst::View::TT,
# cpan -i Catalyst::View::TT
根据Catalyst::View::TT的标准,在View目录下生成TT.pm文件:
phillip@athens:~/MyApp$ perl script/myapp_create.pl view TT TT phillip@athens:~/MyApp$ ls lib/MyApp/View/ TT.pm
获取Catalyst::View::TT的版本信息:
$ perl -MCatalyst::View::TT -e 'print Catalyst::View::TT->VERSION' 0.38
修改Makefile.PL文件,在’require’区域后面加上‘Catalyst::View::TT’:
phillip@athens:~/MyApp$ vim Makefile.PL
修改后的Makefile.PL文件:
#!/usr/bin/env perl
# IMPORTANT: if you delete this file your app will not work as
# expected. You have been warned.
use inc::Module::Install 1.02;
use Module::Install::Catalyst; # Complain loudly if you don't have
# Catalyst::Devel installed or haven't said
# 'make dist' to create a standalone tarball.
name 'MyApp';
all_from 'lib/MyApp.pm';
requires 'Catalyst::Runtime' => '5.90011';
requires 'Catalyst::Plugin::ConfigLoader';
requires 'Catalyst::Plugin::Static::Simple';
requires 'Catalyst::Action::RenderView';
requires 'Moose';
requires 'namespace::autoclean';
requires 'Config::General';
# This should reflect the config file format you've chosen
requires 'Catalyst::View::TT' => '0.38';
# See Catalyst::Plugin::ConfigLoader for supported formats
test_requires 'Test::More' => '0.88';
catalyst;
install_script glob('script/*.pl');
auto_install;
WriteAll;
在MyApp/root目录中创建输入的HTML模板,将模板文件命名为’phillip.tt’, 其代码如下:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN">
<html xmlns=" http://www.w3.org/1999/xhtml" xml:lang="zh_ch">
<head>
<title>Phillip的哲学世界</title>
</head>
<body>
<h1>Phillip的哲学世界</h1>
<p>
哪只球队将获得是今年的意甲冠军?
[% word | html %].
</p>
</body>
</html>
现在phillip.tt还不能做任何事,因为没有定义与之关联的应用。下面将生成一个名字为”Phillip”的控制器:
phillip@athens:~/MyApp$ perl script/myapp_create.pl controller Phillip exists "/home/phillip/MyApp/script/../lib/MyApp/Controller" exists "/home/phillip/MyApp/script/../t" created "/home/phillip/MyApp/script/../lib/MyApp/Controller/Phillip.pm" created "/home/phillip/MyApp/script/../t/controller_Phillip.t"
生成在Phillip.pm文件在/lib/MyApp/Controller目录下。
phillip@athens:~/MyApp/lib/MyApp/Controller$ ls Phillip.pm Root.pm
修改Phillip.pm,使用前面的phillip.tt模板:
package MyApp::Controller::Phillip;
use Moose;
use namespace::autoclean;
BEGIN {extends 'Catalyst::Controller'; }
=head1 NAME
MyApp::Controller::Phillip - Catalyst Controller
=head1 DESCRIPTION
Catalyst Controller.
=head1 METHODS
=cut
=head2 index
=cut
sub phillip : Global {
my ( $self, $c, @args ) = @_;
my $word = $args[0] || 'Barnet';
$c->stash->{template} = 'phillip.tt';
$c->stash->{word}= $word;
}
=head1 AUTHOR
phillip,,,
=head1 LICENSE
This library is free software. You can redistribute it and/or modify
it under the same terms as Perl itself.
=cut
__PACKAGE__->meta->make_immutable;
1;
可以使用myapp_test测试一下:
$ perl script/myapp_test.pl /phillip/milan [debug] Debug messages enabled [debug] Statistics enabled [debug] Loaded plugins: .----------------------------------------------------------------------------. | Catalyst::Plugin::ConfigLoader 0.30 | '----------------------------------------------------------------------------' [debug] Loaded dispatcher "Catalyst::Dispatcher" [debug] Loaded engine "Catalyst::Engine" [debug] Found home "/home/phillip/MyApp" [debug] Loaded Config "/home/phillip/MyApp/myapp.conf" [debug] Loaded components: .-----------------------------------------------------------------+----------. | Class | Type | +-----------------------------------------------------------------+----------+ | MyApp::Controller::Phillip | instance | | MyApp::Controller::Root | instance | | MyApp::View::TT | instance | '-----------------------------------------------------------------+----------' [debug] Loaded Private actions: .----------------------+--------------------------------------+--------------. | Private | Class | Method | +----------------------+--------------------------------------+--------------+ | /default | MyApp::Controller::Root | default | | /end | MyApp::Controller::Root | end | | /index | MyApp::Controller::Root | index | | /phillip/phillip | MyApp::Controller::Phillip | phillip | '----------------------+--------------------------------------+--------------' [debug] Loaded Path actions: .-------------------------------------+--------------------------------------. | Path | Private | +-------------------------------------+--------------------------------------+ | / | /index | | /... | /default | | /phillip/... | /phillip/phillip | '-------------------------------------+--------------------------------------' [info] MyApp powered by Catalyst 5.90011 [info] *** Request 1 (1.000/s) [13033] [Thu Mar 22 17:06:34 2012] *** [debug] Path is "phillip" [debug] Arguments are "milan" [debug] "GET" request for "phillip/milan" from "127.0.0.1" [debug] Rendering template "phillip.tt" [debug] Response Code: 200; Content-Type: text/html; charset=utf-8; Content-Length: 326 [info] Request took 0.052756s (18.955/s) .------------------------------------------------------------+-----------. | Action | Time | +------------------------------------------------------------+-----------+ | /phillip/phillip | 0.000292s | | /end | 0.046260s | | -> MyApp::View::TT->process | 0.044756s | '------------------------------------------------------------+-----------' <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"> <html xmlns=" http://www.w3.org/1999/xhtml" xml:lang="zh_ch"> <head> <title>Phillip的哲学世界</title> </head> <body> <h1>Phillip的哲学世界</h1> <p> 哪只球队将获得今年的意甲冠军? milan. </p> </body> </html>
注意,此时如果在浏览器中访问http://catalyst_ip_or_name:3000/phillip/milan将报错’Page not found’。重新启动Catalyst开发web服务’myapp_server.pl’仍然出现同样的情况。必须要进行编译和安装模块:
phillip@athens:~/MyApp$ perl Makefile.PL include /home/phillip/MyApp/inc/Module/Install.pm include inc/Module/Install/Metadata.pm include inc/Module/Install/Base.pm include inc/Module/Install/Makefile.pm Cannot determine perl version info from lib/MyApp.pm include inc/Module/Install/Catalyst.pm include inc/Module/Install/Include.pm include inc/File/Copy/Recursive.pm *** Module::Install::Catalyst Please run "make catalyst_par" to create the PAR package! *** Module::Install::Catalyst finished. include inc/Module/Install/Scripts.pm include inc/Module/Install/AutoInstall.pm include inc/Module/AutoInstall.pm *** Module::AutoInstall version 1.06 *** Checking for Perl dependencies... [Core Features] - Test::More ...loaded. (0.98 >= 0.88) - Catalyst::Runtime ...loaded. (5.90011 >= 5.90011) - Catalyst::Plugin::ConfigLoader ...loaded. (0.30) - Catalyst::Plugin::Static::Simple ...loaded. (0.29) - Catalyst::Action::RenderView ...loaded. (0.16) - Moose ...loaded. (2.0402) - namespace::autoclean ...loaded. (0.13) - Config::General ...loaded. (2.50) - Catalyst::View::TT ...loaded. (0.38 >= 0.38) *** Module::AutoInstall configuration finished. include inc/Module/Install/WriteAll.pm include inc/Module/Install/Win32.pm include inc/Module/Install/Can.pm include inc/Module/Install/Fetch.pm Writing Makefile for MyApp Writing MYMETA.yml and MYMETA.json Writing META.yml phillip@athens:~/MyApp$ make && make test
注意,make install需要root权限,否则报错:
phillip@athens:~/MyApp$ make install !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ERROR: Can't create '/usr/local/bin' Do not have write permissions on '/usr/local/bin' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! at -e line 1 make: *** [pure_site_install] 错误 13
使用sudo安装模块:
phillip@athens:~/MyApp$ sudo make install [sudo] password for phillip: Installing /usr/local/share/perl/5.12.4/MyApp/Controller/Phillip.pm Installing /usr/local/share/perl/5.12.4/MyApp/root/phillip.tt Installing /usr/local/man/man3/MyApp::Controller::Phillip.3pm Appending installation info to /usr/lib/perl/5.12/perllocal.pod
现在,在浏览器中可正常访问http://catalyst_ip_or_name:3000/phillip/milan。如果更新了/home/phillip/MyApp/root/phillip.tt模板,变化的内容即使重新启动Catalyst web服务器也无法显示。修改后可以重新编译,或者直接对’usr/local/share/perl/5.12.4/MyApp/root/phillip.tt’进行修改也可以。
还有一点需要注意的,Catalyst web服务器启动最好使用:
$ perl script/myapp_server.pl -r -d
‘-r’参数将使服务在恰当的时候自动重启,比如当发现Phillip.pm时:
Saw changes to the following files: - /usr/local/share/perl/5.12.4/MyApp/Controller/Phillip.pm (create) Attempting to restart the server
下午在Ubuntu上装了Catalyst Web开发框架。从此处下载安装脚本,然后用root执行:
#perl cat-install
如果此时直接运行catalyst.pl,回提示安装Catalyst::Devel。
# catalyst.pl MyApp To use the Catalyst development tools including catalyst.pl and the generated script/myapp_create.pl you need Catalyst::Helper, which is part of the Catalyst-Devel distribution. Please install this via a vendor package or by running one of - perl -MCPAN -e 'install Catalyst::Devel' perl -MCPANPLUS -e 'install Catalyst::Devel' BEGIN failed--compilation aborted at /usr/local/bin/catalyst.pl line 24.
安装Catalyst::Devel。
# perl -MCPAN -e 'install Catalyst::Devel'
使用phillip创建一个具体的实例:
phillip@athens:~$ catalyst.pl MyApp created "MyApp" created "MyApp/script" created "MyApp/lib" created "MyApp/root" created "MyApp/root/static" created "MyApp/root/static/images" created "MyApp/t" created "MyApp/lib/MyApp" created "MyApp/lib/MyApp/Model" created "MyApp/lib/MyApp/View" created "MyApp/lib/MyApp/Controller" created "MyApp/myapp.conf" created "MyApp/myapp.psgi" created "MyApp/lib/MyApp.pm" created "MyApp/lib/MyApp/Controller/Root.pm" created "MyApp/README" created "MyApp/Changes" created "MyApp/t/01app.t" created "MyApp/t/02pod.t" created "MyApp/t/03podcoverage.t" created "MyApp/root/static/images/catalyst_logo.png" created "MyApp/root/static/images/btn_120x50_built.png" created "MyApp/root/static/images/btn_120x50_built_shadow.png" created "MyApp/root/static/images/btn_120x50_powered.png" created "MyApp/root/static/images/btn_120x50_powered_shadow.png" created "MyApp/root/static/images/btn_88x31_built.png" created "MyApp/root/static/images/btn_88x31_built_shadow.png" created "MyApp/root/static/images/btn_88x31_powered.png" created "MyApp/root/static/images/btn_88x31_powered_shadow.png" created "MyApp/root/favicon.ico" created "MyApp/Makefile.PL" created "MyApp/script/myapp_cgi.pl" created "MyApp/script/myapp_fastcgi.pl" created "MyApp/script/myapp_server.pl" created "MyApp/script/myapp_test.pl" created "MyApp/script/myapp_create.pl" Change to application directory and Run "perl Makefile.PL" to make sure your install is complete
按照提示运行‘perl Makefile.PL’完成安装:
phillip@athens:~$ cd MyApp/ phillip@athens:~/MyApp$ perl Makefile.PL
启动Catalyst的Web服务,便于开发调试:
phillip@athens:~/MyApp$ cd script/ phillip@athens:~/MyApp/script$ perl myapp_server.pl
在浏览器中打开http://catalyst_web_server_ip_or_name:3000可以显示页面。
我选择了Syntax Highlighter for wordpress作为显示代码插件。安装完成后,发现有两个问题。第一个是在代码区右上角有一个绿色的问号区域,点击会链接到Syntax的版权信息。我尊重原作者做出的努力,可是当代码段较少而又出现多次连续代码区域时,一片绿色的问号在视觉效果上感觉较差。我要去掉这个问号。在控制板中编辑该插件配置文件syntax_highlighter.php,将以下代码中的toolbar改为false即可。
var $default_atts = array( 'num' => 1 ,'lang' => 'plain' ,'lang_name' => 'false' ,'highlight_lines' => '' ,'collapse' => 'false' ,'gutter' => 'true' ,'ruler' => 'false' ,'toolbar' => 'false' ,'smart_tabs' => 'true' ,'tab_size' => '4' ,'light' => 'false' ,'auto_link' => 'false' ,'font_size' => '100%' ,'encode' => 'false' );
第二个问题是在Chrome浏览器中代码区始终有一个滚动条,firefox不会有这种情况。网上有很多解决方法,修改plugin/syntaxhighlisghter/3.0.81/css目录下shCoreDefault.css中的..syntaxhighlighter区域,加上”padding:1px;”就可以了。
.syntaxhighlighter {
width: 100% !important;
margin: 1em 0 1em 0 !important;
position: relative !important;
overflow: auto !important;
font-size: 1em !important;
padding:1px;
}
在装好Ubuntu 11.10的机器上配置vnc4server,然后想用本地另外一台机器(Ubuntu)远程控制,在这台机器上安装vnc4server时发现了一个报错:
“debconf: Perl may be unconfigured (Can’t locate Debconf/Log.pm in @INC (@INC contains: /usr/local/lib/perl5/site_perl/5.15.8/i686-linux /usr/local/lib/perl5/site_perl/5.15.8 /usr/local/lib/perl5/5.15.8/i686-linux /usr/local/lib/perl5/5.15.8 .) at (eval 1) line 4.”
提示在@INC中无法找到指定的模块。以前没有发现过这个问题,估计是Perl升级到5.15后的原因。@INC在编译时可以设置,可是我没有找到能一次性设定@INC然后使之永久生效的方法。find找到需要的模块在/usr/share/perl5下,然后把它们拷贝到@INC路径目录下,安装就能顺利完成了。现在可以通过vncviewer远程访问和控制ubuntu 11.10了。
Unicode::UCD可以获取Unicode字符信息。Perl 5.12以上版本包含了此模块,而5.10只有升级到更高的版本才能使用该模块。下面是获取汉字“淮”Unicode信息的例子:
#!/usr/bin/perl
use strict;
use warnings;
use Unicode::UCD 'charinfo';
use charnames ':full';
use Data::Dumper;
my $charinfo = charinfo(ord( "\N{U+6dee}" ));
print Dumper $charinfo;
print "显示汉字 ";
binmode STDOUT, ":utf8";
print "\N{U+6dee}\n";
打印的结果:
$VAR1 = {
'digit' => '',
'bidi' => 'L',
'category' => 'Lo',
'code' => '6DEE',
'script' => 'Han',
'combining' => 0,
'upper' => '',
'name' => 'CJK UNIFIED IDEOGRAPH-6DEE',
'unicode10' => '',
'decomposition' => '',
'comment' => '',
'mirrored' => 'N',
'lower' => '',
'numeric' => '',
'decimal' => '',
'title' => '',
'block' => 'CJK Unified Ideographs'
};
显示汉字 淮
汉字的Unicode字符集可以在此处获取。一些Unicode图形(表情)可以参考这里。注意,如果要在系统中显示该表情图形或文字,必须要确定该表情图形和文字在系统字符映射表中有对应的条目,否则是无法正常显示的。比如笑脸”WHITE SMILING FACE”在字符映射表中有对应的条目,可以打印出来“☺”;而“SMILING CAT FACE WITH OPEN MOUTH”没有对应条目就无法正常显示了。Perl的charnames是访问Unicode集较为方便的接口,“\N“可在运行时编译后面花括号{}中的十六进制数和Unicode名称,比如\N{U+263a}和\N{WHITE SMILING FACE}都可以打印出笑脸。