Как стать автором
Обновить
6
0

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

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

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

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

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

И вот, наконец, я нашёл решение обеим проблемам. Сижу сейчас и набираю этот текст в Vim. Любопытно, что оба барьера обходятся штатными средствами, без дополнительных плагинов. Поскольку материалов на английском и на них основанных куда больше чем исконно русских, найти эту информацию мне было не просто. Поэтому хочу поделиться ей с теми кому интересно.
Читать дальше →
Всего голосов 111: ↑102 и ↓9+93
Комментарии95

Полное покрытие кода

Время на прочтение10 мин
Количество просмотров19K
Нужно ли делать полное покрытие кода тестами — довольно-таки частая и неоднозначная тема при обсуждении юнит-тестирования. Хотя большинство разработчиков склоняются к тому, что делать его не надо, что это неэффективно и бесполезно, я придерживаюсь противоположного мнения (по-крайней мере, при разработке на Python). В данной статье я приведу пример, как делать полное покрытие кода, и опишу недостатки и преимущества полного покрытия на основе своего опыта разработки.
Читать дальше →
Всего голосов 63: ↑51 и ↓12+39
Комментарии35

Советы программисту-дизайнеру интерфейсов

Время на прочтение5 мин
Количество просмотров11K
Нет сложным интерфейсам

Проблема


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

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

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

Читать дальше →
Всего голосов 270: ↑246 и ↓24+222
Комментарии147

SCSS — новая порция глазури от Sass

Время на прочтение3 мин
Количество просмотров55K
imageПоследнее время я практически не занимался версткой, и пропустил выход Sass3, в котором реализовано расширение SCSS (Sassy CSS). Это именно расширение для CSS без «искажения» синтаксиса — то есть любой валидный CSS документ является и полностью валидным SCSS документом. В посте я проведу сравнение с уже существующими препроцессорами такими как Sass и Less. О которых уже писалось на хабре: Sass, Less. Но та информация немного устарела: в частности изменился синтаксис Sass.

Список того о чем мечтали CSS дизайнеры, но боялись говорить в слух.
Всего голосов 54: ↑43 и ↓11+32
Комментарии37

Оформляем формы

Время на прочтение3 мин
Количество просмотров21K
У форм в Django есть несколько предопределенных методов as_p(), as_table() и as_ul(), которые отображают форму как набор параграфов, таблицу или список. На практике этих методов не всегда достаточно, чтобы формы выглядели так, как нам хочется.

Допустим, верстальщик сверстал все формы div-ами. Документация предлагает в этом случае писать нужные теги в ручную в шаблоне. Если форма у нас только одна, можно поступить и так. Если форм несколько, то этот подход сразу же теряет все свое очарование. Решение очень простое — пронаследуем наш собственный класс форм от forms.Form или forms.ModelForm и обучим его рисовать формы так, как нужно нам.
Читать дальше →
Всего голосов 51: ↑41 и ↓10+31
Комментарии25

Реализация небольшого асинхронного сервера

Время на прочтение9 мин
Количество просмотров21K
Целью публикации данного топика является представление аудитории Хабрахабра кода небольшого асинхронного сервера, написанного на Питоне с использованием практически «голых» сокетов.

Мне приходилось писать достаточно много приложений, работающих в качестве сетевых сервисов. Эти сервисы были написаны на разных языках, под разную нагрузку и каждый раз реализация нового сервиса чем-то отличалась от предыдущей. Под хабракатом я привожу пример довольно удачной, на мой вгляд, реализации «учебного» сервера, сопровождая код своими комментариями по мере необходимости.
Читать дальше →
Всего голосов 46: ↑43 и ↓3+40
Комментарии26

Akshell, платформа социальных приложений

Время на прочтение2 мин
Количество просмотров617
Akshell Неделю назад я запустил публичную бету своего проекта и теперь хочу рассказать о нем на Хабре.

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

Akshell и является подобной платформой.
Читать дальше →
Всего голосов 45: ↑33 и ↓12+21
Комментарии40

Создание реалистичной кнопки средствами CSS3

Время на прочтение3 мин
Количество просмотров7.5K
image

Цель — создание кнопки, как на изображении, не единой картинкой, а с помощью CSS3

Читать дальше →
Всего голосов 120: ↑102 и ↓18+84
Комментарии97

Музыка из Vkontakte в Exaile

Время на прочтение1 мин
Количество просмотров15K
Всем привет!

Вдохновленный недавним топиком про плагин Вконтакте для Амарока, решил написать подобие для своего любимого плеера Exaile.

image

Возможности плагина
Всего голосов 114: ↑94 и ↓20+74
Комментарии126

Code Like a Pythonista: Idiomatic Python (part2)

Время на прочтение11 мин
Количество просмотров18K
Kaa, the Python


После небольшого перерыва представляю заключительную часть перевода статьи Дэвида Гуджера «Пиши код, как настоящий Питонист: идиоматика Python»


Ссылки на первую и вторую части.


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

Читать дальше →
Всего голосов 55: ↑48 и ↓7+41
Комментарии13

Качественная фотография гаджета в домашних условиях

Время на прочтение1 мин
Количество просмотров6.2K
image
На Хабре уже публиковались интересные советы по этой теме. Я хотел бы предложить еще один способ, который позволит вам делать практически рекламные фотографии небольших объектов.

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

Читать дальше →
Всего голосов 210: ↑188 и ↓22+166
Комментарии96

Авторизация по протоколу OAuth на примере Desktop Twitter-клиента

Время на прочтение6 мин
Количество просмотров25K
Потребовалось мне тут написать некий кроссплатформенный Twitter-клиент с закрытым исходным кодом, не спрашивайте зачем мне это надо, работа у меня такая, деньги я за это получаю. Что логично, языком разработки был выбран С++ с использованием Qt.
Сам API Twitter'a прост как кирзовый сапог. Но! Есть такая важная штука как авторизация, и тут есть два пути, старый — аутентификация посредством HTTP Headers и новый — использование протокола OAuth. Старый метод прост, также как и само API, но, к сожалению, он не безопасен, и самое главное команда Twitter'a предупреждает, что откажется от него в конце июня сего года. Поэтому остается второй метод OAuth. Надо сказать, что данный протокол используется не только в Twitter, но поскольку я писал Twitter-клиент, и рассматривать мы будем на примере Twitter'a.
и как же это сделать?
Всего голосов 43: ↑36 и ↓7+29
Комментарии33

Code Like a Pythonista: Idiomatic Python (part1)

Время на прочтение9 мин
Количество просмотров26K
Kaa, the Python


Это продолжение перевода статьи Дэвида Гуджера «Пиши код, как настоящий Питонист: идиоматика Python»

Начало и окончание перевода.


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

Читать дальше →
Всего голосов 73: ↑66 и ↓7+59
Комментарии23

Code Like a Pythonista: Idiomatic Python (part0)

Время на прочтение12 мин
Количество просмотров28K
Kaa, the Python
От переводчика:

Я только начал изучать Python. С самого первого знакомства язык порадовал симпатичными конструкциями и синтаксически-гарантированной удобностью к чтению и пониманию кода.
В процессе освоения, при написании своего кода, бывает, сомневаюсь в правильности выбранных способов с точки зрения Python-way ( PEP 8 — Style Guide for Python Code, если угодно). Для вникания в идеологию программирования, в Python-сообществе кроме исчерпывающей документации, ко всеобщей радости, накоплено уже немало вспомогательных материалов, таких как статья Python Tips, Tricks, and Hacks, перевод которой недавно появился на Хабре
Мне понравилась статья Дэвида Гуджера «Пиши код, как настоящий Питонист: идиоматика Python» (David Goodger «Code Like a Pythonista: Idiomatic Python»). Для лучшего её усвоения решил оформить (в силу умения) полноценный перевод, потом показалось здравой идеей поделиться с Хабром.
Пока работал над переводом, пришло понимание, что статья существенно больше, чем показалась при прочтении ее в оригинале, поэтому постить буду частями, чтобы не выпасть из формата Хабра-статьи.
Продолжение и окончание перевода.

are you ready?
Всего голосов 67: ↑50 и ↓17+33
Комментарии30

Книга Gray Hat Python

Время на прочтение3 мин
Количество просмотров22K
image

Уважаемое Хабрсообщество и все интересующиеся языком программирования Python. Я начал переводить весьма интересную книгу Gray Hat Python. Правда, пока я перевел лишь предисловие и первую главу. Начал переводить для себя (поэтому немного коряво), но все таки решил, что нужно делиться. :)

И так предоставим слово автору.
Читать дальше →
Всего голосов 48: ↑47 и ↓1+46
Комментарии14

Nagare — пример использования фреймворка

Время на прочтение4 мин
Количество просмотров1.1K
В прошлом посте я презентовал Nagare — революционный (хоть и имеющий аналоги на Smalltalk и CL) питоновский web-фреймворк. Тот пост был несколько сумбурен и отражал, скорее, степень моего восторга, чем реальные особенности технологии. Сегодня я попробую дать немного более практический пример.
Читать дальше →
Всего голосов 32: ↑23 и ↓9+14
Комментарии42

OpenSource проект ищет разработчиков

Время на прочтение1 мин
Количество просмотров4.4K
Здравствуй, Хабр! Я хочу представить тебе свой некоммерческий проект и найти единомышленников/соразработчиков.

Мотивационный скриншот




О проекте
Всего голосов 234: ↑221 и ↓13+208
Комментарии142

Допиливаем Django-admin бензопилой. Часть II — WYSIWYG

Время на прочтение5 мин
Количество просмотров10K
Итак обещанное продолжение прошлого поста. В результате мы прикрутим TinyMCE к flatpages и превратим лист/форму созданной модели с картинками в простой файловый менеджер для вставки картинок. Для этого понадобится совсем немного Javascript и единственная строчка в 'admin.py'.
Читать дальше →
Всего голосов 37: ↑31 и ↓6+25
Комментарии31

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

Время на прочтение6 мин
Количество просмотров133K
Содержание

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

Python: советы, уловки, хаки (часть 1)

Время на прочтение8 мин
Количество просмотров264K
Предлагаю читателям «Хабрахабра» перевод статьи «Python Tips, Tricks, and Hacks». Статья будет полезна на начальном и среднем этапах изучения Python.

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

Содержание

1. Маленькие уловки. Четыре типа кавычек. Правдивость различных объектов. Проверка на вхождение подстроки. Красивый вывод списка. Целочисленное деление и деление с плавающей точкой. Лямбда-функции.
2. Списки. Генераторы списков и выражения-генераторы.
Читать дальше →
Всего голосов 98: ↑94 и ↓4+90
Комментарии67

Информация

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