Как стать автором
Обновить
45
15
Ярослав @ELEKTRO_YAR

не имею конкретной специальности

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

Проблемная секунда

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

Сегодня каждый может легко проверить текущее время множеством способов. У нас есть смартфоны, часы, компьютеры, ТВ, холодильники и так далее. Все знают, какой на дворе год, и что он означает. Мы разбираемся во временны́х зонах и знаем, что такое всемирное координированное время (UTC). Всё кажется таким тривиальным. Однако с точки зрения IT-систем здесь существует множество сюрпризов, вынуждающих нас сталкиваться с проблемами, которые возникают очень редко.

В различных IT-системах можно встретить множество нюансов, касающихся времени. Чаще всего они связаны с точностью его измерения и синхронизации между машинами в распределённых системах. В этой же статье я разберу одну странную ситуацию, которая за всю историю случалась лишь несколько раз.
Читать дальше →
Всего голосов 63: ↑60 и ↓3+73
Комментарии63

Почему свободного времени всё меньше, если производительность труда растёт?

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


Последние сто лет производительность труда ежегодно растёт. Благодаря научно-техническому прогрессу человек с компьютером заменяет тысячу бухгалтеров и вычислителей 19 века. Но не работает меньше. Скорее наоборот. Он работает больше.

В конце 19 века считалось, что промышленная революция приведёт к постепенному сокращению рабочей недели с увеличением свободного времени, посвящённого саморазвитию и социальной активности. Такие же надежды связывались с компьютерами и автоматизацией. Всё будут делать роботы, а человек сможет отдохнуть и заняться более высокими делами, творчеством, наукой и философскими диспутами. Один из самых известных экономистов Джон Кейнс в 1930 году прогнозировал, что к концу столетия люди будут работать не более 15 часов в неделю.

Как видим, этого не произошло.
Читать дальше →
Всего голосов 120: ↑101 и ↓19+112
Комментарии869

MessagePack аналог JSON, но быстрее и меньше

Время на прочтение3 мин
Количество просмотров54K
MessagePack это эффективный сериализатор данных в бинарное представление.



Используя данную библиотеку вы можете обмениваться сообщениями между вашими компонентами системы подобно тому, как вы это делаете с помощью формата JSON. Интерпретация библиотеки существует для 44 языков программирования (!)
Читать дальше →
Всего голосов 26: ↑16 и ↓10+6
Комментарии54

Есть ли у Вселенной центр и куда указывает «дьявольская ось»?

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

Первые пятьсот лет прошлого тысячелетия никто не сомневался, что непоколебимый центр мира существует - и в нем находится Земля. Потом Коперник потряс основы мироздания, переместив Солнце в центр Вселенной и опустив Землю до рядовой планеты. Центр у Вселенной сохранился, но осадочек остался. Дальше – больше: потом и Солнце приравняли к обычным звездам и стали считать, что Млечный Путь является Вселенной, соответственно, центр нашей Галактики и является центром мира.

            Настал 20 век вместе с полной чехардой в науке. Весто Слайфер, сын фермера и сотрудник частной обсерватории Лоуэлла, уже в первое десятилетие этого беспокойного века показал, что Млечный Путь – тоже рядовая галактика, несмотря на то, что она нам как родная. Где центр у Вселенной будем делать? – совсем растерялись астрономы. Но в 1922 году многомудрый Фридман, на основе недавно созданной теории Эйнштейна придумал такую хитрую модель расширяющейся Вселенной, в которой центра-то и нет! Такая модель распухающего во все стороны теста с изюмом, где все изюминки (галактики) двигаются друг от друга, или, другими словами, расстояние между всеми галактиками растет. Так что, где хотите, там центр Вселенной делайте, да хоть на Земле! Чувствуете, как круг замкнулся?

            Конечно, концепция чего-то, которое неизвестно откуда и куда расширяется во всех точках одновременно, в обычных головах никак не укладывается. Ну и что? Зато всем понятно, что только космологи могут объять необъятное, а другие пусть просто благоговеют, глядя на них.

Читать далее
Всего голосов 106: ↑97 и ↓9+117
Комментарии360

Как я зарабатывал 13 млн в год на любителях пассивного дохода

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

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

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

Читать далее
Всего голосов 183: ↑170 и ↓13+210
Комментарии534

Как в Google выполняют ревью кода

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

Critique и Gerrit

У Google есть два собственных инструмента для ревью кода: Critique, используемый большинством инженеров, и Gerrit, — опенсорсный, который продолжают применять в публичных проектах.

(Вы можете сами поэкспериментировать с Gerrit в опенсорсных репозиториях Chromium и Android.)

Дэшборды

Когда инженеры логинятся с утра или когда устраивают перерыв для ревью пул-реквестов, внутри Google называемых change list, или CL, и в Critique, и в Gerrit они работают с дэшбордами, в которых можно легко вкратце просмотреть все актуальные изменения (это похоже на окно пул-реквестов репозитория GitHub, только более сложное и информационно насыщенное).

В дэшборде Gerrit есть единичный поиск, извлекающий такую информацию, как размер изменения и более подробные сведения о статусе CL (три столбца справа).

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

Ненавижу, _____, C++ массивы

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

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

Но почему?
Всего голосов 47: ↑45 и ↓2+58
Комментарии171

Учимся летать: симуляция эволюции на Rust. 2/5

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



Это вторая часть серии статей по разработке симуляции эволюции с помощью нейронной сети и генетического алгоритма.






В этой статье мы заложим основы нашего проекта и реализуем простую FFNN (feedforward neural network — нейронная сеть прямого распространения), которая впоследствии станет мозгом. Мы также рассмотрим множество тонкостей и идиом, которые встречаются в коде Rust, включая тесты.


Готовы? Тогда поехали.

Читать дальше →
Всего голосов 30: ↑30 и ↓0+40
Комментарии4

Bricks: новый подход к управлению интерфейсами

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

Создавать удобную разметку страниц и менять интерфейс в зависимости от потребностей продукта без работы с кодом — легко. Об опыте Авито рассказал тимлид команды Bricks Алексей Ивасюта.

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

Я проработал в IT больше 10 лет. Вот 5 вещей, которые я бы хотел знать, если бы начинал сейчас

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

Привет, дорогой Хабр. Душа просит выговориться, так что я пришел к тебе – заодно надеюсь поделиться чем-то полезным с молодыми айтишниками. За свою карьеру я прошел через фриланс, стажировки, корпорации, смену профессии и даже запуск собственного SaaS'а (об этом как-нибудь отдельно...). Я наделал кучу ошибок и набил болезненных шишек. Под катом я вспоминаю 5 важных уроков, которые я бы хотел получить 10 лет назад.

Под кат →
Всего голосов 161: ↑144 и ↓17+146
Комментарии239

Сколько фотонов принимается на бит, переданный с «Вояджера-1»?

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

Согласно https://voyager.jpl.nasa.gov/, на 2024 год «Вояджер-1» находится примерно в одном световом дне от Земли и до сих пор поддерживает радиоконтакт. Когда он отправляет сообщения на Землю, примерно сколько фотонов (1) передаётся и (2) получается на бит?

Для точного расчёта нам нужно определиться с параметрами (вы можете их поменять, но ответ изменится не очень сильно):

Читать далее
Всего голосов 75: ↑74 и ↓1+98
Комментарии114

Разбор документа про AGI от Леопольда Ашенбреннера, бывшего сотрудника OpenAI

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

Леопольд Ашенбреннер, бывший сотрудник OpenAI из команды Superalignment, опубликовал документ под названием «Осведомленность о ситуации: Предстоящее десятилетие», в котором он делится своим видением будущего ИИ. Основываясь на своих знаниях в этой области, Ашенбреннер предсказывает стремительное развитие искусственного интеллекта в ближайшее десятилетие.

Мы прочитали этот документ объемом в 165 страниц за вас. В этой статье расскажем о ключевых идеях Ашенбреннера и о его прогнозах на будущее искусственного интеллекта.

Читать далее
Всего голосов 54: ↑51 и ↓3+62
Комментарии214

Автодокументация Doxygen и её развертывание на GitHub Pages

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

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

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

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

Кроссплатформенный многопоточный TCP/IP сервер на C++

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

Решил задаться целью написать простой в использовании и при этом быстрый многопоточного TCP/IP сервера на C++ и при этом кроссплатформенный — как минимум чтобы работал на платформах Windows и Linux без требования как-либо изменять код за пределами самописной библиотеки. Ранее, на чистом C++ без библиотек вроде Qt, сетевым программировнием не занимался, и предвещал себе долгое время мучений с платформо-зависимостью. Но как оказалось всё гораздо проще чем казалось на первый взгляд, ведь в основном интерфейсы сокетов обоих систем похожи как две капли воды и различаются лишь в мелких деталях.

Читать дальше →
Всего голосов 23: ↑10 и ↓13+5
Комментарии40

Объявляю ошибку вида if (x = 42) вымирающей и заношу её в Красную книгу C и C++ багов

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

Редкий вид бага
Если спросить программиста, какие баги чаще всего можно встретить в C и C++ коде, он назовёт разыменование нулевого указателя, неопределённое поведение, выход за границу массива и другие, на его взгляд, типовые паттерны ошибок. Скорее всего, он назовёт и случайное присваивание в условии. Но действительно ли эта ошибка распространена в наше время?

Читать дальше →
Всего голосов 61: ↑60 и ↓1+80
Комментарии109

C#: требования и рекомендации по написанию кода

Время на прочтение5 мин
Количество просмотров146K
Не так давно в комментариях к топику AlexS высказал идею использования соглашения об оформлении на Хабре кода примеров темы .Net написанных на C#.

Я немного поизучал имеющиеся предложения из этих источников:
submain.com/blog/FreeCVBNETCodingGuidelinesEbookDownload.aspx
idesign.net/idesign/DesktopDefault.aspx
и скомпилировал черновик который описывает самые базовые правила оформления кода написанного на C#.

Предлагаю:
— обсудить этот черновик;
— внести в него все необходимые изменения;
— утвердить как стандарт написания C# кода на Хабре.
Более того, предлагаю создать документ, который можно было бы предложить как рекомендации habrahabr comunity для всех других программистов C#.

Под катом вы найдете текст черновика. Предлагаю всем желающим обсудить его и подвергнуть надлежащей правке.

Читать дальше →
Всего голосов 31: ↑24 и ↓7+17
Комментарии117

Вы все еще пишете многопоточку на C++ с ошибками синхронизации?

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

Демонстрация идеи будет проходить на живых примерах кода на современном C++. Большинство описанных решений я применял сначала на собственных проектах, а теперь часть этих подходов уже используется в нашей собственной микроядерной операционной системе «Лаборатории Касперского» (KasperskyOS).

Сразу хочу оговориться, что тема многопоточности — очень большая и серьезная. И эта статья — не полноценный анализ проблем многопоточки, а только частНЫе (но довольно частЫе) кейсы, когда мы вынуждены использовать мьютексы.
Читать дальше →
Всего голосов 53: ↑47 и ↓6+57
Комментарии148

Как работает, и работает ли вообще разговорная психотерапия

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

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



tl;dr: в длинной и нудной статье рассматривается вопрос эффективности психотерапии (да, эффективна, в своих границах применимости, разумеется), а также приводятся размышления относительно того, каким образом эта эффективность достигается (посредством реализации морфологических и метаболических изменений за счёт нейропластичности мозга).

В конце бонус для любителей видеоформата (если таковые найдутся): запись презентации на тему этой статьи: если лениво читать, можно посмотреть.
Всего голосов 43: ↑42 и ↓1+41
Комментарии146

WireGuard Воскрес

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

Спешим к сообществу с радостной новостью - заблокированный WireGuard можно реанимировать с помощью нашего клиента AmneziaVPN!

Многие из вас слышали, что в России и некоторых других странах блокируются VPN, работающие на протоколе WireGuard. Теперь есть решение, чтобы он снова заработал!

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

Что такое дрифт ML-моделей и как его мониторить?

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

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

Теперь клиенты Selectel могут оптимизировать управление DS/ML-моделями с помощью MLOps-платформы Neoflex Dognauts. Она обеспечивает автоматизацию полного цикла разработки и эксплуатации моделей машинного обучения.
Читать дальше →
Всего голосов 38: ↑37 и ↓1+46
Комментарии2

Информация

В рейтинге
495-й
Откуда
Россия
Зарегистрирован
Активность

Специализация

Fullstack Developer
Middle
От 5 000 $
C++
C
Software development