Всі статті

Мої перші враження від Rust

У попередній публікації, я описував свій перший досвід переходу з PHP на C++, в рамках створення браузеру для протоколу Gemini. Не зважаючи на те, що у цьому напрямку було виконано багато [роботи](htt...
1 тиждень тому ·
1
· 72 · p.s.

Як Discord зберігає трильйони повідомлень

У 2017 році ми опублікували статтю про те, як ми зберігаємо мільярди повідомлень. Ми розповіли про те, як починали використовувати MongoDB, але потім перенесли дані до Cassandra, оскільки шукали масшт...
3 тижні тому ·
1
· 69 · 3 · Alex

HTML5 шаблон: Базовий зразок для будь-якого проєкту

Що таке HTML-шаблон? Кожен вебсайт відрізняється від іншого, але є багато речей, які, по суті, однакові для всіх вебсайт. Замість того, щоб писати один і той самий код знову і знову, варто створити вл...
04 листопада ·
1
· 65 · 3 · Alex

10 алгоритмів машинного навчання, на прикладах з реального світу

Коли я вчився в старших класах і вивчав складні математичні задачі, я завжди замислювався над тим, навіщо ми їх вивчаємо і чим вони корисні. Я не міг зрозуміти та знайти їм застосування в реальному св...
01 листопада ·
1
· 110 · Alex

Розподілені транзакції в Go: що варто знати перед початком

Розподілені транзакції в Go: Варто прочитати, перш ніж спробувати У попередній статті я розглянув роботу транзакцій у багаторівневій архітектурі. Тепер розгляньмо транзакції, які мають охоплювати біль...
30 жовтня ·
0
· 27 · Alex

Як виникають помилки в обчисленнях з рухомою комою?

Ви коли-небудь працювали з такими числами, як 1/3, де результат дорівнює 0,33333... і так до нескінченності? Як люди, ми природно округлюємо такі числа, але чи замислювалися ви коли-небудь, як з ними...
28 жовтня ·
0
· 146 · Alex

HdyTab як альтернатива віджету вкладок GtkNotebook

Якщо ви тільки починаєте своє знайомство з фреймворком GTK, можливо, як і в мене, виникне схожа дилема з обмеженою функціональністю класичного віджету для створення вкладок GtkNotebook. В мережі відна...
07 вересня ·
1
· 49 · 1 · p.s.

Про конфіденційність в мережі Інтернет

У кожного своє розуміння конфіденційності та інформаційної безпеки у рамках різних контекстів. Дехто не переймається темою взагалі, нехтуючи поширенням своїх персональних даних, аргументуючи це їх пов...
06 вересня ·
1
· 79 · p.s.

Мої перші враження від C++

Я займаюсь професійною Веб розробкою вже близько п'ятнадцяти років, переважно у сфері back-end. Починаючи свій шлях в програмуванні, мав іншу вищу освіту і в мене не було змоги попрацювати та оцінити...
03 вересня ·
1
· 98 · p.s.

Керування пам'яттю в gtkmm-4.0

gtkmm - це вільний об'єктно-орієнтований C++ інтерфейс для популярного GUI фреймворку GTK, що поширюється за ліцензією LGPL. Основне призначення gtkmm полягає в отриманні усіх переваг ООП: наслідуван...
01 вересня ·
1
· 32 · p.s.

Керування пам’яттю в програмах GTK

Доповнений переклад PDF документу CSci493.70 "Introduction to Memory Management in GTK+" Стюарта Вайса - доцента Кафедри інформатики Гантерського коледжу Міського університету, Нью-Йорк. Нотатки Терм...
31 серпня ·
1
· 22 · p.s.

Мої перші кроки в GTK

Передмова Не так давно захотілось зробити простенький браузер для протоколу Gemini. Зокрема - додати детекцію Geo-IP капсул, власний пошук на базі Manticore та інтегрувати екосистему Yggdrasil. Для об...
30 серпня ·
1
· 53 · 1 · p.s.

Протокол NEX - легка альтернатива Gemini

Останнім часом стало поширеним явище інтеграції TLS навіть там, де використання цієї технології може бути зайвим. Сьогодні майже кожна програма включає в себе параноїдальні пресети безпеки з коробки,...
19 червня ·
4
· 99 · p.s.

Назад в часі

Днями знайшов старенький архів PasswordBoss і спробував відкрити перебором через Wine - тоді паролі були ручної роботи! Оригінальний .exe успішно запустив зв'язку ключів від забутих профілів з веб-адр...
18 червня ·
0
· 38 · p.s.

Грибні чорнила для каліграфії

Поділюсь з гіками альтернативною опцією для блекаутів, тим паче що зараз сезон і потрібні матеріали доступні кожному у межах міста. В літню пору можна повернутись до письма на папері та самостійно при...
16 червня ·
0
· 31 · p.s.

Що таке "мертва зона" в JavaScript?

У JavaScript ви можете зустріти термін "мертва зона". Хоча це може здатися складним, але розуміння мертвих зон має вирішальне значення для написання ефективного коду без помилок. У цьому детальному по...
08 квітня ·
2
· 480 · Alex

Патерн Pub/Sub в Node.js

Вступ Патерн Pub/Sub - це універсальний односторонній патерн обміну повідомленнями, в якому паблішер генерує дані/повідомлення, а підписник реєструється для отримання певних типів повідомлень. Він мож...
02 квітня ·
1
· 178 · Alex

10 цікавих логічних завдань для співбесід, які стимулюють мислення

Ми зібрали для вас 10 логічних задач, які можуть трапитися на співбесіді. Якщо ви правильно на них відповісте, то ви точно справите враження. Деякі логічні задачі зі співбесід змушують здивуватися: на...
26 березня ·
2
· 1.6K · 1 · Alex

Незручні моменти в роботі Manticore як основної БД

В коментарях до матеріалу Manticore як сучасна альтернатива Sphinx мене просили зробити більш детальні інструкції роботи з цим рушієм. Утім, вважаю що інформації достатньо в документації. Натомість, х...
25 березня ·
1
· 40 · p.s.

ChesslaBlab - шахи онлайн з відкритим кодом на PHP

ChesslaBlab - це проект з відкритим кодом на PHP, для розгортання шахового серверу з нуля та клієнтська частина на Symfony - для вивчення стратегій, гри онлайн з комп'ютером або друзями. Являє собою н...
25 березня ·
0
· 56 · p.s.

Розробка карткової гри з відкритим кодом OpenLegends

OpenLegends - це проект реалізації вільного рушія та інтерфейсу багатокористувацької карткової гри The Elder Scrolls Legends, в першу чергу орієнтованого на браузерний формат з використанням технологі...
20 березня ·
1
· 66 · p.s.

Що таке глобальне блокування інтерпретатора Python (GIL)?

Глобальне блокування інтерпретатора Python або GIL, простими словами, - це м'ютекс (або замок), який дозволяє лише одному потоку утримувати контроль над інтерпретатором Python. Це означає, що тільки о...
19 березня ·
2
· 167 · Alex

Виправлення помилки запуску fail2ban в Debian 12

fail2ban - це утиліта на Python для захисту серверів від атак підбору паролів. Вона сканує системні журнали на предмет шкідливої активності, та блокує підозрілі хости на заданий в налаштуваннях час. П...
09 березня ·
1
· 114 · p.s.

Gmid - багатофункціональний проксі-сервер для Gemini

Gmid - багатофункціональний сервер з відкритим кодом для протоколу Gemini. Зокрема, його зручно використовувати у якості проксі серверу для віртуальних хостів, аналогічно тому як цю функцію виконує Ng...
09 березня ·
1
· 48 · p.s.