Pull to refresh
0
0
Артем Годлевский @errno

User

Send message

15 тривиальных фактов о правильной работе с протоколом HTTP

Reading time7 min
Views232K
Внимание! Реклама! Пост оплачен Капитаном Очевидность!

Ниже под катом вы найдёте 15 пунктов, описывающих правильную организацию ресурсов, доступных по протоколу HTTP — веб-сайтов, «ручек» бэкенда, API и прочая. «Правильный» здесь означает «соответствующий рекомендациям и спецификациям». Большая часть ниженаписанного почти дословно переведена из официальных стандартов, рекомендаций и best practices от IETF и W3C.



Вы не найдёте здесь абсолютно ничего неочевидного. Нет, серьёзно, каждый веб-разработчик теоретически эти 15 пунктов должен освоить где-то в районе junior developer-а и/или второго-третьего курса университета.

Однако на практике оказывается, что великое множество веб-разработчиков эти азы таки не усвоило. Читаешь документацию к иным API и рыдаешь. Уверен, что каждый читатель таки найдёт в этом списке что-то новое для себя.
Читать дальше →
Total votes 191: ↑186 and ↓5+181
Comments120

Музей РВСН (ракетных войск стратегического назначения)

Reading time3 min
Views3.2K
Продолжая топики с военно-технической тематикой на Хабре, хочу рассказать о музее РВСН, который находится на Украине на границе Николаевской и Кировоградской областей.
image
Узнал я о нем прошлой осенью и не мог отказать себе в удовольствии посетить место, которое еще совсем недавно было строго засекречено и более того являлось одним из образцов мощнейшего современного оружия.
Читать дальше →
Total votes 130: ↑111 and ↓19+92
Comments115

Совместное принятие решений в Google Wave

Reading time2 min
Views1.6K
Сегодня я хочу с вами поделиться информацией о возможностях, которые предоставляет Google Wave для принятия решений. И если речь идет о Google Wave, то конечно же мы будем рассматривать именно коллаборативное принятие решений.
Поймать волну!
Total votes 50: ↑36 and ↓14+22
Comments30

Maltego. Нароет все

Reading time2 min
Views56K
image

Вчера, просматривая очередную сборку live-дистрибутива BackTrack, наткнулся на очень интересную и довольно таки, как оказалось потом, полезную софтину. Многие из нас часто сталкивались с проблемой поиска информации касательно определенной организации, а именно конкретный данных: начиная с общего описания деятельности и заканчивая личными телефонами сотрудников. Как инструмент использовали популярные поисковые машины(играясь с языком запросов для более результативного поиска), различные общедоступные базы данных(телефонный базы, whois и т.д.).

Хотелось найти что-то, что могло само осуществлять «умный», узкоспециализированный поиск, разделять(по критериям и типу) и сортировать информацию и главное — указывать взаимосвязи.
Именно для эти целей и появился на свет инструмент под названием Maltego, разработка южноафриканской компании Paterva.

Читать дальше →
Total votes 49: ↑40 and ↓9+31
Comments30

Рефакторинг: миссия (не)выполнима?

Reading time4 min
Views2K
Что делать, если исходники проекта напоминают болото, а жить в нем планируется еще долго? Рефакторинг исходных кодов проекта — это более выгодная из двух альтернатив разобраться с означенной проблемой. Вторая из альтернатив — выбросить и переписать все заново — обычно не устраивает, по разным причинам.

А как делать этот самый рефакторинг, если даже неизвестно, с чего начать? Как осушить болото кода и не утонуть нем?

Конечно, идеальный вариант — считать рефакторинг одной из активности на проекте с самого его начала и выделять на него проектное время команды. В жизни, как ни странно, однако чаще всего оказывается, что предыдущий лид проекта не сильно озадачивался этим вопросом, предпочитая плыть по течению; возможно, он надеялся когда-нибудь сбагрить эту ношу менее удачливому лиду — пока проект еще не развалился; а может быть, просто не знал, что делать. Шеф, усё пропало!

Читать дальше →
Total votes 65: ↑64 and ↓1+63
Comments52

Электронная отчётность

Reading time3 min
Views6.2K
Пост созрел в связи с недавними изменениями в налоговом законодательстве Украины, и вводом ежемесячной сдачи отчёта НДФЛ (даже пустого) и я думаю многие видели очереди:

и друзья попросили пролить свет на такое понятие как электронная отчётность и стоит ли ей заморачиваться. Однозначно — стоит. (я бы в такой очереди одурел стоять)
Читать дальше →
Total votes 58: ↑53 and ↓5+48
Comments61

Переходим на Fusion Drive

Reading time9 min
Views158K

Активные пользователи Mac OS X наверняка помнят анонсированную 23 октября функцию Fusion Drive. Напомню, что она представляет из себя логическое объединение установленных в ваш Mac SSD и HDD. Объем единого диска будет равен сумме объемов SSD и HDD, но главные плюс — часто используемые файлы (например, ядро системы) Mac OS автоматически и прозрачно для пользователя размещает на более быстром SSD, а все прочие файлы на HDD.

Читать дальше →
Total votes 64: ↑60 and ↓4+56
Comments84

Раздаем права на запуск/остановку сервисов под Windows

Reading time3 min
Views54K
Буквально сегодня понадобилось дать человеку возможность перезапускать тестовый вебсервер под виндой.
Права админа давать естественно давать не хочется.
«Мощный» юзер не подходит.

букв много
Читать дальше →
Total votes 87: ↑75 and ↓12+63
Comments39

Как я нанимаю программистов

Reading time4 min
Views10K
Есть три вопроса, ответ на которые надо знать, когда нанимаешь на работу программиста:
      1) Он умный?
      2) Способен ли он выполнять работу?
      3) Смогу ли я с ним работать?

Кто-то умный но не способный выполнять работу может быть хорошим другом, но не сотрудником. Можно обсудить с ним какие-то проблемы, пока он прохлаждается на своей собственной работе.

Тот, кто способен выполнять работу но не умён – неэффективен. Неумные люди выполняют работу путём грубой силы. Работа с такими людьми движется медленно и обычно раздражает.

С тем, с кем я не смогу работать – я не смогу работать.

Под катом продолжение статьи Аарона Шварца. Я бы предпочёл чтобы меня собеседовали таким образом, чем быть изучаемым девочкой-сотрудницей ОК, которая не отличает http от mp3.

Читать дальше →
Total votes 136: ↑112 and ↓24+88
Comments133

Как я фотоаппарат покупал

Reading time6 min
Views112K


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

Итак, началось всё с обзвона условно-доступных магазинов: их нашлось около десятка.

Дыра 8-800


У нескольких магазинов стоит автоответчик на 8-800 — это хорошая дыра для атаки на переполнение бюджета. Уязвимость давно описана – конкуренты могут делать ботом четырёхсекундные звонки на номер 8-800, и, не дожидаясь живого оператора, класть трубку. За 800 платит владелец (магазин), поэтому в конце месяца при таком раскладе может приехать большой счёт. Я почти уверен, что грамотный админ отследит такие ситуации – но не уверен, он есть у маленьких магазинов. Собственно, мы сами узнали об этом из топика на Хабре и сразу закрыли дыру.
Проверьте, как у вас.
Читать дальше →
Total votes 202: ↑178 and ↓24+154
Comments178

Умный дом, как я до такого докатился. Часть 3-я

Reading time6 min
Views217K

В первой части разобрались с тем, зачем все это нужно и как я до этого докатился, во второй поговорили о софте. Настала пора остановиться на самом любимом хабравчанами разделе DIY — на железе. Итак, берем текстолит, хлорное железо, паяльник… Хотя нет, стоп, открываем редактор плат. Про паяльник, куда его засовывать, а куда лучше не надо другие лучше меня расскажут. А я расскажу какие платы и датчики трудятся на благо моего умного дома.

Поехали!
Total votes 84: ↑79 and ↓5+74
Comments42

Повесть о настоящем PRINTRBOT'е (Часть 2: Сборка и испытание)

Reading time8 min
Views43K
Продолжаем разговор. (С)
image

Уважаемый Читатель, после недолгого перерыва мы продолжаем собирать наш чудный 3D-принтер, точнее готовимся к сборе путем поглощения бесценного опыта первопроходцев.
Из первой части мы уже знаем особенности заокеанской фанеры, нарезанной на лазерном станке, и имеем представление о «бутербродах» из нее.
Поговорили о ПВА, масле, шестеренках и о Музе Исааковне, и о том, как они нужны друг другу.

Далее еще немного поговорим про фанеру и перейдем к винтикам.

Прошу к столу, вскипело. (С)
Читать дальше →
Total votes 44: ↑41 and ↓3+38
Comments18

С камерой в облака. Часть 2

Reading time26 min
Views252K
Тренировки

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

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

  • Тренировки. Вырабатывание летных навыков.
  • Выбор модели: самолет, вертолет или мультикоптер?
  • Выбор конкретной конструкции и размера
  • Моторы и ESC
  • Полетный контроллер


Как обычно, сразу к делу.
Читать дальше →
Total votes 175: ↑173 and ↓2+171
Comments170

Повесть о настоящем PRINTRBOTe (Часть 1: Муза Исааковна)

Reading time12 min
Views59K
В ногах правды нет. /А. Маресьев/

image

ПРЕДИСЛОВИЕ


Printrbot'ы (далее ПБ) — редкие гости на Хабре, да и вообще, в прессе о них пишут мало.
Хотя у себя на родине дело Брука Драмма (Brook Drumm) живет и процветает.
Полагаю, чем принтер отталкивает европейских дилеров, тем он меня и привлек, а именно:
  1. Фанерное исполнение — это стильно. Фанера лазерной резки — это не только стильно, но и высокотехнологично.
  2. Нет кожуха-коробки. Я вижу принтер, его детали, его органы, его движения, и в отличии от RepRap Prusa Mendel — мне нравится то, что я вижу.

Далее речь пойдет об одном из представителей ПБ — Printrbot Jr, в варианте Kit'a для сборки, вместе с дополнительным апгрейдом рабочего стола с подогревом — Heated Bed Upgrade, для печати пластиком ABS.
Сейчас этот принтер приобретен, собран, откалиброван и трудится в поте лица на моем столе, печатая игрушки к Новому Году.
Описать судьбу данного экспоната я хочу от самых истоков, от самой идеи и до непосредственного применения, поскольку судьба эта была не легкой и тесно переплелась с моей, порой сначала доводя до полного психологического истощения, а потом резко оглушая Вау-эффектом.
Изначально задумывалось три части: От идеи до приобретения Kit'a; Сборка и настройка принтера; От игрушки до практического применения. Но в процессе написания все решил включить в одну статью с акцентом на сборку и настройку.
В итоге рекомендую данный материал как крайне полезное дополнение к оригинальной и единственной пошаговой инструкции по сборке, которая крайне поверхностна, неоднозначна и оставляет желать много лучшего.

Забегая вперед сразу скажу, что данный 3D-принтер стоил того, чтобы с ним помучиться), что выгодно отличает его от многих своих собратьев, и об этом далее и по порядку.
Читать дальше →
Total votes 63: ↑60 and ↓3+57
Comments42

RFID-системы стандарта EPC Gen2

Reading time11 min
Views55K
Данные системы находятся несколько «в тени» от взгляда широких масс, т. к. ориентированы больше на промышленные применения, но степень их развития и темпы роста рынка этих систем, как мне кажется, заслуживают к ним большего внимания.
Кратко расставим существующие RFID-системы по основным параметрам.

Активные-пассивные


Если метки не используют собственную батарею питания, а получают его от поля считывателя – пассивные. Если используется батарейное питания, то активные.
Еще есть «полу-пассивные» метки (также называются «BAP» – Battery Assisted Passive), которые используют радиоинтерфейс и протокол обмена пассивной системы, но есть батарея питания. Постоянное питание чипа таких меток может несколько улучшать ее характеристики по дальности регистрации, но чаще дополнительное питание используется для встроенных датчиков (температуры, ускорения, влажности и т. п.). Батарея используется для питания датчиков и накопления данных при нахождении метки вне поля считывателя, с последующим их считыванием при входе в зону регистрации.
Активные метки, достаточно дорогие, большие по размерам, но зато дистанция их регистрации может достигать километра. Также есть специальный класс активных меток RTLS – Real Time Locating Systems – системы определения положения в реальном времени.
Важным отличием пассивных меток от активных является то, что пассивные метки НЕ ИЗЛУЧАЮТ радиосигнал. Пассивные метки, отвечая на сигнал считывателя, только модулируют нагрузку своей антенной системы в момент ее нахождения в поле несущей частоты считывателя. Считыватель обнаруживает и детектирует эти слабые отраженные модуляции на фоне непрерывного излучения несущей частоты через свою приемопередающую антенну.
Системы EPC Gen2 относятся к пассивным, но бывают и полу-пассивные специальные метки.

Частотный диапазон


LF – Low Frequency, 125-135 кГц. «Обычные» метки-карточки или домофонные брелки для систем контроля доступа, метки-капсулы для «чипирования» животных (но и среди высших мыслящих существ также есть любители встроенных уникальных идентификаторов).

HF – High Frequency, 13,553-13,567 МГц. Все транспортные проездные карты, банковские беспроводные карты, устройства и метки NFC. Также есть более «простые» метки без криптографических функций, содержащие только идентификатор.

UHF – Ultra High Frequency. Диапазоны 433,075-434,790 МГц и 2400-2483,5 МГц используются активными метками и RTLS, а также брелками сигнализаций, беспроводными клавиатурами, мышками и т. п.

Для EPC Gen2 в мировом масштабе используется UHF диапазон 860-960 МГц, но локально в странах и регионах используются более узкие полосы.
В РФ используются частоты европейского диапазона 865,6-867,6 МГц в соответствии со стандартом ETSI EN302-208-1 V1.2.1, хотя формально выделенная в РФ полоса уже — 866,6-867,4 МГц.
Стандарт EPC Gen2 (полностью Electronic Product Code Class 1 Generation 2) разработан международной организацией GS1 EPC Global. Ему также соответствует стандарт ISO/IEC 18000-63(С). Соответствующая национальная версия ГОСТ разрабатывается.

Какие же существенные преимущества и отличия имеют RFID-системы EPC Gen2 по сравнению с другими?:
  • Рекордная дистанция регистрации меток для пассивных систем до 10 и более метров, что объясняется использованием «полного» электромагнитного поля, а не магнитной связи петлевых антенн считывателя и метки, как в LF и HF;
  • Эффективный «антиколлизионный» механизм, позволяющий считывать одновременно до 300 уникальных меток в зоне регистрации;
  • Высокая скорость считывания метки – до сотен раз в секунду. Экспериментально подтверждена возможность регистрации одиночных меток при их перемещении через зону регистрации на скорости до 250 км/час;
  • Наименьшая цена простой метки-наклейки (на 2013 год около 5 рублей при больших объемах поставки).

Читать дальше →
Total votes 7: ↑6 and ↓1+5
Comments16

Инструменты студии мобильной разработки

Reading time4 min
Views38K


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

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

Пройдемся по дизайну, серверным решениям, тестированию и аналитике.
Читать дальше →
Total votes 46: ↑41 and ↓5+36
Comments22

От JQuery до Backbone

Reading time23 min
Views28K
imageВ данной статье будет показано как можно реорганизовывать код написанный в «простом» JQuery стиле в код на Backbone, с использованием представлений, моделей, коллекций и событий. Реорганизация будет постепенной, так чтобы этот процесс дал четкое понимание основных абстракций в Backbone. Статья рассчитана на тех кто использует JQuery и хотел бы познакомится со схемой MVC для клиентского кода.
Читать дальше →
Total votes 90: ↑80 and ↓10+70
Comments43

Django и часовые пояса

Reading time8 min
Views20K
Есть несколько обыденных вещей, которые время от времени портят кровь нашему брату: падежи, числительные и часовые пояса, с проклятым переходом на летнее/зимнее время. Невольно позавидуешь китайцам у которых на всю страну всего один часовой пояс, а падежей нет и в помине. Будет совсем неплохо раз и навсегда разобраться с часовыми поясами и преобразованиями между ними хотя бы для Django-приложений.
Читать дальше →
Total votes 49: ↑44 and ↓5+39
Comments11

Table bloat? Не, не слышал…

Reading time3 min
Views52K


Думаю многим известна особенность PostgreSQL, которая приводит к эффекту раздувания таблиц, или table bloat. Известно что она проявляет себя в случаях интенсивного обновления данных, как при частых UPDATE так и при INSERT/DELETE операциях. В результате такого раздувания снижается производительность. Рассмотрим почему это происходит и как с этим можно бороться.
что?
Total votes 59: ↑58 and ↓1+57
Comments25

Юнит-тестирование для чайников

Reading time15 min
Views1.1M
Даже если вы никогда в жизни не думали, что занимаетесь тестированием, вы это делаете. Вы собираете свое приложение, нажимаете кнопку и проверяете, соответствует ли полученный результат вашим ожиданиям. Достаточно часто в приложении можно встретить формочки с кнопкой “Test it” или классы с названием TestController или MyServiceTestClient.



То что вы делаете, называется интеграционным тестированием. Современные приложения достаточно сложны и содержат множество зависимостей. Интеграционное тестирование проверяет, что несколько компонентов системы работают вместе правильно.

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

We need to go deeper
Total votes 70: ↑63 and ↓7+56
Comments65
1
23 ...

Information

Rating
Does not participate
Location
Львов, Львовская обл., Украина
Date of birth
Registered
Activity