Search
Write a publication
Pull to refresh
7
0
Garrett @Garrett

User

Send message

Алгоритм «diamond-square» для построения фрактальных ландшафтов

Reading time12 min
Views119K
Карта игры Minecraft, созданная с помощью приложения CartographДумаю, многие знакомы с весьма необычной игрой Minecraft (справа — пример сгенерированной в ней карты), в которой игрок находится на (практически) бесконечной поверхности Земли и может исследовать окружающий мир с минимальными ограничениями.

Как же автору игры, Notch'у, удалось добиться подобного сходства его случайных «миров» с земными просторами? В этом топике я как раз и рассмотрю один из способов построить искусственный ландшафт такого рода (и вскользь упомяну пару других способов), а также расскажу о моем небольшом усовершенствовании этого алгоритма, позволяющем значительно увеличивать размеры ландшафта без заметных потерь в производительности.

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

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

XNA Draw или пишем систему частиц. Часть II: шейдеры

Reading time6 min
Views17K
Привет всем разработчикам игр и просто людям, которые интересуются геймдевом.

Пришло время рассказать вам о пиксельных шейдерах и о том, как сделать post-proccesing. Это вторая часть статьи о графических методах в XNA, в прошлой статье — мы рассматривали методы Draw и Begin у spriteBatch. Для примера: улучшим нашу систему частиц добавлением пиксельного шейдера, который будет искажать пространство.
Читать дальше →

XNA Draw или пишем систему частиц. Часть I

Reading time6 min
Views29K
И опять, привет хабравчанам!

Буквально несколько дней назад — начал цикл статей, о том, как можно создавать крутые игры с помощью XNA Framework, своей студии у меня нет, поэтому ограничимся только 2D играми.

На этот раз — мы более подробно рассмотрим Draw и напишем свою первую систему частиц.
Читать дальше →

Бесплатные книги

Reading time3 min
Views60K
Несколько книг по разным темам, которые находятся в открытом доступе.

Основы программирования
Читать дальше →

Ловим горизонт с Arduino

Reading time3 min
Views78K
В комментариях поста про создание трех-степенной платформы на базе аппаратной платформы Arduino поднимался вопрос управления не только с компьютера, поэтому было решено разобраться с работой акселерометра MMA7260, который можно свободно приобрести в Гонконге на Ebay.
image
Читать дальше →

Firefox 4: отрисовка произвольных элементов в качестве фонов посредством -moz-element

Reading time8 min
Views1.9K
Поль Руже:  Это блогозапись нашего гостя, Маркуса Стэнджа. Маркус обыкновенно работает над реализацией темы оформления Firefox для Маков, но на сей раз он совершил небольшую окольную прогулку по движку макетирования в Gecko, реализуя -moz-element.

В четвёртой бета-версии нового Файерфокса мы представляем вам новое расширение CSS-свойства background-image: возможность отрисовывать произвольные элементы в качестве фонов, используя -moz-element(#elementID).
<p id="myBackground1" style="background: darkorange; color: white; width: 300px; height: 40px;">
    This element will be used as a background.
    <!-- Этот элемент послужит фоном. -->
</p>
<p style="background: -moz-element(#myBackground1); padding: 20px 10px; font-weight: bold;">
    This box uses #myBackground1 as its background!
    <!-- Этот прямоугольник использует #myBackground1 в качестве фона! -->
</p>
[показать пример]

Изображение -moz-element() срабатывает совершенно так же, как и привычное изображение url(). Это значит, что оно управляется всеми привычными свойствами фонов: background-position, background-repeat, и даже background-size.

Используя background-size, вы можете создать миниатюру (thumbnail) того элемента, который используется в качестве фона — вот пример:
Читать дальше →

Создание приложений реального времени с помощью Server-Sent Events

Reading time7 min
Views54K
Буквально недавно стало известно, что Firefox 6 получит SSE (уже есть в Opera 10.6+, Chrome, WebKit 5+, iOS Safari 4+, Opera Mobile 10+) так, что поддержка более половины всех браузеров (охват аудитории пользователей) уже не за горами. Настало время присмотреться к этой технологии. SSE предложил Ian Hickson более 7 лет назад, но только год назад она стала появляться в браузерах. У нас же есть WebSockets зачем нам ещё один какой-то протокол?! Но во всем есть свои плюсы и минусы, давайте посмотрим чем же SSE может быть полезен.

Идея SSE проста — клиент подписывается на события сервера и как только происходит событие — клиент сразу же получает уведомление и некоторые данные, связанные с этим событием. Чтобы понять полезность протокола SSE необходимо сравнить его с привычными методами получения событий, вкратце объясню их суть:
Читать дальше →

Рекурсивный zip-архив

Reading time5 min
Views40K
Многие хабрапользователи наверняка знакомы с квайнами — программами, выводящими собственный исходный код. Сегодня я хочу показать как сделать интересный вариант квайна — ZIP-архив, который распаковывается сам в себя.

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

Наглядная демонстрация алгоритмов сортировки

Reading time1 min
Views34K
Трансильванский университет Sapientia представил свой новый обучающий курс по алгоритмам сортировки. Стоит отметить талант создателей и высокую наглядность пособия.



Под катом есть еще видео
Читать дальше →

Работа со структурами в C#

Reading time13 min
Views146K
По следам недавнего топика «Обработка больших объемов данных в памяти на C#» представляю перевод упоминавшейся там статьи о структурах.

Структуры являются фундаментальными типами данных в C# и большинстве других современных языках программирования. По своей сути структуры просты, но вы можете удивиться, насколько быстро работа с ними может стать сложной. Чаще всего проблемы возникают, если вы должны работать со структурами, созданными в других языках и сохраненными на диске или полученными в результате вызова функций из библиотек или COM-объектов. В этой статье я подразумеваю, что вы знакомы с понятием структуры, умеете определять их и владеете базовыми навыками работы со структурами. Предполагается, что вы имеете представление о том, как вызывать API функции с использованием p/Invoke, а также что такое маршалинг. В случае неуверенности в своих знаниях вы можете обратиться к документации.
Множество техник, описанных в данной статье, могут быть расширены и применены к любым типам данных.
Читать дальше →

Используем console на полную

Reading time6 min
Views459K
Метод console.log() — отличный способ вывести отладочную информацию, не мешая пользователю. Но знаете ли Вы, что объект console имеет еще уйму других не менее полезных методов? Очень редко разработчики используют этот функционал, ограничиваясь неблокирующим alert'ом. Что-ж, давайте исправим это положение.

Вкусности console

Выбираем предыдущую и следующую запись зная id

Reading time3 min
Views20K
Столкнулся недавно с задачей показа кнопок [ВПЕРЕД] [НАЗАД] на странице просмотра. Но сложность задачи в том, что сортировка может быть по произвольному полю таблицы.

Постановка задачи:

CREATE TABLE `contacts` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name_prefix` varchar(50) DEFAULT NULL,
`name` varchar(100) DEFAULT NULL,
`infix` varchar(100) DEFAULT NULL,
`surname` varchar(100) NOT NULL,
`primary_email` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

Для наглядности объясню где это все работает:
есть две страницы, работающие с этой таблицей:
— index, на ней отображаются все записи из таблицы contacts, есть фильтр и есть сортировка по столбцам
— view, просмотр текущей записи из таблицы contacts. На это странице есть кнопки [ВПЕРЕД] [НАЗАД], с учетом фильтра и сортировки заданной на странице index;
Трудность возникла в этих двух кнопках.
решение . . .

Новое расширение для Chrome: удаляйте сайты из поисковой выдачи Google

Reading time1 min
Views3.2K
Мэтт Каттс — тот самый, который недавно размышлял о спаме — сегодня представил новый способ борьбы с сайтами с низким уровнем контента, созданными специально для продвижения в поисковых системах и получения дохода от рекламы.

Он предлагает пользователям Chrome установить экспериментальное расширение Personal Blocklist, позволяющее удалять сайты из поисковой выдачи Google. Расширение будет посылать в Google информацию о заблокированных сайтах, а Google будет изучать полученную информацию и использовать её в качестве одного из критериев для общей фильтрации поисковой выдачи.

Выглядит это так:


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

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

Reading time6 min
Views116K
image

Речь пойдёт о далёком 2005 году, когда только-только вышла Civilization4 от Sid Meier. К тому времени я плотно висел в Civilization3, прошёл её раз дцать на самых разных картах, и тут вышла долгожданная четвёрка. Это были годы P3-512Mb для mid-end и P4-1Gb в hi-end. Только топовые конфиги в те годы имели два гига памяти на борту.

Civilization 4 вышла с графикой уровня года 2002-2003го, что в принципе нормально для мэинстрима тех времён, особенно учитывая что это пошаговая стратегия, а не шутер. Но жрала с течением игры до 900Mb оперативки, что приводило к жуткому свопу, особенно на больших картах, особенно к концу игры, особенно на ноутбуках. Народ недоумевал, я тоже. Учитывая, что в те же годы вышел Far Cry с куда более красивой графикой, и который вполне игрался на максимуме даже с 512Mb на борту, такое поведение Civilization 4 выглядело крайне странным. Захотелось разобраться и покарать…
Читать дальше →

MS закрыла вчера 17 уязвимостей, в числе которых DLL Preloading/Hijacking и последняя незакрытая уязвимость из червя Stuxnet

Reading time2 min
Views1.1K
MS выпустила вчера большое количество заплат, многие из этих уязвимостей известны уже не первый месяц. А некоторые из них уже вовсю использовались во вредоносных программах, собственно откуда и была получена информация о них.

MS10-090 (IE) — это комплексный пакет патчей закрывающий целую пачку брешей (CVE-2010-3340, CVE-2010-3342, CVE-2010-3343, CVE-2010-3345, CVE-2010-3346, CVE-2010-3348, CVE-2010-3962). Большинство из этих прелестных уязвимостей позволяют удаленное выполнение кода под IE6/IE7/IE8.

MS10-091 (Opentype Font driver) — это обновление также закрывает целый букет уязвимостей (CVE-2010-3956, CVE-2010-3957, CVE-2010-3959) в Opentype Font driver (OTF), которые могут привести к удаленному выполнению кода. Злоумышленник может создать специально подготовленный OpenType шрифт на сетевой шаре и при просмотре в Windows Explorer происходит выполнение произвольного кода, который будет выполняться с правами системы.
Читать дальше →

CSS трюки — пишем сайт без html

Reading time2 min
Views16K
В качестве предисловия к переводу. Открываем Firefox/Opera, переходим по ссылке, смотрим исходный код страницы и удивляемся. Потому что его нет. Под катом рассказ, как такое можно сделать.
Читать дальше →

Интеграция Visual Studio 2010 SP1 и IIS Express

Reading time4 min
Views4.5K
Несколько дней назад Джейсон Зандер (Jason Zander) написал в своем блоге о выходе Visual Studio 2010 SP1 Beta (ссылки ниже, в конце статьи). Я рад поделиться с вами, друзья, новостями о том, что SP1 Beta добавил возможность интеграции с IIS Express в Visual Studio. Для этой интеграции вам потребуется скачать IIS Express отдельно, после того как вы установите SP1 Beta. После загрузки и установки IIS Express вы получите возможность создавать веб-проекты и веб-сайты, использующие IIS Express вместо Cassini (веб-сервера, который используется в Visual Studio по умолчанию). Для того, чтобы узнать побольше о разнице между IIS Express и полноценным IIS или Cassini, пожалуйста ознакомьтесь с записью блога Скотта Гатри, ссылка на которую приложена в конце статьи. Visual Studio 2010 предлагает два варианта веб-проектов: проект Web Application Project (WAP) и проект Website. Вы можете использовать оба типа проектов с IIS Express.

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

Objective-C для C# разработчиков

Reading time5 min
Views20K
«Если единственный язык, который вы знаете — это Java или C#, я не думаю, что вы профессиональный программист — вы как молодой плотник, который пока работал только с одним видом дерева.»
Дядя Боб


Несколько месяцев назад я начал разрабатывать приложения для iPhone. Переключение с платформы .NET и C# на Cocoa и Objective-C проходило не без приключений, но было достаточно интересным и познавательным. Скоро мне предстоит помогать осваивать новую платформу и другим разработчикам нашей компании. Поэтому решил написать серию вводных заметок, которые, надеюсь, сделают этот переход более плавным.

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

Хабраквест с элементами космонавтики и геокешинга [done!]

Reading time3 min
Views12K
По мотивам habrahabr.ru/blogs/DIY/106307 и habrahabr.ru/blogs/popular_science/75150

Публикую просьбу blackover в виду весьма животрепещущего вопроса.
image
Запустил из Калининградской области шар, наполненный гелием, с фотиком на борту, а он, такой-сякой, пролетел всю мою область, Литву и приземлился почти у границы с Латвией.
Его координаты: 55.83593 Latitude, 25.87795 Longitude.
Необходимо раньше, чем остальные забрать его оттуда. Награда — вы будете первыми, кто увидит фотки с него, но оборудование необходимо вернуть (там дорогие мне вещицы).

Искать надо, скорее всего, правее метров на 20, вот такой агрегат (первая картинка)
Конечно, в худшем варианте, контейнер возможно лопнул, и там только маячок валяется, он такой image его размер с ладонь.
Вот усредненная координата www.maps.lt/map/?lang=lt#obj=617640;6190660;Pa%C5%BEym%C4%97tas%20ta%C5%A1kas;&xy=617723,6190645&z=2000&lrs=orthophoto,stops
Вот с учетом возможного смещения на северо-запад www.maps.lt/map/?lang=lt#obj=617678;6190709;Pa%C5%BEym%C4%97tas%20ta%C5%A1kas;&xy=617719,6190690&z=2000&lrs=orthophoto,stops


Прошу нашедшего связаться со мной или с blackover. Мой Skype: ale.x.r

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

Непостмортем игры «Roads of Rome» («Дороги Рима»)

Reading time10 min
Views4.9K
В данной статье я хочу кратко рассказать о разработке казуальной игры «Roads of Rome» («Дороги Рима»).
Возможно это будет интересно тем, кто только собирается заняться разработкой игр. Собственно о программировании будет мало, больше о том, что использовалось в процессе разработки.
Читать дальше →

Information

Rating
Does not participate
Location
München, Bayern, Германия
Date of birth
Registered
Activity