?

Log in

No account? Create an account
Рождество и бездомные в центре Сан-Хосе - самого большого города в Silicon Valley - Юрий Панчул [entries|archive|friends|userinfo]
Money can buy bandwidth. Latency requires bribing God.

[ website | My Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Рождество и бездомные в центре Сан-Хосе - самого большого города в Silicon Valley [Dec. 29th, 2015|11:31 pm]
Yuri Panchul
Рождество в центре Сан-Хосе - самого большого города в Silicon Valley:




Рождественская экспозиция призывает меньше мыться в душе для экономии воды, использовать собственные авоськи в магазинах и лампочки LED:




Бездомные - там же:



Как эти люди стали бездомными?

Они забывали делать free для каждого malloc в языке программирования Си
12(17.6%)
Они допускали гонки в последовательностных схемах в Verilog-е из-за неправильного использования блокирующих присваиваний
5(7.4%)
Они отрицали что весь Запад поддерживает свободу на Украине и их работодатели прислушались к бдительным украинцам
9(13.2%)
Они допустили перерасход воды во время мытья в душе, не использовали LED-лампочки и не отказались от одноразовых пакетов
11(16.2%)
Они кощунственно не поддерживали всеобщее умиление Стивом Джобсом, Марком Цукербергом и Элоном Маском
15(22.1%)
Я не знаю, что натворили эти джентлемены, но им явно помогли бы ватники
13(19.1%)
Из-за бугра плюете?
3(4.4%)
LinkReply

Comments:
[User Picture]From: panchul
2015-12-30 03:41 pm (UTC)
Вы додумываете/фантазируете семантику close и kill, она никак не специфицирована в данном коде. Поставьте вместь close и kill буквы abc и xyz. И перепишите.
(Reply) (Parent) (Thread)
[User Picture]From: maxdz
2015-12-30 04:12 pm (UTC)
Normally goto will be used to avoid nesting like here:

...
{
  if (!initInet())
    goto label1;

  if (!openSocket())
    goto label2;

  if (!writeSocket())
    goto label2;

  if (!readSocket())
    goto label2;

  return OK;

label2:
  closeSocket();

label1:
  closeInet();
  return error;
}


But there is no necessity in goto's here - it can be avoided with different methods (using nesting too).

Edited at 2015-12-30 04:15 pm (UTC)
(Reply) (Parent) (Thread)
[User Picture]From: panchul
2015-12-30 06:43 pm (UTC)
Иногда можно ввести дополнительную функцию, иногда делать break, иногда закрывать что-то в деструкторе, но иногда читабельнее с goto. Поэтому я за то, чтобы эту опцию в арсенале иметь, а не избегать ее по квази-религиозным причинам.

И коню понятно, что в вашем упрощенном примере (все на одном уровне) можно сделать break и одну дополнительную переменную. Это ханжество (скрытое goto), а вот вы перепешите мой исходный пример.
(Reply) (Parent) (Thread)