Обновить

Как JIT-компиляция изменила мир

Уровень сложностиСредний

JIT (Just-In-Time) компиляция - это технология компиляции, которая позволяет генерировать машинный код на лету, во время выполнения программы. Это отличается от традиционной компиляции, которая генерирует машинный код заранее, на этапе компиляции исходного кода

До появления JIT компиляции, компиляторы генерировали машинный код заранее, на этапе компиляции исходного кода. Это приводило к тому, что компиляторы были ограничены тем, что могли сделать до запуска программы. Компилятор не мог адаптироваться к специфическим условиям выполнения программы, таким как ввод-вывод, динамическое изменение данных, и так далее

JIT компиляция была создана, чтобы решить проблему производительности, связанную с интерпретацией кода во время выполнения программы. В интерпретируемых языках программирования, таких как Python, Ruby и JavaScript, исходный код не компилируется в машинный код заранее. Вместо этого, он интерпретируется во время выполнения программы, что замедляет ее работу

JIT также используется в браузерах для ускорения выполнения скриптов. В браузере, JIT компилятор может оптимизировать код на основе информации о браузере, аппаратных средствах, и других факторах, которые могут влиять на производительность

Читать далее

Множественное наследование в PHP на собеседовании

Уровень сложностиСредний

Стандартным вопросом на PHP собеседованиях выступает вопрос про наследование, может ли класс наследовать нескольким классам или нет. На поверхности, конечно лежит ответ – «нет не может, класс всегда наследует только одному родителю». Далее обычно идет что-то «но если сильно нужно, то можно, так как есть трейты» и на этом все кончается. Как правило, и соискатель и интервьюер множественное наследование в деле не испытывали, и обоим просто добавить тут нечего.

А добавит есть что... Дело в том, что трейт - это механизм повторного использования кода. И этот механизм никак не влияет на типизацию, а без типизации наследование не наследование!

В случае использования обычного наследования мы имеем

Читать далее

Сделай свой код чище: JavaScript

Уровень сложностиПростой

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

Знакомо, да?

Читать далее

Как внедрить российские сертификаты от МинЦифры в React Native приложение

Уровень сложностиПростой

Всем привет! Меня зовут Екатерина и я React Native разработчик в компании Fortech.

Осенью 2022 года “Сбер” объявил о переводе всех своих ресурсов на работу с применением российских сертификатов от Минцифры (ссылка на новость). Это изменение затрагивало сервис онлайн-оплаты, поэтому при планировании одного из недавних спринтов я ожидаемо увидела в своем беклоге задачу по внедрению сертификатов в мобильное приложение.

Читать далее

Безопасность использование Python при создании платформ

Уровень сложностиПростой

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

Читать далее

Win + R всегда от Администратора

Уровень сложностиПростой

Иногда команды в меню «Выполнить» необходимо выполнять с правами администратора, иначе некоторые действия, например, в консоли (cmd.exe) будут недоступны.

Читать далее

Кто такие «Кванты»? И почему им платят до 500 000 долларов в год

Уровень сложностиПростой

Термин «Квант» охватывает не одну, а несколько специализаций, таких как Quantitative Analyst, Quantitative Developer, Quantitative Researcher и Quantitative Trader. Все они относятся к направлению Quantitative Finance. Направление Quantitative Finance зародилось еще в 1900 году с диссертации Луи Башелье «Теория спекуляции» в которой была представлена модель ценообразования опционов при нормальном распределении. Однако современная версия началась с исследования Эдварда Торпа. Торп использовал теорию вероятности и статистический анализ, чтобы создать систему для успешного выигрыша в Блэкджек, известную сейчас как «подсчет карт». Впоследствии инвестиционные компании с Wall Street начали использовать его исследования для получения прибыли на финансовых рынках, используя статистические методы анализа. Однако популярность профессия начала набирать только в последние годы вместе с развитием Data Science.

Читать далее

Как добавить секцию с различными элементами на макрос шаблонного процессора в phpWord

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

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

Для этого как бы подходит метод setComplexBlock() (ссылка на док'у), но если этому методу передать объект секции выпадет ошибка об отсутствии данного класса в пространстве имён Writer'а для Word2007.

Читать далее

Продуктовый дизайн. Инструкция по Agile методологии для новичка

Уровень сложностиПростой

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

В этой статье я хочу рассказать о том, как новичку работать с методикой Agile при создании продуктового дизайна.

Читать далее

Inspections vs PHPStan: так ли плохи инспекции, как их малюют

Уровень сложностиПростой

Inspections и PHPStan - это два инструмента для статического анализа кода на PHP. Они оба помогают выявлять потенциальные проблемы в коде, такие как ошибки типизации, неправильное использование функций и переменных, потенциальные уязвимости безопасности и т.д.

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

Читать далее

Стресс глазами ребенка. Или нас самих?

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

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

Также с удовольствием отвечу на Ваши вопросы. 

Ну что, пойдем дальше?

Неочевидные вещи в TypeScript

Уровень сложностиСредний

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

Утверждения типа

Утверждения типов позволяют разработчикам переопределять систему вывода типов по умолчанию в TypeScript. Они используются, когда разработчик знает о типе значения больше, чем может вывести TypeScript. Утверждения типа записываются в виде значения или значения как Type.

Читать далее

ЖЦ кастомного UI в андроиде с примерами кода на Котлине?

Уровень сложностиСредний

ЖЦ (жизненный цикл) кастомного UI-компонента в Android схож с жизненным циклом обычных компонентов (Activity, Fragment, View и т.д.). Жизненный цикл состоит из нескольких этапов: создание, инициализация, изменение, уничтожение и т.д. Каждый этап предоставляет возможность для выполнения определенных действий, таких как установка атрибутов, обработка событий и т.д.

Пример кастомного UI-компонента, который наследуется от View и имеет жизненный цикл:

Читать далее

Решать как Виет! Новый метод решения кубических уравнений

Уровень сложностиСредний

В школе все были знакомы с квадратными уравнениями, а кто-то даже и с кубическими игрался. В этой статье/обзоре мы рассмотрим именно решение кубического, которое ещё в 15-ом веке получил математик Франсуа Виет используя прямую подстановку вида x=2acos(\phi). Я же в этой статье использую так называемую p-параметризацию из которой формула Виета следует напрямую, из неё следует не только она, но сегодня поговорим именно о ней.

Начнем с того с чего начал я когда получал все эти формулы. Рассмотрим, как обычно, уравнение такого вида:

Читать далее

Создание телеграм бота на Django + pyTelegramBotApi

Уровень сложностиПростой

Задался я вопросом создания бота в телеграм для беседы, который бы напоминал нам о др всех её участников. И я столкнулся с такой проблемой, что хотелось поиграться с админкой django, но нет нормальных туториалов по использованию ботов именно вместе с django. Был вариант, который я нашел, с реализацией через core команды по типу manage.py runserver и тд, но зачем для простенького бота такие заморочки. Даже думал попробовать использовать Flask, ведь его много где использовали и он мне даже показался очень удобным по началу для моей задачи. А потом просто все заработало и я понял, что это проще, чем кажется. Собственно, сегодня разберем бота на Django и pyTelegramBotApi.

Бот на Django...

Как я писал библиотеку на Python

Уровень сложностиПростой

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

Читать далее

Адаптируем доп.материал из книги Васильева А.Н. " Программирование на С++ в примерах и задачах" под Linux

Уровень сложностиПростой

Адаптируем код примера из книги Васильева А.Н. под Linux

Проблема: Так как в книге выбрана среда разработки Visual Studio Express 2013 (OS Windows) и программы тестировались на ней. В Linux дополнительный материал к книге " Программирование на Си++ в примерах и здачах " (http://eksmo.ru/c++_codes.zip) открывается с проблемами в русской кодировке.

О чём: В статье представлено решение проблемы с кодировкой русского текста в комментариях к программе и при выводе текста в консоль.

Читать далее

Кто такой тимлид и чем он занимается

Уровень сложностиПростой

Когда я устраивался на должность тимлида после работы в студии, то поймал лютый синдром самозванца. Я думал, что вот есть настоящие лиды, а я что? Я ничего об этом знаю и не справлюсь. 

Я стал искать информацию в интернете и, кажется, прочитал и просмотрел все, что на тот момент было в доступе о тимлидстве. 

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

Читать далее