Pull to refresh
2
0
Send message

Wine 8.0: что «выросло» в новой версии? Возможности и совместимость с ПО

Reading time4 min
Views22K

На Хабре публиковалась новость о Wine 8.0, новый релиз был представлен спустя целый год разработки и трех десятков тестовых версий для «обкатки». Наконец, несколько дней назад разработчики представили стабильный релиз Wine 8.0. Работа действительно очень объемная — команда внесла почти 9 000 изменений.

В новой версии стабильно работает множество различного виндового софта. По словам разработчиков, это 5266 программ, но, конечно, на самом деле их может быть значительно больше, особенно если учитывать софт, который работает с проблемами, но все же работает. Давайте посмотрим на ключевые изменения нового релиза и того, что он может предложить пользователям.
Читать дальше →

Принципы SOLID на JS, теперь точно простым языком, но не очень коротко

Reading time9 min
Views33K

SOLID — универсальный набор принципов разработки поддерживаемого программного обеспечения. В данной статье я попытался разъяснить свое понимание принципов SOLID в отношении языка JavaScript: особенности реализации, некоторые синтаксические конструкции и, конечно, примеры из жизни. Если вам стало интересно, то прошу под кат.

Читать далее

Как ускорить работу PostgreSQL

Reading time10 min
Views24K

В статье рассказываем, как оптимизировать базу данных PostgreSQL на примере Linux на IBM Z. Опираясь на представленные примеры, вы шаг за шагом узнаете, какие опции и параметры конфигурации улучшат установку PostgreSQL с точки зрения:

Читать далее

Что выбрать для очередного API: HTTP или gRPC

Reading time6 min
Views24K


Команда VK Cloud перевела статью с подробным техническим сравнением двух типов API: HTTP и gRPC. Автор рассказывает о своем опыте работы и описывает нюансы, преимущества и недостатки каждой технологии.
Читать дальше →

Как я написал самую эффективную библиотеку для реактивного состояния

Level of difficultyMedium
Reading time9 min
Views12K

Всем привет, меня зовут Артём Арутюнян, и я уже пять лет изучаю реактивное программирование. Меня задела недавняя статья, Big State Managers Benchmark, в которой моя библиотека Reatom заняла лишь третье место (скорее второе, ну да ладно) и я решил написать самую эффективную реализацию реактивных состояний, убрав лишние фичи, сфокусировавшись на простоте и производительности.

Немного поэкспериментировав я добился удивительных результатов, в сто строк (0.3KB gzip) уместив максимально простое апи, которое позволяет подключаться к React и Svelte без дополнительных адаптеров. Но самое главное, найденный алгоритм фундаментально покрывает любые краевые случаи условных переподписок зависимых вычислений, с которыми подавляющее большинство популярных библиотек не справляется и дают глитчи.

Если вам интересны детали реализации — прошу под кат.
Читать дальше →

Сжатие без потерь — главная концепция в нашей жизни

Level of difficultyEasy
Reading time7 min
Views21K

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

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

Все мы знаем и используем компьютерные архиваторы: ZIP, RAR, Brotli и т. д. Но мало кто видит в них модель интеллекта. Это даже как-то странно на первый взгляд. Хотя если подумать, то идеальное сжатие — это синоним понимания.
Читать дальше →

Пара HTTP-заголовков, о которых, похоже, не знают разработчики

Reading time5 min
Views18K

Вот какое дело: как показывают мои изыскания, большинство веб-разработчиков поразительно мало знают об HTTP-заголовках или, в целом, о стандарте HTTP. Я имею в виду, что я понимаю то, что во многих университетах и школах, вероятно, этому не учат (там, где я учился, определённо, так и было). А кто будет, сидя дома праздным воскресным утром, думать о том, чтобы развлечь себя чтением стандарта HTTP? Да никто. Знаю, но… есть одно важное обстоятельство: отсутствие хоть какого-то понимания стандарта HTTP — это зияющая дыра в знаниях веб-разработчиков, в знаниях многих из тех, кто это читает. Предлагаю это исправить.

Читать далее

Что такое мат.анализ и с чем его едят?

Reading time5 min
Views28K

Давайте знакомиться: я Меликян Маргарита, кандидат физико-математических наук, уже 4й год работаю на мехмате МГУ и кафедре высшей математики МФТИ, а также несколько лет как преподаю в ШАД Helper. Преподаю я как разнообразные курсы из блока анализа, так и вероятностного блока, и сегодня я хочу немного поговорить о том, каково это – осваивать математический анализ и каких ошибок следует избегать, какие лайфхаки применить.

Первая препона, с которой сталкивается человек в самом начале освоения новой дисциплины, даже если он это делает “под присмотром” преподавателя – это литература. На что нужно обращать внимание и ориентироваться при выборе?

Читать далее

Введение в нечёткую логику

Reading time9 min
Views30K
image

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

Создавая такой алгоритм, вы заметите, что просто замусориваете ваш код логикой if-else (пока он не превратится в кашу), а самим вам начинает казаться, что вот так просто не прокатит.

Итак, если только вас не пробирает дрожь от математики – читайте дальше. Здесь в дело вступает нечёткая логика! Немного контекста: слово «нечёткий» (англ. «fuzzy») в данном случае означает «труднопонимаемый» — таков может быть, например, код вашего коллеги.

В этом посте я постараюсь объяснить нечёткую логику и объяснить, как она работает.
Читать дальше →

Анимация грида в CSS

Reading time4 min
Views11K

Я рад пролить свет на тот факт, что CSS grid-template-rows и grid-template-columns теперь можно анимировать во всех основных веб-браузерах! Что ж, CSS Grid уже давно технически поддерживает анимацию, ведь она встроена прямо в спецификацию CSS Grid Layout Module Level 1.

Читать дальше →

Ультра-маленькие демки под DOS

Reading time13 min
Views16K

В статье вы узнаете как сделать маленькие программы для MS-DOS на ассемблере, я покажу как рисовать 2D графику напрямую в видео-буфер. Может быть, вы даже вдохновитесь на создание собственного демо, которое будет ставить рекорды по размерам исполняемого файла.

Читать далее

Бинарники из Python-файлов: Nuitka-компилятор, обзор и небольшое исследование

Reading time8 min
Views33K


Здравствуйте, дорогие хабровчане. Сегодняшняя статья — результат моего небольшого исследования. Я хочу показать, как компилировать бинарные модули расширения (.so) из python-файлов, чем они будут отличаться и как с ними работать. Делать это мы будем при помощи компилятора Nuitka. Он наиболее известен тем, что с его помощью можно создавать исполняемые файлы (.exe) для Windows. Однако, кроме того, он позволяет создавать и бинарные модули python. Всех, кому это интересно, прошу под кат.

Читать дальше →

Эчар… как много в этом слове

Reading time5 min
Views5.7K

Статья об этапах подбора ИТ персонала, глазами кандидата.

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

Читать далее >>

Почему запись от руки остаётся лучшим способом запоминания информации

Reading time6 min
Views24K

Представьте: рабочий день в компании, занимающейся обработкой платёжных поручений. Возникла критически важная задача дата-инжиниринга, которую нужно выполнить. В этом случае я тот самый дата-инженер, которому нужно решить задачу, но у меня недостаёт информации, необходимой для завершения модели данных. Я услышал информацию на совещании. Её обсуждали на standup-митинге. У меня есть несколько запутанных текстовых заметок, но я не могу вспомнить технических подробностей, которые необходимы для завершения работы. Никто не может ответить на мой вопрос. И тут меня озаряет: во время митинга мне нужно было делать заметки вручную.

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

Python Дайджест: как обновиться с Python 3.4 до Python 3.11, если pip уже сломан

Reading time6 min
Views14K



Python Дайджест собирает IT-новости уже 9 лет, рассказывает о концепциях, проектах, релизах. Кодовая база за это время мало изменилась и уже деградировала. Более 5 лет не хватало сил и времени, чтобы привести проект в актуальное состояние. Django с 1.9 обновилась уже до 4.1 версии, Python 3.4 не актуален, да даже обновить пакет через pip не получается, потому что сломан.


В 4 частях расскажу от первого лица, как 9-летний проект из состояния outdated вернулся в actual состояние и снова набрал 100 баллов в PageSpeed.


Начну с обновления до актуального Python и Django.

Читать дальше →

JavaScript: заметка об операторе конвейера

Reading time8 min
Views6.1K


Привет, друзья!


В этой небольшой заметке я хочу рассказать вам об одном интересном предложении по дальнейшему совершенствованию всеми нами любого JavaScript, а именно: об операторе конвейера (pipe operator) |>.


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


Если вам это интересно, прошу под кат.

Читать дальше →

Минимальный геном как операционная система

Reading time8 min
Views5.3K

Как знают мои постоянные читатели, кроме основного блога я веду на Хабре ещё один, где публикую переводы с английского, посвящённые строгим IT-темам. 21 января я вывесил там материал об игре «Жизнь» Джона Конвея, рассказывающий о создании минимальной жизнеспособной единицы по правилам этой игры. Активное обсуждение статьи, в котором поучаствовал даже уважаемый Павел Гранковский @Pavgran, коммиттер игры, упоминаемый в посте, вернуло меня к мыслям о сборке минимально жизнеспособного биологического генома. Очевидно, что современные возможности секвенирования ДНК и амплификации генов переводят такую задачу в разряд решаемых. На пути к созданию полностью синтетических организмов следовало бы освоить создание полусинтетических, основой для которых мог бы послужить именно такой минимальный геном. Ниже я расскажу о перепрограммировании геномов, искусственном и естественном редуцировании геномов, а также о перспективах таких исследований.

Читать далее

Как научиться печатать вслепую и перестать волноваться о символах на кейкапах

Reading time2 min
Views8K

Как научиться печатать вслепую и перестать волноваться о символах на кейкапах

В данной статье мы расскажем, что такое touch typing (или слепая печать по-русски), а также почему стоит перейти на кейкапы без символов.

Читать далее

Тестирование аутентификации в веб-приложениях

Reading time6 min
Views12K

Введение

Чтобы идентифицировать личность в группе людей, нам необходима любая уникальная комбинация вводных, с помощью которой мы можем это сделать. Эта комбинация может быть его именем, фамилией, адресом или номер социального страхования. Это всё является данными, которые могут помочь пользователям однозначно идентифицировать себя. Перечисленное относится к людям в реальной жизни, но что если мы хотим идентифицировать себя в веб-приложении. Для этого веб-приложения используют такое понятие как «Аутентификация».  

Что такое аутентификация? 

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

«Аутентификация» — это процесс, который подтверждает вашу личность в цифровом пространстве.

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

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

Читать далее

Повышаем живучесть Raft в реальных условиях

Reading time14 min
Views5.2K
Популярность алгоритма Raft в последние годы растёт. У него достаточно ясное описание, а реализации появляются во всё большем количестве проектов. На бумаге, будь то математика или рекламные статьи, выглядит хорошо. Но на практике не все обещания Raft можно реализовать без дополнительных решений.

Меня зовут Сергей Останевич. Я архитектор репликации в проекте Tarantool, платформе in-memory-вычислений с гибкой схемой данных для эффективного создания высоконагруженных приложений. Над материалом этой статьи мы работали вместе с Бориславом Демидовым. Мы поделимся нашим опытом реализации Raft, расскажем о поддержке работоспособности кластера Tarantool в условиях частичной связности и приведём реальные примеры того, как чистый Raft не справился с задачей.


Читать дальше →

Information

Rating
6,139-th
Registered
Activity