Рубрика «Блог компании SkillFactory»

Автостопом к ответу жизни, Вселенной и всего такого - 1

10 октября 2020 года исполнилось 10 лет с первого «Дня 42», потому что 1010102 = 42. Сегодня делимся переводом поста об этом удивительном числе. Автор — профессор компьютерных наук Лилльского университета управления Жан Поль Делахайе, также написавший книгу «Formal methods in artificial intelligence», которая вышла еще в 1987 году. Он рассказывает о некоторых аллюзиях на 42, об этом числе в математических последовательностях и, конечно, о 42 в контексте задачи о сумме трех кубов. Подробности под катом.
Читать полностью »

Pysa: как избежать проблем безопасности в коде Python - 1


7 августа Facebook представил Pysa — ориентированный на безопасность статический анализатор с открытым исходным кодом, помогающий работать с миллионами строк в Instagram. Раскрыты ограничения, затронуты проектные решения и, конечно, средства, помогающие избегать ложных положительных срабатываний. Показана ситуация, когда Pysa наиболее полезен, и код, в котором анализатор неприменим. Подробности из блога Facebook Engineering под катом.
Читать полностью »

Мой опыт разработки игры «Змейка» на Brython

image

«Погоди, что?» – думаю, большинство читателей отреагирует на заголовок именно так.

В смысле «просто использовать Python в браузере»?

Все знают, что в браузерах работает только JavaScript.

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

Да, это Python!

А теперь, давайте поговорим о том, как и насколько хорошо это работает, а также обсудим ряд других альтернатив JavaScript.

Знакомство с Brython

Brython — это реализация Python3, написанная на JavaScript, которая позволяет писать код на Python для веба.

По сути, это JavaScript-библиотека, которая преобразует ваш код на Python в эквивалентный JS и исполняет его в рантайме.

Поскольку написание браузерного кода на Python звучит круто, я решил попробовать.
Читать полностью »

Как сделать крутые, полностью интерактивные графики с помощью одной строки Python

image

Когнитивное искажение о невозвратных затратах (sunk cost fallacy) является одним из многих вредных когнитивных предубеждений, жертвой которых становятся люди. Это относится к нашей тенденции продолжать посвящать время и ресурсы проигранному делу, потому что мы уже потратили — утонули — так много времени в погоне. Заблуждение о заниженной стоимости применимо к тому, чтобы оставаться на плохой работе дольше, чем мы должны, рабски работать над проектом, даже когда ясно, что он не будет работать, и да, продолжать использовать утомительную, устаревшую библиотеку построения графиков — matplotlib — когда существуют более эффективные, интерактивные и более привлекательные альтернативы.

За последние несколько месяцев я понял, что единственная причина, по которой я использую matplotlib, — это сотни часов, которые я потратил на изучение сложного синтаксиса. Эти сложности приводят к часам разочарования, выясняя на StackOverflow, как форматировать даты или добавить вторую ось Y. К счастью, это прекрасное время для построения графиков в Python, и после изучения вариантов, явным победителем — с точки зрения простоты использования, документации и функциональности — является библиотека plotly. В этой статье мы погрузимся прямо в plotly, изучая, как создавать лучшие графики за меньшее время — часто с помощью одной строки кода.
Читать полностью »

image

Я из Эстонии, и мы декларируем налоги онлайн с 2001 года. Мы используем цифровую идентификацию и подпись с 2002 года. Мы голосуем онлайн с 2005 года. На сегодня у нас бóльший спектр государственных услуг чем вы можете представить: образование, полиция, правосудие, основание компаний, подача заявок на пособия, поиск вашей медицинской карты или оспаривание парковочного талона — это всё делается онлайн. Проще сказать вам, какие три вещи мы всё ещё не можем сделать онлайн. Мы должны прийти, чтобы получить удостоверение личности, чтобы вступить в брак или развестись, или продать недвижимость. Вот и всё. Я не схожу с ума, когда говорю вам, что каждый год я не могу дождаться, чтобы начать заполнять свою налоговую декларацию.

Поскольку всё, что мне нужно сделать, — это, сидя на диване с мобильным телефоном, пролистать несколько страниц с уже готовыми данными по доходам и вычетам и нажать на «Подтвердить». Через три минуты я уже вижу сумму налоговых возвратов. Это очень приятное чувство. Ни налоговых консультантов, ни сбора квитанций, никаких подсчётов. Я в глаза не видела государственную канцелярию около семи лет.

Собираем think tank на тему governmet as a service в телеграм-канале @GaaS
Читать полностью »

image

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

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

Первый пропеллер совершает 1/10 часть вращения во время экспозиции:

image

Подписывайтесь на каналы:
@Ontol — самые интересные тексты/видео всех времен и народов, влияющие на картину мира
@META LEARNING — где я делюсь своими самыми полезными находками про образование и роль ИТ/игр в образовании (а так же мыслями на эту тему Антона Макаренко, Сеймура Пейперта, Пола Грэма, Джозефа Ликлайдера, Алана Кея)

Читать полностью »

За последние 3 года я рассмотрел более 1000 pull (merge) request’ов. За это время я многому научился — в основном тому, как не проверять код, как сделать процесс менее болезненным, что делает код хорошего качества и так далее.

Pull request должен делать только одну вещь

Это самая важная вещь, на которую стоит обратить внимание.

Делая code review, вы должны держать в голове много вещей. «Что за этим стоит?», «Как это согласуется с остальной частью кода?» и «Будет ли это хорошо работать?» Вот лишь некоторые из вопросов, на которые нужно ответить. Таким образом, когда у вас есть pull request, который пытается решить одну проблему, на некоторые из этих вопросов легче ответить.

Другим важным аспектом является размер pull request’а. Большие запросы требуют экспоненциально больше времени для рассмотрения. И когда я узнаю, что мне нужно потратить более 15 минут на запрос, вам придется подождать до пары часов.
Читать полностью »

image

Взаимосвязь технологий. Полная версия результатов опроса тут.

Краткие выводы

  • 65 000 разработчиков было опрошено.
  • Python спустился с 2 на 3 место среди самых любимых технологий, будучи побитый TypeScript. Rust на первом месте пять лет подряд.
  • Инженеры по надежности сайта и специалисты DevOps остаются среди самых высокооплачиваемых. 80% респондентов считают, что DevOps важен, а 44% работают в организациях с хотя бы одним выделенным сотрудником DevOps.
  • 52% респондентов думают «Привет, старина», когда ищут в сети решение для кодирования, и обнаруживают, что первая ссылка на результат фиолетового цвета, потому что они уже посетили эту ссылку.
  • 90% респондентов ответили, что посещают Stack Overflow, когда сталкиваются с трудностями и застревают в написании кода.
  • 0,3% респондентов никогда не посещали Stack Overflow до начала этого опроса.
  • Респонденты из Австралии сообщили о самом высоком среднем уровне опыта написания кода (16,9 лет), за ними следуют разработчики из Великобритании и США.
  • Респонденты из Соединенных Штатов и Соединенного Королевства показывают самый высокий средний возраст — 33,7 и 33,1 года соответственно.
  • Более 40% респондентов сообщили, что они являются членами других сообществ онлайн-разработчиков, помимо Stack Overflow.
  • Более 75% разработчиков работают сверхурочно, по крайней мере, время от времени — один-два дня в квартал. 25% работают сверхурочно 1-2 дня в неделю и более.

Некоторые любопытные результаты опросов.
Читать полностью »

Введение

SSH-agent является частью OpenSSH. В этом посте я объясню, что такое агент, как его использовать и как он работает, чтобы сохранить ваши ключи в безопасности. Я также опишу переадресацию агента и то, как она работает. Я помогу вам снизить риск при использовании переадресации агента и поделюсь альтернативой переадресации агента, которую вы можете использовать при доступе к своим внутренним хостам через bastion’ы.

Что такое SSH-agent

ssh-agent — это менеджер ключей для SSH. Он хранит ваши ключи и сертификаты в памяти, незашифрованные и готовые к использованию ssh. Это избавляет вас от необходимости вводить пароль каждый раз, когда вы подключаетесь к серверу. Он работает в фоновом режиме в вашей системе, отдельно от ssh, и обычно запускается при первом запуске ssh.

Агент SSH хранит секретные ключи в безопасности из-за того, что он не делает:

  • Он не записывает никакой информации о ключах на диск.
  • Он не позволяет экспортировать ваши личные ключи.

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

Но если агент может только подписывать сообщения, как SSH шифрует и расшифровывает трафик?

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

image

11 апреля 2006

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

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

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

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

И он садится писать код.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js