Как стать автором
Обновить
-20
0
Максим Сидоров @sidorovmax

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

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

Поточное шифрование на скорости 10 Гбит/c? Да. Параллельно

Время на прочтение7 мин
Количество просмотров12K
За последние пару десяток лет IT-индустрия сделала огромный прорыв в своем развитии – появилось очень много новых технологий, сервисов, языков программирования и т.д. Но самое важное – количество пользователей IT-технологий выросло до гигантских масштабов. Особенно заметно это стало на объемах трафика – такие крупные сервисы как Google, Facebook, Twitter обрабатывают петабайты трафика. При этом всем известно о том, какие они имеют датацентры. Однако я не собираюсь сейчас говорить об облачных технологиях и NoSQL-решениях. Я бы хотел посмотреть на всю эту ситуацию немножко с другой стороны, а именно с точки зрения безопасности.

Представим, что у вас есть датацентр, в который заведен толстенный провод с трафиком. Как вы думаете, насколько безопасен трафик, который к вам идет? Я бы не был слишком наивным и сказал бы – ни на сколько. В интернете чересчур много статей про то, как делать вирусы, сетевых червей, DoS, DDoS, количество скрипт-киддисов сейчас просто зашкаливает, а возможность найма профессиональных взломщиков никого не удивляет.

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

Django и особенности использования транзакций в MySQL

Время на прочтение6 мин
Количество просмотров12K
Наверное всем известно, что Django является одним из самых популярных фреймворков для web-разработки на python-е. И даже если в основе web-проекта лежит сторонний код, то зачастую при разработке используют отдельные части этого фреймворка — например ORM. В данной статье я хотел бы рассказать об особенностях использования Django ORM при работе с базой данных MySQL, а именно про транзакции и подводные камни, связанные с ними. Так, например, если в какой-то момент вы осознаёте, что вместо ожидаемых данных, возвращается совершенно другой результат, то возможно, данная статья поможет разобраться что к чему.
Читать дальше →
Всего голосов 52: ↑49 и ↓3+46
Комментарии21

О том, как читать до конца

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


Сегодня мы представляем вниманию читателей следующую лекцию курса «Сетевое программирование в UNIX», которую прочитали в Уральском федеральном университете (УрФУ) специалисты SkyDNS и компании «Айдеко». К сожалению, в публикациях произошел вынужденный перерыв. Надеемся, что время ожидания новой лекции вы использовали для реализации сервера и клиента, о которых рассказывали наши специалисты.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии6

Многозадачность в микроконтроллерах на основе продолжений

Время на прочтение8 мин
Количество просмотров27K
Программисты C и так не избалованы возможностями языка, а разработчики встроенных систем на микроконтроллерах ограничены еще больше, зачастую их программы работают на голом железе, без поддержки ОС.
Возможность использования в С сопрограмм, генераторов, кооперативной многозадачности часто может сильно упростить программу и сэкономить силы, но эти возможности языка не очевидны и многие про них не знают.
Продолжения (contionuation) позволяют запомнить состояние выполнения программного потока (функции), и вернуться к этому месту в дальнейшем.
Используя продолжения, мы можем получить сопрограммы (coroutine), а это уже практически готовые генераторы, итераторы и кооперативная многозадачность.
Читать дальше →
Всего голосов 67: ↑66 и ↓1+65
Комментарии12

Inbox.py: самый простой SMTP-сервер

Время на прочтение1 мин
Количество просмотров24K
Кеннет Райтц из компании Heroku продолжает создавать элегантные библиотеки с упрощёнными API. Предыдущей разработкой была библиотека Requests для HTTP-запросов. Теперь он выпустил простой SMTP-сервер Inbox.py, который элементарно прикрутить к веб-приложению для осуществления прямых почтовых рассылок и приёма/обработки почты, без мучений с макросами sendmail.

from inbox import Inbox

inbox = Inbox()

@inbox.collate
def handle(to, sender, body):
    ...

# Bind directly.
inbox.serve(address='0.0.0.0', port=4467)

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

Кодим безумный пассивный сниффер в виде модуля для Python

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


Сразу скажу: то, чем мы с вами будем здесь заниматься, не претендует, скажем, на какую-то промышленную применимость. Более того, я признаю, что мой код в данном примере может быть ужасен, страшен и ненужен. И тем не менее — почему бы не поперехватывать пакеты посреди недели? Так, слегка.

Итак, сегодня мы вот что наколдуем:

1. Реализуем простейший пассивный перехватчик пакетов для TCP и UDP
2. Засунем его в C-библиотеку в виде расширения для Python
3. Приделаем ко всему этому интерфейс итератора, дабы байты сыпались, как из рога изобилия
4.…
5. PROFIT!
Берите стул, садитесь ближе к камину
Всего голосов 66: ↑60 и ↓6+54
Комментарии15

Многоклиентский сетевой протокол на C#

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

Предисловие


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

Читать дальше →
Всего голосов 62: ↑47 и ↓15+32
Комментарии84

Полезные мелочи в работе веб-разработчика или «Как я мог без этого жить»

Время на прочтение4 мин
Количество просмотров8.4K
Злой троянец увел у меня аккаунт на хабр, после чего под моим аккаунтом начали публиковаться какие-то тупые мультики. К сожалению узнал я об этом только когда НЛО перевело меня в read-only, а рейтинг ушел в отрицательное значение. Не беда: повод наконец написать пост, который давно собирался.

Веб-разработчику консоль нужна, но не на столько что бы бросив все дела начинать читать толстенные книжки по линуксу. Именно поэтому я учился консольным хитростям от случая к случаю и, судя по моим сотрудникам, многие поступают точно так же. Раскрою пару удобных секретов, без которых я уже не могу жить.
Читать дальше →
Всего голосов 129: ↑116 и ↓13+103
Комментарии66

LINQ to Objects на языке C++

Время на прочтение4 мин
Количество просмотров16K
Всё началось с того, что я в институте и после его окончания писал код на C++ и не знал бед. Но тут в один прекрасный день пришлось писать код под .NET на C#. Сперва немного поплевался, но потом ничего — втянулся. Увидел выгодные отличия от C++: безопасность, строгость и т.д. Также не смог обойти стороной LINQ при работе с коллекциями…



Читать дальше →
Всего голосов 88: ↑81 и ↓7+74
Комментарии101

Недельный дайджест #2: Simple-Science — простые опыты

Время на прочтение1 мин
Количество просмотров84K
image image
image image
image image

Недавно на хабре мы представили новый канал Simple-Science, а сегодня предлагаем посмотреть очередные простые опыты с обыденными вещами (ну или почти с обыденными). На следующей неделе ожидаются опыты с сопротивлением в низких температурах, ньютоновской жидкостью, простейшим гироскопом и другими. А еще через неделю — опыты в микроволновке.

По-прежнему приветствуются идеи для опытов и экспериментов :)

Под катом 6 роликов:
Читать дальше →
Всего голосов 94: ↑80 и ↓14+66
Комментарии91

Самый правильный безопасный printf

Время на прочтение8 мин
Количество просмотров12K
Под катом Вас ждет увлекательная история о том, как я сильно расстроился, познакомившись поближе с пользовательскими литералами (с нового стандарта), но при этом в последствии все же реализовал вышеупомянутую функцию, а также разобрался с constexpr, а позже еще и реабилитировал те самые литералы.
Читать дальше →
Всего голосов 68: ↑62 и ↓6+56
Комментарии36

Давайте сделаем паузу. Способ улучшения синхронизации потоков

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

Пауза — временное молчание, перерыв в звучании музыкального произведения в целом или какой-либо его части или отдельного голоса.
[Википедия]

Удивительно, но иногда так бывает, чтобы что-то сделать в целом быстрее, надо это делать медленнее или вообще с паузами. Например, при имплементации активного ожидания spin-wait в многопотоковом коде рекомендуется использовать инструкцию pause, которая, как утверждает Intel Instruction Set Reference, делает это ожидание наиболее эффективным. «Какая чушь!» — скажете вы. Как может быть ожидание эффективным? Разработчики микропроцессоров утверждают, что при активном ожидании с инструкцией pause чип потребляет намного меньше энегии еще со времен Pentium 4. В чем еще может быть эффективность ожидания? Поговорим об этом ниже.
Читать дальше →
Всего голосов 53: ↑51 и ↓2+49
Комментарии5

Новый канал Simple-Science — простые опыты и эксперименты

Время на прочтение1 мин
Количество просмотров128K
image image image image image image

Меньше месяца назад мы открыли канал на YouTube, который назвали Simple-Science, что в переводе с английского «Простая наука». Пока выкладываем ролики с довольно простыми опытами, но готовим все более и более любопытные.

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

Несколько роликов под катом:
Читать дальше →
Всего голосов 176: ↑165 и ↓11+154
Комментарии92

Поиск подстроки и смежные вопросы

Время на прочтение13 мин
Количество просмотров121K
Здравствуйте, уважаемое сообщество! Недавно на Хабре проскакивала неплохая обзорная статья о разных алгоритмах поиска подстроки в строке. К сожалению, там отсутствовали подробные описания каких либо из упомянутых алгоритмов. Я решил восполнить данный пробел и описать хотя бы парочку тех, которые потенциально можно запомнить. Те, кто еще помнит курс алгоритмов из института, не найдут, видимо, ничего нового для себя.
Читать дальше →
Всего голосов 89: ↑84 и ↓5+79
Комментарии18

Сказ о том, как я себе рабочий процесс упростил. Или написание своего шпиона на C#

Время на прочтение5 мин
Количество просмотров4.9K
В этой статье я хочу рассказать вам об эксперименте, который я поставил на себе.

Уже давно работаю удалённо (outsourcing) и как следствие обязан ежемесячно предоставлять отчёт о проделанной работе, в виде таблицы с наименованием задач, затраченным временем и прочей информацией. Даже при огромном наличии тикет систем, использовать их ежедневно для записи проделанной работы — каторга. В фирме где я работаю нет строгих требований к ведению логов или других ежедневных отчётов, что возможно делает мою проблему отсутствия ежедневных данных единичной, или по крайней мере не такой популярной (или же нет, быть может я не один такой аутсорсер?). Месяц пролетает незаметно и с полным погружением в работу, вместо погружения в бюрократию, поскольку всё строится на доверии. И до недавнего времени я с задачей составления ежемесячных отчётов справлялся, поскольку почти каждый день я как минимум здоровался с коллегами по skype, болтал о том о сём, включая рабочий процесс, обновлял тикеты, получал письма. Но вот же беда, не всегда имеются в наличии сохранившиеся данные на нужный день, в который хоть убейся не можешь вспомнить что делал. И в один такой момент, составляя такой отчёт, меня вдруг осенило, как я, программист, могу сам себе впредь эту проблему решить.
Читать дальше →
Всего голосов 27: ↑22 и ↓5+17
Комментарии27

Практика работы с сигналами

Время на прочтение6 мин
Количество просмотров109K
Хочу запечатлеть небольшой опыт работы с сигналами в Linux. Ниже будут представлены примеры использования наиболее значимых конструкций в этой области. Постараюсь разложить все по отдельным полочкам, чтобы всегда было легко глянуть и вспомнить, что и как использовать.
Читать дальше →
Всего голосов 73: ↑62 и ↓11+51
Комментарии61

Еще раз о том, как уехать учиться за границу

Время на прочтение4 мин
Количество просмотров95K
Этой истории уже почти год, однако после недавнего общения с пригласившим меня на хабр andorro я все же решил выложить этот текст на Хабр. Тема как мне кажется достаточно актуальна — как бесплатно продолжить обучение зарубежом. Сейчас я учусь в аспирантуре Университета Мельбурна (Австралия) на факультете информационных систем. Надеюсь, мой опыт будет интересен и полезен.



Идея сделать карьеру в науке возникла у меня в январе 2011 года. На тот момент я уже был аспирантом ВШЭ, куда поступил в ноябре 2010, однако вариант ухода в науку с возможностью заниматься ей 2-3 часа после работы не устраивал совсем. Перед глазами у меня были примеры моих одногруппников и однокурсников, которые не особенно выделяясь во время учебы, уехали получать PhD в Швейцарию, Великобританию и США, получая при этом стипендии/зарплаты, сравнимые с доходами программистов 1-3 годами опыта. С этого момента я решил проследовать их путем.

Читать дальше →
Всего голосов 129: ↑121 и ↓8+113
Комментарии87

Реализация exceptions на plain C

Время на прочтение4 мин
Количество просмотров6.9K
Продолжение вот этой статьи habrahabr.ru/post/131212, где я собирался показать, как «и ошибки удобно обрабатывать и exceptions при этом не использовать», да всё руки не доходили.

Итак, будем считать, что у нас ситуация, что «настоящие C++ exceptions» использовать нельзя — например, языком разработки является C или компилятор С++ для нашей платформы не поддерживает exceptions (или формально поддерживает, а реально этим пользоваться нельзя). Это, конечно, нетипично для desktop приложений, но вполне обычно для embedded разработки.
Читать дальше →
Всего голосов 47: ↑39 и ↓8+31
Комментарии50

Бесплатный VPN от Comodo

Время на прочтение2 мин
Количество просмотров207K
В свете ожидающегося послевыборного закручивания интернет-гаек в наше стране, хотелось бы рассказать о бесплатном VPN от Comodo Group.
Comodo TrustConnect — простой в регистрации, установке и использовании сервис VPN со 128-битным шифрованием, от солидной компании, которой, в отличие от других бесплатных VPN-провайдеров, вполне можно довериться. Для тех кто не в курсе, такой VPN очень полезен при использовании открытого WiFi в публичных местах (например, при посещении сайтов, у которых до сих пор нет https). Также с помощью VPN предотвращается прослушка и фильтрация трафика провайдером, кровавой гэбнёй или админом на работе.
Читать дальше →
Всего голосов 89: ↑77 и ↓12+65
Комментарии108

Помехоустойчивое кодирование с иcпользованием различных кодов

Время на прочтение5 мин
Количество просмотров131K
Это продолженеие статьи о помехоустойчивом кодировании, которая очень долго лежала в черновиках. В прошлой части нет ничего интересного с практической точки зрения — лишь общие сведения о том, зачем это нужно, где применяется и т.п. В данной части будут рассматриваться некоторые (самые простые) коды для обнаружения и/или исправления ошибок. Итак, поехали.
Читать дальше →
Всего голосов 23: ↑22 и ↓1+21
Комментарии28

Информация

В рейтинге
6 025-й
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность