Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
744 - Telegram Web
Telegram Web
Как работает пробинг в Swiss Table

1. Вычисляется хеш ключа (hash(key))
Используется aeshash (на поддерживаемых CPU) или memhash (на других архитектурах).
Определяется bucket: bucket_index = hash(key) % num_buckets.

2. Проверяется metadata (fingerprint) в bucket'е
Каждый bucket хранит 8 слотов, где хранятся fingerprints ключей.
Если fingerprint совпадает → проверяем полный ключ.

3. Если слот занят → применяется квадратичный пробинг:
next_index = (index + i²) % num_buckets
i увеличивается (1, 4, 9, 16...), что уменьшает кластеризацию.
Если после нескольких попыток элемент не найден → он отсутствует.
👍19
Как map ищет элементы (value, ok := m[key])

1️⃣ Находим bucket по hash % 2^B.

2️⃣ Сравниваем tophash (если совпадает — проверяем ключ).

3️⃣ Если не нашли — идём в overflow (если есть).

4️⃣ Если ключ отсутствует — возвращаем ok = false.
🌚13🤔1
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

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

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
В чём разница между Query() и QueryRow()?

Query() — выполняет SQL-запрос, который возвращает несколько строк (например, SELECT * FROM users). Возвращает *Rows, требует итерации через rows.Next().

QueryRow() — выполняет SQL-запрос, который возвращает одну строку (например, SELECT name FROM users WHERE id = 1). Возвращает *Row, требует вызова .Scan().
👍5😁2
🤔 Основы математики в Machine Learning / Deep Learning

🗓 6 марта приглашаем вас на прямой эфир, где мы подробно разберем ряд Тейлора, собственные векторы и другие ключевые понятия в ML.
(ссылка)

🌟 Спикер: *Мария Горденко* – Старший преподаватель ФКН НИУ ВШЭ, НИТУ МИСИС, аспирант департамента анализа данных и искусственного интеллекта ФКН НИУ ВШЭ, а также преподаватель на курсе Алгоритмы и структуры данных в proglib academy.


Место работы: Инженер-программист, ведущий эксперт НИУ ВШЭ, цифровой ассистент и цифровой консультант НИУ ВШЭ.


😮 На вебинаре вы узнаете:

🔵 Теорию вероятностей: обсудим случайные величины, вероятность, математическое ожидание и дисперсию.

🔵 Линейную алгебру: изучим векторы, матрицы, собственные векторы и собственные значения.

🔵 Математический анализ: разберем производные и разложение функций в ряд Тейлора.

🔵 Практику: применим полученные знания на реальных кейсах из области Machine Learning и Deep Learning.

🎯 Почему это важно?
Понимание математических основ помогает глубже разобраться в работающих под капотом алгоритмах ML/DL и эффективно применять их на практике.

👉 Присоединяйтесь к нам и совершенствуйте свои навыки в машинном обучении!

📌 Регистрация по ссылке: https://proglib.io/w/01d4b6df
🥰1
Что такое fuzzing?

Fuzzing (фаззинг) — это метод тестирования программного обеспечения, при котором на вход программы подаются случайные, невалидные или некорректные данные с целью выявления уязвимостей, сбоев или неожиданного поведения.
👍10🥱2🔥1
У вас есть код на Go версии 1.20, который использует map. Что нужно сделать, чтобы мигрировать на версию 1.24, которая принесла Swiss Table в Go

Делать ничего не нужно, потому что внешне map не изменилась. Методы работают также, как и до обновления.
😁21🥱9👍5🌚2
Что делает переменная окружения GOOS в Go

Переменная окружения GOOS определяет операционную систему, для которой будет скомпилировано Go-приложение. Она используется при кросс-компиляции, когда код пишется на одной платформе, но компилируется для другой.

Поддерживаемые значения GOOS:
• Linux
• Windows
• macOS
• FreeBSD
• OpenBSD
• NetBSD
• Android
• iOS
• Plan 9


🐸Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥4
Что такое префиксная сумма

Префиксная сумма — это массив, в котором каждый элемент содержит сумму всех предыдущих элементов исходного массива до текущего индекса.

Это позволяет быстро вычислять сумму любого подмассива за O(1) после предварительной обработки.


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

🐸Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10👾4🥰1
Как отличается управление памятью в Go от С++

Управление памятью в Go и C++ различается по подходу. Go использует автоматический сборщик мусора, который упрощает написание кода и уменьшает риск утечек памяти, но может влиять на производительность. C++ же требует ручного управления памятью с помощью операторов new и delete, что дает низкоуровневый контроль и высокую производительность, но увеличивает сложность и риск ошибок.

🐸Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6💯3
Что такое канареечный релиз/тестирование

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

🐸Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🤔2🌚2
Media is too big
VIEW IN TELEGRAM
⚙️ Как работает API

Proglib рассказывает базу в формате рилса
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱8👍5🤔31👾1
Что такое Starvation

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

🐸Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Что такое Cache contention

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

🐸Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
🏃‍♀️ 40+ каналов, которые должен читать каждый разработчик

Отобрали для вас полезные и проверенные каналы для программистов — в них вы найдете все самое интересное, от технических новостей до практических гайдов.

IT Job Hub | Работа и вакансии в IT — избранные IT-вакансии

Библиотека программиста — новости из мира IT и технологий

Книги для программистов — самые годные книги по любым языкам и стекам

IT-мемы — мемы про жизу айтишника

Proglib Academy — обучение и курсы, чтобы стать топовым специалистом

Азбука айтишника — азы из мира разработки

Библиотека нейросетей — лайфхаки и промпты для разных задач, баттлы нейронок и новости из мира ИИ

Библиотека фронтендера — все о JS, React, Angular и не только

Библиотека мобильного разработчика — лайфхаки и новости из мира Swift и Kotlin

Библиотека хакера — уязвимости, атаки, бэкдоры и как от них защититься

Библиотека тестировщика — самое интересное о том, как крашить код

🦫 Go
Библиотека Go-разработчика
Библиотека задач по Go
Библиотека Go для собеса
Вакансии по Go

#️⃣ C#
Библиотека шарписта
Библиотека задач по C#
Библиотека собеса по C#
Вакансии по C#

🔧 DevOps
Библиотека devops’а
Библиотека задач по DevOps
Библиотека собеса по DevOps
Вакансии по DevOps & SRE

🐘 PHP
Библиотека пхпшника
Библиотека задач по PHP
Библиотека PHP для собеса
Вакансии по PHP, Symfony, Laravel

🐍 Python
Библиотека питониста
Библиотека Python для собеса
Библиотека задач по Python
Вакансии по питону, Django, Flask

☕️ Java
Библиотека джависта
Библиотека задач по Java
Библиотека Java для собеса
Вакансии по Java

📊 Data Science
Библиотека дата-сайентиста
Библиотека задач по Data Science
Библиотека Data Science для собеса
Вакансии по Data Science

🎮 C++
Библиотека C/C++ разработчика
Библиотека задач по C++
Библиотека C++ для собеса
Вакансии по C++

Подписывайтесь на интересные вам каналы и сохраняйте пост в закладки, чтобы не потерять 🔑
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое Table-Driven тестирование

Табличное тестирование (table-driven tests)— это популярный подход к написанию тестов, при котором определяется набор тестовых случаев в виде таблицы или слайса структур, а затем каждый случай прогоняется через одну и ту же тестовую логику.

🐸Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6👾4🤔1
Что делает CGO_ENABLED

CGO_ENABLED — это переменная окружения, которая управляет использованием CGo при компиляции Go-приложений.

CGo — это механизм в Go, который позволяет взаимодействовать с C-кодом, вызывать C-функции и использовать C-библиотеки внутри Go-программ.

🐸Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9💯41
Чем CGO_ENABLED=0 полезен при сборке Go-приложений

Переменная окружения CGO_ENABLED=0 отключает поддержку CGo при компиляции Go-кода. Это означает, что все зависимости компилируются исключительно на чистом Go, без использования C-библиотек.

Если CGO_ENABLED=1, компилятору Go могут понадобиться инструменты и заголовочные файлы C для целевой платформы. С CGO_ENABLED=0 можно без проблем собирать бинарники для других архитектур и ОС.

Отключение CGo позволяет Go-компилятору использовать статическую компоновку, что уменьшает размер бинарного файла и исключает динамические зависимости.

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

Исключение C-кода уменьшает вероятность уязвимостей, связанных с управлением памятью в C, и делает код более платформонезависимым.

🐸Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11😁2
Как работает система пакетов в Go

В начале каждого .go файла указывается, к какому пакету он принадлежит

Если в коде есть package main, то этот пакет может быть скомпилирован в исполняемый файл. В противном случае это библиотечный пакет.

Пакеты импортируются явно, указывая полный путь.

Ограниченная область видимости

Если идентификатор (переменная, функция, структура) начинается с заглавной буквы, он доступен за пределами пакета.

Если начинается с маленькой буквы, он доступен только внутри пакета.

🐸Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15😁1🥱1
Как в Go реализовать wildcard импорт

В Go нет wildcard-импортов (import "*"), как в Java или Python.

🐸Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
😁11👍3🥱2🤔1
2025/07/08 18:31:31
Back to Top
HTML Embed Code: