Guillaume Lathoud's page
At the moment I breathe JavaScript, D, Python and bash (yes!), languages that do not pretend to be perfect, and don't get in the way of fluid programming. Example of results: many 3D videos on YouTube.
JavaScript (#)
fext
: fast explicit tail calls.
ct.js
: compile-time function execution.
hashfiddle
to play with JavaScript, HTML and CSS fully online, without any server.
D (#)
D-paco
: practical parallel compilation of D code, without fiddling around with a build system.
flatmatrix
: flat matrix computations, lightweight implementation, @nogc
as often as possible.
Microphone arrays etc. (#)
Math (#)
- plot: simply plot
y=f(x)
, nothing more.
flatorize
: Generates super-fast math code for JS, asm.js, C & D (slides, talk).
numbase
: encode and decode numbers in any base, including balanced bases.
- 108: funny things about that number.
cipo
investigates a property of circular sets of 2^q elements.
log10circle
: fast approximate computing using... a paper disk.
About programming (#)
In my opinion, these people wrote great pieces of advice:
"Boring things first", a web article from John Barnette: when starting a project, setup the infrastructure first. That's exactly the approach that the Chrome guys followed since the beginning: they had the browser update system finished first, before they started to implement any HTML/CSS/JavaScript feature.
(archived version)
"The most important skill in software development", a web article by John D. Cook. Tip: has to do with organization skills and complexity management.
(archived version)
Listen to your code before things are growing out of control.
(archived version)
"It's funny to me, I used to merely tolerate JavaScript...", a great comment on Hacker News that advocates for simplicity: use hoisting in JavaScript! It's always been there, and lets you write simple, readable and easily debuggable code. Declare the most important functions first, *then* go down into details.
(archived version)
"Rocket surgery made easy", a book on *actually* improving usability within a small or reasonable budget, by Steve Krug. Here is an example video.
A very important question to ask in a dev team is "Can you care?" (sorry, I could not find the author anymore). To care about others (including your own self in the future, going back to the old code...) implies to care about code, core language concepts, infrastructure (build & test systems) and communication (listening!). "Can you meta-care?" would mean to think about priorities. Is this or that worth doing? Why? Now? Later? Or maybe we should not do it? Or in a different way?
Readings (#)
Online, for free:
D programming language
Science and more
Children, "education", etc.
Dead trees:
[en]
Code word "Professional"?
- Teamwork in the computer industry: "Peopleware - Productive Projects and Teams", 2nd ed. (DeMarco and Lister, 1987, 1998).
- Build a capacity to change in the modern enterprise: "Slack - Getting Past Burnout, Busywork, and the Myth of Total Efficiency" (DeMarco, 2001).
[de]
- "Gefährdete Menschheit: Ursache und Verhütung der Degeneration" (Albert von Haller, 1958): A great nutrition classic, based on the worldwide travels & studies of the American dentist W. Price.
- "Gib den Stress-Hormonen, was sie brauchen" (Porta and Zagler, 2002): Amazing book explaining the biochemistry of stress hormones, and how to give them what they need. Very readable.
Writings (#)
Internet Publications
- PCR Test aus mathematischer Sicht - Deutschland, 18.12.2020,
Guillaume Lathoud,
December 2020.
→ HTML, PDF
- D-paco: Practical parallel compilation of D code,
Guillaume Lathoud,
December 2019.
→ GitHub repository
- ct.js: Compile Time Function Execution in JavaScript,
Guillaume Lathoud,
December 2019.
→ HTML, GitHub repository
- Funny things about the number 108,
Guillaume Lathoud,
September 2019.
→ HTML, GitHub repository
- Fast explicit tail calls,
Guillaume Lathoud,
June 2018.
→ HTML, GitHub repository
- Hashfiddle: lightweight JS/HTML/CSS fiddling in the browser,
Guillaume Lathoud,
May 2018.
→ HTML, GitHub repository
- Circular sets and powers of two,
Guillaume Lathoud,
May 2017.
→ HTML, GitHub repository - flatmat: Very fast linear algebra in JavaScript,
Guillaume Lathoud,
February 2017.
→ HTML, GitHub repository - transfun: Merged loops for speed in JavaScript,
Guillaume Lathoud,
January 2016.
→ HTML, GitHub repository - numbase,
Guillaume Lathoud,
February 2015.
→ HTML example, GitHub repository - yak.js: JS and JSON united to write dynamic HTML pages,
Guillaume Lathoud,
December 2014.
→ HTML example, GitHub repository - Flatorize: Generate fast, flat, factorized code for mathematical expressions,
Guillaume Lathoud,
April 2013, October 2014.
→ HTML, Budapest 2014 nodebp/bpjs meetup slides & video. - Tail metacomposition (Lightweight mutual tail recursion optimization without trampoline),
Guillaume Lathoud,
March 2013.
→ HTML, Budapest 2014 mloc.js talk slides, video, both. - Position the ramp of a construction site by solving a quartic equation,
Guillaume Lathoud,
February 2013.
→ HTML - Cheap Runtime Asserts: Soft Type Checking,
Guillaume Lathoud,
December 2012.
→ HTML - Counting in base 20 using underlined digits,
Guillaume Lathoud,
June 2012.
→ HTML - derive.js: minimalistic inheritance for ECMAScript 5,
Guillaume Lathoud,
March 2012.
→ derive.js - Tail-call optimization for mutual recursion without trampoline, in Javascript,
Guillaume Lathoud,
December 2010.
→ XHTML - proto.js: minimalistic inheritance for ECMAScript 3,
Guillaume Lathoud,
July 2010.
→ proto.js - JSCheck: a full ECMAScript 3 code checker,
Guillaume Lathoud,
March 2010.
→ JSCheck itself: XHTML
→ Underlying cross-engine Narcissus parser: HTML - On-the-fly tail call optimization in Javascript without trampoline,
Guillaume Lathoud,
January 2010.
→ XHTML - An individual cacheBust for each dojo build layer,
Guillaume Lathoud,
November 2009.
→ XHTML - Self-closure and mutation: Inheritance for Javascript functions, with a stream application,
Guillaume Lathoud,
June 2009.
→ HTML
Journals
- Short-Term Spatio-Temporal Clustering Applied to Multiple Moving Speakers,
Guillaume Lathoud and Jean-Marc Odobez,
in "IEEE Transactions on Audio, Speech and Language Processing", Vol. 15, Issue 5, July 2007.
→ PDF - Sector-Based Detection for Hands-Free Speech Enhancement in Cars,
Guillaume Lathoud, Julien Bourgeois, and Juergen Freudenberger,
in "EURASIP Journal on Applied Signal Processing, Special Issue on Advances in Multimicrophone Speech Processing", 2006.
→ PDF - Audio-visual probabilistic tracking of multiple speakers in meetings,
D. Gatica-Perez, G. Lathoud, J.-M. Odobez, and I. McCowan,
in "IEEE Trans. on Audio, Speech, and Language Processing", accepted for publication, 2006.
- Automatic Analysis of Multimodal Group Actions in Meetings,
I. McCowan, D. Gatica-Perez, S. Bengio, G. Lathoud, M. Barnard, and D. Zhang,
in "IEEE Transactions on Pattern Analysis and Machine Intelligence", accepted for publication, 2004.
Conferences (selection)
- Threshold Selection for Unsupervised Detection, with an Application to Microphone Arrays,
Guillaume Lathoud, Mathew Magimai.-Doss, and Herve Bourlard,
in "Proceedings of ICASSP 2006", 2006.
→ PDF - A Sector-Based, Frequency-Domain Approach to Detection and Localization of Multiple Speakers,
Guillaume Lathoud and Mathew Magimai.-Doss,
in "Proceedings of ICASSP 2005", 2005.
→ PDF - AV16.3: an Audio-Visual Corpus for Speaker Localization and Tracking,
Guillaume Lathoud, Jean-Marc Odobez, and Daniel Gatica-Perez,
in "Proceedings of the 2004 MLMI Workshop, S. Bengio and H. Bourlard Eds, Springer Verlag", 2005.
→ PDF, AV16.3 Corpus website - Unsupervised Spectral Subtraction for Noise-Robust ASR,
Guillaume Lathoud, Mathew Magimai.-Doss, Bertrand Mesot, and Herve Bourlard,
in "Proceedings of the 2005 IEEE ASRU Workshop", 2005.
→ PDF - Unsupervised Location-Based Segmentation of Multi-Party Speech,
Guillaume Lathoud, Iain A. McCowan, and Jean-Marc Odobez,
in "Proceedings of the 2004 ICASSP-NIST Meeting Recognition Workshop", 2004.
→ PDF
Research Reports (selection)
- Observations on Multi-Band Asynchrony in Distant Speech Recordings,
Guillaume Lathoud,
IDIAP-RR 06-74, 2006.
→ PDF - Further Applications of Sector-Based Detection and Short-Term Clustering,
Guillaume Lathoud,
IDIAP-RR 06-26, 2006.
→ PDF - Channel Normalization for Unsupervised Spectral Subtraction,
Guillaume Lathoud, Mathew Magimai.-Doss, and Herve Bourlard,
IDIAP-RR 06-09, 2006.
→ PDF
Produced on 2017-05-10 by index.scm - by Guillaume Lathoud (glat _at_ glat _dot_ info)