Pull to refresh
0
@Lasciviousread⁠-⁠only

User

Send message

Переменные окружения для Python проектов

Reading time4 min
Views166K

Переменные окружения для Python проектов


При разработки web-приложения или бота мы часто имеем дело с какой-либо секретной информацией, различными токенами и паролями (API-ключами, секретами веб-форм). "Хардкодить" эту информацию, а тем более сохранять в публично доступной системе контроля версий это очень плохая идея.


# Плохая практика. Не делай так.
API_KEY = 'very_secret_password'

Конфигурационные файлы


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


# Уже лучше.
from config import API_KEY
app = Flask(__name__)
app.config['API_KEY'] = API_KEY

Переменные окружения


Более продвинутый подход, это использование переменных окружения. Переменные окружения это именованные переменные, содержащие текстовую информацию, которую могут использовать запускаемые программы. Например, чтобы запустить flask-приложение, вначале нужно указать в переменной окружения FLASK_APP имя нашего приложения:


$ export FLASK_APP=hello.py
$ flask run
 * Running on http://127.0.0.1:5000/
Читать дальше →
Total votes 23: ↑19 and ↓4+15
Comments12

Век живи — век учись. Часть 5. Самообразование: возьми себя в руки

Reading time11 min
Views68K
А вам слабо в свои 25-30-35-40-45 сесть за обучение? Не корпоративное, не оплаченное по тарифу «контора платит», не вынужденное и когда-то недополученное высшее, а самостоятельное? Сесть за свой стол с выбранными вами книгами и учебниками, перед лицом строгого самого себя и освоить то, что вам нужно или так хотелось освоить, что вот уже просто сил нет жить без этих знаний? Это, пожалуй, один из самых сложных интеллектуальных процессов взрослой жизни: мозги скрипят, времени мало, всё отвлекает, да и мотивация не всегда однозначная. Самообразование — важный элемент жизни абсолютно любого профессионала, но оно сопряжено с определёнными трудностями. Давайте разбираться, как лучше организовать этот процесс, чтобы не загнать себя и получить результат.



Это последняя часть цикла «Век живи — век учись»:

Часть 1. Школа и профориентация
Часть 2. Вуз
Часть 3. Дополнительное образование
Часть 4. Образование внутри работы
Часть 5. Самообразование

Делитесь своим опытом в комментариях — может быть, благодаря стараниям команды RUVDS и читателей Хабра обучение окажется немного осознаннее, правильнее и плодотворнее. 
Читать дальше →
Total votes 49: ↑46 and ↓3+43
Comments27

Подборка рабочих примеров обработки данных

Reading time4 min
Views13K
Привет, читатель.

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

Схема работы с текущим постом унаследуется от моего поста про лучшие блокноты по ML и DS, а именно — сохранил в закладки → передал коллеге.

+ бонус в конце статьи — крутой курс от ФПМИ МФТИ.

image

Итак, давайте приступим.

Подборка датасетов с рабочими примерами обработки данных:


Suicide Rates Overview 1985 to 2016 — сравнение социально-экономической информации с показателями самоубийств по годам и странам.

Примеры обработки:

Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments0

Нативная разработка, React Native и Flutter: критерии выбора

Reading time8 min
Views34K
Уже на стадии проектирования мобильного приложения важно понимать, какой язык выгоднее использовать для конкретного проекта. Наряду с нативной разработкой (например, для iOS — Swift или Objective-C, для Android – Java или Kotlin), используются кроссплатформенные фреймворки, такие как React Native и Flutter. Мы в SimbirSoft предлагаем несколько критериев, которые помогут в выборе как бизнесу, так и мобильному разработчику.

Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments26

Kaggle Mercedes и кросс-валидация

Reading time18 min
Views61K
image

Всем привет, в этом посте я расскажу о том, как мне удалось занять 11 место в конкурсе от компании Мерседес на kaggle, который можно охарактеризовать как лидера по количеству участников и по эпичности shake-up. Здесь можно ознакомиться с моим решением, там же ссылка на github, здесь можно посмотреть презентацию моего решения в Yandex.

В этом посте пойдет речь о том, как студент консерватории попал в data science, стал призером двух подряд kaggle-соревнований, и каким образом методы математической статистики помогают не переобучиться на публичный лидерборд.

Начну я с того, что немного расскажу о задаче и о том, почему я взялся ее решать. Должен сказать, что в data science я человек новый. Лет 7 назад я закончил Физический Факультет СПбГУ и с тех пор занимался тем, что получал музыкальное образование. Идея немного размять мозг и вернуться к техническим задачам впервые посетила меня примерно два года назад, на тот момент я уже работал в оркестре Московской Филармонии и учился на 3 курсе в Консерватории. Начал я с того, что вооружившись книгой Страуструпа стал осваивать C++. Далее были конечно же разные онлайн курсы и примерно год назад я стал склоняться к мысли о том, что Data Science — это пожалуй именно то, чем я хотел бы заниматься в IT. Мое “образование” в Data Science — это курс от Яндекса и Вышки на курсере, несколько курсов из специализации МФТИ на курсере и конечно же постоянное саморазвитие в соревнованиях.
Читать дальше →
Total votes 61: ↑58 and ↓3+55
Comments16

Открытый курс машинного обучения. Тема 4. Линейные модели классификации и регрессии

Reading time30 min
Views535K

Всем привет!


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


Пример такой задачи – это соревнование Kaggle Inclass по идентификации пользователя в Интернете по его последовательности переходов по сайтам.


UPD 01.2022: С февраля 2022 г. ML-курс ODS на русском возрождается под руководством Петра Ермакова couatl. Для русскоязычной аудитории это предпочтительный вариант (c этими статьями на Хабре – в подкрепление), англоговорящим рекомендуется mlcourse.ai в режиме самостоятельного прохождения.


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

Читать дальше →
Total votes 56: ↑53 and ↓3+50
Comments42

Поле загрузки файлов, которое мы заслужили

Reading time10 min
Views126K
Все течет, все меняется, но только input[type=file] как портил нервы всем начинающим веб-разработчикам, так и продолжает это делать до сих пор. Вспомните себя N лет назад, когда вы только начинали постигать азы создания веб-сайтов. Молодой и неопытный, вы искренне удивлялись, когда кнопка выбора файла напрочь отказывалась менять цвет своего фона на ваш любимый персиковый. Именно в тот момент вы впервые столкнулись с этим несокрушимым айсбергом под названием «Загрузка файлов», который и по сей день продолжает «топить» начинающих веб-разработчиков.

На примере создания поля для загрузки файлов я покажу вам, как правильно прятать input[type=file], настраивать фокус на объекте, у которого фокуса быть не может, обрабатывать события Drag-and-Drop и отправлять файлы через AJAX. А также я познакомлю вас с парой браузерных багов и путями их обхода. Статья написана для новичков, но в некоторых моментах может быть полезна и занимательна даже для матерых разработчиков.
Читать дальше →
Total votes 40: ↑36 and ↓4+32
Comments19

Руководство по материалам электротехники для всех. Часть 6

Reading time9 min
Views39K
Продолжение руководства по материалам электротехники. В этой части продолжаем разбирать диэлектрики полностью синтетические по происхождению. Тоесть всем известные пластики. В этой части: карболит, гетинакс, текстолит.


Добро пожаловать под кат (ТРАФИК)
узнать о материалах
Total votes 49: ↑46 and ↓3+43
Comments34

Amazon запустила свою социальную сеть, и у неё есть перспективы

Reading time6 min
Views20K
Такое ощущение, что Джефф Безос вообще не спит. У его компании каждую неделю появляются новые сумасшедшие идеи. То она заявляет патент на гигантские «ульи» для дронов в городах, то начинает проектировать летающие дирижабли для доставки товаров. А на днях магазин запустил новую соцсеть Spark – что-то вроде гибрида Pinterest и Instagram. На Amazon приходится 55% всех покупок через нас в Америке, поэтому мы пристально следим за развитием этой компании. На наш взгляд, соцсеть Amazon не только станет финансово успешной, она – симптом и катализатор нового тренда.



Если вы активно сидите в Фейсбуке и Инстаграме, вы могли заметить, как эти соцсети постепенно начинают превращаться в магазин. Они делают всё, чтобы компании продавали и рекламировали товары через их платформу. Но Spark – один из случаев обратного процесса, когда магазин хочет превратиться в соцсеть.


Читать дальше →
Total votes 23: ↑19 and ↓4+15
Comments22

Нейрогенез: физиологические основы и перспективы регуляции в терапевтических целях

Reading time26 min
Views62K
Нейрогенез — это многоступенчатый процесс образования новых нервных клеток в зрелой центральной нервной системе (ЦНС), являющийся ее адаптивной функцией.

image

К положительным стимулам, т.е. стимулам, способствующим процессу нейрогенеза, можно отнести:

  • процесс обучения,
  • экологическое окружение (благоприятная среда),
  • физические упражнения (например, бег),
  • антидепрессанты,
  • эстрогены и т.д.

К отрицательным —

  • стресс,
  • чрезмерную активность глутамата в ЦНС,
  • воздействие глюкортикоидов (кортизол — гормон стресса),
  • старение и другие.

На протяжении многих лет в нейробиологии существовали центральные догмы, которые не допускали самой возможности нейрогенеза.
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments9

Побеждая «математическое чудище»: дело не в числах, а в том, чтобы учиться думать

Reading time8 min
Views25K
Недавно по сети пробежал твит, содержание которого было следующим: в одной из кулинарий Питтсбурга появилась загадочная табличка со следующим обращением к посетителям: «Пожалуйста, откажитесь от обсуждения математики в очереди к кассе».

image

Жители Питтсбурга не смогли найти нашумевший магазин, потому что на самом деле он находится в Коннектикуте. Впрочем, это не помешало юмористам принять новость за чистую монету и поверить, что это настоящая табличка, якобы действительно помещенная в заведении кассиром, которому надоело, что какие-то всезнайки спорят с ним по поводу итоговой суммы. А так все и было?

На самом деле нет, ничего подобного (в качестве подтверждения можете почитать про эту историю). Но в целом это объяснение вполне правдоподобно. Кассиры в наши дни не умеют делать расчеты в уме, не так ли?

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

Это утверждение, опять же, неверно. Неверно, но популярно? Что ж, вполне может быть.
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments52

Information

Rating
Does not participate
Registered
Activity