Pull to refresh
21
0
Александр @alexkuzko

DevOps, системный администратор, архитектор, лид

Send message

Поиск наилучшей последовательности просмотра списка 250 лучших фильмов с помощью языка Wolfram Language (Mathematica)

Reading time7 min
Views56K

Скачать перевод в виде документа Mathematica, который содержит весь код использованный в статье, можно здесь (архив, ~76 МБ).

Введение


Некоторое время назад, если быть точным — 515 дней, вышел пост Маттиаса Одисио (Matthias Odisio) под названием “Random and Optimal Mathematica Walks on IMDb’s Top Films” (Случайные и оптимальные блуждания Mathematica по списку 250 лучших фильмов по версии IMDB). В нем рассказывается о том, каким образом можно получить оптимальную последовательность просмотра фильмов из соответствующего списка, основанную на близости жанров фильмов и близости постеров фильмов с точки зрения цвета.
Читать дальше →
Total votes 100: ↑93 and ↓7+86
Comments36

Обустраиваем хомяка или «OpenWrt уделывает прошивку от TP-LINK?». Часть 1 — подготовительная

Reading time8 min
Views74K

«Этим полукреслом мастер Гамбс начинает новую партию мебели. 1865 г. Санкт-Петербург» (И. Ильф, Е. Петров).
Вы не ошиблись, это еще одна статья о сборке альтернативной прошивки для домашних маршрутизаторов, этих горячих в некоторых местах повелителей наших малых локальных сетей. На резонный вопрос почему бы сразу не писать там, где такому материалу самое место отвечу: хочу описать процесс начав с подготовки виртуальной машины для сборки (да, это будет Ubuntu на VirtualBox), пройдя через сборку прошивки, подключение внешнего жёсткого диска и настройку загрузки с него, подключение принтера, установку и настройку пакетов вроде медиасервера и torrent клиента, и попытаться закончить описанием такой настройки StrongSwan, которая позволит подключаться к нему с IPhone, IPad и Windows Phone без установки сторонних клиентов. При этом хочется не обойти стороной как важные вещи вроде безопасности, так и полезные мелочи вроде скрипта, который будет отключать на ночь вырвиглазные синие светодиоды моего TL-WDR3600. И я совсем не уверен в полноте своих знаний по многим из озвученных сейчас вопросов.
Одним словом, на данном этапе у меня громадьё планов и сумбур. Поэтому важны любые советы и предложения. Текст статьи точно будет меняться и дополняться с течением времени, а вся статья может быть скрыта в черновики по итогам голосования чтобы не засорять Хабр. Если вы заинтересовались, хотите помочь советом или вам просто захотелось бросить в автора тапком — добро пожаловать. Далее по тексту я постараюсь подробно описать это обещающее интересное времяпрепровождение действо, суть которого изобразил средневековый японский художник.
Суть процесса сборки (Внимание! 8+)

Читать дальше →
Total votes 31: ↑21 and ↓10+11
Comments50

SSL-сертификаты: всем, каждому, и пусть никто не уйдёт обиженным

Reading time8 min
Views97K
Как ранее сообщалось на GeekTimes, EFF при поддержке Mozilla, Cisco, Akamai, IdenTrust и исследователей из Мичиганского университета (University of Michigan) создали новый некоммерческий центр сертификации (Certificate Authority) Let's Encrypt [1]. Целью проекта является ускорение перехода всемирной паутины от HTTP к HTTPS.
Подробности, часть из которых уже была описана на GeekTimes
Total votes 110: ↑110 and ↓0+110
Comments81

Сага о светодиодных лампах. Часть 2 — о том, чего не пишут на коробках

Reading time6 min
Views87K
В прошлый раз мы вкратце вспомнили историю искусственного освещения, а также немного поговорили о том, какие основные параметры есть у энергосберегающих ламп вообще и светодиодных ламп в частности. Сегодня, как и было обещано, мы перейдем к замерам и сравнениям (однако пока что без раскручиваний).


Читать дальше →
Total votes 72: ↑71 and ↓1+70
Comments165

Are you a pirate? Пират ли ты?

Reading time4 min
Views79K
Предлагаю вашему вниманию перевод отличной статьи Майкла Аррингтона из TechCrunch, которую я регулярно подкидываю своим знакомым стартаперам, когда их начинают терзать сомнения и лезут в голову вопросы наподобие «Да какого черта я все еще этим занимаюсь?»

image

Добро пожаловать под кат.

Читать дальше →
Total votes 78: ↑55 and ↓23+32
Comments48

ah — лучше, чем history

Reading time3 min
Views30K
Так получается, что я провожу в консоли (терминале) достаточно времени, порой даже больше, чем хотелось бы. Порой даже исполняю там какие-то команды и внимательно изучаю их вывод. Часто случается, что к выводу той или иной команды приходится возвращаться, а он постоянно теряется: то терминалы захлопываются, то в tmux окно закрываешь, то выводы прочих команд уже давным-давно забили и похоронили ту самую полезную строчку.

Для того, чтобы сохранить вывод какой-либо утилиты я, как и многие, пользовался tee. Это работало, но постоянная суета среди бесконечных error.log, out.log, output.log, err.log log.log, lll.txt и тп если не сводила с ума, то безумно раздражала; вместо того, чтобы вести какой-то порядок, постоянно подмывало создать Новую Папку (1), где и похоронить эти самые логи, периодически бэкапя могильничек: порядок предполагал какую-то систематизацию, а в разгаре работы вспоминать как назвать свой файл крайне не хотелось.

Тогда я написал ah, крохотную утилитку, которая сильно-сильно улучшила мою жизнь.
Читать дальше →
Total votes 97: ↑93 and ↓4+89
Comments21

Механика потока эндорфинов на примере трёх космических игр

Reading time7 min
Views75K


Игрок больше любит получать, чем терять.

При GameDev надо учитывать эту прекрасную особенность психики. Проиллюстрирую тремя играми: замечательным Faster than Light (родившемся ещё на ПК), популярном изначально планшетном Out There и пришедшем из настольного мира Galaxy Trucker.

Ни в одной из этих игр нет возможности сохраниться.
Читать дальше →
Total votes 60: ↑55 and ↓5+50
Comments62

Highload 2014, полный HA

Reading time2 min
Views3.1K
В рамках нового HL я буду рассказывать о максимально совершенном HA. Если вы думаете, что HA сводится к балансировке на фронте, ipvs, выводу и вводу нод в рамках ролей — вы очень сильно ошибаетесь. Полноценный HA — это труд огромного количества людей, это огромные ресурсы, и, что важнее — внимание в каждой мелочи. Данный пост был создан для того, чтобы стало понятно, как влияние людей проецируется на проекты. Я прошёл много проектов,. am.ru был финалом моего понятия о крутых и финалом о «как не надо».
Читать дальше →
Total votes 15: ↑6 and ↓9-3
Comments3

Сам себе AWS. Часть 0

Reading time4 min
Views43K
Доброго времени суток, %username%!

Сегодня я расскажу тебе, как при помощи напильника, кучки серверов и такой-то матери собрать что-то смутно похожее на EC2 от Amazon.
Статья получилась больше обзорная, так что придётся разбить её на несколько частей.

image
Я тебя слепила из того что было.
Ааа, что это??
Total votes 46: ↑41 and ↓5+36
Comments17

Centrifuge — я больше не буду обновлять страницу перед отправкой комментария

Reading time10 min
Views26K
Прошло некоторое время с тех пор, как я писал про Центрифугу в предыдущий раз. Произошло множество изменений за этот период. Многое из того, что было описано в ранних статьях (1, 2) кануло в лету, но суть и идея проекта остались прежними — это сервер рассылки real-time сообщений пользователям, подключенным из веб-браузера. Когда на вашем сайте возникает событие, о котором вам нужно моментально сообщить некоторым вашим пользователям, вы постите это событие в Центрифугу, а она, в свою очередь, отправляет его всем заинтересованным пользователям, подписанным на нужный канал. В самом простом виде это показано на схеме:



Проект написан на Python с использованием асинхронного веб-сервера Tornado. Использовать можно даже если бекенд вашего сайта написан не на Python. Хотелось бы рассказать о том, что Центрифуга представляет собой на данный момент.
Читать дальше →
Total votes 57: ↑55 and ↓2+53
Comments31

Мой опыт обучения детей 8-10 лет программированию на Scratch

Reading time8 min
Views270K
Давно собирался написать об этом, но, модная болезнь прокрастинация брала вверх…

Знакомство со Scratch


Когда сыну Артёму исполнилось 7 лет и он пошел в школу, мы ему подарили компьютер, чтобы он не отставал от жизни. Несколько месяцев он играл в разные игры, наслаждался, развлекался и т.п. Мне стало немного обидно, что такой дорогой и сложный прибор как компьютер используется только для развлечений, и я решил придумать, как использовать компьютер для обучения. А чему можно научиться на компьютере? Конечно, программированию! Тут я и вбил в «Яндекс» заветную фразу «обучение детей программированию».
Читать дальше →
Total votes 77: ↑74 and ↓3+71
Comments62

Shopozz.com — бесплатный mail forwarding в США

Reading time4 min
Views31K

Вместо предисловия


Mail forwarding — почтовое перенаправление товаров из любых интернет-магазинов/аукционов из страны-отправителя (в данном случае — США) до адреса получателя. Процесс актуален для самостоятельных покупок за рубежом.

Услугами сервисов-mail forwarder'ов пользуются как минимум по двум причинам:

  1. не все интернет-магазины/продавцы с eBay и прочих аукционов/торговых площадок отправляют товары в страну покупателя;
  2. за определенную комиссию клиенты могут собрать на складе таких сервисов несколько товаров из разных интернет-магазинов, объединить их в одну посылку, отправить на свой адрес и сэкономить, тем самым, значительную сумму на доставке товаров.

Вводная часть


Shopozz.com — это абсолютно бесплатный сервис услуг мейл-форвардинга (mail forwarding, MF, виртуальный адрес для самостоятельных покупок) товаров из любых интернет-магазинов и с аукционов США.

image

Упомянутый сервис принадлежит компании Shopozz CORP, которая с 2005 года осуществляет доставку товаров из США, Японии, Китая и Европы в любую точку Земли, одновременно предоставляя услуги «Помощь в покупке» и «Виртуальный адрес в США» посредством ресурса Shopozz.ru.

1 июля 2014 года мы выделили услугу MF в отдельный сервис, который теперь доступен по адресу Shopozz.com.

Сегодня сервис покупок за рубежом Shopozz насчитывает более 200 000 клиентов. Мы создали удобные и, что немаловажно, выгодные для использования веб-сервисы, наладили международную транспортировку товаров за минимальные сроки, автоматизировали работу всех складов, что позволяет обрабатывать заказы крайне оперативно.

Немного о тарифах


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

  • предоставление виртуального адреса в США — $0;
  • входящая MF — $0;
  • пересылка одной посылки — $0;
  • консолидация нескольких MF в одну посылку — $0;
  • заполнение таможенной декларации — $0.

Используя аналитические функции мозга по минимуму, можно придти к верному выводу, что весь основной набор услуг склада в США предоставляется абсолютно бесплатно, правда, за исключением ряда дополнительных услуг, без использования которых результат остается прежним — вы получаете посылку курьером, либо в ближайшем отделении Почты России без лишних затрат.

Когнитивный диссонанс как уникальное торговое предложение (УТП)


Упоминая в суе Почту России, сознание невольно рисует картины разбившегося планшета или утерянных посылок. Но, как ни крути, сегодня УФПС демонстрирует активный курс на модернизацию и перемены. Последние несколько месяцев интернет-сообщество активно обсуждает такие инициативы, как тендер госкомпании на создание мобильного приложения за 19 миллионов рублей, полмиллиарда инвестиций в Единый call-центр, а также возможность подтверждения регистрации на интернет-портале госуслуг через отделения Почты России.
Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments25

Конструктор для «Умного Дома» — от идеи до воплощения

Reading time16 min
Views162K


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

Проект, начавшийся в формате «для души», удивительным образом вышел за рамки хобби, и вырос серьезную разработку. В основе лежало желание создать систему, интересную как в плане технического творчества и программирования, так и удобную для повседневного использования. Хотя работа еще в разгаре, уже отчетливо видны контуры задуманного: распределенная система, высокотехнологичный «конструктор» для реализации всевозможных идей умного дома, с хорошей масштабируемостью.
Читать дальше →
Total votes 93: ↑92 and ↓1+91
Comments86

Учимся логично делать прототипы

Reading time9 min
Views65K
Зачем вам это?

  • Если вы знаете как делать сайт, этот метод поможет вам убедить заказчика, почему вы предлагаете ему именно этот вариант.
  • Если вы заказываете сайт, то сэкономите от 2 до 10 часов объяснений что вам нужно и зачем.
  • Если вы стартапер, то вся ваша команда сможет участвовать в создании нового сайта или лэндинга. Тот самый случай, когда одна голова хорошо, а команда лучше.
  • Если вы учите стартаперов, то сможете помочь им выглянуть из позиции «я знаю как надо» и без сопротивления подвести их к началам CusDev-a.

Читать дальше →
Total votes 58: ↑53 and ↓5+48
Comments9

Как понять почему упал сервер не подключая к нему монитор и клавиатуру?

Reading time2 min
Views13K
Так бывает что сервер зависает, но к нему не подключена ни клавиатура, ни монитор.

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

В Linux есть такая возможность ядра как Netconsole.
Netconsole позволяет послать сообщения от ядра на удаленный компьютер.

Для настройки netconsole нужен другой (постоянно включенный) компьютер который примет сообщение по сети.
Читать дальше →
Total votes 94: ↑89 and ↓5+84
Comments33

Маленькая админская история: как поймать OOM

Reading time5 min
Views30K
Админская загадка: На сервере произошло три oom kill'а, а мониторинг сказал только про два. Почему?

Конфигурация

Для мониторинга всего у нас настроена связка ganglia-shinken-logstash-elasticsearch-kibana. Полное описание довольно обширно, так что ограничусь только частью, имеющей отношение к проблеме.

В logstash присылаются логи со всех серверов. Он складывает их в elasticsearch. В конфиге logstash'а настроена реакция на всякие странные сообщения, которые свидетельствуют о проблемах. Если сообщение появляется, присылается event мониторингу (shinken), который разными методами начинает беспокоить админов.

Помимо syslog'ов, которые шлют сообщения от большинства приложений, у нас настроена ещё и отправка netconsole от всех ядер. Сама технология проста до невозможности — ядро помимо dmesg'а посылает сообщения в виде UDP-датаграмм на указанный IP и mac-адрес. MAC-адрес нужен потому, что netconsole очень низкоуровневая и заниматься разгадыванием «как из IP сделать MAC» (то есть ARP) не собирается. Благодаря низкоуровневости сообщения проходят даже в ситуациях полного катаклизма. Например, если программный коммутатор перестал работать (и сеть недоступна), сообщения всё равно будут посылаться. Более того, они будут посылаться, даже если в iptables сказано -j drop_vsyo_nafig. И, самое главное и ценное, эти сообщения успешно будут отправлены, если дисковая подсистема полностью не работает. То есть для post-mortem исследований «что именно случилось с зависшим сервером» — самое оно.

Очевидным кандидатом в «плохие» сообщения является сообщение от oom-killer'а.

[517935.914380] ntpd invoked oom-killer: gfp_mask=0x201da, order=0, oom_score_adj=0
[517935.914730] Call Trace:
[517935.914807]  [<ffffffff816e14ce>] dump_header+0x83/0xbb
[517935.914877]  [<ffffffff816e155b>] oom_kill_process.part.6+0x55/0x2cf
...
с финальным торжествующим: 
[517935.951044] Out of memory: Kill process 4550 (apache2) score 247 or sacrifice child
[517935.951203] Killed process 4550 (apache2) total-vm:2610268kB, anon-rss:2012696kB, file-rss:3928kB


Итак, возвращаемся к загадке. Идёт пусконаладка, предпродакшен, как, вдруг, апач (точнее, wsgi-приложение) насасывается данных до неприличия, и его прибивают со словами «go be fat somewhere else». Админам приходит сообщение. Казалось бы всё хорошо (ну, в админском смысле «хорошо»). Но…

Случилось три oom'а, сообщения пришли о двух. Мониторинг в порядке, netconsole в порядке. Загадка? Проблемы? Симптомы таинственной неведомой фигни? Звать придворного шамана с бубном?
forensic system administration
Total votes 54: ↑48 and ↓6+42
Comments19

Раскрываем возможности map в nginx

Reading time6 min
Views135K
map — мощная директива, которая может сделать ваши конфиги простыми и понятными.
Возможно, это самая недооцененная директива, из за того, что не все знают всех её возможностей.
Она в компактной форме помогает обрабатывать переменные, GET параметры, заголовки, куки и наборы бекендов (upstream).
Попробую раскрыть её возможности хабрапользователям.
Раскрыть возможности map
Total votes 91: ↑91 and ↓0+91
Comments11

Как я выбирал платежную систему и почему мы добавили Bitcoin в качестве варианта оплаты

Reading time9 min
Views36K
Недавно мы добавили на сайт нашего замечательного пражского проекта с городскими GPS путеводителями полноценную возможность осуществлять платежи кредитными картами непосредственно на сайте, а так же, возможность использовать для оплаты Bitсoin. В связи с этим, я решил поделиться с читателями нашего замечательного IT бложека полученным опытом, плюс, некоторыми собственными размышлениями.

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


Вот так отныне отображается цена у нас при выборе опций. Вверху Евро, ниже, стоимость услуг в BTC по текущему курсу (-30% скидка)

Биткоин и его рынок...
Total votes 36: ↑32 and ↓4+28
Comments71

Настройка современного Puppet сервера с нуля

Reading time9 min
Views65K
Недавно я переосмыслил процедуру установки нового сервера Puppet с нуля на Ubuntu 12.04, включая все современные свистелки и перделки. В итоге у меня получился этот гайд.

Для начала нам потребуется чистая Ubuntu c работающей сетью и настроенным DNS.

В итоге мы должны получить:
  • Установленый везде Puppet 3-й версии
  • Конфиги в git репозитории с общим доступом
  • Динамические окружения, управляемые r10k
  • Поддержку PuppetDB
  • Поддержку Hiera


Данное руководство довольно длинное, т.к. все настройки делаются вручную, чтобы впоследствии легко можно было пользоваться результатом и подстраивать его под себя. Единственным исключением является PuppetDB, который проще установливать через собственный модуль от Puppet Labs, а не вручную.

Предполагается, что все команды будут выполнены от пользователя root на сервере Puppet, если не указано иное.
Читать дальше →
Total votes 33: ↑30 and ↓3+27
Comments15

Information

Rating
4,271-st
Location
Минск, Минская обл., Беларусь
Registered
Activity