Как стать автором
Обновить
19
0
Игорь Росляков @lock87

редактор

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

Народное творчество: баги

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


Нет в мире человека, который пользуется компьютером или другим устройством, и при этом ни разу не сталкивался с какой-то ошибкой. А как мы любим сейчас называть такие ошибки? Именно, баги. Сленговое слово, которое крепко закрепилось в лексиконе любого современного человека. Но это далеко не единственный перл народного творчества в контексте ошибок. Ведь ошибок, то бишь багов, существует несколько видов, названия которых также полны и смысла, и креатива. О них сегодня и пойдет речь. Надеюсь, данный материал вас позабавит, как позабавил меня. Поехали.
Читать дальше →
Всего голосов 25: ↑17 и ↓8+9
Комментарии11

Собеседование на английском: самопрезентация для разработчиков

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

Всем привет! Меня зовут Елена Свистова, я методист образовательных программ английского языка в Практикуме, преподаватель и англоговорящий интервьюер в международных IT-компаниях. 

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

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

Разукрашиваем вывод в консоли: теория и практика

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


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

Читать дальше →
Всего голосов 32: ↑31 и ↓1+40
Комментарии20

Как криптомессенджер Signal успешно противостоит прослушке со стороны властей США

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


На фоне событий в США резко выросла популярность защищённого мессенджера Signal — c 6000 до 26 000 скачиваний в день. В этой программе реализована стойкая криптография и сквозное шифрование, она распространяется с открытым исходным кодом и работает на известных криптографических протоколах (в отличие от проприетарного MProto).

Но теперь разработчики Signal столкнулись с новой угрозой. Правительство США пытается скомпрометировать защиту мессенджера и опять получить доступ к переписке пользователей. В 2016 году им удалось получить судебную повестку на изъятие переписки одного пользователя, но из-за сквозного шифрования там нечего было изымать.
Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии25

Деплой приложения на сервер через push в Git. Или как перенести сайт или бот на хостинг в 3 действия

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

Когда проект создан, его требуется где-то разместить, чтобы он работал 24/7. В статье мы изучим два способа деплоя приложения на облачный сервер. В первом сценарии мы рассмотрим деплой через отправку кода в выделенный Git-репозиторий. Во втором сценарии мы осуществим аналогичную операцию, но загрузим файлы через графический интерфейс. Оба способа предполагают деплой буквально за 5-10 минут. 

В качестве примера приложения возьмем API для TODO-заметок на языке Python. Вы можете подобным способом перенести на хостинг любой свой сайт или бот, написанные на Java, Node.JS и т.д.

Вот код самого приложения.

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

GET запросы на практике: правила, принципы и примеры

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

Я думаю, что вы не раз уже гуглили, заглядывали в статьи, манифесты IT-гигантов о лучших практиках проектирования API. Я тоже.

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

Я работаю тимлидом направления системного анализа в X5Tech и за все время развития карьеры сталкивалась с большим количеством кейсов проектирования Web систем. IT продукты в большинстве очень динамичны: постоянно изменяются требования, появляются новые, итеративно улучшается пользовательский опыт (по принципу 20% усилий на 80% результата, а остальное доделаем потом).

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

В этой статье предлагаю спроектировать контракт по шагам, и на каждом из них я расскажу про общие рекомендации из копилочки “Полезное”, а также про личные правила и практики, полученные долгим опытом работы над постоянно меняющимися ИТ-продуктами, которые помогут для “дальновидного” проектирования GET REST API.

Читать далее
Всего голосов 25: ↑23 и ↓2+24
Комментарии13

Типы HTTP-запросов и философия REST

Время на прочтение4 мин
Количество просмотров975K
Этот пост — ответ на вопрос, заданный в комментарии к одной из моих статей.

В статье я хочу рассказать, что же из себя представляют HTTP-методы GET/POST/PUT/DELETE и другие, для чего они были придуманы и как их использовать в соответствии с REST.
Читать дальше →
Всего голосов 84: ↑78 и ↓6+72
Комментарии111

SQL запросы быстро. Часть 1

Время на прочтение5 мин
Количество просмотров1.5M
Подписаться в telegram: t.me/korocheproduct

Введение


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

Обучение SQL запросам я разделил на три части. Эта часть посвящена базовому синтаксису, который используется в 80-90% случаев. Следующие две части будут посвящены подзапросам, Join'ам и специальным операторам. Цель гайдов: быстро и на практике отработать синтаксис SQL, чтобы добавить его к арсеналу навыков.

Практика


Введение в синтаксис будет рассмотрено на примере открытой базы данных, предназначенной специально для практики SQL. Чтобы твое обучение прошло максимально эффективно, открой ссылку ниже в новой вкладке и сразу запускай приведенные примеры, это позволит тебе лучше закрепить материал и самостоятельно поработать с синтаксисом.
Читать дальше →
Всего голосов 26: ↑16 и ↓10+12
Комментарии36

Регулярные выражения в Python от простого к сложному. Подробности, примеры, картинки, упражнения

Время на прочтение25 мин
Количество просмотров1.5M

Регулярные выражения в Python от простого к сложному




Решил я давеча моим школьникам дать задачек на регулярные выражения для изучения. А к задачкам нужна какая-нибудь теория. И стал я искать хорошие тексты на русском. Пяток сносных нашёл, но всё не то. Что-то смято, что-то упущено. У этих текстов был не только фатальный недостаток. Мало картинок, мало примеров. И почти нет разумных задач. Ну неужели поиск IP-адреса — это самая частая задача для регулярных выражений? Вот и я думаю, что нет.
Про разницу (?:...) / (...) фиг найдёшь, а без этого знания в некоторых случаях можно только страдать.

Плюс в питоне есть немало регулярных плюшек. Например, re.split может добавлять тот кусок текста, по которому был разрез, в список частей. А в re.sub можно вместо шаблона для замены передать функцию. Это — реальные вещи, которые прямо очень нужны, но никто про это не пишет.
Так и родился этот достаточно многобуквенный материал с подробностями, тонкостями, картинками и задачами.

Надеюсь, вам удастся из него извлечь что-нибудь новое и полезное, даже если вы уже в ладах с регулярками.
Читать дальше →
Всего голосов 99: ↑98 и ↓1+97
Комментарии66

RSA простыми словами и в картинках

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

Ассиметричный алгоритм криптографии RSA, что же это за алгоритм такой и как он работает? В этой статье мы разложим по полочкам, что такое RSA и ассиметричная криптография в целом, простыми словами и с картинками.

На обложке то как DALL-E представляет себе ассиметричную криптографию.

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

Забавные баги

Время на прочтение5 мин
Количество просмотров72K
Баги — сленговое обозначение ошибки в системе или программе. Конечно, баг — это плохо. Искать баг — еще хуже. Они могут быть как безобидными (но назойливыми), так и весьма катастрофическими, последствия которых могут привести к финансовым потерям, очернению репутации и даже к трагическим случаям.

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

Читать дальше →
Всего голосов 130: ↑90 и ↓40+50
Комментарии35

Все, что нужно знать про GPU: история технологии, архитектура графических процессоров и сферы их применения

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

GPU — графический процессор, который предназначен для ускорения рендеринга графики и параллельных вычислений. Он произвел настоящую революцию в том, как мы взаимодействуем с цифровым контентом. Будь то визуальные эффекты в видеоиграх, вычисления в алгоритмах машинного обучения или анимация в высококлассных программах для 3D-дизайна.

Роль GPU выходит за рамки рендеринга графики. С появлением вычислений общего назначения на графических процессорах (GPGPU) эти процессоры нашли применение в областях, где требуются высокопроизводительные вычисления. Например, ускорение задач искусственного интеллекта (ИИ), глубокое обучение до высокоскоростной аналитики данных и научные симуляции.

В этом материале мы рассмотрим историю GPU, архитектуру графического процессора и области его применения.

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

Оперативная память. Строение и устройство (RAM, ОЗУ)

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

Оперативная память это важная часть любой компьютерной системы и сейчас я объясню, почему это так.

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

Как устроен блок питания, который работает в каждом системнике

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

Блок питания извлечён из корпуса. Пучок проводов слева подключается к компьютеру. Большой компонент посередине типа трансформатора — это фильтрующий индуктор. Кликабельно, как и все фотографии в статье

Вы когда-нибудь задумывались, что находится внутри блока питания (БП) вашего компьютера? Задача БП — преобразовать питание из сети (120 или 240 В переменного тока, AC) в стабильное питание постоянного, то есть однонаправленного тока (DC), который нужен вашему компьютеру. БП должен быть компактным и дешёвым, при этом эффективно и безопасно преобразовывать ток. Для этих целей при изготовлении используются различные методы, а сами БП внутри устроены гораздо сложнее, чем вы думаете.

В этой статье мы разберём блок стандарта ATX и объясним, как он работает1.
Читать дальше →
Всего голосов 46: ↑31 и ↓15+31
Комментарии97

Как я с помощью VBA оплатил себе университет

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

Большинство молодых людей, когда слышат про Excel, вспоминают сразу уроки информатики в школе или пары в универе, где нас учили выставлять ширину бортиков ячейки и как писать текст в ней по диагонали. Нам демонстрировали работу со статическими таблицами, учили их оформлять и форматировать. Но знаменитую цитату Моргана Фримана из фильма Люси: «Что, если бы мы использовали мозг на 100 процентов?» можно перефразировать на: «Что, если бы мы использовали Excel на 100 процентов?». Дело в том, что многие из вас даже не представляют на сколько это многогранная и сложная программа, функционал которой уходит далеко за пределы форматирования таблиц и подготовки простеньких графиков. Я тоже этого не представлял, пока это не стало моим основным источником заработка во время учебы в университете. И в своей статье я хочу рассказать вам про мой опыт работы с Excel и VBA, о том какие интересные вещи делают с его помощью некоторые фирмы и о том, как на этом можно неплохо подзаработать.

Читать далее
Всего голосов 54: ↑49 и ↓5+60
Комментарии201

VBA макросы. От бессмыслицы к осмысленному. Ядро

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

Наверное, пару лет назад, я бы отдал многое за подобную статью. Тогда, я рыл интернет в поисках информации о структурировании VBA проекта, но толком ничего не находил.

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

Чтиво про рефакторинг VBA кода.

Читать далее
Всего голосов 18: ↑17 и ↓1+21
Комментарии20

Производная как смысл жизни или что такое дифференциал(d)

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

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

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

Всё, что нужно знать о сборщике мусора в Python

Время на прочтение7 мин
Количество просмотров118K
Как правило, вам не нужно беспокоиться о сборщике мусора и работе с памятью когда вы пишете код на Python. Как только объекты больше не нужны, Python автоматически освобождает память из под них. Несмотря на это, понимание как работает GC поможет писать более качественный код.

Менеджер памяти


В отличие от других популярных языков, Python не освобождает всю память обратно операционной системе как только он удаляет какой либо объект. Вместо этого, он использует дополнительный менеджер памяти, предназначенный для маленьких объектов (размер которых меньше чем 512 байт). Для работы с такими объектами он выделяет большие блоки памяти, в которых в дальнейшем будет хранится множество маленьких объектов.

Как только один из маленьких объект удаляется — память из под него не переходит операционной системе, Python оставляет её для новых объектов с таким же размером. Если в одном из выделенных блоков памяти не осталось объектов, то Python может высвободить его операционной системе. Как правило, высвобождение блоков случается когда скрипт создает множество временных объектов.
Читать дальше →
Всего голосов 38: ↑38 и ↓0+38
Комментарии16

Что такое LLVM и зачем он нужен?

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

Всем привет! Думаю, у многих сразу возник другой вопрос — а зачем вообще нужна ещё одна статья про LLVM, ведь на хабре их и так больше сотни? Моей задачей было написать "введение в тему" for the rest of us — профессиональных разработчиков, не планирующих создавать компиляторы и совершенно не интересующихся особенностями устройства LLVM IR. Насколько я знаю, подобного ещё не было.


Главное, что интересует практически всех — и о чём я планирую рассказать — вынесено в заголовок статьи. Зачем нужен LLVM, когда есть GCC и Visual C++? А если вы не программируете на C++, вам стоит беспокоиться? И вообще, LLVM это Clang? Или нет? И что эти четыре буквы на самом деле означают?

Читать дальше →
Всего голосов 97: ↑92 и ↓5+119
Комментарии136

Понимаем декораторы в Python'e, шаг за шагом. Шаг 1

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

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

Итак, что же такое «декоратор»?


Впереди достаточно длинная статья, так что, если кто-то спешит — вот пример того, как работают декораторы:
def makebold(fn):
    def wrapped():
        return "<b>" + fn() + "</b>"
    return wrapped
 
def makeitalic(fn):
    def wrapped():
        return "<i>" + fn() + "</i>"
    return wrapped
 
@makebold
@makeitalic
def hello():
    return "hello habr"
 
print hello() ## выведет <b><i>hello habr</i></b>

Те же из вас, кто готов потратить немного времени, приглашаются прочесть длиииинный пост
Всего голосов 119: ↑106 и ↓13+93
Комментарии39
1

Информация

В рейтинге
Не участвует
Откуда
Новосибирск, Новосибирская обл., Россия
Зарегистрирован
Активность