Read Sean

          Read me, read Sean.
          posts - 508, comments - 655, trackbacks - 9, articles - 4

          2011年8月3日

          不知道從什么時候開始的,tsocks在Mac下面安裝要費些周折,brew官方和曾經一度存在的第三方tap都不再支持直接brew install,需要手工創建formula。過程倒也還OK:

          vim /usr/local/Library/Formula/tsocks.rb

          require 'formula'

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

            homepage 'http://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 。

          posted @ 2014-05-07 23:23 laogao 閱讀(4088) | 評論 (2)編輯 收藏

          有了RPi當然免不了要玩玩XBMC,這里推薦XBian,安裝配置過程如下:

          1- 下載.img文件 ( http://www.xbian.org/download/ );
          2- 用dd命令將.img(比如XBian_beta_2.img)寫入SD卡;
          3- 將中文字體(比如wqy-zenhei.ttc)重命名為arial.ttf,復制到SD卡的~/.xbmc/media/Fonts目錄(XBian默認用戶為xbian,密碼raspberry);
          4- 從 https://code.google.com/p/xbmc-addons-chinese/downloads/detail?name=repository.googlecode.xbmc-addons-chinese-eden.zip 下載資源插件并復制到SD卡;
          5- 將SD卡插入RPi并連接HDMI到電視機/顯示器;
          6- RPi開機,進入XBian的配置頁面,可以校準屏幕,配置網絡連接等;
          7- 在系統設置中選擇字體為Arial,語言選為中文,此時應該看到界面可正常顯示中文;
          8- 安裝擴展程序,選擇之前下載到SD卡的repository.googlecode.xbmc-addons-chinese-eden.zip文件,擴展安裝成功后即可在擴展程序列表中看到對應的資源條目,逐一安裝即可。

          額外提示:XBMC也可以通過網絡共享播放視頻,之前跟大家提到過XBMC顯示中文字幕有時出現整行被方塊覆蓋的問題,解決方法是在字幕文件中查找并刪除或替換"…"字符。Enjoy!

          posted @ 2014-04-06 17:45 laogao 閱讀(2374) | 評論 (0)編輯 收藏


          整理一下 IntelliJ IDEA 最常用的快捷鍵,按照便于記憶的方式排列:

          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
          

          posted @ 2014-03-09 13:38 laogao 閱讀(12891) | 評論 (0)編輯 收藏

          不久前入了個 Raspberry Pi 也就是大家說的樹梅派(以下簡稱RPi),拿來做藍牙測試,用的藍牙dongle是ORICO的BTA-403-BL http://item.jd.com/980800.html 。這里簡單記錄下安裝過程:

          首先是操作系統。作為Arch重度用戶,當然選Archlinux ARM了: http://archlinuxarm.org/platforms/armv6/raspberry-pi 下載img文件,用dd寫到SD卡上:
          dd bs=1M if=/path/to/archlinux-hf-*.img of=/dev/sdX

          然后用GParted把SD卡上的分區拖滿,充分利用空間。這樣SD卡就準備好了,插到RPi上,接上Micro-USB的電源和網線,啟動RPi,從路由器上找到RPi的IP地址(機器名默認是alarmpi),ssh上去(用戶名root密碼root),修改密碼,創建非root賬號,執行系統更新 sudo pacman -Syu ,這之后開始安裝藍牙相關工具:
          sudo pacman -S bluez bluez-utils

          確保藍牙dongle插到RPi的USB接口,通過 hciconfig 確認藍牙設備被識別,輸出應該類似下面這個樣子:
          [sean@alarmpi]$ hciconfig
          hci0:   Type: BR/EDR  Bus: USB
                  BD Address: 84:A6:C8:DC:04:97  ACL MTU: 310:10  SCO MTU: 64:8
                  DOWN 
                  RX bytes:553 acl:0 sco:0 events:28 errors:0
                  TX bytes:384 acl:0 sco:0 commands:27 errors:0

          啟動bluetooth:
          sudo systemctl start bluetooth

          完成以后,即可通過 bluetoothctl 命令打開藍牙控制臺,執行各項藍牙相關操作,比如show、list、scan on、agent、info等等,這里不展開了。

          如果想使用圖形界面操作RPi,也很簡單,基本步驟如下:
          sudo pacman -S xorg xorg-xinit lxde
          echo 'exec startlxde' > ~/.xinitrc
          startx

          Enjoy!

          posted @ 2014-01-01 13:11 laogao 閱讀(3479) | 評論 (1)編輯 收藏

          第11頁(練習):
          在Scala REPL中鍵入3,然后按Tab鍵 應為 在Scala REPL中鍵入3.,然后按Tab鍵

          第19頁(正文):
          util方法返回一個并不包含上限的區間 應為 until方法返回一個并不包含上限的區間

          第19頁(代碼):
          0 util s.length 應為 0 until s.length

          第31頁(正文):
          util是RichInt類的方法 應為 until是RichInt類的方法

          第34頁(代碼):
          ArraryBuffer 應為 ArrayBuffer
          b.sorted(_ < _) 應為 b.sorted
          b.sorted(_ > _) 應為 b.sortWith(_ > _) 

          第44頁(代碼):
          scala.collections.immutable.SortedMap 應為 scala.collection.immutable.SortedMap

          第53頁(正文):
          Scala對每個字端都提供getter和setter方法 應為 Scala對每個字段都提供getter和setter方法

          第107頁(代碼):
          val tokens = source.mkString.split("\\S+") 應為 val tokens = source.mkString.split("\\s+")

          第341頁(代碼):
          var count: (Int => Double) => null 應為 var count: (Int => Double) = null

          // 本文僅作為信息發布窗口,如需討論交流,請通過郵件 gaoyuxiang.scala@gmail.com 或 QQ群 132569382 。

          posted @ 2012-11-15 15:56 laogao| 編輯 收藏

          可能很多人不以為然,寫作和編程能有什么關系。

          首先,寫作促進我們思考。程序員每天的工作,不論是學習新知識新技術、理解軟件需求、閱讀代碼/文檔、設計框架、還是實現業務邏輯,都離不開思考。相信很多人都有過這樣的體驗: 對于某個設計或知識點,你以為自己想清楚了,但真要讓你解釋給別人聽,你又會覺得無從下手,幾輪過后回想當初,之前所看到和相信的不過是錯覺,當你完整的向其他人轉述一遍之后,你才算是真正想明白了。其實這個道理和書桌上放一只橡皮鴨/填充玩偶(然后向它講述你的想法)的做法是相通的,只不過寫作本身不光整理了思路,還留下了文檔,同時,寫作的過程也是不斷加深印象、提升信心的過程,可謂一舉多得。

          其次,和寫作一樣,編程的主要目的是與世界交流,不論這個世界是指的機器的世界還是人的世界。要有效地與機器世界交流,你編寫的代碼必須符合一定的語法和范式,必須邏輯上講得通,這樣才有意義。而基本的寫作訓練可以讓我們養成主動留意錯別字、格式、拼寫錯誤、邏輯錯誤的習慣。如C. A. R. Haore所說,我們寧要明顯無錯誤的代碼,不要無明顯錯誤的代碼。這點潔癖是好程序員必須具備的修養。這也是為什么我看到有明顯拼寫錯誤的程序員簡歷時,會直接把他/她們拉黑。同樣地,我一直堅持認為,如果程序員寫不出結構優良的純文本文檔,那么我們也不必指望他/她能夠寫出優雅的代碼。除此之外,我們還可以再稍微發散一下: 開源項目那么多,滿足類似需要的往往不止一個,為什么有的很成功,有的卻無人問津? 主創/靈魂人物的寫作能力,不論是代碼、文檔、郵件還是PPT,是很重要的分野。我相信,改變世界、影響更多的人,是很多程序員夢寐以求的,而要做到這一點,離不開寫作。

          最后,寫作通常是程序員的短板,亦即最容易低成本高產出的地方。我一直很不喜歡人為地給不同專業背景的人貼上文科和理科的標簽,仿佛他們之間沒有交集似的。這樣做的最大問題在我看來是一方天然地覺得另一方的知識對自己沒價值,以至于形成了類似"寫作是文科生的菜"、"編程是理科才要學的東西"等謬誤。就我的觀察,計算機科班出身的同學,往往文字表達能力不夠強,可能多少和這種心理暗示有關。如此明顯的短板,如果能夠引起廣大程序員群體的重視,肯在寫作上持續投入,效果一定是驚人的。

          posted @ 2011-08-03 23:49 laogao 閱讀(2096) | 評論 (1)編輯 收藏

          主站蜘蛛池模板: 汝城县| 凉山| 沂南县| 彭水| 密云县| 赣榆县| 扎赉特旗| 平阳县| 永清县| 竹山县| 永登县| 九台市| 日喀则市| 磐石市| 长乐市| 正安县| 铁力市| 南丰县| 石首市| 许昌县| 遂溪县| 雅安市| 蒲江县| 贵州省| 沾化县| 信丰县| 鸡东县| 金昌市| 阳新县| 大洼县| 葵青区| 当雄县| 海阳市| 略阳县| 恩施市| 平凉市| 五指山市| 寿阳县| 峡江县| 怀化市| 甘洛县|