Директивы Ассемблера
 8351

Группа директив для указания типа процессора

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

.186, .286, .386, .486, .586, .686 - использование инструкций процессоров 80186, 80286, 80386, 80486, Pentium, Pentium Pro

.286P, .386P, .486P, .586P, .686P - использование инструкций процессоров, включая инструкции защищенного режима

.287, .387 - использование инструкций математического сопроцессора

Пример кода:

	; по-умолчанию в начале ставится режим .8086
	.model small
	.stack 100h
	.code
	.486	; указываем режим 80486, чтобы иметь возможность использовать команду BSWAP
start:	mov	edx, 01020304h
	bswap	edx
	mov	ax, 4C00h
	int	21h
	end start
Читать далее
Настройка VPS сервера под Debian 10
 1422

В своей работе мне периодически требуется быстро настроить linux-сервер. Чтобы не шерстить интернет каждый раз на предмет всех необходимых команд, я решил написать эту статью-шпаргалку. В качестве операционной системы я выбрал Debian 10 версии, так как с ней более-менее знаком.

Ссылки для быстрого перехода в нужный раздел:

Читать далее
Делаем аутентификацию в REST API
 2501

В Laravel по-умолчанию встроена аутентификация пользователя с использованием форм и php-сессий. Однако такой подход неприменим для авторизации при работе через RESTful API. Дело в том, что один из принципов работы RESTful API заключается в том, что сервер между запросами не хранит никакой информации о текущем пользователе.

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

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

Читать далее
Создание и настройка нового проекта на Laravel 6.x
 1297

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

composer global require laravel/installer

Далее чтобы создать проект Laravel можно просто выполнить команду

laravel new project_name

При этом в текущем каталоге будет создан каталог проекта с указанным именем. И в этом каталоге будет создано все необходимое для старта проекта.

При создании проекта через инсталлер есть одна особенность - устанавливается последняя версия фреймворка, и изменить это не получится (по крайней мере поиск по интернету рабочего решения не дал). Это создает некоторые проблемы при работе, так как новые версии фреймворка требует повышения версии PHP, а это не всегда возможно.

Читать далее
Стилизация checkbox и radiobutton на CSS
 6231

Всем привет.

Сегодня я хочу рассказать, как можно самостоятельно изменить внешний вид и анимацию стандартных элементов управления checkbox и radiobutton средствами CSS. Например на такое:

Для начала создадим каркас страницы index.html

<!DOCTYPE HTML>
<html>
<body>
  <div> <input type='checkbox'> <label>Checkbox 1</label> </div>
  <div> <input type='checkbox' checked> <label>Checkbox 2</label> </div>
  <div> <input type='radio' name='rb'> <label>Radio 1</label> </div>
  <div> <input type='radio' name='rb' checked> <label>Radio 2</label> </div>
</body>
</html>
Читать далее
Рефакторинг игры на SFML
 528

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

Первым делом я примерно прикинул, какие мне нужны классы для игры. У меня получилось, что нужен класс для работы с ресурсами игры - Assets. Из ресурсов у меня сейчас есть только загружаемый шрифт, но в будущем могут добавиться и другие ресурсы, например изображения, музыка и.т.д. Класс я сделал синглтоном, так как этот шаблон прекрасно подходит для класса Assets. За основу взял широко известный синглтон Майерса.

Читать далее
Простая игра на SFML
 1539

Будем делать игру "пятнашки" на языке C++ с использованием библиотеки SFML. Пятнашки - это широко известная головоломка, которая выглядит следующим образом:


На игровом поле размером 4х4 случайным образом расположены 15 плашек с номерами от 1 до 15 и одно свободное место. Передвигать плашки можно только по одной и только на свободное место. Целью игры является выстроение плашек на игровом поле в порядке, соответствующем их номерам.

Итак, начнем.

Читать далее
Справочник по JavaScript. Объекты
 350

Объявление объектов

var a = new Object();                    // Устаревший синтаксис
var a = {};                              // Объявление пустого объекта
var a = { title: "test", size: 22 };     // Объявление и инициализация объекта

Свойства могут задаваться в виде строк, даже из нескольких слов. В качестве значения свойства может быть другой объект или функция:

var a = {
  size: 22,
  "title of page": "test",
  user: { name: "Mike", age: 20 },
  check: function(){
    return user.age > 16;
  }
};
Читать далее
Делаем свой сервер на Node.js
 660

Создаем сервер с нуля

Самый простой сервер на node.js можно сделать, используя стандартный модуль http напрямую.

Сначала создаем новый проект:

npm init -y

Далее создаем файл index.js со следующим содержимым:

const http = require("http");

const srv = http.createServer(function(req, res) {
	res.writeHead(200, {'Content-Type': 'text/html'});
	res.write("Hello, World");
	res.end();
});
srv.listen(3000);
Читать далее
Node.js. Начало
 370

Установка на Windows

Все просто: заходим на страницу https://nodejs.org, скачиваем дистрибутив, устанавливаем.

Проверяем, что все установилось как надо. Запускаем command shell (cmd), вводим

C:\>node -v

видим версию node.js

Читать далее