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

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

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

Зачем и как хранить объекты на примере MinIO

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

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

Начать хранить файлы
Всего голосов 18: ↑16 и ↓2+24
Комментарии8

Представлена программа очистки мировых рек от мусора

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

На реке Кланг, в Малайзии

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


Теперь Боян Слат, молодой изобретатель и руководитель фонда, займется устранением еще и этой проблемы. Ocean Cleanup объединяется с государственными организациями, некоммерческими фондами и мэрами городов, чтобы очищать самые загрязненные реки в метрополиях. Для этого на днях в Нидерландах был представлен их новый автономный агрегат – The Interceptor.

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

Рукопожатие SSH простыми словами

Время на прочтение7 мин
Количество просмотров40K
Secure Shell (SSH) — широко используемый протокол транспортного уровня для защиты соединений между клиентами и серверами. Это базовый протокол в нашей программе Teleport для защищённого доступа к инфраструктуре. Ниже относительно краткое описание рукопожатия, которое происходит перед установлением безопасного канала между клиентом и сервером и перед началом полного шифрования трафика.

Обмен версиями


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

Обмен ключами


В процессе обмена ключами (иногда называемого KEX) стороны обмениваются общедоступной информацией и выводят секрет, совместно используемый клиентом и сервером. Этот секрет невозможно обнаружить или получить из общедоступной информации.
Читать дальше →
Всего голосов 38: ↑38 и ↓0+38
Комментарии5

Пишите код, который легко удалять и отлаживать

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


Простой в отладке код — это код, который не дурачит вас. Труднее отлаживать код со скрытым поведением, с плохой обработкой ошибок, с неопределённостями, недостаточно или избыточно структурированный, или находящийся в процессе изменения. В достаточно больших проектах вы в конце концов сталкиваетесь с кодом, который не можете понять.

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

Умение писать код, который легко отлаживать, начинается с понимания, что вы ничего не помните о ранее написанном.
Читать дальше →
Всего голосов 45: ↑42 и ↓3+39
Комментарии9

Открытое письмо к маркетологам и прочим пиарщикам, причастным к контенту на Хабре и других ресурсах

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

Короче, настало время. Присаживайтесь поудобнее

На площадке я достаточно давно. Кто-то знает меня в лицо, кто-то никогда не видел, а еще у меня есть собственный клуб хейтеров благодаря моей работе в качестве редактора ХХ и ГТ. Сейчас я не буду обсуждать «редакторский» контент, тут много подводных камней, а скажу пару слов о ведении корпоративных блогов и всего, что касается этой темы. Надеюсь на адекватное обсуждение.

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

Этим постом я хочу достучаться до многочисленных маркетологов, которые пасутся на моей родной «полянке» и тут же делают не самые приличные вещи, которые, в итоге, бьют и по мне в том числе. А еще я хочу поговорить с аудиторией.
Поехали
Всего голосов 363: ↑324 и ↓39+285
Комментарии357

Тестирование телефонов с помощью Arduino

Время на прочтение17 мин
Количество просмотров9.2K
В 2016-м на Хабре привлёк много внимания пост Алексея Лавренюка «Измеряем потребление батарейки на мобильных устройствах. Эксперимент в Яндексе». Годом позже на нашей конференции Heisenbug Алексей вместе с коллегой Тимуром Торубаровым представил доклад «Тестирование телефонов с помощью Arduino»: часть этого доклада совпадала с хабрапостом, но было и много новой информации. А теперь круг замкнулся: мы сделали текстовую версию доклада, чтобы вся эта новая информация появилась и на Хабре.

Как правильно измерить энергопотребление приложения? Зачем при этом делать 10 000 замеров в секунду вместо 500? Какие смартфоны сложнее сверлить? Как убить iPhone совершенно непредвиденным способом? В тексте под катом — всё это и многое другое. Также прикладываем видеозапись доклада:

Читать дальше →
Всего голосов 41: ↑39 и ↓2+37
Комментарии13

CUnit: Автоматическое тестирование с динамической загрузкой тестов

Время на прочтение6 мин
Количество просмотров8.9K
Задача: создать «дружелюбное» окружение над фреймворком CUnit, позволяющие разработчикам/тестерам без дополнительных телодвижений добавлять новые тесты. Почему в качестве фреймворка используется CUnit? Все просто: звезды так сошлись.

Здесь я не буду описывать как работает CUnit или как писать тест-кейсы и тест-сьюты с использованием данного фреймворка. Все это есть в официальной документации, которая расположена по адресу http://cunit.sourceforge.net/doc/index.html.

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

Операционные системы с нуля; Уровень 0

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

Добрый день/вечер/ночь/утро! Есть один экспериментальный курс по операционным системам. Есть он в Стэнфордском университете. Но часть материалов доступно всем желающим. Помимо слайдов доступны полные описания практических занятий.


Чем этот курс отличается от прочих других? Большая часть кода пишется самостоятельно и выполняется на вполне реальном современном железе. В качестве целевой платформы выбран Raspberry Pi 3 model B. Т.е. достаточно актуальная архитектура AArch64. ARMv8 Cortex-A53, четыре ядра, 64-бита и вот это всё. В качестве основного языка программирования выбран Rust. Который безопасный, быстрый, без GC и так далее. Его, Rust, предполагается изучать во время курса.


Тут есть про диски, файловые системы, операции ввода-вывода, потоки /процессы, планирование, виртуальную память, защиту и безопасность, прерывания, параллелизм и синхронизацию. Как и в любом другом, уважающем себя курсе. Разница в актуальности материала и в количестве практики. Коддить придётся много.

Читать дальше →
Всего голосов 80: ↑78 и ↓2+76
Комментарии55

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

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

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




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

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

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

Роскомнадзор собирается заблокировать почти 15 миллионов IP-адресов Amazon

Время на прочтение2 мин
Количество просмотров69K
IT-эксперт Михаил Климарев опубликовал документы, свидетельствующие о том, что Роскомнадзор приступает к эксперименту по блокировке доступа к двум подсетям облачных веб-сервисов компании Amazon (AWS).
Читать дальше →
Всего голосов 87: ↑85 и ↓2+83
Комментарии688

Дискредитация специалистов или современные собеседования

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

Представьте, что вы — IT компания. Может большая или нет, но так получилось, что вам потребовался стажер. Ведь пора, наконец, растить новое поколение в духе вашей идеологии.

Но вот незадача — стажеры такие животные, которые не обладают навыками. И ранее ничего полезного они не делали. Как же не ошибиться в выборе? Что ж, это довольно просто. Если нельзя оценить по результату, то следует искать предпосылки к достижению этого результата…

Статья о серьезной проблеме рекрутинга, которую все почему-то считают нормой.
Читать дальше →
Всего голосов 97: ↑87 и ↓10+77
Комментарии691

Теории заговора. Зомбоящик

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

Примечание. «Зомбирование» в данном контексте — многократное повторение ложной и/или неточной информации.

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

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

Почитайте внимательно этот список и подумайте, кто именно может эксплуатировать данные когнитивные искажения (то есть своеобразные «уязвимости» защитной системы мозга) в своих целях. Каким способом проще всего создать иллюзию правды и иллюзию частоты? Очевидно, что эти эффекты проще всего создать, если систематически и ежедневно доводить до человека одни и те же послания. Другими словами, нужен стабильный контролируемый канал трансляции посланий на массовую аудиторию.

Это телевидение.
Читать дальше →
Всего голосов 55: ↑48 и ↓7+41
Комментарии300

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

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


Тот, кто придумал термин mob programming, явно не спец в маркетинге. Кто захочет вступить в банду? Слово mob вызывает образы разбитого стекла и разграбленных магазинов — население Спрингфилда выстроилось в ряд с вилами и факелами.

Действительно, банда или толпа — это нечто противоположное тому, какой хочется видеть успешную сессию программирования. Толпа дезорганизована, склонна к опрометчивым решениям, злится и не желает идти на компромисс. Но групповое программирование не имеет к этому отношения.
Читать дальше →
Всего голосов 39: ↑30 и ↓9+21
Комментарии29

Бухгалтерский учет для программистов

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

Введение


Занимаюсь автоматизацией бухгалтерского учета 17 лет. После универа поработал как программист бухгалтерской программы. Выяснилось, что есть спрос на программистов этой программы. Поменял одну работу, вторую. Начал брать заказы на стороне. Выяснилось (или показалось), что выполнять заказы выгоднее, чем получать зарплату. Стал частным предпринимателем. Выяснилось (или опять показалось), что продавать программу выгоднее, чем программировать. Стал дилером. Оказалось, что выгоднее всего – подписка на обновления и обслуживание. Возможно, еще выгоднее сделать веб-сервис для онлайн-бухгалтерии…

В ходе работы приходилось нанимать программистов и обучать основам бухгалтерского учета. Когда обучал программистов бухучету, мне нравилось за час рассказать им всю базовую теорию. Приятно срывать покровы сложности и таинственности. Оказывается, курсы бухгалтеров никому не нужны. Нет такой науки. Разве что набор терминов, в которых путаются сами бухгалтера…
Читать дальше →
Всего голосов 51: ↑51 и ↓0+51
Комментарии182

Pthreads: Потоки в русле POSIX

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

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



В этой статье мы познакомимся с POSIX Threads для того, чтобы затем узнать как это все работает в Linux. Не заходя в дебри синхронизации и сигналов, рассмотрим основные элементы Pthreads. Итак, под капотом потоки.

Читать дальше →
Всего голосов 28: ↑23 и ↓5+18
Комментарии28

Безопасный Android для ребёнка

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

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

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

Почему рискованно запрещать детям заниматься рискованными вещами

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

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

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

Это можно было бы считать разумным подходом к воспитанию ребёнка, если бы такая чрезмерная бдительность не приводила бы к своим собственным рискам и недостаткам. Но, к сожалению, у этой бдительности есть недостатки.
Читать дальше →
Всего голосов 49: ↑48 и ↓1+47
Комментарии258

Сравнение производительности C и C++ на примере сжатия Хаффмана

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

Введение


Когда на IT-форумах задают вопрос «Быстрее ли язык программирования X языка Y», это обычно вызывает потоки эмоций и считается некорректным. Сродни вопросу про религию или предпочтение той или иной политической партии. Действительно, язык — это способ выражения мысли, идеи. В данном случае идеи программной системы. Он не быстр и не медлен. Он может быть более или менее лаконичным, более или менее точным. А скорость определяется не столько языком, сколько конечным кодом, который генерирует компилятор этого языка. Или скоростью интерпретатора в случае интерпретируемого языка.

Но это всё философия. А на практике обычно есть практическая задача разработки ПО. И, действительно, реализовать это ПО можно на десятке разных языков программирования. Поэтому, хоть это и «религиозный вопрос» в случае публичного обсуждения, вопрос этот часто возникает в голове IT-специалиста, стоящего перед конкретной задачей. «Сколько времени мне потребуется для реализации задачи на языке X и какие у полученного ПО будут характеристики, в том числе скоростные, по сравнению с реализацией этой задачи на языке Y». Понятное дело, точного ответа на этот вопрос нет, специалист опирается на свой личный опыт и отвечает как-то типа «с вероятностью 95%, написанная на ассемблере, эта задача будет работать быстрее, чем на php». Но, положа руку на сердце, опыт этот редко базируется на точных цифрах реальных задач, которые сам этот специалист реализовал. Нет, ну кто в здравом уме будет писать сложное ПО сначала на php, а потом его же переписывать на ассемблере, только чтобы измерить характеристики? В основном ограничиваются синтетическими тестами типа сортировки массива, построения и обхода бинарного дерева и тому подобных.
Читать дальше →
Всего голосов 100: ↑92 и ↓8+84
Комментарии172

Как убить технаря в тимлиде

Время на прочтение15 мин
Количество просмотров33K
В IT линейных руководителей и тимлидов традиционно набирают из лучших инженеров. Их работа теперь состоит совсем в другом: управлять людьми и взаимодействовать с другими командами и организациями. Исходный же посыл «я лучше знаю, как нужно» часто приводит к совмещению в одном лидере одновременно двух крайностей: отсутствия делегирования и тотального контроля. И то, и другое вовсе не оставляет ни времени, ни сил на управление. О том, как со всем этим справиться и какие еще препятствия могут встретиться на пути новоиспеченного руководителя, на основе собственного опыта и собственноручно набитых шишек расскажет Александр Трофимов из Лаборатории Касперского.


В основе публикации — расшифровка доклада Александра Трофимова с HighLoad++ 2017
Всего голосов 52: ↑49 и ↓3+46
Комментарии20

Особенности Jupyter Notebook, о которых вы (может быть) не слышали

Время на прочтение10 мин
Количество просмотров365K
Jupyter Notebook – это крайне удобный инструмент для создания красивых аналитических отчетов, так как он позволяет хранить вместе код, изображения, комментарии, формулы и графики:



Ниже мы расскажем о некоторых фишках, которые делают Jupyter очень крутым. О них можно прочитать и в других местах, но если специально не задаваться этим вопросом, то никогда и не прочитаешь.
Читать дальше →
Всего голосов 49: ↑45 и ↓4+41
Комментарии14

Информация

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