2007-12-29
[转] 苹果 Firefox 输入框缺字问题
【苹果】解决Firefox 1.5.0.2 mac版缺字的问题?
呃……今天不知道脑子进水了还是怎么回事……边看notes还边研究firefox的缺字问题……
Firefox 1.5版出来后,应该说在mac里缺字问题得到了相当程度的改善……网页已经基本能看了……
但是在网页输入框里还是会缺字……比方说,Google搜索工具栏里的输入框……一直很郁闷……但又不至于郁闷到偶去研究究竟如何解决……
呃……现在,大概是知道了……
- 在firefox preference-Content里将Default font选择为Hei。
- 在firefox.app(大家都是放application目录的吧?扩展名有可能被隐藏)这个文件上点右键,选择show Package contents。
- 进入Contents-MacOS-defaults-profile-chrome 目录
- 建立一个内容为:
input{font-familly:Hei}
textarea{font-family:Hei}
名为userContent.css的文件。 - 保存,重启firefox。
中文缺字问题应该不会再出现了……不过……偶没有对日文、韩文等等其它文字做测试……但,即便这些文字缺字,也应该可以通过往userContent.css里两个font-familiy添加相应的字体名称搞定。
似乎选Hei并不是最理想的字体……选 Times等别的什么会更好……
不懂了~
Posted by
Display Name
-
10:54 AM
0
comments
Labels: Apple, Network/Security
2007-12-28
Resolver Routines
res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, dn_comp, dn_expand
[kw: DNS]
Posted by
Display Name
-
12:52 PM
0
comments
Labels: Network/Security
2007-12-24
There is never more than one question in a DNS message
There is always one question in a DNS message; it includes the domain name and the requested datatype and class. There is never more than one question in a DNS message -- the capability of handling more than one would require a redesign of the message format. For one thing, the single authority bit would have to be changed because the answer section could contain a mix of authoritative and nonauthoritative answers. In the present design, setting the authoritative answer bit means that the name server is authoritative for the zone that contains the domain name in the question section.
For you sticklers for detail, there is a time when the number of questions in a DNS message isn't one: in an inverse query, when it's zero. In an inverse query, there is one answer in the query message, and the question section is empty. The name server fills in the question. But, as we said, inverse queries are almost nonexistent.
Posted by
Display Name
-
1:36 PM
0
comments
Labels: Network/Security
2007-12-17
《南方周末》新闻社区
《南方周末》新闻社区 12月13号上线
新版《南方周末》- www.infzm.com/enews/
Posted by
Display Name
-
12:57 PM
0
comments
Labels: Misc
2007-12-10
CMake Modules of KDE
svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs/cmake/modules
Posted by
Display Name
-
9:23 AM
0
comments
Labels: Make/Build, Version Control
2007-11-29
[AutoIT] Network Programming
AutoItSetOption("TCPTimeout", 10000)
[keywords: tcp timeout tcprecv]
Posted by
Display Name
-
6:41 PM
0
comments
Labels: Utils
2007-11-22
Examples of Programs in Different Languages
Posted by
Display Name
-
6:53 PM
0
comments
Labels: Misc
2007-11-15
2007-11-12
Wikipedia Proxy
http://wikipedia.jaylee.cn/
Gladder - Firefox plugin used to access misc forbidden sites
Posted by
Display Name
-
9:24 AM
0
comments
Labels: Misc, Network/Security
2007-11-06
How to Add Support for a New Language to Exuberant Ctags
Add Support for New Languages to Ctags
Exuberant Ctags has been designed to make it very easy to add your own custom language parser. As an exercise, let us assume that I want to add support for my new language, Swine, the successor to Perl (i.e. Perl before Swine def my_label
". Let us now examine the various ways to do this.
Operational background
As ctags considers each file name, it tries to determine the language of the file by applying the following three tests in order: if the file extension has been mapped to a language, if the file name matches a shell pattern mapped to a language, and finally if the file is executable and its first line specifies an interpreter using the Unix-style "#!" specification (if supported on the platform). If a language was identified, the file is opened and then the appropriate language parser is called to operate on the currently open file. The parser parses through the file and whenever it finds some interesting token, calls a function to define a tag entry.
Posted by
Display Name
-
3:27 PM
0
comments
2007-10-31
ssldump
ssldump is an SSLv3/TLS network protocol analyzer. It identifies TCP connections on the chosen network interface and attempts to interpret them as SSLv3/TLS traffic. When it identifies SSLv3/TLS traffic, it decodes the records and displays them in a textual form to stdout. If provided with the appropriate keying material, it will also decrypt the connections and display the application data traffic.
Posted by
Display Name
-
5:19 PM
0
comments
Labels: Network/Security
W3C TR: Technical Reports and Publications
Posted by
Display Name
-
1:01 PM
0
comments
Labels: Network/Security
lighttpd: New Web Server
Security, speed, compliance, and flexibility -- all of these describe lighttpd (pron. lighty) which is rapidly redefining efficiency of a webserver; as it is designed and optimized for high performance environments. With a small memory footprint compared to other web-servers, effective management of the cpu-load, and advanced feature set (FastCGI, SCGI, Auth, Output-Compression, URL-Rewriting and many more) lighttpd is the perfect solution for every server that is suffering load problems. And best of all it's Open Source licensed under the revised BSD license.
Web 2.0
lighttpd powers several popular Web 2.0 sites like YouTube, wikipedia and meebo. Its high speed io-infrastructure allows them to scale several times better with the same hardware than with alternative web-servers.
This fast web server and its development team create a web-server with the needs of the future web in mind:
Its event-driven architecture is optimized for a large number of parallel connections (keep-alive) which is important for high performance AJAX applications.
Posted by
Display Name
-
8:54 AM
0
comments
Labels: Google, Network/Security
2007-10-30
[Perl] Manipulate Windows Registry
Win32::TieRegistry - Powerful and easy ways to manipulate a registry [on Win32 for now]
Posted by
Display Name
-
12:04 PM
0
comments
Labels: Perl
2007-10-29
SciTE Editor Settings
Menu > Options > Open Global Options File:
# Set line end char to LF
eol.mode=LF
eol.auto=0
# Don't use TABs in code
use.tabs=0
tabsize=4
indent.size=4
tab.indents=1
backspace.unindents=1
[KW: autoit scite]
Posted by
Display Name
-
1:09 PM
0
comments
Labels: Utils
XML DOM
DOM Level 2 Core
DOM Level 3 Core
DOM@W3Schools.com
XMLDOM@DevGuru.com
[KW: xml html dom]
Posted by
Display Name
-
9:15 AM
0
comments
Labels: Network/Security
2007-10-21
DOC Group
The Distributed Object Computing (DOC) Group is a distributed research consortium lead by Dr. Douglas C. Schmidt and consisting of the DOC group in ISIS at Vanderbilt University, Nashville, the Center for Distributed Object Computing in the Computer Science department at Washington University and the Laboratory for Distributed Object Computing in the Electrical Engineering and Computer Science department at the University of California, Irvine. The DOC Group also includes members at Siemens ZT, University of Maryland, Remedy IT, Riverace Corporation, PrismTech, and LMCO-ATL, Object Computing Inc, Qualcomm, Hewlett-Packard, and Automated Trading Desk. The purpose of the DOC group is to support advanced R&D on patterns, middleware, and modeling tools using an open source software development model, which allows academics, developers, and end-users to participate in leading-edge R&D projects driven by the free market of ideas, requirements, and resources.
The most popular and widely used open-source middleware platforms and modeling tools developed by DOC group focus on distributed real-time and embedded (DRE) systems and include:
- ACE, which provides a rich set of reusable C++ wrapper facades and framework components that perform common communication software tasks across a range of OS platforms.
- TAO, which is CORBA middleware that allows clients to invoke operations on distributed objects without concern for object location, programming language, OS platform, communication protocols and interconnects, and hardware.
- CIAO, which is a real-time CORBA Component Model (CCM) implementation built on top of TAO.
- DAnCE, which is the Deployment And Configuration Engine built on top of CIAO that implements the OMG Deployment and Configuration Specification.
- ZEN, which is an implementation of Real-time CORBA implemented using Real-time Java.
- CoSMIC, which is a collection of domain-specific modeling languages and their associated analysis/synthesis tools developed using the Generic Modeling Environment (GME) to support various phases of DRE system development, assembly, deployment, configuration, and quality assurance.
- JAWS, which is a high-performance HTTP web server.
- RACE, which is the Resource Allocation and Control Engine built on top of CIAO that allocates resource (such as memory, computational power, network bandwidth, etc,) and manages application QoS and system resource utilization in various operating conditions by performing necessary control actions.
- Skoll, which is a Distributed Continuous Quality Assurance environment.
- DDS Benchmark, which investigates the performance of pub/sub data distribution service
Posted by
Display Name
-
8:51 PM
0
comments
Labels: *nix, Network/Security
MPC: Makefile, Project and Workspace Creator
A fragile build system may preclude you from supporting diversity. Diversity in terms of platform targets for your software enables you to keep your vendor options open. Makefile, Project, and workspace Creator was originally developed by OCI to assist the ACE and TAO open source development community in supporting multi-platform software.
Developing applications that span platforms (portable code) has the beneficial side effect of producing more robust implementations. It does this by keeping your developers close to the mainstream of language features. MPC minimizes the additional cost normally associated with supporting more than one platform.
MPC was originally developed for, is used with, and is delivered with the ACE and TAO open source code. However, MPC can be used in almost any situation as a tool, able to compliment and simplify your existing build environments. It's more than just a Makefile generator; it supports multiple versions of make (GNU, Microsoft, Borland, Automake), Visual C++ 6.0 and Visual Studio 7.1 and 8.
MPC is therefore copyrighted by OCI and licensed under the same generous terms as TAO. Click here to read the terms.
The goal of MPC is to enable you to..... script once.... and build many.......
Background: Maintaining multiple build tool files for a multi-platform project can be tedious, especially if it is constantly changing and evolving. A project may support GNU Makefiles, Visual C++ project files, Borland Makefiles, and many others. Adding or deleting files, changing project options or even changing the name of the target within your project will incur a time expense to modify each build tool file. Synchronization is a must to ensure the integrity of a build. A single location to store project specific information is needed to avoid repetitious, tedious modifications to multiple build tool files. Adding a new IDE should not be a source of concern and should not have a negative impact on the build process. Some Make systems such as GNUMake and Clearmake may not work well together, which will force you to choose between them. This should not happen. Many projects will benefit from the integration of more than one tool. The build environment should be inclusive, not mutually exclusive. This is where “Make-Project-Creator” (MPC) comes into the picture.
For more details, download the PDF (chapter 4) from the TAO 1.4a Developer’s Guide. This discusses how to get started with MPC.
Posted by
Display Name
-
8:42 PM
0
comments
Labels: *nix, C/CPP, Network/Security
Building ACE on Mac OS X 10.4.10 (Tiger) PPC
- cd ~/tmp
- tar -xjf ACE-5.6.tar.bz2
- export ACE_ROOT=~/tmp/ACE_wrappers
- export DYLD_LIBRARY_PATH=$ACE_ROOT/ace:$ACE_ROOT/lib
- cd $ACE_ROOT
- vi $ACE_ROOT/ace/config.h: #include "ace/config-macosx-tiger.h"
- vi $ACE_ROOT/include/makeinclude/platform_macros.GNU: include $(ACE_ROOT)/include/makeinclude/platform_macosx_tiger.GNU
- make (3.80)
- Make would fail in directory apps/gperf/tests. Ignore it.
--
The full packages do contain all sources with pre generated makefiles for GNU make, Visual C++ 7.1/8.0, Borland C++ make, and GNU autoconf. The sources only packes just contain the sources, you have to generate your own makefiles with MPC.
Posted by
Display Name
-
8:23 PM
0
comments
Labels: *nix, Apple, C/CPP, Network/Security
2007-10-20
DYLD_LIBRARY_PATH (Mac OS X)
DYLD_LIBRARY_PATH (Mac OS X) vs. LD_LIBRARY_PATH (Linux)
Posted by
Display Name
-
9:45 PM
0
comments
2007-10-18
Virtual Dimension: Virtual Desktop Manager for Windows
Welcome to Virtual Dimension: a free, fast, and feature-full virtual desktop manager for Windows platform. The main goal of this open-source project is indeed to enhance the Microsoft "Window Manager" up to the level of usual Unix Window Manager, by providing virtual desktops, as well as some additional features, like always on top, window shading...
Posted by
Display Name
-
12:08 PM
0
comments
Labels: Utils
2007-10-15
Internet Explorer Developer Toolbar
The Microsoft Internet Explorer Developer Toolbar provides a variety of tools for quickly creating, understanding, and troubleshooting Web pages.
[keywords: ie dev toolbar]
Posted by
Display Name
-
4:46 PM
0
comments
Labels: Network/Security, Utils
2007-10-13
2007-10-12
svn: Not authorized to open root of edit operation
Edit svnserve.conf and set anon-access = none
Posted by
Display Name
-
10:08 AM
0
comments
Labels: Version Control
2007-10-10
Simple Rules of the Unix.com Forums
SIMPLE RULES OF THE UNIX FORUMS:
(1) No flames, shouting (all caps), sarcasm, bullying, profanity or arrogant posts.
(2) No negative comments about others or impolite remarks. Be patient.
(3) Refrain from idle chatter that does not contribute to the knowledge base.
(4) Do not 'bump up' questions if they are not answered promptly. No duplicate or cross-posting and do not report a post or send a private message where your goal is to get an answer more quickly.
(5) Search the forums database with your keywords before asking.
(6) Do not post classroom or homework problems.
(7) No job postings from headhunters or recruiters.
(8) No BSD vs. Linux vs. Windows or similar threads.
(9) Edit your posts if you see spelling or grammar errors (don't write in cyberchat or cyberpunk style). English only.
(10) Don't post your email address and ask for an email reply. Don't send a private message with a technical question. The forums are for the benefit of all, so all Q&A should take place in the forums.
(11) These are not hacker boards so hacker related posts will be promptly deleted or moderated.
(12) The forum administrators reserve the right to prune, move or edit posts that do not adhere to the rules or are technically inaccurate.
(13) The forum administrators reserve the right to remove users or change their posting status to read only without notice if any rules are not followed.
(14) No smoking in the forums.
---------------------------------------------------------------------------------------------
Additional helpful suggestion to all posters (for better, faster replies to questions):
(A) Include as many pertinent details as possible in your post. Useful information usually includes: Vendor and version of hardware or software you are using, hardware platform, kernel version (if applicable).
(B) For hardware related questions include model name/number of any affected components. For software issues, indicate which commands you are issuing and any error messages if applicable. Accuracy is important -- copy and paste if possible.
(C) Remember, this is a non-commerical forum dedicated to the open and universal exchange of information. Please help keep the quality of the posts very high for the entire world community.
Posted by
Display Name
-
9:01 AM
0
comments
Labels: Misc
2007-10-09
Remove EAP/PEAP cache in Windows XP
http://support.microsoft.com/kb/823731
[keywords: eap peap windows]
Posted by
Display Name
-
2:10 PM
0
comments
Labels: Misc, Network/Security
2007-10-08
How to call Expect's commands in Tcl?
#!/usr/bin/tclsh
package require Expect
...
expect's commands
...
Posted by
Display Name
-
5:31 PM
0
comments
Labels: Tcl/Expect
Some new features of GREP
- [2.5] The new option --exclude=PATTERN will skip matching files when recursing in directories.
- [2.5.2] The new option --exclude-dir allows to specify a directory pattern that will be exclided from recursive grep.
Posted by
Display Name
-
11:02 AM
0
comments
Labels: Shell/Scripting, Utils
2007-09-26
CVS quick reference card
http://tnerual.eriogerg.free.fr/cvs.html
[keywords: cvs quick reference card]
Posted by
Display Name
-
9:10 AM
0
comments
Labels: Version Control
Vim Quick Reference Card
http://tnerual.eriogerg.free.fr/vim.html
[keywords: vim quick reference card]
Posted by
Display Name
-
9:08 AM
0
comments
Labels: Vim
2007-09-21
CPAN mirror
Perl CPAN: cpan.linuxforum.net, very fast! (Dead?)
http://cpan.modperl.cn/
Posted by
Display Name
-
10:39 PM
0
comments
Labels: Perl
Bash: pipeline and subshell
Each command in a pipeline is executed as a separate process (i.e., in a subshell).
[keywords: bash shell pipe pipeline subshell]
Posted by
Display Name
-
4:41 PM
0
comments
Labels: Shell/Scripting
tftp-hpa 0.40
$ in.tftpd -u root -l -c -s /var/lib/tftpboot
[keywords: tftp tftpd]
Posted by
Display Name
-
3:07 PM
0
comments
Labels: Utils
2007-09-19
fdatasync(2)
fdatasync() flushes all data buffers of a file to disk (before the system call returns). It resembles fsync() but is not required to update the metadata such as access time.
Applications that access databases or log files often write a tiny data fragment (e.g., one line in a log file) and then call fsync() immediately in order to ensure that the written data is physically stored on the harddisk. Unfortunately, fsync() will always initiate two write operations: one for the newly written data and another one in order to update the modification time stored in the inode. If the modification time is not a part of the transaction concept fdatasync() can be used to avoid unnecessary inode disk write operations.
Posted by
Display Name
-
4:11 PM
0
comments
2007-09-15
GDB: set breakpoints for a specific thread
gdb> b breakpoint thread 7 if (cond is true)
Posted by
Display Name
-
3:35 PM
0
comments
2007-09-13
Using Perl as Grep or Sed
- perl -ne '/pattern/ and print' ...
- perl -lne '/pattern/ and print' ...
- perl -pe 's/foo/bar/' ...
- perl -pe 's/^foo.*//' ...
- perl -lpe 's/^foo.*//' ...
- perl -pi -e 's/foo/bar/' ...
- perl -pli -e 's/foo/bar/' ...
Posted by
Display Name
-
10:34 PM
0
comments
Labels: Perl
diff options
- diff -Npru ...
- diff -x CVS -x .svn ...
- diff -I '\$Revision' -I '\$Id' ...
- diff -I '\$Revision\|\$Id' ...
Posted by
Display Name
-
11:22 AM
0
comments
Labels: Utils
2007-09-06
How to concatenate two strings in SQL statement?
.. ...
Note that there are two variations of the equals and not equals operators. Equals can be either = or ==. The non-equals operator can be either != or <>. The || operator is "concatenate" - it joins together the two strings of its operands. The operator % outputs the remainder of its left operand modulo its right operand.
... ...
Posted by
Display Name
-
2:32 PM
0
comments
Labels: Databases
2007-09-05
Pitfall of strerror_r() of GNU libc
int strerror_r(int errnum, char *buf, size_t n);
CONFORMING TO: SVID 3, POSIX, 4.3BSD, ISO/IEC 9899:1990 (C89).
strerror_r() with prototype as given above is specified by SUSv3, and was in use under Digital Unix and HP Unix. An incompatible function, with prototype
char *strerror_r(int errnum, char *buf, size_t n);
is a GNU extension used by glibc (since 2.0), and must be regarded as obsolete in view of SUSv3. The GNU version may, but need not, use the user-supplied buffer. If it does, the result may be truncated in case the supplied buffer is too small. The result is always NUL-terminated.
Posted by
Display Name
-
5:52 PM
0
comments
lftp colors
Time ago when I was using Red Hat Linux 9.0, lftp's `ls' command could show different colors for different types of files, just like what the Linux's `ls' command did. It's cool and I like it. But after I switched to Ubuntu 6.06 lftp's colors have gone! I got back a Red Hat 9.0 box and run lftp and typed `set -a'. From the output I got 2 lftp settings: color:use-color and color:dir-colors. Seems good. Copy these 2 settings out and save as ~/.lftprc. All is done. Enjoy lftp'ing.
Posted by
Display Name
-
3:00 PM
0
comments
Labels: Utils
Dixie Chicks - So Hard
We didn't know how hard it was
Living on nothing
But what the wind would bring to us
Now we've got something
I can imagine fighting for
So why is fighting all that we're good at anymore
And sometimes I don't have the energy
To prove everybody wrong
And I try my best to be strong
But you know it's so hard
It's so hard
It's so hard when it doesn't come easy
It's so hard when it doesn't come fast
It's so hard when it doesn't come easy
It's so hard
It felt like a given
Something a woman's born to do
A natural ambition
To see a reflection of me and you
And I'd feel so guilty
If that was a gift I couldn't give
And could you be happy
If life wasn't how we pictured it
And sometimes I just want to wait it out
To prove everybody wrong
And I need your help to move on
Cause you know it's so hard
It's so hard
It's so hard when it doesn't come easy
It's so hard when it doesn't come fast
It's so hard when it doesn't come easy
So hard
I can live for the moment
When all these clouds open up for me to see
And show me a vision
Of you and me swimming peacefully
Last night you told me
That you can't remember
How to feel free
It's so hard when it doesn't come easy
It's so hard when it doesn't come fast
It's so hard when it doesn't come easy, easy
It's so hard
Posted by
Display Name
-
12:34 PM
0
comments
Labels: Music
Dixie Chicks - Baby Hold On
We might never live those days gone by
But we can try
Good morning
Let's kick the babies out of bed
How bout you and me instead hanging on
Not up and gone
(Baby, hold on)
Let's start this over
(Baby, hold on)
We're not much older now
(Baby, hold on)
If you still see what I see
Keep holding on
Hold on to me
Baby, it's good to see you smile again
I know we can't escape
So let's pretend
We're someplace else
It's a new day
Let's look at all we've got
It's everything we thought
We ever wanted
It's beautiful
(Baby, hold on)
Let's start this over
(Baby, hold on)
We're not much older now
(Baby, hold on)
If you still see what I see
Keep holding on
Hold on to me
I look across the room and catch you staring at me
And see the love we almost left behind
So lead me by the hand and let's make up
Let's make up for lost time
(Baby, hold on)
Let's start this over
(Baby, hold on)
We're not much older
(Baby, hold on)
If you still see what I see
Keep holding on
(Baby, hold on)
Hold on to me
(Baby, hold on)
Just hold on to me
(Baby, hold on)
Hold on to me
Keep holding on
Hey, it might never be the same
We might never live those days gone by
But we can try
Posted by
Display Name
-
12:20 PM
0
comments
Labels: Music
[C] Non-static local vars locate on stack?
刚才讨论问题时发现公司两大主力 developer 竟不清楚这个问题,看来不能仅通过这些技术细节来判断一个人的能力大小。引申思考:面试题的科学性?
Posted by
Display Name
-
11:02 AM
0
comments
Stack size of processes/threads
- ulimit -s
- getrlimit(RLIMIT_STACK)
- setrlimit(RLIMIT_STACK)
- pthread_attr_setstacksize()
- pthread_attr_getstacksize()
SEE ALSO: Advanced Linux Programming, POSIX Thread Programming
Posted by
Display Name
-
10:49 AM
0
comments
Labels: *nix, C/CPP, Shell/Scripting
bashrc grows to 1800 lines
俺的 bashrc 今天涨至 1800 行整,留念 :)
Posted by
Display Name
-
9:19 AM
0
comments
Labels: Shell/Scripting
2007-09-04
Dixie Chicks - Taking The Long Way
前天去华联超市看到 Dixie Chicks 的专辑《Taking the Long Way》,RMB 48,没舍得买 :-(
Posted by
Display Name
-
2:53 PM
0
comments
2007-09-03
bash: 如何判断 stdout 是否是个 terminal
if [ -t 1 ]; then ...
SEE ALSO: isatty(3)
Posted by
Display Name
-
9:26 AM
0
comments
Labels: Shell/Scripting
2007-09-01
Wikipedia not available today
今天又不能访问 wikipedia, 昨天还好好的, 不晓得是不是又被 GFW 给 block 了?
Posted by
Display Name
-
5:24 PM
0
comments
Labels: Misc
Terminal 上常见的几个 signal
- SIGHUP: Hangup detected on controlling terminal or death of controlling process
- SIGINT: Interrupt from keyboard (Ctrl-C)
- SIGQUIT: Quit from keyboard (Ctrl-\)
- SIGTSTP: Stop typed at tty (Ctrl-Z)
- SIGCONT: Continue if stopped (fg)
- SIGTTIN: tty input for background process
- SIGTTOU: tty output for background process (一般情况下 terminal 没有 enable 这个 signal, 可以用 `stty tostop' 来 enable)
Posted by
Display Name
-
5:14 PM
0
comments
C++ vs Java vs Python vs Ruby : a first impression
一哥们儿用 Red-Black tree 的实现对四种 languages 做的比较, 有些意思, 收藏.
2007-08-31
正式放弃 263 邮箱
从 263 邮箱开始收费开始俺一直是其忠实用户, 每年五六十人民币虽说不多, 邮箱的设计和服务确一年不如一年, 令人失望. 自打开始用 GMail 以来, 毅然决定放弃 263 了. 公元 2007-08-28 到期, 不再续费.
其实放弃 263 邮箱还有一大好处: 少了很多垃圾邮件 :)
Posted by
Display Name
-
2:12 PM
0
comments
2007-08-28
Unix ODBC
[keywords: unix odbc postgresql]
Posted by
Display Name
-
12:37 PM
0
comments
Labels: Databases
2007-08-24
getconf - retrieve standard configuration variables
The getconf utility prints the value of a POSIX or X/Open path or system configuration variable to the standard output.
-- getconf(1)
SEE ALSO: pathconf(2), confstr(3), sysconf(3)
Posted by
Display Name
-
7:36 PM
0
comments
Labels: *nix, C/CPP, Shell/Scripting
DVD Region Encoding
Global region codes identify specific DVDs that are compatible with the players typically sold in that region. The majority of all current titles play in only one specific region unless otherwise noted.
Most of the DVDs sold by Amazon.com are encoded for Region 1 (for standard DVDs) or Region A (for Blu-Ray DVDs) only and may not work on DVD players in other countries.
Standard DVDs
- U.S., U.S. Territories, Canada, and Bermuda
- Japan, Europe, South Africa, and the Middle East, including Egypt
- Southeast Asia, East Asia, including Hong Kong
- Australia, New Zealand, Pacific Islands, Mexico, Central America, South America, and the Caribbean
- Former Soviet Union, Indian subcontinent, Africa, North Korea, and Mongolia
- China
Blu-Ray DVDs
- A/1: North America, Central America, South America, Japan, North Korea, South Korea, Taiwan, Hong Kong and Southeast Asia.
- B/2: Europe, Greenland, French territories, Middle East, Africa, Australia and New Zealand.
- C/3: India, Nepal, Mainland China, Russia, Central and South Asia.
SEE ALSO: DVD Region CODE (wikipedia)
Posted by
Display Name
-
5:48 PM
0
comments
Labels: Music
下载的 AVI 没有声音
从 verycd 上下了 Dixie Chicks 的演唱会 Top of the World (DVDrip.avi), 用 WMP 播放不了, 又下了 xvid 和 divx 的解码, 结果只有图形没有声音, 网上 search 了一下, 有人说需要 ffdshow, 下载, try again, ok.
Posted by
Display Name
-
5:29 PM
0
comments
2007-08-23
PLY: Python Lex-Yacc
Welcome to the PLY homepage. PLY is an implementation of lex and yacc parsing tools for Python. If you don't have the slightest idea what that means, you're probably in the wrong place. Otherwise, keep reading.
In a nutshell, PLY is nothing more than a straightforward lex/yacc implementation. Here is a list of its essential features:
- It's implemented entirely in Python.
- It uses LR-parsing which is reasonably efficient and well suited for larger grammars.
- PLY provides most of the standard lex/yacc features including support for empty productions, precedence rules, error recovery, and support for ambiguous grammars.
- PLY is straightforward to use and provides very extensive error checking.
- PLY doesn't try to do anything more or less than provide the basic lex/yacc functionality. In other words, it's not a large parsing framework or a component of some larger system.
LINK: PLY@GoogleCode
Posted by
Display Name
-
12:20 PM
0
comments
Labels: Python
[vim-7] set nuw=4
:help 'nuw'
:help 'numberwidth'
[keywords: number width]
Posted by
Display Name
-
9:08 AM
0
comments
Labels: Vim
2007-08-22
NETPAS
Netpas 网络加速软件帮助您突破电信、网通及教育网的速度瓶颈,实现在三个网络间任意访问,您将再也不会有因网络速度而带来的烦恼;游戏再也不会卡;更不会存在任何无法玩的网络游戏;在网络上看电影、下载文件和浏览网页再也不会焦急的等待。
Netpas 将给您带来前所未有的网络体验,让我们一起来体会这种“爽”的感觉!
用户通过 NETPAS ACC 软件接入 NETPAS 网络平台,就可以直接享受到高速的互联网访问。
--
EDEN 老大帮忙搞了个帐号, 果然效果极好 :-)
Posted by
Display Name
-
11:05 AM
0
comments
Labels: Misc, Network/Security
2007-08-21
SWIG: Simplified Wrapper and Interface Generator
SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages. SWIG is used with different types of languages including common scripting languages such as Perl, PHP, Python, Tcl, Ruby and PHP. The list of supported languages also includes non-scripting languages such as C#, Common Lisp (CLISP, Allegro CL, CFFI, UFFI), Java, Modula-3 and OCAML. Also several interpreted and compiled Scheme implementations (Guile, MzScheme, Chicken) are supported. SWIG is most commonly used to create high-level interpreted or compiled programming environments, user interfaces, and as a tool for testing and prototyping C/C++ software. SWIG can also export its parse tree in the form of XML and Lisp s-expressions. SWIG may be freely used, distributed, and modified for commercial and non-commercial use.
Posted by
Display Name
-
2:15 PM
0
comments
Labels: *nix, C/CPP, Perl, Python, Tcl/Expect
diff -p ...
-p, --show-c-function: Show which C function each change is in.
Posted by
Display Name
-
10:54 AM
0
comments
Labels: Utils
2007-08-20
Firefox Add-ons
Extensions:
- AdBlock Plus
- All-in-One Sidebar
- Better GMail
- Classic Compact Options
- Download Statusbar
- DownThemAll
- Faviconize Tab
- Flashblock
- FlashGot
- FoxClocks
- Foxmarks Bookmark Synchronizer
- FoxyProxy
- Gladder - Get Over GFW with Great Gladder
- Google Gears
- GSpace (To use it, don't force GMail to use HTTPS)
- IE Tab
- MediaWrap
- Mouse Gestures
- NoScript
- Personal Menu
- PicLens
- ScribeFire
- Speed Dial
- Stylish
- Tabbrowser Preferences
- ThumbStrips
- Tiny Menu
- Undo Closed Tabs Button
- Video Download Helper - Download videos and images
- Web Developer Toolbar
- Wizz RSS Reader
Posted by
Display Name
-
11:08 AM
0
comments
Labels: Network/Security, Utils
2007-08-18
SCO OpenServer 5
- Download: OpenServer-5.0.7Hw-10Jun05_1800.iso
- gcc for OpenServer 5 (How To Install Gcc?)
- GNU dev tools
- Bash-3.0 can compile smoothly on 5.0.7 using gcc-2.95.2 (佩服!)
- Link: 单用户序列号大全
- Link: 序列号
- 5.0.7 documentation
- SCO Knowledge Center
Posted by
Display Name
-
12:57 PM
0
comments
Labels: *nix, Shell/Scripting
2007-08-17
2007-08-16
Sticky files and directories
STICKY FILES
On older Unix systems, the sticky bit caused executable files to be hoarded in swap space. This feature is not useful on modern VM systems, and the Linux kernel ignores the sticky bit on files. Other kernels may use the sticky bit on files for system-defined purposes. On some systems, only the superuser can set the sticky bit on files.
STICKY DIRECTORIES
When the sticky bit is set on a directory, files in that directory may be unlinked or renamed only by the directory owner as well as by root or the file owner. Without the sticky bit, anyone able to write to the directory can delete or rename files. The sticky bit is commonly found on directories, such as /tmp, that are world-writable.
Posted by
Display Name
-
8:39 PM
0
comments
Labels: *nix
2007-08-15
[MySQL] Can't connect to MySQL server on '192.168.3.100' (111)
$ mysql -ufoo -pbar -h192.168.3.100 mydb
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.3.100' (111)
默认情况下 mysql 只 listen 到 127.0.0.1 上, 修改 `/etc/mysql/my.cnf', 注释掉下面一行即可:
bind-address = 127.0.0.1
Posted by
Display Name
-
2:17 PM
0
comments
Labels: Databases
2007-08-14
vim 点滴
- vim7 之后默认会 highlight 匹配的括号, 如何 disable? :help matchparen
- vim7 用 omin completion 时, ctrl-x_ctrl-o 会多出一个 preview 窗口, 烦人, 如何 disabled? :help 'completeopt'
- vim7 用 ctrl-p 或 ctrl-n 时会 pop up 出一个 keywords 的 list, 如何 disabled? :help 'completeopt'
Posted by
Display Name
-
3:56 PM
0
comments
Labels: Vim
2007-07-31
Google Code 上的 project 可以转让
这个设计不错,俺刚把一个 project “转让”给了别人 :-)
Posted by
Display Name
-
10:21 AM
0
comments
Labels: Google, Version Control
2007-07-30
svnsync
- svnsync 的主要用途是创建 svn repository 的 readonly mirror, 如果向 mirror 进行了 commit, 则以后的 sync 会 fail
- svnsync sync 之后, mirror 的 source repository 是不允许再修改的
- svnsync init 只能 init 一个刚创建的空的 repository, 否则报错: svnsync: Cannot initialize a repository with content in it
Posted by
Display Name
-
7:47 PM
0
comments
Labels: Version Control
2007-07-27
AutoIt: Windows Automation Language
AutoIt is a freeware Windows automation language. It can be used to script most simple Windows-based tasks (great for PC rollouts or home automation).
AutoIt has been in popular use since 1999 and continues to provide users and administrators with an easy way to script the Windows GUI. In February 2004 the latest version of AutoIt - known as AutoIt v3 - was released and added powerful scripting features.
AutoIt v3 was developed in a small team with the help of contributors around the world and this has led to a great set of help files, examples, support forum, mailing list, editor files, and third-party utilities. Oh, and lets not forget some nice graphics and wallpapers too!
All development is focused on AutoIt v3 but v2 will continue to be downloadable and supported as it is in such widespread use.
Posted by
Display Name
-
1:20 PM
0
comments
Labels: Utils
2007-07-26
Perl Misc
近两年没怎么用 perl, 忘得差不多了:
- perldoc perlre
- perldoc -f ref
- perldoc -m Socket
- perl -de 0 ARGV ...
- apt-get install zoidberg
- perldoc.perl.org
Posted by
Display Name
-
6:01 PM
0
comments
Labels: Debian/Ubuntu, Perl
2007-07-25
2007-07-24
New screen features
New screen features available
From: | Michael Schroeder |
Subject: | New screen features available |
Date: | Tue, 6 Feb 2007 23:34:31 +0100 |
User-agent: | Mutt/1.4.2.1i |
Hi Screen Users,
you probably wonder why the new version of screen is not already
available. Well, it got delayed a bit because of a couple of new
features I've added. The development version is available from
GNU savanna:
cvs -z3 -d:pserver:address@hidden:/sources/screen co screen
Here are the new features:
- vertical split, complete with resizing
^A | split vertically
resize [-l] [-h] [-v]
-l : resize is local to slice
-h : resize horizontally
-v : resize vertically
amount: 10 resize to size 10
amount: +10 make 10 bigger
amount: -10 make 10 smaller
amount: 10% make it 10% of all
amount: = make all windows equal
- better resize code using weights
the layout will stay in shape even after heavy resizing
- window groups
currently a bit ugly to create:
screen -t//group
creates a group named
a group is a subset of windows, ^Aw will only display the
current group and next/prev will not leave the group.
Use ^A" to list all windows of the current group (this also
leaves to group, so that next/prev or a second ^A" will
show the other windows.
- layouts
A layout stores the current setup of the display, i.e. all the
slices and the window assignments.
layout save Desktop1
will save the current setup under the name "Desktop1". If you
detach and reattach later on, the layout will automatically
be restored. "Desktop1" will become the current layout.
layout autosave off
This turns the autosafe feature off. Layouts are automatically
saved if autosave is on and the user detachs or switches to
another layout.
layout new Desktop2
Create a new empty layout named "Desktop2".
layout name "foo"
Rename the current layout to "foo".
layout next
layout prev
layout load "name"
Load the next/prev layout / the layout named "name".
layout attach :last
layout attach "name"
Set the layout used when somebody is attaching. Default is ":last",
this is the layout that was current when the last detach was done.
Besides the restoring of the screen on re-attach, layouts can be
used to implement a kind of "virtual desktop" in screen. Say
you put "layout save Desktop1" in your ~/.screenrc. If you
need a new Desktop, do "^A:layout new Desktop2". You can then
use "layout next" to switch between both layouts.
So, feedback welcome. You probably have a lot of suggestions and
enhancement requests. Sorry that development is a bit slow at
the moment due to not enough spare time...
Cheers,
Michael.
Posted by
Display Name
-
10:01 AM
0
comments
Labels: Utils
2007-07-23
Screen available for Cygwin
前天新装 cygwin 时发现 package 列表中有 screen (4.0.3) 了, 喜
screen is now available in Cygwin
From: | Andrew Schulman |
Subject: | screen is now available in Cygwin |
Date: | Fri, 20 Jul 2007 05:09:46 -0400 |
screen 4.0.3 is now available in the Cygwin distribution. Cygwin users can
install it using the setup utility; screen is in the "Utils" category.
Questions or bug reports about screen in Cygwin should be directed to the
Cygwin list, cygwin at cygwin dot com.
Andrew.
Posted by
Display Name
-
9:11 PM
0
comments
2007-07-21
SVN 1000
今日俺的 svn repository 的 revision 增至 1000, 留念 :-)
Posted by
Display Name
-
5:27 PM
0
comments
Labels: Version Control
Dixie Chicks - Not Ready to Make Nice
Forget, I'm not sure I could.
They say time heals everything,
But I'm still waiting
I'm through, with doubt,
There's nothing left for me to figure out,
I've paid a price, and i'll keep paying
I'm not ready to make nice,
I'm not ready to back down,
I'm still mad as hell
And I don't have time
To go round and round and round
It's too late to make it right
I probably wouldn't if I could
Cause I'm mad as hell
Can't bring myself to do what it is
You think I should
I know you said
Why can't you just get over it,
It turned my whole world around
and i kind of like it
I made by bed, and I sleep like a baby,
With no regrets and I don't mind saying,
It's a sad sad story
That a mother will teach her daughter
that she ought to hate a perfect stranger.
And how in the world
Can the words that I said
Send somebody so over the edge
That they'd write me a letter
Saying that I better shut up and sing
Or my life will be over
I'm not ready to make nice,
I'm not ready to back down,
I'm still mad as hell
And I don't have time
To go round and round and round
It's too late to make it right
I probably wouldn't if I could
Cause I'm mad as hell
Can't bring myself to do what it is
You think I should
I'm not ready to make nice,
I'm not ready to back down,
I'm still mad as hell
And I don't have time
To go round and round and round
It's too late to make it right
I probably wouldn't if I could
Cause I'm mad as hell
Can't bring myself to do what it is
You think I should
Forgive, sounds good.
Forget, I'm not sure I could.
They say time heals everything,
But I'm still waiting
Posted by
Display Name
-
2:58 PM
0
comments
Labels: Music
Dixie Chicks - The Long Way Around
Moved into houses in the same ZIP codes
Where their parents live
But I, I could never follow
No I, I could never follow
I hit the highway in a pink RV with stars on the ceiling
Lived like a gypsy
Six strong hands on the steering wheel
I've been a long time gone now
Maybe someday, someday I'm gonna settle down
But I've always found my way somehow
By taking the long way
Taking the long way around
Taking the long way
Taking the long way around
I met the queen of whatever
Drank with the Irish and smoked with the hippies
Moved with the shakers
Wouldn't kiss all the asses that they told me to
No I, I could never follow
No I, I could never follow
It's been two long years now
Since the top of the world came crashing down
And I'm getting' it back on the road now
But I'm taking the long way
Taking the long way around
I'm taking the long way
Taking the long way around
The long
The long way around
Well, I fought with a stranger and I met myself
I opened my mouth and I heard myself
It can get pretty lonely when you show yourself
Guess I could have made it easier on myself
But I, I could never follow
No I, I could never follow
Well, I never seem to do it like anybody else
Maybe someday, someday I'm gonna settle down
If you ever want to find me I can still be found
Taking the long way
Taking the long way around
Taking the long way
Taking the long way around
Posted by
Display Name
-
2:54 PM
0
comments
Labels: Music
2007-07-20
养鸡场的死鸡哪去了
南方周末 2007-07-19 15:38:07
一种畸形养殖模式,导致鸡大批死亡。而当中国人每年吃掉近五十亿只鸡时,我们不得不去关注——
养鸡场的死鸡哪去了
□周思妤 成希 郑焕坚 □本报记者 穆彤 张英 发自北京 上海
广州
■只有比较新鲜的死鸡才会整只出售给商家,用于加工烧鸡、烤鸡;不太新鲜的,会把鸡翅、鸡腿、鸡爪切出来,制成冷冻食品
■吃死鸡并不会感染禽流感,因为高温可以杀死禽流感病毒。但有可能得病的是那些杀鸡、抓鸡的人,禽流感是接触传染的
■“集中营式”养殖,使得这些鸡异常脆弱。一位专家在肉鸡场做调查,竟然还发现了放在地上连路都不会走的鸡!这样的鸡进入食物链,对人体的危害可想而知
当中国人每年吃掉的鸡接近50亿只时,一个问题必须引起高度关注--这种餐桌上必不可少的食物是否安全?
中科院专家调研得出惊人结果
一位资深学者揭开了这个公开的秘密--他叫蒋高明,中国科学院植物研究所首席研究员。2005年7月至今,他与他的课题组在山东、内蒙古、北京等多个省份,展开了一项对“养鸡场死鸡去向”的调查,其结论是:大部分死鸡被端上了餐桌。
“养殖户大都是比较淳朴的农民,他们对死鸡的去向都直言不讳--全部卖给了收死鸡的人。”蒋高明说,“有的鸡农还向我炫耀:一次他拉了三千多只鸡进城,送到批发市场已经死了三百多只。他把这些死鸡直接运到附近的农贸市场卖掉,省了很多成本。”
南方周末记者的调查进一步印证了这个结论。而当记者以鸡贩子的身份致电陕西、湖北、安徽、江苏的十多家养鸡场后,发现小型养鸡场大都出售死鸡。这个交易过程很简单:买者直接过去,看货、给钱,他们负责找个车拉走。
只有拥有10万只鸡以上的大型养殖场拒绝出售死鸡。“这只是表面现象,因为你和他们不熟。”一名死鸡贩子对记者说,“他们不敢拿自己的信誉做赌注。”
“在我们调查的养鸡场中,进入食物链的死鸡超过八成。”蒋高明说。
另一个事实也被揭开:大量死鸡从禽病医院流入了市场。蒋高明发现,医院里的死鸡本是鸡农带来让医生诊断的--这些可能有疫病的家禽,应该做焚烧或掩埋处 理。“但是通过熟人介绍,医院发现死鸡可以卖钱。”蒋高明说,“于是,卖死鸡就成了禽病医院的生意。现在,每天都有专人到医院收购死鸡。”不要小看禽病医 院里的死鸡量,有些养殖户会带半麻袋鸡来看病--他们宁愿多带些样本,让大夫瞧个明白。
它们这样走上餐桌
这些令人作呕的死鸡,养活了一群人。他们清晨四五点钟出门,每天甚至要跑四五百公里的路程,到各个养鸡场收购死鸡。当然,如果把这个生意做大,就可以在家中等货上门。而在每个禽类交易市场,也活跃着专收死鸡的群体。每天,他们像淘宝一样,在各个“档口”以低价进货。
在华南一个禽类批发市场里,记者以业务员的名义认识了鸡贩子陈仔。他只有22岁,但从事禽畜动物批发已经7年,3年前就拥有自己独立的档口。按他的说 法,批发市场中的绝大部分死鸡都被出售,除了极少数高度腐烂的。“每天至少有50万只鸡流入市场,按照5%的最低死亡率,大约2.5万只死鸡被市民吃 掉。”陈仔说。
为证实上述观点,这个批发商带记者在多个禽类市场进行了考察。死鸡都被装进编织袋,扔在每个档口的臭水沟里,皮毛不整、异味扑鼻。它们也被明码标价,并随着市场行情上下浮动。比如竹丝鸡目前每只3元,清远鸡每只9元。
无论是去养殖场取货,还是在禽类批发市场收购,死鸡都有一个“再分解”的加工过程。在河北的一个死鸡加工点,本报记者曾亲眼目睹这一系列肮脏的工序-- 首先是用热水甚至沥青烫,再放入褪毛机,最后放在水中浸泡,以去除其身上的淤血。一般人是无法忍受工作的“艰辛”的--在现场,一个刚来不久的小工突然呕 吐不止。
只有比较新鲜的死鸡才会整只出售给商家,用于加工烧鸡、烤鸡;不太新鲜的,会把鸡翅、鸡腿、鸡爪切出来,制成冷冻食品。“冷冻食品都 不新鲜,很难看出哪是病死鸡哪是健康鸡,所以容易掩人耳目。”一位业内人士说。另外,死鸡的内脏--比如说鸡胗,大多流向烧烤摊位;而腐烂比较严重的鸡, 还能制成火腿肠。值得注意的是,有些饭店的“乳鸽”,或者那些油炸“麻雀”,其实就是剥过皮的小死鸡。
此间的产业链已非常成熟。在下游,有专门要内脏的商贩,有专取白条鸡的商贩,还有加工熟食的。其终端就是饭店、熟食店、烧烤摊甚至超级市场,死鸡由此进入人们的餐桌。
流通背后的利益链
某禽病中心医生称,他正准备享受“美味”烧鸡时,被吓出了一身汗。眼前的食品是由“包心包肝”的鸡做成的--所谓“包心包肝”,是指鸡死于大肠杆菌感染 后,心脏或肝脏外会形成厚约1毫米的蛋白分泌物,呈黄白色。烧鸡店老板没有将此分泌物处理干净,就做了烧鸡。“专业人员可以吃出死鸡来,普通人怎么吃得 出?”一位禽类专家说。
但黑心商人不会在乎这些,对于他们,利润才是第一位的。有位老板给暗访的央视记者算过一笔账:“收一只死鸡平均2元钱。加工成烧鸡半成品重约1公斤,按批发价是一斤4.5元,每只鸡能挣6-7元。如果一天做300只,就收入2000元左右。”
“对养殖户来说,也是因为回收成本心情急切让他们不顾食物安全。”蒋高明说,“在政府方面,只有禽流感死亡的鸡才给养殖户补偿,虽然大部分地区规定了每 只补助10元,但是农民要拿到是很困难的。这也并非政府的完全不作为--一个五六万人的乡镇,有30-40个大型养殖场,活鸡两三百万,但政府工作人员只 有三五个人。怎么管理呢?”
有关部门的不作为,助长了死鸡的流通。“卫生标准往往是摆在那里应付检查的。”一位养殖户说,“养殖场里难闻的气味,令检查的官员避之惟恐不及,很多时候在外面转转就交差了。”
这种情况同样出现在禽类批发市场。广州一个鸡贩子说,禽流感严重的时候,市场加大了监管力度,派出专人每天去各个档口收集死亡的禽畜,买卖死禽被严惩。但禽流感一过,有关部门睁一只眼闭一只眼,商户出售死鸡也越来越明目张胆。
死鸡伤人有多深?
尽管这些死鸡让人很反感,但可以肯定的是,煮熟的它们不会传播禽流感。接受南方周末记者采访时,中国工程院院士、中国疾病预防控制中心专家陈君石解释:“高温可以杀死禽流感病毒。但有可能得病的是那些杀鸡、抓鸡的人,禽流感是接触传染的。”
“但动物死后,尸体的腐烂会很快开始,过程会产生对人体有害的物质。”中国健康教育协会副会长、复旦大学教授李枫说,“何况死鸡往往是病鸡,带有各种传染性病菌。加工者为了掩盖死鸡的异味,往往又加了过多的添加剂,这对人体的危害更大。”
一般情况下,鸡的死因有两种:传染病死亡和非传染病死亡--比如药物中毒、天气过热、环境污染、打斗致死等。南方周末记者根据多方调查总结,目前,大部分养鸡场的死亡率为5%-10%。“这是一个不正常的数字。”蒋高明说。
据蒋高明调查,很多养殖户为了让鸡少患病,将磺胺类药物掺入它们的食物中,甚至使用禁用药物喹乙醇。“工厂化养殖的鸡,每天吃着大量的添加剂、安眠药、 抗生素和激素,养殖者把它们的生命周期由200多天缩短到40天左右。”蒋高明说,“这样不科学的喂养,怎能不提高鸡的死亡率?”
同时被这位研究者严厉指责的,还有“集中营”式的养殖方式。在天津、北京等北方城市,本报记者曾亲眼目睹这种方式--至少七八十只鸡一直挤在1平方米的狭小空间里,身体都转不过来。惟一可以享受自由的,是它们探出笼子的头。
“严重违背生物学规律的养殖,使得这些鸡异常脆弱,放个鞭炮都能被吓死。”蒋高明说,“集约化养殖的鸡,不会飞已不是什么令人大惊小怪的事了。但是我这次在肉鸡场的调查,竟然还发现了放在地上连路都不会走的鸡!”
而这样的鸡进入食物链,无论是否死亡的,对人体的危害可想而知。即使这些鸡粪做成的肥料,都会因为重金属含量超标而产生危害。
在某些养鸡已经形成产业的地方,村民间已经形成了一条不成文的规矩:如果哪家人办喜事招待客人,图便宜买了肉鸡,就会让乡亲们笑话,从此抬不起头来。所以,即使最穷的人都要花高价买散养的柴鸡下厨。
更令一些生物专家担忧的是,这种严重违背生物学的养殖方式,已经扩大到了鸭和鹅。后者的出笼时间也是40天左右,甚至连它们戏水的基本权利都被剥夺了。
“很多食品安全问题不是突发性的--不是说,人一吃了就会马上发病。”一位消费者说,“而这种在畸形环境里成长起来的鸡,就可能给人体带来长期的威胁。”
为改变这种畸形养殖模式,蒋高明及著名学者温铁军等人提议:将“集中营”式的养殖转变为自由散养,利用广阔的草原、林下空地等生态空间,把鸡解放出牢 笼,还原其150-200天的“长大成鸡”周期。这被他们总结为“畜南下,禽北上”。这也是身为植物生态学家的蒋高明等人为什么开展死鸡调查的起因。
(有关中国法律禁止销售死鸡的规定,参见本报网站www.infzm.com)
Posted by
Anonymous
-
10:21 PM
0
comments
Labels: Misc
Dixie Chicks - Taking The Long Way
Dixie Chicks《Taking The Long Way》
http://www.sina.com.cn 2006年06月20日15:52 新浪娱乐

专辑名:《Taking The Long Way》
演唱者:Dixie Chicks
发行时间:2006年5月23日
发行公司:Sony
音乐风格:Neo-Traditionalist Country(新传统主义乡村),Pop/Rock(流行/摇滚)
[曲目介绍] |
1. The Long Way Around
2. Easy Silence
3. Not Ready To Make Nice(推荐单曲)
4. Everybody Knows(推荐单曲)
5. Bitter End
6. Lullaby
7. Lubbock Or Leave It
8. Silent House
9. Favorite Year(推荐单曲)
10. Voice Inside My Head(推荐单曲)
11. I Like It
12. Baby Hold On
13. So Hard
14. I Hope
[唱片点评] |
在将近四年之后,美国最受欢迎的当代乡村组合南方小鸡(Dixie Chicks)终于推出了她们最新的录音室专辑《Taking The Long Way》。这张《Taking The Long Way》在发行首周的单周销量达到52万6千张,力压同样由里克·鲁宾(Rick Rubin)制作的红辣椒乐队(Red Hot Chili Peppers)的最新双张专辑《Stadium Arcadium》,如愿登顶本周的Billboard 200专辑榜,成为Dixie Chicks第三张在Billboard 200专辑榜中折桂的专辑。Dixie Chicks此前两张冠军专辑分别是1999年发行的《Fly》和2002年发行的《Home》,而上张专辑《Home》在发行首周的销量更高,达到了 78万张。
在这张专辑中,Rick Rubin不仅担当制作人,而且还为Dixie Chicks召集来了Red Hot Chili Peppers乐队的鼓手查德·史密斯(Chad Smith),为汤姆·佩蒂(Tom Petty)伴奏的“伤心者”乐队(Heartbreakers)的键盘手本蒙特·坦奇(Benmont Tench)和吉他手麦克·坎贝尔(Mike Campbell)等实力不俗的乐手为Dixie Chicks的三位女将助阵。另外,在专辑歌曲的创作名单中,还包括了著名民谣摇滚女歌手雪儿·克洛(Sheryl Crow),当代布鲁斯吉他手Keb' Mo'以及另类乡村摇滚乐队The Jayhawks的成员加里·罗里斯(Gary Louris)等创作高手。更多新鲜血液的注入使Dixie Chicks这张专辑显得更加的丰润,《Not Ready To Make Nice》,《Everybody Knows》,有Sheryl Crow参与创作的《Favorite Year》以及《Voice Inside My Head》都是十分有Dixie Chicks特点的优秀单曲。而从歌词上来看,Dixie Chicks这三位女将也是非常值得钦佩的,面对各种威胁恐吓丝毫没有任何妥协,依然光明磊落,兢兢业业的做着她们自己的音乐。
从各方面来说,这张《Taking The Long Way》都丝毫不比四年前大卖的专辑《Home》逊色。相反,Dixie Chicks用实力证明了她们与Rick Rubin以及各界创作精英的合作是相当成功的。尽管已经四年没有新作问世,但Dixie Chicks用这张歌迷们已经期盼已久的专辑证明了她们仍是当今美国最有实力的乡村组合之一。KFC MAN/文
[歌手介绍] |

Dixie Chicks这个名字最早来源于美国布鲁斯摇滚乐队Little Feat的歌曲《Dixie Chickens》。直到上世纪90年代末,Dixie Chicks才在美国主流乡村音乐界大红大紫。但早在1989年,Dixie Chicks组合就已经在达拉斯成立,最初组建Dixie Chicks的四位成员分别是:小提琴手马蒂·塞德尔(Martie Seidel)和他弹班卓琴的姐妹埃米丽·艾尔文(Emily Erwin),贝斯手劳拉·林奇(Laura Lynch)和吉他手罗宾·林恩·梅西(Robin Lynn Macy)。乐队最初也只是能够在街角以及当地的小酒吧演出,但随着Martie Seidel在美国小提琴大赛中获得季军,Dixie Chicks组合的事业也开始有了明显的好转。Dixie Chicks逐渐确定了自己将传统乡村音乐,民谣以及兰草等多种音乐融为一体的独特风格。1990年,Dixie Chicks独立发行了她们的首张专辑《Thank Heavens for Dale Evans》。
1992,在《Little Ol' Cowgirl》发行之后,Robin Lynn Macy宣布离队,而Laura Lynch开始担任主唱。1993年,Dixie Chicks首次以三人阵容发行了专辑《Shouldn't a Told You That》。1995年,在Dixie Chicks与Sony新设立的厂牌Monument签约后不久,Laura Lynch也离开了Dixie Chicks。之后,曾有媒体报道Robin Lynn Macy以及Laura Lynch的离队都是由于年龄问题。在Laura Lynch退出后不久,乡村吉他大师Lloyd Maines 21岁的女儿Natalie Maines成为了Dixie Chicks的新任主唱。
拥有了新阵容的Dixie Chicks将传统的乡村音乐做的愈加的流行化。正如媒体预言,Dixie Chicks组合1998年在大厂牌Monument发行的首张专辑《Wide Open Spaces》获得了巨大的成功,不仅获得了当年Billboard乡村专辑榜的冠军,而且在Billboard 200专辑榜中也取得第四名的好成绩。专辑中首支单曲《I Can Love You Better》成为Dixie Chicks第一支打入排行榜前十名的单曲,而《There's Your Trouble》以及同名单曲《Wide Open Spaces》都在乡村单曲榜中成功问鼎。在《Wide Open Spaces》专辑发行后的一年之内,专辑在美国的总销量达到四白金,Dixie Chicks一跃成为美国最受人瞩目的乡村组合之一,她们不仅获得美国乡村音乐协会评出的最佳组合以及Horizon奖两项大奖,而且在当年的美国音乐奖 的角逐中还被评为“歌迷最喜爱的乡村新人”。Dixie Chicks也凭借这张叫好又叫座的专辑获得1998年第41届格莱美奖的“最佳乡村组合”以及“最佳乡村专辑”两项大奖。
1999年8月,Dixie Chicks再接再厉,发行了加盟Monument之后的第二张专辑《Fly》。专辑中首支单曲《Ready to Run》以及之后的《Goodbye Earl》在乡村单曲榜中的表现很快就十分抢眼,而《Fly》也成为Dixie Chicks首张在Billboard 200专辑榜中夺冠的专辑。Dixie Chicks凭借这张《Fly》再度获得格莱美最佳乡村专辑奖。
2002年5月,Dixie Chicks和莎奇拉(Shakira),马丽·J·布里奇(Mary J. Blige),雪儿(Cher)和席琳·迪翁(Celine Dion)一起参加了VH1台在拉斯维加斯举办的Divas Show。仅仅三个月之后,Dixie Chicks发行了她们的第六张专辑《Home》。《Home》是Dixie Chicks组合在她们自己的厂牌Open Wide发行的第一张专辑,也是Dixie Chicks的第二张冠军专辑。在2002年第45届格莱美奖中,Dixie Chicks再次捧得三项大奖。2003年11月,Dixie Chicks发行了她们首张现场专辑《Top of the World Tour: Live》。2004年,Dixie Chicks依靠这张现场专辑得到了她们第八座格莱美奖杯。
2006年5月23日,Dixie Chicks的最新录音室专辑《Taking The Long Way》面世。专辑在美国发行首周共售出52万6千张,成为Dixie Chicks第三张在Billboard 200专辑榜中登顶的专辑。KFC MAN/文
Posted by
Display Name
-
12:33 PM
0
comments
Labels: Music
2007-07-18
2007-07-11
Bash on Debian/Ubuntu does not support using the /dev/tcp and /dev/udp files
$ cat < /dev/tcp/localhost/daytime
bash: /dev/tcp/localhost/daytime: No such file or directory
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=6.06
DISTRIB_CODENAME=dapper
DISTRIB_DESCRIPTION="Ubuntu 6.06.1 LTS"
$
Posted by
Display Name
-
10:19 AM
0
comments
Labels: Debian/Ubuntu, Shell/Scripting
[Mac OS X] Deleting users with dscl
Deleting Mac OS X users remotely with dscl
I had occasion recently to need to remotely delete a user — let’s call him “George” — on a Mac OS X box that is running the Client version of Tiger. I have ssh access to that machine and, since I keep meaning to learn how to do it, I decided to take the time to make a few notes on the process for the next such occasion.
What I needed to do was, first, remove him from any groups he was in and then delete his account. On OS X, this is usually handled by the NetInfo database, so I needed a way to manipulate it without using the GUI /Applications/Utilities/NetInfo Manager
that I’d probably use were I physically sitting at the machine.
The command I’ll use is /usr/bin/dscl
— the Directory Service command line utility. If you’re familiar with CLI utilities, the syntax of dscl
won’t be problematic for you. It is a truly powerful program, bringing pretty much anything involved with NetInfo under your control. This is a good thing, but it is also dangerous. Which brings us to this warning:
Do not start doing this if you don’t know what you’re doing or are disconcerted by the idea of telling your computer what to do by typing. You can damage your system, not to mention possibly leaving you unable to have children. ¡Cuidado!
Before you make any changes to NetInfo, you should back its database up. That Apple article has a couple of methods. Use one of them. For the children.
With that out of the way, let’s talk about NetInfo domains. Assuming you didn’t RTFA at the link above, the basic idea is that there is a hierarchical database that handles all the user and group data (just to mention a couple of things) for Mac systems. NetInfo has been around since the NeXT days.
The NetInfo hierarchy starts with what it calls Domains. (This is a mite confusing at first since it doesn’t refer to Internet domain names.) Under each Domain there are Directories, and they can have Properties with accompanying Values, as well as contain other Directories. We’ll cover these ideas in practice as we go along.
Here’s an applicable example: like every Mac, my remote server has a /users
directory under the local domain.
It’s important to differentiate here that this is not referring to the /Users
folder in the filesystem where a user’s home folder usually is. This can be somewhat bewildering for NetInfo neophytes.
Now, inside the NetInfo /users
Directory are a bunch of other Directories corresponding to all the users on the machine — human accounts (like my own and the one I’ll be deleting), but also system “users” like daemon, mysql, nobody, root, and www. In fact, here’s a command to give us a list of all the users on the machine:
dscl . list /users
Breaking it down: there’s dscl
, a period “.” representing the local machine, the list
command, and then the directory we want a listing of. This is also the basic syntax we’ll be dealing with throughout our exercise.
So, I run that on my remote machine and get a long list of users, including the about-to-be-deleted George. To see what NetInfo has to say about good old Georgie:
dscl . read /users/george
Pretty much the same idea as before, except we’re using the read
command rather than list
. Using the Finder as an analogy, list
is like viewing a list of text files in a folder, and read
is like viewing the contents of one of those files.
Here’s some (though not all) of what I got in response to my read
request:
AppleMetaNodeLocation: /NetInfo/DefaultLocalNode
AuthenticationAuthority: ;ShadowHash;
NFSHomeDirectory: /Users/george
Password: *
PrimaryGroupID: 530
RealName: George Costanza
RecordName: george
UniqueID: 530
This can get overwhelming with all kinds of unfamiliar text flying by, so it can be useful to focus in on one value, e.g. where their home folder is. We find that out by examining NFSHomeDirectory
, which is a users Property. Other such Properties include PrimaryGroupID
, RealName
, UniqueID
, and the rest of /users/george
.
Much like a variable in algebra, a Property has a corresponding Value. To ask for George’s home directory only, we use:
dscl . read /users/george NFSHomeDirectory
Which returns this line:
NFSHomeDirectory: /Users/george
So, for the Property NFSHomeDirectory
the Value is /Users/george
Again, to keep it straight, that’s the /Users/george
home folder in the Finder.
Now I have George in my sights, and I’m almost ready to get rid of him. But first, let’s deal with the groups he’s a member of. Similarly to getting a list of users on the local machine, we can do the same thing for groups:
dscl . list /groups
Long list there, but it includes the two groups I need to deal with. I happen to know that George is in only two groups: handmodels
and george
(a user is by default a member of a group with the same name).
Just for our edification, let’s get a list of the users in handmodels
. We can do this by zeroing in on one Property like we did above, GroupMembership
:
dscl . read /groups/handmodels GroupMembership
This returns:
GroupMembership: grady mia ramon mike george
A-ha! There he is, along with a few other folks. To kick him out of there, I’ll need to use sudo
because you need admin access to make this kind of change to the database:
sudo dscl . delete /groups/handmodels GroupMembership george
A password prompt appears. Enter the admin password, hit Return, and George is gone from handmodels. Let’s just make sure:
dscl . read /groups/handmodels GroupMembership
And we get back:
GroupMembership: grady mia ramon mike
If George were HAL, he would be feeling his mind going right about now.
Getting rid of the george
group is handled a bit differently since it’s a whole Directory and not the Value of a Property. To delete his group completely:
sudo dscl . delete /groups/george
And that’s it for George’s groups. George/HAL is singing “Bicycle Built For Two.”
For safety’s sake, please note the similarity between this last command and the one above that deleted his name from handmodels. Imagine how easy it could be to really screw things up by deleting something accidentally. Have you backed up lately?
Finally, we’re ready to delete George himself. The syntax is much the same as the last command:
sudo dscl . delete /users/george
Poof! George has ceased to be. He has expired and gone to meet his maker. He is an ex-user.
Now all that’s left is to remove the vestiges of George scattered around the filesystem, starting with his home folder /Users/george
. Just to play it safe, you might want to archive George’s stuff. You know, if he happens to re-enter your good graces.
Maybe when you’re feeling magnanimous around Festivus time. ;)
Comments
Posted by
Display Name
-
9:36 AM
0
comments
Labels: Apple, Shell/Scripting
2007-07-10
[Mac OS X] User Template
Linux 系统里有个 /etc/skel 目录, Mac OS X 上对应的目录为 /System/Library/User Template
Posted by
Display Name
-
8:45 PM
0
comments
[Mac OS X] Adding a User From the Command Line
Adding a User From the Command Line
This section shows a simple example of using the Directory Service command-line tool, dscl(1)
, to add a user to the system. The example specifies some of the properties that you would normally associate with any user.
Note: These commands must be run as the root user. If you are executing them from the command line manually, you should do this with sudo(8)
. If you are using them in a script, you should use sudo
when running the script.
Create a new entry in the local (
/
) domain under the category/users
.dscl / -create /Users/portingunix
Create and set the shell property to
bash
.dscl / -create /Users/portingunix UserShell /bin/bash
Create and set the user’s full name.
dscl / -create /Users/portingunix RealName "Porting Unix Applications To Mac OS X"
Create and set the user’s ID.
dscl / -create /Users/portingunix UniqueID 503
Create and set the user’s group ID property.
dscl / -create /Users/portingunix PrimaryGroupID 1000
Create and set the user home directory. (Despite the name
NFSHomeDirectory
, this is the local path to the home directory.)dscl / -create /Users/portingunix NFSHomeDirectory /Local/Users/portingunix
Set the password.
dscl / -passwd /Users/portingunix PASSWORD
or
passwd portingunix
To make that user useful, you might want to add them to the admin group.
dscl / -append /Groups/admin GroupMembership portingunix
This is essentially what System Preferences does when it makes a new user, but the process is presented here so you can see more clearly what is going on behind the scenes with the NetInfo database. A look through the hierarchies in the NetInfo Manager application also helps you understand how the database is organized.
Posted by
Display Name
-
8:42 PM
0
comments
Labels: Apple, Shell/Scripting
2007-07-09
svn+ssh configuration
Tunneling over SSH
svnserve's built-in authentication can be very handy, because it avoids the need to create real system accounts. On the other hand, some administrators already have well-established SSH authentication frameworks in place. In these situations, all of the project's users already have system accounts and the ability to “SSH into” the server machine.
It's easy to use SSH in conjunction with svnserve. The client simply uses the svn+ssh://
URL schema to connect:
$ whoami
harry
$ svn list svn+ssh://host.example.com/repos/project
harry@host.example.com's password: *****
foo
bar
baz
…
In this example, the Subversion client is invoking a local ssh process, connecting to host.example.com
, authenticating as the user harry
, then spawning a private svnserve process on the remote machine running as the user harry
. The svnserve command is being invoked in tunnel mode (-t
) and its network protocol is being “tunneled” over the encrypted connection by ssh, the tunnel-agent. svnserve is aware that it's running as the user harry
, and if the client performs a commit, the authenticated username will be attributed as the author of the new revision.
The important thing to understand here is that the Subversion client is not connecting to a running svnserve daemon. This method of access doesn't require a daemon, nor does it notice one if present. It relies wholly on the ability of ssh to spawn a temporary svnserve process, which then terminates when the network connection is closed.
When using svn+ssh://
URLs to access a repository, remember that it's the ssh program prompting for authentication, and not the svn client program. That means there's no automatic password caching going on (see the section called “Client Credentials Caching”). The Subversion client often makes multiple connections to the repository, though users don't normally notice this due to the password caching feature. When using svn+ssh://
URLs, however, users may be annoyed by ssh repeatedly asking for a password for every outbound connection. The solution is to use a separate SSH password-caching tool like ssh-agent on a Unix-like system, or pageant on Windows.
When running over a tunnel, authorization is primarily controlled by operating system permissions to the repository's database files; it's very much the same as if Harry were accessing the repository directly via a file://
URL. If multiple system users are going to be accessing the repository directly, you may want to place them into a common group, and you'll need to be careful about umasks. (Be sure to read the section called “Supporting Multiple Repository Access Methods”.) But even in the case of tunneling, the svnserve.conf
file can still be used to block access, by simply setting auth-access = read
or auth-access = none
. [43]
You'd think that the story of SSH tunneling would end here, but it doesn't. Subversion allows you to create custom tunnel behaviors in your run-time config
file (see the section called “Runtime Configuration Area”). For example, suppose you want to use RSH instead of SSH. In the [tunnels]
section of your config
file, simply define it like this:
[tunnels]
rsh = rsh
And now, you can use this new tunnel definition by using a URL schema that matches the name of your new variable: svn+rsh://host/path
. When using the new URL schema, the Subversion client will actually be running the command rsh host svnserve -t behind the scenes. If you include a username in the URL (for example, svn+rsh://username@host/path
) the client will also include that in its command (rsh username@host svnserve -t). But you can define new tunneling schemes to be much more clever than that:
[tunnels]
joessh = $JOESSH /opt/alternate/ssh -p 29934
This example demonstrates a couple of things. First, it shows how to make the Subversion client launch a very specific tunneling binary (the one located at /opt/alternate/ssh
) with specific options. In this case, accessing a svn+joessh://
URL would invoke the particular SSH binary with -p 29934
as arguments—useful if you want the tunnel program to connect to a non-standard port.
Second, it shows how to define a custom environment variable that can override the name of the tunneling program. Setting the SVN_SSH
environment variable is a convenient way to override the default SSH tunnel agent. But if you need to have several different overrides for different servers, each perhaps contacting a different port or passing a different set of options to SSH, you can use the mechanism demonstrated in this example. Now if we were to set the JOESSH
environment variable, its value would override the entire value of the tunnel variable—$JOESSH would be executed instead of /opt/alternate/ssh -p 29934.
SSH configuration tricks
It's not only possible to control the way in which the client invokes ssh, but also to control the behavior of sshd on your server machine. In this section, we'll show how to control the exact svnserve command executed by sshd, as well as how to have multiple users share a single system account.
Initial setup
To begin, locate the home directory of the account you'll be using to launch svnserve. Make sure the account has an SSH public/private keypair installed, and that the user can log in via public-key authentication. Password authentication will not work, since all of the following SSH tricks revolve around using the SSH authorized_keys
file.
If it doesn't already exist, create the authorized_keys
file (on Unix, typically ~/.ssh/authorized_keys
). Each line in this file describes a public key that is allowed to connect. The lines are typically of the form:
ssh-dsa AAAABtce9euch… user@example.com
The first field describes the type of key, the second field is the uuencoded key itself, and the third field is a comment. However, it's a lesser known fact that the entire line can be preceded by a command
field:
command="program" ssh-dsa AAAABtce9euch… user@example.com
When the command
field is set, the SSH daemon will run the named program instead of the typical svnserve -t invocation that the Subversion client asks for. This opens the door to a number of server-side tricks. In the following examples, we abbreviate the lines of the file as:
command="program" TYPE KEY COMMENT
Controlling the invoked command
Because we can specify the executed server-side command, it's easy to name a specific svnserve binary to run and to pass it extra arguments:
command="/path/to/svnserve -t -r /virtual/root" TYPE KEY COMMENT
In this example, /path/to/svnserve
might be a custom wrapper script around svnserve which sets the umask (see the section called “Supporting Multiple Repository Access Methods”). It also shows how to anchor svnserve in a virtual root directory, just as one often does when running svnserve as a daemon process. This might be done either to restrict access to parts of the system, or simply to relieve the user of having to type an absolute path in the svn+ssh://
URL.
It's also possible to have multiple users share a single account. Instead of creating a separate system account for each user, generate a public/private keypair for each person. Then place each public key into the authorized_users
file, one per line, and use the --tunnel-user
option:
command="svnserve -t --tunnel-user=harry" TYPE1 KEY1 harry@example.com
command="svnserve -t --tunnel-user=sally" TYPE2 KEY2 sally@example.com
This example allows both Harry and Sally to connect to the same account via public-key authentication. Each of them has a custom command that will be executed; the --tunnel-user
option tells svnserve -t to assume that the named argument is the authenticated user. Without --tunnel-user
, it would appear as though all commits were coming from the one shared system account.
A final word of caution: giving a user access to the server via public-key in a shared account might still allow other forms of SSH access, even if you've set the command
value in authorized_keys
. For example, the user may still get shell access through SSH, or be able to perform X11 or general port-forwarding through your server. To give the user as little permission as possible, you may want to specify a number of restrictive options immediately after the command
:
command="svnserve -t --tunnel-user=harry",no-port-forwarding,\
no-agent-forwarding,no-X11-forwarding,no-pty \
TYPE1 KEY1 harry@example.com
Posted by
Display Name
-
8:21 PM
0
comments
Labels: Version Control
svn+ssh does not support non-standard port
目前 svn+ssh://user@server/path 不能指定 ssh 的 port, 已经有人发了 bug.
Posted by
Display Name
-
8:08 PM
0
comments
Labels: Version Control
[转] PuTTY 中文教程
http://blog.chinaunix.net/u/553/showart.php?id=335551
http://docs.google.com/View?docid=ajbgz6fp3pjh_2dwwwwt
Posted by
Display Name
-
9:48 AM
0
comments
Labels: Utils
2007-07-07
Inblogs.net blocked?
近日用 www.inblogs.net 也不能访问 blogspot 了,难道也被 GFW 给 block 了?
Posted by
Display Name
-
7:21 PM
0
comments
ssh 相关的几个环境变量
SSH_CLIENT='192.168.3.102 1051 10022'
SSH_CONNECTION='192.168.3.102 1051 192.168.3.38 10022'
SSH_TTY=/dev/pts/0
其中 SSH_TTY 只有在 interactive shell 中才会被设置.
Posted by
Display Name
-
5:08 PM
0
comments
Labels: Network/Security, Shell/Scripting
Google Code: Failed to checkout svn repository
svn { ls | cat | info } http://xxx.googlecode.com/svn 等命令都 work,就是不能 checkout:
$ svn co http://xxx.googlecode.com/svn
svn: REPORT request failed on '/svn/!svn/vcc/default'
svn: REPORT of '/svn/!svn/vcc/default': 400 Bad Request (http://huan.googlecode.com)
$
但是用 https 的话就能 checkout,不知何故,有人说是跟 firewall 上的设置有关。
(回家用俺的 ADSL 试了一下,没有问题,看来是公司的 firewall 把 http 的 svn checkout 给 block 了)
Posted by
Display Name
-
2:51 PM
0
comments
Labels: Google, Version Control
Upload your svn repository to Google Code
今日听 jiahuan 说可以在 Google Code 上创建自己的 svn repository,好是激动了一番,俺早就想找个地方安置俺的 svn 目录了。
申请步骤很简单,到 http://code.google.com/hosting/ 创建一个 new project 就成了。每个 project 空间好像是 100M,一般来说足够用了。project 创建之后就可以用 svn client 往里面添加内容了;另外 google code 也允许把一个已经存在的 svn repository 用 svnsync 给 upload 上去,着实方便。唯一一点不足之处是,project 里面的的所有东西都是 open 的,任何人都能够 svn checkout,不爽,一点隐私都没有!看来目前俺还不能充分利用 Google Code 的这个 service。:-(
Posted by
Display Name
-
2:29 PM
0
comments
Labels: Google, Version Control
svnsync
From: http://svn.collab.net/repos/svn/trunk/notes/svnsync.txt
==== What Is It? ====
svnsync is a tool for creating and maintaining read-only mirrors of
subversion repositories. It works by replaying commits that occurred
in one repository and committing it into another.
==== Basic Setup ====
First, you need to create your destination repository:
$ svnadmin create dest
Because svnsync uses revprops to keep track of bookkeeping information
(and because it copies revprops from the source to the destination)
it needs to be able to change revprops on your destination repository.
To do this you'll need to set up a pre-revprop-change hook script that
lets the user you'll run svnsync as make arbitrary propchanges.
$ cat <<'EOF' > dest/hooks/pre-revprop-change
#!/bin/sh
USER="$3"
if [ "$USER" = "svnsync" ]; then exit 0; fi
echo "Only the svnsync user can change revprops" >&2
exit 1
EOF
$ chmod +x dest/hooks/pre-revprop-change
$ svnsync init --username svnsync file://`pwd`/dest \
http://svn.example.org/source/repos
Copied properties for revision 0
$
Note that the arguments to 'svnsync init' are two arbitrary repository
URLs. The first is the destination, which must be empty, and the second
is the source.
Now you can just run the 'svnsync sync' command to synchronize pending
revisions. This will copy any revisions that exist in the source repos
but don't exist in the destination repos.
$ svnsync sync file://`pwd`/dest
Committed revision 1.
Copied properties for revision 1.
Committed revision 2.
Copied properties for revision 2.
Committed revision 3.
Copied properties for revision 3.
...
==== Locks ====
If you kill a sync while it's occurring there's a chance that it might
leave the repository "locked". svnsync ensures that only one svnsync
process is copying data into a given destination repository at a time
by creating a svn:sync-lock revprop on revision zero of the destination
repository. If that property is there, but you're sure no svnsync is
actually running, you can unlock the repository by deleting that revprop.
$ svn pdel --revprop -r 0 svn:sync-lock file://`pwd`/dest
==== FAQ ====
Q: So what can I do with this thing anyway?
A: Well, anything that's read-only. As long as you don't commit changes
to the destination repository you're all set. This means destination
repositories are good for providing offsite mirrors, read-only mirrors,
etc.
Q: What if I want to check out from a mirror, but commit to the master?
A: That's possible, but requires some gymnastics. You see, each repository
has its own UUID, which is stored in the working copy, so if you check
out from the mirror, and then do a 'svn switch --relocate' to point to
the master it'll error out. To make this work you need to make sure that
the mirrors have the same UUID as the master. You can set a repository
UUID via the following technique:
$ cat - <
Posted by
Display Name
-
2:19 PM
0
comments
Labels: Version Control
Nice review - but what about the OTHER groups which George may be a member of? You state "I happen to know that George is in only two groups: handmodels and george" - but what if George was an administrative user? In this case, he would also be a member of the "admin", "appserveradm" and "appserverusr" groups.
Any suggestions on how to scan ALL potential locations for a given shortname entry, to ensure you catch them all?
Try this :
dscl . -list /groups GroupMembership
It will give you all the groups with their members in a second column, you can then try to grep...
There is something I'd like to add, don't forget to delete the password files in /var/db/shadow/hash
% id -G -n george
Take a look at
http://www.ubergeeks.com/~jmalone/software/
Mac OS X command line user tools
These are wrapper scripts around the netinfo commands that mimic the useradd, userdel, groupadd, groupdel commands of other *nix operating systems. Still under development, but quite useful here where I work.
PLEASE let me know about any bugs/improvements you find/think of.
* niuseradd
* niuserdel
* nigroupadd
* nigroupdel