oleg_log
Стреляем по ногам часть хз какая. Кстати эта одна из причин, почему я нелюблю неявные return (да, раст, я про тебя) Тред(там коменты про UB и когда это работает и нет): https://twitter.com/zeuxcg/status/1163629796879790080?s=21
Пожалуй уточню.
В расте нет UB (undefined behaviour) по такой же причине. Я говорил про отсутствие явного return:
Считаю это такой же бесполезной(?) фичей как и bare return в го (именновать результаты это круто, но лучше явно сказать что возвращаешь)
В расте нет 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
}Наткнулся на 1 задачку на LeetCode (я странно отдыхаю после работы, но не об этом).
Решение в лоб - изи. Даже спойлерить нет смысла.
Решение оптимальнее чууть сложнее. Нужно решить общую задачу для медианы на потоке данных. А потом допилить окошко.
Но есть и другое оптимальное, причем будет даже проще, ведь вся сложность уйдет в одну непопулярную структуру данных. Хитрость заключается в том, что её не надо писать с 0.
И вот от этого мне обидно, хотя все честно. Достаточно на собесе сказать: ну тут мы пихаем данные в дс-нейм и..все. Эх..
https://leetcode.com/problems/sliding-window-median/
Решение в лоб - изи. Даже спойлерить нет смысла.
Решение оптимальнее чууть сложнее. Нужно решить общую задачу для медианы на потоке данных. А потом допилить окошко.
Но есть и другое оптимальное, причем будет даже проще, ведь вся сложность уйдет в одну непопулярную структуру данных. Хитрость заключается в том, что её не надо писать с 0.
И вот от этого мне обидно, хотя все честно. Достаточно на собесе сказать: ну тут мы пихаем данные в дс-нейм и..все. Эх..
https://leetcode.com/problems/sliding-window-median/
LeetCode
Sliding Window Median - LeetCode
Can you solve this real interview question? Sliding Window Median - The median is the middle value in an ordered integer list. If the size of the list is even, there is no middle value. So the median is the mean of the two middle values.
* For examples…
* For examples…
И вот что с этим кодом не так? Он компилируется, если что.
Утром(?) скину ответ, хотите рискнуть - напишите вашу идею @olegkovalov (вариант: "лол это жава" не считается)
(за скрин спасибо Павлу из чата)
Утром(?) скину ответ, хотите рискнуть - напишите вашу идею @olegkovalov (вариант: "лол это жава" не считается)
(за скрин спасибо Павлу из чата)
🌋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
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
Google Cloud Blog
Introducing Cloud Run Button: Click-to-deploy your git repos to Google Cloud | Google Cloud Blog
Adding the Cloud Run button to your github source code repositories lets anyone deploy their application to Google Cloud.
Forwarded from ☕️ Мерлин заваривает τσάι 🐌 (Мерль🛠)
Вышел Go 1.13 RC1 https://tip.golang.org/doc/go1.13
Ахахахха, я не один такой (не палимся)
С одной стороны такой способ скидывания работы отлично даёт возможность не чахнуть, с другой стороны дает больше тасок на релакс. Главное не перебрать с собранным количеством. Советую еще с грустью говорить: эх, жаль не успеваю сейчас, придётся таску делать..
https://xn--r1a.website/your_soft_skillzz/91
(Кстати рекомендую канал, хорошие вещи порой обсуждаются)
С одной стороны такой способ скидывания работы отлично даёт возможность не чахнуть, с другой стороны дает больше тасок на релакс. Главное не перебрать с собранным количеством. Советую еще с грустью говорить: эх, жаль не успеваю сейчас, придётся таску делать..
https://xn--r1a.website/your_soft_skillzz/91
(Кстати рекомендую канал, хорошие вещи порой обсуждаются)
Telegram
Мягкие Sкилы
Как поступать с душными комментарии во время код-ревью?
Часто бывает что инженер, проверяющий твой код, оставляет какие-то бестолковые комментарии. Иногда они даже верны, но смещают фокус с основной задачи.
Раньше я вздыхал, и исправлял все замечания,…
Часто бывает что инженер, проверяющий твой код, оставляет какие-то бестолковые комментарии. Иногда они даже верны, но смещают фокус с основной задачи.
Раньше я вздыхал, и исправлял все замечания,…
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
Твит: https://twitter.com/whitequark/status/1164395585056604160?s=21
Forwarded from #corpix
Олег писал про малварь в rest-client либе ruby. История получила продолжение https://www.zdnet.com/article/backdoor-code-found-in-11-ruby-libraries/
Telegram
oleg_log
Хм, а в rest-client для руби походу малварю засунули, в 1.6.13
latest version evaluate remote code from pastebin.com and sends information to mironanoru.zzz.com.ua
https://github.com/rest-client/rest-client/issues/713#issuecomment-522965521
latest version evaluate remote code from pastebin.com and sends information to mironanoru.zzz.com.ua
https://github.com/rest-client/rest-client/issues/713#issuecomment-522965521
#corpix
Олег писал про малварь в rest-client либе ruby. История получила продолжение https://www.zdnet.com/article/backdoor-code-found-in-11-ruby-libraries/
This media is not supported in your browser
VIEW IN TELEGRAM
Раз уж я заваливаю вас сообщениями, скажу еще одно #неайтишное
У нас несколько офисов в Польше и между офисами передаются разные бумажные документы (справки, отчеты, тд, бюрократия в общем).
И вот кто-то на волне "поборимся за планету" решил, что передавать доки в многоразовых картонных конвертах поможет что-то изменить.
А вот выключать кондиционер на ночь, не летать толпами на самолетах, НЕ КАТАТЬ РАЗДУТЫЕ ЖВМ-СЕРВИСЫ В ПРОДЕ НА ВИРТУАЛКАХ почему-то никому в голову не пришла.
Все таки это айтишный пост, ведь все по словам дедушки Кнута, эх..
У нас несколько офисов в Польше и между офисами передаются разные бумажные документы (справки, отчеты, тд, бюрократия в общем).
И вот кто-то на волне "поборимся за планету" решил, что передавать доки в многоразовых картонных конвертах поможет что-то изменить.
А вот выключать кондиционер на ночь, не летать толпами на самолетах, НЕ КАТАТЬ РАЗДУТЫЕ ЖВМ-СЕРВИСЫ В ПРОДЕ НА ВИРТУАЛКАХ почему-то никому в голову не пришла.
Все таки это айтишный пост, ведь все по словам дедушки Кнута, эх..
oleg_log
Раз уж я заваливаю вас сообщениями, скажу еще одно #неайтишное У нас несколько офисов в Польше и между офисами передаются разные бумажные документы (справки, отчеты, тд, бюрократия в общем). И вот кто-то на волне "поборимся за планету" решил, что передавать…
UPD: слова Вадима(спасибо ему):
никто ничего не "решил" конечно, просто Еврокомиссия дает гранты за "гринстайл" офисы, куда входят минимизация бумажной волокиты, раздельный сбор мусора и прочая борьба за природу без ущерба комфорту начальственных задниц
UPD: @sysadmin_tools PrivatBank PAPERLESS
(возможно у некоторых без впн не откроется, я хз)
https://privatbank.ua/business/paperless
никто ничего не "решил" конечно, просто Еврокомиссия дает гранты за "гринстайл" офисы, куда входят минимизация бумажной волокиты, раздельный сбор мусора и прочая борьба за природу без ущерба комфорту начальственных задниц
UPD: @sysadmin_tools PrivatBank PAPERLESS
(возможно у некоторых без впн не откроется, я хз)
https://privatbank.ua/business/paperless
privatbank.ua
Сервіс з обміну документів Paperless
За допомогою сервісу можна ставити електронно-цифрові підписи і зберігати свої договори, акти та інші документи в електронній, а не паперовій формі.
Вчера я про неявные ретурны упоминал, сегодня речь чуть про другое.
Early return or goto hell
все же надо расчехлить бложек на своем сайте и постить туда, приношу извинения, но сейчас в телеграфе:
https://telegra.ph/Multiple-return-or-goto-hell-08-22
(внезапно название в ссылке не соответствует посту, но телеграф слишком гибок в редактировании поста)
Early return or goto hell
все же надо расчехлить бложек на своем сайте и постить туда, приношу извинения, но сейчас в телеграфе:
https://telegra.ph/Multiple-return-or-goto-hell-08-22
(внезапно название в ссылке не соответствует посту, но телеграф слишком гибок в редактировании поста)
Telegraph
Early return or goto hell
Хорошая статья про рефакторинг и как уйти от множественных возвратов из функции. Другими словами early return everything (дада, и тут я приклею го) Небольшой рефакторинг небольшой функции, но с отличным доводом, как все становится проще. TLDR: меньше вложенность…
oleg_log
Вчера я про неявные ретурны упоминал, сегодня речь чуть про другое. Early return or goto hell все же надо расчехлить бложек на своем сайте и постить туда, приношу извинения, но сейчас в телеграфе: https://telegra.ph/Multiple-return-or-goto-hell-08-22 (внезапно…
И добавлю уже тут. Отличный тред про рефакторинг кода, если что-то подобное знаете-помните, подкиньте мне в лс @olegkovalov
https://softwareengineering.stackexchange.com/questions/118703/where-did-the-notion-of-one-return-only-come-from/118717
https://softwareengineering.stackexchange.com/questions/118703/where-did-the-notion-of-one-return-only-come-from/118717
Software Engineering Stack Exchange
Where did the notion of "one return only" come from?
I often talk to programmers who say "Don't put multiple return statements in the same method." When I ask them to tell me the reasons why, all I get is "The coding standard says so." or "It's conf...
oleg_log
И вот что с этим кодом не так? Он компилируется, если что. Утром(?) скину ответ, хотите рискнуть - напишите вашу идею @olegkovalov (вариант: "лол это жава" не считается) (за скрин спасибо Павлу из чата)
Ответ для жаждущих:
класс 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
класс 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
Уязвимость старая, но идея еще жива. Просто оптимизирующий компилятор может сделать больше, чем от него просят. Хотя и справедливо...
https://www.redhat.com/en/blog/security-flaws-caused-compiler-optimizations
https://www.redhat.com/en/blog/security-flaws-caused-compiler-optimizations
Redhat
Security flaws caused by compiler optimizations
An optimizing compiler is one that tries to maximize some attribute(s) of an executable program at the expense of other attribute(s). Usually the goal is to improve performance or code size at the expense of compiler time and the possibility to debug the…
oleg_log
Уязвимость старая, но идея еще жива. Просто оптимизирующий компилятор может сделать больше, чем от него просят. Хотя и справедливо... https://www.redhat.com/en/blog/security-flaws-caused-compiler-optimizations
А еще я узнал о такой вещи сегодня:
Но в статье куча других вещей, полезно, однако.
https://interrupt.memfault.com/blog/code-size-optimization-gcc-flags
#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
Interrupt
Code Size Optimization: GCC Compiler Flags
A walk through of GCC configuration options and flags to optimize firmware code size
В блоге #go вышел новый пост про миграцию на модули:
ч1 и ч2 (март и август соотв)
https://blog.golang.org/using-go-modules
https://blog.golang.org/migrating-to-go-modules
ч1 и ч2 (март и август соотв)
https://blog.golang.org/using-go-modules
https://blog.golang.org/migrating-to-go-modules
О, спринг-фреймворк ушел за 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/
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/
TechCrunch
VMware acquires Carbon Black for $2.1B and Pivotal for $2.7 billion
VMware today announced that it is acquiring Carbon Black, a publicly traded security company that focuses on securing modern cloud-native workloads. The price of the acquisition is about $2.1 billion.
Forwarded from Литий и стенания
A colleague had setup some machines to align configurations among each other, via a script (of course). This script has grown over and over, and now has parameters, options and configurations. For short: it's a big mess. Quite logic and readable actually (the guy was smart), assuming you have time and patience to go trough it.
This guy starts the configuration of some new servers then leaves in the middle. "Leaves" as in "leaves the company entirely". So the script does not work, and erases configurations instead. Luckly, the erasing happens after a daily backup.
So I had to fix this... But i was in the middle of 1400 other things, and the quickest way was to add another script to fix the mess created with a scrtipt with another script. So there came to be another script that restores the backups and aligns it.
So there's a big customer, an important company on a national scale, whose machines erase each other's configurations every day, and then the same machines restore each other every day. All within a daily maintenance window.
That thing has been working for a suprising number of months now.
I really don't want to touch it ever again
This guy starts the configuration of some new servers then leaves in the middle. "Leaves" as in "leaves the company entirely". So the script does not work, and erases configurations instead. Luckly, the erasing happens after a daily backup.
So I had to fix this... But i was in the middle of 1400 other things, and the quickest way was to add another script to fix the mess created with a scrtipt with another script. So there came to be another script that restores the backups and aligns it.
So there's a big customer, an important company on a national scale, whose machines erase each other's configurations every day, and then the same machines restore each other every day. All within a daily maintenance window.
That thing has been working for a suprising number of months now.
I really don't want to touch it ever again