2011 年巴黎 GNU 黑客會議

地點: 法國巴黎,IRILL (詳細資訊地圖),自由軟體研究與創新中心。

本次 GNU 黑客會議於 2011 年 8 月 25 日星期四至 8 月 28 日星期日舉行。感謝 IRILL 主辦本次活動並進行錄影,感謝 Inria 提供會議室,以及 FSF 為本次會議提供資金。

IRILL 位於義大利大道 23 號三樓,與 Inria 在同一棟建築內,主要演講將在 IRILL 三樓的 "algorithme" 會議室舉行。IRILL 和 Inria 的入口在 建築物的左側,郵局 ("La Poste") 入口的左側。

行程表

IRILL 設施於 8 月 25 日星期四至 28 日星期日全天開放。

以下是演講行程表。今年的主要主題是可擴展性。

8 月 26 日星期五

演講

今年的主要主題是可擴展性

演講列表如下,通常包含摘要、支援投影片和演講錄影。所有影片和本地託管的投影片均以 創用 CC 姓名標示 3.0 未本地化 授權條款發布,除非另有說明。影片格式為 Ogg。

GNU 黑客會議簡介 (Ludovic Courtes)

(影片)

閃電演講

(影片)

再見世界!在 C 語言中依賴輸出串流的危險 (Jim Meyering)

(投影片, 影片)

如果您使用 C 語言開發,並希望應用程式能夠可靠地偵測和診斷輸出錯誤,那麼您希望使用標準串流輸出函式,例如 putcharfputsfprintf 等。如果您無論如何都必須使用它們,那麼您將需要擔心一大堆邊緣情況。在這裡,您將看到如何在保持一定程度的可維護性的同時,處理醜陋的現實。

許多程式將部分或全部輸出寫入 stdout,即標準輸出串流。然而,雖然大多數經驗豐富的程式設計師都意識到關閉他們開啟的所有檔案(並診斷其中的任何故障)的重要性,但很少有人將這種規範應用於 stdout。結果是許多程式無法診斷寫入錯誤。正如您將看到的,雖然應用程式通常不開啟 stdout,但正確關閉它通常與正確關閉任何其他輸出串流一樣重要。我將說明這個問題,並展示如何在可維護且侵入性最小的方式下避免它。雖然處理 stdout 有一些微妙的曲折,但您會發現,穩健地使用任何輸出串流都需要非常謹慎,在某些情況下幾乎是不可能的。最後,您會想知道為什麼任何需要可靠輸出函式的開發人員仍然使用 C 串流。

GNU epsilon,一種可擴展的程式語言 (Luca Saiu)

(投影片, 影片)

程式語言的設計應允許使用者擴展,建立在非常小的語言和一組語法抽象功能之上,旨在將複雜的程式重寫為簡單形式的組合,這些簡單形式易於分析、推理和實作,並根據使用者提供的規範指導語法、控制、靜態分析和最佳化。

本次演講介紹了這種簡化設計哲學的優點和挑戰,並記錄了在一個特定的核心語言基礎上構建的經驗,從其鄰近領域開始,並探索更遠的領域。

將提供實作的狀態報告。

讓舊事物煥然一新 (Reuben Thomas)

(投影片, 影片)

GNU 有許多歷史悠久的專案,這些專案仍然是 GNU 底層運作的核心,並且在許多情況下,仍然被使用者直接廣泛使用。例如 coreutils、grep 和 gcc 以及 Emacs 等程式就屬於這一類。

不幸的是,從事這些程式的工作並沒有被廣泛認為是一件有趣或酷的事情。這很遺憾,原因有兩個:首先,儘管過去幾年努力復甦,但這些程式大多僅處於良好的維護狀態,而沒有像他們本可以做到的那樣進一步開發;其次,使用 C 語言和 GNU autotools 進行程式設計被廣泛認為(尤其是在 GNU 之外)是枯燥、沒有效率且過時的。另一方面,雖然 GNU 工具取得了一些顯著的進展,但這種看法在很大程度上仍然是正確的。

本次演講有兩個主要目的:首先,展示 GNU 工具的最新進展,特別是最近快速發展的 gnulib,它使 C 語言程式設計比多年來更有效率和更有趣;其次,探索剩餘的障礙,並為解決這些障礙提出一些建議,使用現有的成熟工具、尚未廣泛使用的現有工具(通常仍然需要工作),以及一兩個尚未實作的想法;第三,表明不僅有許多必要且有價值的工作要以「傳統 UNIX」風格的程式設計來完成,而且有很多樂趣可以享受,也許最令人驚訝的是對於非核心程式設計師來說,它仍然可以成為令人興奮的創新的框架。

makeinfo 的近期開發方向 (Patrice Dumas)

(投影片, 影片)

Texinfo 是 GNU 專案的官方文件格式。然而,最後一個版本可以追溯到 2008 年。這段漫長的時間是由於幕後發生了許多變化,首先是將 texi2html 合併到 Texinfo 中,以取代 makeinfo,然後是用將 Texinfo 文件轉換為樹狀結構的 Parser 取代,該樹狀結構由 Converters 進一步處理。

在詳細介紹了這段近期(和不太近期)的歷史之後,Parser 的簡要介紹將展示 makeinfo 的下一步是什麼。

GNU/Hurd,又名:從底層開始的可擴展性 (Samuel Thibault)

(投影片, 影片)

Unix 模型通常將「特權」使用者與非特權使用者強烈區分開來。前者通常擁有所有可能的特權,而後者的特權非常有限,僅限於他們自己的主目錄,充其量有時允許掛載可移除媒體。來自使用者空間的回應之一是 GVFS,它允許 GNOME 應用程式透明地存取不僅系統提議的內容,即實際上是特權使用者提議的內容,還包括使用者空間提供的內容,例如來自 FTP、SMB 等的檔案。另一個有趣的例子是使用 SOCKS 存取內部網路網站。一些瀏覽器原生支援使用 SOCKS Proxy,對於那些不支援的瀏覽器,可以使用 libsocks4 透明地使它們執行此操作。

然而,這些方法(嵌入)是有限的,並且會阻礙組合,因為它們大多必須在原始程式碼中明確說明。如果可移除媒體使用特殊檔案系統格式化怎麼辦?如果無法透過 ssh 存取內部網路網站,而只能透過 VPN 存取怎麼辦?當一個人已經被授予序列埠的存取權限時,為什麼不允許在序列埠上執行 PPP 通道?這些通常在桌面上不是問題,因為非特權使用者實際上也是特權使用者,而且人們已經習慣於透過 sudo、FUSE、TAP 等進行修補,但這仍然很乏味,並且存在潛在的安全漏洞。在全新安裝的系統上,例如,一個人不能直接執行 tar xf /ftp://ftp.gnu.org/pub/gnu/gcc/gcc-4.6.0/gcc-4.6.0.tar.bz2 來一次性下載和解壓縮 tarball 嗎?實際上,在 GNU/Hurd 系統上,可以。

有趣的是,即使 GNU 不是 Unix,GNU/Hurd 也使用非常類似 unix 的方法來實現可擴展性:檔案。透過引入翻譯器(實際上是它的真正核心)的概念,GNU/Hurd 讓使用者可以輕鬆完成各種需要在通常的 Unix 系統上具有特殊權限的任務,例如從 shell 存取 iso 映像檔的內容、chrooting、透過 VPN 路由應用程式網路流量、IP 轉換……

本次演講將介紹翻譯器的概念,並透過一些已經運作的翻譯器範例,展示它為「非特權」使用者(即實際上是 #0 自由)帶來的廣泛力量,而不會破壞安全性,以及它與 Linux GVFS/FUSE/CUSE/等的等效項相比如何。

GNU MPFR 函式庫簡介 (Vincent Lefevre)

(投影片, 影片)

本次演講將全面介紹 GNU MPFR 函式庫,用於任意精度的浮點運算。我將解釋此函式庫的特定功能(位元層級的正確捨入、例外)並舉例說明。我還將解釋如何測試 MPFR 以提高其可靠性。最後,將介紹一些使用此函式庫的簡單應用程式。

GNU MPC 函式庫簡介 (Andreas Enge)

(投影片)

介紹 GNU MPC 函式庫,它與 GNU MPFR 函式庫有許多相似之處和一些不同之處。我們討論複數的表示形式和主要實作的功能。還討論了一些為產生高效實作以及正確捨入而選擇的演算法。

[未公開主題] (Jose E. Marchesi)

已取消。

Org-mode 對 Emacs 的意義,如同 Emacs 對電腦的意義 (Bastien Guerry)

(投影片, 影片)

Org-mode 是一種 Emacs 模式,用於使用快速有效的純文字系統來記錄筆記、維護 TODO 列表、進行專案規劃和創作。

在本次演講中,我將介紹現有的核心功能(組織器、匯出器、Babel 函式庫),並展示真實使用的範例。我還將列出可能的貢獻(匯出器、與線上組織器互動的函式庫、錯誤追蹤工具等),並提及要解決的難題,其中最難的是使 Org 適合協作專案規劃。

最後,我將概述 Org 的歷史和社群,並就如何維護這個偉大的專案提出一些想法。

Debian 的背景:發行版、上游和下游 (Stefano Zacchiroli,Debian 專案領導者)

(投影片, 影片)

曾經,軟體發行版的工作流程相當簡單(抓取新的上游版本、打包、獲利),並且利害關係人的數量相對較少(上游作者、打包者、使用者)。如今,情況變得越來越複雜,上游/下游的概念越來越模糊:衍生發行版建立在現有發行版的基礎之上,軟體發行管道變得越來越長,……而且(幸運的是)使用者無處不在!為了擁有一個可持續的生態系統,不僅使個別專案受益,而且使整個自由軟體受益,各種利害關係人的責任是什麼?

Emacs XWidget 分支 (Joakim Verona)

(投影片, 影片)

Emacs Xwidgets 是一個實驗性分支,旨在啟用將 GTK+ 小工具嵌入到 Emacs 視窗中。Emacs 抽象稱為 Xwidget,代表 eXternal widget(外部小工具),也參考 XEmbed 協定。

目前,可以在緩衝區中插入按鈕、滑桿、WebKit 瀏覽器和 XEmbed Socket。它的工作方式類似於 Emacs 中對影像的支援。新增更多類型的小工具應該相當簡單,但每種型別都需要轉接器程式碼。

與影像的不同之處在於,xwidget 有自己的生命週期。您可以使用 API 建立它們,取得參考,並使用顯示規格將它們繫結到特定的緩衝區。

每個 xwidget 可以有多個視圖。在 MVC 術語中,xwidget 是模型,而 xwidget-view 是 xwidget 在特定 Emacs 視窗中的視圖。

xwidget 程式碼嘗試透過 Observer 模式實作來保持視圖的視覺外觀同步。

GNUstep 和 Étoilé 中的可擴展性 (Quentin Mathé)

(投影片, 影片)

本次演講將介紹 Objective-C 中支援可擴展性的各種有趣的機制、GNUstep 如何將它們用作符合 Cocoa 標準的實作,以及 Étoilé 如何利用 Objective-C 和 GNUstep 將使用者和開發人員方面的靈活性推向更高的程度。

Objective-C 具有從其他函式庫擴展類別、在執行時內省程式碼、延遲解析方法等各種能力。我們將討論這些能力和一些不太常見的想法,例如類別轉換,它們用於實作原型或鍵值觀察(一種觀察其他物件中任意變更的方式)。

GNUstep 使用 Objective-C 的動態性來實作其繪圖後端、主題支援或鍵值編碼或鍵值觀察等功能,這些功能在 Cocoa 開發人員中更為人所知。GNUstep AppKit 和 Foundation 基於各種重複出現的模式,例如類別註冊或類別叢集,以擴展內建類別,因此我們將詳細介紹它們,並提供一些具體範例,例如 NSImageRep

在 Objective-C 和 GNUstep 的基礎上,Étoilé 構建了一個桌面環境,它或多或少是一個開發人員平台。我們將討論 LanguageKit,它可用於建立與 Objective-C 物件無縫整合的動態語言,並使在不同語言中編寫屬於同一類別的方法成為可能。在更高的層次上,我們將展示 EtoileUI 開啟的可能性,EtoileUI 是一個 UI 工具包,其中使用者介面完全模組化為可外掛的方面(佈局、樣式、工具、控制器等),以允許快速建立新 UI 或在執行時精確且輕鬆地更改 UI。

如果我沒有超時 ;-) 我將嘗試介紹我們關於 CoreObject 作為具有修訂控制的物件導向資料庫的最新實驗,或者至少進行一個快速示範。

使用 MELT 擴展 GCC 以用於自由軟體 (Basile Starynkevitch, Pierre Vittet)

(投影片, 影片)

MELT 是一種高階領域特定語言(提供模式比對、應用/物件/反射程式設計風格),用於擴展 GCC(GNU 編譯器套件)。MELT 是自由軟體(GPLv3 授權,FSF 版權所有),可用作 GCC [meta-] 外掛程式(以及 GCC 實驗性分支)。

我們透過範例概述 MELT,並為 GNU 軟體提出特定的擴展(以 MELT 編碼)想法。

Scilab:與非 IT 人員打交道時的可擴展性問題 (Sylvestre Ledru)

(投影片, 影片)

Scilab 是主要的數值計算軟體。與許多其他軟體(Python、R、Octave)一樣,Scilab 提供了一些擴展機制來開發模組。然而,特別是因為大多數使用者不是開發人員,所以這是需要付出代價的。

在本次演示中,將介紹和討論 Scilab 團隊遇到的各種常見問題。

GNU Free Call—汽車和手機的健康網路 (Haakon Meland Eriksen)

(投影片, 影片)

GNU Free Call 是一個新專案,旨在開發和部署全球安全、自組織的通訊服務,供私人使用和公共管理。本次演講的重點是在現有基礎設施不再可用或已被故意禁用時,繼續提供緊急醫療服務,使用 GNU Free Call 建立汽車和手機的健康網路。

迴圈中的使用者 (Andy Wingo)

(投影片, 筆記, 影片)

可擴展性不僅僅是一個錦上添花的功能:它有助於我們的使用者感到滿足,並且是自由 1 的關鍵組成部分。它還為使用者提供了工具來過渡到臨時貢獻者,甚至可能成為您作為維護者的替代者。可擴展性幫助使用者並建立 GNU。

除了關於可擴展性的論點之外,本次演講還著眼於可擴展性的不同方法的實際影響:嵌入、擴展和腳本編寫。它還認為 Guile(GNU 擴展語言)支援所有這些模型。Guile 是一個功能強大、實用的擴展語言實作,所有 GNU 專案都應使用它。

Emacs Lisp、Guile、JavaScript、硬限制和倫理論證 (Jim Blandy)

(我們很抱歉,由於技術原因,本次演講的影片無法提供。問答影片第 1 部分, 問答影片第 2 部分)

擴展語言是一種強大的設計模式。但是,您選擇的語言會影響您獲得的受眾,並且流暢地支援混合語言已被證明比我們許多人預期的要困難。我認為困難在於我們將真實世界的意義歸因於程式的具體行為的方式。這種困難是程式設計行為的根本,無法解決。我將提供具體範例來說明,得出一些令人失望的結論,並提出前進的方向。

來自 GNU 顧問委員會的消息

Woodchuck:提升行動裝置的資料可用性 (Neal Walfield)

(投影片, 影片)

行動裝置應最大化資料可用性,即使用者想要存取的資料的可能性。高速蜂窩網路連接並非萬能藥:無線通訊能源密集;資料傳輸上限越來越普遍;蜂窩網路覆蓋範圍並非無處不在。

Woodchuck 是一個用於排程延遲容忍內容傳輸的框架,例如部落格、Podcast、電子郵件、社群網路更新、天氣報告和日曆資料。Woodchuck 透過監控網路狀況和使用者行為來節省電池電量、管理資料上限並隱藏不良網路覆蓋範圍,並且在條件良好時,告知應用程式(必要時啟動它們)執行更新或傳輸。挑戰在於弄清楚如何有效管理這些資源並預測使用者可能需要的內容。

在本次演講中,我將展示一些預取潛在改進的測量結果。我將簡要討論 Woodchuck 的設計。我將介紹 Woodchuck 的 API 和我正在探索的排程方法。最後,我將討論我們正在進行的使用者研究,以便能夠評估排程策略。

有關 Woodchuck 的更多資訊,包括 Woodchuck 伺服器、C 函式庫和 Python 模組,可以在以下網址找到

http://hssl.cs.jhu.edu/~neal/woodchuck/

N900 也提供二進位套件。

GNU 資料語言 (Alain Coulais, Sylwester Arabas)

(我們很抱歉,由於技術原因,本次演講的影片無法提供。投影片)

GNU 資料語言 (GDL) 是一個免費/自由/開放原始碼的增量編譯器,與 IDL 相容,並在一定程度上與 PV-WAVE 相容。與其函式庫例程一起,它可用作天文學、地球科學和醫學影像等學科的資料分析和視覺化工具。GDL 是根據 GPL 授權的自由軟體。GDL 依賴於大量其他函式庫,包括:GCC、Readline、GSL、PLplot、ImageMagick、FFTw、……

從法語 http://racketiciel.info/ 到國際 http://racketware.info/index (Alain Coulais, Cyprien Gay)

「No More Racketware」行動的目的是讓消費者有可能在購買電腦時不支付預裝軟體的費用。

Guile-Emacs (BT Templeton)

歐洲自由軟體的資金 (Karsten Gerloff - FSFE 主席)

自由軟體和高效能運算 (Juan Antonio Añel Cabanelas)

(投影片)

當您使用 HPC 基礎設施時,自由軟體可能是一個艱難的選擇。當您在時間(以及因此計算效能)是硬通貨的環境中工作時,有時甚至沒有您需要的那麼多,因此很難證明您正在「浪費」一半的資金是合理的。此外,您可能無法控制您正在執行的程式碼或您正在使用的超級電腦,這使得問題更加複雜。本次演講將嘗試在 GHM 期間就這些問題展開富有成效的討論。

GNU Psychosynth (Juan Pedro Bolívar Puente)

GNU 參與 Google Summer of Code (Rodrigo Rodrigues da Silva)

(影片)

GNU LibreDWG (Rodrigo Rodrigues da Silva)

出席者

  • Ludovic Courtès (GNU Guile)
  • Julien Danjou (GNU Emacs)
  • Jim Blandy (GDB, GNU Guile, Firefox 等)
  • Samuel Thibault (GNU Hurd)
  • Andy Wingo (GNU Guile)
  • Dodji Seketeli (GCC, Nemiver, GNOME)
  • Sylvestre Ledru (IRILL, Debian, Scilab)
  • Jose E. Marchesi (GNU PDF, GNU recutils)
  • Bastien Guerry (Org-Mode, GNU Emacs)
  • Neal Walfield (GNU Hurd)
  • Jim Meyering (GNU Coreutils, GNU Parted, Gnulib 等)
  • Andreas Enge (GNU MPC)
  • Albert Cohen (GCC, IRILL)
  • Vincent Lefevre (GNU MPFR)
  • Brian Gough (GNU Scientific Library, GNU Source Release Collection)
  • Quentin Mathé (GNUstep, Étoilé)
  • Luca Saiu (GNU epsilon)
  • Reuben Thomas (GNU Zile, GNU Hello)
  • Patrice Dumas (GNU Texinfo)
  • Simon Josefsson (GnuTLS, GNU Libidn, GNU Shishi, GNU SASL 等)
  • Juan A. Añel (GNU Spain, GNUticias)
  • Sylwester Arabas (Gnu Data Language)
  • Jérémie Koenig (GNU/Hurd)
  • Giuseppe Scrivano (GNU IceCat, GNU MyServer, GNU Wget, GNU Inetutils 等)
  • Alain Coulais (Gnu Data Language)
  • Stefano Zacchiroli (Debian, IRILL)
  • Richard Braun (GNU Hurd)
  • Rodrigo Rodrigues da Silva (GNU LibreDWG)
  • Haakon Meland Eriksen (GNU Free Call)
  • Roman Gopalan
  • Joakim Verona (GNU Emacs)
  • Ralf Wildenhues (GNU Automake, GNU Libtool, GNU Autoconf, Gnulib 等)
  • Basile Starynkevitch (GCC, MELT)
  • Francis Southern
  • Gaël Le Mignot (GNU Hurd)
  • Toby Dylan Hocking (GNU R)
  • Pierre Vittet (GCC, MELT)
  • Paolo Carlini (GCC)
  • Guillaume Smaha
  • Juan Pedro Bolívar Puente (GNU Psychosynth, GNU Jump)
  • Alexandre Lissy (GCC, MELT)
  • Arnaud Patard (Mageia 發行版)
  • Arne Babenhauserheide (GNU Hurd)
  • Florent Popille (聖艾蒂安大學 - 自由軟體開發研究)
  • Bruno Haible (GNU gnulib, GNU libunistring)
  • Karsten Gerloff (FSFE 主席)
  • BT Templeton (GNU Guile, Guile-Emacs)
  • Steve White (GNU FreeFont)
  • Edlira Nano (INRA)
  • Laurent Guerby (GCC 編譯農場)
  • François Dumont (GCC)
  • Dimitri Fontaine (GNU Emacs, el-get)
  • Romain Tartière (FreeBSD)
  • Brice Lopez
  • Arnaud Gambonnet

註冊

註冊已結束。

  • 您可以使用 Flattr 小額捐款來支持未來的 GNU 黑客會議

所有捐款將用於為那些無法自行負擔費用的人提供差旅補助金。

更多資訊

參加會議是免費的,但您需要支付自己的交通/住宿/餐飲費用。如果您需要財務支持以支付交通或住宿費用,請在您的註冊電子郵件中註明允許您參加會議的最低金額。

建議的住宿選項

靠近 IRILL 的飯店

更遠的飯店

青年旅館

交通

餐飲

IRILL 有一份建議餐廳列表。我們將盡力在中午和晚上安排團體用餐。請注意,IRILL 和 Inria 的辦公室內禁止用餐。

8 月 24 日星期三,晚餐於晚上 8 點在 Mussuwam 舉行,這是一家塞內加爾餐廳,位於 巴黎阿拉戈大道 33 號 (13 區),距離 IRILL 1.3 公里。

8 月 25 日星期四,晚餐於晚上 8 點在 Au P'tit Cahoua 舉行,地址為 39 Boulevard Saint-Marcel, 75013 Paris。

8 月 26 日星期五,晚餐在 "Le temps des cerises" 舉行,地址為 18 rue Butte aux Cailles, 75013 Paris (01 45 89 69 48),距離 IRILL 步行 10 分鐘。

有問題嗎?

請在 ghm-discuss@gnu.org 郵件列表中提問,網址為 http://lists.gnu.org/mailman/listinfo/ghm-discuss

關注 GHM 新聞摘要 feed16.png 以獲取更新。