Category: Technology

  • 开源软件的参与及社区互动的一些体会和建议:建立自己的沙盘

    接开门篇,这是个小系列。 古人说得好,吃一堑,长一智。又云:失败是成功之母。记得有位外国著名科学家曾经说过这样一句话:“砖家是在一个狭窄的领域里犯过所有痛苦错误的人”。总而言之,古今中外的经验告诉我们,人是在错误中成长起来,所以不要怕犯错。怕得是犯了错但不承认或不愿意从中学习。为了鼓励学习、尝试和应用一些新东西,把错误的成本最小化,我们可以做沙盘演练。而IT的沙盘,在很多情况下是虚拟机。(哈哈,哥想写范文。各位童鞋猜猜看,那句旁征博引用来讨老湿欢心的科学家名言,是我的编造还是真有类似的句子?) 下面是我个人的一些经验、体会和建议: 1. 建立自己的虚拟机,有Debian,Centos,Windows等。有了自己的虚拟机,可以以快照(snapshot)的方式保存基本的虚拟机器。在此基础之上,练习一些软件的编译和制作(compile and build),发现各个部分之间的依赖性(dependencies),下载源代码并进行阅读和调试,安装一些软件和工具来尝试和学习等。如果做错了,可以打倒重建,没什么大不了的。所以要敢于尝试! 我现在有一台联想的ThinkPad笔记本,用了Linux Mint 12 KDE的distro,然后自己下载并安装了VirtualBox。在此基础之上,我用Vagrant和veewee来构建和管理虚拟机,感觉非常给力。Vagrant和veewee的一个优势是可以用来比较容易地建立多机环境,web server,database server,proxy server等。我这有个介绍。 2. 用云计算服务来搭建自己的沙盘,虽然我现在用得少了些。 我在云计算厂商(Amazon和Rackspace)有自己的账户。我对国内的云计算厂商的运营方式不了解,但我一月初在北京时听说国内也有类似服务。我经常在Amazon和Rackspace上启动几个机器来做实验,因为花不了几个钱。像在Rackspace上起一个256MB的Linux虚机,一小时也就一美分左右。所以如果国内有这样的服务,自己开个户玩玩挺有意思的。 3. 购买自己的主机服务,一为练手,二为翻墙。 能翻墙是必须的,因为长城很弱智,阻挡了太多的科技信息和交流。每个国家都有网络监管并且也需要网络监管,每个国家都要采取措施来保证信息和网络安全,每个国家都想支持本国的IT发展并且也会出台政策和举措来保护本国产业,这些都无可厚非,没啥偷偷摸摸,不好意思的。但长城,和中国的不少做法一样,搞一刀切,那么僵硬、笨重和愚蠢,里外都不讨好,该想办法改进和提高了! 翻墙的一个很流行的办法是VPN,而不少VPN是要付费的。这就不如在国外买个主机服务,因为国外的主机服务可以起到一石二鸟的作用:有了自己折腾的机器,同时还可以用来翻墙。主机服务不会比VPN贵到哪里去。有了它之后,你可以用国外主机来暗渡陈仓,搞个ssh tunnel上网,长城拿你没办法。但这要求主机服务允许你这样折腾,所以要注意用哪个厂家的。感觉Linode比较靠谱,因为看上去给你root,并且可以打倒重建。在这方面,冯大辉的这篇博客有不少好建议。搞个具备境外支付的信用卡也是个好主意。我几年前写过怎样用ssh在Windows上挖个地道来传输http的交通,那时公司内网管得紧。不知道现在还管用吧,但至少可以提供些关键词供你查询。 有了自己的沙盘,就可以无后顾之忧地在上面耍耍,满足自己的好奇心,多尝试和总结经验教训,我想就会慢慢提高自己的内功。

  • Managing Windows services with sysinternals tools and Python

    Below is the copy of the README file from one of my github repo. Feel free to download the code and play with it. If you have ideas and good Python Windows admin scripts, share them! — Working with Windows, one frequently needs to manage various services: finding their status, startup modes, startup accounts, stopping […]

  • 开源软件的参与及社区互动的体会和建议:开门篇

    上次在北京和江枫聊天,谈到中国开源和美国还有其他国家的开源互动与合作的问题。当时我就想写一些东西,介绍我的感觉和体会。那时的想法主要是想写一下关于如何尽可能地缩小语言和沟通的障碍问题。回来后忙着帮朋友建立和Percona方面的沟通,然后因时间的关系离开Percona,但一直在想这件事儿,脑子里蹦出些想法(都很短)就记到了自己的本子上。 现在总结下我在自己的本子上乱写乱画的东西,有缩小语言和文化障碍的主意,也有很多关于软件开发的基本常识,没什么惊天地、泣鬼神的料。先写下个提纲,抛砖引玉,以后接着写,欢迎各位拍砖。如有问题,尽管提,我们一起来“头脑风暴”(brainstorm)。一些想法和主意经过思考和讨论,然后配上行动、尝试、反馈、改进的循环,那么这些主意和想法就会落到实处,一个高质量的产品(脚本、补丁、新性能等)就会随之而产生。这事儿,说容易也容易,说困难也困难。但你如果有想法、有行动,并且能认识到自己和别人的错误并从中学习,那么在这个过程就会大有收获! 实际上我感觉很多东西不仅仅适用与开源软件,在商业软件开发上也同样适用。 1.建立起自己玩和犯错误的沙盘; 2.熟悉源代码的管理方式和工具; 3.学习和参与的建议; 4. 关于沟通和交流 5. 要懂得测试,测试,再测试; 6.自律的重要性,这个难 7…. 好吧,就这样,先起个头,以后接着写。

  • Recommendation: Vagrant and Veewee

    Note: I’ve decided not to use Veewee due to silly compatibility issues for now. Quoting from Vagrant’s web site: Vagrant is a tool for building and distributing virtualized development environments. By providing automated creation and provisioning of virtual machines using Oracle’s VirtualBox, Vagrant provides the tools to create and configure lightweight, reproducible, and portable virtual […]

  • My Linux Mint 12 KDE 64-bit setup on Lenovo w520

    Question: is there a reliable and consistent way to use an external monitor running Linux on Lenovo w520? I’ve tried many ways without avail: Fedora, Ubuntu, Kubuntu, Debian, Sabayon with various desktops, nouveou, bumblebee, Nvidia’s drivers, tinkering BIOS. To me as an IT professional, Nvidia Optimus is a net negative, because it makes it impossible […]