Посты с тэгом programming


[Перевод] 9 навыков программирования на Python, которые отличают новичка от опытного

Перевод статьи подготовлен в преддверии старта курса «Разработчик Python».



Python – фантастический язык. Его синтаксис настолько прост, что вам даже не придется искать лишнюю точку с запятой в своем коде. Я бы даже сказал, что для новичка Python один из лучших языков.

Вы начинаете с обширного набора библиотек и добавляете к ним все новые и новые по мере получения опыта в программировании.

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


[Перевод] Как в Python реализованы очень длинные числа типа integer?

Перевод статьи подготовлен специально для студентов курса «Разработчик Python».



Когда вы пишете на низкоуровневом языке, таком как С, вы беспокоитесь о выборе правильного типа данных и спецификаторах для ваших целых чисел, на каждом шаге анализируете достаточно ли будет использовать просто int или нужно добавить long или даже long double. Однако при написании кода на Python вам не нужно беспокоиться об этих «незначительных» вещах, потому что Python может работать с числами типа integer любого размера. Читать дальше →


[Перевод] 3 продвинутых функции на Python для анализа данных

Всего два дня остается до старта новой группы самого хардкорного курса от OTUS — «Разработчик Python». В преддверии старта курса делимся с вами еще одним полезным материалом.




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


[Перевод] Действительно ли Python GIL уже мертв?

Всем привет! Уже в следующий понедельник начинаются занятия в новой группе курса «Разработчик Python», а это значит, что у нас есть время для публикации еще одного интересного материала, чем мы сейчас и займемся. Приятного прочтения.



В далеком 2003 году Intel выпустил новый процессор Pentium 4 “HT”. Этот процессор разгонялся до 3ГГц и поддерживал технологию гиперпоточности. Читать дальше →



Представляем Tartiflette: реализацию GraphQL с открытым исходным кодом для Python 3.6+

Друзья, в преддверии майских праздников мы решили не заваливать вас сложными техническими статьями, поэтому нашли довольно интересный, а главное, легкий в прочтении материал, переводом которого с радостью делимся с вами. Данный материал мы хотим приурочить к запуску курса «Web-разработчик на Python».

С оригиналом можно ознакомиться тут.



Приобретение Vivendi dailymotion три года назад оказалось поворотным моментов для нашей организации. Это позволило переосмыслить вектор нашей работы, переосмыслить саму нашу работу от начала до конца. Мы использовали представившуюся возможность для оценки dailymotion в целом, переосмысления нашей инфраструктуры и, что более важно, архитектуры наших п



[Перевод] Модифицируем Python за 6 минут

Всем доброго и неумолимо наступающего!

Этот крайне насыщенный год подходит к своему завершению и у нас остался последний курс, который мы запускаем в этом году — "Разработчик full-stack на Python", чему, собственно, и посвящаем заметку, которая хоть и проскочила мимо основной программы, но показалась небезынтересной в целом.

Поехали

На этой неделе я сделал мой первый pull-request в основной проект CPython. Его отклонили :-( Но чтобы не тратить полностью свое время, я поделюсь своими выводами о том, как работает CPython и покажу вам как легко изменить синтаксис Python.

Я собираюсь показать вам как добавить новую фичу в синтаксис Python. Эта фича — оператор инкремента/декремента, стандартный оператор для большинства языков. Чтобы убедиться — откройте REPL и попробуйте:



Когда стоит использовать Go?

Понятное дело, что это мой личный блог, и потому этот дисклеймер в теории писать нет смысла, но на практике я всë равно напомню - всë, что я тут пишу, это мои личные мысли, если не указано обратное (что это факты или мысли кого-то другого, скажем).

Так вот, когда? TL;DR: никогда.

Длинный вариант: если вам прямо сейчас нужно что-то скомпилированное и ждать Rust 1.0 нет сил, а OCaml выучить нет времени, то ок, конечно же, right tool for the job и всë такое (впрочем, мне кажется, что вы себя обманываете).

Во всех остальных случаях - уже можно взять Rust, они перестали менять весь язык полностью, и он уже рабочий, либо возьмите уже OCaml, не настолько он отличается. Единственный плюс Go перед этими языками - что в нëм может разобраться Python-программист за один вечер.

Горутины с каналами? В Rust есть green и std::comm, в Ocaml’е есть Lwt и Async. Типизация? Посмешище в Go типизацие



Когда стоит использовать Go?

Понятное дело, что это мой личный блог, и потому этот дисклеймер в теории писать нет смысла, но на практике я всë равно напомню – всë, что я тут пишу, это мои личные мысли, если не указано обратное (что это факты или мысли кого-то другого, скажем).

Так вот, когда? TL;DR: никогда.

Длинный вариант: если вам прямо сейчас нужно что-то скомпилированное и ждать Rust 1.0 нет сил, а OCaml выучить нет времени, то ок, конечно же, right tool for the job и всë такое (впрочем, мне кажется, что вы себя обманываете).

Во всех остальных случаях – уже можно взять Rust, они перестали менять весь язык полностью, и он уже рабочий, либо возьмите уже OCaml, не настолько он отличается. Единственный плюс Go перед этими языками – что в нëм может разобраться Python-программист за один вечер.

Горутины с каналами? В Rust есть green и std::comm, в Ocaml’е есть Lwt и Async. Типизация? Посмешище в Go типизацие



webhooker

Когда ты хостишь репозитории сам, то можешь сделать какие угодно хуки и по push’у в свой репозиторий делать что угодно – например, рендерить свой сайт. Но когда ты перемещаешь эти репозитории на GitHub, приходится пушить изменения и туда, и себе на сервер, чтоб они там отрендерились. Хостить сайт на гитхабе мне не хочется, да и это, опять же, лишняя работа – надо будет рендерить его в ветке gh-pages, никакого фана.

В какой-то момент мне надоело (на эту фразу уже можно прямо макрос себе завести, “сделать новый пост с ‘мне надоело’” :)), и я написал вебшлюху – такую маленькую, на 250 строк, программу на Go, которая слушает себе определëнный порт, и когда ей приходит вебхук от гитхаба, исполняет заданную команду. Написал я еë потому, что в инете такой не нашëл (нашëл нерабочую на питоне с кошмарным кодом) – что довольно



Go Replace!

Как-то раз два с лишним года назад я решил посмотреть на Go, поизучать, как это – писать на нëм программы, и насколько хороший выходит результат. Идея для первой программы родилась легко – так как мой любимый Python тормозит на запуске, я решил переписать sr, который я постоянно юзал, на Go.

Так родился Go Replace (надо было рассказать про него еще два года назад, впрочем). Очевидно, поиск по файлам – давно решëнная проблема, find + grep, или grep сам по себе, или ack, или, вот, the_silver_searcher, но никто из них не умеет заменять. Замена – это всегда раздражающее переписывание командной строки на find + sed или xargs + sed. А gr (короткое название, которое я выбрал для того, чтоб не сильно много писать) умеет, и в