Pull to refresh
48
0
Eldar Abusalimov @abusalimov

Software developer

Send message
У каждого объекта всего один тип, который не меняется в течение жизни объекта (тип может поменяться в чрезвычайно редких обстоятельствах. Для этой задачи не существует API, и вы вряд ли читали бы эту статью, если бы работали с объектами с изменяющимися типами)

В большинстве же случаев можно ведь присваивать магическому атрибуту __class__ новый тип, чем не API? Причем Питон проверяет совместимость memory layout объектов старого и нового типов (то есть такой трюк не сработает, например, для tuple или если один из типов имеет пользовательские слоты), и после смены типа объект действительно ведет себя по-новому.

Или все-таки я чего-то недопонимаю, и даже в этом случае ob_type продолжает указывать на первоначальный тип?

P.S. Спасибо за интересные статьи, продолжайте в том же духе! :)
Жизнь — это боль :)
Ого. Топик добра!
Можно быстрее, правда, по-читерски:

import itertools

for days in itertools.combinations(range(31), 6):
    print bin(reduce(lambda x, d: x | (1<<d), days, 0))



UPD.
Опс…
while True:
    print 'Я буду обновлять комментарии перед отправкой'

Во-первых, еще как повторяется, по крайней мере большую часть спама получал от 4-5 шараг вроде заказа такси или пиццы. Во-вторых, не сочтите за рекламу, но они, похоже, и вправду работают, спама стало в разы меньше. В двух случаях после отправления заявки через какое-то время прислали имейл, что меня убрали из рассылки, и в двух — с инструкцией, куда позвонить, чтобы попросить отписаться самому.
Всегда забавляло в Активити показывать «Индийское лето».
Скрытый текст
Indian summer — бабье лето, золотая осень
Не проще ли настроить, чтобы раскладка была не глобальной, а привязывалась к текущему окну? В Минте (и наверное в Гноме вообще) это в настройках Keyboard Layout -> Layouts. Наверняка же в MacOS такое тоже есть.
Ровно до того момента, пока PatapSmile не запостил Пони! :-)
Очень хорошая статья и очень знакомая проблема, которую мы в своем проекте (тоже, кстати, embedded ось) решали вот так: habrahabr.ru/post/144935/
Те же интерфейсы и абстрактные модули, те же glue-header'ы, то же самое внедрение зависимостей (правда, еще и в рантайме). Но у вас, конечно, здорово получилось, что не нужно поддерживать никаких дополнительных файлов с метаданными для билд-системы. Этакие self-hosted исходники, очень круто!
Использовал Eclipse года 4 для Java, Android, C и немного Python. Сейчас перешел на ST2, Eclipse только для отладки. Очень напрягает отсутствие fuzzy-поиска и автодополнения и множество раздражающих панелей/окон, которые норовят отобрать фокус у панели редактирования. Плюс ко всему общая тормознутость и монструозность этой IDE.

Из полезных хоткеев, в дополнение к упомянутым в статье, могу назвать следующие:
  • Ctrl+F6 / Ctrl+Shift+F6 — следующий/предыдущий редактор в стеке (аналог Alt+Tab для окон).
    Поскольку более неудобных сочетаний для такой часто используемой операции (ИМХО) придумать тяжело, поэтому имеет смысл переназначить их на Ctrl+Tab / Ctrl+Shift+Tab (или на Alt+` / Alt+Shift+` для CDT, чтобы не было конфликтов с переключением между source/header).
  • Ctrl+Shift+Up / Ctrl+Shift+Down — переход к следующей/предыдущей функции (в CDT, думаю, в Java аналогично для методов)
  • Ctrl+J / Ctrl+Shift+J — инкрементальный поиск начиная от курсора (без использования окна поиска, как при Ctrl+F)
Выше где-то писали уже, что покупка ST — исключительно донат, который только избавляет от этой надписи и редких напоминаний о приобретении.
Для автокомплита по всем открытым файлам есть хороший плагин — AllAutocomplete (ставится через пакетный менеджер или качается по ссылке).
Если я верно понимаю, то в этом случае многое будет зависеть от способа интерполяции пикселей при смене разрешений.
Еще есть Ideone, который позволяет компилить и запускать куски кода на куче разных языков.

Часто встречал (и сам использовал), например, в ответах на Stack Overflow. Пишется кусок кода и дается ссылка на результат выполнения.

Описание с сайта:
What is ideone?
Ideone is something more than a pastebin; it's an online compiler and debugging tool which allows
to compile and run code online in more than 40 programming languages.

How to use ideone?
Choose a programming language, enter your source code and input data into text boxes. Then check or uncheck run code (whether to execute your program) and private (whether not to list your code in the recent codes page) checkboxes, click the submit button and watch your snippet being executed.
Ох, черт, как же я этого не заметил. Благодарю! :)
А их релизы как-нибудь коррелируют с LTS/не-LTS релизами Убунты? То есть верно ли, что Maya будет поддерживаться дольше, чем Nadia?
Если речь идет о GNU Make, то по умолчанию проверяются три файла, по порядку: GNUmakefile -> makefile -> Makefile.

Другое дело, что в документации рекомендуется использовать именно Makefile, чтобы в листинге директории видеть его сверху. Пруф.

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity