Search
Write a publication
Pull to refresh
26
0
olegi @olegi

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

Send message

Графы для самых маленьких: Ford & Bellman или как понять, что ты попал в бесконечно далекое прошлое

Reading time3 min
Views60K
В предыдущих частях цикла мы рассмотрели алгоритмы DFS и BFS, позволяющие найти путь в графе и обладающие рядом других интересных свойств. Но в жизни очень часто оказывается, что гораздо проще выглядит модель задачи в виде графа с неодинаковыми длинами ребер. Поиском кратчайшего пути во взвешенном графе мы и займемся под катом.
Читать дальше →

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

Reading time2 min
Views53K
Несколько дней назад мне написали с сообщением, что «похоже, ваш сервер взломали», указав ссылку на какойтолевыйподдомен.мойдомен.ru. По адресу сему была какая то адовая фигня в стиле «драйвера бесплатно без смс», иначе не скажешь.

Я бросился проверять логи/пароли/настройки сервера, доменного регистратора, но ничего что бы указывало на «какойтолевыйподдомен» не нашлось. Уже поняли, в чем был подвох? Если и да, всё равно рекомендую заглянуть под кат.
Читать дальше →

Быстрая десериализация действительно больших JSON-ответов

Reading time6 min
Views21K
Под катом находится небольшое, но полезное описание того, как быстро и просто превратить пришедший JSON-ответ в набор объектов. Никакого ручного парсинга. А если вы сталкивались с OutOfMemory проблемой на старых смартфонах – и для этого есть решение, поддерживающее Android 2.X версий.

Кроме того, под катом будет ссылка на репозиторий на гитхабе с примером кода. А вот картинок не будет, зато найдётся место для небольшой таблички.
Читать дальше →

Бэкап большого количества мелких файлов

Reading time3 min
Views40K
Рано или поздно настройкой резервного копирования рабочих файлов озадачивается любой уважающий себя современный IT специалист. После ряда опечаток/ошибок программистов нашлось время для этого и у меня.
Специфика веб-приложения такова, что рабочий каталог занимает более 50ГБ на жестких дисках, включая в себя около 900 тысяч мелких файлов (картинки, превьюшки, ...). Поэтому в лоб решить задачу с помощью tar и аналогов не вышло. Да и хотелось бы иметь некоторую вариативность хранимых данных, а в случае с полным бэкапом реализация требовала больших затрат на хранение по сути одинаковых данных с небольшими изменениями. Плюс неплохо было бы дублировать копии на удаленном сервере бэкапов для снижения риска потери критической информации в результате краха железа. После скрупулезного анализа поисковых выдач и отбрасывания заведомо неподходящих мне методов, остановился на паре вариантов, навязываемых чаще всего в комментариях к самописным shell-велосипедам энтузиастов.
Читать дальше →

Новые технологии меняют рынок труда

Reading time7 min
Views90K


В фантастическом фильме (снятом по мотивами книги Айзека Азимова) «Я, робот» отец главного героя лишился работы из-за внедрения роботов на производстве. И не только он один, в фильме показан целый депрессивный мир будущего. Будущего, в котором люди массово теряли работу, потому что компьютеры и роботы выполняли эту работу гораздо лучше, быстрее и дешевле. Вы скажете, что нечто подобное уже происходило в человеческой истории, и со временем ситуация наладилась, люди переучились и адаптировались. Однако сегодня, сейчас, происходит «ползучий» рецидив — «техника» снова начала отнимать работу у людей. И более того, прогнозы ещё больше не внушают оптимизма.
Читать дальше →

Мобильный интернет в России и мире: платформы, потребление, тенденции

Reading time11 min
Views28K


Предлагаем вашему вниманию тезисное изложение трёх докладов, представленных на пресс-конференции, организованной Mail.Ru Group совместно с компанией Nielsen.

Выступление Мэтью Хестера, директора по потребительским исследованиям телеком-группы Nielsen в Европе


Сегодня я хотел бы представить вам результаты наших исследований по использованию мобильного интернета и развития смартфонов в целом.

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

Графы для самых маленьких: DFS

Reading time3 min
Views181K
В этой статье хотелось бы рассказать об одном из самых распространенных алгоритмов на графах — об обходе в глубину — на примере решения задачи о нахождении пути сквозь лабиринт. Всем, кому это интересно — добро пожаловать под кат!

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

Высокоуровневое программирование в 1975м году

Reading time1 min
Views11K
В 1975м году, ПК IBM 5100 выпускалась в вариантах с языками программирования BASIC или APL. Как можно догадаться, что в итоге основной упор был сделан на интерпретатор BASIC'а по причине того, что при принятии решения о том, что покупать, пользователям данного ПК он казался более понятным, а APL требовал какого-то минимального уровня вхождения. Говорят, что что APL потерял популярность из-за не ascii-символов, может это отчасти и так, но произошло это не в 75м.

Возможно, история программирования языков повернулась бы чуть иначе, если бы развитие пошло с упором на интерпретатор APL'а, но об этом остаётся только фантазировать, так что предлагаю просто понаблюдать за тем, как писали программы в далёком 1975м.

до 5й минуты простая математика.

чуть описания символов

12 основных принципов NUI дизайна

Reading time2 min
Views8.7K
Доброго времени суток, хабравчане. Хочу поделиться с вами ответом Дэна Сэйфера c Quora на вопрос об основных принципах натурального пользовательского интерфейса и очень полезным сайтом Design Principles FTW.

Основные принципы NUI дизайна


1. Дизайн для пальцев, не для курсора
Сенсорные элементы должны быть больше десктопных: 10-14 мм для пальцев, 8-10 для курсора.

2. Помните о физиологии и кинезиологии
Не заставляйте пользователей масштабировать и совершать повторные действия.

3. Никаких рук гориллы
Люди не должны выполнять множество задач с вытянутыми руками в течении длительного времени (калибровка, QR ридеры, сканеры и др). Извиняюсь за столь узкий момент.

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

5. Знайте технологии
Понимание возможностей сенсора или камеры позволяет определить какие жесты вы можете спроектировать.
Читать дальше →

Как выбрать фичи для вашего приложения: используем модель Кано

Reading time5 min
Views25K
Итак, вы задумали делать продукт. Не проект, а именно продукт, который через Х месяцев должен появиться в сторах и начать свое движение к звездам. Вы уверены в своих силах и знаниях, а количество новых идей, которые могут превратиться в настоящие киллер-фичи, просто зашкаливает. Самое время сказать себе “стоп!” и разобраться в том, что должно войти в комплект вашей самой первой релизной версии.

После того как вы расписали все характеристики будущего продукта, необходимо определить приоритеты в разработке. Первое желание – ранжировать по сложности реализации. Логично, тем более если ресурс ограничен – нет смысла строить “Титаник”, когда для первого преодоления Рубикона нужна просто шустрая и устойчивая лодка. Следуя заветам customer development, вы в будущем будете только наращивать функционал: главное – в архитектуре не промахнуться.

Итак, делаем шуструю лодку. Но выбор все еще непрост – даже из относительно простых деталей нужно определить тот набор, который и станет вашим release candidate. И здесь вам на помощь придет модель, которую придумал в 70-е годы прошлого века японский ученый Нориаки Кано. На “Хабре” уже был текст об использовании его модели для решения задач UX. Этот подход вполне применим и к продуктовым функциям – ведь они тоже отвечают за эмоциональные реакции потребителей. Кано предположил, что таких реакций бывает пять типов: от полной неприязни до прямо-таки восхищения. Эти типы японец изложил на одном графике, где по вертикальной оси отобразил эмоциональную реакцию пользователя (неприязнь – восхищение), а по горизонтальной – “количественное” значение характеристики (нет – много).



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

Вопросы на собеседование middle/senior iOS Developer

Reading time4 min
Views129K
Все мы ходили/ходим на собеседования. Каждый раз при подготовке к очередному собеседованию просматриваем основные темы, вспоминаем вопросы, которые нам задавали в предыдущие разы, или вопросы, которые сами задавали. Ниже хочу представить основные вопросы, которые часто (основано на личном опыте) можно получить на собеседовании на должность middle/senior iOS Developer. Так сказать, шпаргалка. Заодно можно проверить свой уровень знания платформы.
Список вопросов

Zabbix: Резервное копирование небольшой базы

Reading time5 min
Views35K
Опустим долгое вступление о необходимости резервного копирования данных. Все мы знаем, что бэкапы нужно делать. Те, кто активно использует Zabbix, тоже задумываются о возможности восстановления базы в случае её повреждения либо переноса на новый сервер и т.д. Понятно, что оптимальным вариантом для этого является репликация, но далеко не каждая организация может себе это позволить. Я покажу, каким образом проблема резервного копирования Zabbix решена у нас. Если кому-то интересно, прошу под кат.
Читать дальше →

Знакомство с Go, часть 2: пишем граббер изображений с балансировщиком и извращениями

Reading time13 min
Views23K

Задание


Недавно я рассказывал, как выполнял секретную миссию и с помощью Go загружал дамп цитат с «пустоты». Пришло время снова вступить в бой, на этот раз дело касается «Ататы», и не только потому что в рифму с пустотой.

Для тех кто пропустил — в свое время «Тематические Медиа» (да-да, хозяева хабра) запустили проект «Респектива» ( этакую гламурную имиджборду\тумблр с одним разделом), хитроумными баннерами заманили туда девушек и программистов и стали ждать, видимо надеясь что срастется. Не срослось, и через некоторое время «Респективу» мутировали в «Атату», которая уже имела функционал для создания пользовательских бордпотоков, хабов для объединения тематических потоков и так далее. Какое-то время проект развивался, но Девушки ушли, остались программисты, да и их стало куда меньше. Сейчас это место почти покинуто, там чумные ветра, брошенные поезда, темнота и только редкие вопли нескольких выживших старожилов изредка прорезают хтмл в ночи.

И ладно, атата с ней, с этой ататой. Но отличного контента в виде картинок там осталось немало, один тред с обоями чего стоит! Поэтому неудивительно, что следующее задание из штаба выглядело следующим образом:
«Срочно сохранить для потомков все изображения из потока #949 #291. ps. Извращенно.»

Ну, что же, есть задание — нужно работать. Вообще-то по извращенным структурам у нас уже есть некий кофейный чемпион, но и на Go тоже можно что-нибудь сообразить! После 9 часов работы в Paint у меня родился следующий план атаки:



Степень изврата поражает, начальство будет довольно! Рассмотрим что тут и как:

«Генератор» будет загружать с ататы хтмл код страниц, выдергивать урлы картинок и передавать их «Балансировщику», который раскидывает эти урлы некоторому количеству «Рабочих» (каждый из которых имеет свою небольшую очередь заданий) следя за тем, чтобы все рабочие были равномерно нагружены. Ну а «рабочие» загружают картинки и радуют глаз умиленного балансировщика. Выглядит избыточно, но зато про войну! Поехали:
Читать дальше →

Zabbix 2.2 верхом на nginx + php-fpm и mariadb

Reading time10 min
Views58K


Хочу отметить, что эта инструкция родилась в процессе внедрения Zabbix в стенах компании Acronis.
В процессе экспертизы и проведенных мною исследований, она доказала свое право на жизнь и благополучно служит нам верой и правдой день изо дня.


Перед нами стоит нетривиальная задача, добиться максимальной производительности известной системы мониторинга zabbix.
Среди многих статей в интернете, есть много описаний типовых установок этой системы. Я подробно опишу, как заставить работать zabbix быстрее.
В качестве базовой системы я буду использовать CentOS 6.4. Так же как и многие я люблю Debian, Gentoo и все остальные дистрибутивы, но эта статья именно для CentOS.

Все что нужно делать я распишу подробно и шаг за шагом, и начнем с базовой настройки нашего CentOS
Читать дальше →

Технология Блендер. Как Яндекс умно смешивает разные виды ответов

Reading time4 min
Views18K
Сегодня мы расскажем вам о нашей технологии под названием Блендер. Она обеспечивает ранжирование и встраивание блоков с вертикальными поисками в страницу поисковой выдачи Яндекса.

image

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

ARM64 и Ты

Reading time10 min
Views83K
Несколько запоздалый перевод заинтересовавшего меня блогпоста о том, что в действительности дает 64-битность процессора в iPhone без маркетинговой шелухи. Если текст покажется вам слишком очевидным, пропустите часть «Базовые преимущества и недостатки».

Как только был анонсирован iPhone 5S, технические медия были переполнены недостоверными статьями. К сожалению, написание хороших статей занимает время, а мир технической журналистики больше ценит скорость, чем достоверность. Сегодня, по просьбе нескольких своих читателей, я кратко изложу, что дает 64-bit ARM в iPhone 5S в плане производительности, возможностей и разработки.

64 бита


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

Важно также отметить, что 64-битность не означает, т.к. и здесь есть много недопонимания. Итак, 64-битность не определяет:
Читать дальше →

Картинки с внешних ресурсов — добро или зло?

Reading time6 min
Views33K
Большинство многопосещаемых площадок позволяют размещать у себя картинки с внешних ресурсов. Это очень удобная и полезная фича не только для простых пользователей, но и для людей, собирающих информацию о вас.

Большой брат следит за тобой

Вы хотите узнать больше информации о самых действенных методах? Вам интересно, как с помощью маленькой картинки определить разрешение экрана, локальное время и сменить парочку паролей? Добро пожаловать под кат!
Читать дальше →

Почему карточки это будущее веба?

Reading time4 min
Views18K
image

Kарточки — будущее веба. Они становятся лучшим дизайн-паттерном для мобильных устройств.

На наших глазах идет пересмотр архитектуры веба. От страниц и адресов к полностью персонализированным интерфейсам, состоящих из множества элементов информации, агрегируемых из многих из разных источников. Контент разбивается на части и пересобирается заново — и это результат роста популярности мобильных технологий, миллиардов экранов всех форм и размеров, а также небывалой доступности данных через разнообразные SDK и API.

Все это меняет архитектуру веба — от связанных между собой страниц к связанным в единый интерфейс элементарных частей информации.

image

Агрегация зависит от:
  • Человека, потребляющего контент, его интересов, предпочтений и поведения.
  • Интересов его друзей, их предпочтений и поведения.
  • Местонахождения и контекста.
  • Рекламного таргетинга.


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

Что нас ждет в Microsoft Kinect 2.0?

Reading time4 min
Views41K
Первая версия Kinect, сенсорного игрового контроллера от Microsoft, заняла второе место в рейтинге «10 самых инновационных технических продуктов 2011 года» по версии журнала Популярная Механика. К февралю 2013 года количество проданных устройств достигло 24 миллионов. При этом первые 8 миллионов были проданы в течение 60 дней с момента поступления устройства в продажу, что сделало Kinect «самым быстро продаваемым пользовательским устройством» в Книге Рекордов Гиннесса.

Но время проходит, и не за горами выход новой версии Kinect. Мне понравилась свежая статья на TechCrunch (в оригинале «How Microsoft built the cameras in the upcoming Kinect») об улучшениях нового Kinect. Текст написан человеком, который специально посетил кампус Microsoft в Mountain View для ознакомления с новым контроллером, а также поговорил с инженерами, которые его разработали.

Под катом 5 аргументов, почему новый Kinect имеет все шансы повторить успех первой версии.

Рисунок 1. Режимы просмотра нового Kinect.
Рисунок 1. Режимы просмотра нового Kinect.
Читать дальше →

Арбитражный суд постановил, что ФСКН может лишить доменного имени любого за размещение на сайте информации о наркотиках. №139-ФЗ (о защите детей) — не помеха

Reading time5 min
Views33K
image
Принятие №139-ФЗ «О защите детей», который позволяет блокировать сайты в сети Интернет за размещение на них информации о суицидах, педофилии и наркотиках вызвал уже много критики в рунете. Годичная практика по применению указанного закона показала, что в большинстве случаев сайты блокируются неправомерно, а само принятие уполномоченным органом решения о блокировке нарушает права множества иных владельцев сайтов, находящихся на том же IP. При этом, до сих пор нет никакой объективной статистики, подтверждающей, что в связи с принятием нового закона о блокировке сайтов в России стало меньше подростковых суицидов, педофилов и потребления наркотиков.

Однако, какой смысл принимать все эти новые законы по фильтрации неправомерного контента в сети Интернет, а также пытаться сделать принятый закон лучше, когда гос.органы имеют иные дополнительные правовые возможности для принятия мер, направленных на то, чтобы парализовать работу сайта?!
Читать дальше →

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Registered
Activity