Size: a a a

2019 August 21
oleg_log
Пожалуй уточню.

В расте нет UB (undefined behaviour) по такой же причине. Я говорил про отсутствие явного return:

fn omg_is_that_ub_no_its_not() -> bool {
   for i in 0..10 {
       assert!(i < 10);
   }
   true         // <- disgusting
}


Считаю это такой же бесполезной(?) фичей как и bare return в го (именновать результаты это круто, но лучше явно сказать что возвращаешь)

func split(sum int) (x, y int) {
 x = sum * 4 / 9
 y = sum - x
 return        // <- disgusting
}
источник
oleg_log
Хорошая статья к слову (правда читал ориг). Стоит заглянуть.
источник
oleg_log
источник
oleg_log
Наткнулся на 1 задачку на LeetCode (я странно отдыхаю после работы, но не об этом).

Решение в лоб - изи. Даже спойлерить нет смысла.

Решение оптимальнее чууть сложнее. Нужно решить общую задачу для медианы на потоке данных. А потом допилить окошко.

Но есть и другое оптимальное, причем будет даже проще, ведь вся сложность уйдет в одну непопулярную структуру данных. Хитрость заключается в том, что её не надо писать с 0.

И вот от этого мне обидно, хотя все честно. Достаточно на собесе сказать: ну тут мы пихаем данные в дс-нейм и..все. Эх..

https://leetcode.com/problems/sliding-window-median/
источник
oleg_log
И вот что с этим кодом не так? Он компилируется, если что.

Утром(?) скину ответ, хотите рискнуть - напишите вашу идею @olegkovalov (вариант: "лол это жава" не считается)

(за скрин спасибо Павлу из чата)
источник
oleg_log
🌋We’re very happy to introduce the Google Cloud Run Button!

Embed this link and anyone can deploy your public git repos to Cloud Run as a serverless app. (Works best with Dockerfiles, but also with buildpacks.)

https://cloud.google.com/blog/products/serverless/introducing-cloud-run-button-click-to-deploy-your-git-repos-to-google-cloud

Твит: https://twitter.com/ahmetb/status/1164214096033529856?s=21
источник
2019 August 22
oleg_log
Вышел Go 1.13 RC1 https://tip.golang.org/doc/go1.13
источник
oleg_log
Ахахахха, я не один такой (не палимся)

С одной стороны такой способ скидывания работы отлично даёт возможность не чахнуть, с другой стороны дает больше тасок на релакс. Главное не перебрать с собранным количеством. Советую еще с грустью говорить: эх, жаль не успеваю сейчас, придётся таску делать..

https://t.me/your_soft_skillzz/91

(Кстати рекомендую канал, хорошие вещи порой обсуждаются)
Telegram
Мягкие Sкилы
Как поступать с душными комментарии во время код-ревью?

Часто бывает что инженер, проверяющий твой код, оставляет какие-то бестолковые комментарии. Иногда они даже верны, но смещают фокус с основной задачи.

Раньше я вздыхал, и исправлял все замечания, что конечно замедляло время до закрытия задачи, и вообще бесило страшно.

Став старше, я пытался вступать в спор, рассказывая, что такие комментарии отнимают уйму времени, размазывают фокус и конечно же вносят больше проблем (редко кто тщательно тестирует код после внесения таких правок). Опять же такие споры затягивали ревью и изрядно трепали нервы.

Сейчас на многие замечания, если они не относятся к решению текущей задачи, я создаю тикеты в джире.

Хорошее замечание, вот я создал тикет, чтобы не потерялось, обязательно поправим.

* Во-первых это обезоруживает комментатора: его замечания учтены, и вроде как неудобно заставлять тебя включать в PR другую задачу.
* Во-вторых, есть возможность привлечь команду к оценке важности этих изменений (когда тикет будут…
источник
oleg_log
today i learned that Python rounds `float` values by converting them to a string with snprintf and then back via strtod, and now i'm sad.

Твит: https://twitter.com/whitequark/status/1164395585056604160?s=21
источник
oleg_log
Олег писал про малварь в rest-client либе ruby. История получила продолжение https://www.zdnet.com/article/backdoor-code-found-in-11-ruby-libraries/
источник
oleg_log
источник
oleg_log
Раз уж я заваливаю вас сообщениями, скажу еще одно #неайтишное

У нас несколько офисов в Польше и между офисами передаются разные бумажные документы (справки, отчеты, тд, бюрократия в общем).

И вот кто-то на волне "поборимся за планету" решил, что передавать доки в многоразовых картонных конвертах поможет что-то изменить.

А вот выключать кондиционер на ночь, не летать толпами на самолетах, НЕ КАТАТЬ РАЗДУТЫЕ ЖВМ-СЕРВИСЫ В ПРОДЕ НА ВИРТУАЛКАХ почему-то никому в голову не пришла.

Все таки это айтишный пост, ведь все по словам дедушки Кнута, эх..
источник
oleg_log
UPD: слова Вадима(спасибо ему):
никто ничего не "решил" конечно, просто Еврокомиссия дает гранты за "гринстайл" офисы, куда входят минимизация бумажной волокиты, раздельный сбор мусора и прочая борьба за природу без ущерба комфорту начальственных задниц

UPD: @sysadmin_tools PrivatBank PAPERLESS
(возможно у некоторых без впн не откроется, я хз)
https://privatbank.ua/business/paperless
источник
oleg_log
Вчера я про неявные ретурны упоминал, сегодня речь чуть про другое.

Early return or goto hell

все же надо расчехлить бложек на своем сайте и постить туда, приношу извинения, но сейчас в телеграфе:
https://telegra.ph/Multiple-return-or-goto-hell-08-22

(внезапно название в ссылке не соответствует посту, но телеграф слишком гибок в редактировании поста)
источник
oleg_log
И добавлю уже тут. Отличный тред про рефакторинг кода, если что-то подобное знаете-помните, подкиньте мне в лс @olegkovalov

https://softwareengineering.stackexchange.com/questions/118703/where-did-the-notion-of-one-return-only-come-from/118717
источник
oleg_log
Ответ для жаждущих:
класс public, а все методы-слушатели — package-private.

Есть вариант, что там был интерфейс, но порефакторили в абстрактный класс. А жава не новая и default-ов в интерфейсе добавить нельзя.

Самое веселое: есть дока, есть тасочка на фикс, есть фикс, а релиза версии нет))))))
https://commons.apache.org/proper/commons-io/javadocs/api-release/org/apache/commons/io/input/ObservableInputStream.Observer.html

https://issues.apache.org/jira/browse/IO-582?jql=project%20%3D%20IO%20AND%20text%20~%20%22Observable%22%20ORDER%20BY%20key%20DESC

https://commons.apache.org/proper/commons-io/download_io.cgi
источник
oleg_log
Уязвимость старая, но идея еще жива. Просто оптимизирующий компилятор может сделать больше, чем от него просят. Хотя и справедливо...

https://www.redhat.com/en/blog/security-flaws-caused-compiler-optimizations
источник
oleg_log
А еще я узнал о такой вещи сегодня:

#pragma GCC push_options
#pragma GCC optimize ("O3")

/* Code that needs optimizing */

#pragma GCC pop_options

Но в статье куча других вещей, полезно, однако.
https://interrupt.memfault.com/blog/code-size-optimization-gcc-flags
источник
oleg_log
В блоге #go вышел новый пост про миграцию на модули:

ч1 и ч2 (март и август соотв)
https://blog.golang.org/using-go-modules
https://blog.golang.org/migrating-to-go-modules
источник
2019 August 23
oleg_log
О, спринг-фреймворк ушел за 2.7Б:

VMware acquires Carbon Black for $2.1B and Pivotal for $2.7 billion.

https://techcrunch.com/2019/08/22/vmware-acquires-carbon-black-for-2-1b-and-pivotal-for-2-7-billion/
источник