Как стать автором
Обновить
64
Карма
0
Рейтинг
Alexey Shrub @worldmind

Программист

Python не запрещает вызов private/protected методов потому, что любит тебя :-)

Python *Программирование *Анализ и проектирование систем *Совершенный код *Проектирование и рефакторинг *
Много копий сломано в обсуждениях того, почему питон эдакий бяка — не запрещает вызывать непубличные методы. И конечно, не раз звучали объяснения в духе «мы все тут взрослые люди», но похоже их было недостаточно, мне кажется, я наконец понял, как это объяснить более понятно, надеюсь, что это действительно так.

Напомню, что для private методов питон всего-лишь динамически изменяет имя и никак не ограничивает доступ к нему, а для protected не делает и этого, это просто соглашение об именовании методов, для тех кто не очень в курсе, есть дополнительные материалы тут и тут.
Читать дальше →
Всего голосов 40: ↑30 и ↓10 +20
Просмотры 12K
Комментарии 106

xonsh — python как замена shell

Системное администрирование *Python *DevOps *

Удивительно, на на хабре до сих пор нет поста о такой, весьма интересной, замене шеллу как xonsh (github), с моей точки зрения синтаксис всяких shell'ов ужасен и не вижу никаких оснований сохранять его в 21 веке, а Python, в свою очередь, обладает прекрасным синтаксисом и массой других преимуществ, поэтому, на мой взгляд, он и должен быть языком автоматизации по умолчанию, чего и пытаеся достичь xonsh.


Какое-то время использую xonsh, поэтому думаю, что могу рассказать о нём достаточно для того, чтобы начать пользоваться.

Читать дальше →
Всего голосов 34: ↑27 и ↓7 +20
Просмотры 17K
Комментарии 95

Что нужно запомнить программисту, переходящему на Python

Python *Программирование *
Туториал

Когда-то давно, в студенческие годы, меня укусил питон, правда инкубационный период затянулся и получилось так, что я стал программистом на перле.


Однако в какой-то момент перл исчерпал себя и я решил заняться питоном, сначала просто делал что-то и разбирался с тем, что нужно для данной задачи, а потом понял, что нужны какие-то систематизированные знания и прочитал несколько книг:


  • Билл Любанович «Простой Python. Современный стиль программирования»
  • Дэн Бейдер «Чистый Python. Тонкости программирования для профи»
  • Бретт Слаткин «Секреты Python: 59 рекомендаций по написанию эффективного кода»

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


В итоге у меня накопились какие-то заметки об особенностях питона, которые, как мне кажется, могут быть полезны тому кто пожелает мигрировать на него с других языков.

Читать дальше →
Всего голосов 46: ↑41 и ↓5 +36
Просмотры 48K
Комментарии 33

Блокчейн это не экономика, это политика. Хайп не туда

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

Это заставило меня задуматься над теми идеями, которые ранее я уже формулировал, но держал их в фоне, и вот что получилось.
Читать дальше →
Всего голосов 21: ↑16 и ↓5 +11
Просмотры 10K
Комментарии 86

Семантическая разметка: LaTeX, DocBook или ???

Open source *Семантика *XML *LaTeX *XSLT *
Писал комментарий к статье и понял, что надо выносить в отдельный пост.
Как многие отмечают там в комментариях статья отстой, человек не разбирается и смешал всё в кучу, попробую поделиться своими выводами от использования разных разметок.
Читать дальше →
Всего голосов 15: ↑13 и ↓2 +11
Просмотры 17K
Комментарии 55

Современный найм — отстой

Управление персоналом *Карьера в IT-индустрии
Прежде чем начать сей вопль отчаяния, вызванный безумием этого мира, хотелось бы кратко сказать о себе — рограммист, руководитель программистов (нанимался и нанимал), значительный опыт разработки только на языке Perl.

Perl — это когда-то бывший популярным для веба, но ныне умирающий, язык. Умирающий вполне обоснованно, поэтому хотелось бы слезть с него на что-то массово востребованное (Java).

Проблема


Сменить стек технологий — это не такая простая задача, проблема в том, что если у тебя в опыте работы не указан конкретный язык программирования, а то и конкретный фреймворк/библиотека, то ты считаешься неподходящим кандидатом.
Читать дальше →
Всего голосов 41: ↑26 и ↓15 +11
Просмотры 21K
Комментарии 177

Свободу информации

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

Впоследствии я добавил некую выжимку из этой статьи в свою книгу и думал что вопрос решён.
Однако, прочитав доклад «Анархономика» Копенгагенского Института исследований будущего и подискутировав с одним из немногочисленных читателей моей книги, я изменил своё мнение.
Теперь я считаю, что копирование не должно преследоваться государством, идея, конечно же, не новая, но ранее она мне казалась недостаточно обоснованной, а теперь, как мне кажется, я смог достаточно убедительно обосновать её.
Читать дальше →
Всего голосов 10: ↑8 и ↓2 +6
Просмотры 6.7K
Комментарии 20

Почему я больше не хочу програмировать на Perl

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

Достаточно того, что авторы языка, задумывая новые версию, по сути создали новый язык мало похожий на исходный (Perl 6), тем самым признали что текущий перл вышел не очень удачным, что в принципе понятно т.к. язык создавался как замена shell'у, а потом оброс фичами.

Я бы хотел сказать о своих личных наблюдениях, которые привели меня к тому, что работать на перле я пойду только в крайнем случае, несмотря на то, что этой мой основной язык.
Читать дальше →
Всего голосов 19: ↑10 и ↓9 +1
Просмотры 12K
Комментарии 220

Нужны ли социальные сети?

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

Социальная сеть это люди (объективная информация о человеке, его профиль) и связи между ними (тип отношений и субъективное мнение/знание индивидов друг о друге).

Всё остальное можно отбросить — вполне можно представить социальную сеть без обмена музыкой и видео, даже без блог-платформы, без игр и приложений, без обмена сообщениями и прочего (ходят слухи про какие-то стикеры, уверен — они тоже не обязательны).

Далее необходимо вспомнить историю социальных сетей, вернуться к истокам. Начать необходимо со времён когда представители вида homo sapiens жили малыми группами (до 150-200 особей) на значительном удалении друг от друга.
Читать дальше →
Всего голосов 20: ↑12 и ↓8 +4
Просмотры 22K
Комментарии 25

Почему земляне делают глючный софт и железо

Искусственный интеллект Будущее здесь
Думаю никто не станет спорить с тем, что качество сколь-либо сложных систем создаваемых землянами далеко от идеала. Конечно, можно сказать, что всё работает — самолёты летают, космические корабли бороздят просторы орбиты Земли и т.д.

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

Хотелось бы рассмотреть причины и возможные пути решения этой планетарной проблемы.
Читать дальше →
Всего голосов 49: ↑32 и ↓17 +15
Просмотры 41K
Комментарии 306

Объективные критерии качества Perl кода

Perl *Совершенный код *
Захотелось мне объективных критериев качества кода и конечно я вспомнил про свои давние наработки (коллекцию нефункциональных тестов, см. тут и тут).
Ещё тогда была идея оформить их не в виде коллекции тестов, а в виде отдельной утилиты, но удалось сделать только теперь, встречаем perlqual (от perl quality).
Читать дальше →
Всего голосов 16: ↑13 и ↓3 +10
Просмотры 5.4K
Комментарии 24

Работа будущего

GTD *Фриланс Управление персоналом *Карьера в IT-индустрии
Сегодня большая часть работы выглядит так: есть некий деловой человек-владелец бизнеса, который нанимает людей для делегирования им каких-то видов деятельности.
Цель дельца — заработать на машину/дом/яхту/остров и т.п. в зависимости от амбициозности.
Нанятые сотрудники — это винтики в механизме, создатель механизма не очень-то заинтересован в том чтобы винтики возомнили себя бизнесменами, поэтому старается не перегружать никого информацией о всех тонкостях бизнеса (некоторая разновидность принципа «разделяй и властвуй»).
Золотое правило управления: В каждой фирме всегда есть один человек,
который понимает что происходит на самом деле, вот его-то и нужно
уволить в первую очередь.

Мотивированы эти сотрудники денежными средствами необходимыми для выживания, Маркс называл это отчуждённым трудом.
Есть конечно исключения, который выглядят как инопланетяне или посланцы из будущего
Читать дальше →
Всего голосов 15: ↑12 и ↓3 +9
Просмотры 7.6K
Комментарии 3

Что делать?

GTD *Карьера в IT-индустрии
В последнее время много говорят о том, как быть эффективнее, но мне почему-то кажется, что это не работает. Нет, конечно, некоторые практики могут быть полезны, нельзя отрицать, что совет «не отвлекаться на коммуникации во время работы, требующей концентрации» полезен, хотя он очевиден и не требует прочтения книг и посещения тренингов. Суть в том, что если вы занимаетесь бессмысленной с вашей точки зрения деятельностью, то никакая система не поможет, хотя нет, есть один вариант, если вы занимаетесь нетворческим трудом, то надсмотрщик с плетью может помочь, ну или голод, например.
Читать дальше →
Всего голосов 14: ↑12 и ↓2 +10
Просмотры 7.2K
Комментарии 18

Правообладатели vs пользователи: компромисс

Законодательство в IT
Хотелось бы попытаться сформулировать как мог бы выглядеть компромисс между владельцами/производителями развлекательного контента и потребителями.

Противостояние «пиратов» и держателей прав на контент (в первую очередь развлекательный) выглядит сегодня так.
С одной стороны владельцы прав на контент (обычно огромные корпорации), которые владеют правами на произведения:
Читать дальше →
Всего голосов 14: ↑11 и ↓3 +8
Просмотры 3.8K
Комментарии 14

Что ускоряет принудительная сверхурочная работа

GTD *
Многие аутсорсинговые компании грешат тем, что по любому капризу заказчика готовы заставлять (отдельный вопрос могут ли заставить, но это зависит от личностных качеств человека, многие соглашаются) сотрудников работать в выходные, я уверен что это совершенно неразумно почти всегда. Конечно с точки зрения аутсорсера и конкретного менеджера всё выглядит отлично — проект ускоряется, менеджер получает премии за выполнение сроков, заказчик доволен, заказчик платит больше денег, сотрудники получают двойную оплату (правда это в самом лучшем случае). Вроде все должны быть рады.
Читать дальше →
Всего голосов 63: ↑47 и ↓16 +31
Просмотры 68K
Комментарии 102

Что должен знать начинающий Perl разработчик о перловой инфраструктуре

Perl *
В связи с тем, что дефицит кадров в ИТ отрасли велик, а перловиков совсем мало (а те, что есть, уже хотят быть техдирами и получать много денег), многие конторы с радостью берут способную молодёжь для превращения в перловиков.
Компания, в которой я сейчас работаю, тоже об этом задумалась и я вспомнил свою идею набросать некую шпаргалку-карту для начинающих шеф-поваров по приготовлению перловой каши.

Сразу хотелось бы отмести разговоры о смерти перла, вроде где-то тут не помню кто писал, что если технология перестала быть модной и кажется мёртвой, то это означает, что технология зрелая, понятна её область применения и нужно идти и работать, а не трещать языками.
Perl 6 считаю другим языком и его долгое и мучительно рождение не мешает жить и развиваться перлу.

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

Также отмечу что весь свободный софт, и перл не исключение, делается для Unix-подобных ОС, на винде всё это можно делать, но не нужно, рекомендую сразу осваивать нормальную для девелопера ОС (GNU/Linux, FreeBSD).

Как обычно всё будет в шпаргалочном стиле, ссылки будут в основном на официальные доки, всяких док для быстрого старта полно в сети:
Читать дальше →
Всего голосов 55: ↑48 и ↓7 +41
Просмотры 34K
Комментарии 120

Шпаргалка начинающего Debian/Ubuntu администратора по управлению пакетами

Настройка Linux *
Долгое время меня глодало незнание того, как сделать некоторые элементарные вещи в дебиановских менеджерах пакетов, но, как часто бывает, спросить рядом было не у кого, а до написания куда-либо руки не доходили. И вот наконец вопросы вызрели и я написал свой вопрос в дебиановскую рассылку. Естественно оказалось что пропустил что-то очевидное, но и узнал много неочевидных полезностей, посему решил набросать шпаргалку, авось кому пригодится.
Читать дальше →
Всего голосов 103: ↑90 и ↓13 +77
Просмотры 284K
Комментарии 64

Шпаргалка по mock-объектам в Perl

Perl *
В богатом русском языке к сожалению нет некоторых слов, поэтому вместо того чтобы начать заметку словами «Пися/Пиша модульные тесты», я вынужден удлинить фразу.
В процессе написания модульных тестов часто приходится заглядывать в старые тесты, чтобы быстро вспомнить как подменить тот или иной объект, поэтому я решил что пришло время набросать небольшую шпаргалку, авось и кому-то ещё сгодится.
Сразу прошу сильно не пинать, это шпаргалка, а не руководство, поэтому всё предельно кратко.
Читать дальше →
Всего голосов 15: ↑13 и ↓2 +11
Просмотры 3.3K
Комментарии 8

Unix-way напоминалка

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

Поиск по хабру показал что ещё никто не рассказывал об инструменте, который я решил использовать. Важным отличием этого инструмента является то, что это настоящий unix-way, что намекает на одинаковую её работу на всех GNU/Linux дистрибутивах, хотя по слухам утилита работает и на ОС от Apple и даже на MS Windows (cygwin), хотя автор не очень рад такому использованию.
Читать дальше →
Всего голосов 40: ↑36 и ↓4 +32
Просмотры 7.2K
Комментарии 19

Нефункциональное модульное тестирование — «главное чтобы блестел». Часть 2

Perl *
В прошлом году я написал небольшую заметку о нефункциональном тестировании — т.е. о тестах пытающихся выявить уродливый и сложный в сопровождении код. Конечно такие тесты не гарантируют идеального кода, но какой-то минимальный уровень качества обеспечат т.к. несмотря на очевидность требований этих тестов многие их игнорируют и потом приходиться разбираться в процедурах на 5 000 строк.
Заметка в ЖЖ не вызвала ожидаемой мной обратной связи (хотелось бы знать что я упустил), поэтому несмотря на сопротивление хабра решил выложить продолжение тут (спасибо людям добавившим кармы).
Со времени публикации первой заметки произошли следующие изменения:
Читать дальше →
Всего голосов 14: ↑14 и ↓0 +14
Просмотры 2.3K
Комментарии 17
1

Информация

В рейтинге
Не участвует
Откуда
Гомель, Гомельская обл., Беларусь
Зарегистрирован
Активность