Треть компаний следят за своими сотрудниками во время работы (hh.ru). Четверть — следит за их соцсетями (UTEAM).
User
Портирование Quake3
В операционной системе Embox (разработчиком которой я являюсь) какое-то время назад появилась поддержка OpenGL, но толковой проверки работоспособности не было, только отрисовка сцен с несколькими графическими примитивами.
Я никогда особо не интересовался геймдевом, хотя, само собой, игры мне нравятся, и решил — вот хороший способ развлечься, а заодно проверить OpenGL и посмотреть, как игры взаимодействуют с ОС.
В этой статье я расскажу о том, как собирал и запускал Quake3 на Embox.
Писать веб-сайты на ассемблере полезно и приятно
Конечно, многие скажут, что это ни-ни и писать для веба нужно только на PHP, ну или на один из модерных языках Питон, Руби, Node.js и т.д.
Но дело в том, что написание сайтов на ассемблере очень полезно, а с подходящими инструментами — легко и приятно.
Вообще-то, это утверждение было лишь гипотезой. Чтобы доказать или отвергнуть ее, этой весной я занялся писать форум на ассемблере.
Раньше у меня уже было веб-приложение на ассемблере — CMS для малого сайта. Только оно работает в режиме "один пишет, многие читают". При том, использует CGI интерфейс и поэтому "многие" читать одновременно тоже не получается.
Настоящий многопоточный веб-сервер на ассемблере под Linux
Сегодня я вам расскажу как написать свой настоящий веб-сервер на асме.
Сразу скажу, что мы не будем использовать дополнительные библиотеки типа libc. А будем пользоваться тем, что предоставляет нам ядро.
Уже только ленивый не писал подобных статей, — сервер на perl, node.js, по-моему даже были попытки на php.
Вот только на ассемблере еще не было, — значит нужно заполнить пробелы.
В Google Summer of Code 2016 вместе с KolibriOS
В этом году проект KolibriOS во второй раз принят к участию в Google Summer of Code. Напомним, что Google Summer of Code (сокращённо GSoC) — инициативная программа компании Google, в рамках которой ежегодно проводится отбор проектов с открытым исходным кодом, в которых могут принять участие студенты. Проекты сами отбирают студентов из всех подавших заявки, а Google выплачивает студентам стипендии за их работу.
Дайджест KolibriOS #11 все новости с последнего выпуска и Google Summer of Code 2016
Да, я пишу десктопные приложения под Windows
Здравствуйте, меня зовут Владимир и я
Да, многое сегодня происходит в вебе и на мобильных устройствах, но, знаете ли, далеко не всё. Значительная часть приложений по-прежнему является десктопным софтом. И даже (о, ужас!) не под Mac Os или Linux, а под тот самый богомерзкий Windows. И, знаете ли, софт этот живёт, развивается, поддерживается и является ежедневным рабочим инструментом миллионов людей. И никуда он мигрировать не собирается, потому что есть причины, по которым иногда именно десктопное приложение является лучшим вариантом.
Стек приложений Blockchain
Надеемся не слишком вас шокировать, признавшись в неподдельном интересе к децентрализованным приложениям.
Вместе с автором мы убеждены, что «не биткойном единым» полезны описанные технологии, и в качестве доказательства предлагаем перевод интересной статьи, в которой внятно и убедительно описаны перспективы стека Blockchain
Amelisa. Оффлайн и реалтайм движок для React и Mongo
Написал недавно движок для синхронизации данных, имеющий первоклассную поддержку оффлайна. Например, можно уйти в оффлайн, изменять данные, закрыть браузер, открыть браузер, открыть сайт (выйти в онлайн) и данные смержатся без потерь. Также во время онлайна данные между клиентом и сервером синхронизируются в реальном времени. Хочу рассказать, в чём была идея, какие есть подобные решения/технологии и кому это может пригодиться.
Компактная ОС для ARM процессоров
“Кажется, что совершенство достигается не тогда, когда нечего более добавить, а тогда, когда нечего больше убрать."
(Антуан де Сент-Экзюпери)
По теме изучения программирования встроенных систем, ОС реального времени, Ассемблера и С позвольте представить очень простую операционную систему StartOS.
Предназначение:
— если вам необходимо создать устройство, начинающее работать через 1-2 секунды после включения питания и способное реагировать на сигналы из внешнего мира в течение микросекунд;
— для быстрого создания систем управления объектами с выводом данных в Интернет;
— отработка идей, алгоритмов, изготовлении прототипов устройств;
— приобретение опыта программирования встроенных систем на языках C и Assembler;
— получение полного доступа к «железу» компьютерного устройства, например, для разработки самомодифицирующихся программ.
Некоторые свойства системы:
Время готовности после включения питания: < 1 сек
Объем двоичного кода программы: < 40 kB
Компилируем С\С++ код в WebAssembly
Для того, чтобы WebAssembly заработал, нам нужны две основных компоненты: инструменты для сборки кода в бинарник формата WebAssembly и браузеры, способные этот бинарник загрузить и выполнить. И то, и другое ещё не полностью создано и очень сильно зависит от завершения работы на спецификацией WebAssembly, но в общем-то это отдельные компоненты и их развитие идёт параллельно. Это разделение — хорошая вещь, оно позволит компиляторам создавать WebAssembly-приложения, способные работать в любом браузере, а браузерам — запускать WebAssembly-программы не зависимо от того, каким компилятором они были созданы. Другими словами — мы получаем открытую конкуренцию инструментов разработки и браузеров, что непрерывно будет двигать всё это вперёд, принося конечному пользователю отличный выбор. Кроме того, такое разделение позволяет командам разработчиков инструментария и браузеров работать параллельно и независимо.
Новый проект на стороне инструментарий WebAssembly, о котором я хочу сегодня рассказать, называется Binaryen. Binaryen это библиотека для поддержки WebAssembly в компиляторах, написанная на С++. Если вы лично не работаете над компилятором WebAssembly, то вам, вероятно, не нужно напрямую знать что-либо о Binaryen. Если вы используете какой-нибудь компилятор WebAssembly, то он, возможно, под капотом использует Binaryen — мы рассмотрим примеры ниже.
Сайт с нуля на полном стеке БЭМ-технологий. Методология Яндекса
БЭМ упрощает разработку сайтов, которые нужно быстро создавать и долго поддерживать. Эту технологию используют во фронтенде почти всех сервисов Яндекса, и она уже успела обрасти множеством библиотек и инструментов, которыми мы хотим с вами поделиться.
В статье мы расскажем, в чём преимущество вёрстки независимыми блоками и что такое уровни переопределения, познакомимся с готовыми библиотеками блоков и инструментами для автоматизации сборки. Покажем, как разные инструменты — например, autoprefixer, css-препроцессор Stylus или модульная система YModules — упрощают жизнь разработчика и создают по-настоящему удобную платформу, если встроить их в процесс разработки по БЭМ.
На живом примере мы объясним, в чём польза декларативного подхода, когда одни и те же идеи можно использовать как для CSS, так и для JavaScript. Отдельно остановимся на декларативных шаблонах BEMHTML и BEMTREE, которые позволяют преобразовывать данные в БЭМ-дерево, описанное в формате BEMJSON и, затем в HTML. Рассмотрим в деталях, как написать серверную часть приложения по БЭМ-методологии.
Музыка в KolibriOS: полный обзор и последние новинки
Как классно работать, слушая при этом музыку! Запустил себе плейлист, он играет, а ты занимаешься своими делами. Но вот незадача — в современных плеерах поголовно начали использоваться библиотеки музыки, без них уже скоро и файл нормально не откроешь, не просканировав до этого весь жесткий диск. Я ведь человек родом из 90х, и у меня есть на жестком папка «Muz.one», у кого-то она «Музыка», «Музычка», у некоторых (не будем показывать пальцами) она «Барахло» или «100% разобрать в этом году». Всё чего я хочу — это зайти в папку с аудиозаписями, запустить файл и наслаждаться музыкой! Мне не нужен комбайн, который «каталогизирует», «синхронизирует» и варит кофе — мне нужен плеер с поддержкой MP3: простой, быстрый и няшный. Поэтому я постарался такой написать для моей любимой операционной системы Колибри.
Конкурс игр KolibriOS — играем и выбираем победителей
Всего на наш призыв откликнулись 7 человек, которые создали для конкурса в сумме 10 игр (один участник написал целых 3 игры, ещё один — 2 игры; остальные участники написали по одной игре каждый). Сегодня мы выносим эти игры на суд читателей Хабра, и просим вас проголосовать за наиболее понравившиеся. Чтобы поиграть в конкурсные игры, нужно скачать с сайта KolibriOS последнюю ночную сборку дистрибутива («Универсальный образ Flash/HDD» либо «Загрузочный компакт-диск LiveCD»). Игры находятся в папке /KolibriOS/games. Качать нужно русскую сборку, так как некоторые игры (имеющие исключительно русскоязычный интерфейс) присутствуют только в ней.
TL;DR: Если нет времени, возможности или желания читать все описания игр и играть в них самим, но всё равно очень хочется проголосовать, то можно посмотреть ролик с обзором игр от независимого блоггера Кирилла Лейфера, и оценить игры на основании ролика:
Курс от Яндекса о том, что должен знать каждый разработчик, который хочет делать большие системы. Модное слово DevOps и другое
В Яндексе тестировщику невозможно без автоматизации. Мы даже развиваем экспериментального робота, который способен брать на себя функциональное тестирование. В какой-то момент мы поняли, что не так много людей осознают, сколько сейчас есть возможностей работать не 12 часов, а головой. Собрав весь свой опыт в тестировании и деплое, мы открыли в питерском офисе Яндекса Школу автоматизации процессов разработки. У нас получилась школа, где каждый, кто пишет код, может получить базовый набор знаний о том, как собрать, запустить и поддерживать сервис в продакшене так, чтобы это стоило недорого.
Курс открывает моя лекция о том, зачем вообще автоматизировать процесс разработки. Из нее вы получите представление о то, что будут рассказывать мои коллеги.
Сейчас занятия закончились, и мы, как и обещали, выкладываем записи лекций, которые перемежаются с мастер-классами, для всех желающих. Понятно, что наш опыт и знания – не 42, но мы надеемся, что они принесут вам пользу.
Дайджест KolibriOS #6: последняя осень
«Напиши свою игру!» — Новогодний конкурс от KolibriOS
Поскольку находимся мы на Хабре, простой случайный розыгрыш призов вроде конкурса от Mail.Ru мы считаем здесь неуместным, и призы нужно будет заработать. Поскольку KolibriOS — хобби-проект, конкурс будет связан с развлечениями. Ну, а поскольку мы не такие богатые, как Mail.Ru, то и призы будут поменьше :-)
Задачей конкурса является написание своей собственной игры для Колибри. Сделать это нужно до наступления Нового 2015-го года по московскому времени, т.е. до 31 декабря 2014г. 24:00 MSK.
Принять участие в конкурсе может любой желающий, вне зависимости от возраста и места проживания. Участвовать можно как в одиночку, так и командой (при участии командой, в случае выигрыша, один приз будет выдан на всю команду).
Для игры можно использовать любой язык программирования — хоть FASM (предпочтительно), хоть JAVA, хоть Brainfuck. Однако, если компилятор выбранного вами языка в данный момент отсутствует под Колибри, вам придётся сначала научить этот компилятор собирать программы под Колибри. Поэтому мы рекомендуем выбрать такой язык, для которого уже есть компилятор (для Brainfuck, кстати, есть).
Исходный код игры (включая все «ресурсы» — картинки, спрайты, звуки, музыку, если таковые имеются) должен быть выложен на SVN проекта под одной из утверждённых open-source лицензий. Игра должна компилироваться из исходников с помощью системы авто-сборки Tup на сервере КолибриОС. Для облегчения добавления игры в авто-сборку (а также принимая во внимание предыдущий параграф), лучше всего писать игру на языке, для которого уже есть пример авто-сборки (FASM, NASM, C--, GCC, MSVC).
Игры всех участников, успешно выполнивших задание, будут выставлены на голосование на Хабре в январе 2015 г. По результатам голосования, будут присуждены призы:
- 1 место — $1,000 США
- 2 место — $500 США
- 3 место — $250 США
Интервью с демосценером — kb ^ Farbrausch
kb, без сомнения, икона демосцены. Он начинал еще в 90-е, и как кодер, музыкант, организатор демопати, он всегда добивался успеха. В интервью речь пойдет о некоторых мифах вокруг Farbrausch, о том как устроена демосцена, о том, что его вдохновляет и о его любимых листьях… (не те что вы подумали).
Какую роль играла MS-DOS в составе Windows 95?
- Она служила загрузчиком.
- Она выступала в качестве слоя совместимости с 16-битными драйверами.
CONFIG.SYS
, запускала COMMAND.COM
, который выполнял ваш AUTOEXEC.BAT
и в конце концов выполнял WIN.COM
, который в свою очередь начинал процесс загрузки 32-битного менеджера виртуальных машин VMM.Эта специальная версия MS-DOS была полностью функциональна в той мере, в которой слова «полностью функциональна» вообще применимы к MS-DOS. По-другому и быть не могло, при выходе в режим эмуляции MS-DOS только эта версия и оставалась работать.
Программа
WIN.COM
начинала загрузку того, что большинство людей называют собственно «Windows». Посредством копии MS-DOS она загружала менеджер виртуальных машин, считывала файл SYSTEM.INI
, загружала драйверы виртуальных устройств, затем выключала EMM386 (если таковой был) и переключалась в защищённый режим. «Настоящая Windows» с точки зрения большинства людей — именно защищённый режим.В защищённом режиме драйверы виртуальных устройств творили свою магию. В числе их действий было вытаскивание всего состояния MS-DOS, перевод его в состояние 32-битной файловой подсистемы и отключение MS-DOS. Все дальнейшие файловые операции направлялись в 32-битную файловую подсистему. Когда программа обращалась к
int 21h
, ответственной за обработку оказывалась 32-битная файловая подсистема.Здесь вступает в игру вторая роль MS-DOS. Видите ли, программы и драйверы MS-DOS любили встраиваться в глубины операционной системы. Они могли заменять обработчик прерывания
21h
, они могли патчить код системы, они могли заменять низкоуровневые дисковые обработчики int 25h
и int 26h
. Они могли также творить умопомрачительные вещи с прерываниями BIOS типа int 13h
, ответственного за работу с дисками.Почему Windows 95 подвисала при форматировании дискеты?
Рэймонд Чен отвечает на известную шутку:
— Папа, покажи, какая винда многозадачная!
— Сейчас, сынок, только дискету доформатирую...
Кто же целыми днями форматирует дискеты? Оказывается, многие гики только этим и заняты. (Вообще-то, можно покупать дискеты уже отформатированными, только тссс!) Но почему Windows 95 подвисала при форматировании дискеты?
Всё дело в совместимости с MS-DOS.
Как мы видели немного раньше, MS-DOS в Windows 95 выступала как слой для старых 16-битных драйверов. Несмотря на то, что в итоге операции ввода-вывода обрабатывались 32-битной файловой подсистемой, все они проходили через 16-битный код, чтобы 16-битные драйверы, TSR и подобные обработчики видели «нормальные 16-битные операции» и работали в привычном им окружении.
В 16-битном мире форматированием занималось программное прерывание 13h, и многие программы использовали этот факт, перехватывая прерывание так, чтобы получать управление при форматировании дискеты. Так делали некоторые TSR, программы для бэкапов (программы для бэкапов, разработанные для Windows 3.0, включали в себя 32-битные драйверы под Windows 3.x, называемые VxD, для отслеживания операций с дискетами). Но это объясняет не всё. В конце концов, Windows 95 прогоняла весь дисковый ввод-вывод, а не только форматирование дискет, через 16-битный код. Почему же форматирование дискет так существенно влияло на систему?
Information
- Rating
- Does not participate
- Date of birth
- Registered
- Activity