How do slices internally work in golang

Why do slices exists if you already have arrays in golang? Let’s see why we need slices in golang. So in this blog, we will talk about What are slices and why do we need them? How do they internally work in golang? What mistakes can we make while using slices and how to avoid those mistake. For understanding the importance of slices, first, let’s see what are arrays in golang? You are familiar with Read more

Database Transactions and Resource Locking in Laravel

Database transactions and pessimistic locking are probably not the most used features, however, they can be extremely useful. Let’s take a brief look and then examine how Laravel’s database layer supports these features. In this post, we don’t focus on the plain SQL implementation of database transactions or locking. After explaining shortly, we move on the Laravel implementation of these features. However, you can find links that are providing longer and better explanations in the Read more

Что такое ETL: как справиться с анализом big data

Крупные предприятия собирают, хранят и обрабатывают разные типы данных из множества источников, таких как системы начисления заработной платы, записи о продажах, системы инвентаризации и других. Эта информация извлекается, преобразуется и переносится в хранилища данных с помощью ETL-систем. Расскажем, что такое ETL, а также какие платные и общедоступные решения для работы с данными есть на рынке. ETL — что это такое и зачем? В переводе ETL (Extract, Transform, Load) — извлечение, преобразование и загрузка. То есть Read more

MySQL / немного о SELECT… FOR UPDATE и GET_LOCK

Для примера рассмотрим такой случай.У нас есть MySQL база, в которой есть таблица queue. В эту таблицу поступают задания для выполнения.Задания должны распределяться между процессами. Одна и та же задача не должна попасть к разным процессам.Для решения задачи можно воспользоваться SELECT … FOR UPDATE.Каждый процесс для получения задачи будет выполнять вот такой запрос.SELECT id FROM queue WHERE is_run = 0 ORDER BY date_task ASC LIMIT 1 FOR UPDATEИ помечать эту полученную задачу как занятую.UPDATE queue Read more

Блокировки в MySQL

На хабре часто обсуждаются принципы работы MySQL. Данный хабратопик посвящен механизмам блокировок, используемым в MySQL. Топик поможет начинающим изучать MySQL и, в некоторой степени, опытным хабралюдям. Механизм блокирования в MySQL Одновременный доступ нескольких клиентов к хранилищу данных может приводить к ошибкам различного типа. Например, одновременное чтение одним клиентом и запись другим клиентом одной и той же строки таблицы с большой вероятностью приведет к сбою или чтению некорректных данных. Механизмы блокировок позволяют избежать ситуаций одновременного доступа Read more

Что такое озера данных и почему в них дешевле хранить big data

Сейчас все вокруг твердят про пользу big data. В итоге бизнес пытается работать с масштабными базами данных, но сталкивается с проблемой — все данные разнородные и неструктурированные, перед загрузкой в базы их нужно долго обрабатывать. В итоге работа с big data оказывается слишком сложной и дорогой, а часть данных теряется, хотя могла бы принести пользу в будущем. Помочь с этим могут data lake — озера данных, которые помогают быстро и недорого работать с большими объемами Read more

Как выкатить обновление, если оно затрагивает все ваши сервисы

Обновления могут происходить каждый день, но иногда нужно выкатить фичу такого масштаба, что потенциальные ошибки поаффектят все ваши сервисы и пользователей. В статье расскажем, как сделать выкатку обновлений любой сложности в запланированный и анонсированный срок даунтайма без последствий для продакшен. Что такое выкатка Любой айтишник легко ответит, что такое выкатка: ставишь CI/CD, и автоматом все доставляется на прод. Конечно, это верно. Сложность в том, что при современных инструментах автоматизации доставки кода теряется понимание самой выкатки. Read more

От разработки до релиза

В разработке любого приложения все начинается с исходного кода, а заканчивается приложением, которое доступное пользователю. В зависимости от типа приложения (веб приложение, мобильное или десктопное) процесс преобразования исходного кода в финальных продукт может отличаться. Назовем этот процесс – процесс релиза. Процесс релиза может отличаться в зависимости от типа приложения, но этапы остаются всегда одни и те же. Исходный код – файлы, которые вы создаете и в которых пишете код. Они обычно хранятся в вашем VCS (git, Read more

Подробно о генераторах случайных и псевдослучайных чисел

Генераторы случайных чисел — ключевая часть веб-безопасности. Небольшой список применений: Генераторы сессий(PHPSESSID) Генерация текста для капчи Шифрование Генерация соли для хранения паролей в необратимом виде Генератор паролей Порядок раздачи карт в интернет казино Как отличить случайную последовательность чисел от неслучайной? Пусть есть последовательность чисел: 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9. Является ли она случайной? Есть строгое определение для случайной величины. Случайная величина — это Read more

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 I’m doing what is mentioned in the topic of this blog on the final slice that is a=obtained by just appending both the slices. This Read more


Любишь мемасики?

Подпишись на мой телеграм-канал!

Открыть
Закрыть