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

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

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

std::atomic. Модель памяти C++ в примерах

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

Для написания эффективных и корректных многопоточных приложений очень важно знать какие существуют механизмы синхронизации памяти между потоками исполнения, какие гарантии предоставляют элементы многопоточного программирования, такие как мьютекс, join потока и другие. Особенно это касается модели памяти C++, которая была создана сложной таковой, чтобы обеспечивать оптимальный многопоточный код под множество архитектур процессоров. Кстати, язык программирования Rust, будучи построенным на LLVM, использует модель памяти такую же, как в C++. Поэтому материал в этой статье будет полезен программистам на обоих языках. Но все примеры будут на языке C++. Я буду рассказывать про std::atomic, std::memory_order и на каких трех слонах стоят атомики.

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

Коронавирус: Фиаско века в процессе творения? Как мы принимаем решения без достоверных данных

Время на прочтение8 мин
Количество просмотров40K
Перевод статьи для профильного медицинского издания "STAT" в разделе "Мнения". Автор, Джон П.А. Иоаннидис (John P.A. Ioannidis) — профессор медицины, эпидемиологии и здоровья населения, биомедицинской науки и статистики Стэнфордского университета, со-директор Стэнфордского инновационного центра метаисследований.


COVID-19, уже называется «пандемией века». Но так же, может быть, это и самое масштабное «фиаско века».
Читать дальше →
Всего голосов 69: ↑52 и ↓17+35
Комментарии141

Пытаемся разобраться с разительными различиями в уровне смертности от коронавируса в Италии и Южной Корее

Время на прочтение5 мин
Количество просмотров94K
Первый подтверждённый случай коронавируса в Италии и Южной Корее примерно 20 января. Население — 60М в Италии, 51М — в Южной Корее.

На конец 11 марта 2020г. в Италии 12462 подтверждённых случае и 827 смертей, ~6.6%. В Южной Корее — 7755, 61, ~0.77%. (числа отсюда [1]).

В Италии ситуация хуже почти на порядок (в 8.5 раз). Но почему? Попробуем хотя бы частично разобраться.



Дисклеймер. Я — не медик и не биолог.

В рамках этого текста буду играть за математика с опытом биоинформатики.

Поэтому рассуждения могут оказаться не имеющими отношения к действительности. С другой стороны все факты будут подтверждены пруфлинками.

Если у вас есть факты с пруфлинками — жгите!
Всего голосов 50: ↑43 и ↓7+36
Комментарии72

Задачи на собеседованиях в Яндексе

Время на прочтение15 мин
Количество просмотров358K
Открытые вакансии на должность разработчика в Яндексе есть всегда. Компания развивается, и хороших программистов не хватает постоянно. И претендентов на эти должности тоже хоть отбавляй. Главная сложность – отобрать действительно подходящих кандидатов. И в этом плане Яндекс мало чем отличается от большинства крупных IT-компаний. Так что базовые принципы, описываемые в этой статье, могут быть применимы не только к Яндексу.

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

image
Читать дальше →
Всего голосов 221: ↑178 и ↓43+135
Комментарии329

Шпаргалка для технического собеседования

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


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

Читать дальше →
Всего голосов 81: ↑68 и ↓13+55
Комментарии85

Что должен уметь программист, чтобы получить работу в сфере финансов

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


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

Сегодня здесь востребованы математики, физики и программисты. Люди способные создавать алгоритмы торговли и делать на их базе качественный софт. Многие программисты, в свою очередь, хотели бы попробовать свои силы в финансовой отрасли — она может предложить привлекательное сочетание интересных задач и высоких зарплат.

Сегодня мы поговорим о том, какими навыками нужно обладать, чтобы получить работу в HFT-фирме, инвестиционном банке, хедж-фонде или брокерской компании. При подготовке топика использовались материалы сайтов experience.com и quantstart.com.
Читать дальше →
Всего голосов 34: ↑21 и ↓13+8
Комментарии25

Без разницы, какое решение вы примете – оно всегда будет неверным

Время на прочтение2 мин
Количество просмотров6.1K
Мне было страшно уходить со своей первой работы. Я не хотел говорить своей начальнице что ухожу. Я знал, что она будет в бешенстве. Ведь я уходил к конкурентам, которые собирались платить мне бо́льшую зарплату. Я был предателем.
Читать дальше →
Всего голосов 124: ↑92 и ↓32+60
Комментарии62

Вы можете развить свой интеллект: 5 способов максимально улучшить свои когнитивные способности

Время на прочтение17 мин
Количество просмотров506K
Не стоит преследовать цели, которые легко достичь. Стоит нацеливаться на то, что удается сделать с трудом, приложив немалые усилия — Альберт Эйнштейн

Несмотря на то, что Эйнштейн не был нейробиологом, он точно знал все, когда говорил о способности человека добиваться чего-либо. Он интуитивно догадывался о том, что лишь сегодня нам удалось подтвердить с помощью данных, а именно: что заставляет когнитивные способности работать на максимально высоком уровне. По существу: То, что тебя не убивает, делает тебя умнее.
Читать дальше →
Всего голосов 167: ↑135 и ↓32+103
Комментарии108

Введение в анализ сложности алгоритмов (часть 4)

Время на прочтение5 мин
Количество просмотров98K
От переводчика: данный текст даётся с незначительными сокращениями по причине местами излишней «разжёванности» материала. Автор абсолютно справедливо предупреждает, что отдельные темы могут показаться читателю чересчур простыми или общеизвестными. Тем не менее, лично мне этот текст помог упорядочить имеющиеся знания по анализу сложности алгоритмов. Надеюсь, что он окажется полезен и кому-то ещё.
Из-за большого объёма оригинальной статьи я разбила её на части, которых в общей сложности будет четыре.
Я (как всегда) буду крайне признательна за любые замечания в личку по улучшению качества перевода.


Опубликовано ранее:
Часть 1
Часть 2
Часть 3

Оптимальная сортировка


Поздравляю! Теперь вы знаете о том, как анализировать сложность алгоритмов, что такое асимптотическая оценка и нотация «большое-О». Вы также в курсе, как интуитивно выяснить является ли сложностью алгоритма O( 1 ), O( log( n ) ), O( n ), O( n2 ) и так далее. Вы знакомы с символами o, O, ω, Ω, Θ и понятием «наихудшего случая». Если вы добрались до этого места, то моя статья уже выполнила свою задачу.

Этот финальный раздел — опциональный. Он несколько сложнее, так что можете не стесняясь пропустить его, если хотите.От вас потребуется сфокусироваться и потратить некоторое время на решение упражнений. Однако, так же здесь будет продемонстрирован очень полезный и мощный способ анализа сложности алгоритмов, что, безусловно, стоит внимания.
Читать дальше →
Всего голосов 58: ↑54 и ↓4+50
Комментарии6

Дерек Сиверс: «Метод интервального повторения — лучший способ изучения языков программирования»

Время на прочтение6 мин
Количество просмотров114K
Краткая справка: в 1998 году Дерек Сиверс основал компанию CD Baby и превратил ее в крупнейшего онлайн-продавца независимой музыки. В 2008-ом вырученные от продажи компании $22 миллиона Дерек передал в благотворительный траст на нужды музыкального образования.
Речи Дерека на TED просмотрели более 5 миллионов раз, а его собственная книга занимала первую строку в чарте книг для предпринимателей на Amazon.
Сам себя Дерек считает «вечным учеником».


Я уже год использую этот метод обучения и могу сказать, что он – самый эффективный из тех, с которыми мне довелось столкнуться за 14 лет изучения программирования.
Читать дальше →
Всего голосов 74: ↑68 и ↓6+62
Комментарии45

Опасности обучения на Java

Время на прочтение10 мин
Количество просмотров168K
«Вы счастливчики. Мы по три месяца жили в мешках из дерюги в грязных сараях. Мы вставали в шесть утра, стирали мешки, съедали по корке чёрствого хлеба и шли работать на мельницу, по 14 часов в день, с понедельника и до воскресенья, и когда мы возвращались домой, наш папа порол нас своим ремнем»
— Летающий цирк Монти Пайтона, Четыре йоркширца


Ленивая молодёжь.

Что может быть хорошего в тяжёлой работе?

Верный признак моего старения — моё ворчание и жалобы о «современной молодёжи» и о том, как не хотят или не могут больше делать ничего сложного.
Читать дальше →
Всего голосов 186: ↑152 и ↓34+118
Комментарии259

Windows Phone 8: Создаем приложение. Матрица. Часть 2

Время на прочтение49 мин
Количество просмотров12K
Windows Phone 8: Создаем приложение. Матрица. Часть 1
Windows Phone 8: Создаем приложение. Матрица. Часть 2

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

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


Скриншот работы приложения

Читать дальше →
Всего голосов 33: ↑19 и ↓14+5
Комментарии6

Как начать разрабатывать игры даже если до этого вы были бухгалтером

Время на прочтение7 мин
Количество просмотров187K
До того как я стал разработчиком игр, я (да и все в моем окружении) считал себя дизайнером сайтов.
Не плохим, кстати, но дизайнером сайтов. Профессия, которая почти никак не используется в разработке игр.


Есть такой стереотип — когда кто-то говорит, что он в разрабытавает игры без команды, все сразу представляют его программистом. На самом деле, стереотип не так далек от правды: скорее всего, разработчик, описанный выше, действительно умеет программировать, но программистом он может себя не считать.

После одного игрового проекта со стримом всего процесса разработки мне часто пишут начинающие разработчики, что-то спрашивают, что-то показывают и на что-то жалуются. Недавно мне пришлось влезть в спор двух ребят, где темой спора было: “Что круче знать 3д-моделирование или программирование, если собираешься разрабатывать игры?”. Влез к ним в спор с предложением сделать первый шаг из схемы, что родилась в процессе участия в игровых проектах и создания своих.
3 шага к успешной карьере разработчика игр
Всего голосов 103: ↑67 и ↓36+31
Комментарии35

«Boost.Asio C++ Network Programming». Глава 1: Приступая к работе с Boost.Asio

Время на прочтение15 мин
Количество просмотров221K
Привет Хабралюди!
Это мой первый пост, поэтому не судите строго. Я хочу начать вольный перевод книги John Torjo «Boost.Asio C++ Network Programming» вот ссылка на нее.

Содержание:


Во-первых разберем что есть Boost.Asio, как его собрать, а так же несколько примеров. Вы узнаете, что Boost.Asio больше, чем сетевая библиотека. Так же вы узнаете о самом важном классе, который находится в самом сердце Boost.Asio — io_service.

Читать дальше →
Всего голосов 44: ↑43 и ↓1+42
Комментарии13

.NET и паттерны проектирования

Время на прочтение8 мин
Количество просмотров159K
Шаблон проектирования или паттерн — повторимая архитектурная конструкция, представляющая собой решение проблемы проектирования в рамках некоторого часто возникающего контекста.

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

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

Паттернам проектирования посвящен не один десяток книг, но одна книга стоит особняком и это знаменитая книга «Банды четырех». Поэтому для большего понимания ситуации я буду приводить небольшое описание из этой книги.
Читать дальше →
Всего голосов 59: ↑40 и ↓19+21
Комментарии6

Windows Phone 8: Создаем приложение. Матрица. Часть 1

Время на прочтение12 мин
Количество просмотров31K
Windows Phone 8: Создаем приложение. Матрица. Часть 1
Windows Phone 8: Создаем приложение. Матрица. Часть 2
Windows Phone 8: Создаем приложение. Матрица. Часть 3. MVVM

Создавая приложение на конкурс появилась так же идея поделиться процессом его создания, так как сам столкнулся с трудностями нахождения информации по созданию приложений для Windows Phone 8. Почему «Матрица»? Потому, что еще с выхода фильма она меня завораживала. Потом нашел заставку на экран. Мог часами смотреть на нее. А теперь решил уже перенести ее на телефон, что б всегда была под рукой. И так начнем.


Принт скрин с экрана Lumia 520

Читать дальше →
Всего голосов 28: ↑22 и ↓6+16
Комментарии19

Эдвард руки — С++

Время на прочтение10 мин
Количество просмотров55K
Я искал, с чем бы сравнить программирование на С++ и я вспомнил фильм 1990 года режиссера Тима Бертона — «Эдвард руки-ножницы»
Читать далее
Всего голосов 145: ↑115 и ↓30+85
Комментарии217

Bitmessage — программа для P2P-обмена зашифрованными сообщениям

Время на прочтение1 мин
Количество просмотров55K
Совсем недавно состоялся выпуск бета версии новой программы для P2P-обмена зашифрованными сообщениями между двумя пользователями или группой пользователей. Выпуск бета версии Bitmessage состоялся 21 марта В ней используется сильная криптография, которая надёжно защищает абонентов от прослушивания на уровне интернет-провайдера (СОРМ) или на сервере, как в случае Skype и других, которые пропускают трафик через себя.



Дальнейшее описание с исходниками под катом.

Читать дальше →
Всего голосов 88: ↑79 и ↓9+70
Комментарии92

Путешествия во времени и программирование 2: парадоксы

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


Эпоха путешествий во времени еще не наступила, а человечество уже давно пытается разрешить сопутствующие им парадоксы. Мы поговорим о самом очевидном из них: что же все-таки произойдет при вмешательстве в ход истории? Существует несколько вариантов того, как поток времени реагирует на действия путешественника из будущего. Эти модели можно увидеть в фантастических фильмах, о них все больше начинают говорить ученые, но какая модель ближе к истине — единого мнения пока нет. Мы только начинаем проникать в тайны времени, и еще не обладаем возможностью экспериментировать с перемещениями в прошлое. Что же можно прояснить в данном вопросе уже сейчас? Под катом нас ждет экскурсия по основам механики времени, мы порассуждаем о парадоксах, и проведем небольшой эксперимент. Да, это будет испытание виртуальной машины времени, построенной на основе алгоритма «Жизнь»!
Читать дальше →
Всего голосов 371: ↑351 и ↓20+331
Комментарии440

Организация памяти процесса

Время на прочтение8 мин
Количество просмотров136K
image
Управление памятью – центральный аспект в работе операционных систем. Он оказывает основополагающее влияние на сферу программирования и системного администрирования. В нескольких последующих постах я коснусь вопросов, связанных с работой памяти. Упор будет сделан на практические аспекты, однако и детали внутреннего устройства игнорировать не будем. Рассматриваемые концепции являются достаточно общими, но проиллюстрированы в основном на примере Linux и Windows, выполняющихся на x86-32 компьютере. Первый пост описывает организацию памяти пользовательских процессов.
Читать дальше →
Всего голосов 28: ↑25 и ↓3+22
Комментарии12
1

Информация

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