國外程式設計師訪談:瀏覽器相容性測試工具 Browserling 創始人 Peteris Krumins

legendtkl發表於2015-04-10
  • 譯註1:在我剛開始寫部落格的時候,發現了Peteris Krumins,特別高產的博主。部落格地址是:www.catonmat.net。我給他發了一封郵件,希望可以將他的一篇博文翻譯成中文,他很開心的答應了。前段時候Peteris來信問我,有沒有興趣再翻譯一篇。於是有了這篇譯文。
  • 譯註2:關於Fog Creek公司。Fog Creek是一家致力於專案管理工具的公司。我所知道的Trello就是出自這家公司。讓我印象比較深刻的還有辦公環境,說其好於google也不為過。不信你去搜尋一下。
  • 注3:Fog Creek會定期對一些開發人員進行訪談。下面是採訪譯文。

peter

在dev.life欄目中,我們會和一些開發者聊聊關於他們的程式設計熱情:他們怎麼喜歡上程式設計,以及喜歡什麼樣的工作。

本文的嘉賓是 Peteris Krumins,他是 Browserling 公司的聯合創始人兼 CEO。Browserling是一個網站多瀏覽器測試的線上工具,彙集了主流瀏覽器的網站,可以幫助網頁設計師測試網站在不同瀏覽器下的相容性。同時他還是書籍《Perl One-Liners》的作者。他經常在部落格上寫一些關於軟體開發的文章。

 

Fog Creek:你是怎麼進入軟體開發行業的?

Peteris:我在6歲的時候第一次接觸計算機,當時在媽媽工作的地方看到了一個386或者486的計算機。當時我就被深深吸引了。之後我就一起幻想能有一臺自己的電腦。我試了很多方法,最後從一些朋友那兒得到了一臺。為了蹭網,我甚至假裝是大學生,儘管我還是一個小孩子。

我最開始從一個叫Zombie的朋友那兒得到了一臺膝上型電腦。他是一個了不起的系統管理員,將一臺閒置的筆記本送給我了。我現在還儲存著:IBM Butterfly 筆記本(ThinkPad 701CS),8M記憶體,800M硬碟,我最開始用來跑Windows 95和OpenBSD。後來我將記憶體升級成了40M。它還有細纜PCMCIA網路卡,我家裡的網路最開始是10Mb/s。

再後來我在15歲的時候擁有了自己的計算機。當時它有著很不錯的配置:400Mhz賽揚處理器,256M記憶體,8G硬碟驅動器,16M 3D Blaster Banshee顯示卡,17寸75Hz,解析度1024×768的CRT顯示器,原廠配置Windows 98作業系統。

計算機知識我是完全自學的。剛開始我學習了各種程式語言。當我拿到我賽揚計算機的時候,我已經知道自己想要做什麼了。我想要做網頁,於是開始學習HTML、JavaScript和CSS。最開始我並不知道網站是怎麼工作的以及伺服器相關的知識,一段時間才明白我需要一個web伺服器去執行我的網站。我先是將我的網站託管在Angelfire上,後來用PHP和MySQL搭建了自己的Linux Slackware web伺服器。我也想做一名黑客,所以我還學習了C和組合語言。另外我花了很多時間在IRCNet上,所以我還學習了mIRC指令碼並用VB搭建了自己的IRC客戶端。(注:IRC是Internet Relay Chat的英文縮寫,中文一般稱為網際網路中繼聊天。由芬蘭人JarkkOikarinen於1988年首創的一種網路聊天協議。mIRC是英國mIRC公司出品的IRC類客戶端軟體。mIRC指令碼是其整合的指令碼語言。)

 

Fog Creek:談一談你現在的工作。

Peteris:我現在是Browserling公司的CEO。2011年,我和一個朋友在舊金山灣區成立了Browerling公司。現在我每天都會寫很多程式碼,管理伺服器,和客戶與僱員們工作。我很喜歡我現在的工作,實在無法想像如果我從事別的工作會是什麼樣。另外我還是Paul Graham的死粉,也是他的文章激勵我創業。(注:Paul Graham就是特別火的《黑客與畫家》的作者,沒有讀過的朋友,建議看一看。)

我現在全身心致力於擴充套件業務。我停止了所有副業、寫書等任何可能分散我注意力的事情。創業成功的首要原則就是要百分百地投入。我現在已經實現了營收增長,並且正在建一個國際化遠端的開發團隊。我剛招聘了一個烏克蘭的牛逼工程師,並向非英語市場上擴充套件業務。

我也解決了一些技術問題,比如如何將虛擬機器上執行的瀏覽器分配給不同的客戶,如何每秒鐘抓取數以百計的瀏覽器截圖。我喜歡伺服器相關的工作,並且我打算將伺服器從EC2和Rackspace雲上遷到物理機上。雲伺服器是很適合初創公司,但是隨著發展壯大,伺服器遷到自己的地盤還是很有必要的:可以節省開支並提高效能。(注:EC2是Amazon雲。Rackspace是全球三個雲廠商之一。)

 

Fog Creek::什麼時候是你最開心的程式設計時刻?

Peteris:當我工作狀態極好和搞定問題的時候是最開心的。我經常能進入狀態,打算分享一下。晚上工作白天休息。晚上時間干擾很少能讓你保持專心。另外一個祕訣是關閉Twitter、Facebook、Skype、GTalk、G+等社交工具。當你在工作狀態時候不想被突然的訊息提示打斷吧。

Fog Creek:你的開發環境是什麼樣的?

Peteris:我裝了雙作業系統。我在自己的工作站使用Windows 7,通過SSH登入Linux伺服器。我上個月剛搭建了一個新的工作站:Intel i7 4790K 處理器並超頻處理到 4.7Ghz。

另外我還有一個Linux 防火牆伺服器、一個Linux檔案伺服器和一個Linux開發伺服器。通過Samba將Linux檔案伺服器掛載到Windows上,然後在RAID6上執行驅動器。所有的這些Linux伺服器都執行Slackware。我很喜歡Slackware的簡潔。為了保證系統簡潔,我一般只安裝的需要的package。比如firewall伺服器上只有Bash, Vim和Iptable。檔案伺服器上只有Bash, Vim, Cryptsetup和Samba。開發伺服器上有我開發需要的一切工具。

我在Linux上使用Vim,在Windows上使用gVim和Visual Studio。Windows應用開發的時候,如果環境中沒有IntelliSense,也很讓人抓狂。我有一個高度定製化的Vim並有很多外掛,比如:

  • surround.vim (quickly edit surrounding text)
  • repeat.vim (repeat surround commands)
  • matchit.vim (extend what % key matches)
  • snipmate.vim (code snippets)
  • nerd_tree.vim (explore filesystem from vim)
  • a.vim (alternate C and H files)
  • ragtag.vim (mappings for editing HTML)
  • tabular.vim (aligning text)
  • bufexplorer.vim (working with buffers)
  • python.vim (better python support)
  • exchange.vim (exchange text quickly)
  • abolish.vim (substitute words)
  • speeddating.vim (increment dates)

Windows下的工具:

  • Total Commander (file manager)
  • Visual Studi(can’t beat IntelliSense)
  • SQLyog (GUI manager for MySQL databases)
  • SQLiteSpy (GUI manager for SQLite databases)
  • pgAdmin (GUI manager for Postrgres databases)
  • WinSCP and SecureFX (secure FTP clients)
  • Putty and SecureCRT (SSH clients)
  • KeePass (password manager)
  • ClipX (clipboard manager)
  • Launchy (program launcher)
  • Locate32 (file indexer)
  • allSnap (window manager)
  • AutoHotkeys (automate tasks and programs)
  • Virtual CloneDrive (mount disk images)
  • IsoBuster (extract disk images)
  • ImgBurn (image burner)
  • Enounce MySpeed (speedup or slow down videos)
  • Hex Workshop (hex editor)
  • VMWare Workstation (virtual machines)
  • Cygwin (unix tools)
  • UltraMon (multi-screen support)
  • Beyond Compare (diffing tool)
  • Tclock2 (better clock)
  • Fineprint (printer proxy)
  • SumatraPDF (better PDF viewer)
  • AviSynth (edit videos programmatically)
  • ffmpeg (convert videos)
  • VirtualDub (convert and edit videos)
  • WinDirStat (disk space visualization)
  • clink (better cmd.exe)
  • IDA Pr(debugging)
  • Photoshop
  • Sysinternals tools

Linux下的工具:

  • samba (mounting Linux on Windows)
  • tmux and screen (persistent shell sessions)
  • all the standard UNIX utilities (awk, sed, grep, head, tail, uniq, sort, etc.)
  • perl (rapid prototyping, quick hacks, one-liners)
  • iptables and nftables (firewalling)
  • htop (better top)
  • mtr (better traceroute)
  • multitail (tail multiple files in multiple windows)
  • nc (netcat, TCP/IP swiss army knife)
  • iftop (bandwidth monitor)
  • ack (better grep)
  • ipcalc (network address calculator)
  • pv (pipe viewer – UNIX pipe progress bar)
  • rsync (backups)
  • ncdu (disk space visualization)
  • curl (http client)
  • nmap (network scanner)
  • tcpdump and wireshark (for network debugging)
  • sysdig (strace + lsof + tcpdump combined)
  • youtube-dl (downloading all online videos)

我坐著程式設計。我從來沒有試過站著或者走著程式設計,我覺得那樣太怪了。當我在工作狀態時,我收聽電臺di.fm。如果不在,音樂往往讓人分心。我已經用微軟的Natural鍵盤寫了十年程式碼了,除了年老色衰之外,它現在依然工作很好。

在我試著理解某些東西的時候,我會做很多的筆記。當我遇到複雜問題的時候,我一般將它們分解成小的易於解決的子問題,列在ToDlist上,一個一個解決。實際上我的ToDlist分成三種:長期的(未來1到2年)、中期的(未來幾個月)和短期的。

 

Fog Creek:關於開發,最喜歡的書或者資源?

Peteris:我很喜歡計算機和科學書籍。每幾個月我就花一天時間研究一下最新的出版物並買上一些最感興趣的。下面我列出我最喜歡的5本書。

1. 《The New Turing Omnibus
對計算機感興趣的人必讀。這本書共有66篇小文章,全都是最重要和最有趣的計算機相關知識,比如壓縮、圖靈機、正則方法和神經網路等。這本書的寫作風格休閒,基本不含有數學相關的知識。一直是我的最愛。

2. 《The Little Book of Semaphores
這本書告訴我們如何去思考多執行緒執行的問題以及如何解決同步問題。我強烈推薦這本書,如果你是自學的話更加推薦。這本書會引導讀者一步一步去解決一系列的經典和非經典同步問題。解決問題的過程很有樂趣,我已經將它推薦給了我身邊的每一個人。

3. 《程式設計珠璣》和《程式設計珠璣(續)
經典程式設計書籍。Jon Bentley知道如何清楚、熱情地寫演算法問題。這本書一直很好,它會教你如何分析問題、將問題拆開成小問題,以及高效實現解決方法。如果你讀了這兩本書,那麼你會通過Google面試的。(注:我們都知道這是遠遠不夠的:)。)

4. 《The Little Schemer
這本書會以一種很有趣的方式教你一些關於LISP的知識。這本書就像你和作者之間關於數百個Scheme程式設計問題的對話,它會教學會遞迴思考。它會教你思考並鍛鍊你的思維能力。最有趣的程式設計書籍之一。

5. 《The Elements of Style | 風格的要素》 和 《The Elements of Programming Style | 程式設計風格
嚴格意義上來說,《The elements of Style》並不是完全的開發或者程式設計書籍,而是一本關於寫作的書籍。為了成為一個牛逼的程式設計師,你需要和別人清楚的交流,寫作技巧是必要的。這本書一共100頁,你一個晚上就可以讀完。

《The Elements of Programming Style | 程式設計風格》要一本經典的程式設計書籍。作者是Kernighan,寫作風格深受到前一本書影響。這本書有點古老,但是基本所有的東西依然很有用。這本書共有70條程式設計規則,比如清晰書寫

Fog Creek:你目前使用的技術能分享一下嗎?

Peteris:我是Visual Studio的死粉,剛下載了Visual Studi2015 Preview版本並且開始使用了。我還在虛擬機器中裝了Windows 10。由於我現在做多瀏覽器的測試工作,對微軟的新瀏覽器Spartan還是很期待的。

Google剛開源了Kythe,這是一個很好的學習機會。我去年就從一個Googler朋友那兒聽說了,早已經等不及了。這個週末我打算在Linux核心原始碼上試試Kythe。

如果我有更多時間,我想把Oculus Rift和運動平臺結合起來做一些虛擬現實的小東東。

 

Fog Creek:不程式設計的時候喜歡做些什麼?

Peteris:我喜歡鍛鍊身體,做一些田徑運動。我發現短跑運動(Sprint)比咖啡更有用。我做10組60米短跑之後,在接下來10到12個小時裡都精力充沛,可以整個晚上像個怪物一樣程式設計。我也喜歡田徑比賽,特別是400米和800米。

 

Fog Creek:對於剛入行的年輕開發者,你有什麼建議?

Peteris:4條建議:

  • 1. 快速、高效解決問題,並繼續
  • 2. 不要做沒價值的事情
  • 3. 更早開始寫技術部落格
  • 4. 版本迭代儘量早儘量快

打賞支援我翻譯更多好文章,謝謝!

打賞譯者

打賞支援我翻譯更多好文章,謝謝!

任選一種支付方式

國外程式設計師訪談:瀏覽器相容性測試工具 Browserling 創始人 Peteris Krumins 國外程式設計師訪談:瀏覽器相容性測試工具 Browserling 創始人 Peteris Krumins

相關文章