Search
Write a publication
Pull to refresh
119
0
Светлана Клочкова @swetlanaspb

Разработчик

Send message

Сила и красота декораторов

Reading time5 min
Views83K
Одним из самых сложных для понимания и осознания элементов языка является декоратор, хотя по сути это очень простая вещь, доступная для понимания даже начинающему программисту. Новых Эверестов я не открываю, а лишь предлагаю краткий обзор возможностей и несколько типичных примеров использования. Этакий короткий экскурс в метапрограммирование на питоне.

Upd 1: изменил несколько категоричное утверждение о несходстве паттерна Декоратор и одноимённой языковой конструкции на более мягкое.

Читать дальше →

Интересности и полезности python

Reading time6 min
Views41K
Я уже несколько лет программирую на python, однако, недавно осознал, что множество полезных приёмов и интересных моментов прошли мимо меня, возможно, я не один такой, поэтому решил перечислить их здесь, надеюсь, данные приёмы пригодятся кому-то в работе или побудят познакомиться с этим языком поближе.
Читать дальше →

Некоторые возможности Python о которых вы возможно не знали

Reading time8 min
Views116K

Предисловие


Я очень полюбил Python после того, как прочитал книгу Марка Лутца «Изучаем Python». Язык очень красив, на нем приятно писать и выражать собственные идеи. Большое количество интерпретаторов и компиляторов, расширений, модулей и фреймворков говорит о том, что сообщество очень активно и язык развивается. В процессе изучения языка у меня появилось много вопросов, которые я тщательно гуглил и старался понять каждую непонятую мной конструкцию. Об этом мы и поговорим с вами в этой статье, статья ориентирована на начинающего Python разработчика.

Подробности

Создание архитектуры программы или как проектировать табуретку

Reading time25 min
Views709K
Взявшись за написание небольшого, но реального и растущего проекта, мы «на собственной шкуре» убедились, насколько важно то, чтобы программа не только хорошо работала, но и была хорошо организована. Не верьте, что продуманная архитектура нужна только большим проектам (просто для больших проектов «смертельность» отсутствия архитектуры очевидна). Сложность, как правило, растет гораздо быстрее размеров программы. И если не позаботиться об этом заранее, то довольно быстро наступает момент, когда ты перестаешь ее контролировать. Правильная архитектура экономит очень много сил, времени и денег. А нередко вообще определяет то, выживет ваш проект или нет. И даже если речь идет всего лишь о «построении табуретки» все равно вначале очень полезно ее спроектировать.

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

Хотелось разобраться, что вообще в себя включает процесс создания архитектуры программы, какие задачи при этом решаются, какие критерии используются (чтобы правила и принципы перестали быть всего лишь догмами, а стали бы понятны их логика и назначение). Тогда будет понятнее и какие инструменты лучше использовать в том или ином случае.

Данная статья является попыткой ответить на эти вопросы хотя бы в первом приближении.
Читать дальше →

Структуры данных. Неформальный гайд

Reading time6 min
Views170K


Конечно, можно быть успешным программистом и без сакрального знания структур данных, однако они совершенно незаменимы в некоторых приложениях. Например, когда нужно вычислить кратчайший путь между двумя точками на карте, или найти имя в телефонной книжке, содержащей, скажем, миллион записей. Не говоря уже о том, что структуры данных постоянно используются в спортивном программировании. Рассмотрим некоторые из них более подробно.
Читать дальше →

Использование memcached и Redis в высоконагруженных проектах

Reading time14 min
Views104K


Вячеслав Москаленко (Ленвендо)


Я буду рассказывать вам об инструментах высоконагруженных проектов, кэшировании, в частности, о memcached, Redis-е и о сервисе очередей RabbitMQ или в простонародье «кролике».

В первой части доклада я расскажу о том, что такое memcached — базовые понятия, что такое Redis, о его особенностях, и чем эти два сервиса отличаются. Расскажу о практическом применении в наших проектах обоих сервисов.

А во второй части я буду рассказывать о брокере сообщений RabbitMQ, об основных понятиях, которые есть в «кролике», о том, как работает маршрутизация сообщений между продюсерами и консьюмерами. Также расскажу о практическом применении в наших проектах данного брокера сообщений.

О кэшировании. Думаю, многие из вас хоть что-то кэшировали в своих веб-проектах, поэтому все будет очень просто и доступно.

Порядок разрешения методов в Python

Reading time15 min
Views191K
В этой заметке рассматривается алгоритм MRO С3 и некоторые специфические проблемы множественного наследования. Хотя и алгоритм и проблемы не ограничиваются рамками одного языка, я акцентировал своё внимание на Питоне. В конце приведён список полезных ссылок по данной теме.
Читать дальше →

Парсинг JSON — это минное поле

Reading time25 min
Views164K
image

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

Читать дальше →

Сокеты в Python для начинающих

Reading time4 min
Views592K

Предисловие


В далеком для меня 2010 году я писал статью для начинающих про сокеты в Python. Сейчас этот блог канул в небытие, но статья мне показалась довольно полезной. Статью нашел на флешке в либровском документе, так что это не кросспост, не копипаст — в интернете ее нигде нет.



Что это


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

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

Читать дальше →

ПО для машинного обучения на Python

Reading time7 min
Views38K


Сегодня существует большое количество программных инструментов для создания моделей Machine Learning. Первые такие инструменты формировались в среде ученых и статистиков, где популярны языки R и Python, исторически сложились экосистемы для обработки, анализа и визуализации данных именно на этих языках, хотя определенные библиотеки машинного обучения есть и для Java, Lua, С++. При этом интерпретируемые языки программирования существенно медленнее компилируемых, поэтому на интерпретируемом языке описывают подготовку данных и структуру моделей, а основные вычисления проводят на компилируемом языке.

В данном посте мы расскажем преимущественно о библиотеках, имеющих реализацию на Python, поскольку этот язык обладает большим количеством пакетов для интеграции в разного рода сервисы и системы, а также для написания различных информационных систем. Материал содержит общее описание известных библиотек и будет полезен прежде всего тем, кто начинает изучать область ML и хочет примерно понимать, где искать реализации тех или иных методов.
Читать дальше →

Что почитать в июле: 19 книжных новинок для диджитал-специалистов

Reading time5 min
Views19K
Подборка книжных новинок ведущих издательств России от редакции Нетологии. Обложки кликабельные.


Программирование, data science и математика


«Регулярные выражения», Джеффри Фридл


Читать дальше →

Что, если пришельцы окажутся машинами с искусственным интеллектом?

Reading time9 min
Views23K

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



Галактика «маленькое сомбреро», или NGC 7814

У нас есть проблема. В галактике возрастом 10 млрд лет должно быть полно возможностей для того, чтобы хотя бы один вид вырвался из своей помойки и расселился по звёздам, заполнив все ниши. То, что эти существа не пришли к нам, приводит нас к парадоксу Ферми – если жизнь не является невероятно редким явлением, то где все? Попытки сканировать небеса в поисках признаков разумной жизни ничем не увенчались, что только усиливает парадокс. Возможно, виноваты бескрайние бездны межзвёздного пространства и узкие временные рамки, в которых существуют способные общаться существа, находящиеся на достаточно небольшом расстоянии друг от друга, чтобы быть услышанными. Разум может быть похожим на мелкие судёнышки, проходящие в ночи в огромном океане. Встречи лицом к лицу могут оказаться чрезвычайно необычным явлением.
Читать дальше →

11 кругов ада для тех, кому не хватает опыта на новой работе

Reading time12 min
Views125K
image
Eugene Smith, «Country Doctor» («Сельский доктор», 1948 г.)

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

Уже только ленивый из числа всевозможных коучей и экспертов по рынку труда не протрубил о том, что на долю нашего поколения выпала необыкновенная участь: уже скоро многократная смена деятельности в жизни станет нормой. Мол, мир вокруг так быстро меняется, а технологии ему в этом – столь верное подспорье, что мы больше не будем сидеть всю жизнь на одной работе, нам всё время придётся приспосабливаться к изменяющемуся миру, а значит, придётся постоянно учиться чему-то новому. И вроде бы, те же технологии делают процесс обучения легче: открываешь новую вкладку браузера, и тысячи онлайн-курсов по всевозможным предметам – к твоим услугам.

И это всё правда. И я даже скажу категорично: обучение новым видам деятельности и вообще сам процесс постижения нового – это очевидное благо.

Но теперь представьте себе такую ситуацию: вы проходите онлайн-курсы, читаете какие-то учебники, ходите на воркшопы, и в какой-то момент оказываетесь на заветной позиции (сменили работу, получили повышение или открыли своё дело); вы смогли убедить других людей в своей годности, оказались среди профессионалов, и теперь вам нужно действовать… и тут руки начинают дрожать, глаза и мысли – метаться: вы не имеете ни малейшего представления, что именно делать – из-за нехватки опыта. Иными словами, вы – выскочка, и вы это поняли.
Читать дальше →

Что такое депрессия и почему она возникает всё чаще?

Reading time6 min
Views27K

Это заболевание почти ежедневно попадает на страницы новостей. Джулиет Джовит задаёт вопросы о том, что вызывает депрессию, кто подвержен ей и как с ней лучше всего справиться


image

Что такое депрессия?


Люди, страдающие депрессией, не обязательно ходят повсюду с вытянувшимися лицами, или плачут при первой возможности. На государственном сайте США, посвящённом психическому здоровью, MentalHealth.gov, эта болезнь определяется, как «потеря интереса к важным аспектам жизни». Среди симптомов – избыток или недостаток еды и сна; отдаление от людей и обычных занятий; недостаток энергии; ощущение отсутствия смысла, онемение; необычно сильная сбивчивость и забывчивость; ощущение, что ты на грани, зол, расстроен, обеспокоен или испуган; мысли о причинении вреда себе или другим.

Интуитивное описание цитируется британским фондом Mind: «Это начинается, как грусть, потом я чувствую, что отключаюсь, и всё меньше справляюсь с реальностью. В итоге я чувствую онемение и пустоту».
Читать дальше →

Насколько хорошо ты знаешь bash?

Reading time4 min
Views39K

Пользуешься командным интерпретатором каждый день? Готов решить несколько логических задачек и узнать что-то новое? Добро пожаловать под кат.
Читать дальше →

Книга «Глубокое обучение на Python»

Reading time6 min
Views40K
imageГлубокое обучение — Deep learning — это набор алгоритмов машинного обучения, которые моделируют высокоуровневые абстракции в данных, используя архитектуры, состоящие из множества нелинейных преобразований. Согласитесь, эта фраза звучит угрожающе. Но всё не так страшно, если о глубоком обучении рассказывает Франсуа Шолле, который создал Keras — самую мощную библиотеку для работы с нейронными сетями. Познакомьтесь с глубоким обучением на практических примерах из самых разнообразных областей. Книга делится на две части: в первой даны теоретические основы, вторая посвящена решению конкретных задач. Это позволит вам не только разобраться в основах DL, но и научиться использовать новые возможности на практике.

Обучение — это путешествие длиной в жизнь, особенно в области искусственного интеллекта, где неизвестностей гораздо больше, чем определенности. Внутри приведен отрывок «Исследование и мониторинг моделей глубокого обучения с использованием обратных вызовов Keras и TensorBoard».
Читать дальше →

Основы Kubernetes

Reading time13 min
Views930K
В этой публикации я хотел рассказать об интересной, но незаслуженно мало описанной на Хабре, системе управления контейнерами Kubernetes.

image

Что такое Kubernetes?


Kubernetes является проектом с открытым исходным кодом, предназначенным для управления кластером контейнеров Linux как единой системой. Kubernetes управляет и запускает контейнеры Docker на большом количестве хостов, а так же обеспечивает совместное размещение и репликацию большого количества контейнеров. Проект был начат Google и теперь поддерживается многими компаниями, среди которых Microsoft, RedHat, IBM и Docker.
Читать дальше →

Марвин Мински «The Emotion Machine»: Глава 5 «Обдумывание»

Reading time10 min
Views2.3K
Как привнести «человеческое» в технологии и как технологии помогают понять и улучшить и масштабировать «человеческое»?

В этом нам поможет суровый Марвин Мински, который своим беспощадным разумом анализирует чувства, эмоции, боль, влюбленность и сознание.

image


§5-3. Обдумывание


image


Когда Джоан выбирала что ей делать – перебегать дорогу вперёд или убежать назад, ей нужно было выбрать одно из следующих правил:

Если ты на проезжей части, То убеги с неё
Если ты на проезжей части, То быстро перебеги её


Однако, для того, чтобы Джоан приняла эти решения, ей необходим какой-то механизм, который бы предсказывал и сравнивал возможные варианты разрешения этой ситуации. Что помогает Джоан делать подобные предсказания? Простейший способ – иметь при себе коллекцию трёхсоставных правил «Если –> То –> В таком случае», в котором каждое Если описывает конкретную ситуацию, каждое То описывает конкретное действие, а каждое Затем описывает возможный результат проделанной работы.

image


Если ты находишься на проезжей части, То убеги назад, В таком случае попробуй перейти дорогу немного позже
Если ты находишься на проезжей части, То перейди её, В таком случае ты прибудешь гораздо раньше
Если ты находишься на проезжей части, То перейди, В таком случае ты можешь получить раны

Читать дальше →

Учимся писать многопоточные и многопроцессные приложения на Python

Reading time6 min
Views421K
Эта статья не для матёрых укротителей Python’а, для которых распутать этот клубок змей — детская забава, а скорее поверхностный обзор многопоточных возможностей для недавно подсевших на питон.

К сожалению по теме многопоточности в Python не так уж много материала на русском языке, а питонеры, которые ничего не слышали, например, про GIL, мне стали попадаться с завидной регулярностью. В этой статье я постараюсь описать самые основные возможности многопоточного питона, расскажу что же такое GIL и как с ним (или без него) жить и многое другое.
Читать дальше →

Марвин Мински «The Emotion Machine»: Глава 5 «Уровни Психической Деятельности»

Reading time10 min
Views2.9K
Во время хайпа по цифровой экономике и ***чейнам самое время обратить внимание, как привнести «человеческое» в технологии и как технологии помогают понять и улучшить и масштабировать «человеческое». В этом нам поможет суровый Марвин Мински, который своим беспощадным разумом анализирует чувства, эмоции, боль, влюбленности и сознание.

image

Глава 5. Уровни Психической Деятельности


«Мы, очевидно, являемся уникальным видом благодаря способности создавать символы, а также способности контролировать условия нашего существования, используя эти символы. Наша способность представлять и моделировать реальность подразумевает, что мы можем приблизительно оценивать различные порядки (разрядности) бытия и… дает нам ощущение управления собственным опытом».
— Хайнц Паджелс, «Мечты Разума» (The Dreams of Reason)
Ни один человек не обладает силой вола, скрытностью кошки или скоростью антилопы, но наш вид превосходит всех остальных в способности изобретать новые способы мыслить. Мы изготавливаем оружие, одежду и жилища. Мы постоянно развиваем новые формы искусства. Мы непревзойдены в создании новых социальных соглашений, создании сложных законов, которые изначально применяем, а затем ищем всевозможные способы уклониться от них.

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

image

Начиная с просты инстинктивных реакций, каждый последующий уровень строится на предыдущем уровне до тех пор, пока они не будут охватывать процессы, которые задействуют наши самые высокие идеи и личные цели. Для того, чтобы понять зачем нам нужно столь много уровней, давайте вновь рассмотрим пример, который был введён в §4-2.
Читать дальше →

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity