Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Сказание о static и неименованном пространстве имен для функции в C++

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров5.7K

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

// Все персонажи и события вымышлены, любые совпадения случайны.

Читать далее
Всего голосов 12: ↑13.5 и ↓-1.5+15
Комментарии37

Лучшие бесплатные курсы и ресурсы для изучения машинного обучения

Уровень сложностиПростой
Время на прочтение21 мин
Количество просмотров16K

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

Благодаря этим бесплатным курсам, вы сможете расширить свои знания и навыки в области машинного обучения, data science и искусственного интеллекта, повысить свою конкурентоспособность на рынке труда и открыть для себя новые возможности в карьере. Независимо от вашего уровня подготовки и опыта, вам обязательно найдется курс, который поможет вам достичь ваших целей.

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

Читать
Всего голосов 24: ↑19 и ↓5+14
Комментарии7

Пишем свой вариантный тип

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров3.9K

C++ 17 привнес в язык достаточно много нововведений, в том числе шаблон std::variant (хоть в Boost он есть уже довольно давно). Фактически, последним вышедшим и полноценно реализованным стандартом C++ на тот момент, как я начал изучать данный язык, являлся как раз C++17, поэтому нововведениям данного стандарта в свое время я уделил наибольшее внимание.
В какой-то момент мне стало интересно, как именно устроен std::variant, в связи с чем я немного погуглил про его принципиальное устройство и, вооружившись variadic templates, сел писать свою реализацию. Данный шаблон устроен достаточно интересно, поэтому людям, вообще не знакомым с его устройством, данная статья будет полезна. Если данную статью прочитают более опытные разработчики, я буду рад их комментариям по поводу моей реализации.
Упомяну несколько моментов перед началом статьи:

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии18

Ассемблер: x86/x86_64/Arm32/Arm64

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров7.8K

Я достаточно давно решил ознакомится с ассемблером архитектуры Arm. По большей части для ознакомления и понимания внутренних процессов архитектуры. Чем больше я изучал литературу и различные источники, тем больше я понимал, что нужна практика. Я решил вспомнить ассемблер для x86-х машин и заодно потренироваться на архитектуре Arm.

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

Читать далее
Всего голосов 15: ↑14 и ↓1+13
Комментарии34

(Еще один!) личный опыт переезда в США. Часть 1: оффер

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров8.1K

Всем привет, меня зовут Александр и я алкоголик бы хотел поделиться личным опытом получения оффера в США, подготовки к получению визы этой страны, собственно, получения визы (ох, и разные это вещи!), переезда, получения гринкарты. Может, что-то получится добавить по результатам осмысления своего положения здесь, в США. Я переехал в начале 2022 года, и примерно через год получил гринкарту.

Почему может быть интересна еще одна статья на подобную тему? Ведь есть уже немало вариантов (это разные ссылки, если что). На мой взгляд, главное отличие - я не пользовался никакими услугами помогаторов, не тратил 100500 денег, и вся информация будет максимально подкреплена ссылками на официальные сайты и подходами, которые сработали в моем случае.

Читать далее
Всего голосов 33: ↑26 и ↓7+19
Комментарии17

Как я устроился в Амазон и перестал переживать за свой английский

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров88K

Готовитесь к собеседованию за рубежом и переживаете за свой английский? Хотели бы работать в международной компании, но сомневаетесь, хватит ли языка? Не уверены, поймут ли ваш акцент? Тогда эта статья может помочь.

Меня зовут Андрей Столбовский, последние 5 лет я работал в Яндексе, а в прошлом году перешёл в Амазон и теперь работаю Software Development Manager в AWS Redshift – это мой первый полноценный опыт работы в международной компании. 

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

Итак, поехали. 

Поехали!
Всего голосов 282: ↑279 и ↓3+276
Комментарии160

Perfect DLL Hijacking. Разбор техники

Уровень сложностиСредний
Время на прочтение37 мин
Количество просмотров3K

Привет, Хабр, на связи лаборатория кибербезопасности компании AP Security!  В статье речь пойдет о такой технике, как DLL Hijacking, а именно как это работает от А до Я.

DLL Hijacking - это техника, позволяющая внедрять сторонний код в легитимный процесс (EXE), обманывая его загрузкой неправильной библиотеки (DLL). Чаще всего это происходит путем размещения похожей DLL выше в порядке поиска, чем предполагаемая, в результате чего ваша DLL выбирается загрузчиком библиотек Windows первой.

Несмотря на то, что в основном DLL-хакинг является решающей техникой, у нее всегда был один существенный недостаток, заключающийся в том, что после загрузки в процесс он выполняет наш сторонний код. Это называется Loader Lock, и при запуске нашего стороннего кода на него накладываются все жесткие ограничения. Это и создание процессов, и сетевой ввод/вывод, и вызов функций реестра, и создание графических окон, и загрузка дополнительных библиотек, и многое другое. Попытка выполнить любое из этих действий под Loader Lock приведет к аварийному завершению или зависанию приложения.

До сих пор существовали только довольно грубые или быстро становящиеся бесполезными техники. Поэтому сегодня мы проводим 100% оригинальное исследование загрузчика библиотек Windows, чтобы не просто обойти Loader Lock, но и, в конечном итоге, полностью его отключить. Кроме того, мы разработали несколько стабильных механизмов защиты и обнаружения, которые могут быть использованы защитниками.

Читать далее
Всего голосов 10: ↑9 и ↓1+8
Комментарии1

Создаем свою STL-совместимую реализацию std::allocator с лучшей производительностью

Время на прочтение11 мин
Количество просмотров4.4K

Реализация защиты от сбоев из-за фрагментации кучи и повышение скорости выполнения с помощью STL-альтернативы std::allocator, работающей с блоками памяти фиксированного размера.

В этой статье описывается реализация STL-совместимого аллокатора, ориентированного на выделение и высвобождение блоков памяти фиксированного размера. Предложенный аллокатор предотвращает сбои, вызванные фрагментированной кучей, и обеспечивает стабильное время выполнения выделения/высвобождения памяти. Моей главной целью при создании stl_allocator было устранение ошибок памяти. Вдобавок использование STL-совместимого блочного аллокатора открывает возможность использования функций стандартной библиотеки шаблонов (STL) C++ в проектах, в которых иначе это было бы невозможно.

Читать далее
Всего голосов 18: ↑14 и ↓4+10
Комментарии11

Создаем чат-бота на Python: Полное руководство

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров27K

В этом полном руководстве от DataTech Community мы шаг за шагом рассмотрим процесс создания чат-бота на Python. Откройте для себя мощь NLTK и TensorFlow в обработке естественного языка и машинном обучении, чтобы создать интеллектуального помощника, способного общаться и отвечать на вопросы пользователей. Научитесь подготавливать данные, строить и обучать модель нейронной сети, а затем интегрировать ее в логику чат-бота для создания эффективного и интеллектуального виртуального помощника.

Читать далее
Всего голосов 17: ↑12 и ↓5+7
Комментарии4

Почему айтишники выбирают Германию? Плюсы, о которых не все говорят

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров23K

Высокие налоги и стоимость жизни, недоступная недвижимость, немецкий язык. Обычно Германия в контексте страны для иммиграции для айтишников предстает не в самом лучшем свете. Я живу тут с 2017 года и решил исправить этот недочет. Вашему вниманию некоторые положительные моменты про эту страну пива и сосисок.

Читать далее
Всего голосов 77: ↑53 и ↓24+29
Комментарии288

[Личный опыт] Поиск работы в Германии в 2023 году

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров9.9K

Всем привет!

Тема ИТ-эммиграции в последний год стабильно вызывает большой интерес. Вот и я решил поделиться своим опытом поиска работы в Германии в современных реалиях. Надеюсь, мой опыт будет полезен тем, кто только задумывается, или уже решился на релокацию.

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

Узнать, получилось это у меня или нет ->
Всего голосов 19: ↑17 и ↓2+15
Комментарии19

Подробный обзор работы и жизни в Ванкувере (Британская Колумбия, Канада)

Уровень сложностиПростой
Время на прочтение46 мин
Количество просмотров30K

Здравствуйте, меня зовут Александр Зеленин, и я программист. В 2020 году получил приглашение от AWS Cloudfront переехать в Ванкувер, Канаду.


В этой статье я рассмотрю все ключевые темы проживания в Ванкувере (Британская Колумбия, Канада): от вакансий и интервью до получения резидентства.


Я постарался представить всю информацию в формате, который сам хотел бы видеть ДО переезда с точки зрения айти специалиста (для других специальностей/зарплат условия могут быть другими). Вся информация основана исключительно на моем опыте: возможно, вы не будете с ней полностью согласны, и это нормально.


Значительная часть касается Ванкувера в Британской Колумбии. Я посещал другие города и провинции как турист, поэтому не могу написать о жизни там, хотя по рассказам друзей в целом ситуация везде очень похожа (за исключением климата).

Как там, в Ванкувере?
Всего голосов 131: ↑127 и ↓4+123
Комментарии147

Приручение WinAPI

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров3.3K

Позапрошлую заметку я начинал словами «вот уже 10 лет прошло…», а эту можно было бы начать «вот уже 20 лет прошло…». Хотя там речь шла лишь о выравнивании стека, а здесь – о целой организации взаимодействия программы с WinAPI. Помнится, здесь недавно в комментариях кто-то наивно удивлялся: зачем вы приводите устаревший и никому не интересный способ программирования через WinAPI? А как же иначе программа вообще может взаимодействовать со средой Windows, как не через вызовы ее стандартных функций? Через имеющиеся надстройки над WinAPI не все можно сделать.

Конечно, было бы прекрасно все время оставаться в рамках парадигмы используемого языка программирования и чтобы «на фотографии не торчали уши фотографа», т.е. чтобы в исходных текстах никак не проявлялись бы особенности взаимодействия со средой. Например, в большинстве языков есть понятие файла. Чтобы открыть файл не обязательно явно описывать стандартную функцию из WinAPI CreateFile или OpenFile, поскольку компилятор переведет встроенный в язык оператор открытия или прямо к обращению к этой функции или к вызову системной библиотеки, которая где-то внутри себя и вызовет требуемую функцию. В любом случае программист не обязан знать, как именно это реализовано в Windows.

В системной библиотеке языка PL/1-KT, который я использую, имеется обращение лишь к 28 функциям WinAPI и это вполне покрывает «обычные» возможности языка и можно было бы не заботиться о явных вызовах. Но увы, часто этого мало. И хотя нормальные люди ходят в двери, а не в окна (ах, какая свежая, искрометная шутка!), приходится в программах явно обращаться к функциям типа CreateWindow или CloseWindow. А это уже ну никак не входит в понятия языка.

Читать далее
Всего голосов 12: ↑11 и ↓1+10
Комментарии2

Чистый код. Часть 3

Время на прочтение15 мин
Количество просмотров16K

Привет! Этим постом я завершаю цикл из конспектов видеолекция Дяди Боба про чистый код.

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

Обработка исключений

Не раскрывайте реализацию

Майкл Физерс (Working effectively with legacy code) сказал: «Если обработка ошибок раскрывает реализацию — то это неправильная обработка ошибок». Не раскрывать реализацию можно, если написать исключения перед тем, как написать реализацию функции (привет TDD — по-другому и не получится).

Рассмотрим классCommissionCalculator , который обменивает сумму в разных валютах.

Читать далее
Всего голосов 26: ↑23 и ↓3+20
Комментарии52

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

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров130K

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

Мы с женой переехали в Ванкувер в феврале 2021 года. Сейчас я разработчик в Amazon, до этого работал несколько лет в Aviasales. Моя жена Аня — продуктовый дизайнер. До Канады мы жили 2.5 года на Пхукете, перед этим — 10 лет в Москве. В мае 2020 после успешного собеседования я получил оффер от Amazon с релокацией в Канаду.

Читать далее
Всего голосов 214: ↑184 и ↓30+154
Комментарии588

[Личный опыт] Жизнь в Норвегии: непростой переезд даже для IT-инженера, отсутствие дешевых вещей и настоящее равноправие

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров70K

Норвегия активно нанимала IT-специалистов из-за рубежа с начала девяностых до конца две тысячи десятых, но теперь окно возможностей закрылось. IT-рынок здесь небольшой, и на должности предпочитают нанимать местных специалистов. Герой нашей статьи сумел переехать сюда, успев поймать конец периода найма из-за рубежа, благодаря достаточно редкой на то время специализации. Он расскажет, почему выбрал именно эту страну, как здесь живется приезжему и что здесь необычного: от налогов до обучения в автошколе. Передаю ему слово.

Читать далее
Всего голосов 133: ↑122 и ↓11+111
Комментарии900

Странный мир путей файлов в Windows

Время на прочтение6 мин
Количество просмотров61K

Пути файловых систем в Windows страннее, чем можно подумать. В любой производной от Unix системе пути на удивление просты: если нечто начинается с /, то это путь. Но всё совершенно иначе в Windows, которая имеет озадачивающее разнообразие схем составления пути.

Когда я реализовал функцию автозавершения пути в Fileside 1.7, мне нужно было изучить этот вопрос внимательнее, чтобы ничего не упустить. В этой статье я расскажу о своих находках.

Стоит заметить, что статья ограничивается только тем типом путей, который видит пользователь приложений Windows (обусловленный Win32 API). Под этим слоем есть ещё больше любопытного, в основном касающегося тех, кто пишет драйверы оборудования и тому подобное.
Читать дальше →
Всего голосов 179: ↑179 и ↓0+179
Комментарии100

Реверс инжиниринг для самых маленьких на практике

Время на прочтение11 мин
Количество просмотров33K

Скомпилированное приложение является «чёрным ящиком». Чтобы туда заглянуть, восстановить алгоритм работы применяется реверс‑инжиниринг. Это непростой навык с высоким порогом входа. В статье мы попробуем взять дизассемблер, несложную задачку и пойдём в бой. Материал будет полезен тем, кому хочется с чего-то начать и погрузиться в тему реверса.

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

Читать далее
Всего голосов 47: ↑47 и ↓0+47
Комментарии19

Краткий обзор нововведений C++23: deducing this

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров16K

Документ «deducing this», принятый в последний стандарт C++, вводит новый, третий тип методов классов, сочетающий в себе свойства двух уже существующих: нестатических и статических, открывающий перед нами новые горизонты:

1. Дедупликация большого количества кода.

2. Вытеснение CRTP (Curiously Recuring Template Pattern) на свалку истории, его замена более простой и очевидно понятной записью.

3. Рекурсивные лямбды.

И другое.

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

Читать далее
Всего голосов 52: ↑52 и ↓0+52
Комментарии64

Книга «Внутри CPYTHON: гид по интерпретатору Python»

Время на прочтение12 мин
Количество просмотров12K
image Привет, Хаброжители!

CPython, самая популярная реализация Python, абстрагируется от сложностей ОС и предоставляет платформу для создания масштабируемых и высокопроизводительных приложений. Каждому python-разработчику на какой-то стадии необходимо будет узнать, как работает CPython. Это позволит в полной мере использовать его мощь и оптимизировать приложения. Вы разберетесь с основными концепциями внутреннего устройства CPython и научитесь: читать исходный код интерпретатора CPython и свободно ориентироваться в нем; вносить изменения в синтаксис Python и компилировать их в вашу собственную версию CPython; понимать внутреннюю реализацию таких структур, как списки, словари и генераторы; управлять памятью CPython; масштабировать код Python за счет параллелизма и конкурентного выполнения; дополнять базовые типы новой функциональностью; выполнять наборы тестов; профилировать и проводить бенчмарк Python-кода и исполнительной среды; отлаживать код C и Python на профессиональном уровне; изменять или обновлять компоненты библиотеки CPython, чтобы они могли использоваться в будущих версиях.
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии11
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Самара, Самарская обл., Россия
Зарегистрирован
Активность