Pull to refresh
1
0

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

Send message

Http запросы — мы все это делаем неправильно

Reading time3 min
Views189K
В проекте, над которым я работаю, мы используем огромное количество сторонних библиотек. Многие из них — адаптеры для различных сервисов. Что их объединяет, это то, что они работают с сетью. Json поверх http, soap поверх http, какие-то свои протоколы поверх http. Т.е. все так или иначе используют http. И как ни удивительно, мало кто из них пользуется преимуществами его последней версии. Я не поленился заглянуть в википедию, прошло ровно 14 лет как была принята спецификация http 1.1. И потому я решил обратиться с призывом:
image

Да, речь пойдет о keep alive. Суть в том, что, начиная с http 1.1, клиент и сервер могут договориться не закрывать установленное tcp-соединение после завершения запроса, а переиспользовать его для следующих запросов. Это нужно потому, что на установку соединения требуется время. Иногда это время больше, чем время самого запроса. И если все серверы уже давным-давно такую возможность поддерживают, а все браузеры и большинство других клиентов её используют, то у разработчиков различных библиотек для популярных языков программирования здесь почему-то пробел.
Читать дальше →
Total votes 167: ↑142 and ↓25+117
Comments169

Простые сладкие приложения с Kivy

Reading time12 min
Views108K

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


Возможно, для вас будет новостью, но разрабатывать мобильные приложения с функционалом, который доступен Java разработчикам, под Android с помощью фреймворка Kivy не просто просто, а очень просто! Именно этого правила я придерживаюсь, создавая свои проекты с Python + Kivy — разработка должна быть максимально простой и быстрой. Как щелчок пальцами.


На новичков подаваемая информация не расчитана, я не буду на пальцах объяснять, что, откуда и куда. Думаю, те, кто читает данную статью, обладают достаточными для понимания материала, знаниями. К тому же, Kivy, как я уже только что написал, очень простой фреймворк и вся документация с примерами использования находится в исходниках!

Читать дальше →
Total votes 22: ↑16 and ↓6+10
Comments35

XSD — умный XML

Reading time3 min
Views548K
XSD — это язык описания структуры XML документа. Его также называют XML Schema. При использовании XML Schema XML парсер может проверить не только правильность синтаксиса XML документа, но также его структуру, модель содержания и типы данных.

Такой подход позволяет объектно-ориентированным языкам программирования легко создавать объекты в памяти, что, несомненно, удобнее, чем разбирать XML как обычный текстовый файл.

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

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

Рассмотрим в качестве примера XSD документ, описывающий часть структуры аккаунта на хабре.



Читать дальше →
Total votes 59: ↑49 and ↓10+39
Comments34

SUID и безопасность

Reading time8 min
Views23K
Предисловие. Некогда в июне 2001 года в журнале «Системный администратор» (Sys Admin Magazine, June 2001, Volume 10, Number 6) была опубликована статья Томаса Акина «Danger of SUID Shell Scripts», которая не теряет своей актуальности и сегодня. К сожалению, в конце лета 2007 года журнал перестал выходить. По неизвестным мне причинам сайт журнала также прекратил существование — точнее он сейчас переадресовывает посетителей на другой. Было бы здорово, если бы сайт просто «заморозили», сохранив архив всех накопившихся материалов, который бесспорно представил бы собой кладезь полезной практической информации для специалистов сферы ИТ. В Сети можно найти скудные копии статьи, о которой идет речь; у меня же нашелся бумажный вариант оригинала и я хочу представить вольный перевод с небольшим дополнением. Некоторые моменты статьи мне кажутся несколько глупыми (например, использование временных файлов), некоторые — непривычными (оболочки, которые использует автор), но в целом я уверен — в статье есть на что обратить внимание, взять на заметку и не забывать.

Опасность использования SUID в сценариях командной оболочки
Total votes 6: ↑4 and ↓2+2
Comments9

Куда деваются программисты после 40

Reading time16 min
Views168K


— Вам уже 45? Но у нас коллектив очень молодой. Вы уверены, что хотели бы у нас работать?
— Да, конечно! Я много наслышан о вашей компании. Это мечта всей моей жизни!
— Ну ладно. Вот вам простой вопросик. Что означает буква L в аббревиатуре SOLID?
— Liskov Substitution Principle.
Читать дальше →
Total votes 136: ↑105 and ↓31+74
Comments1044

Как я получил медаль за код

Reading time4 min
Views29K

В 2005 мой отряд Нацгвардии отправили в Ирак в рамках операции «Освобождение Ирака». Моей армейской специальностью была 92А, что означает специалист по логистике и запасам. Мои задачи состояла в том, чтобы заказывать запчасти для механиков, забирать их, возвращать старые, разбираться с опасными материалами, отправлять и принимать транспортные средства и обслуживать лицензии. И много чего ещё. В общем, в то время вся система крутилась на ULLS-G (Unit Level Logistics System – Ground, система логистики уровня отряда – наземная), которую потом уже сменила SAMS-E (Standard Army Maintenance System – Enhanced, расширенная стандартная система обслуживания армии), которая – так получилось – использовала в качестве бэкенда Oracle. По сравнению с SAMS-E, система ULLS-G выглядела как динозавр. Я много её использовал за 4 года, проведённые на службе. И это было ужасно. ULLS-G работала под MS-DOS (угу), и большинство компьютеров, которые я использовал, работали под MS-DOS (это был 2000 год). Когда мы прибыли на место дислокации, большинство компьютеров уже работали под WinXP/2K, поэтому можно было запускать ULLS-G в режиме совместимости с MS-DOS.
Читать дальше →
Total votes 104: ↑66 and ↓38+28
Comments18

Honor Cup

Reading time2 min
Views3.4K
Начался первый этап всероссийских соревнований в области ИКТ среди студентов — Huawei Honor Cup 2016! А это значит, что у талантливой молодежи вновь появилась отличная возможность не только продемонстрировать свои навыки, но и пополнить багаж знаний в области ИКТ.

Попробовать свои силы в соревнованиях приглашаются студенты учреждений высшего и среднего профессионального образования. Каждый может выбрать одну из трех номинаций, наиболее отвечающую его профессиональным интересам и имеющимся навыкам:
● 345G — поколения мобильной связи;
● E = DC2 — распределенные облачные центры обработки данных;
● vIP — технологии и протоколы IP-сетей.

В рамках каждой номинации участникам соревнований будет доступно множество новых и архив прошлогодних вебинаров, подготовленных экспертами Huawei. Таким образом, каждый сможет получить недостающие знания в выбранном направлении, чтобы успешно справиться с последующими заданиями.
Читать дальше →
Total votes 10: ↑8 and ↓2+6
Comments0

Какой HDD надёжнее? Статистика Backblaze по 27134 накопителям за 4 года работы

Reading time3 min
Views382K
Компания Backblaze опубликовала в своём блоге статистику использования дисковых накопителей в своих серверах. Backblaze предоставляет услугу дешёвого облачного бэкапа. В основе их инфраструктуры — жёсткие диски потребительского класса. За четыре года работы компания собрала порядочную статистику по отказоустойчивости разных типов дисков, использовавшихся в их хранилище. Парк накопителей Backblaze состоит в основном из дисков Seagate и Hitachi — почти по 13 тысяч. Ещё 2838 дисков — производства Western Digital, и по несколько десятков накопителей Samsung и Toshiba. Таким образом, данные Backblaze позволяют сравнить работу дисков потребительского уровня трёх производителей — Seagate, WD и Hitachi — в условиях датацентра.

image
Читать дальше →
Total votes 134: ↑132 and ↓2+130
Comments150

Выборочное подключение USB-флешек в Windows XP

Reading time2 min
Views42K
По роду своей деятельности (системное администрирование), приходится мне постоянно решать различные интересные задачи по управлению компьютерами и сетями.

Вот одна из них.

Дано:
  • Компьютер операторов производства (Windows XP SP2)
  • Одобренная начальством USB-флешка для переноса данных с промышленных компьютеров на компьютер операторов

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

Ход решения:
Читать дальше →
Total votes 158: ↑153 and ↓5+148
Comments85

Памятка пользователям ssh

Reading time13 min
Views1.5M
abstract: В статье описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые не боятся шелла. В отличие от большинства руководств, которые кроме ключей и -L/D/R опций ничего не описывают, я попытался собрать все интересные фичи и удобства, которые с собой несёт ssh.

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

Оглавление:
  • управление ключами
  • копирование файлов через ssh
  • Проброс потоков ввода/вывода
  • Монтирование удалённой FS через ssh
  • Удалённое исполнение кода
  • Алиасы и опции для подключений в .ssh/config
  • Опции по-умолчанию
  • Проброс X-сервера
  • ssh в качестве socks-proxy
  • Проброс портов — прямой и обратный
  • Реверс-сокс-прокси
  • туннелирование L2/L3 трафика
  • Проброс агента авторизации
  • Туннелирование ssh через ssh сквозь недоверенный сервер (с большой вероятностью вы этого не знаете)
Читать дальше →
Total votes 360: ↑352 and ↓8+344
Comments148

Проектирование программного обеспечения

Reading time5 min
Views310K
Сегодня процесс создания сложных программных приложений невозможно представить без разделения на этапы жизненного цикла. Под жизненным циклом программы будем понимать совокупность этапов:
  • Анализ предметной области и создание ТЗ (взаимодействия с заказчиком)
  • Проектирование структуры программы
  • Кодирование (набор программного кода согласно проектной документации)
  • Тестирование и отладка
  • Внедрение программы
  • Сопровождение программы
  • Утилизация

Остановимся детально на процессе проектирования. В ходе проектирования архитектором или опытным программистом создается проектная документация, включающая текстовые описания, диаграммы, модели будущей программы. В этом нелегком деле нам поможет язык UML.
Читать дальше →
Total votes 52: ↑36 and ↓16+20
Comments36

Обзор и оценка перспектив развития мирового и российского рынков ИТ

Reading time45 min
Views152K
Ранее, в своем блоге на «Хабре» мы писали о том, почему Московская Биржа – это в первую очередь ИТ-компания. Как и полагается ИТ-компании, мы постоянно отслеживаем новые тренды рынка ИТ, делаем аналитику и строим прогнозы.

Представляем свежий аналитический обзор рынка ИТ, подготовленный совместно с фондом РВК и компанией IDC.

В этом обзоре

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

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

Обзор содержит прогноз развития мирового и российского рынка ИТ по основным категориям на период 2014-2018 годы.

Читать длинный интересный пост...
Total votes 16: ↑13 and ↓3+10
Comments7

5 основных анти-паттернов системного администрирования

Reading time4 min
Views47K

Введение


Эта статья – скорее из разряда «для самых маленьких», чем «для умудренных опытом», но она призвана повышать профессиональную культуру системных администраторов.
В силу специфики работы мне «по наследству» достается самый разнообразный облачный ад, который приходится разгребать, оптимизировать, приводить в чувство и делать прозрачным и красивым. Эти заметки, пожалуй, иллюстрация к тем моментам, которые вообще недопустимы в системном администрировании.
В причинах, которыми порождаются эти анти-паттерны, можно разбираться очень долго: дедлайны, законы и темпы бизнеса, да и просто идиотизм, наконец. Но цель статьи другая. Мне бы хотелось породить конструктивную дискуссию. А вот уже её результаты и являются основной целью статьи.
Читать дальше →
Total votes 81: ↑71 and ↓10+61
Comments59

Становление аналитика

Reading time12 min
Views292K
image

Эту статью я хочу посвятить временами нелегкой, но увлекательной профессии ИТ-аналитика. На Хабре не так много материалов по данной дисциплине. К примеру, по управлению проектами – на порядок больше. Но выложенные недавно две статьи (раз и два), похоже, вызвали интерес, посему я тоже хотел бы внести свой скромный вклад. Сам работаю более 8 лет в роли аналитика, так что постараюсь не потратить Ваше время зря.
Не стану пересказывать теорию (ее можно почерпнуть в замечательной книге Вигерса или в BABOK). Мне бы хотелось сосредоточиться на практической стороне вопроса – описать выжимку из «боевого» опыта, как своего, так и некоторых других людей, с которыми мне посчастливилось работать.
Подробности
Total votes 21: ↑17 and ↓4+13
Comments50

Телнет и ботнет

Reading time6 min
Views32K

Недавняя крупнейшая DDoS атака на DNS-серверы компании Dyn на Хабре не прошла незамеченной. Особенностью этого блэкаута стала широкое применение http запросов c IoT устройств и открытый 23-й tcp порт, используемый службой telnet.





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

AYT 246 are you there?
Total votes 14: ↑14 and ↓0+14
Comments12

Основы компьютерных сетей. Тема №1. Основные сетевые термины и сетевые модели

Reading time14 min
Views1.4M
Всем привет. На днях возникла идея написать статьи про основы компьютерных сетей, разобрать работу самых важных протоколов и как строятся сети простым языком. Заинтересовавшихся приглашаю под кат.


Читать дальше →
Total votes 35: ↑30 and ↓5+25
Comments61

Правильный путь становления безопасника: от ламера до практического эксплойтинга

Reading time4 min
Views41K
Приветствую, тебя %хабраюзер%. Прочитал я тут статью на хабре «Экзамен для будущих «русских хакеров» в Московском Политехе». И мой мозг вошел в бесконечный цикл непонимания происходящего. То ли я сейчас заглянул на школофорум «хакеров», то ли действительно на хабр. Уж извините, с таким подходом текущему поколению вайтов просто некому будет заменить.

В данной статье я хотел бы написать, как по моему скромному мнению (ранее багхантера на стороне блэков) стоило бы действительно начинать путь. И ни к в коем случае не с Kali linux ( как оказываются преподают в политехе столицы.

Если вам интересен отчасти и мой путь, добро пожаловать под кат.
Читать дальше →
Total votes 50: ↑40 and ↓10+30
Comments36

Поиск с помощью регулярных выражений может быть простым и быстрым

Reading time21 min
Views49K
В этой статье мы рассмотрим два способа поиска с помощью регулярных выражений. Один широко распространён и используется в стандартных интерпретаторах многих языков. Второй мало где применяется, в основном в реализациях awk и grep. Оба подхода сильно различаются по своей производительности:



В первом случае поиск занимает A?nAn времени, во втором — An.

Степени обозначают повторяемость строк, то есть A?3A3 — это то же самое, что и A?A?A?AAA. Графики отражают время, требуемое для поиска через регулярные выражения.

Обратите внимание, что в Perl для поиска строки из 29 символов требуется более 60 секунд. А при втором методе — 20 микросекунд. Это не ошибка. При поиске 29-символьной строки Thompson NFA работает примерно в миллион раз быстрее. Если нужно найти 100-символьную строку, то Thompson NFA справится менее чем за 200 микросекунд, а Perl понадобится более 1015 лет. Причём он взят лишь для примера, во многих других языках наблюдается та же картина — в Python, PHP, Ruby и т. д. Ниже мы рассмотрим этот вопрос более детально.

Наверняка вам трудно поверить приведённым данным. Если вы работали с Perl, то вряд ли подмечали за ним низкую производительность при работе с регулярными выражениями. Дело в том, что в большинстве случаев Perl обращается с ними достаточно быстро. Однако, как следует из графика, можно столкнуться с так называемыми патологическими регулярными выражениями, на которых Perl начинает буксовать. В то же время у Thompson NFA такой проблемы нет.

Возникает логичный вопрос: а почему бы в Perl не использовать метод Thompson NFA? Это возможно и следует делать, и об этом пойдёт далее речь.
Читать дальше →
Total votes 85: ↑79 and ↓6+73
Comments14

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

Reading time8 min
Views118K
Это первая часть перевода статьи What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text

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

Эта статья о кодировках и наборах символов.
Читать дальше →
Total votes 98: ↑89 and ↓9+80
Comments37

«Hello, (real) world!» на php в 2017 году

Reading time8 min
Views77K
Вы наверняка думаете, что писать на php — это просто. И «hello, world» выглядит примерно так так:

<?php
echo 'Hello, world!';

Конечно, чего еще ожидать от языка с низким порогом входа. Ну да, именно так и было раньше. Много лет назад. Но теперь, в 2017 году никто так уже не делает. Давайте рассмотрим, почему, и попробуем построить наше более реалистичное hello-world приложение по шагам, а их, скажу сразу, получилось не мало.

Читать дальше →
Total votes 347: ↑260 and ↓87+173
Comments571

Information

Rating
Does not participate
Registered
Activity