Pull to refresh
0
0
Send message

Обсуждаем EARN IT Act — новый законопроект США, который может привести к запрету E2E-шифрования

Reading time3 min
Views13K
Сенаторы представили законопроект, который обяжет крупные медийные платформы отвечать за содержание пользовательских публикаций. ИБ-экспертов беспокоит, что его побочным эффектом может стать запрет сквозного шифрования. Рассказываем, как развивается эта ситуация.

Читать дальше →
Total votes 12: ↑11 and ↓1+16
Comments308

Кто такой DevOps и когда он не нужен

Reading time8 min
Views41K


Тема DevOps за последние несколько лет стала очень популярной. Многие мечтают в нее влиться, но, как показывает практика, часто только из-за уровня зарплат.

Некоторые указывают в своем резюме DevOps, хотя не всегда знают и понимают суть термина. Кто-то считает, что изучив Ansible, GitLab, Jenkins, Terraform и им подобные (список можно продолжать на свой вкус), то сразу станет «девопсом». Это, конечно, не так.
Читать дальше →
Total votes 45: ↑34 and ↓11+33
Comments111

TCP против UDP или будущее сетевых протоколов

Reading time27 min
Views173K
Перед каждым сервисом, генерирующим хотя бы 1 Мбит/сек трафика в интернете возникает вопрос: «Как? по TCP или по UDP?» В прикладных областях, в том числе и платформах доставки уже сложились предпочтения и традиции принятия подобных решений.

По идее, если бы, к примеру, однажды один ленивый разработчик не попробовал развернуть свой ML на Python (потому что только его и знал), мир скорее всего никогда не проникся бы такой любовью к презренному «супер-джава-кодерами» языку. А сегодня слабости этого языка в прошлом контексте применения безоговорочно обеспечивают ему первенство в развертывании и запуске многочисленных майнерских А/Б.

Сравнивать можно многое: ARM с Intel, iOS и Android, а Mortal Kombat с Injustice. И нарваться на космический холивар, поэтому вернемся к теме доставки огромных объемов разноформатного контента.

Десять лет назад все были абсолютно уверены, UDP — это что-то про негарантированную доставку. Если нужен надежный протокол — это TCP. И вопреки традициям в этой статье мы будем сравнивать такие, кажущиеся несравнимыми вещи, как TCP и UDP.


Осторожно, под катом 99 иллюстраций и схем и все важные.
Total votes 162: ↑159 and ↓3+156
Comments75

Сетевое программирование для разработчиков игр. Часть 1: UDP vs. TCP

Reading time9 min
Views172K
От переводчика: Это перевод первой статьи из цикла «Networking for game programmers». Мне очень нравится весь цикл статей, плюс всегда хотелось попробовать себя в качестве переводчика. Возможно, опытным разработчикам статья покажется слишком очевидной, но, как мне кажется, польза от нее в любом случае будет.


Привет, меня зовут Гленн Фидлер и я приветствую вас в первой статье из моей онлайн-книги “Сетевое программирование для разрабочиков игр”.

image

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

Вы, скорее всего, уже что-нибудь слышали о сокетах, и, возможно, знаете, что они делятся на два основных типа — TCP и UDP. Первое, что нужно решить при разработке многопользовательской игры — это какой тип сокетов использовать — TCP, UDP, или оба?
Читать дальше →
Total votes 86: ↑75 and ↓11+64
Comments53

Еще одна статья о code review

Reading time5 min
Views93K

Что такое code review


Code review - инженерная практика в терминах гибкой методологии разработки. Это анализ (инспекция) кода с целью выявить ошибки, недочеты, расхождения в стиле написания кода, в соответствии написанного кода и поставленной задачи.

К очевидным плюсам этой практики можно отнести:
  • Улучшается качество кода
  • Находятся «глупые» ошибки (опечатки) в реализации
  • Повышается степень совместного владения кодом
  • Код приводится к единому стилю написания
  • Хорошо подходит для обучения «новичков», быстро набирается навык, происходит выравнивание опыта, обмен знаниями.

Читать дальше →
Total votes 50: ↑41 and ↓9+32
Comments22

Ожирение — расслаблять и вовлекать

Reading time35 min
Views24K
Точный подход к вопросу о калориях


Очевидные причины


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

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

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

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

Трудно усомниться в очевидном. Солнце вращается вокруг Земли — не нужны доказательства тому, что видно невооруженным взглядом, не так ли? Не так.
Читать дальше →
Total votes 94: ↑50 and ↓44+6
Comments187

Лучшие материалы для самостоятельного изготовления медицинских масок

Reading time3 min
Views224K


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

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


Читать дальше →
Total votes 21: ↑13 and ↓8+14
Comments47

Роль самоизоляции и мытья рук

Reading time3 min
Views23K

Многие из нас уже несколько недель сидят дома и в голове все чаще звучит мысль — а нужно ли? Может быть власти и медиа сильно преувеличивают — если что и было, то уже закончилось, можно возвращаться в привычный ритм. В этой статье я дам вам возможность самим ответить на этот вопрос. Пользуясь случаем, я разработал приложение наподобие Plague Inc, только без игровой механики, но с возможностью точечной настройки параметров — Pandemic simulator. В статье я покажу, как отличается характер пандемии в зависимости от нас с вами — сидим ли мы дома и моем ли руки.



Вот так изменится население США в случае если у COVID-19 будет 90% летальность.

Читать дальше →
Total votes 42: ↑29 and ↓13+29
Comments161

Вечный сервер — как избавиться от ежемесячных платежей за хостинг

Reading time8 min
Views80K


— На вашем счету недостаточно средств для продления услуги. Вся ваша работа за 10 лет будет уничтожена в течение 2 рабочих дней.


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

В статье мы расскажем как избавиться от регулярных платежей на содержание хостинга, доменных имен, SSL-сертификатов. И как сделать максимально автономный сервер, который переживет зомби-апокалипсис.
Читать дальше →
Total votes 48: ↑37 and ↓11+39
Comments161

CloudFlare — рак интернета

Reading time5 min
Views224K


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

Когда CloudFlare только появился, это была настоящая революция в веб-хостинге: в два клика, без переезда на другой сервер, к своему сайту можно было подключить профессиональный CDN, который экономил кучу трафика, ускорял загрузку статических файлов и еще защищал от DDoS. Раньше позволить себе такое могли только компании за большие деньги, а теперь это стало доступно каждому, еще и бесплатно!

С тех пор CloudFlare сильно вырос и сегодня проксирует через свою инфраструктуру треть интернета. Из-за этого появились проблемы, которых раньше не существовало. В посте мы разберем, как CloudFlare угрожает нормальной работе интернета, мешает обычным людям пользоваться сайтами, имеет доступ к зашифрованному трафику, и что с этим делать.
Читать дальше →
Total votes 133: ↑127 and ↓6+173
Comments170

Коронавирус: как мы себя обманываем

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

Искажение смертности


Уверен для многих станет откровением факт того, что количество смертей при наличии коронавируса, зафиксированных в ВОЗ, не является числом смертей от коронавируса.

А как вы думали? Новая для человечества инфекция ещё до конца не изучена, но в больнице из пригорода какого-нибудь Ливорно уже умеют определять смерть от неё? Назвать причину смерти - это же не баг при компиляции отловить. Всё гораздо сложнее.

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

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

Именно поэтому ВОЗ чёрным по белому пишет
Определение истинной смертности от COVID-19 требует дополнительного времени. Сегодняшние данные свидетельствуют о том, что общий коэффициент смертности составляет 3–4%, при этом уровень смертности от инфекции будет ниже.
Читать дальше →
Total votes 447: ↑257 and ↓190+146
Comments1049

Orchestrator и VIP как HA-решение для кластера MySQL

Reading time7 min
Views7.4K
В Ситимобил мы используем базу данных MySQL в качестве основного хранилища постоянных данных. У нас есть несколько кластеров баз данных под различные сервисы и цели.

Постоянная доступность мастера является критическим показателем работоспособности всей системы и ее отдельных частей. Автоматическое восстановление кластера в случае отказа мастера сильно снижает время реагирования на инцидент и время простоя системы. В этой статье я рассмотрю схему обеспечения высокой доступности (HA) кластера MySQL на основе MySQL Orchestrator и виртуальных IP адресов (VIP).


Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments41

В софте всё восхитительно, но все недовольны

Reading time15 min
Views48K


Есть типичная позиция, которую можно встретить на Хабре и не только: «хотя железо с годами всё лучше, человечество свело эффект на нет тем, что пишет софт всё хуже».

Мол, ядер в процессорах стало больше, но тормозит всё пуще прежнего. Electron и Slack — порождения тьмы, пришедшие лишить нас счастья и памяти. Мобильные приложения стали прожорливее, чем старые операционные системы. А в самих операционных системах уже толком нет прогресса, но почему-то они продолжают разбухать в размерах. То ли дело было, когда люди умели уместить ОС на дискету!

Скажу прямо: когда я вижу подобные заявления, у меня бомбит. По-моему, в них упускают целый ряд важных факторов. А в итоге ситуация напоминает классическую речь Луи Си Кея «Everything's amazing and nobody's happy»: всё стало удивительно хорошо, а люди сидят и жалуются.

Поэтому решил описать эти упущенные факторы. Поскольку текст получился резким, хочу подчеркнуть, что мнение сугубо моё личное (хоть я и ссылаюсь на конференции компании, в которой работаю).
Total votes 145: ↑114 and ↓31+122
Comments1295

Async programming in .NET: Best practices

Reading time24 min
Views36K
Появление async/await в C# привело к пересмотру того, как писать простой и корректный параллельный код. Зачастую, используя асинхронное программирование, программисты не только не решают проблемы, которые были с потоками, но и привносят новые. Дедлоки и рейсы никуда не пропадают — их просто становится труднее диагностировать.



Дмитрий Иванов — Software Analysis TeamLead в Huawei, в прошлом техлид JetBrains Rider и разработчик ядра ReSharper: структур данных, кэшей, многопоточности, регулярный спикер конференции DotNext.

Под катом — видеозапись и текстовая расшифровка доклада Дмитрия с конференции DotNext 2019 Piter.
Total votes 30: ↑30 and ↓0+30
Comments6

Что такое «чистый код» в 2020-м?

Reading time10 min
Views42K

«Чистый код» и чистый кот

Разработчиков хлебом не корми, дай поспорить о чистоте кода: например, недавно шумиху навёл пост Дэна Абрамова «Goodbye, Clean Code».

Но при этом у самого понятия «чистый код» нет чёткого определения. Главная книга по этому вопросу — «Clean Code», где Роберт «Дядюшка Боб» Мартин сразу заявляет: «сколько программистов, столько и определений». Впрочем, из этого он делает не вывод «говорить об этом бесполезно», а вывод «стоит сравнить разные определения». Поэтому в книге он привёл мнения нескольких выдающихся программистов о том, что такое чистый код.

Нам стало интересно: в 2020-м представления человечества о чистом коде остались теми же, или с выхода книги как-то изменились? Различаются ли мнения у разных айтишников: может, бэкендеры видят всё с одного ракурса, а тестировщики с другого?

В апреле Дядюшка Боб прилетит в Петербург выступить на трёх наших конференциях, и они как раз по трём разным направлениям (про .NET-разработку, про тестирование и про JavaScript). Поэтому мы спросили нескольких спикеров этих конференций, что такое чистый код для них, чтобы сравнить мнения экспертов индустрии в 2020-м.

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

UPD: Когда мы писали эту статью, Роберт планировал приехать на наши конференции. К сожалению, ситуация изменилась. Также из-за запрета на проведение массовых мероприятий мы перенесли конференции на другие даты. Следите за обновлениями на сайте конференции. 13 марта мы обновили этот пост, чтобы он не содержал некорректную информацию.

Читать дальше →
Total votes 27: ↑26 and ↓1+36
Comments14

Моё разочарование в софте

Reading time11 min
Views390K

Суть разработки программного обеспечения
— Нужно проделать 500 отверстий в стене, так что я сконструировал автоматическую дрель. В ней используются элегантные точные шестерни для непрерывной регулировки скорости и крутящего момента по мере необходимости.
— Отлично, у неё идеальный вес. Загрузим 500 таких дрелей в пушку, которые мы сделали, и выстрелим в стену.


Я занимаюсь программированием уже 15 лет. Но в последнее время при разработке не принято думать об эффективности, простоте и совершенстве: вплоть до того, что мне становится грустно за свою карьеру и за IT-отрасль в целом.

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

Только в программном обеспечении считается нормальным, если программа работает на уровне 1% или даже 0,01% от возможной производительности. Ни у кого вроде нет возражений.
Total votes 505: ↑474 and ↓31+443
Comments2474

Текстовый редактор — это вам не высшая математика, тут думать надо

Reading time17 min
Views97K
Современные текстовые редакторы умеют не только бибикать и не давать выйти из программы. Оказывается, внутри них кипит очень сложный метаболизм. Хотите узнать, какие ухищрения предпринимаются для быстрого пересчета координат, как к тексту приделываются стили, фолдинги и софтврапы и как это всё обновляется, при чем тут функциональные структуры данных и очереди с приоритетами, а также как обманывать пользователя — добро пожаловать под кат!



В основе статьи — доклад Алексея Кудрявцева с Joker 2017. Алексей уже лет 10 пишет Intellij IDEA в JetBrains. Под катом вы найдете видео и текстовую расшифровку доклада.
Читать дальше →
Total votes 208: ↑206 and ↓2+204
Comments189

Эффективная работа из дома: общее и личное

Reading time9 min
Views84K


Моё домашнее рабочее место


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


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


Я работаю из дома много лет (сначала как фрилансер, сейчас как штатный удалённый сотрудник с фиксированным графиком), а также читал много чужих текстов об удалёнке. Всё это не сделало меня идеалом эффективности, у меня самого не во всём получается следовать собственным советам. Но они заметно помогают мне, и если вы сейчас оказались на удалёнке, то могут помочь и вам. Также буду рад дополнениям в комментариях.

Читать дальше →
Total votes 65: ↑62 and ↓3+82
Comments65

Вышел релиз GitLab 12.8 с обозревателем логов, NuGet и панелью управления соответствием требованиям

Reading time29 min
Views3.9K

Картинка для привлечения внимания


Новый релиз GitLab 12.8 посвящен подходу «единое место»: для всех ваших логов, пакетов NuGet и контроля за соответствием требованиям. По аналогии с тем, что GitLab — это единое место для всего вашего жизненного цикла DevOps.

Читать дальше →
Total votes 4: ↑3 and ↓1+4
Comments6

Представляем PowerShell 7.0

Reading time4 min
Views18K
Сегодня мы рады объявить о выпуске общедоступной (GA) версии PowerShell 7.0! Прежде всего, мы хотели бы поблагодарить наших многочисленных контрибьюторов за то, что сделали этот выпуск возможным, поделившись кодом, тестами, документацией и отзывами о проблемах. PowerShell 7 не был бы возможен без вашей помощи.



Что такое PowerShell 7?


Для новичков, PowerShell 7 является последним крупным обновлением PowerShell, кросс-платформенного (Windows, Linux и macOS) инструмента автоматизации и инфраструктуры конфигурации, оптимизированной для работы со структурированными данными (например, JSON, CSV, XML и т. д.), REST API и объектными моделями. PowerShell включает оболочку командной строки, объектно-ориентированный язык сценариев и набор инструментов для выполнения сценариев/командлетов и управления модулями.
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments5
1
23 ...

Information

Rating
Does not participate
Registered
Activity