kitaetz

пикабушник
пол: мужской
поставил 1544 плюса и 1003 минуса
отредактировал 0 постов
проголосовал за 0 редактирований
15К рейтинг 3249 комментариев 12 постов 2 в "горячем"
1 награда
5 лет на Пикабу
30

[Основы] Часть 1. Для грудничков.

Предполагается, что пост http://pikabu.ru/story/hello_world_4265035 уже прочитан или у вас любой дистрибутив linux.

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

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


Для начала замануха. Можно много писать о том, какой питон крутой, что его используют для бигдаты, датасаенса, веб-разработки и всего остального. Но это всё сухие слова. Поэтому приведу пару примеров того, где питон используется в качестве основного языка.


Instagram - всеми любимый хостинг фотографий еды и ёбл тупых пёзд. Да, он написан на питоне. Мало того, за фреймворк взят Django, до которого мы доползём, если кроме меня будут желающие ползти. Да ещё и HTTP-сервер они взяли Gunicorn, до которого мы так же доползём. В качестве БД они используют PostgreSQL - мою любимую РСУБД и именно поэтому до неё мы тоже, возможно, доползём.


Reddit - сервис смехуёчков, думаю, все о нём так или иначе слышали. Он написан также на питоне, но на Pyramid фреймворке, а не Django. В качестве БД используются две базы: Cassandra и PostgreSQL. В качестве кэша используется memcached и фейсбуковский mcrouter. В качестве брокера сообщений используется RabbitMQ. Исходный код находится в общем доступе здесь https://github.com/reddit/reddit


exchange.livejournal.com - биржа блогеров ЖЖ, которая недавно открылась. Почему она здесь? Потому что я участвовал в её разработке. Она также написана на Django с базой PostgreSQL.


На этом замануха кончается и начинается моя нелюбимая часть - циклы, ветвления и переменные.

Все куски кода будут являть собой скриншоты Jupyter Notebook, во-первых, потому что мне в нём удобно писать, во-вторых, потому что нечего копировать чужой код.


Переменные

Питон - язык со строгой динамической типизацией. Что это значит?

- Если захочешь сложить число 5 со строкой '7' - тебя наругают. Это называется строгой типизацией. Никаких преведений к "более общему" типу.

- Если в переменной x хранилось число, это не значит, что ей нельзя присвоить строку. Это динамическая типизация. Тип переменной, разумеется, нигде указывать не нужно.

[Основы] Часть 1. Для грудничков. Python, Программирование, Python3, Длиннопост, Цикл, Ветвления, Основы, Переменные

Приятной возможностью является параллельное присваивание. Обмен значениями также поддерживается.

[Основы] Часть 1. Для грудничков. Python, Программирование, Python3, Длиннопост, Цикл, Ветвления, Основы, Переменные

Есть также множественное присваивание, которое я настоятельно не рекомендую использовать бездумно (это касается неплоских типов данных, о которых поговорим как-нибудь позже):

[Основы] Часть 1. Для грудничков. Python, Программирование, Python3, Длиннопост, Цикл, Ветвления, Основы, Переменные

С переменными, вроде, пока всё.


Ветвления

В отличии от Си-подобного синтаксиса, у нас нет ни фигурных скобок для выделения блоков, ни скобок для выделения условного выражения (на самом деле, ничего не мешает обернуть условие в скобки). Блоки выделяются ТОЛЬКО отступами. Здесь нет никаких switch, есть только if, elif и else. Следующий пример, думаю, объяснит всё за меня:

[Основы] Часть 1. Для грудничков. Python, Программирование, Python3, Длиннопост, Цикл, Ветвления, Основы, Переменные

А теперь небольшой сюрприз. Несмотря на то, что язык имеет строгую типизацию, сравнения между некоторыми неодинаковыми типами данных (int, float, Decimal) поддерживаются. Например 5 == 5.0 вернёт True, несмотря на то, что 5 - это целое число, а 5.0 - с запятой. Но использование этого считается дурным тоном.


Циклы

Если вы до этого дня не знали слово "итератор" и писали только циклы по индексам, вроде такого for(int i=0; i<10; i++), то придётся привыкать.

Итак, в питоне цикл for проходит итератором по каждому элементу последовательности. Ему глубоко плевать, что внутри последовательности. Число, строка, чьи-то надежды и мечты.

[Основы] Часть 1. Для грудничков. Python, Программирование, Python3, Длиннопост, Цикл, Ветвления, Основы, Переменные

Для обычных циклов по индексам существует генератор range. О генераторах тоже позже.


Функции

Функции в питоне объявляются двумя способами:

[Основы] Часть 1. Для грудничков. Python, Программирование, Python3, Длиннопост, Цикл, Ветвления, Основы, Переменные

Однако, второй способ СТРОГО НАСТРОГО рекомендую использовать для определения обычных функций. Лямбда-функции (или безымянные функции) нужны только для того, чтобы передавать их аргументом в функции высшего порядка.

Тут, наверное, возникло сразу два вопроса:

Как можно передать функцию аргументом в другую функцию?

Что такое функция высшего порядка?


Т.к. питон - объектно-ориентированный, следовательно, всё в нём является объектом. И функция тоже. Аргументом в функцию может прийти любой объект, в т.ч. и функция:

[Основы] Часть 1. Для грудничков. Python, Программирование, Python3, Длиннопост, Цикл, Ветвления, Основы, Переменные

В данном примере много чего интересного:

1) После определения функции (def) можно ввести так называемый docstring, который описывает то, что делает функция. При этом, этот докстринг сохраняется в атрибут __doc__ объекта функции (что только лишний раз говорит о том, что функция - объект)

2) __name__ атрибут содержит имя объекта (функции или класса)

3) h в этом случае - функция высшего порядка. Функция высшего порядка - это функция, которая принимает или возвращает другую функцию. Это пригодится для декораторов, о которых также позже.


Функции можно присваивать другим переменным:

[Основы] Часть 1. Для грудничков. Python, Программирование, Python3, Длиннопост, Цикл, Ветвления, Основы, Переменные

Но имя (__name__) останется прежним, т.к. фактически, f и same_func только лишь ссылаются на функцию.

[Основы] Часть 1. Для грудничков. Python, Программирование, Python3, Длиннопост, Цикл, Ветвления, Основы, Переменные

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


P.S. Пост писался без подготовки, прямо в редактор постов на пикабу, обо всех недочётах пишите в комментах, закидывайте тапками и помидорами.

Показать полностью 9
-2

Кажется, неделя идей для стартапов?

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

Идея в том, чтобы создать формат и прочие принадлежности (кодек), например, .pv (Pron Video), который будет весить в разы меньше других форматов при должной однообразности сцен.
Только представьте: смотреть FullHD ролики на узкополосном интернете!

7 удобных программ для обработки фотографий (на компьютере или смартфоне)

7 удобных программ для обработки фотографий (на компьютере или смартфоне) Длиннопост

Сейчас почти у каждого в кармане лежит полноценная камера. Снять очень даже приличные кадры можно и на «мыльницу», и на простейший смартфон. А с помощью нехитрых манипуляций в редакторе ваши отпускные снимки превращаются в landscape photo. Так что прежде чем скупать фототехнику, лучше разберитесь с софтом для обработки. В проекте Пикабу и LG «Месяц фотографии» режиссер мультимедиа и фотограф Татьяна Абизова рассказывает о программах, которые пригодятся и новичками, и уже тем, кто что-то знает про фотографию.

Перед тем, как перейти к редакторам, обсудим первое правило фотографа: лучше всего снимать в формате RAW – в переводе с английского значит «сырой», что хорошо передает суть. Иначе говоря, это исходник, в нем нет световых артефактов, потери четкости, перешарпа (шумов и неестественной резкости изображения, которыми часто грешат камеры смартфонов). С такими файлами у вас будет больше возможностей для редактуры, чем с привычными jpg. В любой современной камере есть режим съемки в RAW (ищите в настройках). Но сам формат может называться по-разному: у Canon это .cr2, у Sony Alpha — .arw.


У смартфонов тоже есть опция «сырой» съемки – фотографии с разрешением .dng. Формат расшифровывается как Digital Negative («цифровой негатив»), придумала его компания Adobe. Большинство флагманов уже поддерживает съемку в RAW (точнее, DNG), но есть нюансы. Чтобы узнать, можно ли снимать в RAW на Android, зайдите в приложение «Камера», выберите «Ручной режим», далее «Настройки камеры». Если стоит галочка RAW — все окей, если нет — увы. На iPhone съемка в RAW доступна на iOS 10 и более новых версиях. Вот только стандартная «Камера» не умеет снимать в RAW. Но это не повод отчаиваться. В App Store полно приложений, поддерживающих формат RAW, например, Adobe Lightroom (подробнее о нем ниже). В общем, если в настройках камеры есть режим «Ручной/мануальный» – снимайте в нем.


Итак, со съемкой разобрались. Теперь, наконец-то, поговорим про обработку. Я считаю, что нет смысла сначала осваивать любительские программы, а потом уже переходить на более сложные. Это зря потраченные время и ресурсы. Так что все приложения в нашем списке просты в понимании, с хорошим набором для инструментов и подходят для профи.

Lightroom Cloud и Lightroom Classic


Как говорится, не фотошопом единым. Lightroom – тоже разработка компании Adobe, специально для работы с фотографиями. Программы доступны только по подписке, но есть бесплатный пробный период, которого вполне хватит для ознакомления. Коротко об отличиях: Cloud проще по функционалу и подойдет совсем новичкам, а у Classic больше возможностей обработки для тех, кого уже не испугать фоторедакторами.


Табличка сравнения программ с официального сайта Adobe:
7 удобных программ для обработки фотографий (на компьютере или смартфоне) Длиннопост

Lightroom Cloud

Программа доступна на любых устройствах: все завязано на облачном хранилище Adobe Creative Cloud. Начали обрабатывать фото на компьютере, а закончили со смартфона, если понадобилось срочно уйти. Удобно! Правда, пролистать весь архив изображений в программе не получится, редактировать можно в порядке очереди.


Тем не менее все инструменты работы над изображением тут есть: цветокоррекция, поднятие уровней света и тени, удаление шума, точечное редактирование и кисти. Но функционал сильно упрощен по сравнению с классической версией Lightroom.


Lightroom Classic
7 удобных программ для обработки фотографий (на компьютере или смартфоне) Длиннопост

Моя самая любимая программа для обработки. Объясню почему. У нее есть большой набор инструментов для редактирования и функция «потоковая ретушь» – это когда изменения в одном файле применяются к другим файлам. Очень удобно для работы с фотографиями, снятыми в схожих условиях.


Все инструменты из Lightroom Cloud на месте, да еще с расширенным функционалом. Например, у кистей есть пресеты (сохраненный набор настроек). Так, teeth whitening, как можно догадаться, позволяет отбелить зубы или еще что-нибудь. Серьезно, я иногда использую ее для осветления белков глаз на темных фото. Есть также кисти, смягчающие текстуру кожи. В общем, масса полезного! А если стандартных настроек мало, можно установить пару-тройку плагинов. Допустим, для работы с пейзажами или ретуши кожи.


Еще у Lightroom Classic есть невероятно полезная функция – tethered capture, позволяющая снимать в прямо в компьютер с подключенной камеры. Обычно ее используют для студийной съемки и предметной фотографии. Просмотр на большом экране сразу даст понять, тот ли кадр вы хотите, и оценить потенциал редактирования.

Большой экран – хорошо, а ультраширокий – еще лучше!
В июле вместе с компанией LG мы объявили месяц фотографа. Вы пишите авторские посты по теме (личные лайфхаки, истории со съемок, коллекции своих фотографий и так далее), а мы отбираем самые интересные и заплюсованные. В конце месяца на специальной странице откроется голосование: автор лучшего поста получит в подарок UltraWide-монитор.
Хотите тоже принять участие в конкурсе? Вот ультракороткая инструкция:
• Пишите пост на тему месяца (июль — месяц фотографа).
• Ставьте тег Фотография и метку [моё].
• Всё, вы претендент на участие!

Adobe Photoshop

7 удобных программ для обработки фотографий (на компьютере или смартфоне) Длиннопост

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


Если вы только осваиваете Photoshop, начните с фильтров. Допустим, Liquify – пластический фильтр для изменения пропорций лица: от косметических штук до сюрреалистических эффектов вроде огромных глаз и улыбки от уха до уха (во всем стоит знать меру). Затем переходите к уровням освещения Levels и Curves – они могут помочь в сложных местах, где Lightroom не справился. Ну и, конечно, всеми любимая ретушь кожи. Ее можно делать при помощи кистей и точечного удаления в Lightroom, а можно сложнее и незаметнее в Photoshop. На ютьюбе полно обучающих роликов на эту тему – забивайте в поиск, смотрите и сразу пробуйте.


Nik collection

7 удобных программ для обработки фотографий (на компьютере или смартфоне) Длиннопост

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


• Analog Efex Pro – имитирует пленочные фотографии и искажения объективов.

• Color Efex Pro – пакет фильтров и эффектов для цветокоррекции.

• Dfine – подавляет шум и спасает фотографии, снятые при плохом освещении.

• HDR Efex Pro – для обработки HDR-фотографий или имитации этого эффекта.

• Sharpener Pro – усиливает резкость изображений. Отлично работает в тандеме с Dfine.

• Silver Efex Pro – набор инструментов для любителей черно-белых фотографий.

• Viveza – управление цветом с расширенными функциями для изменения контраста и насыщенности.


Nik collection можно использовать самостоятельно или как плагин к Lightroom или Photoshop.

VSCO

7 удобных программ для обработки фотографий (на компьютере или смартфоне) Длиннопост

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


А еще VSCO – это фотосоцсеть, что-то вроде альтернативного инстаграма. Для фотографа очень важна «насмотренность», так что рекомендую периодически смотреть, как другие люди используют ваш любимый фильтр.


Snapseed
7 удобных программ для обработки фотографий (на компьютере или смартфоне) Длиннопост

Snapseed — это «фотошоп» для смартфонов, который можно смело поставить в один ряд с профессиональными фоторедакторами. При этом он не сжимает фото, в отличие от других мобильных программ. То есть экспортировать картинку после редактуры можно в полном размере.


Чем еще хорош Snapseed:

• открывает как JPG-, так и RAW-файлы;

• позволяет создавать и сохранять свои стили;

• корректирует отдельные фрагменты. Допустим, вам надо осветлить темный угол, убрать пятно на футболке или нежелательного соседа с групповой фотографии;

• ретуширует лица – добавляет фокусировку на глаза или сглаживает кожу;

• умеет менять расположение людей на портретах.


На самом деле, возможностей уйма. В Snapseed есть раздел «Полезная информация» – настоящий учебник внутри программы. Там много подсказок и полезных советов по работе с приложением и фотосъемке.

Lightroom (мобильная версия)

7 удобных программ для обработки фотографий (на компьютере или смартфоне) Длиннопост

Адаптированная под смартфон версия программы. Фотографировать, обрабатывать и сохранять снимки можно бесплатно. Но часть функций доступна только по подписке на Creative Cloud (для любопытных есть бесплатный период 30 дней).

Возможности Lightroom без подписки:

• встроенная в приложение камера, позволяющая снимать в RAW;

• готовые пресеты, они же фильтры, для фото, которые можно применять во время съемки. Я не фанат, но некоторые пользуются, особенно если нужно что-то быстро отснять;

• откат к оригиналу снимка на любом этапе обработки;

• потоковая обработка фото при одном освещении (экономит кучу сил и времени).


Что дает Creative Cloud:

• синхронизировать библиотеки изображений между компьютером и смартфоном;

• сочетать работу с другими редакторами Adobe. Например, после цветокоррекции в Lightroom фотографии можно доработать в Illustrator, добавив инфографику;

• делать более точную и детальную цветокоррекцию в ручном режиме;

• использовать smart preview — облегченную версию RAW-файлов: загружаете их с компьютера, а редактируете уже со смартфона.


Этих программ вполне достаточно для воплощения какого-нибудь фотопроекта и, главное, для того, чтобы почувствовать себя не просто «человеком с камерой», а настоящим фотографом.

На всякий случай напоминаем для тех, кто пролистал материал и пропустил важное (вот зря так делаете!). Вы можете выиграть классный монитор LG UltraWide 34WK95U в рамках месяца фотографии на Пикабу.


Вот такой:

7 удобных программ для обработки фотографий (на компьютере или смартфоне) Длиннопост

Для этого нужно в июле написать авторский пост на Пикабу по теме месяца, поставить тег «фотография» и метку [моё]. Лучшие посты попадут в голосование, а дальше судьба монитора – в руках пикабушников и пикабушниц.

Показать полностью 8
Отличная работа, все прочитано!