Guillaume Lathoud's page
Microphone arrays etc. (#)
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
"The most important skill in software development", a web
article by John D. Cook. Tip: has to do with organization skills and complexity management.
Listen to your code before things are growing out of
debuggable code. Declare the most important functions first, *then* go down into details.
"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?
I can advise to have one's own projects on the side, for
example starting with a few very simple topics, and growing those projects: researching around the
topics while building working software. This beats all other possible jump-through-the-hoops
Having non-programming activities helps a lot, too, by giving distance. Otherwise, there is an
unhealthy risk to fall into programming religion wars, caring about the wrong things.
Less serious (#)
Support this site (#)
...by opening an account at instaffo (smarter recruitment) or at BullionVault (physical gold & silver market). For
both, opening is free, the rest is up to you. Worth a try.
Online, for free:
D programming language
Science and more
Children, "education", etc.
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,
- "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.
- transfun: Merged
→ HTML, GitHub repository
→ HTML example, GitHub repository
- yak.js: JS and JSON united to write dynamic HTML pages,
→ HTML example, GitHub
- Flatorize: Generate fast, flat, factorized code
for mathematical expressions,
April 2013, October 2014.
→ HTML, Budapest 2014 nodebp/bpjs meetup
slides & video.
- Tail metacomposition (Lightweight mutual tail recursion optimization without
→ HTML, Budapest 2014 mloc.js talk slides, video, both.
- Position the ramp of a construction site by solving a quartic
Runtime Asserts: Soft Type Checking,
- Counting in base 20 using underlined digits,
- derive.js: minimalistic inheritance for ECMAScript 5,
- Tail-call optimization for mutual recursion without trampoline, in
- proto.js: minimalistic inheritance for ECMAScript 3,
- JSCheck: a full ECMAScript 3 code checker,
→ JSCheck itself: XHTML
cross-engine Narcissus parser: HTML
individual cacheBust for each dojo build layer,
- Short-Term Spatio-Temporal Clustering Applied to Multiple Moving Speakers,
in "IEEE Transactions on Audio, Speech and Language Processing", Vol. 15, Issue 5,
- Sector-Based Detection for Hands-Free Speech Enhancement in Cars,
in "EURASIP Journal on Applied Signal Processing, Special Issue on
Advances in Multimicrophone Speech Processing", 2006.
- Audio-visual probabilistic tracking of multiple speakers in meetings,
in "IEEE Trans. on Audio, Speech, and Language Processing",
accepted for publication, 2006.
- Automatic Analysis of Multimodal Group Actions in Meetings,
in "IEEE Transactions on Pattern Analysis and
Machine Intelligence", accepted for publication, 2004.
- Threshold Selection for Unsupervised Detection, with an Application to Microphone
in "Proceedings of ICASSP 2006",
Sector-Based, Frequency-Domain Approach to Detection and Localization of Multiple Speakers,
in "Proceedings of ICASSP 2005", 2005.
an Audio-Visual Corpus for Speaker Localization and Tracking,
in "Proceedings of the 2004 MLMI Workshop, S. Bengio and H. Bourlard Eds, Springer
→ PDF, AV16.3 Corpus website
- Unsupervised Spectral Subtraction for Noise-Robust ASR,
in "Proceedings of the 2005 IEEE ASRU Workshop", 2005.
- Unsupervised Location-Based Segmentation of Multi-Party Speech,
in "Proceedings of the 2004 ICASSP-NIST Meeting Recognition Workshop",
- Observations on Multi-Band Asynchrony in
Distant Speech Recordings,
IDIAP-RR 06-74, 2006.
Applications of Sector-Based Detection and Short-Term Clustering,
Normalization for Unsupervised Spectral Subtraction,
IDIAP-RR 06-09, 2006.
Produced on 2016-10-21 by index.scm - by Guillaume Lathoud (glat _at_ glat _dot_ info)