Страница телеграм канала Sea++

sea_plus_plus logo

Sea++

1135 подписчиков

Interesting materials from C/C++, Python, Go, Linux world and more by @sabbakumov | Интересные материалы из мира C/C++, Python, Go, Linux и не только от @sabbakumov


Входит в категории: Технологии
Sea++
18.03.2019 11:03
Комментарии (comments)
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


18.03.2019 09:03
Pythonic C++ std::string s; s = 1; — Вау, C++, оказывается, как Python! Можно присваивать строке целые числа, — подумаете вы, увидев, что данный фрагмент кода компилируется без ошибок. И... Будете неправы. Все дело в объявлении оператора присваивания: string& string::operator=(char ch); которое приводит 1 в char. Так что никакой магии нет. И данный момент заставит вас подумать, почему же в код закралась ошибка. А если вы все-таки хотите подобное поведение как в Python, взгляните в сторону std::any https://en.cppreference.com/w/cpp/utility/any English version: https://telegra.ph/Pythonic-C-03-18
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Sea++
17.10.2018 18:10
Мечтаешь стать хакером, но вузы такому не учат? Пройди бесплатно 5-дневный интенсив, напиши свой первый вирус на самом востребованном языке Java! А еще у нас есть куча призов для участников, главный из которых – сертификат на 30 000 рублей и бюджетное поступление на курс по Java-программированию с последующей стажировкой и трудоустройством. Дерзай! https://goo.gl/dszdS1
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


15.10.2018 09:10
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.
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Sea++
26.09.2018 18:09
Зачем тратить время на обработку строк, анализ метрик и формирования всего в единый отчет? В век нейросетей пора прекратить вручную перебирать тысячи ячеек в Excel и копировать формулы. Пройди курс «Python для автоматизации аналитики» и узнай все инструменты для автоматизации процессов, чтобы делать работу в считанные минуты. Первым 20 — скидка 25% Присоединяйся https://goo.gl/9WbwxP
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


26.09.2018 14:09
Технология 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 то еще удовольствие. Более подробно можно прочитать в статье.
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Sea++
13.09.2018 12:09
Хотите стать профессиональным аналитиком и научиться анализировать данные? У Skillfactory есть курс “Python для анализа данных”. Преподаватель курса: Программист-аналитик Яндекс.Маркета Константин Башевой. Вы научитесь: 1. Уверенно использовать Python и Pandas для боевых задач аналитики 2. Объединять данные из разных источников, работать с большими файлами (30 Гб), проектировать системы сквозной аналитики для реальных проектов 3. Парсить веб-страницы, работать с открытыми API, подробно изучите работу с API Яндекса и Google 4. Автоматически обновлять отчеты. Сделаете Telegram бота, который будет следить за работоспособностью системы и сообщать о проблемах обновления данных. 5. Пройдете финальный экзамен и получите диплом. Получить полную программу курса можно по ссылке https://bit.ly/2xbHrzq
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


13.09.2018 10:09
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 Читать Кормена при подготовке, конечно, можно, но там все написано слишком академическим языком.
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


10.09.2018 12:09
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
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


29.08.2018 07:08
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
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


28.08.2018 10:08
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
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


Sea++
21.08.2018 12:08
Профессия web-разработчика одна из самых высокооплачиваемых и востребованных на рынке IT-специалистов. Существует огромное количество сервисов для web-разработки, однако именно возможности Python позволяют решить 98% всех задач максимально просто. Ребята из SkillFactory подготовили онлайн-курс: “Python для web-разработчиков” https://bit.ly/2vXKwTV На курсе вы получите необходимые современному web-разработчику практические знания и навыки работы на Python. Контента программы хватит на решение большинства задач базового и продвинутого уровня. Вы не просто изучаете синтаксис Python, а сразу учитесь использовать его для решения реальных бизнес-задач. После обучения сможете сразу использовать навыки в работе, а не разбираться, как приспособить знания к жизни. Подробности и регистрация по ссылке https://bit.ly/2vXKwTV
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


09.08.2018 10:08
Книга по x86 ассемблеру English version: https://telegra.ph/x86-Assembly-book-08-09 Многие говорят, что сейчас знание ассемблера не нужно, что это прошлый век и все такое. Однако когда такие "советчики" встречаются с багом компилятора или с непонятным core dumpом они почему-то сразу смолкают. Конечно, я тоже не приветствую программирование всего кода на ассемблере, но иногда знание его просто необходимо в вышеупомянутых случаях. Неплохое введение по ассемблеру можно найти в книге А. Столярова "Программирование на языке ассемблера NASM" http://www.stolyarov.info/books/asm_unix Книга бесплатная. Рекомендую, если вы совсем "чайник".
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


13.07.2018 08:07
Live Coding с Common Lisp English version: https://telegra.ph/Live-Coding-with-Common-Lisp-07-13 Парк Сун Мин () выкладывает на своем Youtube-канале красивые видео своего кодирования. При помощи звукового пакета SuperCollider, Cocoa, OpenGL и обильного количества Common Lisp кода он создает впечатляющие аудио-визуальные представления. Пример видео:

А вот как это смотрится в одном из арт-кафе:

На Youtube канале можно найти и другие работы. Вот уж в самом деле creative programming.
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме


05.07.2018 08:07
Самая сложная когда-либо написанная программа 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
Читать

Обращаем внимание, что мы не несем ответственности за содержимое(content) того или иного канала размещенный на нашем сайте так как не мы являемся авторами этой информации и на сайте она размещается в автоматическом режиме