Pull to refresh

ReactOS: осенний марафон

Reading time 3 min
Views 8.2K
Фонд ReactOS corporate blog C++ *
Осень — традиционное время оживления в стане разработчиков ReactOS.

В своей группе перед хелоуином мы долго «пугали» участников страшными картинками, и каждый раз из-за проблем в дата-центре по совпадению у нас падал сайт. В действительности же мы таким образом представили новейшую разработку — менеджер управления памятью на C++ под кодовым именем Monstera. На данный момент код компонента находится в отдельной одноименной ветке. Новый менеджер позволит избавиться от 90% процентов имеющихся проблем вида "memory could not be read/write" — главной беды ReactOS.

Напутствие от Алексея Брагина
Initial commit of a small subproject I wanted to do for years. If you like it, please feel free to join me as there is more than enough place for improvement.This commit brings the first very small implemented part (mainly everything related to phase 0 initialization).
A cut from the readme file:
Monstera is a new implementation of a memory manager (along with a cache manager) compatible with the ReactOS kernel at source code level and providing the same binary compatible Native API through a lightweight wrapper.
Monstera is implemented in a subset of C++ programming language. A document
outlining specific restrictions, coding style and other considerations is
available.
Key ideas:
1. Object oriented language for object oriented kernel. When NT was implemented, C++ wasn't that good.
2. Simplicity > optimization. Nowadays we can sacrifice a bit of performance in favor of more robust implementation.
3. Same Native API. Internal implementation and external interfaces are two different things.
4. Don't drift away too much. It's still based on NT architecture, but think of it as if Microsoft Research would decide to reimplement NT in C++ for fun.
Credits:
— ReactOS Portable Systems Group for the code which is used as a base in many places of Monstera.
— Alex Ionescu for his invaluable contribution to the ReactOS kernel.
— Timo Kreuzer, Johannes Anderwald for their C++-in-the-kernel-mode help.
— Amine Khaldi for help with the build environment.
— ReactOS team for their great work.

Дальше больше
Total votes 56: ↑49 and ↓7 +42
Comments 14

Упрощаем бинарный поиск в Excel — реализация Double VLOOKUP Trick с помощью UDF

Reading time 3 min
Views 9.7K
High performance *Semantics *Algorithms *Development for e-commerce *
Добавлю в копилку статей Хабра о Бинарном поиске еще одну. Речь пойдет о кастомной реализации, может быть полезно всем, кто часто использует в работе ВПР для сравнения больших списков или для поиска данных в больших массивах.
Читать дальше →
Total votes 12: ↑11 and ↓1 +10
Comments 25

Усовершенствуем функцию ВПР в Excel

Reading time 2 min
Views 14K
Programming *Algorithms *
Sandbox

Прочтение публикации Упрощаем бинарный поиск в Excel сподвигло на дополнительное усовершенствование функции ВПР по сравнению с приведенным в статье.


Что не было учтено, и что хотелось бы добавить:

Читать дальше →
Total votes 18: ↑18 and ↓0 +18
Comments 13

Браузеры на основе Chromium — теперь и в ReactOS

Reading time 2 min
Views 18K
Фонд ReactOS corporate blog Open source *Reverse engineering *
Привет, Хабр! Вот и настал тот момент, когда одна картинка лучше тысячи слов.

image

Теперь в ночных сборках ReactOS можно установить и даже запустить хромоподобные браузеры.
Стоит отметить, что пока требуется использовать следующие ключи запуска:

--allow-no-sandbox-job --disable-preconnect --disable-translate --disable-accelerated-video --disable-gpu --disable-plugins --no-sandbox

При этом, вероятно, не все они жизненно необходимы, и от некоторых уже можно избавится, Напишите нам об итогах своих экспериментов.
Total votes 95: ↑92 and ↓3 +89
Comments 41

Второй Hackfest в истории ReactOS начнется 14 августа 2017

Reading time 2 min
Views 4.9K
Фонд ReactOS corporate blog Open source *Reverse engineering *Development for Windows *
Спешим поделиться важной информацией.

Мы решили продолжить традицию, поэтому второму в истории ReactOS хакфесту быть! Мероприятие пройдет с 14 по 18 августа 2017 года в Кёльне (Германия). Приглашаются желающие, для участия требуется предварительная регистрация.

Всю информацию о событии можно получить на специальной вики-страничке.

image
Фотография с хакфеста, прошедшего в 2015 году

ReactOS хакфест будет посвящен интенсивной работе по улучшению работоспособности операционной системы. Большое внимание будет уделено тестированию различных USB-устройств. Если вам интересно, как прошел предыдущий хакфест, то рекомендуем ознакомиться с отчетом об мероприятии 2015 года.

Свое участие уже подтвердили такие разработчики, как Colin Finck, Eric Kohl, Giannis Adamopoulos, Mark Jansen, Thomas Faber, Victor Martinez, Timo Kreuzer.

Список участников и идей для хакфеста постоянно обновляется на второй вики-страничке.
Total votes 25: ↑24 and ↓1 +23
Comments 5

ReactOS 0.4.6 доступен для загрузки

Reading time 2 min
Views 22K
Фонд ReactOS corporate blog Open source *Reverse engineering *Development for Windows *
Привет всем хабра-читателям!

Практически одновременно с развязкой третьего сезона сериала Twin Peaks мы выпустили очередной релиз операционной системы ReactOS с номером 0.4.6. Релиз доступен для загрузки прямо сейчас, и совсем не нужно ждать октября или ноября, как в случае с iPhone X.



Скачать | Прочитать официальную новость | Посмотреть список изменений | TL;DR | Тесты

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

image
Читать дальше →
Total votes 105: ↑98 and ↓7 +91
Comments 160

Выбираем файловую систему независимую от ОС

Reading time 4 min
Views 84K
Configuring Linux *Data storage *Data storages *
Всем привет. Недавно я задался вопросом как организовать обмен файлами между операционными системами. Предположим, я хочу установить сразу три основные ос на своём ноутбуке: линукс, виндовз и хакинтош. Каждая ос предназначается для своих задач: Линукс — для работы и программирования, винда — для игр и хак — просто для разных экспериментов.

Поскольку я создаю обучающие видео ролики о линуксе, мне удобнее работать именно на нём. Но монтировать хочется попробовать в «финальном вырезе». Уж очень мне приглянулась идея магнитной ленты времени.



Так вот, задача стоит такая: нужен раздел на системном накопителе, причём с такой файловой системой, которая поддерживается на чтение и запись всеми перечисленными операционками. На этом разделе будут храниться скачанные из интернета файлы и меж-операционные проекты.
Читать дальше →
Total votes 57: ↑35 and ↓22 +13
Comments 85

Подключение и настройка графиков TradingView

Reading time 9 min
Views 36K
JavaScript *Node.JS *
Tutorial


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


Статья будет в формате "книги рецептов" с open source решениями для криптовалютной биржи Binance и Forex.

Читать дальше →
Total votes 12: ↑10 and ↓2 +8
Comments 3

Как скрестить Excel c интерактивным веб-приложением

Reading time 5 min
Views 19K
Website development *Designing and refactoring *Development for Office 365 *Development for Windows *
Sandbox
Не секрет, что Excel довольно мощный инструмент для работы с числовыми табличными данными. Однако средства, которые предоставляет Microsoft для интеграции с ним, далеки от идеала. В частности, сложно интегрировать в Excel современные пользовательские интерфейсы. Нам нужно было дать пользователям Excel возможность работать с довольно насыщенным и функциональным интерфейсом. Мы пошли несколько другим путем, который в итоге показал хороший результат. В этой статье я расскажу, как можно организовать интерактивное взаимодействие Excel c веб-приложением на Angular и расшить Excel практически любым функционалом, который реализуем в современном веб-приложении.


Читать дальше →
Total votes 16: ↑13 and ↓3 +10
Comments 19

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

Reading time 7 min
Views 10K
Vivid Money corporate blog Development of mobile applications *Designing and refactoring *Development for Android *Kotlin *

Всем привет! Меня зовут Даниил Климчук. Год назад я пришел в vivid.money третьим Android-разработчиком. Несмотря на это, в проекте практически не было кода, а первые фичи только начинали разрабатываться. Нам нужно было запустить новое банковское приложение в европе, где придется конкурировать с такими компаниями, как Revolut. Уже тогда было понятно, что команда очень быстро значительно вырастет. Конечно, стоило сразу задуматься о том, как будет развиваться архитектура проекта. Через год, когда проект запустится, на это не останется времени, а оправданий вносить значительные изменения просто не будет. Одним из ключевых решений на начальном этапе стал выбор архитектуры слоя представления. В этой статье я поделюсь тем, как мы его принимали.

Читать далее
Total votes 15: ↑14 and ↓1 +13
Comments 9

Работа с толстофичами: как разобрать слона на части и собрать обратно

Reading time 20 min
Views 3.6K
HeadHunter corporate blog Development of mobile applications *Development for Android *

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


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


Читать дальше →
Total votes 8: ↑8 and ↓0 +8
Comments 0

Разбираем ELM архитектуру в рамках мобильного приложения

Reading time 6 min
Views 8.9K
Vivid Money corporate blog Programming *Designing and refactoring *Development for Android *Kotlin *

Это вторая часть серии статей об архитектуре android приложения vivid.money. В ней мы расскажем в деталях о том, что из себя представляет ELM архитектура. В связи с тем, что наша реализация доступна в open source в качестве библиотеки Elmslie, в статье будет использоваться нейминг из нее.

Читать далее
Total votes 2: ↑2 and ↓0 +2
Comments 9

Пишем под android с Elmslie

Reading time 6 min
Views 4.4K
Vivid Money corporate blog Programming *Designing and refactoring *Development for Android *Kotlin *
Tutorial

Это третья часть серии статей об архитектуре android приложения vivid.money. В ней мы расскажем об Elmslie - библиотеке для написания кода под android с использованияем ELM архитектуры. Мы назвали ее в честь Джорджа Эльмсли, шотландского архитектора. С сегодняшнего дня она доступна в open source. Это реализация TEA/ELM архитектуры на kotlin поддержкой android. В первой статье мы рассказали о том почему выбрали ELM. Перед прочтением этой статьи лучше ознакомиться как минимум со второй частью, в которой мы более подробно рассказывали том собственно такое ELM.

Читать далее
Total votes 7: ↑6 and ↓1 +5
Comments 4

Реализация Unidirectional Data Flow в супераппе. Часть I

Reading time 7 min
Views 6K
inDrive.Tech corporate blog Development for iOS *Development of mobile applications *

Привет, я Антон, iOS-разработчик в inDriver. Год назад я присоединился к компании и стал одним из первых разработчиков в новой платформенной команде. Перед платформенными командами, в отличии от продуктовых, стоят задачи по разработке, а не по продукту как таковому. Мы выделили основные направления: создание общих компонент и стандартов разработки, а также развитие и поддержка архитектуры проекта. В этой статье остановимся на архитектуре. Разберем, с какими проблемами столкнулись в процессе ее масштабирования, какие ошибки допустили и как исправили. Обо всем по порядку.

UPD: технические детали подробнее рассказаны во второй части.

Читать далее
Total votes 6: ↑6 and ↓0 +6
Comments 4

Реализация Unidirectional Data Flow в супераппе. Часть II

Reading time 7 min
Views 3.7K
inDrive.Tech corporate blog Programming *Development for iOS *Development of mobile applications *

В предыдущей статье мы сформулировали нашу главную проблему при масштабировании Unidirectional Data Flow (UDF) — модуляризацию. Сегодня существует много UDF-фреймворков на Swift, но мало кто уточняет, как их масштабировать на большое, многомодульное приложение. Мы решили поделиться, с какими сложностями столкнулись и к каким решениям пришли. 

В статье рассмотрим 3 проблемы, с которыми столкнулись, и сравним, как разные фреймворки их решают. Для сравнения мы выбрали одни из самых популярных — ReSwift и The Composable Architecture (TCA). В конце расскажем, какое решение мы в итоге реализовали. Приступим!

Читать далее
Total votes 17: ↑17 and ↓0 +17
Comments 9

Модуляризация DI в проекте с UDF-архитектурой

Reading time 7 min
Views 1.7K
inDrive.Tech corporate blog Programming *Development for iOS *Development of mobile applications *Swift *

Всем привет, меня зовут Юрий Трыков, я Head of Mobile в inDriver. В этой статье расскажу, как в рамках платформенной iOS-команды мы выстраивали модуляризацию DI-контейнеров в проекте, зачем вообще нам нужны DI-контейнеры и как настраивать взаимодействие UDF-компонентов и DI-контейнеров. Приятного чтения!

Читать далее
Total votes 9: ↑9 and ↓0 +9
Comments 6

Модуляризация доменного слоя в UDF. Часть II

Reading time 12 min
Views 1.8K
inDrive.Tech corporate blog Development for iOS *Development of mobile applications *Swift *

В предыдущей части мы рассмотрели, что такое домен и какими принципами можно руководствоваться при его модуляризации. В этой части сконцентрируемся на типах связей между модулями и различиях в проектировании ООП и UDF-кода. Приятного чтения!

Читать далее
Total votes 8: ↑8 and ↓0 +8
Comments 4

GetX во Flutter: Строим Unidirectional Data Flow с Rx-переменными

Reading time 2 min
Views 1.8K
Dart *Flutter *

Случается, что связку .obs/Obx критикуют за нарушение инкапсуляции и за прямой доступ к изменению переменной из View минуя Model. Статья описывает подход к устранению этого недостатка и к реализации Unidirectional Data Flow поверх Rx-переменных библиотеки GetX с помощью паттерна Decorator.

Читать далее
Total votes 2: ↑0 and ↓2 -2
Comments 4

Как сделать Android-приложение тестируемым? Часть 2 — MVI

Reading time 27 min
Views 2.8K
OTUS corporate blog Development of mobile applications *Development for Android *Mobile applications testing *Kotlin *

В первой части статьи мы последовательно рассмотрели шаги по созданию и преобразования приложения для Android, необходимыми для реализации тестов, начиная от Unit-тестирования и заканчивая E2E-тестами. Сегодня мы рассмотрим архитектурные подходы Model-View-Intent (MVI), создадим собственную реализацию MVI и на ее примере разберем особенности разработки и тестирования приложений на MVI и подготовимся к обсуждению разработки тестируемых реактивных интерфейсов на Jetpack Compose в следующей части статьи.

Читать далее
Total votes 10: ↑9 and ↓1 +8
Comments 1

MySQL User Defined Functions

Reading time 5 min
Views 3.1K
MySQL *
Sandbox

MySQL предоставляет широкий набор встроенных функций, которые покрывают значительную часть ежедневных задач. В ситуациях, когда необходимо реализовать что-то специфичное для вашего проекта - можно создать Хранимую Функцию (Stored Function). Однако, при всей своей гибкости, не все задачи можно легко написать на SQL. В таких ситуациях на помощь приходят User Defined Functions - компилируемые в нативный код функций загружаемых из shared library.

Создать свою UDF, в целом, не сложно надо реализовать несколько методов си-API.

Для самой простой UDF достаточно реализовать всего лишь одну функцию.

Читать далее
Total votes 16: ↑16 and ↓0 +16
Comments 5