В разработке любого приложения все начинается с исходного кода, а заканчивается приложением, которое доступное пользователю. В зависимости от типа приложения (веб приложение, мобильное или десктопное) процесс преобразования исходного кода в финальных продукт может отличаться. Назовем этот процесс – процесс релиза. Процесс релиза может отличаться в зависимости от типа приложения, но […]
Подробно о генераторах случайных и псевдослучайных чисел
Генераторы случайных чисел — ключевая часть веб-безопасности. Небольшой список применений: Генераторы сессий(PHPSESSID) Генерация текста для капчи Шифрование Генерация соли для хранения паролей в необратимом виде Генератор паролей Порядок раздачи карт в интернет казино Как отличить случайную последовательность чисел от неслучайной? Пусть есть последовательность чисел: 1 , 2 , 3 , […]
Removing duplicate elements from an array/slice in Golang
Recently I encountered an issue where I was supposed to merge two slices of strings into one so that the resulting slice should not contain any element from first or the second more than once. For example, A = [‘x’,’y’,’z’] and B = [‘x’,’p’,’q’] → C = [‘p’,’x’,’z’,’q’,’y’]. So here […]
Признак высокого интеллекта №1 – по мнению Джеффа Безоса
Именно эту особенность ищет в людях основатель компании Amazon, когда пытается понять, действительно ли его собеседник умен. Основатель Amazon Джефф Безос сидит на вершине одной из самых успешных компаний нашего времени, не говоря уже о личном состоянии в размере около $150 млрд. Я думаю, мы все можем согласиться, что по […]
Сравнение оконных функций и CTE в MySQL 8 и MariaDB
Каждый программист базы данных MySQL должен изучить и применить недавно добавленные оконные функции MariaDB и MySQL и выражения общих таблиц (CTE) в своей повседневной работе. И CTE, и оконные функции позволяют легко решать многие проблемы запросов, которые в предыдущих выпусках было сложно, а иногда невозможно преодолеть. Освоение этих функций открывает […]
За что я ненавижу Eloquent ORM
Я обожаю тупой код. Тупой в том смысле, что даже через 10 лет, если заказчик попросит тебя внести изменения в него, ты сможешь сделать это не вникая во всю логику, даже будучи после пятничного корпоратива, ничего в старом коде не сломав. И тупой в том смысле, что не нужно прикладывать […]
The Magic of Laravel Macros
Ever wanted a piece of functionality in a part of Laravel that doesn’t exist? Let me introduce you to Laravel macros. Macros allow you to add on custom functionality to internal Laravel components. Let’s start with a simple example on the Request facade. Request::macro(‘introduce’, function ($name) { echo ‘Hello ‘ […]
Assignment to entry in nil map
Why does this program panic? var m map[string]float64 m[«pi»] = 3.1416 panic: assignment to entry in nil map Answer You have to initialize the map using the make function (or a map literal) before you can add any elements: m := make(map[string]float64) m[«pi»] = 3.1416
Convert uint64 to a String
We’ve already got a post on converting an integer to a string but the process of converting a variable of type uint64 to a string is a little different. For an int we can use Itoa(), but for an unsigned int 64 we can still use strconv but we can […]
Concurrency, Goroutines and GOMAXPROCS
When new people join the Go-Miami group they always write that they want to learn more about Go’s concurrency model. Concurrency seems to be the big buzz word around the language. It was for me when I first started hearing about Go. It was Rob Pike’s Go Concurrency Patterns video […]