Log in

No account? Create an account

izard's Journal

Recent Entries

You are viewing the most recent 25 entries.

31st May 2029

10:08am: This blog
I'm writing the blog in English because I type twice as fast this way than in Russian (yes I am improving...), and 90% of my friends and friends can read English any way. I answer comments in the same language they are posted.

I am trying not to post anything related to my employer, but if I do so, this expresses only my own views and does not represent an official position of my employer.

When I post about some technical topic which seems non trivial and is related to my employer's product, don't expect it to be inside information. If I post about it, it means that this info is already public. Usually I do not post any personal information or anything that is related to my family.

All photos are mine, and I allow anyone to copy, change, do anything you please with them. I don't post "friends only".

Useful tags are: software , idea , Deutschland, readlog, freediving and trip report

13th October 2019

8:57am: My first computers
1988 - Moldavian make.
1990 - Spectrum'48 clone, assembled at a local avionics factory.
1992 - Spectrum'48 with proper keyboard and monitor, 5'' floppy drive and AY38910-12
1995 - Intel 80286, 1MB RAM, 270MB!!!HDD, DOS 6.22
1996 - 2400b modem upgrade => 2:5066/44.0 - FIDONET!
1997 - AMD K5 100Mhz, 8MB RAM, still 270MB HDD, CDROM, Win95OSR2
Moved to Nizhny Novgorod
1998 - 80486, 4MB RAM, Linux Slackware/1.2 kernel
2001 - Pentium 4, 16MB RAM, Win2k/Linux Slackware 2.2 kernel
2002 - iBook clamshell, MacOS X
Moved to St. Petersburg
2004 - Mac Mini
Now I have many Macs to play with :)

3rd October 2019

8:24pm: US, last impressions.
Oregon: cachiers in the stores have new script: every time I pay for my stuff, they pick one thing from my basket and tell me how cool it is, and how they like using/buying it too. Different stores - food, clothes.

In Europe, we drive on the right side of the road, and swim on the right side of the lane. In UK they drive on the left side, and swim on the left side of the lane. In Oregon, they drive on the right side, but swim on the left side. But in California, they drive and swim on the right side. Go figure!

21st September 2019

8:31pm: Bugs
I just bought a big and expensive programming book at Powell's, from MIT Press, and in one of the first meaningful code sample, in the very beginning I read:

#define PI = 3.1592654

WTF!!! There are 2 bugs in this line, and I paid 80 bucks for the book!

Btw I am staying in Portland until next Sunday, so if you are around plz give me a shout..

16th September 2019

5:21pm: So long, and thanks for all the fish
Starting today, I no longer work at Intel. That were great 16+ years, but now it is time for a change. My new job is even more interesting, but I am not going to post anything about it online. Just one thing: my job title has changed from Application Engineer to S/w Performance Engineer.

6th September 2019

4:10pm: Saffron milkcaps
I know a place not too far from Munich where there are plenty of saffron milk caps. Unfortunately it is ~40 minutes driving, so I just went to a Perlacher forest next to Jacob's kindergarten and picked just a few.

Germans believe that mushrooms in the forest are still radioactive because of Chernobyl's fallout 30+ years ago, but I think by now it should be fine. I don't think there are that many isotopes with half-life of 10s of years.

23rd August 2019

1:06pm: US immigration arithmetics
USCIS publishes a number of L1 visas it grants each year. I was trying to see if "hire American, buy American" affected L1s.

But some numbers do not add up, akin to a puzzle:
"units of less than 10 beneficiaries are masked so as to limit the possibility of the de-anonymization of data. "D" represents data withheld to protect privacy. The letter H replaces the value ... where one could deduce the value of D. "
ACCENTURE LLP is in top 10 L1 visa petitioners.
total - 183
Continuing L1A - 95
Continuing L1B - D
Continuing Blanket L1 - D
Initial L1A - H
Initial L1B - D

I wonder why they needed "H" here, because of Benford's law?

14th August 2019

2:41pm: Burghausen
I drove past Burghausen many times when I went to my Austrian customers, and I never had time to stop.
This weekend we spent several hours there, and it was very nice.

Good food at a central square, longest medieval fortress in the world, very nice outdoor swimming place/lake, interesting museum, short drive from Munich. Highly recommend it!

13th August 2019

9:05pm: От автора "стрелки осциллографа"
CC from my facebook, with top comment:

"в лазере наступает момент, когда все фотоны, сорвавшиеся с орбиты, начинают скапливаться в одной точке"
Эхо Москвы, "Код доступа", 10 августа 2019.

Comment: фотон сначала вращается на орбите с первой космической, а потом, как лазер возбудится, резко набирает вторую космическую и перемещается в точку Лагранжа.

8th August 2019

1:02pm: I suspected it was a CPU error
Every time I suspect I found a CPU erratum, it ends up being something else. This time a compiler bug, again.
GCC 8.2.1, compiles _mm512_*fmaddsub*_pd intrinsics to vfmadd132pd instruction when compiling with -O0.

When compiling with -O1, -O2 or -O3 it compiles to vfmaddsub132pd, as expected. Happy debugging!

29th July 2019

10:17am: Intrinsics and compiler smarts
Recently I was wondering why relatively simple and short SIMD/SSE intrinsics code is ~1.5 slower when compiled by ICC, than when compiled with CLANG.

When one uses intrinsics, it is supposed to be almost assembly, compiler should only do [optimal] register allocations and deal with input and output variables. However, compilers now do much more than that, especially the optimizations they perform on top of intrinsics are often very non-obvious.

In case of the code I examined, ICC produced ~20% faster code for a scalar part, and ~10% faster code for one vector basic block, but ~2x slower for another vector basic block. When combined, these resulted in ~1.5x difference.

It is not the first time I noticed the compiler optimizations significantly alter SIMD intrinsics flow, but before it was always something small, like fusing 2 instructions when a SIMD equivalent exists, etc. In this case it just produced 2x+ instructions! Alas, just changing to -O0 won't make it back to the planned flow, as O0 adds too many intermediates... So if I am certain that my instruction flow is better than compilers, I'll have to do inline asm rather than intrinsics.

13th July 2019

12:47pm: Russian shop
An ad in a Russian store in Munich, in Russian:
"If we catch you shoplifting, we'll ask you to pay us 200 euros in cash and we won't call police".
This is a good deal, one wouldn't risk deportation/troubles with permanent residence.

21st June 2019

9:30am: Big data does not work
Big data, AI.. Look at a screenshot from one of the biggest US job sites:


1st May 2019

7:50pm: Jacob Speaks: theology
We are not speaking about god at home. So everything Jacob knows comes from a kindergarten.

After this easter, he drawn an Empty Tomb, closed by a rock. While the picture quality was very good, I did not understand what it was first. So I asked..

- Это пещера, там умер Gott.
- Gott по-русски бог. Там Иисус в пещере?
- Нет, Jesus это ребенок, который родился на ферме в рождество. А это - Gott, который нам присылает дождь. Вот сейчас солнышко и дождя нет, потому, что бога завалило камнями в этой пещере. Это бог дождя. Мне в садике воспитательница N рассказала.

27th April 2019

3:00pm: Software performance: consultant's perspective.
After ~13 years working full time in software performance consulting role, I think now I have enough statistics about different types of software optimization projects.

~20% of the projects are the most challenging, a customer comes to me because their software is already well optimized, but they found a performance regression on a new platform, or in a new middleware, OS kernel, compiler, etc. There are some common patterns for these projects, but usually they are unique. The fix is usually on system level, CPU u-arch level or combination of two. It is almost never with software/algorithms.

~30% are interesting. The software is reasonably optimized, the team understands current performance and constraints, but there is a regression or unexpected slowdown, or they just need it to run ~20% faster. In these cases couple of simple tricks with system and u-arch optimizations usually work. No need to deeply investigate application business logic either. These projects are my usual trade, not too fancy, but OK. Specialisation pays off. Sometimes I also find something to learn on these projects, but not very often.

Read more...Collapse )
1:26pm: Jacob speaks: lego
I am looking at a very strange but complex building made of lego blocks.
- Яша, это что за странный дворец ты построил?
- Это канализация для коровника, это все под полом, а пол и стены я еще не построил.

25th April 2019

11:01am: Jacob speaks: animal's language
Jacob, 4y10m:
After watching a Yakari cartoon in German:
- Жалко, что на самом деле звери не говорят. Я бы очень хотел, чтобы они умели говорить. Пусть бы они говорили по-немецки!
- А почему именно по-немецки?
- Здесь в Германии все говорят по-немецки.
- ОК, а в других странах, на каком языке зверям надо говорить, в России, например?
- Тоже по-немецки!
- Почему, в России же говорят по-русски!
- А пусть звери во всех странах говорят по-немецки! Такой общий язык для зверей пусть будет! Например, в России же бабушка Таня умеет говорить по-немецки, и если кому-то надо поговорить с животным, пусть зовет бабушку Таню. Она будет переводить, и ей будет платить деньги. И в других странах это будет такая работа для тех кто знает немецкий язык. И люди будут больше учить немецкий язык везде!

31st March 2019

1:19pm: Jacob Speaks: wealth
Мама: Папа, хватит читать, отвлекись и помоги, пожалуйста!
(папа тупит в ленту livejournal, но так как картинки выключены в браузере, Яша видит только текст)
Яша: Нет, пусть папа читает! Он станет умнее и это поможет ему разбогатеть!
Папа: А что, сейчас папа бедный?
Яша: Нет, но не очень богатый.
Папа: Хорошо, а зачем надо стать очень богатым? Ты что-то хочешь купить?
Яша: Хочу купить орешки.
Папа: Пожалуйста, покупай орешков сколько хочешь.
Яша: А я хочу купить очень много - целый грузовик!
Папа: А зачем тебе грузовик орешков, мы же столько не съедим?
Яша: А я продам дороже, чем купил! В маленькие бумажные пакетики положу, так будет дороже. А деньги вам с мамой отдам.

10th March 2019

12:27pm: Jacob Speaks: AI and jobs
На конечной остановке автобуса
- Яша, а наш автобус сейчас может поехать без водителя?
- Конечно нет! Кто-то должен рулить и нажимать педали!
- А когда ты будешь большой, автобус будет ездить без водителя..
- А кто будет им управлять?
- Компьютер, искусственный интеллект.
- Если компьютер сможет делать работу водителя, но он сможет делать работу кого угодно, тебя, например! И тогда люди больше будут проводить время со своими детьми!
- Но как тогда люди будут зарабатывать деньги, если работать будет компьютер?
- Папа, но это же просто - например, водитель купит компьютер, который будет водить автобус вместо него, а деньги будет получать сам, ведь компьютеру деньги не нужны!

28th February 2019

9:39pm: odin-moy-den
My new post.
At this time, in EWC everything was about either autonomous driving, or machine learning. Other than that - business as usual. RTOSes are still fragmented, and so are fieldbuses. Besides usual big booths from Windriver, Greenhills, Lauterbach and such, this time Microsoft Azure and Amazon AWS had big booths too. IOT to cloud, fog and so forth.

21st February 2019

9:37am: 0.5x programmer and Amdahl's law.
I just finished coding a simple parser in Clojure. (~250 LOC including tests). It took me about 40 hours. I think an average programmer would have made it in 30 hours, and a 10x programmer, like those who can code on a whiteboard at google interview would have made it in just 3 hours (because they are 10x programmers).

However, if I factor in all the time I spent while working on it, it will be 4 work weeks - 160 hours. And I'll need 200 more hours. That includes gathering requirements, attending meetings, getting build and test systems right, working on other non coding tasks like running code through scanners, writing documentation and fixing bugs unrelated to this code.

If I think of a 10x programmer as a 10x parallel machine of coding, I can apply Amdahl's law. 10x programmer does not make 1h meeting in 6 minutes, so everything but coding is serial.

So while 10x programmer is ~13x more productive than me while coding, overall the difference on the example above is just 11%. So for my job (and many others) hiring a 10x programmer is an overkill.

But if I extend my reasoning one step further, then to widen a productivity gap back to 10x like levels we need either different work environment for 10x coder that minimizes disturbances, and/or give each 10x-er a simple programmer aide who would do all the mundane tasks. However, communicating with the aide will still be "serial" :)

4th February 2019

8:18pm: Jacob Speaks: real estate
Jacob(4y7m) overheared a conversation about a studio apartment.
- Там даже нет кухни и другой комнаты?
- Да.
- Но если эту квартиру купит женщина, а потом она родит ребенка, то у ребенка не будет своей комнаты. Ему будет плохо и грустно, он расстроится. Когда я вырасту, я перестрою все-все квартиры-студии, добавлю им одну комнату.

3rd February 2019

10:41am: Trip report: Wroclaw
Wroclaw is a city of contrasts :) There are three rings: in the center it demonstrates old european architecture, one of the best in its kind, then there is a ring that looks like Russia (much like хрущевка next to a cathederal), and then there is a ring with modern houses.

My customer in Wroclaw is hiring btw, looking to hire several ppl. C/C++, Linux, SIMD, digital signal processing - please PM me for details/contacts.

Another observation: unlike Munich and Germany, there is different demographics in entry level customer facing jobs: receptionists, cashiers, etc. In Wroclaw I only seen beautiful young ladies there, while in Munich it is all mixed. I hope this is a sign of better social mobility in a growing economy, where people can move up, unlike in Munich a catchier in supermarket often works forever at this job.. I can also invent a not so favourable explanation, but I won't put it here, leaving it as an exercise for a reader :)

1st February 2019

6:14pm: Another good russian hard sci-fi novel
here. Thanks [profile] blau_kraehe for the hint. By the way, the same author also wrote a very good fantasy trilogy ("
Лестница из терновника").

27th January 2019

7:14pm: A very nice programming book
CTFP is a great book. I bought a hard cover and now I am reading it for the second time.

I have to, because first time I did not get it. First it reads easily as a gentle intro to monads, promising that monads are easy after you know the right terminology, then (almost in the end) it touches monads quickly, and then.. Please see the pic above. I did not understand anything from the last few chapters.
Powered by LiveJournal.com