Как стать автором
Обновить
32
0
Ambyte @Ambyte

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

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

Руководство по магическим методам в Питоне

Время на прочтение28 мин
Количество просмотров604K
Это перевод 1.17 версии руководства от Rafe Kettler.


Содержание


  1. Вступление
  2. Конструирование и инициализация
  3. Переопределение операторов на произвольных классах
  4. Представление своих классов
  5. Контроль доступа к атрибутам
  6. Создание произвольных последовательностей
  7. Отражение
  8. Вызываемые объекты
  9. Менеджеры контекста
  10. Абстрактные базовые классы
  11. Построение дескрипторов
  12. Копирование
  13. Использование модуля pickle на своих объектах
  14. Заключение
  15. Приложение 1: Как вызывать магические методы
  16. Приложение 2: Изменения в Питоне 3


Вступление


Что такое магические методы? Они всё в объектно-ориентированном Питоне. Это специальные методы, с помощью которых вы можете добавить в ваши классы «магию». Они всегда обрамлены двумя нижними подчеркиваниями (например, __init__ или __lt__). Ещё, они не так хорошо документированны, как хотелось бы. Все магические методы описаны в документации, но весьма беспорядочно и почти безо всякой организации. Поэтому, чтобы исправить то, что я воспринимаю как недостаток документации Питона, я собираюсь предоставить больше информации о магических методах, написанной на понятном языке и обильно снабжённой примерами. Надеюсь, это руководство вам понравится. Используйте его как обучающий материал, памятку или полное описание. Я просто постарался как можно понятнее описать магические методы.
Читать дальше
Всего голосов 143: ↑139 и ↓4+135
Комментарии59

Используем поисковые движки для проверки корректности фраз

Время на прочтение3 мин
Количество просмотров10K
По работе мне часто приходится вести переписку на английском, и в силу недолеченного перфекционизма, пользоваться для этого оффлайн/онлайн переводными/толковыми словарями. В целом они со своей работой справляются, пока дело не доходит до проверки правильности словосочетаний или целых фраз. Хочешь ввернуть что-нибудь из разряда продвинутого владения языком, но нет уверенности, что правильно помнишь (большой привет предлогам и фразовым глаголам).

Есть парочка ресурсов, для поиска фраз, но заточены они в основном под общеупотребимые словосочетания, пословицы и фразеологизмы на отдельно взятом языке. К тому же не известно пользуются ли люди искомой фразой или употребив её вы поставите в тупик даже носителя языка.
Читать дальше →
Всего голосов 19: ↑15 и ↓4+11
Комментарии11

Универсальная on-line проверка грамматики с помощью google ajax search api

Время на прочтение2 мин
Количество просмотров2.7K
Обычно я проверяю английскую грамматику, вбивая в Google куски фраз, и смотрю, что получится.
Если найдено много вариантов, то фраза правильная, если не очень много — то неправильная.

image

Вот, написал сервис, который отсылает запросы в Google, а сам подсвечивает, «правильно», или «неправильно» написаны куски предложения, и местами даже подсказывает — какое слово можно поставить на то, или иное место в предложении.
Еще он показывает в каком именно контексте найдено слово.

Замечательно то, что ему все равно, какой язык вы проверяете.

Читать дальше →
Всего голосов 164: ↑157 и ↓7+150
Комментарии114

Работа с данными в WinRT. Часть 2. Работа с БД на примере SQLite

Время на прочтение6 мин
Количество просмотров17K
В предыдущей части мы рассматривали как получить доступ к файловому хранилищу приложения. Так как есть прямой доступ к файловому хранилищу, мы можем воспользоваться практически любой встраиваемой БД. На сегодняшний день SQLite, пожалуй, является самой популярной кроссплатформенной встраиваемой базой данных. В связи с этим при портировании приложений скорее всего придется работать с SQLite, работу с которым будем рассматривать далее.

В целом статья получилось больше похожей на инструкцию по установке и работе SQL Lite.

В статье будет описано
Установка расширения для сутдии.
Добавление SQLite в проект
Добавление провайдера sqlite-net
Работа с БД через linq провайдер (в стиле LinqToSql, EF)
Работа с БД через SQL запросы (в стиле ADO.NET)
Читать дальше →
Всего голосов 24: ↑19 и ↓5+14
Комментарии14

DivShot — онлайн-сервис прототипирования Bootstrap

Время на прочтение1 мин
Количество просмотров75K
DivShot — отличный новый инструмент для работы с Twitter Bootstrap. С помощью него создавать прототипы интерфейсов с использованием популярного CSS-фреймворка стало до безобразия просто.

Читать дальше →
Всего голосов 155: ↑145 и ↓10+135
Комментарии21

Как продавать свою программу

Время на прочтение4 мин
Количество просмотров128K
Если воспользоваться поиском, то окажется, что статей с таким заголовком много. Многие из них посвящены заработку в интернет, что естественно. Но писали их, во многих случаях, люди далекие от разработки ПО. Поэтому, там не раскрыты некоторые интересные детали процесса «Идея → Разработка → Продажа».



Начнём с самого начала…
Читать дальше →
Всего голосов 40: ↑24 и ↓16+8
Комментарии34

Shodan – самый страшный поисковик Интернета

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


«Если люди не могут найти что-то в Google, они думают, что это не сможет найти никто. Это не так», – утверждает Джон Мэзерли, создатель Shodan, самого страшного поискового движка Интернета.

В отличие от Google, который ищет в Сети простые сайты, Shodan работает с теневыми каналами Интернета. Это своего рода «черный» Google, позволяющий искать серверы, веб-камеры, принтеры, роутеры и самую разную технику, которая подключена к Интернету и составляет его часть.

Читать дальше →
Всего голосов 199: ↑191 и ↓8+183
Комментарии131

Онлайн редактор для Bootstrap— LayoutIt

Время на прочтение1 мин
Количество просмотров102K
Twitter Bootstrap становится всё популярнее и популярнее, многие используют его в своих проектах, думаю еще больше людей используют для прототипирования интерфейсов. Я не исключение. И вот сегодня утром наткнулся на интересный сервис — LayoutIt. По сути LayoutIt — это онлайн редактор для создания интерфейсов с использованием Bootstrap. Редактор представляет собой Drag & Drop интерфейс.

Читать дальше →
Всего голосов 74: ↑71 и ↓3+68
Комментарии33

Руководство разработчика Prism — часть 5, реализация паттерна MVVM

Время на прочтение35 мин
Количество просмотров42K
Оглавление
  1. Введение
  2. Инициализация приложений Prism
  3. Управление зависимостями между компонентами
  4. Разработка модульных приложений
  5. Реализация паттерна MVVM
  6. Продвинутые сценарии MVVM
  7. Создание пользовательского интерфейса
    1. Рекомендации по разработке пользовательского интерфейса
  8. Навигация
    1. Навигация на основе представлений (View-Based Navigation)
  9. Взаимодействие между слабо связанными компонентами

Паттерн Model-View-ViewModel (MVVM, модель-представление-модель представления) поможет вам отделить бизнес-логику и логику представления от пользовательского интерфейса. Поддержка разделения ответственности между логикой приложения и UI может сделать ваше приложение более лёгким для тестирования, поддержки и развития. Это может также значительно улучшить возможности повторного использования кода и позволит разработчикам и дизайнерам легче сотрудничать при разработке соответствующих частей приложения.

Используя паттерн MVVM, пользовательский интерфейс приложения, логика представления и бизнес-логика разделяются на три отдельных класса. Это представление, которое инкапсулирует UI и его логику, модель представления, которая инкапсулирует логику представления и её состояния, и модель, которая инкапсулирует бизнес-логику приложения и данные.

Prism включает примеры и образцы реализации, которые показывают, как реализовать шаблон MVVM в Silverlight или в WPF приложениях. Библиотека Prism также предоставляет функции, которые могут помочь реализовать данный паттерн. Эти функции воплощают наиболее распространённые методы для реализации паттерна MVVM и разработаны, чтобы обеспечить тестируемость и совместимость с Expression Blend и Visual Studio.

Эта глава даёт краткий обзор паттерна MVVM и описывает, как его реализовать. Глава 6 описывает, как реализовать более сложные сценарии MVVM, используя библиотеку Prism.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии2

Умный будильник на .NET

Время на прочтение3 мин
Количество просмотров6K
Недавно я начал интересоваться идеей «Умного дома». Мне кажется, было бы очень удобно управлять освещением из собственных приложений. Иметь возможность задать время включения/отключения света или описать любой сценарий управления электроприборами.
Я обратил свое внимание на систему Noolite. Она дает возможность беспроводного управления электроприборами. В своей серии она имеет различные силовые блоки, разные виды пультов управления. Среди продукции Noolite есть адаптер Pc118.

image

Он позволяет управлять силовыми блоками серии через USB. Noolite предоставляет подробную и доступную документацию к устройству. Нашей целью было написать приложение, которое позволяет взаимодействовать с системой управления освещением через этот адаптер.
Читать дальше →
Всего голосов 32: ↑24 и ↓8+16
Комментарии6

Нужна ли кастомизация для bootstrap?

Время на прочтение1 мин
Количество просмотров23K
imageВ своих проектах часто использую bootstrap. Он великолепен. И для того чтобы сделать его еще более универсальным у меня появилась мысль сделать сервис для его кастомизации. Прежде я конечно поискал аналоги и был приятно удивлен обилием ресурсов использующих bootstrap. Есть и сборники готовых тем. Нашел сервис который позволяет серьезно изменить внешность bootstrap'а. Но он немного перегружен деталями и для создания удобного варианта темы у меня должны быть заготовлены готовые цветовые палитры. Прикольно, но не очень юзабельно как по мне. Вот и решил я состряпать свой сервис с удобным и простым интерфейсом, который отдавал бы пользователю архив последней версии bootstrap с сохраненной цветовой схемой.
Читать дальше →
Всего голосов 48: ↑34 и ↓14+20
Комментарии49

ASP.NET MVC. Урок 0. Вступление

Время на прочтение2 мин
Количество просмотров783K
Я пишу сайты на asp.net mvc. В этих 16 главах я хочу рассказать, как я это делаю. Это некий учебник-справочник всех тех знаний, которые я накопил в течение трех лет.

Почему именно asp.net mvc

ASP.NET MVC я люблю потому что:
  • Это .net. Я знаю .net и С#.
  • Это компилируемый код.
  • Это не ASP.NET WebForms, я работаю с html-кодом.
  • Используется MVC-паттерн.
  • Visual Studio – самое популярное средство разработки, в котором есть IntelliSense.
  • Отличные инструменты отладки.


Читать дальше →
Всего голосов 290: ↑215 и ↓75+140
Комментарии67

Дайте нам воооот этот ноутбук – мальчику для учёбы будет

Время на прочтение5 мин
Количество просмотров33K
Заголовок невольно вызывает улыбку, правда? Но так уж у нас сложилось, что игровые ноутбуки покупаются сердобольными бабушками внучкам именно для «учёбы». На самом деле, сегодняшний «пациент» — не совсем соответствует заголовку. К ноутбуку его можно отнести разве что внешне. Профессиональная графика, мощный процессор, высокопроизводительная дисковая подсистема, качественный экран, конструкция корпуса и сертификация ISV (Профессиональных приложений для автоматизированного проектирования и работы с цифровым контентом) приложений – всё это признаки полноценной рабочей станции, заключённой в «мобильный» форм-фактор. Что это такое и с чем его едят, сразу под катом. Осторожно, много фото!
Читать дальше →
Всего голосов 28: ↑14 и ↓140
Комментарии77

Время вспять…

Время на прочтение3 мин
Количество просмотров72K
Вот и отгремело первое апреля. Кто-то в этот день нюхал свои девайсы в новом сервисе Google Nose, кто-то играл в «Поле чудес», а кто-то, позабыв о роковой дате, просто угрюмо отряхивал спину от мела…

Я же, воодушевлённый статьёй про скрытые возможности кастомизации процесса explorer.exe, тоже решил сделать что-нибудь забавное.
Пусть сегодня моя секундная стрелка часов в Windows идёт в обратную сторону! Не самый, конечно, полезный в хозяйстве мод, но в академических и рекреационных целях вполне сгодится :)
Часовую и минутную стрелки я оставил в правильном направлении. Иногда всё же приходится полгядывать на часы в трее — пусть они показывают время с точностью хотя бы до минуты...
Читать дальше →
Всего голосов 226: ↑221 и ↓5+216
Комментарии29

Django ORM, gevent и грабли в зелени

Время на прочтение6 мин
Количество просмотров16K
Очень многие выбирают Django за его простоту. Код на Django прост и лаконичен, мы меньше думаем о костылях и больше о бизнес-логике.

Gevent тоже выбирают из-за того, что он простой, очень шустрый и не несёт за собой callback hell.

В голове возникает великолепная идея совместить две простые и удобные вещи вместе. Мы патчим Django и радуемся простоте, лаконичности и производительности, делаем множество запросов на другие сайты, создаём подпроцессы, в общем используем наш новый асинхронный Django по максимуму.
Но совместив их, мы незаметно для себя поставили несколько граблей на нашем пути.
Читать дальше →
Всего голосов 50: ↑48 и ↓2+46
Комментарии76

Урок 2. Создаем своё приложение на Ext.NET, часть 1

Время на прочтение14 мин
Количество просмотров6.7K
Контейнеры (Container, Panel, TabPanel, ViewPort) и разметки (BorderLayout, AccordionLayout, CardLayout)


Введение


Ну что же начнем. Нашей конечной целью будет создать интерфейс примерно похожий на Microsoft Outlook 2010. Почему именно этот интерфейс? Причина проста — потому что Ext.NET часто используется в корпоративном секторе или близком к нему и пользователь этой аудитории зачастую хочет видеть нечто похожее на Outlook. Плюс ко всему эта разметка довольно сложная и потому интересная. Не переживайте можно сделать и многие другие интерфейсы, но это все как-нибудь потом. Сразу оговорюсь, что мы не будем делать полную копию интерфейса Outlook, ограничимся только самым нужным.



Читать дальше →
Всего голосов 11: ↑6 и ↓5+1
Комментарии10

Универсальный код C# под .NET и JavaScript

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

Введение


Приветствую вас, хабравчане. В данном топике я хотел бы осветить подробности разработки на C# под разнородные целевые платформы, в первую очередь такие как .NET и браузер (JavaScript). В качестве примера желающие могут изучить веб-сервис по обработке фотографий gfranq.com, в котором реализована клиентская и серверная обработка фотографий с помощью фильтров, а также функциональность коллажей на основе материала, описанного в данной статье.

Так как я не умею подбирать картинки для привлечения внимания, то она будет по теме:


Технические подробности под катом
Всего голосов 57: ↑53 и ↓4+49
Комментарии20

Используем Hierarchy Viewer для оптимизации Android приложения

Время на прочтение2 мин
Количество просмотров19K
Hierarchy Viewer — полезная утилита, предназначенная для оптимизации UI Android приложения, а также для визуализации и проверки компонентов, которые его составляют. Для запуска Hierarchy Viewer нужно прописать:
hierarchyviewer
в командной строке из папки android-sdk\platform-tools.
В IntelliJ IDEA можно осуществить запуск прямо из среды (Tools — Android — Hierarchy Viewer).
Читать дальше →
Всего голосов 25: ↑19 и ↓6+13
Комментарии2

Кроссплатформенная разработка для мобильных с Xamarin

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

Введение


Совсем недавно компания Xamarin анонсировала выход новой версии своего инструментария для кроссплатформенной разработки мобильных приложений, но вменяемых статей на русском по этой тематике так и нет. На Хабре появился небольшой обзор, не связанный с кодингом, там же была пара попыток рассказать об этом чуть подробнее, но дальше процесса создания Hello World приложения дело не зашло. А жаль. В этот раз мы попробуем исправить это досадное недоразумение.
Читать дальше →
Всего голосов 46: ↑38 и ↓8+30
Комментарии29

5 секретов хорошего интерфейса. Личный опыт

Время на прочтение18 мин
Количество просмотров32K
Последние несколько лет я плотно занимаюсь разработкой интерфейсов для разнообразнейших устройств – от банальных смартфонов и планшетов, до приложений под smartTV и некоторых эзотерических устройств вроде приставок для трансляции музыки через телевизор.


Один из упоминаемых в статье интерфейсов

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

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

Я люблю читать про интерфейсы.
Всего голосов 130: ↑122 и ↓8+114
Комментарии41

Информация

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