It is new selection of tips and tricks about Python and programming from my Telegram-channel @pythonetc.
Previous publications:
It is new selection of tips and tricks about Python and programming from my Telegram-channel @pythonetc.
Previous publications:
Это восьмая подборка советов про Python и программирование из моего авторского канала @pythonetc.
Предыдущие подборки:
У нас в Veeam есть образовательный проект с лаконичным названием Veeam Academy. Посвящён он практике разработки на С#. Если не вдаваться в детали, то суть его такова: мы берём студентов-старшекурсников и за три месяца приводим их сугубо теоретические институтские знания в соответствие с окружающей действительностью. Делается это как с помощью лекций, где им раскрывают практический смысл той скучной теории, которую им успели дать в ВУЗе, так и с помощью общего проекта, разработкой которого они занимаются на протяжении всего обучения.
На пути к первому запуску Академии нас ожидало много интересных проблем, как чисто организационных, так и юридических. (Если кто не знал, обучение — это лицензируемая деятельность, поэтому нельзя просто так взять и начать кого-то чему-то учить, даже если очень сильно хочется, чтобы не увеличить к себе интерес контролирующих органов.)
Но откуда студенты получают те самые практические навыки, спросите вы? Ответ кроется в наших разработчиках, которые на совершенно добровольных началах выступают в роли консультантов, делают code review для ребят и просто делятся своим опытом. Причём участвуют в этой деятельности исключительно senior девелоперы. Вот с ними-то (спустя уже 3 выпуска из академии) мы и решили побеседовать, чтобы узнать:
Мы сделали небольшую серию видео-интервью Дудь-стайл, а тут будет небольшая текстовая выжимка из самых интересных ответов. Сейчас опубликованы два полных интервью (они есть в статье), но скоро будут выложены ещё три.
Хотя за окном еще горы снега и мороз, тем не менее многие родители (а иногда и сами подростки) начинают задумываться, чем занять чадо во время длинных летних каникул. Если вы считаете, что летом дети расслабляются настолько сильно, что осенью им крайне тяжело включиться в учебный процесс, то в таких ситуациях я всегда советую отправлять ребенка в летний обучающий лагерь.
Моя работа связана с иммиграционным бизнесом, поэтому довольно часто моей компании приходится подбирать обучающие программы за границей. И в последние несколько лет самыми популярными стали программы для обучения программированию и профессиям, которые с ним связаны.
С помощью подобных лагерей ребенок может тренировать английский и изучить основы востребованной профессии. Как по мне, отличный способ разнообразить каникулы с пользой.
Я собрал несколько интересных предложений на лето 2019 года от различных колледжей и центров обучения для детей от 10 до 18 лет как в Европе и Великобритании, так и в Америке. Надеюсь, они будут полезными для вас и вашего ребенка. Возможно, на первый взгляд может показаться, что стоимость такого обучения несколько завышена по сравнению с нашими стандартными ожиданиями — сколько может стоить детский обучающий лагерь. Но тут стоит обратить внимание и на высокий уровень обучения, и полный комплект обучающих материалов, и уровень безопасности для ребенка. По сути, это обучение+развлечения+отдых по системе “все включено” на лучших, на мой взгляд, площадках.Читать полностью »
Вторая часть моего рассказа о компиляторе Swift. Мы начнём изучать фронтенд, а точнее те его части, которые отвечают за первоначальный разбор и анализ исходного кода. Читать полностью »
Недавно я работал над задачей добавления часовых поясов в JS-библиотеку календаря, которую ведёт моя команда. Мне было хорошо известно о никудышной поддержке часовых поясов в JavaScript, но я надеялся, что абстрагирование имеющихся объектов данных позволит легко решить большинство трудностей.
Однако мои мечты пошли прахом. Когда я углубился в задачу, то понял, что в этом языке действительно трудно работать с часовыми поясами. Реализовать что сложнее простого форматирования времени и вычисления даты с комплексными операциями (функции календаря) было чрезвычайно трудным делом. Я получил ценный опыт решения этой проблемы, и это повлекло за собой новые затруднения.
В этой статье я хочу обсудить, с чем я столкнулся и как это решал. Пока я писал текст, осознал, что причиной всех невзгод было плохое понимание мной самой темы часовых поясов. В свете этого осознания я предлагаю сначала подробно поговорить об определении и стандартах, а уже потом переходить к JavaScript.
Читать полностью »
Пришли очередные выходные, надо написать пару десятков строк кода и нарисовать картинку, да лучше не одну. Итак, на прошлых и позапрошлых выходных я показал, как делать трассировку лучей и даже взрывать всякое. Это многих удивляет, но комьпютерная графика — очень простая вещь, пары сотен строк голого C++ вполне хватает на создание интересных картинок.
Тема сегдоняшнего разговора — бинокулярное зрение, причём сегодня даже до ста строк кода не дотянем. Умея рендерить трёхмерные сцены было бы глупо пройти мимо стерепар, сегодня будем рисовать примерно вот такое:
Совсем небольшое сообщение.
По ряду личных причин я люблю таскать свой инструментарий на флешке или внешнем жёстком диске. Одним из инструментов является IDA 6.8.
После работы с системами я не люблю, когда остаются какие-то хвосты в реестре или в виде файлов. И к сожалению, IDA и её модули (в частности, BinnDiff) этим грешны.
Ну и возникло желание получить полностью портабельный комплекс.
Читать полностью »
Государственный университет Адамс. Как взламывать веб-сайты. Часть 1
Давайте поговорим о нашей следующей атаке. Расскажу, как серверы вас идентифицируют. Для этого между браузером и сервером используется протокол HTTP без сохранения состояния, когда общение с сервером происходит независимыми парами «запрос-ответ». Поэтому сервер вас забывает, как только установлена связь, и при следующем сеансе уже не помнит, кто вы такой.
Однако он помнит вас, пока вы пользуетесь веб-приложением, потому что когда вы кладёте в корзину вещи, которые собираетесь купить, то можете продолжить покупки и снова вернуться, чтобы просмотреть содержание своей корзины. Реализация «запоминания» происходит при помощи кукиз идентификации сеанса. Как только вы залогинились на сервере, он генерирует файл куки, который представляет собой уникальную последовательность букв и цифр, и отправляет его вашему браузеру, который сохраняет это куки локально на вашем компьютере. После этого браузер возвращает кукиз серверу с каждым вашим запросом на протяжение одного сеанса. Получая эти кукиз, сервер понимает, что за пользователь обращается к нему с данным запросом. Это самый распространенный способ идентификации пользователя, который пользуется веб-приложением.Читать полностью »
Данный текст представляет собой адаптацию части руководства фрэймворка Hanami под фрэймфорк Laravel. Чем вызван интерес именно к этому материалу? В нём даётся пошаговое описание с демонстрацией таких общих для языков программирования и фрэймворков вещей как:
Сразу стоит отметить, что это не только разные фрэймворки с разной идеологией (в частности, что касается ORM), но и разные языки программирования, каждый из которых имеет свою специфическую культуру и сложившиеся "bests practics" в силу исторических причин. Разные языки программирования и фрэймворки тяготеют к заимствованию друг у друга наиболее удачных решений, поэтому несмотря на различия в деталях, фундаментальные вещи не различаются, если мы конечно не берём ЯП с изначально разной парадигмой. Достаточно интересно сравнить, как одну и туже задачу решают в разных экосистемах.
Итак, исходно мы имеем фрэймворк Hanami (ruby) — достаточно новый фрэймворк, идеологически больше тяготеющий к Symfony, с ORM "на репозиториях". И целевой фрэймворк LaravelLumen (php) с Active Record.