Sea++

sea_plus_plus Нравится 0 ВП

Interesting materials from C/C++, Python, Go, Linux world and more by @sabbakumov | Интересные материалы из мира C/C++, Python, Go, Linux и не только от @sabbakumov
Zen: https://zen.yandex.ru/id/5b3bb96ef03ecf00a86ce5b1
Гео и язык канала
Россия, Русский
Категория
Технологии


Написать автору
Гео канала
Россия
Язык канала
Русский
Категория
Технологии
Добавлен в индекс
28.10.2017 23:49
Последнее обновление
20.11.2018 21:33
Telegram Analytics
Самые свежие новости сервиса TGStat. Подписаться →
Searchee Bot
Каталог 270k+ Telegram-каналов с удобным поиском в боте.
@TGStat_Bot
Бот для получения статистики каналов не выходя из Telegram
1 096
подписчиков
~0
охват 1 публикации
~46
дневной охват
N/A
постов в день
N/A
ERR %
1.19
индекс цитирования
Репосты и упоминания канала
48 упоминаний канала
3 упоминаний публикаций
0 репостов
@canalestelegram
The After Times
Записки админа
IT Broadcast
Jin Kolesnikov's Reposts
Microsoft Developer Russia
DX space
devdigest // net core
ITpro News & Reviews
@canalestelegram
Technologic
mustreat
@canalestelegram
@canalestelegram
@canalestelegram
Unreal Engine
Microsoft Developer Russia
Microsoft Developer Russia
Microsoft Developer Russia
Neuro Brain
Crosser Live
Microsoft Developer Russia
IT Broadcast
ITpro News & Reviews
Technologic
devdigest // net core
IOT COMMUNITY
Новые каналы
IT Broadcast
The After Times
linkmeup
ITpro News & Reviews
…и в продакшн
L'homme qui pleure
DX space
Technologic
Technologic
Russian Channels
Каталог Каналов TMN
Каналы, которые цитирует @sea_plus_plus
devdigest // net core
Записки админа
Jin Kolesnikov's Reposts
The After Times
IT Broadcast
Microsoft Developer Russia
Technologic
DX space
ITpro News & Reviews
mustreat
Unreal Engine
Microsoft Developer Russia
devdigest // net core
IT Broadcast
IOT COMMUNITY
ITpro News & Reviews
Technologic
Microsoft Developer Russia
Technologic
ЗаТелеком
ITpro News & Reviews
L'homme qui pleure
The After Times
IT Broadcast
Robotics Channel
linkmeup
Technologic
Последние публикации
Удалённые
С упоминаниями
Репосты
Sea++ 17 Oct, 18:00
Мечтаешь стать хакером, но вузы такому не учат?

Пройди бесплатно 5-дневный интенсив, напиши свой первый вирус на самом востребованном языке Java! А еще у нас есть куча призов для участников, главный из которых – сертификат на 30 000 рублей и бюджетное поступление на курс по Java-программированию с последующей стажировкой и трудоустройством.

Дерзай! 👉 https://goo.gl/dszdS1
Sea++ 15 Oct, 09:54
RapidJSON

English version: https://telegra.ph/RapidJSON-10-15

Если вам в своих программах на C++ нужна библиотека для работы с JSON, рекомендую попробовать RapidJSON: https://github.com/Tencent/rapidjson

Эта header-only библиотека, пожалуй, одна из самых быстрых библиотек для сериализации/десериализации JSON.

Поддерживает SAX и DOM парсинг, SSE, Unicode и in-place парсинг. Лицензия MIT.
Sea++ 26 Sep, 18:00
​​Зачем тратить время на обработку строк, анализ метрик и формирования всего в единый отчет?

В век нейросетей пора прекратить вручную перебирать тысячи ячеек в Excel и копировать формулы. Пройди курс «Python для автоматизации аналитики» и узнай все инструменты для автоматизации процессов, чтобы делать работу в считанные минуты.

Первым 20 — скидка 25%
Присоединяйся 👉 https://goo.gl/9WbwxP
Sea++ 26 Sep, 14:41
Технология Hibernate в Яндекс.Браузере

English version: https://telegra.ph/Hibernate-Technology-in-YandexBrowser-09-26

Было ли у вас такое, что вы работаете в браузере, открываете кучу вкладок, ваш компьютер начинает тормозить, при переключении между вкладками вы видите, что страницы перезагружаются? Многие согласятся, что Chromium-based браузеры страдают этим.

Но позвольте представить вашему вниманию доклад от одной из наших групп по разработке Яндекс.Браузера, а точнее группы разработки рендеринг-движка: https://habr.com/company/yandex/blog/423507/

Ребята создали технологию Hibernate, которая при нехватке памяти, выгружает неиспользуемые веб-страницы на диск в зашифрованном виде. Причем полностью сохраняется состояние Blink и V8!
На самом деле, они написали Clang-плагин, который парсит исходники V8 и Blink и генерирует код сериализации и десериализации.

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

Более подробно можно прочитать в статье.
Sea++ 13 Sep, 12:01
​​Хотите стать профессиональным аналитиком и научиться анализировать данные?

У Skillfactory есть курс “Python для анализа данных”.
Преподаватель курса: Программист-аналитик Яндекс.Маркета Константин Башевой.

Вы научитесь:

1. Уверенно использовать Python и Pandas для боевых задач аналитики
2. Объединять данные из разных источников, работать с большими файлами (30 Гб), проектировать системы сквозной аналитики для реальных проектов
3. Парсить веб-страницы, работать с открытыми API, подробно изучите работу с API Яндекса и Google
4. Автоматически обновлять отчеты. Сделаете Telegram бота, который будет следить за работоспособностью системы и сообщать о проблемах обновления данных.
5. Пройдете финальный экзамен и получите диплом.

Получить полную программу курса можно по ссылке → https://bit.ly/2xbHrzq
Sea++ 13 Sep, 10:56
Cracking the Coding Interview

English version: https://telegra.ph/Cracking-the-Coding-Interview-09-13

Если вы задумываетесь о прохождении собеседования в такие компании как Yandex, Facebook, Google, Apple, Microsoft, Amazon и другие, где вам обязательно будут давать задачки на алгоритмы и структуры данных, то не поленитесь и подготовьтесь как следует.

Начать лучше всего, на мой взгляд, с замечательной книжки от бывшей разработчицы Google Гейл Лакманн Макдауэлл (Gayle Laakmann McDowell) Cracking the Coding Interview http://www.crackingthecodinginterview.com
Книга пережила уже 6 изданий и является классикой для подготовки к собеседованиям.

Далее от себя очень сильно рекомендую пройтись по не менее знаменитой The Algorithm Design Manual от Стивена Скиены (Steven Skiena) https://www.springer.com/gb/book/9781848000698

Читать Кормена при подготовке, конечно, можно, но там все написано слишком академическим языком.
Sea++ 10 Sep, 12:19
Browsh

English version: https://telegra.ph/Browsh-09-10

Нашел интересную штуку: текстовый браузер, который может работать в терминале и поддерживает HTML5, CSS3, JS, видео и WebGL.

https://www.brow.sh все это умеет делать. Фокус в том, что запускается headless Firefox, который и рендерит все html элементы. Далее через экстеншен идет перехват экрана и отправка в Browsh. Подробнее об устройстве можно прочитать тут: https://www.brow.sh/docs/introduction/

Ну, и в качестве демонстрации можно просто зайти по ssh:
ssh brow.sh
Sea++ 3 Sep, 12:00
Бесплатное живое онлайн-занятие Devops by Fevlake: Docker
6 Сентября (четверг) в 19:00 по МСК

Сис.админ? Программист? Айтишник?

Урок по освоению Devops-практик. Просто о сложном.

🗓Время проведения:

6 Сентября в 19:00 по МСК приглашаем сисадминов, программистов и айтишников на бесплатный живой онлайн-урок по Docker, который пройдет в рамках курса Devops by Fevlake.
Наш урок подойдет всем, кто хочет освоить Devops и начать работать в этом направлении.

📋 Программа урока:

🔹 Зачем нужен Docker?;
- Обзор самых актуальных проблем;
- Как Docker их решает;
🔹 Обзор внутреннего устройства Docker;
- Контейнерная виртуализация
- Aufs
- Docker registry
🔹 Собираем и запускаем свой первый Docker контейнер;
🔹 Обзор систем оркестрации для Docker;
🔹 Ответы на вопросы.

👨‍💻 Лектор:

Василий Озеров - основатель агентства Fevlake (fevlake.com) и действующий Devops-инженер (опыт в Devops более 5 лет) : «В этом году мы начали готовить крутых Devops-инженеров из системных администраторов, программистов и It-шников. Приходите на мой открытый живой онлайн-урок по Docker, ответим на все ваши вопросы»

Количество мест строго ограничено.
Регистрация по ссылке:
goo.gl/sgQ2vj
Sea++ 29 Aug, 07:30
Go 2 Draft

English version: https://telegra.ph/Go-2-Draft-08-29

Вчера Расс Кокс (Russ Cox) выпустил короткую видео заметку о Go 2: https://blog.golang.org/go2draft

Слухи были верны: в Go 2 будет улучшенная обработка ошибок и дженерики.

Вот пример обработки ошибок с использованием ключевого слова check:
func CopyFile(src, dst string) error {
handle err {
return fmt.Errorf("copy %s %s: %v",
src, dst, err)
}

r := check os.Open(src)
defer r.Close()

w := check os.Create(dst)
handle err {
w.Close()
os.Remove(dst) // (only if a check fails)
}

check io.Copy(w, r)
check w.Close()
return nil
}

А вот пример дженериков с использованием контрактов:
contract Addable(t T) {
t + t
}

func Sum(type T Addable)(x []T) T {
var total T
for _, v := range x {
total += v
}
return total
}

Оригинальный черновик можно прочитать тут: https://go.googlesource.com/proposal/+/master/design/go2draft.md
Sea++ 28 Aug, 10:43
Virtual Method Anchor

English version: https://telegra.ph/Virtual-Method-Anchor-08-28

В стандартах кодирования LLVM есть пункт Provide a Virtual Method Anchor for Classes in Headers: https://llvm.org/docs/CodingStandards.html#provide-a-virtual-method-anchor-for-classes-in-headers

Там говорится, что если класс объявлен в заголовочном файле и имеет таблицу виртуальных функций, то разработчик должен предоставить хотя бы один out-of-line метод в соответствующем .cpp файле. Иначе компилятор будет копировать таблицу виртуальных функций и RTTI информацию в каждый объектный файл.

Например, такой код будет выдавать предупреждение с использованием флага -Wweak-vtables:

// A.h
class A {
public:
virtual ~A() {}
};

warning: A has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit

и даже такой:
// A.h
class A {
public:
virtual ~A() = default;
};

Чтобы избежать этого предупреждения, нужно перенести деструктор в .cpp файл:
// A.h
class A {
public:
virtual ~A();
};

// A.cpp
A::~A() = default;

"Да кому это нужно", — скажете вы? "Ведь все равно линкер объединит все таблицы виртуальных функций в одну".
Да, это правда, и линкер на самом деле на это способен. Но не забывайте, что это увеличивает время линковки. Например, в таком проекте как Chromium, где десятки тысяч классов, данная оптимизация может сэкономить несколько минут (!) линковки и она обязательна.

Кстати, можно просто в каждом подобном классе делать специальный anchor-метод, как в LLVM, но так придется больше писать:
https://github.com/llvm-mirror/llvm/blob/f17bde5ddcb1947199f44b44af6107f9209dbdd4/include/llvm/ExecutionEngine/ObjectCache.h#L24

https://github.com/llvm-mirror/llvm/blob/f17bde5ddcb1947199f44b44af6107f9209dbdd4/lib/ExecutionEngine/ExecutionEngine.cpp#L65
Sea++ 21 Aug, 12:00
Профессия web-разработчика одна из самых высокооплачиваемых и востребованных на рынке IT-специалистов.
Существует огромное количество сервисов для web-разработки, однако именно возможности Python позволяют решить 98% всех задач максимально просто.

Ребята из SkillFactory подготовили онлайн-курс: “Python для web-разработчиков” → https://bit.ly/2vXKwTV

На курсе вы получите необходимые современному web-разработчику практические знания и навыки работы на Python. Контента программы хватит на решение большинства задач базового и продвинутого уровня. Вы не просто изучаете синтаксис Python, а сразу учитесь использовать его для решения реальных бизнес-задач. После обучения сможете сразу использовать навыки в работе, а не разбираться, как приспособить знания к жизни.

Подробности и регистрация по ссылке → https://bit.ly/2vXKwTV
Sea++ 9 Aug, 10:47
Книга по x86 ассемблеру

English version: https://telegra.ph/x86-Assembly-book-08-09

Многие говорят, что сейчас знание ассемблера не нужно, что это прошлый век и все такое. Однако когда такие "советчики" встречаются с багом компилятора или с непонятным core dump'ом они почему-то сразу смолкают.

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

Неплохое введение по ассемблеру можно найти в книге А. Столярова "Программирование на языке ассемблера NASM" http://www.stolyarov.info/books/asm_unix
Книга бесплатная. Рекомендую, если вы совсем "чайник".
Sea++ 13 Jul, 08:44
Live Coding с Common Lisp

English version: https://telegra.ph/Live-Coding-with-Common-Lisp-07-13

Парк Сун Мин (박성민) выкладывает на своем Youtube-канале красивые видео своего кодирования. При помощи звукового пакета SuperCollider, Cocoa, OpenGL и обильного количества Common Lisp кода он создает впечатляющие аудио-визуальные представления. Пример видео: https://www.youtube.com/watch?v=xzTH_ZqaFKI
А вот как это смотрится в одном из арт-кафе: https://www.youtube.com/watch?v=EkYUU0UoB_0

На Youtube канале можно найти и другие работы. Вот уж в самом деле creative programming.
Sea++ 5 Jul, 08:38
Самая сложная когда-либо написанная программа

English version: https://telegra.ph/The-most-sophisticated-program-ever-written-07-05

Недавно нашел описание червя Stuxnet, который использовал уязвимости Windows, чтобы незаметно скопировать себя с флэшки так, что ни одна антивирусная программа ничего не заподозрила, затем, использовав украденные сертификаты Realtek и JMicron, копировал себя на другие флэш используя ложный драйвер, распространял себя по всей локальной сети, затем искал ПО от Siemens для контроля над промышленными центрифугами, копировал себя в контроллер и незаметно для специалистов выставлял неправильную скорость вращения центрифуг, что приводило к их порче, когда они обогащали уран.
Поучительная история.
https://habr.com/post/358930/
https://www.symantec.com/content/en/us/enterprise/media/security_response/whitepapers/w32_stuxnet_dossier.pdf
Sea++ 4 Jul, 09:39
Алан Кей и STEPS

English version: https://telegra.ph/Alan-Kay-and-STEPS-07-04

Алан Кей, автор SmallTalk, создает экспериментальную систему STEPS (рекурсивный акроним STEPS Toward Expressive Programming Systems), которая способна заменить ОС. Кодовое название системы – Frank. Причем, это не просто ядро операционной системы вроде Minix, а полноценно функционирующая среда с графической оболочкой, просмотром и редактированием документов и т.д.

Принципиально, что весь исходный код должен уложиться в 20'000 строк кода. Для сравнения Windows NT 3.1 занимал 4-5 миллионов строк кода, ядро Linux 2.6.0 – 5.2 миллиона. Все это примерно 18 тысяч книг. Понятно, что никто в принципе не способен не то чтобы осознать, а хотя бы все прочитать. Но если уместить весь исходный код сложной системы в одной книге, то все становится сильно проще.

Как же все уместить в двадцать тысяч строк? Ответ: метапрограммирование и DSL (предметно-ориентированные языки). С помощью объектно-ориентированного языка OMeta, языка исполняемой математики Nile и низкоуровневого языка Nothing и достигается краткость кода. К примеру, реализация TCP/IP занимает всего 160 строк.

Интересная концепция: довести модульность до абсолютного уровня. Жаль, что это пока исследовательский проект.

http://www.vpri.org/pdf/tr2011004_steps11.pdf
Sea++ 5 Jun, 09:03
MongoDB и комментарии

English version: https://telegra.ph/MongoDB-and-comments-06-05

Если кому интересно, как сделать комментарии к блог постам на MongoDB, можете посмотреть это на официальном сайте:
https://docs.mongodb.com/ecosystem/use-cases/storing-comments/

Вообще статья показывает, как при помощи документной модели построить различные системы, где раньше вовсю использовали (и сейчас используют) реляционную модель.
Если кратко: нет ничего невозможного, но нужно помнить про ограничения конкретной СУБД.
Sea++ 23 May, 11:42
Google Abseil

English version: https://telegra.ph/Google-Abseil-05-23

Недавно Google выпустила свою кроссплатформенную C++ Open Source библиотеку Abseil https://abseil.io/. Эта библиотека широко используется внутри самой компании.

В ней собраны всевозможные utility-классы такие как:
• контейнерные версии алгоритмов (c_sort(container) вместо sort(container.begin(), container.end()))
• несколько своих собственных контейнеров, таких как fixed_array и inlined_vector
• стек трейсы
• uint128
• огромное количество функций для работы со строками (StrCat, StrJoin, StrSplit)
• высокопроизводительные примитивы синхронизации
• функции для работы со временем

и многое другое.

Также в рамках этого проекта создан блог C++ Tips of the Week https://abseil.io/tips/, рассказывающий о C++ техниках, которые активно применяются в Google.
Sea++ 22 May, 17:20
Еще одна небольшая подборка занимательных каналов о технологиях и программировании.

@theaftertimes - Несерьезный дайджест IT. Ежедневно. Цитаты, паста, картинки.

@w20to - Настоящее и будущее технологий. Future, Science, Tech, Trands, Robotics, AI, IoT, VR, and more.

@dncuug - Канал посвящён вопросам разработки под .NET Core: новые фичи C#, .NET разработка под macOS X и Linux, микросервисы и HighLoad. Вот это вот все и даже больше.

@ITBroadcast - Канал для тех, кто хочет быть в теме и познавать новое в области IT. Входим в Top 1 каналов Telegram о технологиях.

@SysadminNotes - Заметки практикующего сисадмина о Linux и администрировании серверов.
Sea++ 21 May, 12:18
Linux и E-mail

English version: https://telegra.ph/Linux-and-E-mail-05-21

Знаете ли вы, что разработка ядра Linux держится на электронной почте?
Грег Кроа-Хартман (Greg Kroah-Hartman) рассказал о внутренней кухне разработки: https://kernel-recipes.org/en/2016/talks/patches-carved-into-stone-tablets/

Электронная почта используется по следующим причинам:
1. Простота
2. Локальность (можно работать без подключения к интернету как того требуют Github, Gitlab, Gerrit и прочие)
3. Многие разработчики Linux слепы, а текстовые консольные почтовые клиенты отлично приспособлены для экранных дикторов.

Если проджект менеджерам в компаниях, контрибьютящих в Linux нужно следить за статусом выполнения задач, используется специальный сервис, который подписывается на LKML (Linux Kernel Mailing List)

Причем, многие разработчики ядра пользуются консольными почтовыми клиентами Mutt, Alpine либо клиентом в Emacs.

Грег так же признался, что практически никто не читает всю рассылку полностью. В основном, каждый ставит свои почтовые фильтры.

Кстати, даже не все используют git в свое работе, так как это не обязательный инструмент. Аргументируется это тем, что не все компании разрешают сотрудникам использовать git по лицензионным причинам (вот так-то). Эндрю Мортон (Andrew Morton) вообще использует только электронку, например.
Sea++ 14 May, 17:20
Представляю вашему вниманию подборку IT каналов, которую мы сделали совместно с другими админами. Каждый найдет себе что-то по душе: новости, обзоры индустрии и многое другое.

@technologique - Канал о тенденциях в технологиях разработки ПО и концепциях языков программирования, открытых технологиях FLOSS, Linux, облачных и IoT инфраструктурах, DevOps практиках, хранении и анализе данных, DL/ML, информационной безопасности.

@mustreat - Mustreadы технологий и значимых событий.

@msdnru - Официальный канал сообщества Microsoft Developer для разработчиков и всех, кто интересуется новыми технологиям.

@MicrosoftRus - Авторские заметки для ITPro & Dev о Microsoft, Windows Server, System Center, Azure, Office 365, OMS, SQL, облаках и не только.

@DXspace - Канал про бизнес и технологии в эпоху цифровой трансформации. Важные новости, презентации, актуальные исследования и инфографика помогут вам адаптироваться к неизбежному будущему.