Бабушка, смотри, я сделал двач! Войти !bnw Сегодня Клубы
УНЯНЯ. У нас есть немножечко инфы об этом пользователе. Мы знаем, что он понаписал, порекомендовал и даже и то и другое сразу. А ещё у нас есть RSS.
Теги: Клубы:

Рассуждения касательно того, почему, кококо, в Питоне нету нормальных лямбд, в которых можно писать код, бывают очень многословны. По-моему нижеследующий рафинированный пример показывает, с одной стороны, что да, наверное таки они не нужны, а с другой — что заодно в Питоне, скорее всего, никогда не появится, например, оператор `let` с блочной областью видимости, хотя бы как в ES5+. Если конечно не извращаться, как в https://stackoverflow.com/a/12219552 ``` #!/usr/bin/env python3 import asyncio async def crappy_scope(): def intristic(): print(x) await asyncio.sleep(1) x = "Crappy python scope even spreads out through async callbacks!" intristic() asyncio.get_event_loop().run_until_complete(crappy_scope()) ```
#8FMCHB (8) / @dluciv / 16 дней назад
Да этот [срач в комментах](https://habrahabr.ru/post/349624/?utm_campaign=349624#comment_10681376) (да и весь пост тоже) — прямо таки продолжение [моего вчерашнгего поста](/p/0UWIKT) каким-то физиком! @kuro перелогиниться забыл?..
#KNM6L8 (1) / @dluciv / 94 дня назад
Хотя @hate-engine и [изволили досадовать](/p/3JQ3NK#B61), увидев у себя на экране упоминание Питона, а @anonymous и вовсе [высказались в пользу PowerShell](/p/3JQ3NK#9AD), я, тем не менее, предположу, что вот из этого https://pyos.github.io/dg/ вместе с этим https://pypi.python.org/pypi/plumbum командная оболочка могла бы получиться вполне годная. Вот смотрите сами: # Вот эти несколько строчек шеллу конечно не нужны, оно само должно import '/plumbum' pacman = plumbum.local !! 'pacman' grep = plumbum.local !! 'grep' # A теперь собственно командная строка () |> pacman !! ['-Ql', 'ipython'] | grep !! ['/bin/'] |> print Тут конечно напрашивается нечто более функциональное, чем предлагает пакет Plumbum. Ещё бы, он-то сам для Питона делался. Если бы писали сразу с оглядкой на Dg и делали бы оболочку, то получилось бы сразу что-то в духе такого (начало и конец стандартные, считаем, что мы уже забацали такой шелл, и не пишем =)): pacman '-Ql' 'ipython' | grep '/bin/' Пафос в том, что, как и в PowerShell, отдельные команды вполне могли бы гадить друг в друга не только текстом, но и коллекциями объектов. И функций, кстати. Типа без Дотнета, зато с Питоном, ага. Такие дела. P.S. Есть ещё такая дохлая штука https://github.com/adamwiggins/rush P.P.S. А ещё можно было бы на Тикле что-нибудь таки изобразить, преодолевая и превозмогая вот это: https://wiki.tcl.tk/3321
#YEDQWS (2+1) / @dluciv / 124 дня назад
Питон впервые за несколько лет реально порадовал. Вот реально. На самом деле не сам Питон, сам Питон похоже порадовать не может, но не суть. Берёшь, значит, свой несчастный код, который уже вылизывал во всех местах, а он всё равно тормозит. Уже не потому что алгоритм плохой или реализация плохая, а именно потому что это Питон. Ставишь вот эту вот хрень: http://numba.pydata.org/. Ставишь перед критичными функциями `@numba.jit('и тут аннотация типов')`. И оно начинает работать в 15 раз быстрее. Само. Само, Карл.
#4RUSC7 (22+2) / @dluciv / 270 дней назад
async/await в Питоне — хорошая иллюстрация готовности сделать всё через какую угодно непонятную жопу, только бы не использовать человеческие анонимные функции и `>>=`. Нет, ну правда. Даже в если Хаскелль с его `IO` и типами не брать, а взять только оператор `<-` из LiveScript, например — всё же ведь понятно и красиво. Да, модель `asyncio` в Питоне примиряет различные циклы обработки сообщений, и даже для PyQt сделали `quamash`, который запускает `asyncio` поверх Qt-шного цикла обработки сообщений. Все очень обрадовались её появлению, потому что сама модель действительно ничего, а главное — её очень долго ждали. Но зачем при этом было вместо более общих и более понятных примитивов тащить внутрь языка эту псевдоимперативную дребедень?..
#45EM35 (7+1) / @dluciv / 324 дня назад
Питон в принципе довольно много чем (преимущественно библиотеками) хорош, только сам по себе туповат. Лично мне не хватает в нём expression-oriented синтаксиса. С ним функциональщина стала бы полноценной, да и вообще пришло бы немного остроты, которой из коробки в Питоне нету совсем. И плевать на то, что Ван Россум лопочет, что большие конструкции усложняют читаемость и что интрепретатор вообще не заточен под это дело. Нефиг не давать страдать тем, кто желает страдать. Ведь все мы знаем, что настоящие мужики пишут на Фортране, и только сопляк Вирт -- на Паскале... Немного разврата для тех, кто со мной согласен: https://github.com/vindarel/languages-that-compile-to-python
#RW3EPB (0) / @dluciv / 566 дней назад
Вы полтора года назад забацали программу на Питоне. Все эти полтора года программа росла, и данные, которые она переваривает, тоже росли. И вот сейчас вы задумались о том, что так дальше продолжаться не может, и надо её распараллелить, т.к. больше ничего уже не сделать. Вы подключили multiprocessing, стали пытаться делать так, чтобы всё работало правильно (для начала чтобы хоть как-то работало), и... осознали, что как раз сейчас и есть очень хороший момент для того, чтобы своей любимой программе сказать «большое спасибо» и переписать её на чё-то другом, что, как минимум, распараллеливаться будет без адских мучений. Причём вполне вероятно, что новая программа будет работать с такой скоростью, что распараллеливание не будет актуально ещё года полтора. Но лучше сразу не обманываться, чтобы не страдать потом.
#I62G05 (19+1) / @dluciv / 1142 дня назад
Когда-то сравнительно давно, в #82SN7E, спрашивал я про точные координаты тегов в XML и как их достать из Питона. Я для этого использовал SAX, и @stiletto мне то же самое советовал, но SAX выдавал слишком мало информации о привязке по координатам к исходному тексту. Дык вот. Если хотите до хрена информации, то юзайте Pygments. Забавно, да? Он вообще-то совсем не для того нужен, но в итоге с задачей справляется лучше, чем специально предназначенные для XML парсеры (хотя по моим прикидкам работать он будет заметно медленнее, но меня почти любая `O(n)` устроит, а там она). В частности, Pygments позволяет очень хорошо различать `<тег></тег>` и `<тег/>`, с чем я при использовании SAX трахался до полусмерти.
#MGE3SS (0) / @dluciv / 1180 дней назад
А вопрос таков: есть ли для Питона парсеры XML, которые могли бы сохранять координаты XML-конструкций из исходного XML? SAX или DOM -- мне, по большому счёту, без разницы. Нужны координаты открывающих и закрывающих тегов, причём для каждого тега -- координаты начала и конца. xml.sax.handler.ContentHandler даёт, если от него наследоваться, только подмножество нужных событий. Куды податься?
#82SN7E (14+1) / @dluciv / 1266 дней назад
struct.unpack('<H2s', b'qwew') возвращает (30577, b'ew'), как надо. struct.unpack('2s<H', b'qwew') падает с bad char in struct format ЧЯДНТ?
#J6QC9N (12) / @dluciv / 1298 дней назад
Умная JIT-оптимизация смешанных вычислений http://m.habrahabr.ru/post/236689/ Достойный подход и достойная реализация. Хотя я по-старинке предпочёл бы делать такие вещи вручную. Чтобы оставаться нужным =).
#DXLXQ3 (1+2) / @dluciv / 1349 дней назад

/К сожалению, некоторые старые версии Python (в частности, интерпретатор) были утеряны вследствие повреждения репозитория, поэтому обратимся к чуть более поздним версиям, чтобы увидеть, как были реализованы объекты/
http://habrahabr.ru/company/mailru/blog/234747/
Году кажется в 2002, довольно скоро после того, как я практически познакомился с Питоном впервые, мне почему-то приснилось, что внезапно исходники интерпретатора (CVS по всей видимости, кто же ещё) остались у меня одного. Знаете, эдакий приятный сон о том, как спасаешь что-нибудь ценное, прямо как Аркадий Паровозов.
Мне этот сон показался неумным тогда, и кажется неумным до сих пор. Сейчас это звучит уже совсем невероятно: слишком большое сообщество и нормальный распределённый контроль версий. Да и в 2002 г. тоже уже не было реально, чего уж там.
Однако оговорка в статье заставила меня об этом сне вспомнить...
Старперский пост какой-то получился.
Компенсирую тем, что в 1990 г., когда Питон уже кое-как был, я ходил в начальную школу и компьютер, если не считать микрокалькуляторов, руками к тому моменту трогал раз пять (впервые я лет в 5 пытался мочить Space Invaders на болгарском клоне PDP-11 у папы на работе). Только через год у меня появился Спектрум и только ещё через год я ощутил кайф во время собственных попыток на нём что-то запрограммировать.

#BHM3LF (3+2) / @dluciv / 1368 дней назад

В Убунте штатный Питон по умолчанию до сих пор второй. Убунта такая Убунта.

#GTS85Y (3) / @dluciv / 1558 дней назад

python-mode не кажет брейкпойнты в исходнике. А желаемо. Можно конечно дать pdb команду 'l', и он тогда сам всё покажет, но тогда не нужен Emacs, что противоречит постановке задачи.

#I0KK3D (0) / @dluciv / 1561 день назад

Значит ECMAScript язык кривой, а Питон-нет?
http://habrahabr.ru/post/192098/
Ну ну.

#5VAXVD (6) / @dluciv / 1722 дня назад

Самый тупой способ генерировать случайные числа от нуля до нужной верхней границы (не включая), если у тебя есть [псевдо]случайные (устраивающего тебя качества) биты — взять остаток от деления на верхнюю границу. Проблема в том, что это не даст равномерного распределения. Так, например, если брать по 3 бита (минимально необходимое число), а нужно сгенерировать число в [0, 5), то очевидно результат будет вдвое чаще попадать в [0, 3), чем в [3, 5). Так что этот способ настолько тупой, что даже неправильный =).
Следующий — брать по 3 бита, пока не попадёт в нужный диапазон. Очень честный способ. Обеспечивает равномерность. Но выкидывает достаточно дорогие [псевдо]случайные биты. В принципе вероятность с первого раза попасть, куда надо, может быть около ½. Поэтому способ тоже тупой. Так, кстати, делает Питон (вот почему тут такой тег), можете посмотреть: http://hg.python.org/cpython/file/3.3/Lib/random.py функция _randbelow
Ок, хорошо, а кто скажет, как это делать нормально, чтобы распределение было равномерным, но чтобы при этом не выкидывать случайные биты?

#GJM4F9 (29+2) / @dluciv / 1824 дня назад

Народ, как сделать, чтобы Питон умел находить .pyd — файлы в текущем каталоге?
Конкретно — сделать portable-версию PIL (Python Imaging Library). OS — Винды.

#SDVX74 (3) / @dluciv / 1900 дней назад
Есть кто-нибудь, кто писал скрипты на Питоне для SL4A? Небось половина Бнвача только этим и занимается =). В общем после запуска произвольного скрипта на Питоне иногда подвисает Launcher. Остальное вроде ОК. Никто не знает, из-за чего такое может быть и как бороть?
#60PL6C (10) / @dluciv / 2038 дней назад
http://i.juick.com/photos-1024/1953434.jpg Внезапно столкнулся с тем, что Питон из SL4A — не какой-то там Jython, а полноценный капельку пропатченный CPython, пока что 2.6. И он не один. Вот эта штука http://kivy.org/ тоже использует обычный CPython, пока что 2.7. Такие вот дела. Не ясно, почему бы JavaScript для того же Андроида не сделать через вызов движка, который всё равно вшит в браузер (V8 кажется)... Было бы явно эффективнее и экономичнее, чем использовать Rhino.
#WGQKX8 (0+1) / @dluciv / 2159 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.