Pull to refresh
0
0
Eduard Bader @edb

User

Send message

Модернизация старого PHP-приложения

Reading time6 min
Views8.9K

Недавно мне выдалась случайная возможность поработать с несколькими старыми PHP-приложениями. Я заметил несколько распространённых антипаттернов, которые пришлось исправлять. Эта статья не о том, как переписывать старое PHP-приложение на <вставьте сюда название чудесного фреймворка>, а о том, как сделать его более удобным в сопровождении и менее хлопотным в работе.
Читать дальше →
Total votes 37: ↑35 and ↓2+33
Comments17

Создание CI/CD-цепочки и автоматизация работы с Docker

Reading time15 min
Views50K
Я написала мои первые сайты в конце 90-х. Тогда приводить их в рабочее состояние было очень просто. Был Apache-сервер на каком-нибудь общем хостинге, на этот сервер можно было войти по FTP, написав в браузерной строке нечто вроде ftp://ftp.example.com. Потом надо было ввести имя и пароль и выгрузить файлы на сервер. Другие были времена, всё тогда было проще, чем сейчас.



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

Для моего персонального проекта у меня была особая конфигурация. И я знала, что мне нужна возможность разворачивать сайт в продакшне, выполняя всего одно действие: запись кода в ветку master на GitHub. Я, кроме того, знала, что мне, для обеспечения работы моего маленького веб-приложения, не хочется заниматься управлением огромным кластером Kubernetes, или пользоваться технологией Docker Swarm, или поддерживать парк серверов с подами, агентами и всякими другими сложностями. Для того чтобы достичь цели по максимальному упрощению работы, мне понадобилось познакомиться с CI/CD.

Если у вас имеется маленький проект (в нашем случае речь идёт о Node.js-проекте) и вам хотелось бы узнать о том, как автоматизировать развёртывание этого проекта, сделав при этом так, чтобы то, что хранится в репозитории, в точности соответствовало бы тому, что работает в продакшне, то, полагаю, вас может заинтересовать эта статья.
Читать дальше →
Total votes 31: ↑31 and ↓0+31
Comments4

Cложный код или история одного интервью

Reading time5 min
Views15K
Хотелось бы поделиться своей историей неудачи, если понимать под этим негативный фидбек от компании после ревью технического задания. Конечно же, каждый подобный опыт — это всегда прекрасная возможность пересмотреть стратегию, сделать определенные выводы из своих или чужих ошибок. И в данном случае, у меня есть отличный повод порефлексировать над пережитым опытом интервью, даже несмотря на то, что он не закончился оффером. Хочу заранее выразить свою благодарность за время, которое вы потратите на чтение этой статьи с кодом и усилия, приложенные на их понимание. Хочу выразить двойную благодарность, если при этом читатель поделится своим мнением.
Читать дальше →
Total votes 35: ↑30 and ↓5+25
Comments67

«Двойное дно Telegram» — Конкурс на $5000

Reading time1 min
Views32K


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



Ни один из популярных мессенджеров не имеет защиты от подобной «атаки». Мы предлагаем тебе исправить эту ситуацию на основе открытого кода Telegram. Если твое решение окажется лучшим, то ты получишь 5000$. Твоей задачей будет разработать принцип «двойного дна» в оригинальном клиенте Telegram.

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

Подробнее о конкурсе на нашем Telegram-канале @postuf
Total votes 38: ↑31 and ↓7+24
Comments175

Хиральность, космические лучи и эволюция

Reading time10 min
Views12K


Случайности неслучайны, по крайней мере, если более пристально рассмотреть законы природы, управляющие миром вокруг нас. Каждый элемент, каждая молекула подчиняются определенным правилам, нарушив которые они могут попросту перестать существовать. Вся структура мироздания, несмотря на видимый хаос, весьма упорядочена. Правда не всегда удается понять, почему все устроено именно так, и никак иначе. Сегодня мы познакомимся с исследованием, в котором ученые из Стэнфордского университета (США) выдвинули теорию о том, что один из основополагающих элементов нашего мира, хиральность, был сформирован посредством длительного влияния космических лучей. Что такое хиральность, как именно космические лучи повлияли на ее формирование и как это проверить? Ответы ждут в докладе ученых. Поехали.
Читать дальше →
Total votes 37: ↑36 and ↓1+35
Comments12

Коронавирус: почему надо действовать прямо сейчас

Reading time19 min
Views5.6M

Вступление


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

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

  • Сколько людей заболеют коронавирусом в вашем регионе?
  • Что случится, когда они начнут заболевать?
  • Что вы должны делать?
  • Когда?

Когда вы закончите читать статью, вы придёте к следующим выводам:

  • Коронавирус приближается к вам.
  • Он приближается с экспоненциальной скоростью: сперва постепенно, а потом внезапно.
  • Это вопрос нескольких дней. Может быть, неделя или две.
  • Когда это случится, ваша система здравоохранения будет перегружена.
  • Ваши сограждане будут лечиться в коридорах.
  • Изможденные медицинские работники сломаются. Некоторые погибнут.
  • Им придётся решать, кто из пациентов получит лечение, а кто умрет.
  • Единственный способ предотвратить это — социальная изоляция уже сегодня. Не завтра. Сегодня.
  • Это значит держать как можно больше людей дома, начиная с сегодняшнего дня.

Если вы политик, общественный деятель или руководитель, у вас есть власть и ответственность, чтобы предотвратить описанное выше.

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

Однако через 2-4 недели, когда весь мир будет закрыт и изолирован, когда окажется, что несколько драгоценных дней социальной изоляции, которые вы организовали, спасли жизни, вас больше не будут критиковать. Люди будут благодарить вас за то, что вы приняли правильное решение.

Итак, давайте разбираться.
Много графиков и длинный текст
Total votes 568: ↑512 and ↓56+456
Comments2074

Инструменты Domain Driven Design

Reading time11 min
Views23K
Синий кит — отличный пример того, как проектирование сложного проекта пошло не по плану. Кит внешне похож на рыбу, но он млекопитающее: кормит детенышей молоком, у него есть шерсть, а в плавниках до сих пор сохранились кости предплечья и кистей с пальцами, как у сухопутных. Он живет в океанах, но не может дышать под водой, поэтому регулярно поднимается на поверхность глотнуть воздуха, даже когда спит. Кит самое большое животное в мире, длиной с девятиэтажный дом, а массой как 75 автомобилей Volkswagen Touareg, но при этом не хищник, а питается планктоном.

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



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

Что такое DDD и какие инструменты в нем есть, мы расскажем в статье на основе доклада Артема Малышева. Подход DDD в Python, инструменты, подводные камни, контрактное программирование и проектирование продукта вокруг решаемой проблемы, а не используемого фреймворка — все это под катом.
Total votes 31: ↑28 and ↓3+25
Comments26

Предсказываем финансовые кризисы с помощью Python

Reading time12 min
Views20K
По состоянию на 9 марта 2020 мы имеем резкое снижение рынков США начиная с исторического максимума в 20-числах февраля 2020, которое на данный момент составило около -16%. Новости пестрят заголовками про надвигающуюся рецессию из-за коронавируса, Россия вышла из сделки Опек+, что ударило по ценам на нефть (-20% за день) и завтра, (10 марта 2020) ожидается снижение рынка ММВБ также на 20%, судя по котировкам наших акций на западных рынках.


Ждет ли нас глобальная рецессия? В этой статье мы попробуем разобраться как можно заранее увидеть сигналы начала рецессии средствами Python.
Читать дальше
Total votes 18: ↑17 and ↓1+16
Comments38

Laravel+Docker+Gitlab. С чего начать

Reading time19 min
Views36K
Я обычно всегда обходился без докера и думал, что докер нужен только для больших проектов в больших компаниях. Но однажды я увидел как работает докер в паре с гитлабом у моего товарища и понял, что мне все таки стоит его изучить. Однако, как обычно это бывает, одной подходящей статьи я не нашел — они были либо слишком сложные, либо не полные, либо подразумевали, что вы все знаете само собой. Мне пришлось долго искать различные источники, соединять все это вместе и в итоге у меня получилось сделать простенький проект и CI/CD для него.

Всю работу можно разделить на три части: на локальной машине, на гитлабе и на сервере.

Итак, для реализации проекта нам понадобится аккаунт gitlab и удаленный сервер с виртуализацией KVM или XEN.

Часть 1. Локальная машина


На локальной машине необходимо установить docker.

Замечание
Тут небольшое отступление. Docker можно поставить как на Linux системах (как Ubuntu, например), так и на Windows и MacOS. По поводу macos я ничего сказать не могу, а вот установка под Windows не самая хорошая идея для начинающего. Как минимум из-за того, что все мануалы и документации написаны для linux систем. Так и из-за того, что можно нажить проблем с доступом к различным папкам и файлам. Также докер конфликтует с виртуальной машиной VirtualBox. Поэтому проще и быстрее будет сделать виртуальную машину с Ubuntu и работать под ней
Total votes 16: ↑14 and ↓2+12
Comments26

React.js: собираем с нуля изоморфное / универсальное приложение. Часть 1: собираем стек

Reading time22 min
Views195K
image

Лицо моей жены, когда она вычитывала эту статью


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


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

Читать дальше →
Total votes 51: ↑46 and ↓5+41
Comments78

Книга «Вселенная. Путешествие во времени и пространстве»

Reading time1 min
Views5.8K
image «Вселенная. Путешествие во времени и пространстве» написана профессиональным астрономом, директором Астрономической обсерватории Иркутского государственного университета Сергеем Язевым.

«О если бы писали мы о том лишь, что доподлинно известно, подумайте, о трезвые умы, как было бы читать неинтересно!»

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

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

Музей космонавтики
Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments1

Cassandra. Как не умереть, если знаешь только Oracle

Reading time6 min
Views21K
Привет, Хабр.

Меня зовут Миша Бутримов, я хотел бы хотел немного рассказать про Cassandra. Мой рассказ будет полезен тем, кто никогда не сталкивался с NoSQL-базами, — у нее есть очень много особенностей реализации и подводных камней, про которые нужно знать. И если кроме Oracle или любой другой реляционной базы вы ничего не видели, эти вещи спасут вам жизнь.

Чем хороша Cassandra? Это NoSQL-база данных, cпроектированная без единой точки отказа, которая хорошо масштабируется. Если вам нужно добавить пару терабайт для какой-нибудь базы, вы просто добавляете ноды в кольцо. Расширить ее на еще один дата-центр? Добавляете ноды в кластер. Увеличить обрабатываемый RPS? Добавляете ноды в кластер. В обратную сторону тоже работает.



В чем еще она хороша? В том, чтобы обрабатывать много запросов. Но много — это сколько? 10, 20, 30, 40 тысяч запросов в секунду — это немного. 100 тысяч запросов в секунду на запись — тоже. Есть компании, которые говорили, что они держат 2 млн. запросов в секунду. Вот им, наверное, придется поверить.

И в принципе у Cassandra есть одно большое отличие от реляционных данных — она вообще на них не похожа. И об этом очень важно помнить.
Читать дальше →
Total votes 29: ↑28 and ↓1+27
Comments29

Свидетельства, по нескольку десятилетий обманывавшие учёных

Reading time4 min
Views48K


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

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

Обычно учёные при сборе свидетельств делают предсказания чего-либо, и смотрят, насколько они оказались правы. Проблемы случаются, когда предсказания оказываются правильными, а теория, использовавшаяся для их создания, оказывается неправильной. Предсказания, кажущиеся особенно рискованными, и оказавшиеся правильными, кажутся очень убедительными свидетельствами, как часто подчёркивали Карл Поппер и другие философы науки. Но история показывает, что даже очень убедительные свидетельства могут обмануть нас.
Читать дальше →
Total votes 88: ↑78 and ↓10+68
Comments91

«Резни не будет» — рассказ о переводе «Червя»

Reading time11 min
Views19K
image

В конце прошлого года случилось давно ожидаемое литературное событие — группа переводчиков, которая в течении пяти лет переводила роман «Червь» известного канадского писателя Джона МакКрэя, пишущего под псевдонимом «Wildbow», наконец-то завершила работу.

Если вы не слышали об этом романе, или не брались за него по причине незавершенности перевода, то я вам даже немного завидую — вас ожидает пара месяцев (а то и полгода — роман чудовищно, невообразимо огромен) отличного чтения. «Червь» сложный, многоплановый НФ триллер со сложным рациональным сюжетом. (Немного больше здесь:)
Внимание: Опасайтесь спойлеров — роман к ним чувствителен. Поэтому, если вы не прочли роман — лучше всего отложить чтение статьи и скачать книгу. Помните: несмотря на то, что текст распространяется свободно, автору очень нужны ваши пожертвования — это основной источник его доходов.
Ну, а тех из читателей, что уже прочли роман, я приглашаю познакомиться с «Клубом любителей попереводить Червя» — с командой, подарившей нам русский перевод. Уверен, что даже далеким от литературы читателям Хабра будет интересно ознакомиться с опытом организации успешного проекта, связавшего воедино множество творческих личностей.
Читать дальше →
Total votes 25: ↑25 and ↓0+25
Comments152

Письмо начинающему изучать Data Science

Reading time2 min
Views63K

Я бы хотел получить такое письмо три года назад, когда только начинал изучать Data Science (DS). Чтобы там были необходимые ссылки на полезные материалы. Статья не претендует на полноту охвата необъятной области DS. Однако для начинающего специалиста будет полезна.


Нейронные сети – это...

Читать дальше →
Total votes 62: ↑45 and ↓17+28
Comments21

Принцип увеличения гибкости характеристик современных автомобильных ДВС

Reading time10 min
Views15K

Насколько важно иметь совершенный код в программе для ее быстрой и качественной работы? Настолько же важно для ДВС тратить меньше энергии там, где этих затрат можно избежать.
Прошлая статья из-за упрощений вызвала вопросы критического характера у части хабра-людей. В этой я попробую ответить на них подробнее как и обещал, а так же раскрыть один из основных принципов ДВС последних десятилетий упомянутый в статье «Эволюция развития автомобильных двигателей с начала 90-х годов.»
Total votes 23: ↑20 and ↓3+17
Comments55

Объяснение парадокса Ферми в рамках космической социологии Лю Цысиня

Reading time7 min
Views26K
Млечный путь

Не будем спойлерить сюжет или технологии, описанные в увлекательной трилогии «Память о прошлом Земли», нас интересует объяснение парадокса Ферми, данное китайским писателем, и только оно.
Читать дальше
Total votes 38: ↑34 and ↓4+30
Comments558

Книга «Нереальная реальность. Путешествие по квантовой петле»

Reading time9 min
Views11K
image Привет, Хаброжители! Что есть время и пространство? Откуда берется материя? Что такое реальность?
«Главный парадокс науки состоит в том, что, открывая нам твердые и надежные знания о природе, она в то же время стремительно меняет ею же созданные представления о реальности. Эта парадоксальность как нельзя лучше отражена в книге Карло Ровелли, которая посвящена самой острой проблеме современной фундаментальной физики — поискам квантовой теории гравитации. Упоминание этого названия многие слышали в сериале “Теория Большого взрыва”, но узнать, в чем смысл петлевой гравитации, было почти негде. А между тем эта теория — один из важных игроков на переднем крае фундаментальной физики», — Александр Сергеев, сооснователь, автор заданий и завлаб проекта «Открытая лабораторная».
Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments13

Chaos Engineering: искусство умышленного разрушения. Часть 1

Reading time15 min
Views38K
Прим. перев.: Рады поделиться переводом замечательного материала от старшего технологического евангелиста из AWS — Adrian Hornsby. В простых словах он объясняет важность экспериментов, призванных смягчить последствия сбоев в ИТ-системах. Вы, наверное, уже слышали про Chaos Monkey (или даже применяли подобные решения)? На сегодняшний день подходы к созданию подобных инструментов и их реализация в более широком контексте осуществляются в рамках деятельности, которую называют chaos engineering. Подробнее о ней читайте в этой статье.



«Но за всей этой красотой скрывается хаос и безумие». — Tanner Walling

Пожарные. Эти высококвалифицированные специалисты каждый день рискуют жизнью, борясь с огнем. Знаете ли вы, что перед тем, как стать пожарным, необходимо провести в тренировках минимум 600 часов? И это только начало. Согласно отчетам, пожарные тренируются до 80% своего рабочего времени.

Почему?

Total votes 43: ↑42 and ↓1+41
Comments3
1
23 ...

Information

Rating
Does not participate
Registered
Activity