Search
Write a publication
Pull to refresh
-1
0
joann @joann

User

Send message

Huginn: агенты в стиле Yahoo Pipes и IFTTT на своём сервере

Reading time1 min
Views6.8K


Huginn — система программирования агентов и выполнения разнообразных задач в онлайне, сделанная по образцу Yahoo Pipes и IFTTT, но только для установки на собственный сервер. В Huginn мы сами контролируем собственные данные и не зависим от ограничений третьей стороны.
Читать дальше →

Разговариваем с Rails-приложением через XMPP (Jabber)

Reading time5 min
Views6.5K

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

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

Инструмент администрирования GlobalsDB и тонкости работы с этой базой данных

Reading time5 min
Views6.5K
Здравствуйте, дорогие хабрачитатели.

Сегодня я хотел бы поделится с вами опытом в работе с NoSQL базой данных GlobalsDB, а так же представить вашему вниманию недавно разработанный инструмент администрирования для неё — GlobalsDB Admin. Далее вы найдёте, в основном, разные технические подробности, и если данная тема вам интересна, добро пожаловать.



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

Режим «Разделенного экрана» или Split Screen своими руками

Reading time15 min
Views89K
Многие из нас проводили вечера перед теплым ламповым телевизором с друзьями, играя на приставках. Всегда особенно приятно было играть одновременно вдвоем, не ожидая своей очереди.


Ностальгия.

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

Простые тесты на ruby для web

Reading time6 min
Views7.6K
Для изучения ruby был выбран учебный проект в котором простая задача, написания тестов для web. Ввиду отсутствия знаний и опыта было решено использовать упрощенный фреймворк sinatra.
Читать дальше →

Как мы с помощью математической статистики измеряем качество данных в Яндекс.Городе

Reading time8 min
Views21K
Летят в самолете Петька и
Василий Иванович, Василий Иванович кричит:
— Петька, приборы!
Петька отвечает:
— Двести!
Василий Иванович:
— А что «двести»?
Петька:
— А что «приборы»?

Сегодня выходит из беты наш новый сервис — Яндекс.Город. Он появился как логичное продолжение Яндекс.Справочника, который был единым источником знаний об организациях для всех наших сервисов. Его данные используются собственно в приложении Я.Город, на Яндекс.Картах, в сниппетах на странице результатов поиска, для построения маршрутов в Картах и Навигаторе, определения номера в Яндекс.Ките, выбора мест отправления и прибытия в Такси. Найти места и организации можно было на многих наших площадках, а вот выбирать там не очень удобно.

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

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


У сервиса поиска мест на Яндексе многолетняя история, и к его созданию приложили руку несколько команд. Растёт он из проекта adresa.yandex.ru. Потом Яндекс интегрировал в него бизнес «Жёлтых страниц» — так появился Справочник. Около года назад очень сильно обновилась команда сервиса. И он начал превращаться в Яндекс.Город. Я в этой команде руковожу службой производства данных и сегодня расскажу вам о том, какие у нас метрики и как они помогают нам делать лучшую базу организаций в России.
Читать дальше →

Благодарственные открытки Дарудара — наш способ монетизации

Reading time7 min
Views13K
Дарудар — это сервис дарения, с помощью которого любой человек может подарить другому свою услугу или вещь. Просить при этом что-то в обмен запрещено правилами сообщества.

Подробней о механике сервиса, чтобы лучше понять дальнейшее
Чтобы получить дар, нужно рассказать, зачем тебе это нужно. Чей рассказ больше всего приглянётся дарителю, того он и одаривает. Перед этим он может дополнительно заглянуть в профили желающих, чтобы узнать получше, что это за люди, что они сами когда-либо дарили. За каждый полученный дар принято писать публичную благодарность. Таким образом, материальные блага перераспределяются между участниками сообщества без денег вообще. И это не утопия, это экономика дарения. С помощью нашего сервиса ежедневно дарится более 2 тыс. даров, а всего за 5 лет существования Дарудара было подарено уже более 2 млн. даров.

Где деньги?


Вопрос, который нам всё время задают: а где же деньги, за счёт чего вы живёте и развиваетесь? Этот вопрос является острым для любого стартапа, а для Дарудара он особенно сложен из-за принципиальной «безденежности» проекта. Последние несколько лет мы усиленно ищем свой путь монетизации. Изобретаем и перебираем самые разные способы.

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


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

Чем изучение Haskell/Python вредит программисту

Reading time5 min
Views28K
От переводчика:

На этот перевод меня толкнула очередная ситуация «мозгового ступора» при написании банального кода на C++/C#: я часами смотрел на уродливый код, но не мог сделать его по-настоящему лучше; мне пришлось просто принять то, что уродливым его видел только я один, и это была моя проблема, а не проблема в коде или языке. Я вспомнил те времена, когда такого со мной не было — а заодно вспомнил и эту старую статью, автор которой пострадал так же, как и я, при этом хорошо написав об этом.


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

Бизнес и Большие данные: лаборатория FABERNOVEL

Reading time3 min
Views8.9K


Big Data — термин, который уже стал настоящим «базвордом», настолько популярна эта тема. Все больше людей и компаний из самых разных частей света и отраслей начинают понимать важность анализа данных. Но мало просто захотеть использовать данные, нужно еще понимать, что и как собирать и изучать. Сегодня мы рассмотрим именно эту проблему.
Читать дальше →

Разработка iOS8 приложения на Apple Swift

Reading time6 min
Views62K
Статья является своеобразным продолжением статьи «Знакомьтесь, Swift!» за авторством Helecta, а также вольным переводом статьи Developing iOS Apps Using Swift Tutorial Part 2.



Итак, в первой статье мы написали простое Single View приложение, включающее таблицу с несколькими ячейками.
На этот раз мы немного углубимся и сделаем несколько более амбициозных вещей. Мы будем обращаться к API поиска iTunes, парсить ответ, полученный в JSON и отображать результаты в Table View.
На первый взгляд может показаться, что все это довольно сложно и предстоит много работы, но на самом деле это не так. Все описанное выше является достаточно простым функционалом для iOS приложений и каждый уважающий себя iOS разработчик должен это уметь.
Читать дальше →

То, что вам никто не говорил о z-index в статье «То, что вам никто не говорил о z-index»

Reading time2 min
Views45K
image
Почти два года назад вышла статья «What no one told you about z-index» (и её перевод на Хабре «То, что вам никто не говорил о z-index»), авторы которой рассказывают о малоизвестной (76% проголосовавших пользователей Хабра слышат об этом впервые), но документированной возможности создания нового контекста наложения указав opacity меньше единицы.

Но несмотря на название статьи, авторы не рассказали вам ещё кое о чём.

Предполагается, что вы знакомы с понятием контекста наложения (англ. stacking context).
Элементы с общими родителями, перемещающиеся на передний или задний план вместе известны как контекст наложения. Понимание контекста наложения является ключом к пониманию z-index и порядка наложения элементов.

Каждый контекст наложения имеет свой корневой элемент в HTML структуре. В момент формирования нового контекста на элементе, все дочерние элементы так же попадают в этот контекст и занимают своё место в порядке наложения. Если элемент располагается в самом низу одного контекста наложения, то никаким мыслимым и немыслимым образом не получится отобразить его над другим элементом в соседнем контексте наложения, располагающимся выше по иерархии, даже с установленным z-index равным миллиону.
— Из статьи «То, что вам никто не говорил о z-index». Для понимания темы настоятельно рекомендую к ознакомлению либо её, либо классический труд на MDN.

Новый контекст наложения формируется в случаях:

  • Корневой элемент () всегда содержит корневой контекст наложения. Любой элемент на странице, не участвующий в локальном контексте наложения (сформированном любым из последующих вариантов), участвует в корневом контексте наложения.
    Элемент с position отличным от static и значением z-index отличным от auto. Кроме одного исключения для position: fixed, но я это вынес в отдельный пункт.
    Элемент имеет значение opacity меньше, чем 1.
Нужно больше контекстов наложения!

Wi-Fi сети: проникновение и защита. 2) Kali. Скрытие SSID. MAC-фильтрация. WPS

Reading time20 min
Views654K


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

В этой статье мы поговорим о том, как можно обнаружить «скрытые» сети, обойти MAC-фильтрацию на точке доступа и почему же WPS (QSS в терминологии TP-LINK) — это «бэкдор в каждом доме». А перед этим разберёмся, как работает беспроводной адаптер и антенна и как Kali Linux (ex. Backtrack) поможет нам в тестах на проникновение в беспроводные сети.

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

Перед прочтением настоятельно советую ознакомиться с матчастью — она короткая, но на её основе базируются все наши дальнейшие действия и выводы.

Оглавление:
1) Матчасть
2) Kali. Скрытие SSID. MAC-фильтрация. WPS
3) WPA. OpenCL/CUDA. Статистика подбора
Много текста. Очень.

Интеграция Ruby в Nginx

Reading time6 min
Views14K


Уже достаточно давно существует всем известная связка Nginx + Lua, в том числе здесь был ряд статей. Но время не стоит на месте. Примерно год назад появилась первая версия модуля, интегрирующего Ruby в Nginx.
Читать дальше →

Сочинение и обработка музыки с помощью Haskell

Reading time1 min
Views9.2K
Music Suite — программное обеспечение для сочинения, обработки и анализа музыкальных композиций. Подмножество встроено в библиотеку Haskell. Освоить нотную запись с помощью довольно простого кода сможет почти каждый композитор, ведь что такое музыкальная нотация? Это передача музыкальной логики для исполнения «кода» на музыкальном инструменте. Haskell просто позволяет программировать более эффективно.

Итак, генерация мелодии в Music Suite/Haskell осуществляется через выражения.


let
    m = staccato (scat [c,d,e,c]^/2) |> ab |> b_ |> legato (d |> c)^*2
in stretch (1/8) m
Читать дальше →

Китайский интернет: краткий обзор около-социальных сервисов

Reading time14 min
Views133K


Пост является значительной переработкой статьи The Complete Guide to China’s Major Social Media Networks с моими правками, комментариями и некоторыми иллюстрациями. А ещё добавил правильное русское чтение китайских сервисов.

17 апреля 2014 г. китайский аналог Twitter'а — Sina Weibo – вышел на американскую биржу. Благодаря IPO компания привлекла меньше ожидаемого, однако это, безусловно, большой успех китайских социальных медиа-ресурсов. Поэтому стоит сделать небольшой обзор существующих на сегодняшний день китайских социальных интернет-ресурсов. Разумеется, он не претендует на абсолютною полноту и объективность, поэтому смело пишите свои дополнения и замечания.

Платформы и сервисы, о которых пойдёт речь, имеют как настольный, так и мобильный клиент, если прямо не указано другое.
Так же следует помнить, что многие иностранные ресурсы – такие, как Facebook, Twitter, YouTube, частично Википедия – заблокироавны в КНР, поэтому местные жители пользуются китайскими аналогами, зачастую не зная о существовании оригиналов. Кроме того, везде существуют списки «плохих слов» (в основном плохих политически), ввод которых блокируется, либо активность таких пользователей тщательно отслеживается. Под Китаем, разумеется, будем иметь в виду его материковую часть, не считая Гонконга, Макао и Тайваня, где цензура компартии не работает.

Категории социальных медиа


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

Swift — нововведения

Reading time1 min
Views77K
image

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

Я не сомневаюсь, что многие из нас вчера смотрели презентацию WWDC 2014 от Apple. Были представлены новая операционная система OS X Yosemite, а так же iOS 8. Но главное, чем наверное взбудоражило Apple программистов во всем мире, так это новым языком — Swift!

Swift является новым инновационным языком программирования для Cocoa and Cocoa Touch с еще более кратким и выразительным синтаксисом, с помощью которого приложения пишутся молниеносно. Это делает написание кода интерактивнее и веселее, и работает бок о бок с Objective-C. По словам Федериги, некоторые функции Swift работают быстрее, чем в других объектно-ориентированных языках: например, сортировка сложных объектов происходит в 3,9 раза быстрее, чем в Python, и почти в полтора раза быстрее, чем в Objective-C.
Читать дальше →

Лекция Ричарда Столлмана в Кишиневе

Reading time2 min
Views37K
Только что вернулся с ивента «Free Software in Ethics and in Practice», организованного фондом ceata.org и в первую очередь хочу показать несколько свежих фоток Ричарда Столлмана, и вкратце рассказать о том, что было.


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

Анализируем Хабрахабр с помощью Google Page Speed

Reading time3 min
Views52K
Google Pagespeed — утилита для анализа производительности клиентской части Web-приложения. Довольно обширный анализ укажет на те вещи, которые следует оптимизировать на сайте, повысив скорость и удобство для аудитории. Инструмент полезный и постоянно дополняется новыми возможностями. Проведем анализ Хабра и посмотрим на оценку и рекомендации, которые покажет нам Pagespeed.
image
Читать дальше →

Как определить местоположение по сетям сотовой связи (Cell ID)

Reading time4 min
Views309K

Карта Участники OpenStreetMap
 
Существует множество способов определения местоположения, такие как спутниковая навигация (GPS), местоположение по беспроводным сетям WiFi и по сетям сотовой связи.
 
В данном посте мы попытались проверить, насколько хорошо работает технология определения местоположения по вышкам сотовой связи в городе Минске (при условии использования только открытых баз данных координат передатчиков GSM).
 
Принцип действия заключается в том, что сотовый телефон (или модуль сотовой связи) знает, каким приемопередатчиком базовой станции он обслуживается и имея базу данных координат передатчиков базовой станции можно приблизительно определить своё местоположение.
Читать дальше →

Ruby 2.1 в деталях (Часть 3)

Reading time10 min
Views9.4K

Метод #singleton_class? для Module/Class

В классы Module и Class был добавлен метод #singleton_class?, который, как и следовало ожидать, возвращает, является ли получатель мета-классом (singleton)

class Example
  singleton_class?     #=> false
  class << self
    singleton_class?   #=> true
  end
end

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

Information

Rating
Does not participate
Location
Paris, Франция
Date of birth
Registered
Activity