Search
Write a publication
Pull to refresh
0
0
Vasilii Artemev @vasart

User

Send message

Vim и кириллица: парочка приёмов

Reading time2 min
Views58K
image

Раньше для редактирования обычных русскоязычных текстов, я обычно откладывал Vim в сторонку и прибегал к помощи других редакторов. Причиной этому была парочка очень неприятных косяков:
  1. На каждый чих приходилось сто раз переключать раскладку, чтобы корректно ввести пару команд и вернуться обратно. Например, замена буквы-опечатки в только что написанном слове, выливалось в: switch → добраться до буквы, нажать r → switch → [нужная буква] → switch → A → [пишем дальше]. Ад!
  2. Штатный spell checker букву «ё» не любил и любое слово с её участием предлагал заменить на аналог через «е». А я ё люблю, меня это расстраивало.

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

Пишем виджет рабочего стола под Maemo5 на Qt. Часть первая

Reading time9 min
Views2.8K
Доброго времени суток хабрачеловек. Продолжаю писать статьи о N900. На этот раз адресую ее разработчикам. И не только разработчикам для N900 а всем разработчикам вообще.
Адресую всем разработчикам, так как возникает достаточно много споров о том, что для N900 писать не перспективно. По крайней мере у меня сложилось такое впечатление, после прочтения комментариев в обсуждениях моей предыдущей статьи. Вот в этой статье я попытаюсь показать что это не так.
image
В этой и следующей статьях я продемонстрирую создание приложения для N900 на Qt. И это не простое приложение, а виджет рабочего стола. Исходными данными будут:
  • отсутствие знаний Hildon и GTK;
  • отсутствие специфичных знаний о мобильных платформах вообще;
  • небольшие знания разработки настольных приложений на Qt/С++ или на любом другом языке (в этом случае придется потратить немного больше времени за чтением Qt-документации);
  • немножко усидчивости и заинтересованности(хоть это и самый последний пункт, но совершенно очевидно, что он самый важный).

Таким образом я намереваюсь продемонстрировать, что создание приложений на Qt действительно не требует знаний специфики платформы в подавляющем большинстве случаев. И если приложение использует только Qt API, то оно является абсолютно переносимым между официально поддерживаемыми платформами.
Инструкции и результаты под катом.

Резюме для Google

Reading time2 min
Views25K
Нина Цепляева, Рекрутер на инженерные позиции, Google Россия

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

#1 Не пишите мало. Не пишите много.
Идеальное резюме — это 1-2 страницы текста, из которых сразу понятно, что знает и умеет делать человек.
Старайтесь максимально конкретно обрисовать ваш опыт работы за последние 5-7 лет. Используйте только факты.
Не пишите сочинение: оно “отяжелит” резюме и нам сложно будет отделить важное от очень важного.
Не пишите о том, в чем не очень хорошо разбираетесь. На собеседовании наши инженеры могут начать задавать вам вопросы по предметам, с которыми вы не очень хорошо знакомы, и это негативно скажется на оценке вас как кандидата.

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

#3 Образование и опыт.
Начнем со структуры: располагайте события от нового к старому. Текущее место работы на странице должно находиться над предыдущим.
Попытайтесь перечислить только самые значимые проекты, самые важные и интересные, которыми хотелось бы гордиться. Опишите цель проекта, используемые технологии, вашу роль в нем, его длительность и результат.
Перечисляя компании, где вы работали, расскажите нам, пожалуйста, чем эти компании занимаются, по возможности укажите ссылки на корпоративные сайты.
Укажите, где вы получили образование, на каком факультете учились в ВУЗе, какой у вас средний балл в дипломе.
Если у вас имеются публикации, расскажите нам о них.

#4 Достижения.
Если вы участвовали в олимпиадах или каких-либо научных соревнованиях, напишите нам о них: что за мероприятие, какое место вы заняли.
Если вы придумали что-то новое (какую-нибудь программу, алгоритм, изобрели велосипед, самопропалывающиеся грядки, самоналивающийся кофе и т.п.), обязательно расскажите нам об этом. Мы очень ценим кандидатов, способных придумать что-то новое и воплотить это в жизнь.
Помните, что для нас важны ваши способности, ваши знания и опыт, а не громкие названия занимаемых должностей. Если вы любите заниматься разработкой и никогда не были менеджером, не стесняйтесь этого! Многие люди не хотят управлять другими и являются при этом прекрасными специалистами в своей области.

#5 Увлечения.
Расскажите нам о своих хобби и увлечениях — о том, как вы проводите своё свободное время, чем интересуетесь, какие книги любите читать, на каких инструментах играете.

Для подачи резюме в Google нужно составить его на английском языке и отправить, перейдя по ссылке: Software Engineer — Moscow

Разговорный английский язык — это обязательное требование ко всем кандидатам, подающим резюме в Google.

Карты Payoneer, кто выдает?

Reading time2 min
Views9.7K
image Предыдущая новость о картах Payoneer вызвала неподдельный интерес и кучу коментариев, среди коментарие попадались вопросы — «А у кого можно получить карту Payoneer?» Вот я и решил потратить немного своего времени и сделать развернутый список партнеров компаниии Payoneer которые выдают карты. Но прежде чем перейти к списку, хочу сообщить две сравнительно свежие новости от компании Payoneer:
1. С недавних пор снято ограничение на работу Payoneer только с американскими партнерами, т.е. если у вас есть свой сервис и вам надо выплачивать деньги своим партнерам вы без труда можете подключить для выплат карты Payoneer, если кому надо прямой email русскоязычного менеджера — пишите в ПМ.
2. В течении последних месяцев Payoneer перешел на новые карты с повышенными лимитами, теперь по новой карте можно ежедневно снимать из банкомата 2500$ и 2500$ тратить при оплате картой.
Теперь пожалуй перейдем к самому списку партнеров из за чего и затевался этот топик, идем под кат и внимательно изучаем.
Читать дальше →

US Virtual Bank Account, или как вывести деньги с зарубежных платежных систем

Reading time6 min
Views63K

Преамбула.


В связи с бурным развитием мобильных устройств и ОС Google Android в частности, интерес к разработке программного обеспечения под данную платформу весьма закономерное явление. Как оказалось, он мало чем отличается от обычной разработки на Яве под десктоп/веб, а с учетом возможности использования «стандартного» IDE (Eclipse) путем скачки и встраивания SDK Андроида, а также наличия исчерпывающей документации многие технические вопросы снимаются сами собой. Концептуальный аспект (т.е. идея для реализации в виде ПО) также не заставила себя ждать, благо платформа сравнительно новая, не смотря на недавно вышедшую уже версию 2.1, и конкурентная среда соответственно не такая насыщенная, если взять, к примеру, разработку под тот же iPhone. (Тут могла бы быть развернутая часть о самом ПО, но ввиду некоторых нюансов, таких как незаконченность проекта и отсутствие конкретных результатов, пока ее пропустим).
Оставался последний, и, естественно, самый интересный (логично, не правда ли?) вопрос – денежный, а конкретно – как правильно вывести честно заработанные дензнаки, полученные от продажи ПО на Android Market.
Piccy.info - Free Image Hosting
Вдаваться подробности не буду, все-таки статья ориентирована на тех, кто примерно ориентируется в данной теме, скажу коротко — в данном случае под прицелом оказывается сервис обработки онлайновых платежей Google Checkout, который с нерезидентами США изначально не работает. Насколько мне известно, прямых путей решения данной проблемы нет, поэтому пришлось искать обходные дорожки.
Читать дальше →

Wiki для Python-программистов

Reading time1 min
Views5.4K
Многие из вас, наверное, уже слышали о ресурсе python.su. После долгого застоя мы готовы представить вам один из новых разделов нашего сайта http://wiki.python.su, в котором мы постараемся сосредоточить ваше внимание на переводах различных книг и документаций, так или иначе связанных с Python.
Читать дальше →

Управление монитором по DDC

Reading time2 min
Views77K
Что мониторы умеют DDC, думаю, знают все. Традиционно, он используется X-сервером для определения параметров изображения, и админами, с помощью ddcprobe, для изучения «что не так сделал X-сервер» (ddcprobe показывает поддерживаемые монитором режимы по мнению самого монитора).

Однако, ddc — это двусторонний протокол. Он не только говорит компьютеру о том, что умеет монитор, но и монитору, о том, что хочет от него компьютер.

Windows-пользователи мониторов Samsung знают их magic tune, который позволяет выставлять яркость/контраст из (неудобной) программы. Однако, существует более интересный метод работы с монитором: это утилита ddccontrol.

C помощью этой утилиты можно:
  • Изменять яркость, контрастность, гамму изображения. Причём, изменение яркости осуществляется изменением яркости подсветки! (разумеется, если монитор это физически умеет делать)
  • Программно переключать пресеты (movie/text/user/game); это куда удобнее, чем тыкать соответствующую кнопку на самом мониторе
  • Играться с недокументированными возможностями мониторов, например, вызывать заблокированные из меню языки и пункты настроек. На моём мониторе, например, мне удалось подвинуть картинку при работе по DVI (обычно этот пункт меню доступен только для VGA)
  • Блокировать кнопки монитора (думаю, это не у всех моделей, но у самсунга точно можно). Блокируются все кнопки, кроме вкл/выкл, выключение/включение монитора эту блокировку сбрасывает.
  • Включать и выключать монитор (полностью, без мигающей в standby лампочки)


Итак, вот несколько примеров использования утилиты:
Читать дальше →

Как делать графики в LaTeX

Reading time2 min
Views26K
Очень часто в документ необходимо вставить тот или иной график. На сегодняшний день есть множество инструментов позволяющие это сделать с возможностью вставки в LaTeX документ среди них Gnuplot, Matplotlib. В данном посте хотелось бы осветить еще один способ создания графика при помощи пакета pgfplots. Этот пакет является «надстройкой»/«дополнением» к пакету Tikz(PGF).

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

Как устроен GIL в Python

Reading time6 min
Views128K
Почему после распараллеливания выполнение вашей программы может замедлиться вдвое?
Почему после создания потока перестает работать Ctrl-C?
Представляю вашему вниманию перевод статьи David Beazley «Inside the Python GIL». В ней рассматриваются некоторые тонкости работы потоков и обработки сигналов в Python.

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

Python Tips, Tricks, and Hacks (часть 2)

Reading time6 min
Views134K
Содержание

Списки. Свёртка списка (reduce). Прохождение по списку (range, xrange и enumerate). Проверка всех элементов списка на выполнение условия (all и any). Группировка элементов нескольких списков (zip). Еще несколько операторов для работы со списками. Продвинутые логические операции с типом set.
Словари. Создание словаря с помощью именованных аргументов. Преобразование словаря в список и обратно. «Dictionary Comprehensions».
Читать дальше →

Be Pythonic

Reading time3 min
Views17K

От переводчика


Представляю вашему внимаю перевод статьи Shalabh Chaturvedi «Be Pythonic», рекомендованной в этом топике. Если мое начинание будет поддержано, планирую также перевести две остальные упомянутые там статьи этого автора.

Вступление


Эта статья предназначена для новичков в Python.

При переходе с одного языка на другой некоторые вещи для вас могут остаться неизвестными (см. Transfer of Learning). То, что вам известно о других языках, может быть не всегда полезным в Python. Эта статья содержит некоторые используемые в Python идиомы, которые мне особенно нравятся. Я надеюсь, читатели найдут их полезными для овладения языком.
Читать дальше →

Почему 9 женщин не могут родить ребёнка за 1 месяц или О применении имитационного моделирования в управлении проектами

Reading time7 min
Views38K

Введение


Думаю, многие из вас слышали выражение «9 женщин не могут родить ребёнка за 1 месяц!». Контекст этого выражения очевиден — в разработке ПО его применяют в качестве аллегории, когда протестуют против совершенно неприемлемого сжатия сроков. Здесь под сжатием понимают сокращение сроков разработки путём расширения команды при сохранении общей трудоёмкости разработки.
image

Совершенно очевидно, что сжимать сроки до бесконечности невозможно. Существует определённый предел. Например, известным экспертом в области оценки трудоёмкости разработки ПО Стивом Макконнеллом (Steve McConnell) этот порог определён как 25% от исходных оценок (см. мою предыдущую статью).
Но этот топик не об оценках трудоёмкости…
Вот я выше написал «совершенно очевидно...». Думаете, это действительно очевидно? Всем?
Мой недавний опыт показал, что это очевидно далеко не всем. Проект был очень крупный и срок сдачи неумолимо приближался. Было принято решение резко расширять команду, чтобы успеть. Довод про «9 женщин» никто не принял. Команда была расширена и в срок мы всё равно не успели. Можно ли было как-то, кроме как на словах, показать, как будут развиваться события? Вот о том, как смоделировать такую ситуацию, и будет моя статья.
Читать дальше →

Паттерн проектирования «Фасад» / «Facade»

Reading time5 min
Views87K
Почитать описание других паттернов.

Проблема


Минимизировать зависимость подсистем некоторой сложной системы и обмен информацией между ними.

Описание


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

Таким образом, минимизация зависимости подсистем, а также снижение объема передаваемой между ними информации — одна из основных задач проектирования.

Один из способов решения данной задачи — использование паттерна «Фасад».
Читать дальше →

Паттерн проектирования «Мост» / «Bridge»

Reading time5 min
Views52K
upd: Изменил диаграмму и код. Расширил пример и описание.

Почитать описание других паттернов.

Предыстория


Вернувшись домой, после непродолжительных посиделок у старого друга, я обнаружил, что оставил у него свой мобильный телефон, а вместе с тем и единственный в квартире будильник. Ситуация осложнялась тем, что завтра в 8:00 надо было быть на работе. Вариант вернуться за мобильником в 11 часов вечера я даже не рассматривал. И первое, что пришло мне на ум — написать свой будильник, причем с применением паттерна «Мост», который мне и без того надо было реализовать в рамках спецкурса. Как говорится, двух зайцев… Я думаю, не стоит пояснять что лег спать я под утро, но довольный собой. А утром, ровно в 7:00 меня победоносно разбудил мой bridge-будильник, весело наигрывая мотив из TBBT.

Как я до такого докатился, читайте под хаброкатом.
Читать дальше →

Паттерн проектирования «Компоновщик» / «Composite»

Reading time5 min
Views44K
Почитать описание других паттернов.

Проблема


Предоставить клиенту единообразный доступ к листовым и составным элементам древовидной структуры.

Описание


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

8 полезных регэкспов с наглядным разбором

Reading time2 min
Views274K
О мощи и гибкости регулярных выражений написано много, и их использование давно уже является стандартом для различного рода операций над текстом. Пожалуй, чаще всего регэкспы работают при валидации вводимых данных — здесь им практически нет альтернативы, если не считать громоздкий циклический разбор с кучей неочевидных проверок. Начнём с самого простого:

1. Часть ЧПУ (человекопонятный URL)


По сути, слово с дефисами.

Паттерн: /^[a-z0-9-]+$/
short_url

Примеры посерьёзнее

Дуэт OGRE 3D и SDL

Reading time7 min
Views8K
В последнее время тут стали появляться статьи, связанные с движком OGRE, в т.ч. и пост по созданию простейшей программы, поэтому я решил не откладывать дело в долгий ящик и написать эту статью. Когда-то не так давно я уже писал небольшой поверхностный обзор библиотеки SDL, и здесь, в качестве продолжения, приведу конкретный пример использования этой библиотеки, а именно — как заставить её работать вместе с движком.
Немало текста и много кода

Привет из свободного от libc мира! (Часть 1)

Reading time5 min
Views30K
В качестве упражнения я хочу написать программу на С. Достаточно простую для того, чтобы дизассемблировать ее и объяснить весь код самой себе.

Звучит несложно, правильно?

У читателя предполагается наличие опыта компиляции программ и работы в Линуксе. Небольшое умение читать ассемблерный код тоже пригодится.
Читать дальше →

Реверси на TCL в 64 строки

Reading time4 min
Views4.4K
На хабре уже есть топики про написание игры Реверси (Отелло) на Python, Silverlight.
Изобретем велосипед на Tcl/Tk. Кроссплатформенно (работает даже на Windows Mobile при небольшой модификации), всего в 64 строки.

image

Код, небольшое описание и скрин с WinMobile под хабракатом.
Читать дальше →

Information

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