Pull to refresh
Александр Лебедев @Amikkoread⁠-⁠only

Разработчик

Send message

Мифы об универсальном идентификаторе

Level of difficultyEasy
Reading time6 min
Views3.2K

Существует замечательная теория, что все проблемы с хранением пользовательских данных в базах — это последствие отсутствия единых идентификаторов. Дескать, номер паспорта может меняться, ФИО может дублироваться у нескольких пользователей, а «внутренние» идентификационные номера в различных ведомствах могут не совпадать.

И стоит только провести массовую персонализацию (централизованное присвоение всем гражданам и негражданам специальных идентификаторов), как все проблемы будут решены и наступит цифровой рай.

Так оно или нет? Можно спорить, можно смотреть на опыт внедривших стран. Я же постараюсь описать типовые ошибки при проектировании и разработке систем, хранящих Единый Идентификатор.

Читать далее
Total votes 8: ↑7 and ↓1+6
Comments21

Заблуждения об именах в документах

Level of difficultyEasy
Reading time6 min
Views12K

Умный дядя по имени Дейл Карнеги писал, что имя человека - самый сладостный и самый важный для него звук на любом языке. Соответственно, лучший способ обидеть пользователя – исказить его имя в базе или не принять вводимое значение.

Присвоение и изменение имени/фамилии/отчества в каждой стране регулируются Семейными Кодексами и соответствующими Законами. При этом законодательные акты не предусматривают exceptons, которые могут произойти в реальной жизни. А рядовые аналитики и программисты не всегда готовы читать сотни страниц канцелярита, чтобы узнать требования к полям в базе и формах. Дабы случайно зарегистрировавшийся Аполлинарий Воскобойников не обрушил старательно разработанную систему, добро пожаловать под кат.

Читать далее
Total votes 22: ↑22 and ↓0+22
Comments77

Питер Хиггс, лауреат Нобелевской премии, предсказавший существование «частицы Бога», умер в 94 года

Level of difficultyEasy
Reading time7 min
Views2.5K

Питер Хиггс, предсказавший существование новой частицы, названной в его честь (а также в честь Бога), умер в понедельник у себя дома в Эдинбурге, Шотландия. Ему было 94 года. Он положил начало полувековому поиску этой частицы по всему миру, на которые были потрачены миллиарды долларов, завершившемуся шампанским в 2012 году и Нобелевской премией годом позже.

Причиной смерти стало заболевание крови, сообщил Алан Уокер, его близкий друг и коллега-физик из Эдинбургского университета, где доктор Хиггс был почётным профессором.

Доктор Хиггс был 35-летним доцентом университета в 1964 году, когда он предположил существование новой частицы, которая могла бы объяснить, как другие частицы приобретают массу. Бозон Хиггса, также известный как "частица Бога", стал краеугольным камнем набора теорий, известных как Стандартная модель, в которой собраны все знания человека об элементарных частицах и силах, с помощью которых они формируют природу и Вселенную.

Читать далее
Total votes 10: ↑9 and ↓1+8
Comments3

Быстрый запуск pet-проекта на Python и PostgreSQL

Level of difficultyEasy
Reading time11 min
Views6.6K

Уверен, небольшие pet-проекты полезны не только для прокачивания навыков, но и для отвлечения от рабочей рутины и - нередко - для решения небольших практических задач. 

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

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

Про использование Python понятно из сабжа, ну а добиться максимально быстрого запуска нам позволят встроенные CI/CD процессы от Amvera, которые буквально из кода соберут работающий сервис. 

Детали под катом
Total votes 5: ↑5 and ↓0+5
Comments6

Мега-Учебник Flask Глава 3: Веб-формы (издание 2024)

Level of difficultyMedium
Reading time16 min
Views4.3K

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

Начать изучение
Total votes 8: ↑8 and ↓0+8
Comments2

Регистрация компании в Саудовской Аравии

Reading time22 min
Views848

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

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

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

Читать далее
Total votes 6: ↑5 and ↓1+4
Comments0

Универсальные типы в python

Level of difficultyMedium
Reading time7 min
Views6.8K

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

Меня зовут Саша, и в своей работе часто сталкиваюсь с ситуациями, когда нужно создавать классы, работающие с различными типами, и при этом избегать дублирование кода, а также получать актуальные подсказки от type checker'а.

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

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

Читать далее
Total votes 18: ↑17 and ↓1+16
Comments6

Хранение загружаемых пользователями файлов

Level of difficultyEasy
Reading time7 min
Views3.4K

В самом начале своей карьеры я имел честь в одно лицо разрабатывать проект, предназначенный для массового пользователя. Надо сказать, что почти все основополагающие принципы того, как провалить проект, были соблюдены, однако, он до сих пор жив. Проект был предназначен для принудительного использования определенной категорией работников бюджетной сферы. Технического задания, аналитики, дизайн-документов, макетов в Фигме, лавандового смузи, и прочих этих ваших модных слов, без которых N лет назад строили БАМ и Траннсиб не было от слова совсем. Зато, были процессы “в бумаге”, которые требовалось оцифровать. Поэтому то, что можно было принять за ТЗ, выглядело как “Эти (работники) заполняют вот это (бумаги) потом несут тем (проверяющим) а дальше все это хранится, сделай чтобы они с компьютера могли загрузить и отправить, у нас тут целый этаж бумагами занят, пожар начнется - всему хана”. Используя весь свой багаж знаний и опыта в построении высоконагруженных систем (на этом месте я отошел от написания статьи сначала проржаться а потом поплакать), я приступил к реализации.

Читать далее
Total votes 17: ↑14 and ↓3+11
Comments2

Корабль в бутылочном горлышке. Ever Given и прохладные перспективы контейнерного флота

Reading time10 min
Views58K

Сегодня я решил вернуться к уже несколько отшумевшему событию — застреванию контейнеровоза «Ever Given» в Суэцком Канале. Освещение этой темы в новостях показалось мне однобоким: корабль, который кажется динозавром по сравнению с аналогичными судами, ходившими еще 20 лет назад, сел на мель в самом узком месте глобальной транспортной системы, чем нанес заметный убыток всей мировой экономике, а также серьезно пошатнул репутацию гонконгской компании, которая его зафрахтовала.

Многие источники, в том числе Sputniknews, указывали, что высветившаяся при этом уязвимость Суэцкого канала должна (на фоне глобального потепления) подстегнуть развитие Северного Морского Пути.

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

Читать далее
Total votes 102: ↑90 and ↓12+78
Comments190

Давайте поговорим о Kubernetes

Level of difficultyMedium
Reading time12 min
Views10K

Всем привет! Меня зовут Андрей, я DevOps инженер.

Когда я начинал изучать Kubernetes (K8s), я перечитал много статей, и, что в статьях, что в документации, информация была сильно разрознена, обрывочна. Сложно было скомпоновать информацию в единое целое.

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

Примерно такую статью я постарался написать.

Читать далее
Total votes 9: ↑9 and ↓0+9
Comments10

C++26 — прогресс и новинки от ISO C++

Level of difficultyMedium
Reading time7 min
Views20K

Работа в комитете по стандартизации языка C++ активно кипит. Недавно состоялось очередное заседание. Как один из участников, поделюсь сегодня с Хабром свежими новостями и описанием изменений, которые планируются в С++26.

До нового стандарта C++ остаётся чуть больше года, и вот некоторые новинки, которые попали в черновик стандарта за последние две встречи:

  • запрет возврата из функции ссылок на временное значение,
  • [[indeterminate]] и уменьшение количества Undefined Behavior,
  • диагностика при =delete;,
  • арифметика насыщения,
  • линейная алгебра (да-да! BLAS и немного LAPACK),
  • индексирование variadic-параметров и шаблонов ...[42],
  • вменяемый assert(...),
  • и другие приятные мелочи.

Помимо этого, вас ждут планы и прогресс комитета по большим фичам и многое другое.
Рассмотрим новинки на примерах
Total votes 66: ↑64 and ↓2+62
Comments118

await anywhere, взгляд на третью сторону медали: sync vs async vs …

Level of difficultyHard
Reading time9 min
Views11K

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

Узнать? Да!
Total votes 27: ↑27 and ↓0+27
Comments10

SQL HowTo: разные варианты работы с EAV

Reading time3 min
Views17K

Соблазн использовать модель EAV (Entity-Attribute-Value) при организации структуры БД весьма велик, особенно когда предметная область заранее плохо известна (или разработчик просто не хочет в нее углубляться). Это ведь так удобно - создать "универсальный" способ описания характеристик объектов, который больше не потребует доработок базы ни при появлении новых типов объектов, ни при возникновении новых атрибутов...

Однако, за любую универсальность приходится платить сложностью и производительностью запросов - так что json[b] может оказаться более эффективной заменой. Но если уж такая модификация невозможна - давайте попробуем выжать максимум производительности из доставшегося нам legacy на самом простом примере.

Читать далее
Total votes 24: ↑23 and ↓1+22
Comments7

Деплоим сайт в облако за рубль в месяц

Reading time10 min
Views13K

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

Может быть и другой сценарий. Порой нужно опубликовать в интернете страничку, например, с примерами работ по фотографии или дизайну. В подобных ситуациях есть статистические HTML-страницы, которые должны быть просто доступны для просмотра. И не всегда целесообразно арендовать полноценный сервер, чтобы закрыть столь мелкие задачи.

Привет, Хабр! Меня зовут Саша, в этой статье я расскажу, как задеплоить в облако статический веб-сайт с помощью объектного хранилища стоимостью около 1₽/мес. А также — настроить красивый домен. Подробности под катом.
Читать дальше →
Total votes 46: ↑46 and ↓0+46
Comments37

Наследники «Святогора». Каким атомным ледокольным флотом Россия располагает сегодня?

Reading time6 min
Views9.7K

Амстердамская гравюра, демонстрирующая ледокол XVIII века за работой

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

Сегодня он, превращенный в музей, находится на вечной стоянке в Санкт-Петербурге на набережной Лейтенанта Шмидта. Можно прийти к нему в гости, подняться на борт, осмотреть помещения, послушать интересные истории, посмотреть на фотографии, где запечатлено его трудовое прошлое.

История


В северных странах в древности для расчистки водных путей от льда применяли «ледокольные сани» — плоскодонки, гружёные большим весом. Лодку тянули люди или лошади, идущие по берегу реки. Плоский нос лодки вытягивали на лёд, а когда следом на лёд выходила корма, под большим весом лёд проламывался.
Читать дальше →
Total votes 51: ↑48 and ↓3+45
Comments20

О недоязыках. Лекция Михаила Даниэля в Яндексе

Reading time5 min
Views36K
В повседневной жизни мы каждый день сталкиваемся с отклонениями от нормы русского языка — например, с неграмотными надписями и неправильным употреблением слов. Они вызывают у нас раздражение или, в лучшем случае, смех. Тем не менее у таких недоязыков, ломаного языка и неграмотной речи есть собственная внутренняя система. Она заслуживает не меньшего (а может быть, и большего) научного внимания, чем нормативный язык, который мы учим в школе.



Сегодня мы поговорим о ломаном русском, региональных вариантах русского языка, о пиджинах и их праве на существование как объектов научного исследования и социального феномена. А также о том, может ли отрицательное отношение общества к ним (и положительное — к норме) быть объективным или необъективным.
Коспект лекции
Total votes 96: ↑81 and ↓15+66
Comments32

Nginx: шпаргалка

Level of difficultyEasy
Reading time2 min
Views20K

Шпаргалка по основным секциям Nginx, которые следует держать под рукой. Ниже приведены самые частые функции: включение SSL, переадресация, раздача статики и т.д.

Читать далее
Total votes 33: ↑17 and ↓16+1
Comments18

Протоколы в Python: утиная типизация по-новому

Reading time8 min
Views41K

В новых версиях Python аннотации типов получают всё большую поддержку, всё чаще и чаще используются в библиотеках, фреймворках, и проектах на Python. Помимо дополнительной документированности кода, аннотации типов позволяют таким инструментам, как mypy, статически произвести дополнительные проверки корректности программы и выявить возможные ошибки в коде. В этой статье пойдет речь об одной, как мне кажется, интересной теме, касающейся статической проверки типов в Python – протоколах, или как сказано в PEP-544, статической утиной типизации.

Читать далее
Total votes 30: ↑30 and ↓0+30
Comments9

Четвёртое наблюдение о командной строке и путях в файловой системе

Level of difficultyEasy
Reading time3 min
Views4.8K

В недавно опубликованной статье «Три наблюдения о командной строке и путях в файловой системе» были рассмотрены некоторые особенности интерпретации командной строки оболочками в операционных системах Windows и Linux. Первое наблюдение было о том, что командные оболочки SH/BASH, в отличие от COMMAND/CMD, выполняют предварительную обработку параметров, содержащих шаблоны имён файлов. А в этой небольшой заметке приводится ещё одно наблюдение, демонстрирующее важность учёта предварительной обработки параметров-шаблонов командной оболочкой.

Читать далее
Total votes 23: ↑16 and ↓7+9
Comments17

Три наблюдения о командной строке и путях в файловой системе

Level of difficultyEasy
Reading time5 min
Views7K

Иногда опыт работы оказывается не полезным, а совсем наоборот. Мышление привыкает к шаблонам и впадает в оцепенение, когда реальность перестаёт в эти шаблоны укладываться. Не зря в таких случаях говорят о "разрыве шаблона".

Несмотря на то, что режимы командной строки Windows и Linux в чём-то похожи, нельзя переносить опыт работы в одной из этих систем на другую. О некоторых аспектах указания путей к файлам и каталогам в командной строке Linux и их интерпретации SH-совместимой командной оболочкой пойдёт речь в этой статье.

Читать далее
Total votes 18: ↑13 and ↓5+8
Comments23
1
23 ...

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Registered
Activity