Pull to refresh
11
iav @iavread⁠-⁠only

User

Send message

Венера или первые 60 kpx с другой планеты

Reading time8 min
Views216K
Когда мы слышим «фотография с поверхности другой планеты», то первым на ум, как правило, приходит Марс. Оно, конечно, и не удивительно: в последние годы мы избалованы стереоскопическими снимками HRSC, панорамами HiRISE с огромным разрешением, и марсоходом Curiosity с почти ежедневными фотоотчетами. И даже когда речь заходит об истории вопроса, вспоминаем успех американских миссий «Викинг». Но мало кто помнит (или даже знает) о том, что первая в истории фотография с поверхности другой планеты получена не на Марсе и не американским аппаратом, а советской станцией «Венера-9» в 1975 году.

В этом топике я хочу восстановить историческую справедливость и рассказать о том, как советским инженерам удалось создать устройство, которое успешно осуществило панорамную съемку в условиях крайне агрессивной среды при температуре более 470°С и давлении в 93 атм.



Читать дальше →

Почему Citrix не стала «новой Red Hat» на рынке виртуализации? Часть 1

Reading time7 min
Views18K
Когда писал свой прошлый пост о том, как поменялось мое отношение к Xen, вспомнил, что еще в 2007 году (после покупки Citrix’ом компании XenSource), обсуждался вопрос о том, что Citrix может стать “новой Red Hat в виртуализации”. И действительно, для этого были все предпосылки — Citrix давний и хорошо известный игрок корпоративного рынка, а XenSource была молодой и амбициозной OpenSource-компанией, основанной участниками проекта Xen.

Но Citrix не стала «новой Red Hat в виртуализации». Почему? Ответить на этот вопрос поможет статья Питера Левайна (Peter Levine), который занимал пост CEO в XenSource как раз в 2007 году, во время продажи компании. Во второй части статьи я напишу, в чем, на мой взгляд, Питер Левайн прав, а в чем нет. Ну а у вас есть возможность высказаться об этом в комментариях, сразу же после прочтения статьи. ;-)
Читать дальше →

Альтернативы Raspberry Pi

Reading time4 min
Views55K
Когда речь заходит об одноплатных компьютерах (single-board computer), вероятно, первым на ум приходит именно Raspberry Pi. Тем более, что недавно вышла третья «малина», которая шустрее и мощнее предыдущих версий. Крохотные компьютеры этой линейки, изначально предназначавшиеся под обучение информатике, способны делать много чего интересного. Эта «машинка» может стать метеостанцией на солнечной энергии, управляющим центром «умного дома», игровой приставкой для любителей 8-битной классики и даже сердцем радиоуправляемых моделей. Тут все зависит от фантазии, желания и прямоты рук.



Но несмотря на все свои особенности и преимущества, Raspberry Pi конечно же несовершенен. На рынке одноплатных компьютеров есть и другие модели. Ниже представлена подборка альтернатив RPi, заслуживающих внимания.

Читать дальше →

Чем плохо быть full stack enterprise-администратором

Reading time7 min
Views31K
Disclamer: jehy опубликовал интересную статью — «Чем плохо быть full stack разработчиком».
Проблема, которую затрагивает автор, на самом деле гораздо шире чем мир разработки. Мы, скромные администраторы, испытываем такие же проблемы. Прочитав ее я не удержался, чтобы не сделать маленькую пародию, спроецировав, порою дословно, ее на мир системного администрирования.

Введение


Прежде всего определимся с терминами. Есть много разных представлений о том, кто же такой full stack администратор, кто-то даже обоснованно считает, что такой администратор – это миф, но в этой статье будет иметься в виду администратор, который обладает знаниями и умениями, позволяющими разобраться в ИТ-инфраструктуре «от» и «до» и при необходимости обслужить любую систему. Идеальный enterprise администратор это тот, кто владеет в какой-то мере как сетевой составляющей, так и системами хранения данных, платформами виртуализации и другими продуктами, может сам диагностировать, на каком уровне возникла неисправность или что потребуется для запуска нового сервера.

Возможно, по заголовку кому-то покажется, что это жалобный пост о том, как плохо живется вчерашнему студенту, а сегодняшнему эникею в одноранговой сети с 1С-кой, который понахватал всего из разных статей в интернете. Нет, пост не жалобный. И мы будем рассматривать не вчерашнего студента, а матерого админа, с бородой и опытом работы в пять лет и более. Просто посмотрим, какие минусы есть в таком развитии.
Читать дальше →

Обзор примитивов синхронизации — Семафор и немного lockless-а

Reading time6 min
Views29K
В прошлой заметке мы обсудили самую известную пару из лагеря инструментов синхронизации тредов — mutex и cond. Сегодня встретимся с sema — примитивом, который умеет заменять предыдущие два в одиночку.

Но сначала — пара слов о случайных пробуждениях. (Спасибо xaizek, который мне об этом напомнил.) В принципе, строго реализованные механизмы синхронизации этим не страдают, но, тем не менее, опытный программист на это никогда не полагается.

Напомню фрагмент кода:

while(total_free_mem <= 0)
    {
    wait_cond(&got_free_mem, &allocator_mutex);
    }


Здесь цикл вокруг wait_cond гарантирует нам, что даже если мы вернёмся из ожидания события случайно или по ошибке, ничего страшного не случится — проверка в while обеспечит нам уверенность, что нужное состояние проверяемого объекта достигнуто. Если нет — поспим ещё в ожидании.

Отметим ещё раз, что проверяем мы состояние объекта (total_free_mem <= 0) при запертом мьютексе, то есть никто не может его менять в то же самое время.
Читать дальше →

История про хитрожо… индуса, encrypted procedures, DAC и «режим Бога»

Reading time7 min
Views43K
На той неделе пришлось разбираться в логике работы одного бесплатного тула. Почти детективная история вышла с ее автором, который впоследствии оказался индусом канадского происхождения проживающим в Южной Америке.

Конечно же, практическая ценность была не в биографии автора, а в запросах, которые отправлялись приложением на сервер.

Установил. Запустил. Стал в стоечку и начал собирать профайлером все, чем приложение должно было «порадовать» сервер. Смею разочаровать – ничего радостного сервер в ближайшие два часа не увидел. В основном встречались разного рода перлы в запросах, которые явно не претендовали на комплименты:

SELECT
    LogTruncations = (
        SELECT TOP 1 SUM(cntr_value)
        FROM ##tbl_cnt
        WHERE counter_name = 'Log Truncations'
    ),
    LogShrinks = (
        SELECT TOP 1 SUM(cntr_value)
        FROM ##tbl_cnt
        WHERE counter_name = 'Log Shrinks'
    ),
    LogGrowths = (
        SELECT TOP 1 SUM(cntr_value)
        FROM ##tbl_cnt
        WHERE counter_name = 'Log Growths'
    ),
    ...

Поскольку их можно написать на порядок проще и сократить логические чтения из таблицы:

SELECT
    LogTruncations = SUM(CASE WHEN counter_name = 'Log Truncations' THEN cntr_value END),
    LogShrinks = SUM(CASE WHEN counter_name = 'Log Shrinks' THEN cntr_value END),
    LogGrowths = SUM(CASE WHEN counter_name = 'Log Growths' THEN cntr_value END),
    ...
FROM ##tbl_cnt

На этом можно было бы и закончить… Но практически под конец я увидел, что приложение вызывает пользовательские хранимые процедуры из tempdb. Поймал себя на мысли: «Когда приложение успело их создать… и главное зачем?»
Подробнее

Коварный роутер или почему порты надо открывать

Reading time9 min
Views48K

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

Речь об «автоматической» пробросе порта, через технологию UPnP, без использования «стандартной» библиотеки NATUPnPLib.

О том, в силу чего был выбран такой непростой путь и почему он все-таки непростой — читайте ниже.
Подробности эксперимента

Разработка web API

Reading time9 min
Views291K

Интро


Это краткий перевод основных тезисов из брошюры «Web API Design. Crafting Interfaces that Developers Love» Брайана Маллоя из компании Apigee Labs. Apigee занимается разработкой различных API-сервисов и консталтингом. Кстати, среди клиентов этой компании засветились такие гиганты, как Best Buy, Cisco, Dell и Ebay.

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

Собираем API-интерфейсы, которые понравятся другим разработчикам


Понятные URL для вызовов API

Первый принцип хорошего REST-дизайна — делать вещи понятно и просто. Начинать стоит с основных URL адресов для ваших вызовов API.

Ваши адреса вызовов должны быть понятными даже без документации. Для этого возьмите себе за правило описывать любую сущность с помощью коротких и ясных базовых URL адресов, содержащих максимум 2 параметра. Вот отличный пример:
/dogs для работы со списком собак
/dogs/12345 для работы с отдельной собакой
Дальше

Mercurial: изменяем историю

Reading time7 min
Views54K
Когда я познакомился с Mercurial, то все свои знания я почерпнул из статей Спольского (перевод на Хабре), которые подробно описывают основные принципы работы Mercurial и ежедневную работу с ним. Долгое время я использовал Mercurial в пределах, которые не превышали объема этих статей. Наверно, для одиночного разработчика этого почти достаточно. Почти. Но Mercurial сегодня значительно шире и обладает возможностями допускающими редактирование истории изменений, наличие которых, в общем-то, не очевидно, хотя возможности эти достаточно ценны. А из комментариев к разным статьям по системам управления версиями видно, что многие разработчики об этих возможностях не знают. Ниже я хочу провести обзор ряда возможностей Mercurial связанных с изменением истории.

О чем пойдет речь:

  • фазы
  • hg commit –amend
  • hg strip
  • hg rebase

Поехали

Список бесплатных DNS-сервисов

Reading time2 min
Views297K
Обновляю 4-летний список бесплатных сервисов для управления доменами

Primary + Secondary
Сервис Кол-во NS Кол-во доменов Типы записей TTL Доп. фичи
pdd.yandex.ru 2 50 AAAA и SRV + Есть API
cloudflare.com 2 неограниченное AAAA, SRV, SPF, LOC +
2ns.info 4 неограниченное AAAA и SRV + Есть экспорт. Показывает регистратора, дату регистрации домена, дату окончания регистрации, тИЦ. By leonid239
dns.he.net 5 50 все + NS доступны по IPv6. Свой DDNS-сервис
www.netbreeze.net/dns 3 1 AAAA и SRV + Есть API
entrydns.net 3 неограниченное AAAA и SRV + Есть свой DDNS-сервис, REST-api
Читать дальше →

Виртуальный город: почему геоинформационные системы до сих пор не перевернули мир архитектуры

Reading time7 min
Views16K
Это статья о городе и архитектуре. Хотя про красивые домики тут ничего не будет. О них было немного в предыдущей статье и, увы, это отвлекло внимание от собственно информационной составляющей и направило дискуссию в русло обсуждения 3D-моделей городов — и геоинформационных систем (ГИС), которые в том или ином виде эту модель предоставляют или дают возможность поучаствовать в моделировании. Итак, двух- и трёхмерным ГИС разного рода несть числа. Почему же тогда геоинформационные системы до сих пор не привели к революции в градостроительстве?


Читать дальше →

Ввод произвольных символов при помощи Compose Key: настройка

Reading time5 min
Views33K
Многие знают, что в Linux есть специальная кнопка: Compose. Её действие аналогично виндовым сочетаниям Alt+NumPad (Например, нажатие Alt+0169 даёт символ ©), но не требует хранить перед глазами таблицу кодов символов :) Если настроить правый Alt как Compose Key, то нажав RAlt+O+C получаем тот же значок копирайта: ©.

В статье я опишу способ назначения произвольных сочетаний клавиш для символов. Это будет удобно в первую очередь математикам: не нужно будет лазить в таблицу символов чтобы ввести «∀ε>0 ∃δ(ε)≕δ>0: ∀x∈O(x₀) |f(x)<A|» в любом приложении, поддерживающем юникод. Кроме математических символов, будут доступны всевозможные стрелочки (→⇖⇔⟲⟽), галочки (✘), буллеты (•‣★), кавычки («»), длинное тире (—), дроби(⅓, ⅞), диа⃫кр͎е̃ти⃰ческие зн⃫аки и всё что душе угодно в необъятном юникоде! :)
Хочу так же

Как подключиться к Hyperboria

Reading time5 min
Views50K

Введение

На Хабре уже есть несколько статей про сеть Hyperboria:
Hyperboria: Интернет 2.0
Hyperboria: Как все устроено
Hyperboria: Маршрутизация

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

Здесь же я хочу написать что-то типа FAQ + гайд по подключению.
Читать дальше →

Способы отладки ПО микроконтроллеров в электроприводе

Reading time14 min
Views53K
image

Как отлаживают программы микроконтроллеров? Берется JTAG, осциллограф – пара дней/недель и программа отлажена. Таким будет типичный ответ, и в большинстве случаев он будет правильным… Но не всегда. Микроконтроллеры решают очень разные задачи, и в этой статье мы рассмотрим, что делать, если нужно разработать громоздкое ПО низкоуровневого управления каким-либо силовым электрооборудованием, например, преобразователями частоты для электродвигателей, DC/DC преобразователями заряда АКБ для поезда, корректорами мощности, сервоприводами и т.п. Оборудованием, где протекают килоамперы и ШИМят киловольты, где на счету каждая коммутация IGBT ключей инвертора, где время реакции микроконтроллера на нештатную ситуацию измеряется в микросекундах, а само оборудование в герметичных корпусах устанавливается и эксплуатируется где-нибудь на заводах Якутии. Если вы хотите узнать, какие особенности это накладывает на способы отладки – добро пожаловать под кат.
Читать дальше →

Минута теории: Разбираемся с RESTful-приложениями

Reading time2 min
Views27K
Мы достаточно регулярно рассказываем как о собственных разработках, так и экспертном опыте, связанном с веб-технологиями. Недавно мы рассматривали кейс с масштабированием веб-приложения на Ruby и говорили о том, как можно ускорить загрузку веб-страниц.

Сегодня мы решили разобраться с терминологией и рассмотреть термин, который всем хорошо знаком. Речь идет о RESTful-приложениях. В этом нам помог материал Лорен Лонг (Lauren Long), которая работает в компании Recurse Center.


Читать дальше →

Полный перевод Unix-коанов на русский язык

Reading time16 min
Views76K


Представляю на ваш суд ещё один перевод коанов о Мастере Фу на русский язык. В данный сборник вошли все коаны, на данный момент опубликованные на сайте Эрика Реймонда. Надо сказать, что сам Эрик личность весьма неординарная, но упоминания в данной статье стоящая. Помимо холиваров в списках рассылки всевозможных проектов за его авторством также несколько серьёзных трудов о Unix — в том числе и о сообществе, без которого экосистема современных открытых проектов не была бы возможной (полный список книг). Идея перевести коаны в очередной раз пришла мне в голову во время чтения одного из таких трудов, а именно «The Art of Unix Programming», поскольку многое из скрытого смысла коанов становится ясно только после прочтения очередной главы оттуда.

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

Итак

Проблема TV/PC диапазонов видео

Reading time7 min
Views15K

postimage



Привет, хабр!



Хочу поведать о своём недавно проведённом исследовании, в котором я изучил проблему несоответствия TV/PC диапазонов при сжатии/воспроизведении видео. Проблема эта довольно мелочная, но в то же время достаточно массовая, из-за неё я частенько раньше винил кодеки сжатия в изменении цветов.


Читать дальше →

История про msdb размером в 42 Гб

Reading time5 min
Views59K
Недавно выдалась минутка посмотреть почему старый тестовый сервер безбожно тормозил… К нему я не имел никакого отношения, но меня одолевал спортивный интерес разобраться, что с ним не так.

Первым делом открыл Resource Monitor и взглянул на общую нагрузку. Процесс sqlserv.exe нагружал ЦП под 100% и формировал большую дисковую очередь, которая была за 300… при том, что значение выше единицы уже считается проблемным.

При анализе дисковой активности заметил непрерывные IO операции в msdb:

D:\SQL_2012\SYSTEM\MSDBData.mdf
D:\SQL_2012\SYSTEM\MSDBLog.ldf

Посмотрел на размер msdb:

SELECT name, size = size * 8. / 1024, space_used = FILEPROPERTY(name, 'SpaceUsed') * 8. / 1024
FROM sys.database_files

и включил режим «рука-лицо»:

name         size           space_used
------------ -------------- ---------------
MSDBData     42626.000000   42410.374395
MSDBLog      459.125000     6.859375

Файл данных занимал 42 Гб… Взяв небольшую паузу я начал разбираться в чем причина такого нездорового объема msdb и как побороть проблемы с производительностью сервера.
Подробнее

Платежные карты с динамическим CVV кодом – реалии и перспективы

Reading time7 min
Views17K
Приветствуем вас на страницах блога iCover. Не поспоришь с тем, что очевидные преимущества, связанные с покупками продуктов и услуг в сети Интернет определили их колоссальную популярность в масштабах планеты. Вместе с тем, удобство приобретения товаров и услуг онлайн время от времени сталкивается с проблемой кражи личных данных на этапе совершения транзакций. Весьма насущно выглядит и проблема кражи ПИН-кодов при совершении покупок в оффлайн-магазинах. О новых перспективных технологиях защиты персональных данных держателей карт и вероятности их появления на отечественном рынке мы расскажем в нашей статье.


Читать дальше →

Information

Rating
Does not participate
Registered
Activity