Игры под DOS с открытым исходным кодом — редкость. Однако спустя много лет некоторые разработчики всё же решили выпустить в свет исходники. Большинство из них уже переписаны на SDL, благодаря чему их можно перенести практически на любую современную платформу, но какой в этом челлендж? В статье будем компилировать двоичные файлы для DOS!
Сергей
@Alinaki
Ведущий Telegram-канала @htmlshit
3D-принтеры: еще бюджетнее, еще оригинальнее
2 min
102K3D-принтеров печатающих пластиком ABS и/или PLA все больше и больше. Хотя основных конструкций, по большому счету, всего 2-3. Поэтому создатели новых принтеров стараются реализовать в конструкции некоторую изюминку или просто сделать еще дешевле.
Китайцы ворвались на рынок мини-компьютеров
1 min
34KУ Raspberry Pi и Cotton Candy появился китайский конкурент. Компьютер размером с флешку стоит 74 доллара — как раз посередине между Raspberry Pi (25 — 35 долларов) и Cotton Candy (200). Внутри — одноядерный процессор ARM Cortex A8 AllWinner A10 1.5GHz, графический чип Mali 400, 512 мегабайт DDR3 RAM и 4 гигабайта встроенной флеш-памяти. Есть полноразмерный слот USB, microUSB, кардридер micro TF, порт HDMI и беспроводной модуль WiFi 802.11b/g. Размеры «китайца» — 8.8 х 3.5 х 1.2 см, вес — 200 граммов.
Жизнь разработчика (в картинках)
1 min
65KВзято отсюда специально для хабра. Возможно, в некоторых из ситуаций вы узнаете себя.
Когда я показываю босу, что окончательно пофиксил баг
Когда проджект-менеджер входит в офис
Когда я показываю босу, что окончательно пофиксил баг
Когда проджект-менеджер входит в офис
Пришедшая в негодность патентная система: как мы до такого дошли, и как ее починить
15 min
5K
Translation
В системе патентов в США существует фундаментальная проблема.
Эта проблема — мы.
Под словом «мы» я имею в виду всех нас: компании и людей, которые напрямую взаимодействуют с патентной системой, СМИ, которые освещают эти взаимодействия, и, наконец, большое количество активных и шумных читателей, которым мы служим своими репортажами. И мы все вместе приняли общепринятую истину, что патентная система испорчена до непригодности, что она является лишь осколком прошлых времен, что она отжила свое в наш век стремительных технологических инноваций, особенно в области программного обеспечения, и что, возможно, ее стоит отправить в утиль.
За последние несколько месяцев эти мнения выросли до яростного вопля, так как патентная система начала негативно влиять на все больше и больше игроков в индустрии: небольшие разработчики стали целью судебных исков от компаний, которые ничего не делают и не производят; Apple, HTC и Samsung не могут сдвинуться места в судебных процессах, связанных с патентами; пара многомиллиардных аукционов по патентам вызвала к жизни неслыханную до селе словесную баталию между Microsoft'ом и Google'ом. Самые пламенные критики открыто заявляют, что любая польза, которую патентная система могла бы принести, сейчас полностью перекрывается издержками, что ресурсы, которые при прочих равных условиях были бы направлены на развитие новых идей теперь тратятся на чрезмерно усердную защиту старого.
Эти аргументы повторяются так часто и с такой уверенностью, что они стали практически аксиомой, риторическим и интеллектуальным обманом, который редко (если вообще) подвергается сомнению. Но это плохо и неверно — настолько, что ставит под удар любые реальные попытки реформирования системы. Шуметь и злиться — хороший способ привлечь к себе внимание, но ужасный способ чего-либо добиться, особенно если принять во внимание, что большинство бьющих себя в пяткой в грудь лишь повторяют упрощенную версию аргументов, которые повторялись в нашей стране еще со времен, когда Томаса Джефферсона назначили главой Управления патентов.
Так что давайте начнем с начала. Давайте посмотрим, как работает патентная система, где она особенно дает сбои, и как можно привести ее в порядок. Готовы? Поехали.
Актуальные баги IE6
3 min
867Последнее время стал замечать, что сегодня модным стало не поддерживать IE6 либо просто забывать о его существовании. Он давно устарел, он глючный, его становится все меньше и меньше и т.п. Но все-таки, пока IE6 еще жив, нужно не забывать о простых мелочах могущих сделать отображение сайта в нем вполне корректным. Итак, некоторые баги IE6 и как их побороть:
Простые вещи: Подгрузка через AJAX HTML-кода, содержащего JavaScript.
4 min
2.8KПри разработке CMS S.Builder наша команда активно использовала AJAX. Теперь вот решили поделиться накопленным опытом. Начнем с этого хабратопика.
Не буду здесь затрагивать различные фреймворки и библиотеки. Свой код всегда роднее. Для работы с AJAX-ом в S.Builder написана библиотека sbAJAX. Можете качать и пользоваться :). В этом файле есть функция sbEvalJS. Для тех, кто не знает, объясню. При подгрузке через AJAX и вставке на страницу HTML-кода, содержащего JavaScript, JavaScript выполняться не будет или полезут баги. Эта функция как раз решает поставленную задачу.
Не буду здесь затрагивать различные фреймворки и библиотеки. Свой код всегда роднее. Для работы с AJAX-ом в S.Builder написана библиотека sbAJAX. Можете качать и пользоваться :). В этом файле есть функция sbEvalJS. Для тех, кто не знает, объясню. При подгрузке через AJAX и вставке на страницу HTML-кода, содержащего JavaScript, JavaScript выполняться не будет или полезут баги. Эта функция как раз решает поставленную задачу.
И снова разработчики! Третья серия
1 min
524Культура сна
2 min
9.7KДавно еще, пока я учился в школе, меня постоянно мучили мысли о том, что я хоть и высыпаюсь, но встаю мучительно и ничего с утра не хочу. Глубоко в душе я знал, что можно иначе, но как сделать так, чтобы ты с утра буквально вскакивал с кровати и шел воротить горы? Начал во всем разбираться, и вот, что из этого вышло.
Drupal + Omega + Bootstrap: быстрое создание полностью кастомных тем оформления без верстки (Часть 2. Bootstrap)
13 min
52K
Tutorial
Первая часть, введение
В первой части статьи я рассказал о прекрасном фреймворке Omega для Drupal, который позволяет создавать собственные темы оформления, основанные на сетке (grid), произвольно настраивать и менять расположение и размеры регионов без каких-либо модификаций HTML-кода шаблонов. На этом можно было бы и остановиться, но существует прекрасный мощный CSS-фреймворк Bootstrap, имеющий собственную реализацию сетки, большое количество готовых CSS и JS компонентов, которые очень легко стилизовать, а также огромное сообщество, благодаря которому мы получаем наиболее качественный и «вылизанный» код по сравнению с конкурентами.
В этой части статьи я расскажу, как привязать Bootstrap к Omega. Но если вас по какой-либо причине не устраивает Bootstrap, то подобным образом можно прикрутить к Omega любой другой фреймворк на ваш вкус. Как и в первой части статьи, я не претендую на какую-то уникальность, просто описываю те вещи, которые можно почерпнуть из документации. Здесь будет много кода и мало картинок.
В первой части статьи я рассказал о прекрасном фреймворке Omega для Drupal, который позволяет создавать собственные темы оформления, основанные на сетке (grid), произвольно настраивать и менять расположение и размеры регионов без каких-либо модификаций HTML-кода шаблонов. На этом можно было бы и остановиться, но существует прекрасный мощный CSS-фреймворк Bootstrap, имеющий собственную реализацию сетки, большое количество готовых CSS и JS компонентов, которые очень легко стилизовать, а также огромное сообщество, благодаря которому мы получаем наиболее качественный и «вылизанный» код по сравнению с конкурентами.
В этой части статьи я расскажу, как привязать Bootstrap к Omega. Но если вас по какой-либо причине не устраивает Bootstrap, то подобным образом можно прикрутить к Omega любой другой фреймворк на ваш вкус. Как и в первой части статьи, я не претендую на какую-то уникальность, просто описываю те вещи, которые можно почерпнуть из документации. Здесь будет много кода и мало картинок.
Универсальный код C# под .NET и JavaScript
19 min
36KВведение
Приветствую вас, хабравчане. В данном топике я хотел бы осветить подробности разработки на C# под разнородные целевые платформы, в первую очередь такие как .NET и браузер (JavaScript). В качестве примера желающие могут изучить веб-сервис по обработке фотографий gfranq.com, в котором реализована клиентская и серверная обработка фотографий с помощью фильтров, а также функциональность коллажей на основе материала, описанного в данной статье.
Так как я не умею подбирать картинки для привлечения внимания, то она будет по теме:
Объектно-ориентированный дизайн… в CSS
9 min
46KПредупрежу заранее, что я совершенно не считаю себя экспертом HTML/CSS/JS. Но, как архитектору, мне всегда была интересна организация и систематизация кода в самых разных его проявлениях, в том числе и представленных в виде CSS. Особенно сильно этот интерес был подогрет БЭМом, при первом знакомстве с которым подсознание отреагировало когнитивным дискомфортом. А поскольку БЭМ-стиль в проектах у меня стал появляться все чаще, я почувствовал острую необходимость осмыслить, наконец, свое отношение к организации стилей. Таким образом и появился данный топик-размышление, топик-дискуссия. Я понимаю, что взялся за пограничную задачу, поскольку далеко не всем верстальщикам знакомы тонкости объектно-ориентированного дизайна, а большинство архитекторов не написали ни одного CSS-стиля. И, как результат, мне пришлось неуклюже балансировать, чтобы было понятно всем. Но 'этот риск еще больше подогрел мой интерес к теме :)
Coroutines в PHP и работа с неблокирующими функциями
18 min
79K
Tutorial
Translation
Одним из самых больших нововведений в PHP 5.5 будет поддержка генераторов и корутин (сопрограмм). Генераторы уже достаточно были освещены в документации и в нескольких других постах (например в этом или в этом). Сопрограммы же получили очень мало внимания. Это гораздо более мощный, но и более сложный для понимания и объяснения, инструмент.
В этой статье я покажу как реализовать планировщик задач с использованием корутин, чтобы вы поняли, что с ними можно делать и как их применять. Начнем с нескольких вступительных слов. Если вы считаете, что вы уже достаточно хорошо знаете как работают генераторы и корутины, тогда можете сразу перейти к разделу «Совместная многозадачность».
Суть генератора в том, что это функция, которая возвращает не просто одно значение, а последовательность значений, где каждое значение выброшено одно за другим. Или, другими словами, генераторы позволяют вам реализовать итератор, без лишнего кода.
В этой статье я покажу как реализовать планировщик задач с использованием корутин, чтобы вы поняли, что с ними можно делать и как их применять. Начнем с нескольких вступительных слов. Если вы считаете, что вы уже достаточно хорошо знаете как работают генераторы и корутины, тогда можете сразу перейти к разделу «Совместная многозадачность».
Генераторы
Суть генератора в том, что это функция, которая возвращает не просто одно значение, а последовательность значений, где каждое значение выброшено одно за другим. Или, другими словами, генераторы позволяют вам реализовать итератор, без лишнего кода.
Деревянная мышь. История проекта
17 min
143KВы когда-нибудь задумывались, как устроены вещи, какой путь они проходят от идеи до реализации, насколько просты простые вещи? Насколько просто сделать расческу? А компьютерную мышь? А деревянную компьютерную мышь из цельного бруска красного дерева с ЖК экранчиком, с собственной электронной начинкой и изготовленным и оплетенным специально для нее кабелем? Думаю, вам будет интересен мой путь, который я прошел за 2,5 года создания моей мышки.
Онлайн-инструменты для кодеров
2 min
282KОнлайн-сервисы становятся все популярнее, постепенно усложняя функционал и улучшая интерфейсы. В этой подборке представлены онлайн-инструменты для кодеров.
«Это Google Docs, только для кода» — так говорят о проекте. Облачный сервис вырос из Mozilla Bespin. Основные фишки: SSH, drag-and-drop и возможность разработки оффлайн.
Cloud9
«Это Google Docs, только для кода» — так говорят о проекте. Облачный сервис вырос из Mozilla Bespin. Основные фишки: SSH, drag-and-drop и возможность разработки оффлайн.
Дайджест интересных новостей и материалов из мира PHP за последние две недели №3 (20.10.2012 — 02.11.2012)
5 min
22KПредлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.
Приятного чтения!
RFID-метка на простой логике
25 min
203K
Translation
Объявлено новое соревнование 7400, и нужно сделать что-то новое. Нельзя ударить в грязь лицом после победы в прошлом году ;)
У меня было несколько расплывчатых идей, но их было недостаточно, чтобы вызвать реакцию «Ух ты!» или «Ты маньяк!». Нужно серьезно потрудиться, чтобы оставаться на уровне моей предыдущей разработки — емкостного сканера.
Я устроил мозговой штурм с моими товарищами: Педерсеном (Pedersen), Асбьёрном (Asbjørn) и Флеммингом (Flemming), которые тут же придумали множество смешных идей. И вот Флемминг упомянул RFID (он разработчик системы управления доступом, которая основана на RFID). А вот это уже мысль. Конечно, первые мысли были об RFID-считывателе, но мы уже собрали их довольно много, и это было скучно. Однако, появилась идея сделать RFID-метку. Я не знаю, кто упомянул это первым, и, как обычно в мозговом штурме, идеи рождаются коллективным разумом. Итак, решено сделать RFID-метку, собранную исключительно на 7400-ой логике.
У меня было несколько расплывчатых идей, но их было недостаточно, чтобы вызвать реакцию «Ух ты!» или «Ты маньяк!». Нужно серьезно потрудиться, чтобы оставаться на уровне моей предыдущей разработки — емкостного сканера.
Я устроил мозговой штурм с моими товарищами: Педерсеном (Pedersen), Асбьёрном (Asbjørn) и Флеммингом (Flemming), которые тут же придумали множество смешных идей. И вот Флемминг упомянул RFID (он разработчик системы управления доступом, которая основана на RFID). А вот это уже мысль. Конечно, первые мысли были об RFID-считывателе, но мы уже собрали их довольно много, и это было скучно. Однако, появилась идея сделать RFID-метку. Я не знаю, кто упомянул это первым, и, как обычно в мозговом штурме, идеи рождаются коллективным разумом. Итак, решено сделать RFID-метку, собранную исключительно на 7400-ой логике.
Четыре паттерна вызова функций в JavaScript
6 min
45K
Translation
Язык JavaScript был представлен как язык функционального программирования. Причина заключается в том, что функции в JS не просто разделяют логику на операционные блоки, функции являются объектами первого класса, способными создавать другие объекты. Подобная зависимость от функций одновременно является как сильной стороной, так и настоящим проклятием этого языка. Сильная сторона заключается в том, что язык, обладая подобными особенностями, становится легковесным и быстрым (каким JavaScript изначально и видели его создатели). Однако если вы не знаете что делаете — однозначно ждите беды.
Я предлагаю посмотреть на паттерны вызова функций, а точнее на то, как значительно изменяется результат в зависимости от выбранного паттерна. Также мы рассмотрим как ведет себя
Итак, существует четыре пути вызова функций:
Я предлагаю посмотреть на паттерны вызова функций, а точнее на то, как значительно изменяется результат в зависимости от выбранного паттерна. Также мы рассмотрим как ведет себя
this
, в зависимости от способа вызова функции. Итак, существует четыре пути вызова функций:
- Вызов метода — Method Invocation
- Вызов функции — Function Invocation
- Вызов конструктора — Constructor Invocation
- Вызов apply и call — Apply And Call Invocation
Использование преимуществ встроенного PHP сервера
7 min
40K
Tutorial
Translation
Одним из крутейший новшеств в php 5.4 является встроенный сервер, созданный специально для разработки и тестирования. Теперь вы можете писать и тестировать свой код не имея полноценного веб-сервера — просто запустите встроенный сервер, протестируйте свой код, и выключите его, когда закончите.
Сервер, так же, предоставляет возможность и для творческого использования. Например, вы можете распространять портативное web-приложение на CD или USB, или даже как десктопное приложение, созданное на PHP без использования GTK или других графических библиотек.
Сервер, так же, предоставляет возможность и для творческого использования. Например, вы можете распространять портативное web-приложение на CD или USB, или даже как десктопное приложение, созданное на PHP без использования GTK или других графических библиотек.
Новые аттачи в Яндекс.Почте
8 min
33KМы стремимся к тому, чтобы все части Яндекс.Почты одинаково хорошо работали у всех пользователей. Сегодня мы расскажем вам о том, как и зачем полностью переписали блок добавления аттачей. В этой статье — про отказ от флеша, поддержку возможностей современных браузеров и, как результат, увеличение скорости и надёжности загрузки файлов.
С первыми всё было просто: пользователи с установленным флешем прикрепляли файлы к письму через флеш-загрузчик. Он позволял загрузить сразу несколько файлов, определял их размер и контролировал процесс загрузки.
А вот с пользователями без флеша (8-10% от дневной аудитории) было сложнее. Мы предлагали им загружать файлы через обычную форму с
Проблема
Раньше всю аудиторию Яндекс.Почты мы разделяли на пользователей с флешем и без.С первыми всё было просто: пользователи с установленным флешем прикрепляли файлы к письму через флеш-загрузчик. Он позволял загрузить сразу несколько файлов, определял их размер и контролировал процесс загрузки.
А вот с пользователями без флеша (8-10% от дневной аудитории) было сложнее. Мы предлагали им загружать файлы через обычную форму с
/>
. Файлы из неё отправлялись через iframe вместе с содержимым самого письма, и это занимало много времени. Нажав кнопку «Отправить», пользователь долго ждал, пока загрузятся файлы.Information
- Rating
- Does not participate
- Location
- Helsinki, Southern Finland, Финляндия
- Date of birth
- Registered
- Activity