Как стать автором
Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Организация свободного информационного сообщества на основе любого протокола обмена сообщениями с открытым API

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров780

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

Вариант решения проблемы
Всего голосов 5: ↑1 и ↓4-3
Комментарии3

Новости

Room для Kotlin Multiplatform. Пробуем нативное решение

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров615

Всем привет! На связи Анна Жаркова, руководитель группы мобильной разработки в компании Usetech. В начале мая Google нас порадовали релизами нескольких библиотек для локальных хранилищ. Наконец, в приложения Kotlin Multiplatform можно полноценно использовать Room (версия 2.7.0-alpha01 и выше).
И сегодня мы опробуем работу с данной библиотекой на примере небольшого приложения Todo, написанного на KMP с использованием Compose Multiplatform.

Кроме Room, в проекте используется библиотека Lifecycle-viewmodel для KMP. И Koin для DI и гармонии.

Читать дальше →
Рейтинг0
Комментарии0

Оптимизация CROSS JOIN — первые шаги

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров578

Различные СУБД предлагают широкий набор разновидностей операторов JOIN для таблиц. Если Вам встретилась проблема с производительностью CROSS JOIN, - например, декартово произведение таблицы с миллионом записей самой на себя, - добро пожаловать, в этой статье перечислены простейшие способы избавиться от CROSS JOIN.

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

Примеры в статье рассматриваются на основе CROSS JOIN из ClickHouse. Текущая версия ClickHouse не оптимизирует CROSS JOIN автоматически. Также стоит отметить, что поскольку часто SQL запросы не пишутся вручную, а, например, собираются по частям программно, то перечисленные далее случаи вполне реальны.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии3

Не будьте героем

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.2K

Привет, Хабр! Я Женя Кучерявый, директор по фронтенду в Rentu. В этой статье расскажу как мы переезжали с Vue2 на Vue3, какие шишки набили и чему научились. Статья не хардовая.

Читать далее
Всего голосов 7: ↑6 и ↓1+5
Комментарии10

Истории

Путь в ИБ глазами управленца

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров638

Здравствуйте! Я Александр Шульман, руководитель компании Active в которой мы уже несколько лет занимаемся амбициозным проектом — пишем продукт для обеспечения кибербезопасности и достигли первых результатов: полгода назад мы получили аккредитацию от Минцифры, попали в реестр отечественного софта и у нас открылись продажи. Я хочу поделиться своим опытом и представлениями о рынке кибербезопасности с вами с позиции управленца, а не от лица специалиста ИБ, хочу рассказать о своих разочарованиях, открытиях и о том, как в итоге у нас в команде родилась идея сделать свой вклад в рынок ИБ. Мне кажется, что это многим будет интересно, т.к. рынок ИТ активно движется в сторону информационной безопасности по причинам регуляции и по причине роста реальных угроз, а значит, все больше менеджеров и управленцев столкнется с вызовами по кибербезопасности.

Давай посмотрим
Всего голосов 3: ↑1 и ↓2-1
Комментарии4

Спецификация уникальных идентификаторов UUIDv7 для ключей баз данных и распределенных систем по новому стандарту RFC9562

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров1.5K

Долгожданный стандарт RFC9562 "Universally Unique IDentifiers (UUID)" с тремя новыми версиями идентификаторов UUID (6, 7 и 8) вместо малопригодного RFC4122 наконец-то вступил в силу. Я участвовал в разработке нового стандарта. Обзор стандарта можно посмотреть в статье.

Введенные новым стандартом идентификаторы седьмой версии UUIDv7 — это лучшее, что теперь есть для ключей баз данных и распределенных систем. Они обеспечивают такую же производительность, как и bigint. UUIDv7 уже реализованы в том или ином виде в основных языках программирования и в некоторых СУБД.

Сгенерированные UUIDv7 имеют все преимущества UUID и при этом упорядочены по дате и времени создания. Это ускоряет поиск индексов и записей в БД по ключу в формате UUID, значительно упрощает и ускоряет базы данных и распределенные системы. Неупорядоченность значений UUID прежде сдерживала использование UUID в качестве ключей и вынуждала разработчиков выдумывать собственные форматы идентификаторов или довольствоваться последовательными целыми числами в качестве ключей.

Черновик стандарта активно обсуждался на Хабре в апреле 2022 года в комментариях к статье "Встречайте UUID нового поколения для ключей высоконагруженных систем".

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

Предложенная мной ниже спецификация UUIDv7 с дополнительной функциональностью описывает максимально надежный и удобный вариант структуры UUIDv7 для самых сложных и высоконагруженных информационных систем. Функциональность упорядочена по приоритету реализации

Читать далее
Всего голосов 7: ↑6.5 и ↓0.5+6
Комментарии7

Старые языки программирования, новые успехи: растёт популярность COBOL и Fortran

Время на прочтение5 мин
Количество просмотров2.6K

С недавних пор такие ЯП, как COBOL и Fortran, снова стали набирать «вес» в рейтингах. Собственно, они никогда и не уходили из поля зрения разработчиков, просто постепенно теряли позиции.

Но сейчас ситуация изменилась. Один из них даже занял 10 место в Tiobe, поднявшись на 9 позиций. При этом один из самых популярных современных языков, а именно PHP, постепенно опускается в рейтингах. Конечно, они никогда не были оптимальным показателем востребованности ЯП. Тем не менее это и не последний фактор, отмахнуться от них тоже не получится. Подробности — под катом.

Читать далее
Всего голосов 13: ↑7.5 и ↓5.5+2
Комментарии12

Обзор бесплатных чат-ботов в телеграме 2024

Время на прочтение6 мин
Количество просмотров3.6K

Запуск инновационных технологий, таких как Midjourney и Chat GPT, значительно повысил интерес к искусственному интеллекту, что, в свою очередь, способствовало появлению в Телеграме специализированных чат-ботов. Эти боты предоставляют возможность использовать функции популярных нейросетей без необходимости регистрации и, зачастую, бесплатно.

Предлагаю рассмотреть некоторых ботов и оценить их функционал. Приятного прочтения! (:

Читать далее
Всего голосов 15: ↑13 и ↓2+11
Комментарии5

Чудесное совпадение или ожидаемая связь: почему π²≈g

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров18K

Давайте ненадолго перенесёмся в школьные годы и вспомним уроки математики и физики. Помните, чему равно число π? Естественно помните, мы же на Хабре! А чему равно π в квадрате? Это тоже странный вопрос. Конечно, 9,87. А чему равно ускорение свободного падения g помните? Ещё бы, это число так тщательно вдолбили в нашу память, что захочешь — не забудешь: 9,81 м/c². Конечно, оно может варьироваться, но для решения базовых школьных задачек мы обычно использовали именно это значение.

А теперь, внимание, следующий вопрос: а с какого это перепугу π² примерно равно g?

Читать далее
Всего голосов 101: ↑107.5 и ↓-6.5+114
Комментарии85

Это база машинного обучения

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.2K

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

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

Можно, конечно, попытаться обойтись и без машинного обучения. Самый простой подход — проанализировать данные и составить понятный набор правил формата if-else (если-то). Между прочим, это применяется в реальной жизни, например, при анализе потребительской корзины. Составляется набор ассоциативных правил вида {хлеб, чай} → {молоко}. Это означает, что если покупатель приобретает хлеб и чай, то, скорее всего, он также купит молоко. Вуаля — мы сделали прогноз на будущее. 

Читать далее
Всего голосов 4: ↑4.5 и ↓-0.5+5
Комментарии2

Как новый компилятор K2 ускоряет компиляцию Kotlin на 94%

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров3.3K

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

Не за горами выпуск новой версии Kotlin 2.0, основной частью которого является изменение компилятора на K2. 

По замерам JB, K2 ускоряет компиляцию на 94%. Также он позволит ускорить разработку новых языковых фич и унифицировать все платформы, предоставляя улучшенную архитектуру для мультиплатформенных проектов.

Но мало кто изучал, как работает K2, и чем он отличается от K1. 

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

Читать далее
Всего голосов 26: ↑27 и ↓-1+28
Комментарии1

WireGuard Воскрес

Время на прочтение1 мин
Количество просмотров19K

Спешим к сообществу с радостной новостью - заблокированный WireGuard можно реанимировать с помощью нашего клиента AmneziaVPN!

Многие из вас слышали, что в России и некоторых других странах блокируются VPN, работающие на протоколе WireGuard. Теперь есть решение, чтобы он снова заработал!

Читать далее
Всего голосов 22: ↑18.5 и ↓3.5+15
Комментарии34

Байт-кодовые VM в неожиданных местах

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров2.9K

Отвечая на вопрос в Twitter, Ричард Хипп написал, почему SQLite использует байт-кодовую VM для исполнения операторов SQL.

Вероятно, большинство людей ассоциирует байт-кодовые VM с языками программирования общего назначения, например, с JavaScript или Python. Но иногда их можно встретить в неожиданных местах! В статье я расскажу о тех, которые знаю.
Читать дальше →
Всего голосов 26: ↑31 и ↓-5+36
Комментарии4

Ближайшие события

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

Лучшими кубитами для квантовых вычислений могут быть нейтральные атомы

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров640

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

В конце прошлого года технологический гигант IBM объявил о том, что может показаться важной вехой в квантовых вычислениях: о первом в мире чипе под названием Condor, содержащем более 1000 квантовых битов или кубитов. Прошло всего два года после того, как компания представила Eagle, первый чип с более чем 100 кубитами. Казалось, что эта область стремительно движется вперёд. Создание квантовых компьютеров, способных решать полезные задачи за рамками даже самых мощных классических суперкомпьютеров, требует ещё большего их масштабирования — возможно, до многих десятков или сотен тысяч кубитов. Но это ведь всего лишь вопрос техники, верно?

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Vintik & Shpuntik Challenge

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров2.3K

Всем привет. Впереди длинные выходные, а погода (в средней полосе России) не шепчет. Посему хочу предложить вам развлекалочку на стыке математики и программирования, а также возможность немного улучшить свое финансовое положение 😊.

История эта началась лет 10 назад, когда моя дочь София Валерьевна принесла задачку (автор ее - Дмитрий Юрьевич Кузнецов аka ДЮК)  с олимпиады для 7-го класса.

«Незнайка записывает 9 разрядов 10-значного десятичного числа и пропускает один по своему выбору. Пропущенный разряд он предлагает записать Винтику, а затем показывает полученное 10‑значное число Шпунтику. Как могут Винтик и Шпунтик договориться, чтобы Шпунтик угадал, какой именно разряд записал Винтик? »

Читать далее
Всего голосов 14: ↑17.5 и ↓-3.5+21
Комментарии21

ELK для бизнес-аналитики: как мы разбираем причины интервенций на кассах самообслуживания с весовой платформой

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров444

Привет! Меня зовут Даша, я работаю в CSI — в команде, которая развивает направление самообслуживания. Пару лет назад мы разработали для нашей кассы самообслуживания новый модуль: контрольно-весовую платформу. В статье я пошагово расскажу: как мы собираем у клиентов-ритейлеров данные, необходимые для аналитики работы платформы, какие строим дашборды, и как происходит главное: работа по снижению количества интервенций — ситуаций, когда самостоятельная покупка прерывается необходимостью вмешательства кассира-помощника на «острове» самообслуживания.

Графики, цифры, салат в горшочке
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Профессия «белый хакер»: как превратить хобби в работу

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров1.9K

На связи Positive Education, и мы продолжаем цикл публикаций о профессиях в сфере кибербезопасности. Потребность в таких экспертах растет с головокружительной скоростью, и сейчас это уже не одна профессия «специалист по информационной безопасности». Внутри отрасли сформировались более узкие специальности (ранее публиковали схему профессий), и мы решили рассказать о 10 самых трендовых профессиях в сфере кибербезопасности (о первых двух можно почитать здесь и здесь). Сегодня хотим познакомить вас с белым хакером — человеком, который последние 15 лет развивает это направление в России.

Следуй за белым хакером
Всего голосов 7: ↑5.5 и ↓1.5+4
Комментарии0

Использование временных таблиц (GTT) в ABAP-разработках

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров340

GTT – global temporary tables, таблицы которые наполняются и очищаются в рамках ABAP-сессии (application session), но находятся при этом на уровне БД (то есть данные не передаются между Database и Application).

GTT могут помочь сделать код по выборке из БД более удобочитаемым, а также сократить количество передаваемых данных между DataBase и Application.

ABAP в GTT подробнее
Рейтинг0
Комментарии3

Шардирование баз данных и проектирование систем

Время на прочтение6 мин
Количество просмотров1.7K
image

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

Такой подход позволяет избежать проблем с производительностью, возникающих, когда одна из машин работает в условиях перегрузки, и обеспечивает более экономичное и грамотное масштабирование. По мере увеличения объема данных и трафика все чаще возникает необходимость горизонтального масштабирования путем добавления новых машин, а не вертикального путем модернизации одного большого сервера.
Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Топ самых интересных CVE за апрель 2024 года

Время на прочтение5 мин
Количество просмотров655

Всем привет! Это наша традиционная подборка самых интересных CVE прошлого месяца. В апреле десяточками по CVSS отметились уязвимости на внедрение команд в ПО для анализа сетевого трафика Flowmon и PAN-OS. Как обычно, всплыли несколько критических уязвимостей в плагинах для Wordpress.

Внимания заслуживают также нулевой день в межсетевых экранах от Cisco на отказ в обслуживании, уязвимости в продуктах Splunk и RCE в десктопном приложении Telegram — с маленькой опечаткой в коде в качестве напоминания, что лучше пользоваться веб-версией. За подробностями добро пожаловать под кат!

Читать далее
Рейтинг0
Комментарии0
1
23 ...