All my geeky stuff ends up here. Mostly Unix-related

Archive for the ‘Uncategorized’ Category

I am not your daughter

leave a comment »


You called me quite late. Some time during the middle of the night, and for whatever reason I had left my phone on. I picked it up and was greeted by your anxious voice:
– Isabelle, is that you?
Part of my brain was still actively dreaming, but the part that was emerging found the idea preposterous. Do I sound like an Isabelle? I croaked:
– No Madam, this is not Isabelle.
– Oh come on Isabelle, it’s Mum. Stop playing fool with me, I recognize your voice, please..
Even half awoken, the tension in your voice was definitely noticeable. You wanted to talk to your daughter and nothing would stop you.
– Madam, I can assure you I am not your daughter. In fact I am a man and my name is Nicolas.
– Bullshit! Isabelle, talk to me!
Your old lady’s tone left me no choice but to obey, so I gave up and decided to play along.
– Alright Mum, you got me. What’s up?
You seemed surprised. Apparently Isabelle does not give up so easily when playing this game. But the sudden joy of being able to talk to your daughter was so great that you could not help it. You started talking about your neighbours at the retirement home, how the nurses were treating you, and had many complaints about the food and such. I listened very carefully at first and quickly dozed off, we were half way during the night after all.

You called again a bit later, and again, and again. We spent our night like this: you finally talking to your daughter, and me sleeping through 10-minute intervals. Finally one of your nurses must have found out you were secretly phoning at night and you stopped calling.

You never called again. I hope you found the right number for Isabelle and she takes good care of you.

Written by nicolas314

Monday 2 October 2017 at 9:42 am

Posted in Uncategorized

Samba+FreeBSD+OSX Finder

leave a comment »

Tried to run Samba44 on FreeBSD to share files on the local network with OSX machines. Took me a while but I finally figured out that in order to get rid of the infamous ERROR -36 from the Mac Finder, you have to disable sendfile with:

use sendfile = no

As a matter of fact, let me post a complete working example of smb4.conf that works between my FreeBSD-hosted Samba and my Mac (Yosemite):

# Following line is useful on Linux, not on FreeBSD apparently
# socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072
max protocol=SMB3
winbind enum groups=yes
winbind enum users=yes
large readwrite = yes
max xmit=32768
min receivefile size=2048
use sendfile = no
aio read size = 2048
aio write size = 2048
write cache size = 1024000
read raw = yes
write raw = yes
getwd cache = yes
unix charset = UTF-8
oplocks = yes
workgroup = HOME
server string = PO
security = user
map to guest = Bad User
log level = 5
log file = /var/log/samba4/samba.log
max log size = 50
interfaces =
hosts allow =
hosts deny  =
#dns proxy = no
# I do not want Samba to serve printers, thanks
printing = bsd
printcap name = /dev/null
guest ok = yes
guest account = nobody
load printers = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes
ea support = no

# Share the directory in /data/share as 'share'
path = /data/share
public = yes
guest ok = yes
writable = yes
browsable = yes
create mask = 0777
directory mask = 0777
force user = nobody
follow symlinks = yes

In addition, OSX does not support guest access to an SMB server. The simplest solution I found was to set up a user called ‘nobody’ without password:

smbpasswd nobody
-> Press ENTER twice to set no password

And then access your share by pointing your Mac Finder to smb://nobody@HOST/share and click Connect.

Note to self: never ever install a Samba server after 7pm if you want a full night sleep.


Written by nicolas314

Wednesday 12 October 2016 at 12:01 am

EdgeRouter Lite

with 3 comments


My endless search for the ideal home router made me buy a piece of hardware called EdgeRouter Lite by Ubiquiti. The price point is sweet (around $100), making it a damn expensive home router or a damn cheap professional one. For that price you get:

  • A Cavium Octeon processor: 500MHz, two cores, rated 1000 bogomips, MIPS64 architecture, big-endian.
  • Half a gig of RAM
  • Three GBit NICs
  • No wireless
  • No fan, no noise
  • OS completely contained on an easily accessed USB stick on the motherboard, so essentially as much drive space as you want.

The last point is the most important: by just removing three small Phillips screws you can unplug the original USB thumb drive and replace it with your own, equipped with your favourite operating system. If everything fails you can always switch back to your previous state, put the screws back and call it a day. That should not void your warranty but I am no lawyer.

The provided operating system is called EdgeOS, based on Vyatta, itself based on Debian. It seems Vyatta development is now halted and Ubiquiti is now steering EdgeOS alone. I used EdgeOS on that router for about six months and have to admit being rather satisfied. The router is sold as the fastest switching home appliance on the market, claiming 1 million packets per second. In order to reach that kind of speed with a (dual-core) 500MHz processor on three GBit NICs you need additional specialized hardware that is only available through proprietary drivers provided with EdgeOS. So be it.

I have a beef with proprietary router firmware though: each vendor seems to feel obliged to invent their own management language. Cisco, Mikrotik, Ubiquiti, you name it. Everything is meant to be controlled from the command line, which is great, but instead of navigating through a familiar Unix environment you need to learn half a million new (proprietary) commands, their syntax, side effects, and how to commit, save, or restore configurations.  This is a royal pain in the butt and I have no desire to go get some training to configure a home appliance.

To be fair, open source versions have had the same issue for years, though some made a huge effort to provide good web-based GUIs for configuration and avoid having to invent a new configuration language altogether. Tomato and DD-WRT have really pushed things forward to reach a decent level of user-friendliness. You only need to know about networking and do not have to worry about learning yet another obscure syntax to handle those.

Too bad: both projects seem to be pretty much abandoned today. DD-WRT has not seen a stable release in almost a decade and Tomato still courageously lives on, maintained by a handful of dedicated devs working from home. The communities for Tomato and DD-WRT are dwindling fast in favour of OpenWRT.

OpenWRT is the most advanced open source router project today. It is well designed, based on a single syntax for configuration files, and supports pretty much every piece of router hardware under the sun. The project was recently forked by its own developers into the LEDE project, which is now the version I am following as closely as possible.

Back to the EdgeRouter Lite: what’s not to love?

Beyond the proprietary software and syntax, EdgeOS offers a web-based GUI that looks fancy and neat but covers only a very, very limited portion of what can be achieved through a command-line interface. This is very frustrating. I love command lines as your next geek but don’t force me to learn a syntax I will use nowhere else just to achieve mundane stuff.

After six months of customizing my home router to my own needs, I had gathered scripts lying around e.g. to extract a list of known MACs or some stats.  And when I updated EdgeOS to another minor version, everything fell apart.  That irked me to no end, pushing me once more into the arms of an open source alternative.

Support for alternative firmware for this router is not obvious to find.  OpenWRT has an incomplete wiki page about it. A couple of guys have succeeded in installing FreeBSD but I did not feel up to the task. Debian supports big-endian MIPS64 machines, and a project called DebWRT offers support for this router, merging both Debian and OpenWRT in a single solution. This is cool but I am a bit terrified about using a straight Linux distro to build a router. If all I have to handle iptables is a bash shell and miles of manual pages, this is not going to work, I hate the iptables syntax with a true passion. The unique config file format used by OpenWRT is a real blessing, there is no way I am going back to one config file format per daemon.

So I started from scratch, built my very own version of a LEDE instance, including all the software I want to run on this box. The process is error-prone and it took me several evenings to get straight. In order not to lose information, I will be detailing everything I did in a next post, hoping it could be useful for someone else.

The net result is a pure LEDE box that has been running without hiccups for a few days now. Configuring routes, VPN, DHCP, DNS is a walk in the park thanks to user-friendly OpenWRT. All my scripts are working again, I can handle backups myself, and I even installed dedicated web and Samba servers. Next step will be to install an ad-blocking name server.

I am certainly losing in terms of performance but I won’t see the difference. Without proprietary drivers, hardware acceleration is gone.  This should not be an issue considering my home GBit network is currently handled by a separate switch and my Internet connection is limited to a mere 20MBit/s, magnitudes below what the router needs to provide. The day I get a GBit Internet connection at home, I will always have a choice to switch back to EdgeOS with just one unplug/plug of a USB key. Or maybe someone will have reverse-engineered the proprietary drivers by then?

There is one alternative I have been looking deep into: using pfSense or OPNsense to build my own firewall. The approach sounds good. I believe the BSD family is technically a lot better than anything Linux-based. This is particularly true in terms of network security software.

Trouble is: pfSense/OPNsense is extremely greedy. You can build a 15 euro router with OpenWRT but you need PC-sized gear to run pfSense, including at least 1 GB of memory and a lot more than mere megabytes of storage (OpenWRT fits in just 4 megs). The cost of a pfSense appliance can easily run in 400-500 euros, which does not make any sense from a budget point of view.  Most people going down that road recommend re-purposing an old PC for the task, but I have absolutely no intention of storing a hungry 300W loud old PC box next to my 20Mbit/s DSL modem, this would be insane.

There lies the whole beauty of this exercise: find the cheapest, least power-hungry, and most efficient way to set up a home routing solution that is easy and fun to configure, flexible enough, and secure. I stopped building my own PCs years ago and cover that need now by building small appliances from scratch, compiling the whole OS myself.

Tinkering is fun!

Written by nicolas314

Wednesday 5 October 2016 at 10:03 pm

Printers from Hell

leave a comment »

printer-icon--clipart-best-30My first printer was a black-and-white Samsung laser device that caught my eye in a brick-and-mortar shop by sporting a brave Linux sticker on the front side. These were the early 2000s, mind you, and finding hardware that openly advertised Linux compatibility was quite unusual. The same sticker also showed a Windows and Apple logo, to be honest.

Linux compatibility in those times meant that you were a mere 37 friendly steps away from printing a page, which is quite an achievement if you remember that Linux printing in those ages was still reserved to a very small number of gurus worldwide. You needed to re-compile your kernel, install the correct kind of USB support, a variety of device drivers, a couple of daemons, a postscript interpreter, some fonts, and all the extra cruft that comes bundled with those packages. Under Debian this goes as a simple apt-get but RPM-based distros were less automated. You had to dig through dependencies yourself and keep throwing packages at your hard drive until the damn thing stopped complaining. Tedious. And then you could finally start editing the printer configuration files. If you have never configured these horrors, think of a mix between and procmailrc.

Since then CUPS has changed the game. Config files are just as obscure but are now XML-based (now you have two problems). CUPS forces you to assign network permissions to access your very local USB device, requiring at least some knowledge of basic network security to be able to print a page.  You also had an option to configure CUPS through a web interface, but that also required manipulating some networking rules and authorizations in an XML file to just bring up the page. Oh the joys of manual CUPS configuration!

Cue to 2007: I purchased a combined color printer and scanner from HP for close to nothing, hoping I would not need the ink. Instead of hooking it into a Linux box, I decided to take the easy path and attach it to a Mac.  This is still running CUPS but at least things are a bit automated with Apple: click “Add Printer” and follow the steps until it says it works.  Surprisingly enough, you needed to delete and re-add the printer every time you upgraded the OS, but thanks to the provided wizard this was not such a pain.

This HP stuff did not work so well. It printed alright, but the cartridges seemed to empty at lightspeed. The scanner was incredibly slow, it could not be controlled from any other machine than the one connected through USB. Better than nothing, I suppose.

Cue to 2014: I saw this fantastic discount for a multi-function color printer and scanner from Epson, for a mere 40 euros. That is about the price of ink cartridges for other printers. Count me in! I had the thing delivered to my place the next day.

Without having read any of the documentation I tried to get the printer to work while attached to a Windows PC. Several hundred megs of software were downloaded, installed, configured, and the results were appalling. The printer would not connect half of the time, I managed to print a test page and that was it.

And then I saw the WiFi logo on the box. WiFi? Sure enough, there was also an RJ45 plug on the back. Still armed with my best pioneer spirit, I painfully configured a WiFi connection on the printer itself — on a tiny 2-inch screen — and lo and behold: the printer became immediately available on the local network for everyone’s enjoyment! Seems this time they stuffed the complete CUPS layer directly inside the printer, and it actually worked! Oh wow.

Ok, it does not always work. You still need to delete a re-configure the printer every now and then but it has become a lot less painful than kernel re-compilation or XML editing.

I really can’t complain. Printing now works from pretty much any machine at home without having to install a metric ton of crapware and keeping it updated. The same machine also offers a “Scanning to the cloud” option that sometimes works. It seems every document I scan for myself has to be first sent to China for approval before it can reach my email or my Dropbox account. Just don’t scan stuff when the Chinese guy is having a cigarette pause. As a better option, I put a USB stick into the printer, scan and save onto it, and manually carry the stick back to a computer. And then I lose the USB stick, and it takes me ages to figure out where it is, but that part is only my fault.

I was not so lucky at work. Configuring a printer on a laptop is still as cumbersome as ever. To be fair, I have never seen a printer configuration task use less than three experienced engineers to achieve. Repeat every time the document you want to print is important and on a tight deadline. In many cases I completely gave up configuring a work scanner. Life is too short.

The time is 2016 and we still have not figured out how to print and scan easily in a standard household or office. As a friend of mine recently told me: “If we ever reach the Singularity one day, we’ll just ask the AIs to configure a printer. That should buy us enough time to invent spaceships and leave the planet before they enslave us all.”

See also:

Written by nicolas314

Friday 12 August 2016 at 4:25 pm

Posted in printers, Uncategorized

Tagged with , ,

Easier easy-rsa

leave a comment »

openvpnIf you have ever set up an OpenVPN server, you probably had to fight your way through the certificate generation steps. Something like what is detailed here:

The official OpenVPN guide refers to easy-rsa, which is a royal pain in the butt. Even with the HOWTO in front of me, it takes me ages to set things up and if I ever have to come back later to generate more client certificates, I inevitably end up restarting from scratch because I cannot remember which steps I took and where I stored files.

Does not seem so difficult though. You need to generate a Root CA, and then use it to sign a server certificate (which is stored on your server) and client certificates which you distribute to your clients. I re-implemented the whole thing as a Python script in a couple of hours, tested it with an openvpn instance, and it works quite well. The script can be found here:

It is called two-cent CA because that is exactly what it is. There is no support for security modules like smart cards or HSMs because I do not need them, but since it is based on python-openssl it should not be too hard to make it work with P11 tokens.

Here is an example session where I create the root, a server identity, and two client identities for Alice and Bob.

$ python root
Give a name to your new root authority (default: Root CA)
Name: MyRoot
Which country is it located in? (default: ZZ)
Provide a 2-letter country code like US, FR, UK
Country: ZZ
Which city is it located in? (optional)
What organization is it part of? (default: Home)
Organization: Home
--- generating key pair (2048 bits)
Specify a certificate duration in days (default: 3650)
--- self-signing certificate
--- saving results to root.crt and root.key
$ python server
--- loading root certificate and key
Give a name to your new server (default: openvpn-server)
Name: myopenvpn-server
Which country is it located in? (default: ZZ)
Provide a 2-letter country code like US, FR, UK
Country: ZZ
Which city is it located in? (optional)
--- generating key pair (2048 bits)
Specify a certificate duration in days (default: 3650)
--- signing certificate with root
--- saving results to myopenvpn-server.crt and myopenvpn-server.key
$ python client
--- loading root certificate and key
Give a name to your new client (default: openvpn-client)
Name: Alice
Which country is it located in? (default: ZZ)
Provide a 2-letter country code like US, FR, UK
Country: UK
Which city is it located in? (optional)
City: Cambridge
--- generating key pair (2048 bits)
Specify a certificate duration in days (default: 3650)
--- signing certificate with root
--- saving results to Alice.crt and Alice.key
$ python client
--- loading root certificate and key
Give a name to your new client (default: openvpn-client)
Name: Bob
Which country is it located in? (default: ZZ)
Provide a 2-letter country code like US, FR, UK
Country: US
Which city is it located in? (optional)
City: Boston
--- generating key pair (2048 bits)
Specify a certificate duration in days (default: 3650)
--- signing certificate with root
--- saving results to Bob.crt and Bob.key
& ls    Alice.key  Bob.key    myopenvpn-server.crt  root.crt
Alice.crt  Bob.crt  myopenvpn-server.key  root.key

You want to keep root.crt for what OpenVPN calls the CA certificate. Do not loose root.key, you will need it whenever you will want to issue more client or server certificates. Install the other files as required.

Tested on Linux (Debian, Archlinux) and OSX.


Written by nicolas314

Monday 28 December 2015 at 12:51 am

My next desktop: part 1

leave a comment »


My main desktop at home is a glorious Mac Mini from 2007. This poor machine has seen every possible hardware upgrade allowed by the motherboard and is starting to show its age now, with no support for screen resolutions beyond 1920×1080. There are good 4k monitors out there for about 400 euros and I expect prices to drop a bit soon under the 300 euro threshold, so if I ever want to have the retina experience at home it is time for an upgrade!

Heading straight to the Apple store site is a bit disheartening. A decent Mac Mini configuration would set me off by 1,200 euros and that is just not going to happen. The mini was a revolution when it was released: small form factor, silent, and powerful enough to run everything I needed. Almost a decade later there must be other contenders on the small is beautiful market so there is absolutely no reason a mini-PC should cost so much. What are the alternatives for a silent desktop running on a BIG screen?

27-inch iMac? Forget it. If I am paying 2,500 euros for a computer in 2015 I expect it to be delivered by Madonna dancing in a string, handing me off a glass of champagne. And I want a rainbow-farting poney with wings too.

Windows PC? Forget it. My recent experience with Windows 10 has not been stellar to say the least. My main grief is with the privacy options that keep popping up, reminding me of the Facebook or LinkedIn way of introducing disastrous privacy options that are ticked on by default. The fact that you have to log onto your home computer using a cloud account is just nuts. Leave me out of this please! That, and the fact that you have to dedicate 50% of your computing resources to software updates and anti-virus scans, or the sudden reboots while you are actively using the desktop because Windows decided you need this security update immediately.

Linux desktop? Why not. I had Linux desktops for 15+ years and loved them, but I admit having now quite an investment in OSX software that have no equivalent in the Linux world, unfortunately. Re-training myself with open-source equivalents (when they exist) would need a lot of time I could save by simply staying with OSX.

Is there a way I could run OSX without having to pay the hefty Apple tax? Certainly! It requires building your own machine from scratch but it can be done. These machines are most usually called Hackintosh or Customac. They require a great deal of attention to build and install, and a lot more maintenance than your average OS installation, but if your time is free you can seriously reduce your hardware bill.

With that in mind, I started looking around for simple and reasonable solutions and ended up with a tiny, silent, and remarkably powerful little box that runs OSX Yosemite perfectly well. The complete walkthrough will be described in my next post.

Written by nicolas314

Monday 9 November 2015 at 12:30 pm

Posted in Uncategorized

Meet the Guru

with 3 comments


Tonight I met a guru. Not an expert, a real guru: the kind of spiritual guide who has theories, speaks wonders, and has followers. This all started when a friend of mine invited me over to have a quick chat with this phenomenal genius from Canada who has invented methods that are about to bring a complete revolution to the way we deal with digital data. Data compression to insane ratios, database speedups, multi-dimensional fractal volumes held in a single SMS, you name it. My friend asked for advice about the guy’s theories because he wants to invest money and create a startup.

I was a bit dubious at first, but hey… curiosity took over. I absolutely had to know what the guy was about. We met around a few beers and I asked casually: “so what is it you are doing, exactly?”

Without hesitation, he said: “We have found methods to encode information like tight N-spaces in base 8 around bijective radical algorithms that inject coordinates inside an index that compresses the whole universe in a single integer that can be used to decompose irrational numbers like inverted matrices. You see? Using just one number, N-dimensional spaces can be represented along a bijective access ramp thanks to multi-variate polynomials.”

“Oh wow. Continue?”
He grinned, convinced he tossed enough big words in one sentence to lose me completely. The two disciples around him gently nodded as he went along. He stared right into my eyes as he spoke, never looking for his words, not showing an instant of hesitation.

“According to my method, we re-arrange coefficients in matrices in the most efficient way, heading straight to the core of multi-dimentional data spread over a lattice of chosen binomial functions, up to the power 1,000 or more. These functions are space-filling, they can visit every point in any volume exactly once.”

A pause. I asked: “Interesting. So what are the applications?”

He jumped on his seat: “The whole digital world can now be expressed in real-time!” Still calm, I asked: “give me an example?”

“When you need to identify that a point belongs to a region in a multi-dimensional space, you only need to compute its index along a multi-variate polynomial algorithm that expands the number irregularity into a local singularity to spread out a potential zero.”

Both disciples were still nodding. I was starting to feel uneasy. Among the waves of technical, unrelated words, I could feel he was trying to get somewhere. He was trying to encode data into another representation that has magic powers, but the mysterious polynomial functions were hard to grasp, and the application of this encoding still unclear. I ventured:

“How does this compare to a Fourier transform, for example?”

That one caught him off-balance. Apparently he did not master the vocabulary associated to that field yet, so he just waved the idea away.

“Fourier is bullshit. I am talking about Gödelization of the digital world. You know Gödel, right? He was a genius who encoded the world into numbers!”

“Yes he was, but he only did that to prove a point about reflectivity, not as an efficient encoding. Gödel numbers are only a tool to prove his point. Never heard of the term Gödelisation though. Did you invent it?”

“Nonsense!” he yelled. “Gödelization is helping us create an index that gives you the whole information about anything you want in just one single number!”

“Oh right. So you compress information then?”

“No, no, no”. He looks worried now. “Nothing about compression.”

“But you said earlier…”

“Don’t interrupt me. This is not about compression, this is about efficient algorithms to manage N-dimensional multivariate volumes in NP-space by running in Newtonian arithmetic series as they expand into infinity.”

That went on for another few minutes. As requested, I did not interrupt.  When he seemed finished tossing more words at me, I asked again:

“So what is it you do, exactly?”

At that point he got the message that he was not getting me. His two disciples started moving uncomfortably on their chairs. He talked a bit louder, nailing me with his eyes as he declared his principles like bible verses, dumping more pseudo-scientific sentences into the pot like water in a well.

At some point he said:
“I am working with the greatest worldwide specialists on that topic!  Scientists at the Paris Observatory are using my computations for astronomy!”

There we go. Argument by authority: there are people more intelligent than you who believe me, so you have to believe me.

“That right? As it happens I worked with the Paris observatories for a decade. Who do you work with? Is that in Paris 14 or Meudon?”

Blank stare. Ouch, he did not see that one coming. “I work with…  Jean-Pierre uh…  Letruc.”


“Yes, he is a world famous scientist who computes singularities.”

I almost picked up my smartphone to look the name up but common sense prevailed. I think he would have slapped me for doubting his word.

“Never heard about Letruc but who cares. What do they use it for, in astronomy?”

“Well, you know, don’t you? Computing galaxies and stars and stuff.”

“Computing what?”

He sighed, as if it was obvious. “Computing the movements of multi-dimensional Euclidian forms in the space-time continuum.” Duh.

Another pause for a few seconds. That last one was worth gold. And then he started again for the next ten minutes, bashing every possible kind of notion at me as if hitting me on the head with four-syllable words was meant to convince me. He dumped everything he had: information theory and Shannon’s theorem, Euclides spaces, prime numbers, Newton laws, Fibonacci rules, and Gödel’s theorem, again.

I said: “I am really dumb so explain me again: what can I use your…  algorithms for?”

He jumped on that one: “Imagine you have to sort out character strings in lexicographic order. So A, then B, then C, etc. If you take a whole dictionary it might take years to achieve! There are no algorithms to achieve that efficiently.”

“Beg your pardon, there are quite a few. Lesson 1 in any computer science course. I think you and I read the same books.”

“Don’t interrupt me! I have read 25,000 books and I have them all at home!  You academics think you know everything right? You need to think differently! My mathematics have no relationship whatsoever with anything you might have learned and you are too limited to understand the implication of what I am telling you!”

“Sure. Sorry. Please explain again?”

“So you take the strings in input and you choose a multi-variate polynomial function of rank N that maps digital inputs into a real-time computation to yield a single integer number. Then you sort the list of numbers and you are done. In real-time. And even Mr Oracle out there with his powerful databases cannot do anything about that. Hah!”

Ah… Now we were getting somewhere. You transform a list of character strings into numbers to sort them.
I asked: “This… Gödelization, to use your term, has a cost, no?”

“No! It is instantaneous! Real-time! The greatest scientist with super-computers can never find a better transformation because the polynomials are…”

“Ok. It has no cost. And then you are sorting numbers.”

“Don’t interrupt me! You need to listen! You guys never listen, but you might learn something”. He was now literally barking at me so I asked him to calm down several times, without result.

He started again: “I am working with the greatest minds on this planet on this topic! The guys at INRIA admire my work!”

“So you work with INRIA? You know I did, too? Which office? Nice? Paris?”

That one hit him like a rock. He stuttered: “I… I… I… worked in Paris and gave a talk in Sophia Antipolis a few months ago. But you could not understand anything I said there, you would have to read a very long paper I wrote, 120 pages, which explains everything.”

“Please share the link, I am impatient to read it.”

“You would not understand anyway! People oppose me on the principles that I am trying to do things differently but they are WRONG! They are all WRONG!”

He got so infuriated at that point that one of his disciples left the room while the other decided to take over and explain to me the principles of integer sorting, as if he was talking to a five year old. I tried to interact but was systematically asked to shut up and listen to an endless stream of made-up scientific words, picking notions from mathematics, physics, electronics. The guy stressed every one of his points by quoting famous scientists and laws that made absolutely no sense, like Newton’s law of primes, the well-known Euclides and Peano numbers, or the famous Fibonacci theorem.

“So you take data and transform it into numbers?”


“Apparently I don’t. But you just said that you map strings into numbers.”

“NO! You don’t understand anything. Listen to me…” And then five more minutes of vocal diarrhea meant to shut me up.

After a while I asked:
“Is there any point in me asking questions? Or do you just want to listen to yourself talking?”

That was pure provocation, I admit, but getting yelled at and being told I was too stupid to understand his genius did not help much in making me comfortable. I left the room as he was erupting in anger. His disciple yelled at me while I was going out: “Ha! You do not even understand the concept of bijection, you dumb ass!”

I could not have taken a single more second of that bullshit.  Took me some time to calm down and then I tried to reflect on what I had just witnessed. What is this guy trying to achieve exactly? What is his agenda?

I saw a guy who has mastered a talent to throw scientific-looking words and concepts into sentences, around an almost-believable story, ending up with promises of being rich by selling never-done-before powers over digital data. The fact that he has disciples and tries to recruit more is extremely interesting, though I still cannot figure out what he is gaining there beyond recognition by a few gullible souls. With such a character, latent paranoia is expected to be found: people do not understand him, they would not listen, he is fighting against the establishment, and most probably: other scientists and engineers are conspiring against him because they know he has a truth everybody was dreaming of and nobody could find or understand.

Interesting character. In my life I met quite a few other gurus: a medical shaman who is the only person in the world who knows about the true powers of plants, an artist turned into a religious leader of his own sect who teaches philosophy, psychoanalysis, and black magic in the same session.  There are also the conspiracy guys who know every secret about the NSA, the FBI, the CIA, why Americans never walked on the Moon or destroyed the Twin Towers themselves. These guys scare me to no end. After spending five minutes with them you realize they do not see you or anybody around them for that matter. Other people are just witnesses of the fact that they have some untold truth only known to them, which everybody wants, and nobody would ever believe.

The good thing with having so many voices in your head is that you never feel alone.

Relevant XKCD:

Written by nicolas314

Tuesday 7 July 2015 at 11:50 pm

Posted in Uncategorized