Как стать автором
Обновить
28
0
Алексей Соловьёв @mrxak

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

Отправить сообщение

Путешествие исключений между C++ и Python или «Туда и обратно»

Время на прочтение11 мин
Количество просмотров19K
В этой главе сказа про дружбу C++ и Python будет на удивление мало использования Boost.Python. Передача исключений туда и обратно является по сути слабым местом данной библиотеки. Будем обходиться родным API языка Python, а где это возможно использовать Boost.Python.
Тем не менее Boost.Python создаёт окружение, в котором исключения из C++ попадают в Python в виде стандартного RuntimeError, а обратно из Python генерируется исключение C++ типа error_already_set, что означает «тебе что-то прилетело, сходи сам почитай что там». И вот здесь нам как раз будет не лишним использовать C-API языка Python, чтобы вычитать необходимую информацию об исключении и преобразовать в соответствующий класс сообразно логике приложения.
К чему такие сложности? — Дело в том, что в Python, в отличие от C++, кроме текста исключения и его типа приходит ещё и traceback — стек до места возникновения исключения. Давайте немного расширим стандартный std::exception дополнительным параметром для этого stacktrace, а заодно напишем конвертер исключений туда и обратно из классов C++ в классы исключений Python.
Читать дальше →
Всего голосов 37: ↑36 и ↓1+35
Комментарии4

Необходимые ресурсы для геймдизайнеров

Время на прочтение3 мин
Количество просмотров82K
В данном топике я хочу представить подборку ресурсов, имеющих непосредственное отношение к дизайну и разработке игр. В первую очередь, эта информация будет полезна начинающим или будущим геймдизайнерам, которые только задумываются о выборе профессии, но, возможно, и профессионалы своего дела найдут что-то полезное или интересное для себя. Кроме того, я предполагаю, что читатели хорошо владеют английским языком, что в наше время для айтишников, настоящих или будущих, подразумевается практически по умолчанию.
Итак, поехали.
Читать дальше →
Всего голосов 60: ↑57 и ↓3+54
Комментарии25

Как устроен краткосрочный прогноз на Яндекс.Пробках

Время на прочтение8 мин
Количество просмотров77K
Информация о пробках появилась на Яндексе в 2006 году. Начинали мы с необходимого — научились строить схему загруженности городских улиц и учитывать текущую ситуацию при прокладывании маршрутов. Автомобилисты, ориентируясь перед выездом на эту информацию, уже могли сэкономить время в пути:
image

Затем, чтобы помогать водителям непосредственно во время движения, мы добавили в мобильные Яндекс.Карты (и, как следствие, в Яндекс.Навигатор) автоматическое перестроение маршрута. Приложения научились адаптировать маршрут при каждом заметном изменении ситуации в городе.

Собрав на десктопе и в мобильном информацию про «сейчас», мы перешли к решению вопроса «а как будет потом?»:
image

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

image

Неделю назад на Яндекс.Картах появилась возможность посмотреть изменения пробок в ближайший час — следующий наш шаг в решении вопроса про будущее. Для тех, кто в этом году не смог приехать на Yet another Conference, мы сегодня расскажем, что у нашего прогноза внутри, и как оно там оказалось.
Переходим к подробностям!
Всего голосов 133: ↑128 и ↓5+123
Комментарии131

Несколько интересных приемов и особенностей работы с MySQL

Время на прочтение3 мин
Количество просмотров88K
Я думаю, что в процессе изучения той или иной СУБД каждый из вас не раз изобретал велосипеды для решения своих задач, не зная о существовании той или иной функции или приема, которые бы могли в разы ускорить выполнение запросов и уменьшить объем кода. В данной статье я хочу поделиться с вами своим опытом работы с очень «добрым» и «отзывчивым» MySQL, часто позволяющему программисту делать вещи, которые другие СУБД переварить бы не смогли. Материал будет полезен скорее тем, кто только решил углубиться в чудесный мир запросов, но возможно и опытные программисты найдут тут что-то интересное.
Читать дальше →
Всего голосов 132: ↑116 и ↓16+100
Комментарии83

Bart Chalkboard Generator

Время на прочтение5 мин
Количество просмотров12K
Здравствуйте.
Мне бы хотелось рассказать про мой «Bart Chalkboard Generator».image
Я уверен, что большинство из вас знают сериал «The Simpsons», и вы помните что почти в каждой новой заставке Барт писал на школьной доске что-то новое, типа: «They are laughing at me, not with me». А в интернете часто всплывает картинка с текстом: «I will use google before asking dump questions». И вот однажды я подумал, почему бы не создать простой генератор подобных картинок, да ещё и на Html5, что бы попрактиковаться?
Читать дальше →
Всего голосов 90: ↑65 и ↓25+40
Комментарии60

Про jQuery и велосипеды — мое дополнение

Время на прочтение6 мин
Количество просмотров64K
Сразу спешу сообщить вам, что я никоим образом не связан с автором предыдущей статьи. Однако, прочитав ее и увидев такой положительный отклик сообщества на статью, я тоже вдохновился и решил добавить немного своих наблюдений и знаний, к тому же это может послужить моей входной точкой в круги хабрасообщества.

Для затравки начнем с простого.
Читать дальше →
Всего голосов 242: ↑230 и ↓12+218
Комментарии126

Оповещение о новых письмах в Gmail по SMS средствами Google Calendar + Google Apps Script

Время на прочтение4 мин
Количество просмотров114K
Увы, но этот способ перестанет работать с 27-го июня 2015, т.к. Google отключает функцию sms-оповещений для календаря.
support.google.com/calendar/answer/45351?hl=ru

Важно! SMS-оповещения будут отключены 27 июня
С 27 июня 2015 года вы больше не будете получать SMS-оповещения от Google Календаря. Функция SMS-оповещений была внедрена ещё до широкого распространения смартфонов. Однако современные мобильные устройства позволяют получать оповещения в более удобном формате и даже в офлайн-режиме.
Для просмотра оповещений вы можете использовать приложение календаря, которое было установлено на смартфоне по умолчанию, либо скачать Google Календарь для Android или iPhone. Подробнее об оповещениях…
Примечание. Это изменение не коснется пользователей Google Apps for Work, Education и Government.




Хочу поделиться с Харбра-обществом полезным, с моей точки зрения, лайвхаком: уведомления по SMS о новой почте в ящике Gmail. Реализуется это небольшим скриптом, который живет и работает в Google Drive (бывшие Google Docs).

Принцип работы следующий: скрипт по таймеру проверяет папку «Входящие» в почтовом ящике и если обнаруживает новые письма, то создает в google calendar событие с именем, как тема письма, и включает для него SMS уведомление. В результате вам приходит SMS сообщение следующего содержания:

Напоминание: Тема письма @ дата и время

Подробности реализации, как всегда, под «катом».
Подробности
Всего голосов 102: ↑98 и ↓4+94
Комментарии72

Экспорт избранного Хабра в FB2

Время на прочтение2 мин
Количество просмотров9.5K
Ненавижу длинные вступления
И поэтому не буду писать их даже под спойлером.

  • Зачем?
    • Для оффлайнового просмотра на читалках.
  • Моя читалка не поддерживает FB2!
  • Хочу!
    1. Обзаводимся Python 2.7+. Тестировалось на Python 2.7.3.
    2. Ставим библиотеку BeautifulSoup 4. Вкратце варианты:
      • apt-get install python-beautifulsoup4
      • easy_install beautifulsoup4
      • pip install beautifulsoup4
      • Исходники и python setup.py install
    3. Качаем код из репозитория (прямая ссылка на последнюю версию).
    4. Открываем файл habrafav.py и в строке username = ... прописываем свой логин.
    5. python habrafav.py (или просто habrafav.py под Windows)
    6. Ждём. У меня с кэшированными данными экспорт ~150 статей занимает около 6 минут и 600 Мб оперативной памяти.
    7. Забираем habrahabr_favorites.fb2. Мой занимает примерно 62 Мб.

Читать дальше →
Всего голосов 88: ↑81 и ↓7+74
Комментарии50

Плагин, конвертирующий стили фотошопа в код css

Время на прочтение1 мин
Количество просмотров39K
Неужели у кого-то было время этим запариться!

css3ps.com

Работает как вебсервис, от того время ожидания результата работы 30 секунд.

1) Качаем плагин под нужную версию фотошопа, открываем через windows->extensions->css3ps;
2) рисуем шейп, накладываем стили, отправляем на сервер через расширение;
3) ждем 30 секунд, смотрим на результат.

Естественно, сервис разбирает не все, что вы натворили в стилях.
Обратите внимание, что шейп нужно рисовать аккуратно.



Все работает) Фантастика.
Всего голосов 68: ↑63 и ↓5+58
Комментарии28

OAuth на практике. Аутентификация и авторизация пользователей сайта через популярные социалки

Время на прочтение14 мин
Количество просмотров346K
Думаю, не мне одному чрезвычайно надоели ресурсы, требующие регистрации по каждому поводу и без. С обязательной капчей, которая правильно введется только с пятого раза, с подтверждением по е-мейлу, которое обязательно свалится в спам и то — только через сутки. Придумывать каждый раз новую пару логин-пароль — забудется, вводить одно и то же на всех сайтах — небезопасно. Местами прокатывают пары вида «qwerty:qwerty» или «login:password», но, увы, далеко не везде. Надоело. Не счесть, сколько раз я, увидев надпись «только зарегистрированный пользователь может ****», просто кривился и закрывал вкладку, чтобы больше ни разу на этот сайт не заходить. Неужели администраторы ресурсов сами этого не понимают?
Читать дальше →
Всего голосов 126: ↑116 и ↓10+106
Комментарии180

Метаклассы в Python

Время на прочтение10 мин
Количество просмотров195K
Как сказал один из пользователей StackOverflow, «using SO is like doing lookups with a hashtable instead of a linked list». Мы снова обращаемся к этому замечательному ресурсу, на котором попадаются чрезвычайно подробные и понятные ответы на самые различные вопросы.

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

Читать дальше →
Всего голосов 91: ↑88 и ↓3+85
Комментарии18

Загрузка и инициализация JavaScript

Время на прочтение10 мин
Количество просмотров43K

С появлением мобильного веба наш интернет стал снова плохим, а устройства медленными. 3G, 4G, Wi-Fi… — они, конечно, где-то есть, но когда очень надо, то как правило скорость падает до околомодемной и получается, что наши мобильный устройства «каменного века» попадают в условия современного объема информации. Даже в центре города (правда на 15-м этаже) значок мобильного интернета может показывать волшебную букву Е, намекающую о том, что уж лучше не тратить нервы и потерпеть. Лучше уж использовать нативную версию какого-то веб-сервиса, чем каждый раз ждать, загружать по мегабайту, чтобы отправить короткое сообщение. Нативную версию веб-сервиса... Понятное дело маркетинг, гонка приложений. Однако, же пользователи выбирают нативные веб-приложения, которые работают быстрее, не качают кучу ресурсов, хотя им приходится периодически его обновлять.

Эта статья о том какими путями можно оптимизировать загрузку и инициализацию JavaScript.
Читать дальше →
Всего голосов 136: ↑132 и ↓4+128
Комментарии40

Визуализация «В Контакте»: Скажи мне, кто твой друг?

Время на прочтение2 мин
Количество просмотров145K
Привет, Хабралюди!

У меня есть хобби. Я ночами (в нерабочее время) пишу библиотеку укладки графов: vivagraph.js. Хотел поделиться с вами, узнать что думаете. Визуализировал я сеть друзей своих на «В Контакте» с использованием WebGL. Но лучше один раз увидеть, чем читать, верно?



Это мои друзья. Каждая точка — человек, целый мир, с которым так или иначе мне повезло встретиться. Линия между точками обозначает дружбу. По этой сети можно, правда, сказать многое о человеке.

Как построить свою сеть?
Всего голосов 314: ↑302 и ↓12+290
Комментарии256

Термометр с прогнозом погоды

Время на прочтение4 мин
Количество просмотров14K


С рождением ребёнка существенно повышается внимание, уделяемое погоде на улице: если сам ты можешь выйти на улицу в чём придётся, и немножко помёрзнуть или промокнуть, не взяв зонтик, то родительский инстинкт просто не даст причинить неудобство твоему ребёнку. Спасибо современным технологиям, — температуру на улице и прогноз погоды можно в любой момент посмотреть на специальных сайтах (вроде pogoda.mail.ru или pogoda.yandex.ru).

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

Как говорится в известной пословице: мужик сказал, женщина напомнила, женщина напомнила, женщина напомнила, женщина задолбала, — мужик сделал.

Читать дальше →
Всего голосов 94: ↑80 и ↓14+66
Комментарии86

Локализация точки в выпуклом многоугольнике

Время на прочтение4 мин
Количество просмотров46K
Листая страницы хаба «Алгоритмы», наткнулся на топик, посвященный решению задачи локализации точки в многоугольнике: задан многоугольник (замкнутая ломаная линия без самопересечений), требуется определить — находится ли заданная точка A внутри этого многоугольника или нет. В одном из последних комментариев к топику было высказано недоумение, какое отношение такая чисто математическая задача имеет к теории алгоритмов. Имеет-имеет, причем самое непосредственное. Задача локализации является классической задачей вычислительной геометрии (не путать с компьютерной графикой). В качестве разминки предлагается взглянуть на картинку справа, на которой изображен многоугольник типа кривой Пеано (источник [1]), и попытаться ответить на вопрос — красная точка ты видишь суслика? и я не вижу, а он есть! находится внутри или снаружи многоугольника? А ниже мы (исключительно в образовательных целях) рассмотрим простую вариацию данной задачи, когда заданный многоугольник является выпуклым.
Читать дальше →
Всего голосов 83: ↑81 и ↓2+79
Комментарии46

Argparse — парсим аргументы и параметры командной строки с легкостью

Время на прочтение6 мин
Количество просмотров147K
Начиная с версии Python 2.7, в набор стандартных библиотек была включена библиотека argparse для обработки аргументов (параметров, ключей) командной строки. Хотелось бы остановить на ней Ваше внимание.
Читать дальше →
Всего голосов 34: ↑33 и ↓1+32
Комментарии11

Бестиповое лямбда-исчисление, комбинаторы, Unlambda и числа Фибоначчи

Время на прочтение11 мин
Количество просмотров5.5K
Далее пойдет рассказ о самом, на мой взгляд, хардкорном способе программирования.
Предмет поста непростой, путь будет долгим, а в качестве печеньки в конце я расскажу, как считать числа Фибоначчи на языке Unlambda.
Читать дальше →
Всего голосов 53: ↑52 и ↓1+51
Комментарии21

Настрой свой Google

Время на прочтение2 мин
Количество просмотров25K
После написания этого поста, меня заинтересовали параметры поиска которые можно использовать, для удобной работы.
Задавшись этим вопросом, в рунете я более менее полной информации не нашел.
Но! Оказывается Google уже давно и для всех, все показал.

Читать дальше →
Всего голосов 123: ↑108 и ↓15+93
Комментарии33

Симптомы эпидемии: течения веб-дизайна

Время на прочтение10 мин
Количество просмотров7.5K
С того момента, как Эллиот Джей Стокс резко призвал уничтожать личину Веб 2.0, можно было заметить «раскарамелизацию» сети: меньше «стеклянных» кнопок, скошенных краев, отражений, меток специальных предложений, вульгарных градиентов с яркими цветами и диагональными паттернами. Трансформацию с радостью приняли все, кроме, разве что, самых заядлых фанатов глянца. Однако, дизайн и эстетика идут лишь им ведомым путем, и только в веб-дизайне заглохла одна тенденция, как появилась другая.

Симптомы



Так что же это за новая эпидемия? Пожалуй, начнем с рассмотрения самых распространенных симптомов, многие из которых вы уже наверняка замечали. Их легко выделить, и, как и в других расстройствах, они часто появляются в сочетании. (Поэтому-то заражение и распространяется так эффективно — в сочетании внешне независимые симптомы становятся куда заразительней.)

Читать дальше →
Всего голосов 80: ↑70 и ↓10+60
Комментарии36

Тесла-пушка

Время на прочтение2 мин
Количество просмотров121K


Не хватит пальцев на руках (да и на ногах), чтобы пересчитать все фантастические книги, фильмы и игры, где фигурирует энергетическое оружие. Признайтесь, каждому из вас хотелось заиметь подобную штуку, чтобы со зловещим хохотом поджаривать врагов многометровыми искусственными молниями. Товарищ с ником Rob не стал исключением, и под впечатлением от комикса The Five Fists of Science собрал свою собственную Тесла-пушку.

Оружие не стало точной копией пушки из комикса, но от своего литературного прототипа оно выгодно отличается тем, что реально существует. И работает!
Читать дальше →
Всего голосов 238: ↑229 и ↓9+220
Комментарии190

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность