Pull to refresh
17
0
Евгений Блохин @ebt

инженер-предприниматель

Send message

PostgreSQL Antipatterns: «вращаем» JSON

Level of difficultyEasy
Reading time4 min
Views3.5K

Принимать сложные параметры запроса в виде JSON - полезно, хранить его в базе - удобно, но работа с ним в рамках SQL-запроса зачастую вызывает затруднения.

Сегодня столкнулся с очередным нетипичным вариантом использования - "перекладыванием" значений из JSON-строк в столбцы.

Давайте сделаем это попроще.

Читать далее
Total votes 20: ↑20 and ↓0+26
Comments4

Пишем одностраничное приложение с помощью htmx

Level of difficultyMedium
Reading time11 min
Views16K

JS-библиотеку htmx воспринимают как средство, которое спасает интернет от одностраничных приложений. Всё дело в том, что React поглотил разработчиков своей сложностью (так говорят), а htmx предлагает столь желанное спасение.
Читать дальше →
Total votes 39: ↑37 and ↓2+52
Comments5

OSINT: Разведка в ЕВРОПЕ

Reading time9 min
Views8.9K

В статье на сегодня пойдёт разговор про OSINT на территории Европы.
Тема обширная, европа разношерстная, стран много, людей много, менталитет местами разный.

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

Итак, начнем с GEOINT и его основ.

Часовые пояса

Континент Европа разделен на следующие часовые пояса:
Часовой пояс Азорских островов (UTC-1);
Западноевропейский часовой пояс / Часовой пояс по Гринвичу/
Ирландский часовой пояс (UTC+0);
Центрально европейское время (UTC+1);
Восточноевропейское время (UTC+2);
Калининградский часовой пояс (UTC+2);
Восточноевропейский часовой пояс и Московский часовой пояс (UTC+3).

Часовой пояс достаточно сильно сужает объем мест поиска.
Так например, если вам попалась фотография с метаданными (что с одной стороны редкость, а с другой реальность), то в ней может быть прописано дата её создания или редактирования. Эта дата обычна указана в формате timestamp - это формат хранения даты и времени с учетом часового пояса.

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

К примеру exiftool, вот пример её работы.

Читать далее
Total votes 16: ↑14 and ↓2+20
Comments6

Создаем свою библиотеку на C++ с тестированием, CMake и блекджеком: часть 2

Level of difficultyMedium
Reading time30 min
Views5.5K

В мире программирования создание собственных библиотек — это не просто возможность пополнения своего портфолио или способ структурировать код, а настоящий акт творческого самовыражения (и иногда велосипедостроения). Каждый разработчик иногда использовал в нескольких своих проектах однообразный код, который приходилось каждый раз перемещать. Да и хотя бы как упаковать свои идеи и знания в удобный и доступный формат, которым можно будет поделиться с сообществом.

Если вы ловили себя на мысли: «А почему мне бы не создать свою полноценную библиотеку?», то я рекомендую прочитать вам мою статью.

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

Некоторые из вас могут подумать, что мы изобретаем велосипед. А я в ответ спрошу — сможете ли вы прямо сейчас, без подсказок, только по памяти, нарисовать велосипед без ошибок?

Добро пожаловать во вторую, скорее всего финальную часть статьи! Здесь мы окончательно допишем код, исправим некоторые ошибки.

Читать далее
Total votes 23: ↑23 and ↓0+31
Comments19

Искусственный интеллект — сознание или алгоритм? Проблемы цифровой философии

Reading time10 min
Views14K

Привет, Хабр! Проблема сознания у AI волнует философов, нейробиологов, когнитивистов, ML-специалистов и других. Обычно они делятся на два лагеря: одни поддерживают эту гипотезу, а другие — категорически против. Но ни одни, ни другие так и не нашли консенсуса в данном вопросе. В тексте постараемся сузить поток абстрактности вокруг темы и разобраться, почему и как начали изучать сознание у AI.

Автор: Александра Танюшина, преподаватель МГУ, кандидат философских наук, культурный тренд-аналитик и специалист по цифровой философии.
Читать дальше →
Total votes 54: ↑51 and ↓3+66
Comments280

Не дай мозгу себя обмануть: 5 когнитивных искажений, распространённых в IT

Reading time16 min
Views21K

Мозг человека не идеален. Подобно компьютеру, в нем существуют баги — несовершенства вычислительной системы. Из-за этих несовершенств, которые, скорее всего, обусловлены эволюционным развитием психики, возникают различные артефакты мышления — не ошибки, но особенности.

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

Когнитивные ошибки бессознательны. Однако осознание их существования помогает критично относиться к собственному мышлению, отлавливая когнитивные «ловушки» заранее, еще на стадии появления. Ну, и таким образом принимать гораздо более обоснованные решения.

Кстати, ранее в блоге мы уже рассказывали про искажения мышления, связанные со знанием и компетенциями. Теперь настало время раскрыть тему искажений подробнее.

Читать далее
Total votes 46: ↑44 and ↓2+54
Comments13

P2P общего назначения

Level of difficultyMedium
Reading time10 min
Views2.8K

IT-индустрия совершила интересный виток развития в последние десятилетия. На заре IT-революции, когда компьютеры были дорогими, их ресурсы, хоть и скромные по нынешним временам, нужно было использовать эффективно. Это привело к появлению многопользовательских OS, например, семейства UNIX, созданию компьютерных сетей и появлению протоколов удаленного доступа. 

Стремительное развитие производительности чипов и удешевление железа привело к революции персональных компьютеров. Однако опережающий рост вычислительных потребностей запустил развитие на новый круг. Сейчас найдется немного компаний и организаций, которые обходятся исключительно персональными компьютерами и сервисами в локальной сети. Когда-то диковинные IaaS, PaaS, SaaS, распределенные вычислительные технологии плотно вошли в жизнь. Доступ к удаленным системам — обыденная потребность не только для администраторов и программистов. Все знают о протоколах ssh, rdp, vnc, многие пользуются TeamViewer, AnyDesk, Remmina, X2Go и т. п. Ввиду того, что IPv4 сети и порожденный ими NAT пока еще более чем актуальны, не каждое из перечисленных средств позволяет подключиться к машине, находящейся за NAT, если у вас нет возможности пробросить порты.

Читать далее
Total votes 13: ↑12 and ↓1+14
Comments1

Тысяча и одна библиотека С++

Reading time65 min
Views30K

В жизни каждого программиста С++ рано или поздно возникает задача, которую кто-либо уже решил. Однако найти это решение бывает очень непросто в силу разных причин: оно недостаточно разрекламировано, либо имеет нечеткую документацию, или возникает проблема языкового барьера, ну, или поисковики просто плохо ищут).

Столкнувшись много раз подряд с тем, что найти что-то толковое довольно непросто, я решил попробовать распутать это узел и предложить для русскоязычных читателей свой справочник классных библиотек на С++. Я исходил из этого источника. Это очень многогранный и объемный список библиотек языка С++, но, скажем так, у меня были к нему вопросы. Потому я сделал перевод, затем значительно улучшил его в плане содержания (далее объясню, как, почему и зачем). На выходе получилось около 1000 библиотек. Как в сказке). Они, конечно, не покрывают все возможные задачи и предметные области, но поверьте, они затрагивают действительно многое.

Прикоснуться к сокровищнице языка С++
Total votes 82: ↑81 and ↓1+92
Comments23

Локальные LLM в разработке: а почему бы и да?

Level of difficultyMedium
Reading time12 min
Views9.9K

Меня зовут Антон Гращенков, и я занимаюсь развитием Java в Альфа-Банке. Программированием увлекаюсь ещё со школы: писал на множестве разных языков — от Pascal до TypeScript, мне это просто нравится. В статье я на примерах покажу, для каких задач я использую локальные модели. Да, существует много инструментов доступных в облаке, — тот же ChatGPT, Copilot или YandexGPT. Однако можно запустить такую модель и локально, и сделать это крайне просто. 

Ведь если хочется, то почему бы и да?

Читать далее
Total votes 43: ↑43 and ↓0+51
Comments7

Работаем с PyTorch на CPU

Level of difficultyMedium
Reading time10 min
Views6K


В этой статье мы рассмотрим железо, настройки, подводные камни и неочевидные вещи, которые позволят выжать всё из вашего процессора для как можно более комфортной работы PyTorch на CPU. Даже если у вас есть видеокарта, поддерживаемая PyTorch, вы сможете увеличить продуктивность компа через распараллеливание нагрузки на CPU и видеокарту.
Поехали!
Total votes 36: ↑36 and ↓0+51
Comments10

Квантовая электродинамика в картинках

Level of difficultyMedium
Reading time11 min
Views20K

Квантовая электродинамика (далее КЭД), любимое, но капризное дитя нерелятивистской квантовой механики и специальной теории относительности — весьма непростая физическая теория с зубодробительным математическим аппаратом. Но, в отличие от многих других сложных теорий, в её инструментарии есть одна небольшая и сравнительно обособленная часть, допускающая примитивную, но наглядную трактовку. Я имею в виду так называемые «диаграммы Фейнмана». Cегодня непросто написать статью по квантовой теории поля, не начертив нескольких таких диаграмм, а в некоторых работах они встречаются чаще, чем знаки элементарной арифметики. Как следует из названия, изобрёл эти диаграммы выдающийся американский физик Ричард Фейнман. Сделал он это в конце 1940-х годов для графического описания некоторых математических выражений, возникающих в КЭД. Сразу оговорюсь: разумеется, вычислять диаграммы Фейнмана, за исключением нескольких самых примитивных, очень непросто. За каждой из них стоит строго определённое математическое выражение, обычно весьма сложное. Но при этом у них есть замечательное свойство — они допускают простую качественную словесную интерпретацию и помогают понять некоторые основополагающие идеи, лежащие в основе современной квантовой теории. Идеи эти скорее непривычны, чем сложны и, как мне кажется, в них вполне может на базовом уровне разобраться даже успевающий школьник.

Про эти диаграммы и содержащиеся в них идеи я и хочу рассказать. При этом никаких формул в тексте не будет вообще — только слова и картинки.

Читать далее
Total votes 55: ↑55 and ↓0+69
Comments41

Настройка Git сервера с нуля

Level of difficultyEasy
Reading time12 min
Views14K

Любой начинающий DevOps начинает своё знакомство с Git. Этот инструмент стал неотъемлемой частью рабочего процесса разработчиков по всему миру. Во многих курсах и руководствах по DevOps описывается настройка серверов через популярные платформы, такие как GitLab, а иногда и Gitea. Однако мне стало интересно попробовать другой путь — использовать встроенный в Git инструмент GitWeb.

Подробнее
Total votes 28: ↑25 and ↓3+24
Comments21

Редактор кода Helix — лучше чем NeoVim?

Level of difficultyEasy
Reading time8 min
Views14K

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

Читать далее
Total votes 21: ↑20 and ↓1+24
Comments46

Древовидные структуры в SQL в одну таблицу

Level of difficultyMedium
Reading time11 min
Views14K

Как реализовать хранение и работу каталога папок в PostgreSQL? Есть большое количество вариантов. Но хочется, чтобы реализация выглядела лаконично, не нарушала прозрачность выполняемых операций, не вызывала блокировок, не требовала большого вовлечения клиента в специфику работы и т.д. Потому сегодня попробуем реализовать хранение древовидных структур и работу с ними без использования триггеров, блокировок, дополнительных таблиц (представлений) и внешних инструментов в SQL.

Читать далее
Total votes 46: ↑46 and ↓0+53
Comments29

Главные отличия PCA от UMAP и t-SNE

Level of difficultyMedium
Reading time10 min
Views6.4K

Здесь будет рассказано о главных отличиях самого старого и базового алгоритма снижения размерности - PCA от его популярных современных коллег - UMAP и t-SNE. Предполагается, что читатель уже предварительно что-то слышал про эти алгоритмы, поэтому подробного объяснения каждого из них в отдельности приведено не будет. Вместо этого будут объяснены самые важные для практики свойства этих алгоритмов и то, на какие связанные с ними подводные камни можно налететь при неосторожности. Все особенности будут описаны на примерах, с минимумом теории; те пытливые умы, что почувствуют в процессе чтения жажду математической строгости, смогут удовлетворить её в литературе, ссылки на которую будут даны по ходу дела и в конце статьи.

Читать далее
Total votes 40: ↑40 and ↓0+52
Comments12

Как россиянину открыть ИП и ООО в Киргизии?

Reading time10 min
Views26K

Кыргызстан — государство с достаточно лояльными условиями регистрации и ведения бизнеса. Кроме того, здесь русский язык имеет статус официального, что упрощает ведение документооборота. Наиболее удобными для ведения мелкого и среднего бизнеса в Кыргызстане являются две формы — ИП, индивидуальный предприниматель и ОсОО (Аналог ООО в РФ).

Читать далее
Total votes 11: ↑6 and ↓5+2
Comments6

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

Reading time4 min
Views22K

Источник: theengineer

Аккумуляторы за последние пару десятков лет фактически не изменились. Есть определенные новшества, но они, скорее, косметические. А технологии движутся вперед и требуют новых возможностей от батарей. Периодически публикуются новые работы в этом направлении, но, к сожалению, практического применения они не получают. Сейчас корейские ученые предложили еще один вариант, и, возможно, он таки получит реализацию. Подробности под катом!
Читать дальше →
Total votes 57: ↑57 and ↓0+68
Comments64

Без холивара «переписать все на Go»: проблема переносимости в Python и ее решение

Level of difficultyMedium
Reading time19 min
Views17K

На скриптовых языках удобно разрабатывать… И на этом удобство заканчивается. Вне машины разработчика начинаются проблемы. Особенно если вы пишете какой-то прикладной тулинг — cli-утилиты, вспомогательные приложения в вашем SDK и прочее. Вы даже не можете рассчитывать на то, что у пользователя будет pip, чтобы он смог поставить все ваши зависимости, вам все нужно организовать самостоятельно.

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

Если вам покажется, что в чем-то я ошибаюсь, добро пожаловать в комментарии. Буду рад услышать любые альтернативные точки зрения. Кроме, как я уже отметил в заголовке, рекомендации переписать все на Go/Rust/You name it :) Этот холивар мы уже проходили.

Читать далее
Total votes 70: ↑70 and ↓0+78
Comments34

Что не так с OpenAPI?

Level of difficultyHard
Reading time7 min
Views36K

Как мы боролись с документированием API на наших проектах, и как мы немного сошли с ума

У вас на проекте порядок с документацией на API? Скорее всего нет. И в нашей компании порядка не было.

Не будем рассказывать, к каким печальным последствиям приводит ошибочная, устаревшая или вовсе отсутствующая API-документация. Почему же на большинстве проектов не удаётся решить такой, казалось бы, несложный вопрос?

Читать далее
Total votes 55: ↑47 and ↓8+50
Comments100

На какие AI Coding Assistants стоит обратить внимание в 2024?

Reading time8 min
Views19K

Не является секретом, что LLM в настоящее время являются неотъемлемой частью нашего рабочего процесса. Особое внимание заслуживает AI Coding Assistant — искусственный интеллект, или просто программный помощник, который поддерживает разработчиков, помогая писать более качественный и точный код, тем самым экономя время и ресурсы.

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

Но прежде чем мы погрузимся в детали этих инструментов, давайте ответим на вопрос: "Что такое эти помощники?".

Приятного прочтения(:

Читать далее
Total votes 19: ↑19 and ↓0+20
Comments11
1
23 ...

Information

Rating
4,923-rd
Location
München, Bayern, Германия
Registered
Activity