Обновить

Поиск фантастического рассказа с помощью чат-бота

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

В статье приведён собственный опыт использования искусственного интеллекта для поиска художественного произведения.

Читать далее

Брачный договор при IT ипотеке

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

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

Читать далее

CMS своими руками

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

Дело в том, что Web-программирование затрагивает различные технологии и языки, которыми нужно овладеть, чтоб грамотно создавать web-приложения. Таким образом, софт получается сложным для создания и понимания другими разработчиками, у которых могут возникнуть потребности вносить изменения в него. Хотелось бы понизить планку для разработчика. Чтоб хотя бы со знанием одного языка PHP, разработчик мог бы разобраться в существующем коде и быстро создавать новый функционал. 

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

В идеале, в этом проекте, хотелось бы избавиться от программирования в таких языках как HTML, CSS, Java-script, SQL. И оставить возможность написания кода на PHP.

Читать далее

Uvm — альтернатива nvm c дополнительным функционалом

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

Я вас категорически приветствую.

Хочу представить на суд общественности мой проект UVM - Universal Version Manager.

Это аналог многим известного инструмента nvm для переключения версии node js.

Основным отличием uvm от nvm является то что помимо nodejs uvm также управляет и php версиями, и в планах добавить поддержку python.

Также в отличии от nvm я добавил возможность синхронизировать глобально установленные пакеты между версиями, такие как typescript, gulp и т.п.

Также для многих будет приятна полная русская локализация

Все команды описаны в help вот пример:

Читать далее

Инфобизнес по веб-дизайу с ROMI>543% в пике. Как работать в Яндекс Директ (поиск, РСЯ)

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

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

Читать далее

Null в JavaScript: объект или примитив

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

Nullодин из семи примитивных типов данных в JavaScript (остальные —строки, числа, булевые значения, undefined, BigInt и Symbol).

И только для типа null проверка typeof возвращает объект. Значит ли это, что null — объект? Нет
Null все-таки примитив. История с типом — баг при создании JavaScript.

Так как же он работает?

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

Таких тегов было 5:

000 — объект
1  — целое число
010 — double (дробное число)
100 — строка
110 — boolean

То есть теги занимали три первых бита в 32-битной ячейке (и один бит в случает целых чисел).

У типа null не было своего отдельного тега. При этом, значение null хранится в памяти в виде нуля (0000, т.е. во всех отведенных под значение битах — нули).

А мы помним, что если у нас в начале значения 000, то программа воспринимает их как тег объекта. Вот и получается такой баг, который разработчики признали, но решили не менять, т.к. это может поломать все уже существующие программы.

Источники:
The history of “typeof null” (большинство информации отсюда), A quick and thorough guide to ‘null’

Читать далее

Сколько в 2023 году стоят деньги частных инвесторов?

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

Хотите привлечь инвестиции в свой бизнес, но не знаете какую доходность предложить инвестору и как ее посчитать? – Разобрал этот вопрос на примере реального проекта в статье.

Читать далее

Создаём оптимизированные модели внутри Unreal Engine одним плагином

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

Вам нравится, когда игры мало весят, а крутая графика не отнимает слишком много времени у процессора? Мне тоже :)

Процедурная генерация в играх может применяться не только для создания однотипных данжей и квестов. Пример .kkrieger показывает, что сгенерировать можно буквально весь визуал полноценной 3D(!) игры.

Читать далее

Золото, машины и доллары

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

В России цены на машины продолжают расти, а заработные платы не успевают за этом ростом. Можно ли купить какой-то актив: доллары, юани, золото, чтобы в перспективе нескольких лет или даже десятилетий зафиксировать свой доход или даже заработать хорошие проценты. В этой статье попробуем разобраться, что бы Вы смогли купить в 2023 году, если бы отложили годовую зарплату в 2000г.

Для объективности будем рассматривать один конкретный товар - машину, внедорожник, и два средства сбережения и обмена - доллары и золото. Для начала стоит привести график инфляции доллара за 2000-2023 года:

Читать далее

Обзор библиотеки vue3-picture-input

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

Если вы ищите простые решения, для того чтобы создать input для картинок. А такие решения как Dropzone слишком избыточны в функционале, то данная библиотека прекрасно вам подойдет.

Читать далее

Быстрый старт в Java. Терминал и Java

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

В современном мире большинство программистов используют интегрированные среды разработки (IDE), которые предоставляют широкий набор функций и инструментов для создания, отладки и тестирования кода. Однако, не все разработчики умеют работать с терминалом, который также является важным инструментом для запуска и тестирования кода. В данной статье мы поговорим о том, как установить Java, попытаемся найти разницу между OpenJDK и OracleJDK, научимся компилировать, собирать jar-файлы, писать самостоятельно MANIFEST.mf и дебажить свой код в терминале.

Читать далее

Telegram бот для отслеживания позиции в очереди на 2b2t

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

Данный бот поможет отслеживать свою позицию в очереди на 2b2t удаленно от ПК.

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

Бот реализован на языке python, с использованием библиотеки telebot. Данная библиотека позволяет осуществлять управление telegram ботом.

Читать далее

golang: один источник и один выборочный получатель из нескольких

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

В одном проекте мне необходимо было получать из одного источника данные и, в зависимости от текущего состояния, отдавать эти данные одному из множества ресиверов. Схему можно описать так: если некуда отдавать данные, то они должны просто обнуляться (либо - для любителей статистики - инкрементировать соответствующий счетчик); в случае готовности одного из ресиверов принимать данные - отдавать их ему. По условиям задачи ресивер готовый принимать данные всегда один.

В языке go есть такая конструкция:

Читать далее

Создание спецификации ASP.NET Core OpenAPI во время сборки

Необходимо создать локальный манифест инструмента для того чтобы проект мог вызывать инструментарий CLI Swashbuckle из контекста нашего решения. Для этого мы сначала запустим команду .NET CLI

Читать далее

Samsung с точки зрения фаната Xiaomi

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

Спецификации устройств:

Samsung Galaxy s22 Ultra 5g, SM-908O (Hong Kong) под управлением OneUI 5.0 (Build Number: S9080ZHS2BWA2) и Android 13

Xiaomi mi note 10 Pro (он же cc9 Pro) под управлением MIUI 13.0.3 Стабильная (RFDRUXM) и Android 11

Читать далее

Защита от повторного запроса с помощью БД

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

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

Какая тут может произойти проблема? Если это, например, какой-то запрос данных, то в общем-то проблемы и нет, но если это действие, которое должно отработать только один раз, то тут могут быть весьма неприятные последствия. Для примера в интернет-магазине собрана корзина и создан заказ на оплату (статус REGISTERED), далее по нажатию кнопки "оплатить" с клиента списывают деньги и переводят заказ в статус оплачен (PAID). И если в этом процессе произойдёт двойной запрос, то с клиента могут списать деньги за заказ два раза.

Читать далее

Очередь с приоритетами на С++ с использованием динамической кучи (heap) минимумов (максимумов) и шаблонов (template)

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

Содержание

1. Введение в структуру данных - куча

1.1. Возможности кучи

1.2. Описание структуры данных — куча

1.3. Базовая реализация кучи минимумов с помощью вектора

2. Работа кучи с разными типами данных

2.1. Применение шаблонов С++ для настройки кучи на работу с разными типами данных

2.2. Определения оператора сравнения в пользовательском типе данных для работы с кучей

2.3. Превращение кучи минимумов в кучу максимумов без изменения кода кучи, используя оператор сравнения в пользовательском типе данных

3. Использование оператора сравнения в пользовательском типе данных для решения более сложных задач с помощью кучи

4. Использование для реализации кучи указателей

Читать далее

Предел. Что нас ждет

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

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

Читать рассказ

10 правил партнерства в IT-проектах или чему меня научили 17 лет предпринимательского опыта

Всем привет! Меня зовут Бекзод Камилов, и я вместе с партнерами запускаю проекты в разных нишах. В этом лонгриде решил поделиться правилами, которые я вывел за 17 лет работы в команде.

Читать далее