-
Введение в Питон. Основы синтаксиса
Решил перенести уроки с Хексета себе в блог. Есть вероятность, что песочницу, где мои уроки сейчас, закроют, так что путь переезжают сюда.
Под каждым видосом будет транскрипт (расшифровка слайдов) и код для практического задания. В этом пилотном выпуске нет транскрипта.
-
Как завоевать друзей и оказывать влияние на людей
Тот самый случай, когда книгу нужно прочесть всем и каждому. Действительно стоящая вещь. Вы станете лучше общаться с друзьями, коллегами, членами семьи. Советы Карнеги просты, но следовать им трудно из-за человеческой натуры – желания донести до всех свое Я (до которого никому нет дела). Не критиковать, быть снисходительным, уважать оппонента, не перебивать, брать инициативу – эти простые истины хорошо и четко изложены. Истории из практики Карнеги и учеников дополняют советы практикой.
Книжка небольшого формата и легко читается. Для меня она стала главным удовольствием этим отпуском.
-
Яндекс.Книга
Решил вести особый раздел с прочитанными книгами и краткими аннотациями к ним. Начну с того, что первое на полке – Яндекс.Книга.
Очень интересная книжка о людях, создавших крупный поисковик. Фактически, интересна первая половина книги – как все происходило на конспиративных квартирах, вырастало из сорняков. Середина тоже норм, но уже не так интересно. Повествования разбавляют беседы с акционерами Янждекса – у них большой разброс в сферах бизнаса, мнениях, каждый интересен по-своему. А заключительное интервью с Аркадием Воложем – вообще кайф.
Книжка издательства Манн, Иванов и Фербер. За оформление, верстку, гарнитуру – зачет. Красный шнурочек-закладка, белая обложка. Специально заворачивал в полиетилен, чтобы не потерлась в сумке.
Из минусов:
- начиная с середины появляются ошибки в заглавных буквах и пунктуации. Торопились?
- в процессе чтения начинает напрягать система, когда каждая клава именуется запросом. Закос под Яндекс как-то не очень – иные запросы настолько желты и притянуты за уши, что просто стыд. Например, “Зачем Сегалович стал девушкой?” – это о том, как Илья с одноклассниками надели платья, когда поздравляли одноклассниц в школе с 8 Марта. Притягивать сюда смену пола – это пиздец. И подобных примеров хватает.
- в середине книги активно муссируется тема противостояния Яндекса Гуглу. И начинается лубочно-тошнотворная аппеляция в ВОВ – выстоим, защитим Рассею-матушку. Я сам за отечественные разработки, но читать это место реально противно, пропаганда.
- автор заявляет, что пишет книгу для тех, кто айти не понимает, но везде пишет имя Гугла латиницей – Google. Как это читать – Гогл, Гугле, Гоогл? Ты же так радеешь за Россию, пиши по-русски, блеадь!
А в целом – зачет, очень хорошая книга. Главное – вдохновляет после ее прочтения сесть и сделать что-то очень полезное.
-
Типичный мемориал
Был проездом в Рязани, пересадка три часа. Перекусив с сыном в кафешке, решили походить по городу. Так как времени было мало, наметили близкий ориентир – военный мемориал через площадь.
Никогда не любил эти унылые куски бетона и мрамора. Однако, за мемориалом мне виделся скверик, где можно посидеть. Кое-как добрались по жаре с сумками. Ступив на мемориал, я слегка прихуел от нахлынувших эмоций.
На территории этого бетонного катка не было ни одной лавочки. Ни одного места, где можно, сука, присесть. Ладно, с сумками на мемориалы не ходят. А как же ваши дорогие ветераны? Вышел 80-летний человек из дому, шел два квартала до мемориала. Где ему теперь сесть, отдохнуть?
Обогнул мраморную стену, за который росли деревья. Лавочек и там нет. Деревья и асфальтовые дорожки. Ветераны расходятся по домам.
И это в каждом городе. Глыбы мрамора и бетона, которые никому не нужны. Туда приходят раз в год чиновники и телевидение. Нормальный человек не сможет пробыть там больше десяти минут.
На всех мемориалах ужасно набран текст, есть банальные ошибки верстки. Я программист, а не дизайнер, но и то понимаю. Все набрано капсом, как в Сбербанке. Буквы то слипаются, как огурцы в банке, то расползаются, как тараканы. Иной раз между двумя буквами можно вставить три или четыре других. Вместо тире – дефисы, как будто с клавиатуры набирали.
Вот посмотрите. Текст набран словно с закрытыми глазами.
В каждом городе стоит такая хрень, а то и несколько. Стоять будут еще лет двести. Слишком жирно отдавать городское пространство под столь бесполезные сооружения.
-
Просто подпиши эту петицию
-
В чате девушка
Бывает, обсуждение в чате перетекает в другое русло. Начинают спорить о личных вглязах, в т.ч. и на интимную жизнь: о женских запахах, цвете глаз, размерах груди. Беседа протекает легко и непринужденно. Нам всем это интересно.
Но найдется умник, благородный джентельмен, который скажет, что, ребята, потише, в чате девушка. Остальные, вместо того, чтобы предложить ему покинуть чат, внезапно тоже становятся “джентельменами”. Беседа гаснет, и это как бы норм.
Интересно, спрашивал ли товарищ ту девушку, оскорбляет ли ее обсуждение размера груди? Почему он решил, что ей не пристало читать наш чат? Он свою жену или подругу так же контролирует – то читай, это не читай?
То, что произошло, называется ханжество и шовинизм. Отвратительное явление, с которым надо бороться. Шовинист считает, что женщина недостойна чего-то только потому, что она женщина. Наш благородный дон из чата есть первый ханжа. Он считает, что девушку конфузит чат, потому что она девушка.
Еще раз: раз ты существо женского пола, тебе нельзя читать, какие женские запахи нравятся мужчинам. В его понимании, тот факт, что ты другого пола, должен оскорблять твои достоинство. Омерзительно, что это подано как забота о ближнем и проявление высоких чувств.
Конечно, девушку о ее чувствах никто спросил. Хотя стоило бы знать, что женщины гораздо больше говорят о сексе и отношениях. Их интересуют чужие мнения, в том числе мужчин. Вообще, мужчине и женщине важно знать, что думает о них о противоположный пол.
Не секрет, что половина аудитории мужских журналов типа Мэнс Хэлс – женщины, а мужчины читают Космо. Сужу в том числе и по себе: в командировке в моем номере была стопа Космополитена, я их выборочно прочитал. Попадаются толковые статьи, их которых можно выудить что-то полезное.
Мужские и женские журналы нужны затем, чтобы воздействовать на противоположный пол. Знакомая рассказывала, что рядом с некоторыми статьями в Космополитене может стоять особый значок. Он значит, что эту статью желательно подсунуть любовнику или мужу, чтобы он случайно наткнулся на нее, если девушка сама стесняется предложить то, что в статье написано. Например, попробовать что-то новое в сексе.
Короче, в следующий раз не нужно напоминать нам, что в чате девушка. Девушка не дура и без тебя решит, что ей читать. Молодые и красивые девушки любят говорить о сексе и слушать разговоры на эту тему. Они выберут не поборника нравов, а того, кто лишен дурацких предрассудков.
-
Люблю паттерны
Паттерн – повторяющийся узор, которым можно покрыть поверхность любой площади. Хорошую подборку можно посмотреть на сайте Лебедева. А еще хорошие паттерны встречаются в жизни:
-
Недостатки питона
Я один из тех, кто проводит в Датаарте собеседования по Питону. За два года провел около пятидесяти собеседований. Я веду специальный список, в котором собираю наиболее интересные вопросы к кандидатам. Интересные – не значит сложные или такие, чтобы запутать или унизить собеседника. Цель собеседования – определить, подходит нам кандидат или нет. Интересные вопросы дают кандидату возможность выговориться, рассказать о прошлом опыте, привычках. На такой вопрос нельзя ответить однозначно да или нет. Это аналог открытого вопроса в переговорах.
Один из интересных вопросов звучит так – какие в Питоне есть недостатки? Как вы с ними боретесь?
Вопрос замечателен своей глубиной. Это значит, что на каждую ответную реплику можно задать уточняющий вопрос, продвигаясь вглубь, пока у кого-то из нас двоих не закончится запас знаний в предметной области.
Весьма дурным ответом считаю, что в Питоне нет недостатков. Кандидат расписывается в своей неопытности. Идеального языка программирования нет. Скорее, он только начал работать с Питоном и прибывает в эйфории, когда вместо 15 строчек можно сделать то же одной.
Подвох кроется в том, что фактически в Питоне нет недостатков, но есть особенности, которые нужно знать. Ведь если б были откровенные недостатки, их бы исправили, и получился бы идеальный язык. Но этого не происходит, и вряд ли произойдет в будущем.
Когда кандидат приводит в пример какую-то слабую особенность Питона, я в первую очередь интересуюсь, в какой ситуации кандидат с ней столкнулся и как разрешил. Часто случается, что тот или иной аргумент взят с Хабра или ЛОРа, то есть не имеет отношения к реальности.
Ниже привожу потенциальные ответы и свои комментарии к ним. В конце – свою точку зрения на поставленный вопрос.
Ответ номер один – медленное быстродействие Питона. Сразу же интересуюсь, насколько медленнее, в каких именно случаях. Приходилось ли писать такой код, когда алгоритм упирается в производительность интерпретатора. На самом деле, редко кто может этим похвастаться. Питон чаще используется в вебе, а любой веб – это клубок сетевых вызовов. Типичное веб-приложение дергает чужие урлы, читает базу, лазит в мемкеш. Большая часть времени уходит на ожидание сокетов. Это сводит производительность интерпретатора к математической погрешности.
Далее, ГИЛ – глобальный замок, который не дает исполнятся нескольким тредам одновременно. Опять же, вопрос – какие задачи лучше решаются тредами? В вебе все работает на процессах. Порождение треда на каждый запрос убьет систему в два счета. ОК, в чем разница между тредами и процессами (модули Threading и Multiprocessing)? Без ответов на эти вопросы аргумент не принимается.
Строки и изменения в третьем Питоне – повсеместный Юникод. Спрашиваю, в чем были проблемы со строками во второй ветке. Как кодируется и декодируется Юникод. Сколько байт тратит UTF-8 на один символ? Какие операции быстрей – на Юникоде или на 8-битных строках? Заметил – тот, кто понимает работу со строками, исправлениям в тройке не рады.
В процессе ответа кандидат имеет полное право спросить мою точку зрения на недостатки Питона. Отвечаю примерно так.
Производительность Питона является косвенным недостатком. Столкнуться в вебе с ним практически нереально. В практике у меня был случай, когда утилита на Питоне сильно проигрывала аналогичной утилите на Си. Я пытался распарить лог Энджинкса размером в пять гигабайт. Если ngxtop сделал это за час, то другая утилита (не помню название) – за пять минут. Это тот случай, когда критические участки кода нужно выносить из Питона на Си или использовать другие утилиты.
Есть у меня претензии к оформлению кода с использованием
*args, **kwargs
. Сама по себе это классная штука, но некоторые используют достоинства языка себе во вред. Например, функция или конструктор принимают много необязательных параметров. Хорошим тоном будет перечислить их все в сигнатуре со значениямиNone
. Однако, попадаются те, кто просто лепит*args, **kwargs
, и внутри тела функции разбарет их вручную. В лучшем случае в докстринге указано, что можно передавать. Это ломает автокомплит, подсказки в редакторах, вынуждает читать код. Короче, выходит проигрыш в усилиях – поленившись один раз, разработчик вынуждает напрягаться других многократно.Строки и третий Питон. Моя точка зрения здесь лаконична. Разработчик, который хорошо знает, как устроены кодировки и Юникод, не получит в тройке никаких преимуществ, наоборот – только боль. Очень часто мы работаем с 8-битными строками, сплитим, тримим, делаем замену. Да, по сути это байты, но что с того? На каждый чих переводить байты в Юникод, я считаю, глупо. В тройке потенциальные трудности со стоками спрятали в черный ящик. Оставили начинающих разработчиков в неведении, что происходит под капотом. Незнание кодировок рано или поздно выстрелит в самый неприятный момент.
Вот примерно таким я вижу ответ на вопрос о недостатках Питона. Согласитесь, из ответа можно получить много информации о кандидате и его опыте.
Задавайте открытые вопросы на собеседованиях. Не провоцируйте холивар, но подталкивайте к полному, развернутому ответу. Вы больше узнаете о кандидате, он будет к вам расположен, т.к. вы – слушатель. Принять окончательное решение – брать на работу или нет – станет проще.
-
Депардье
Вот дурак этот Депардье. Позорно бежал из страны, в которой, собственно, и сделал карьеру. Бежал, чтобы сохранить бабло. Сам я тоже против прогрессивной шкалы, да и вообще против налогов. Но, блядь, на кой хрен тебе столько денег? Еще больше пузо отращивать? Вложись в новые технологии. Перечисли раковым больным. Инвестируй стартапы. Жертвуй неизлечимым котикам. Да почитай, наконец, чем Билл Гейтц с женой занимаются, они подскажут. Рано или поздно с таким пузом возникнут болячки, и любые деньги станут не в счет. Ну сделай же мир лучше! Вместо этого Депардье едет в Россию, получает паспорт и теперь готов за нее умирать. Занавес.
-
Боремся со ссылками в новом табе
Прекрасное расширение для Хрома Death To _blank заставляет все ссылки открываться в текущем окне. Это очень классно. Теперь не нужно страдать из-за СЕО-дрочеров и просто дебилов, не желающих отпускать посетителя с сайта. На каждую хитрую жопу есть хер с винтом. В опциях можно указать домены, для которых правило не действует. По умолчанию добавлены Гмейл и еще чей-то почтовик.
Если выражаться без эмоций, то открывать ссылки в новом окне – моветон. Пользователь сам решит, что ему нужно – в этой странице или в новой. Есть хоткеи (клик с управляющей клавишей) и пункт в выпадающем меню. Ссылка в новом окне нужна только в приложениях, мимикрирующих под десктоп, например, почтовики, бухгалтерские веб-морды, сложные админки. Открывать все в новом табе – рак головы.