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

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

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

Три фичи PostgreSQL, которые будут полезны каждому новичку

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

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

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

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

Читать далее
Всего голосов 17: ↑12 и ↓5+8
Комментарии14

Книга: «Алгоритмы и структуры данных на Python»

Время на прочтение21 мин
Количество просмотров8.1K
image Привет, Хаброжители!

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

Кем бы вы ни были — начинающим программистом, опытным разработчиком, желающим расширить знания, или специалистом с нетехническим образованием, интересующимся анализом данных, — книга поможет улучшить понимание и навыки решения задач.
Читать дальше →
Всего голосов 10: ↑9 и ↓1+13
Комментарии0

Почему я перешёл с Python на Go: choose your fighter

Время на прочтение8 мин
Количество просмотров60K
Привет, Хабр! Меня зовут Саша, я бэкенд-разработчик в Ozon. Пишу платформу для контента, который генерят пользователи: отзывов, комментов, вопросов, ответов. Раньше я писал на Python. Выбрал его изначально из-за лёгкого синтаксиса и большого количества вакансий для Python-разработчиков — изи катка для входа в профессию. 

В один момент мне написали из Ozon: «П̶с̶с̶,̶ ̶п̶а̶р̶е̶н̶ь̶,̶ ̶п̶о̶к̶о̶д̶и̶т̶ь̶ ̶н̶а̶ ̶G̶o̶ ̶н̶е̶ ̶х̶о̶ч̶е̶ш̶ь̶?̶ Предлагаем переход на Golang с текущего стека, обучение за счёт компании».

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


Среди разработчиков бытует мнение, что язык вторичен. Мол, главное — уметь в computer science, а на чём писать — не так уж важно. Но так считают хардкорные разработчики, они вертят деревья, смотрят на всех свысока и зарабатывают 300кк в наносекунду. Я же программист-полукровка (без высшего технического образования, а ещё мои родители — маглы) и считаю, что смена языка — важный шаг и нужно хорошенько прикинуть, прежде чем в это вписываться. Будем откровенны, если у вас за плечами десять лет на плюсах, вряд ли вам предложат должность senior iOS-разработчика на Swift. Проблема в том, что каждый язык имеет свои особенности и на их изучение требуется время.
Читать дальше →
Всего голосов 49: ↑41 и ↓8+45
Комментарии131

Python. Внутреннее устройство множеств set и словарей dict. Часть 1 из 2

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

Типы dict и set в Python построены на основе хэш-таблиц. В этой статье объясняется как использование хэш-таблиц определяет сильные и слабые стороны этих типов контейнеров.

Вот некоторые вопросы, на которые отвечает эта статья:

• Насколько эффективны dict и set в Python?
• Почему элементы множества неупорядоченны?
• Почему мы не можем использовать любой объект Python в качестве ключа dict или элемента set?
• Почему порядок ключей dict зависит от порядка вставки?

Читать далее
Всего голосов 12: ↑11 и ↓1+13
Комментарии4

Python. Внутреннее устройство множеств set и словарей dict. Часть 2 из 2

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

Продолжение Части 1

4. Хэш-таблицы в dict
4.1. Как компактный dict экономит место и сохраняет порядок
4.2 Алгоритм добавления элементов в компактный dict
4.3. dict с общим доступом к ключам
4.4. Практические выводы по тому как работает dict

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

Надежный обход блокировок в 2024: протоколы, клиенты и настройка сервера от простого к сложному

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

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

Вы, наверняка, помните отличный цикл статей на Хабре в прошлом году от пользователя MiraclePtr, который рассказывал о разных методах блокировок, о разных методах обхода блокировок, о разных клиентах и серверах для обходов блокировок, и о разных способах их настройки (раз, два, три, четыре, пять, шесть, семь, восемь, десять, десять, и вроде были еще другие), и можете спросить, а зачем еще одна? Есть две основные причины для этого.

Читать далее
Всего голосов 446: ↑438 и ↓8+490
Комментарии360

Как мы создавали AmneziaFree, и боролись с интернет-цензурой в разных странах

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

Всем привет! На связи команда Amnezia. И если вы давно за нами следите, вы помните как мы были очень маленьким стартапом, который делал первые шаги по созданию более менее современного приложения с open source кодом, чтобы создавать VPN на собственном сервере. Мы понимали что подобное решение нужно, но еще не понимали на сколько нужно и что именно мы будем делать дальше.

AmneziaFree.  Начало

Наверное, мы бы и дальше  оставались просто разработчиками self-hosted клиента, если бы не массовая блокировка общественно значимых сайтов весной 2022 в России. Особенно болезненно ощущалась блокировка невероятно популярного Instagram* 

Тогда при поддержке активистов и различных медиа мы взяли самые очевидные инструменты - арендовали у партнеров серверные мощности, взяли за основу open source приложение WireGuard и создали телеграм-бота раздающего конфигурации для каждого пользователя - и уже буквально через месяц, у нас был готов бесплатный сервис для доступа к заблокированным сайтам AmneziaFree. Он стал неожиданно популярным,  практически 250 000 пользователей за короткий промежуток времени получили конфиги с помощью этого бота.  

Читать далее
Всего голосов 86: ↑84 и ↓2+104
Комментарии36

«Коллеги, пришлите сроки!» — повторял джун-аналитик в течение месяца…

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

"Коллеги, пришлите сроки!" - повторял джун-аналитик в течение месяца...

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

Читать далее
Всего голосов 87: ↑58 и ↓29+34
Комментарии208

Ноутбук, который не умрет

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

История о том, как мой 12-летний ThinkPad за $200 пережил два элитных MacBook’а.

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

Впрочем, довольно. На этом пока остановимся.

Я не поленюсь написать о нём весь этот пост, а вкратце скажу так.

Вам нужен современный, привлекательно выглядящий, легкий и мощный ноутбук? Купите что-нибудь дорогостоящее от Apple или Microsoft.

А если вам нужно кое-что другое? То, что не будет стоить почти никаких денег и прослужит до тех пор, пока не погаснет солнце? Тогда возьмите старый, подержанный ThinkPad.

Читать далее
Всего голосов 53: ↑48 и ↓5+55
Комментарии235

Решение парадокса Ферми от создателя Великого фильтра. «Громкие» и «жадные» инопланетяне

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


Робин Хенсон, который в 1996 году разработал гипотезу Великого фильтра, недавно вышел с новой моделью, над которой много лет трудился вместе с тремя другими учеными. Она довольно сложная, но полностью логичная, и без пробелов. Главные выводы: инопланетные цивилизации существуют, мы можем это математически доказать. Более того: у нас достаточно данных, чтобы примерно сказать, где они находятся в пространстве-времени, сколько их, и когда мы их встретим.

Читать дальше →
Всего голосов 53: ↑50 и ↓3+65
Комментарии249

Идентификация, Аутентификация, Авторизация. В чем же разница?

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

Всем привет, дорогие друзья!

Приходилось ли Вам когда-нибудь тестировать формы авторизации?

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

Но ведь задача тестировщика постараться максимально точно и грамотно обозначить проблему!

Возможно ли это? Конечно!

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

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

Лучшие open-source инструменты для Python проектов

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

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

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

Читать далее
Всего голосов 33: ↑30 и ↓3+35
Комментарии9

Ностальгические игры: Fallout 2 (часть 1)

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

В 1997 году в свет вышла Fallout – игра, ставшая эталоном жанра. Она покорила умы и сердца миллионов геймеров по всему миру, которые не спали ночами, говоря себе «Ну еще один квест и точно на боковую!». Без крупной пиар кампании и поддержки от издателя (он не верил в успех проекта) продажи были скромны. Но это не помешало выпустить продолжение, в котором разработчики взяли всё лучшее от прародителя, доработали, расширили и сдобрили щепоткой юмора (в первой части его было существенно меньше). Обе игры со временем обрели культовый статус и стали примером того, как надо делать глубокие, интересные проекты с проработанной вселенной, увлекательным действом и миром, в котором почти каждый поступок имеет последствия.

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

Что ж, прежде чем перейти к обзору, я просто не могу не процитировать ставшую уже культовой фразу, сказанную устами Рона Перлмана: «War. War never changes...»

Читать далее
Всего голосов 48: ↑43 и ↓5+54
Комментарии73

Асинхронные задачи с FastAPI и Celery

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

Если в приложении есть длительные процессы, то вместо того, чтобы блокировать основной поток, вы должны обрабатывать их в фоновом режиме.

Чтобы достичь этого, мы расскажем вам о процессе настройки Celery и Redis для обработки длительно выполняющихся процессов в приложении FastAPI. Мы также будем использовать Docker и Docker Compose, чтобы связать все воедино. Наконец, мы рассмотрим, как протестировать задачи Celery с помощью модульных (unit) и интеграционных тестов.

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

WoG уже 20 лет…

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

Все это уже история... И я даже писал об этом (не на habr). Поэтому, возможно, кому-то это знакомо. Не думал, что тут стоит писать подобное, но, вижу, что фанаты Героев 3 (и вообще серии HoMM) тут очевидно присутствуют, поэтому рискну...

Время: 20 лет назад.

Место: Ээээ… всемирная паутина.

Действующие лица:

Gus Smedstad – программист Героев 3 и ведущий программист Героев 4.
Angelspit – хозяин крупнейшего сайта (в то время) http://www.celestialheavens.com
Denis "Kiar" Markov – хрен какой-то
Slava Salnikov (он же ZVS) – лидер команды WoG и ведущий программист WoG.

Предыстория (знающие могут пропустить).
WoG – любительский аддон к игре Герои Меча и Магии 3 (ставится поверх SoD). В детали его создания тут вдаваться не буду (Wiki скажет лучше: https://ru.wikipedia.org/wiki/Heroes_of_Might_and_Magic_III:_In_the_Wake_of_Gods ), но замечу, что только с официального сайта (свободно распространяемый ресурс) WoG в первые несколько месяцев был скачан пол миллиона раз (далее трудно оценить масштаб, но думаю несколько миллионов его хотя бы пробовали).

Основная же мысль, которую я хочу здесь озвучить: у меня НИКОГДА не было исходников Героев 3. WoG написан как отдельный EXE файл, который «прицепляется» моей утилиткой к готовому Heroes3.exe (купленная версия SoD английская), перехватывает управление и при старте «проникает» в тело SoD с целью установить множество call back’ов. Далее SoD работает, не зная о существовании «надстройки» в виде WoG, но, естественно им контролируется. Говоря простым языком, WoG это вирус на теле SoD.

Читать далее
Всего голосов 77: ↑74 и ↓3+82
Комментарии63

Что детям нужно знать про зубы пожилых родственников

Время на прочтение11 мин
Количество просмотров22K
image
Минимальный вариант протезирования, позволяющий жевать стейк лет этак в 75.

Взрослые дети часто не знают, что у пожилых родителей есть проблемы с зубами. Родители могут не поделиться по разным причинам и по нашему опыту нередко пытаются решить что-то своими силами, когда уже поздно и неэффективно. А зубы очень сильно влияют на качество жизни пожилого человека и его самоощущение. Когда можно спокойно жевать пищу, не испытывать неудобство в разговоре (чтобы зубы не выпадали) — это уже хорошо. Но многие привыкли хранить зубы в стаканчике, даже не зная, что давно уже можно сделать всё гораздо лучше и удобнее. Правда, конечно, не в рамках ОМС. То есть часто сами они позволить себе такое не могут, а обременять детей не хотят. Детям же надо знать, что стоматологическое здоровье влияет на здоровье всего организма, и снижение воспалительной нагрузки сильно облегчит прогнозы многих заболеваний.

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

Я хочу рассказать про относительно малоинвазивные методики имплантации для пожилых, которые принципиально меняют качество жизни. И вообще про то, что вам как детям нужно знать про зубы своих родителей.
Всего голосов 35: ↑30 и ↓5+44
Комментарии30

NudeCrawler: Голый ползун по женщинам на телеграфе

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

Nudecrawler - паук для поиска голых женщин.

Читать далее
Всего голосов 144: ↑134 и ↓10+167
Комментарии135

6 ошибок, из-за которых менеджеры-джуны остаются джунами

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

Привет, я Вика Строгонова, руководитель проектного офиса в KTS. Я веду проекты с 2017 года и прошла путь от младшего менеджера до руководителя проектного офиса. Сейчас в моем портфеле более 20 проектов, в подчинении — 42 человека, среди них  разработчики, аналитики и менеджеры. 

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

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

Читать далее
Всего голосов 35: ↑33 и ↓2+34
Комментарии14

Монады в Python поподробнее

Время на прочтение10 мин
Количество просмотров16K
Доброго времени суток!

В прошлом топике я попробовал изобразить монаду Maybe средствами языка Python. В целом задача была достигнута, как мне кажется, но совсем незнакомому с тематикой человеку будет непросто понять что к чему, а главное — зачем. В этот раз попробую остановиться на монадах поподробнее, в том числе и для закрепления собственного понимания.
Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии18

Отвыкнуть от шума, или персональная камера сенсорной депривации

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

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

Когда я приехал поступать в МГУ, заселился в ДАСе на 15 этаже. После пятиэтажного городка это была очень впечатляющая перемена. Лето было жарким и окна всегда были распахнуты, сторона ДАСа, где я жил, выходила на Большую Черёмушкинскую улицу, не самую загруженную, по столичным меркам, но довольно оживленную. На такой высоте в комнату собирались звуки с половины города. Конечно, колоколов Ивана великого слышно не было, но разноголосый гомон плотно набивался в небольшую комнату.

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

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

— Нет…

Слушать дальше
Всего голосов 43: ↑29 и ↓14+26
Комментарии267

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность