XZTVC.ru | Еще один блог разработчика

Опубликовано: 30 июня 2022 г. 16:10 | Автор: echodiv | Категория: Администрирование | 👁 1120

Отображение ветки git в терминале bash

Достаточно коротка статья, достойная одного твитта, но зачем тогда мне блог?

Мщем в файле ~/.bashrc, который отвечает за поведение коммандной оболочки для конкретного пользователя.

"~" - это путь до домашней дириктории текущего пользователя, можете заменить, если хотите удивить своего коллегу (и у вас есть доступ) новым видом терминала, но это под вашу отвественность.

Опубликовано: 19 мая 2022 г. 21:10 | Автор: echodiv | Категория: Разработка | 👁 1298

Оптимизация структур в GO выравниванием

Вычислительные мощности растут, компьютеры выполняют всё более сложные задачи, оперируют огромными объёмами памяти.

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

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

Опубликовано: 11 мая 2022 г. 19:32 | Автор: echodiv | Категория: Разработка | 👁 746

Добавление favicon.ico в Django

Favicon (сокр. от англ. FAVorite ICON — «значок для избранного») — значок веб-сайта или веб-страницы. Отображается браузером во вкладке перед названием страницы, и в качестве картинки рядом с закладкой, а также в адресной строке в некоторых браузерах. (c) wikipedia.org

Каждый веб-сайт должен иметь иконку, которая передаёт настроение сайта (или нет), большинство браузеров ожидает найти favicon.ico в корневом каталоге вашего веб-сайта (/favicon.ico). Самый простой способ использовать статические файлы, но в Django обычно мы используем поддиректорию для доступа к ним (/static).

В этом руководстве мы настроим Django для отображения favicon.ico.

Опубликовано: 18 апреля 2022 г. 21:49 | Автор: echodiv | Категория: Разработка | 👁 891

Создание GET запроса с параметрами в Go

Если нам нужно создать GET запрос в Go с query параметрами, то можно столкнуться с неожиданными трудностями.

Самый простой вариант, это создать строку содержащую параметры и передать её как эндпоинт в метод запроса. Это будет выглядить следующим образом:

package main
 
import (
	"fmt"
	"net/http"
)
 
func main() {
	client := &http.Client{}
 
	apiKey := "mySuperAwesomeApiKey"
	url := fmt.Sprintf("http://xztvc.ru/endpoint?api_key=%s", apiKey)
 
	req, err := http.NewRequest("GET", url, nil)
	if err != nil {
		panic(err)
	}
 
	resp, err := client.Do(req)
	if err != nil {
		panic(err)
	}
	fmt.Println(resp.Status)
}

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

Опубликовано: 17 апреля 2022 г. 20:40 | Автор: echodiv | Категория: Администрирование | 👁 632

Перенаправление трафика через Nginx и SSH

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

Возможно одного ядра и 512 мегабайт оперативной памяти на нашем сервере не хватает для необходимых нам операций или мы хостим "ботов", которые используют веб-хуки на локальном компьютере. Либо у нас есть IoT сервер, который таким образом будет общаться с внешним миром.

Что же нам нужно сделать?

Опубликовано: 27 августа 2021 г. 20:48 | Автор: echodiv | Категория: Алгоритмы | 👁 921

Задачи для собеседования на позицию backend разработчик

В данной статье я разберу некоторые задани на позицию backend разработчика. Все задачи будут решены с использованием языка программирования python.

При потготовке к собеседованиям понял, что найти задачи вне сервиса для набивания руки (такого как codeingame etc) не так и просто. 

Это первая часть содержащая десять задач и решений к ним для подготовке к собеседованию.