??xml version="1.0" encoding="utf-8" standalone="yes"?>快乐12开奖结果查询:BlogJava - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/sean/Read me, read Sean.zh-cnTue, 16 Oct 2018 04:46:53 GMTTue, 16 Oct 2018 04:46:53 GMT60Mac安装tsocks - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/sean/archive/2014/05/07/413382.htmllaogaolaogaoWed, 07 May 2014 15:23:00 GMT//www.ot7t.com.cn/sean/archive/2014/05/07/413382.html//www.ot7t.com.cn/sean/comments/413382.html//www.ot7t.com.cn/sean/archive/2014/05/07/413382.html#Feedback2//www.ot7t.com.cn/sean/comments/commentRss/413382.html//www.ot7t.com.cn/sean/services/trackbacks/413382.html
vim /usr/local/Library/Formula/tsocks.rb

require 'formula'

class Tsocks < Formula
  # The original is //tsocks.sourceforge.net/
  # This GitHub repo is a maintained fork with OSX support

  homepage '//github.com/pc/tsocks'
  head 'https://github.com/pc/tsocks.git'

  depends_on 'autoconf' => :build if MacOS.xcode_version.to_f >= 4.3

  def install
    system "autoconf""-v"
    system "./configure""--prefix=#{prefix}""--disable-debug""--disable-dependency-tracking""--with-conf=#{config_file}"

    inreplace("tsocks") { |bin| bin.change_make_var! "LIBDIR", lib }

    system "make"
    system "make install"

    etc.install "tsocks.conf.simple.example" => "tsocks.conf" unless config_file.exist?
  end

  def test
    puts 'Your current public ip is:'
    ohai `curl -sS ifconfig.me 2>&1`.chomp
    puts "If your correctly configured #{config_file}, this should show the ip you have trough the proxy"
    puts 'Your ip through the proxy is:'
    ohai `tsocks curl -sS ifconfig.me 2>&1`.chomp
  end

  def config_file
    etc / 'tsocks.conf'
  end
end

有了上述formula之后,即?brew install --HEAD tsocks ?img src ="//www.ot7t.com.cn/sean/aggbug/413382.html" width = "1" height = "1" />

laogao 2014-05-07 23:23 发表评论
]]>
[RPi] 树梅派安装XBMC并让其支持中?/title><link>//www.ot7t.com.cn/sean/archive/2014/04/06/411990.html</link><dc:creator>laogao</dc:creator><author>laogao</author><pubDate>Sun, 06 Apr 2014 09:45:00 GMT</pubDate><guid>//www.ot7t.com.cn/sean/archive/2014/04/06/411990.html</guid><wfw:comment>//www.ot7t.com.cn/sean/comments/411990.html</wfw:comment><comments>//www.ot7t.com.cn/sean/archive/2014/04/06/411990.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.ot7t.com.cn/sean/comments/commentRss/411990.html</wfw:commentRss><trackback:ping>//www.ot7t.com.cn/sean/services/trackbacks/411990.html</trackback:ping><description><![CDATA[有了RPi当然免不了要玩玩XBMC,这里推荐XBian,安装配置过程如下:<br /> <br /> 1- 下载.img文件 ( <span style="font-size: 14px;"><a target="_blank">//www.xbian.org/download/</a></span><span style="font-size: 14px;"> )?/span><br /> 2- 用dd命令?img(比如XBian_beta_2.img)写入SD卡;<br /> 3- 将中文字体(比如wqy-zenhei.ttc)重命名为arial.ttf,复制到SD卡的~/.xbmc/media/Fonts目录(XBian默认用户为xbian,密码raspberry);<br /> 4- ?nbsp;<span style="font-size: 14px;"><a target="_blank">https://code.google.com/p/xbmc-addons-chinese/downloads/detail?name=repository.googlecode.xbmc-addons-chinese-eden.zip</a> 下载资源插件?/span><span style="font-size: 14px;">复制到SD卡;</span><br /> 5- 将SD卡插入RPi并连接HDMI到电视机/显示器;<br /> 6- RPi开机,进入XBian的配置页面,可以校准屏幕,配置网络连接等?br /> 7- 在系统设置中选择字体为Arial,语言选为中文,此时应该看到界面可正常显示中文?br /> 8- 安装扩展程序,选择之前下载到SD卡的repository.googlecode.xbmc-addons-chinese-eden.zip文件,扩展安装成功后即可在扩展程序列表中看到对应的资源条目,逐一安装即可?br /> <br /> 额外提示:XBMC也可以通过网络共享播放视频,之前跟大家提到过XBMC显示中文字幕有时出现整行被方块覆盖的问题,解决方法是在字幕文件中查找并删除或替换"…"字符。Enjoy?img src ="//www.ot7t.com.cn/sean/aggbug/411990.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.ot7t.com.cn/sean/" target="_blank">laogao</a> 2014-04-06 17:45 <a href="//www.ot7t.com.cn/sean/archive/2014/04/06/411990.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IntelliJ IDEA 常用快捷?/title><link>//www.ot7t.com.cn/sean/archive/2014/03/09/410781.html</link><dc:creator>laogao</dc:creator><author>laogao</author><pubDate>Sun, 09 Mar 2014 05:38:00 GMT</pubDate><guid>//www.ot7t.com.cn/sean/archive/2014/03/09/410781.html</guid><wfw:comment>//www.ot7t.com.cn/sean/comments/410781.html</wfw:comment><comments>//www.ot7t.com.cn/sean/archive/2014/03/09/410781.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.ot7t.com.cn/sean/comments/commentRss/410781.html</wfw:commentRss><trackback:ping>//www.ot7t.com.cn/sean/services/trackbacks/410781.html</trackback:ping><description><![CDATA[<br /> 整理一?IntelliJ IDEA 最常用的快捷键,按照便于记忆的方式排列?br /> <br /> <pre> Ctrl-N              Class... (find by name) Ctrl-Shift-N        File... (find by name) Ctrl-Shift-Alt-N    Symbol... (find by name) Ctrl-G              Line... (goto line) Ctrl-H              Type hierarchy (hierarchy) Ctrl-Shift-H        Method hierarchy (hierarchy) Ctrl-Alt-H          Call hierarchy (hierarchy) Ctrl-Q              Quick documentation Ctrl-Alt-I          Auto-indent lines (indent) Ctrl-Alt-L          Reformat code (line up) Ctrl-Alt-O          Optimize imports (optimize) Ctrl-/              Comment with line comment (//) Ctrl-Shift-/        Comment with block comment (/*...*/) Ctrl-W              Select word or block (word) Ctrl-D              Copy line (duplicate line, yyp) Ctrl-X              Cut line (dd) Ctrl-U              Uppercase/lowercase (upper) Ctrl-J              Insert live template Ctrl-Alt-J          Surround with live template Ctrl-Alt-T          Surround with (template) Ctrl-Shift-J        Join lines (join) Ctrl-E              Recent files (editions) Ctrl-Shift-E        Recently changed files (editions) Alt-Shift-C         Recent changes (changes) Ctrl-B              Delcaration Ctrl-Shift-B        Type declaration Ctrl-Alt-B          Implementation(s) Ctrl-P              Parameter info (parameter) Ctrl-Space          Basic completion Ctrl-Shift-Space    Smart completion Ctrl-Alt-Space      Completion lookup Alt-Enter           Auto-complete Alt-Insert          Generate... Ctrl-Shift-Up/Down  Move statement up/down Alt-Shift-Up/Down   Move line up/down Ctrl-Up/Down        Scroll up/down Alt-Up/Down         Previous/next method F2                  Next highlighted error Shift-F2            Previous highlighted error Ctrl-F              Find Ctrl-R              Replace F3                  Next match Shift-F3            Previous match F4                  Jump to source Ctrl-Alt-Shift-T    Refactor this F5                  Refactor copy F6                  Refactor move Ctrl-F6             Refactor change signature Shift-F6            Refactor rename Alt-Delete          Refactor safe delete Ctrl-Alt-V          Refactor extract variable Ctrl-Alt-F          Refactor extract field Ctrl-Alt-P          Refactor extract parameter Ctrl-Alt-M          Refactor extract method Ctrl-Alt-N          Refactor inline </pre> <img src ="//www.ot7t.com.cn/sean/aggbug/410781.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.ot7t.com.cn/sean/" target="_blank">laogao</a> 2014-03-09 13:38 <a href="//www.ot7t.com.cn/sean/archive/2014/03/09/410781.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[RPi] 树梅派安装Archlinux和蓝?/title><link>//www.ot7t.com.cn/sean/archive/2014/01/01/408333.html</link><dc:creator>laogao</dc:creator><author>laogao</author><pubDate>Wed, 01 Jan 2014 05:11:00 GMT</pubDate><guid>//www.ot7t.com.cn/sean/archive/2014/01/01/408333.html</guid><wfw:comment>//www.ot7t.com.cn/sean/comments/408333.html</wfw:comment><comments>//www.ot7t.com.cn/sean/archive/2014/01/01/408333.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>//www.ot7t.com.cn/sean/comments/commentRss/408333.html</wfw:commentRss><trackback:ping>//www.ot7t.com.cn/sean/services/trackbacks/408333.html</trackback:ping><description><![CDATA[不久前入了个 Raspberry Pi 也就是大家说的树梅派(以下简称RPi),拿来做蓝牙测试,用的蓝牙dongle是ORICO的BTA-403-BL <a >//item.jd.com/980800.html</a> 。这里简单记录下安装过程?br /> <br />首先是操作系统。作为Arch重度用户,当然选Archlinux ARM? <a >//archlinuxarm.org/platforms/armv6/raspberry-pi</a> 下载img文件,用dd写到SD卡上?br /> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> //www.CodeHighlighter.com/<br /> <br /> -->dd bs=1M <span style="color: #0000FF; ">if</span>=/path/to/archlinux-hf-*.img of=/dev/sdX</div> <br /> 然后用GParted把SD卡上的分区拖满,充分利用空间。这样SD卡就准备好了,插到RPi上,接上Micro-USB的电源和网线,启动RPi,从路由器上找到RPi的IP地址(机器名默认是alarmpi),ssh上去(用户名root密码root),修改密码,创建非root账号,执行系统更?sudo pacman -Syu ,这之后开始安装蓝牙相关工具:<br /> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> //www.CodeHighlighter.com/<br /> <br /> -->sudo pacman -S bluez bluez-utils</div> <br /> 确保蓝牙dongle插到RPi的USB接口,通过 hciconfig 确认蓝牙设备被识别,输出应该类似下面这个样子?br /> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> //www.CodeHighlighter.com/<br /> <br /> -->[sean<span style="color: #800080; ">@alarmpi</span>]$ hciconfig<br /> hci0:   Type: BR/EDR  Bus: USB<br />         BD Address: <span style="color: #800000; ">84</span>:A6:C8:DC:<span style="color: #800000; ">04</span>:<span style="color: #800000; ">97</span>  ACL MTU: <span style="color: #800000; ">310</span>:<span style="color: #800000; ">10</span>  SCO MTU: <span style="color: #800000; ">64</span>:<span style="color: #800000; ">8</span><br />         DOWN <br />         RX bytes:<span style="color: #800000; ">553</span> acl:<span style="color: #800000; ">0</span> sco:<span style="color: #800000; ">0</span> events:<span style="color: #800000; ">28</span> errors:<span style="color: #800000; ">0</span><br />         TX bytes:<span style="color: #800000; ">384</span> acl:<span style="color: #800000; ">0</span> sco:<span style="color: #800000; ">0</span> commands:<span style="color: #800000; ">27</span> errors:<span style="color: #800000; ">0</span></div> <br /> 启动bluetooth?br /> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> //www.CodeHighlighter.com/<br /> <br /> -->sudo systemctl start bluetooth</div> <br /> 完成以后,即可通过 bluetoothctl 命令打开蓝牙控制台,执行各项蓝牙相关操作,比如show、list、scan on、agent、info等等,这里不展开了?br /> <br /> 如果想使用图形界面操作RPi,也很简单,基本步骤如下?br /> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> //www.CodeHighlighter.com/<br /> <br /> -->sudo pacman -S xorg xorg-xinit lxde<br />echo <span style="font-weight: bold;">'</span><span style="font-weight: bold;">exec startlxde</span><span style="font-weight: bold;">'</span> > ~/.xinitrc<br /> startx</div><br />Enjoy!<img src ="//www.ot7t.com.cn/sean/aggbug/408333.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.ot7t.com.cn/sean/" target="_blank">laogao</a> 2014-01-01 13:11 <a href="//www.ot7t.com.cn/sean/archive/2014/01/01/408333.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《快学Scala》勘?/title><link>//www.ot7t.com.cn/sean/archive/2012/11/15/391386.html</link><dc:creator>laogao</dc:creator><author>laogao</author><pubDate>Thu, 15 Nov 2012 07:56:00 GMT</pubDate><guid>//www.ot7t.com.cn/sean/archive/2012/11/15/391386.html</guid><description><![CDATA[?1页(练习):<br /> 在Scala REPL中键?,然后按Tab?<strong class="yibqv">应为</strong> 在Scala REPL中键?.,然后按Tab?<br /> <br /> ?9页(正文):<br /> util方法返回一个并不包含上限的区间 <strong class="yibqv">应为</strong> until方法返回一个并不包含上限的区间<br /> <br /> ?9页(代码):<br /> 0 util s.length <strong class="yibqv">应为</strong> 0 until s.length<br /> <br /> ?1页(正文):<br /> util是RichInt类的方法 <strong class="yibqv">应为</strong> until是RichInt类的方法<br /> <br /> ?4页(代码): <div class="yibqv">ArraryBuffer <strong class="yibqv">应为</strong> ArrayBuffer</div> <div class="yibqv">b.sorted(_ < _) <strong class="yibqv">应为</strong> b.sorted</div> <div class="yibqv">b.sorted(_ > _) <strong class="yibqv">应为</strong> b.sortWith(_ > _) </div> <div class="yibqv"></div> <div class="yibqv"><br /> ?4页(代码): <div class="yibqv">scala.collections.immutable.SortedMap <strong class="yibqv">应为</strong> scala.collection.immutable.SortedMap</div> <div class="yibqv"><br />?3页(正文):<br />Scala对每个字端都提供getter和setter方法 <strong class="yibqv">应为</strong> Scala对每个字段都提供getter和setter方法<br /><br />?07页(代码):</div> <div class="yibqv">val tokens = source.mkString.split("\\S+") <strong class="yibqv">应为</strong> val tokens = source.mkString.split("\\s+")</div> <div class="yibqv"><br /> ?41页(代码):</div> <div class="yibqv">var count: (Int => Double) => null <strong class="yibqv">应为</strong> var count: (Int => Double) = null</div> <div class="yibqv"><br /> // 本文仅作为信息发布窗口,如需讨论交流,请通过邮件 <a href="mailto:gaoyuxiang.scala@gmail.com">gaoyuxiang.scala@gmail.com</a> ?QQ?132569382 ?/div> </div><img src ="//www.ot7t.com.cn/sean/aggbug/391386.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.ot7t.com.cn/sean/" target="_blank">laogao</a> 2012-11-15 15:56 <a href="//www.ot7t.com.cn/sean/archive/2012/11/15/391386.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>学好编程,从写作开始?/title><link>//www.ot7t.com.cn/sean/archive/2011/08/03/355717.html</link><dc:creator>laogao</dc:creator><author>laogao</author><pubDate>Wed, 03 Aug 2011 15:49:00 GMT</pubDate><guid>//www.ot7t.com.cn/sean/archive/2011/08/03/355717.html</guid><wfw:comment>//www.ot7t.com.cn/sean/comments/355717.html</wfw:comment><comments>//www.ot7t.com.cn/sean/archive/2011/08/03/355717.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>//www.ot7t.com.cn/sean/comments/commentRss/355717.html</wfw:commentRss><trackback:ping>//www.ot7t.com.cn/sean/services/trackbacks/355717.html</trackback:ping><description><![CDATA[<p> 可能很多人不以为然,写作和编程能有什么关系?/p> <p> 首先,写作促进我们思考。程序员每天的工作,不论是学习新知识新技术、理解软件需求、阅读代?文、设计框架、还是实现业务逻辑,都离不开思考。相信很多人都有过这样的体验: 对于某个设计或知识点,你以为自己想清楚了,但真要让你解释给别人听,你又会觉得无从下手,几轮过后回想当初,之前所看到和相信的不过是错觉,当你完整的向其他人转述一遍之后,你才算是真正想明白了。其实这个道理和书桌上放一只橡皮鸭/填充玩偶(然后向它讲述你的想法)的做法是相通的,只不过写作本身不光整理了思路,还留下了文?,同时,写作的过程也是不断加深印象、提升信心的过程,可谓一举多得?/p> <p> 其次,和写作一样,编程的主要目的是与世界交流,不论这个世界是指的机器的世界还是人的世界。要有效地与机器世界交流,你编写的代码必须符合一定的语法和范式,必须逻辑上讲得通,这样才有意义。而基本的写作训练可以让我们养成主动留意错别字、格式、拼写错误、逻辑错误的习惯。如C. A. R. Haore所说,我们宁要明显无错误的代码,不要无明显错误的代码。这点洁癖是好程序员必须具备的修养。这也是为什么我看到有明显拼写错误的程序员简历时,会直接把他/她们拉黑。同样地,我一直坚持认为,如果程序员写不出结构优良的纯文本文,那么我们也不必指望?她能够写出优雅的代码。除此之外,我们还可以再稍微发散一? 开源项目那么多,满足类似需要的往往不止一个,为什么有的很成功,有的却无人问津? 主创/灵魂人物的写作能力,不论是代码、文?、邮件还是PPT,是很重要的分野。我相信,改变世界、影响更多的人,是很多程序员梦寐以求的,而要做到这一点,离不开写作?/p> <p> 最后,写作通常是程序员的短板,亦即最容易低成本高产出的地方。我一直很不喜欢人为地给不同专业背景的人贴上文科和理科的标签,仿佛他们之间没有交集似的。这样做的最大问题在我看来是一方天然地觉得另一方的知识对自己没价值,以至于形成了类似"写作是文科生的菜"?编程是理科才要学的东?等谬误。就我的观察,计算机科班出身的同学,往往文字表达能力不够强,可能多少和这种心理暗示有关。如此明显的短板,如果能够引起广大程序员群体的重视,肯在写作上持续投入,效果一定是惊人的?/p> <img src ="//www.ot7t.com.cn/sean/aggbug/355717.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.ot7t.com.cn/sean/" target="_blank">laogao</a> 2011-08-03 23:49 <a href="//www.ot7t.com.cn/sean/archive/2011/08/03/355717.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[Tips] Windows环境下Apache最基本的调优方?/title><link>//www.ot7t.com.cn/sean/archive/2011/08/02/355618.html</link><dc:creator>laogao</dc:creator><author>laogao</author><pubDate>Tue, 02 Aug 2011 13:04:00 GMT</pubDate><guid>//www.ot7t.com.cn/sean/archive/2011/08/02/355618.html</guid><wfw:comment>//www.ot7t.com.cn/sean/comments/355618.html</wfw:comment><comments>//www.ot7t.com.cn/sean/archive/2011/08/02/355618.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.ot7t.com.cn/sean/comments/commentRss/355618.html</wfw:commentRss><trackback:ping>//www.ot7t.com.cn/sean/services/trackbacks/355618.html</trackback:ping><description><![CDATA[<p> 今天远程支持同事在Windows环境调优Apache服务器性能,记录在此,供需要的朋友参考?/p> <p> Java EE应用,同时部署在两个Tomcat(5.5.27)实例上,前面放了个Apache(httpd-2.2.19-win32-x86-no_ssl),通过mod_jk(1.2.32)做负载均衡,同一台物理服务器,操作系统为64位的Windows Server 2003 SP2。现象是60+客户端,平均每个客户端每秒请求数2次,单个请求正常响应时间?00ms以内,即每秒冲进?20个请求,并发量最多在60上下,Apache就已不堪"?负,静态资源响应时间都超过10s,同时Tomcat和数据库服务器均正常。凭我的经验,同样的压力直接压到Tomcat也不至于这么难看。看来问题出在Apache?/p> <p> 首先修改httpd.conf配置文件,打开status模块?/p> <p> <code> LoadModule status_module modules/mod_status.so<br/> <Location /status><br/>   SetHandler server-status<br/>   Order deny,allow<br/>   Deny from all<br/>   Allow from 127.0.0.1 #需要的话也可放开为all<br/> </Location> </code></p> <p> 这样我们就能通过/status页面查看服务器当前的状态信息,结果观察到worker(即线?数仅?4!坑爹啊!难怪撑不住。我记得以前Windows下面的Apache默认线程数没这么小的。找准问题,接下来就好办了:</p> <p> <code> <IfModule mpm_winnt.c><br/>   ThreadsPerChild 300<br/>   MaxRequestsPerChild 0<br/> </IfModule> </code></p> <p> 稍微解释一下:mpm_winnt.c是Apache为Windows NT提供的MPM (Multi-Processing Module),对应到Linux环境下,则有prefork.c(多进?每进?个线?和worker.c(多进?多线?两种MPM可选。Windows下面只会有父与子两个进程,因此单个子进程能同时起多少线程(ThreadsPerChild)就成了调优的关键。另一个参数MaxRequestsPerChild的含义是单个子进程累计最多处理到少个请求,超过该值则退出重启,这是出于防止内存泄露慢慢拖垮整个服务器而做的防御性措施,0表示不做此限制?/p> <p> 新配置上线后,客户端数量顺利冲上200+。Case closed.</p> <img src ="//www.ot7t.com.cn/sean/aggbug/355618.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.ot7t.com.cn/sean/" target="_blank">laogao</a> 2011-08-02 21:04 <a href="//www.ot7t.com.cn/sean/archive/2011/08/02/355618.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>pyPdf - 用Python方便的处理PDF文 - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/sean/archive/2011/07/26/355089.htmllaogaolaogaoTue, 26 Jul 2011 14:25:00 GMT//www.ot7t.com.cn/sean/archive/2011/07/26/355089.html//www.ot7t.com.cn/sean/comments/355089.html//www.ot7t.com.cn/sean/archive/2011/07/26/355089.html#Feedback2//www.ot7t.com.cn/sean/comments/commentRss/355089.html//www.ot7t.com.cn/sean/services/trackbacks/355089.html 今天临时有个需求,那就是给某PDF文切边,以方便在Kindle 3?吋屏上阅读?br />
很久没碰Python了,不过我相信用Python一定有办法解决这个需求,于是经过简单的googling,便发现了这个pyPdf?( //pybrary.net/pyPdf/ ) ,操作起来相当直接易懂,把代码贴在这儿,做个记录?br />
 1 from pyPdf import PdfFileWriter, PdfFileReader
 2 
 3 pdf = PdfFileReader(file('original.pdf''rb'))
 4 out = PdfFileWriter()
 5 
 6 for page in pdf.pages:
 7   page.mediaBox.upperRight = (580,800)
 8   page.mediaBox.lowerLeft = (128,232)
 9   out.addPage(page)
10 
11 ous = file('target.pdf''wb')
12 out.write(ous)
13 ous.close()

Enjoy!


laogao 2011-07-26 22:25 发表评论
]]>
"上海"是如何变?涓婃?的? - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/sean/archive/2011/03/29/347243.htmllaogaolaogaoTue, 29 Mar 2011 15:50:00 GMT//www.ot7t.com.cn/sean/archive/2011/03/29/347243.html//www.ot7t.com.cn/sean/comments/347243.html//www.ot7t.com.cn/sean/archive/2011/03/29/347243.html#Feedback0//www.ot7t.com.cn/sean/comments/commentRss/347243.html//www.ot7t.com.cn/sean/services/trackbacks/347243.html

今天帮同事解决一个邮件乱码的问题,简记于此?

邮件正文就不贴了,有一段从上下文判断明显应该是"上海",却显示成了"?..",于是自然而然的拿??字和"?字来分析?

通过简单的Groovy脚本对这两个汉字分别按gbk和utf-8编码,并将得到的byte[]转换成二进制表示输出如下?

== ?==
11001001 11001111
11100100 10111000 10001010
== ?==
11100100 10111000
11100110 10110110 10010011

注意"?字的?排前两组??字第1排的两组byte正好相同,于是问题迎刃而解,乱码是由于邮件以utf-8编码后被错误的以gbk解码(随后又重新编码成utf-8)造成的?/p>

关键代码?/p>

void showBytes(String input) {
  println("== " + input + " ==")
  b = input.getBytes("gbk")
  b.each { print Integer.toBinaryString(it).substring(24) + ' ' }
  println()
  b = input.getBytes("utf8")
  b.each { print Integer.toBinaryString(it).substring(24) + ' ' }
  println()
}



laogao 2011-03-29 23:50 发表评论
]]>
[Tips] 如何给SVN资源库降?/title><link>//www.ot7t.com.cn/sean/archive/2011/02/16/344471.html</link><dc:creator>laogao</dc:creator><author>laogao</author><pubDate>Wed, 16 Feb 2011 11:34:00 GMT</pubDate><guid>//www.ot7t.com.cn/sean/archive/2011/02/16/344471.html</guid><wfw:comment>//www.ot7t.com.cn/sean/comments/344471.html</wfw:comment><comments>//www.ot7t.com.cn/sean/archive/2011/02/16/344471.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.ot7t.com.cn/sean/comments/commentRss/344471.html</wfw:commentRss><trackback:ping>//www.ot7t.com.cn/sean/services/trackbacks/344471.html</trackback:ping><description><![CDATA[<br/ /><p>问题起因: 帮同事排查一个SVN资源库导入后无法使用的问题,checkout时报?br/ />  Expected FS format '2'; found format '3'<br/ />  期待文件系统(FS)格式 “2”;找到格?#8220;3”<br/ /></p><p>熟悉SVN的朋友应该知道,Subversion大版本更新时有可能会对其文件格式进行调整,因此内部有文件格式版本的说法,以上报错信息在网上搜一下就知道,版?和版?分别对应Subversion?.4.x?.5.x,于是问题归结为如何给资源库降级,从而得到与1.4兼容的dump文件。方法很简单,记录如下,供需要的朋友参?</p><p>首先?.5.x的Subversion环境下新建一个与1.4.x兼容的资源库<br/ />  svnadmin --pre-1.5-compatible create project01</p><p>然后将之前无法正常导?.4.x的dump文件(dumpfile.old)导入<br/ />  svnadmin load project01 < dumpfile.old</p><p>最后再做一次导出即?br/ />  svnadmin dump project01 > dumpfule.new</p><p>回到1.4.x的Subversion环境,新的dump文件(dumpfile.new)就可以正常导入和使用了?/p> <img src ="//www.ot7t.com.cn/sean/aggbug/344471.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.ot7t.com.cn/sean/" target="_blank">laogao</a> 2011-02-16 19:34 <a href="//www.ot7t.com.cn/sean/archive/2011/02/16/344471.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ssh+tsocks - 远程办公利器 - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/sean/archive/2011/02/09/343994.htmllaogaolaogaoWed, 09 Feb 2011 14:37:00 GMT//www.ot7t.com.cn/sean/archive/2011/02/09/343994.html//www.ot7t.com.cn/sean/comments/343994.html//www.ot7t.com.cn/sean/archive/2011/02/09/343994.html#Feedback5//www.ot7t.com.cn/sean/comments/commentRss/343994.html//www.ot7t.com.cn/sean/services/trackbacks/343994.html

设想一下这样的场景: 你出差在外,或者生病在家,有个紧急的需求要处理,涉及到数个源代码文件的改动,你亲自修改需?0分钟,电话和在公司的同伴沟通然后由?她来修改则需?小时。公司svn服务仅支持svn://协议,且仅限内网访问,而你只有一个ssh账号可以远程登录到公司某台Linux/UNIX服务器?/p>

你暗自庆幸,幸好管理员有先见之明,为你留了个ssh口子,这样至少你还可以ssh上去通过命令行的方式在服务器上做svn checkout,vim ...和svn commit。不过如果你认为这就是全部,那就太小瞧ssh了?/p>

ssh有个命令行参?-D [地址:]端口,含义是在某个本地地址的某个端口上开SOCKS服务进行监听,把这个端口的数据通信以加密形式转发到ssh的另一端。你说好,我有了一个SOCKS服务器,但我又不是要上网走代理,svn也并不天然支持SOCKS啊,有什么用? 嗯,这正是tsocks的用武之地,它能透明的让普通应用程序也走SOCKS,安装方法很简? 主流的Linux发行版,如Debian、Archlinux等的默认软件仓库已经自带了tsocks,通常只需要apt-get install或pacman -S即可,Mac OS X下则可以利用MacPorts安装,然后修改配置文?etc/tsocks.conf(MacPorts会安装到/opt/local/etc目录),可以在样本文件tsocks.conf.sample的基础上修改,通常只要配置server = 127.0.0.1即可,其他都可以默认?/p>

有了这些打底,剩下的就很简单了: 首先 ssh -D 1080 -f -N 用户名@公司服务器的公网地址 在本机的1080端口开启SOCKS服务;然后按照你平时使用svn的习惯,只是在命令前加上tsocks,类似这? tsocks svn up 或?tsocks svn ci -m 'blahblahblah' 等等即可,本地的svn sandbox不需要任何修改?/p>

这个例子可以说只是冰山一角,不论是ssh还是tsocks都还有更高级的用法,而这个通道一旦打通,它的效果就像是简化版的VPN,除了ping之类的少数命令外,几乎就跟你在公司做各种操作没有两样,所以,发挥你的想象力吧 :)



laogao 2011-02-09 22:37 发表评论
]]>
如何让统一版本的Eclipse RCP应用同时支持多个平台 - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/sean/archive/2011/01/30/343769.htmllaogaolaogaoSun, 30 Jan 2011 04:17:00 GMT//www.ot7t.com.cn/sean/archive/2011/01/30/343769.html//www.ot7t.com.cn/sean/comments/343769.html//www.ot7t.com.cn/sean/archive/2011/01/30/343769.html#Feedback0//www.ot7t.com.cn/sean/comments/commentRss/343769.html//www.ot7t.com.cn/sean/services/trackbacks/343769.html

和Swing应用的直接跨平台不同,SWT/RCP应用要想同时支持不同平台,需要做些特殊的配置,不过并不复杂,记录在此,希望能帮到有需要的朋友。目前win32?2位Linux?4位Linux和Mac OS X基本上就覆盖了所有主流的桌面操作系统,本文将以同时支持这四种OS为例来进行讲解?/p>

首先是下载对应版本的RCP框架在不同操作系统的插件,将它们放在同一个plugins目录,比如你可以用win32为基础,然后添加针对其他平台的如下插件:

org.eclipse.core.filesystem
org.eclipse.core.filesystem.win32.x86
org.eclipse.core.filesystem.linux.x86
org.eclipse.core.filesystem.linux.x86_64
org.eclipse.core.filesystem.macosx

org.eclipse.core.net
org.eclipse.core.net.win32.x86
org.eclipse.core.net.linux.x86

org.eclipse.core.resources
org.eclipse.core.resources.win32.x86

org.eclipse.equinox.launcher
org.eclipse.equinox.launcher.win32.win32.x86
org.eclipse.equinox.launcher.gtk.linux.x86
org.eclipse.equinox.launcher.gtk.linux.x86_64
org.eclipse.equinox.launcher.carbon.macosx

org.eclipse.equinox.security
org.eclipse.equinox.security.win32.x86
org.eclipse.equinox.security.macosx

org.eclipse.swt
org.eclipse.swt.win32.win32.x86
org.eclipse.swt.gtk.linux.x86
org.eclipse.swt.gtk.linux.x86_64
org.eclipse.swt.carbon.macosx

接下来将不同平台下的eclipse可执行文?Windows下面是eclipe.exe,Linux下是eclipse,Mac OS X下面是Eclipse.app)放到不同的子目录下,当然,如果你的RCP应用有别的名称,也可以重命名eclipse可执行文件,按照不同平台的规范更换图标,然后修改.ini文件让它?startup?startup.libraray参数指向相对路径中正确版本的插件即可?/p>

最后分享一下我们软件部署的机制: 按照前面介绍的方式打包的应用程序,交到用户手里并不是很友好,因为需要他/她自己再做一次判断,当前的操作系统是什么,然后打开不同的目录去点击不同的可执行文件。我们的做法是单独提供一个Swing程序,在客户端自动判断OS,然后自动调用不同版本的可执行文件,同时,这个Swing程序被做成Java Web Start,把整个RCP客户端的下载和同步也处理掉,这样,对用户而言,整个过程就透明了,只需要一个JNLP,剩下的工作完全自动化?/p>

laogao 2011-01-30 12:17 发表评论
]]>
Java命令行实用工具jps和jstat - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/sean/archive/2011/01/27/343620.htmllaogaolaogaoThu, 27 Jan 2011 04:04:00 GMT//www.ot7t.com.cn/sean/archive/2011/01/27/343620.html//www.ot7t.com.cn/sean/comments/343620.html//www.ot7t.com.cn/sean/archive/2011/01/27/343620.html#Feedback0//www.ot7t.com.cn/sean/comments/commentRss/343620.html//www.ot7t.com.cn/sean/services/trackbacks/343620.html

在Linux或其他UNIX和类UNIX环境下,ps命令想必大家都不陌生,我相信也有不少同学写过 ps aux | grep java | grep -v grep | awk '{print $2}' 这样的管道命令来找出Java进程的pid。常言道,Java并非真的"跨平?,它自己就是平台。作为平台,当然也有些基本的工具,让我们可以用更简单、更统一,同时又是非侵入的方式来查询进程相关信息。今天我们就来认识一下其中的两个?/p>

jps

顾名思义,它对应到UNIX的ps命令。用法如?

jps [ options ] [ hostid ]

其中,options可以?-q (安静) -m (输出传递给main方法的参? -l (显示完整路径) -v (显示传递给JVM的命令行参数) -V (显示通过flag文件传递给JVM的参? -J (和其他Java工具类似用于传递参数给命令本身要调用的java进程);hostid是主机id,默认localhost?/p>

jstat

用于输出给定java进程的统计信息。用法如?

jstat -options 可以列出当前JVM版本支持的选项,常见的?-class (类加载器) -compiler (JIT) -gc (GC堆状? -gccapacity (各区大小) -gccause (最近一次GC统计和原? -gcnew (新区统计) -gcnewcapacity (新区大小) -gcold (老区统计) -gcoldcapacity (老区大小) -gcpermcapacity (永久区大? -gcutil (GC统计汇? -printcompilation (HotSpot编译统计)

假定你要监控的Java进程号是12345,那?br /> jstat -gcutil -t 12345 200 300 即可?00毫秒连续打印300次带有时间戳的GC统计信息?/p>

简单解释一? -gcutil是传入的option;必选,-t是打印时间戳,是以目标JVM启动时间为起点计算的,可选;12345是vmid/pid,和我们从jps拿到的是一样的,必选;200是监控时间间隔,可选,不提供就意味着单次输出?00是最大输出次数,可选,不提供且监控时间间隔有值的话,就是无限期打印下去?/p>

具体输出明细的解释请参考官方文?//download.oracle.com/javase/6/docs/technotes/tools/share/jstat.html



laogao 2011-01-27 12:04 发表评论
]]>
[Tips] Emacs字符编码相关指令 - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/sean/archive/2011/01/05/342345.htmllaogaolaogaoWed, 05 Jan 2011 05:31:00 GMT//www.ot7t.com.cn/sean/archive/2011/01/05/342345.html//www.ot7t.com.cn/sean/comments/342345.html//www.ot7t.com.cn/sean/archive/2011/01/05/342345.html#Feedback0//www.ot7t.com.cn/sean/comments/commentRss/342345.html//www.ot7t.com.cn/sean/services/trackbacks/342345.html

在Vim中,我们可以通过set fencs=utf-8,gbk告诉它按照先utf-8后gbk的顺序自动识别打开文件的字符编码。Emacs也有一组字符编码相关指令,整理如下?/p>

指令全名:set-buffer-file-coding-system
指令作用:改变当前buffer的编?br /> 调用方法?以目标编码gbk为例)
C-x <RET> f gbk <RET>
该指令还可以用于改变当前buffer的换行习?编码参数用dos或unix,对应\r\n或\n)?/p>

指令全名:universal-coding-system-argument
指令作用:指定紧随其后的命令(如C-x C-f或C-x C-w?所采用的编?br /> 调用方法?以目标编码gbk为例)
C-x <RET> c gbk <RET>

指令全名:revert-buffer-with-coding-system
指令作用:用指定编码重读当前buffer(如果打开时用错了编码)
调用方法?以目标编码gbk为例)
C-x <RET> r gbk <RET>

指令全名:recode-region
指令作用:将以错误编码解码的选区以指定编码重新解?br /> 调用方法?以目标编码gbk为例)
M-x recode-region <RET> gbk <RET> utf-8 <RET>

除了这些操作外,还有一种方法,那就是在文件开始的部分给出如下形式的指令,直接告诉编辑器在打开和保存时应采用的编码?br /> -*- coding: gbk -*-
接触过Python的同学是不是觉得很眼?

[补充] 查看当前编码选择的命令为?br /> M-x describe-coding-system <RET> ?C-h C <RET>
也可在回车前输入具体的编码名?如gbk)以查看详细说明?/p>

laogao 2011-01-05 13:31 发表评论
]]>
2011年要做的?/title><link>//www.ot7t.com.cn/sean/archive/2011/01/02/342169.html</link><dc:creator>laogao</dc:creator><author>laogao</author><pubDate>Sun, 02 Jan 2011 12:08:00 GMT</pubDate><guid>//www.ot7t.com.cn/sean/archive/2011/01/02/342169.html</guid><wfw:comment>//www.ot7t.com.cn/sean/comments/342169.html</wfw:comment><comments>//www.ot7t.com.cn/sean/archive/2011/01/02/342169.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>//www.ot7t.com.cn/sean/comments/commentRss/342169.html</wfw:commentRss><trackback:ping>//www.ot7t.com.cn/sean/services/trackbacks/342169.html</trackback:ping><description><![CDATA[<br/ /><p>为克服拖延症,在此列?011年要做的事,给未来的自己监督?/p><p>1- 继续去年未完成的产品改造,换一种更稳妥的方式推进;<br/ />2- 积极参与社区交流活动,不论线上还是线下;<br/ />3- 深入学习Scala,辅以Clojure和Haskell?br/ />4- 系统学习PostgreSQL?br/ />5- 全面使用Emacs?br/ />6- 开始读Linux源码?br/ />7- 重读《红楼梦》;<br/ />8- 至少读两本英文原著;<br/ />9- 带儿子回一趟老家?br/ /></p><p>就这样?/p><img src ="//www.ot7t.com.cn/sean/aggbug/342169.html" width = "1" height = "1" /><br><br><div align=right><a href="//www.ot7t.com.cn/" title="四川福利彩票快乐12">四川福利彩票快乐12</a> 2011-01-02 20:08 <a href="//www.ot7t.com.cn/sean/archive/2011/01/02/342169.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <script>(function(){ var src = (document.location.protocol == "http:") ? "//js.passport.qihucdn.com/11.0.1.js?f7a6bc378844a5df707c414e6b6fea33":"https://jspassport.ssl.qhimg.com/11.0.1.js?f7a6bc378844a5df707c414e6b6fea33"; document.write('<script src="' + src + '" id="sozz"><\/script>'); })(); </script>