Недавно прочитал достаточно интересную книгу, посвящённую разработке пользовательских интерфейсов. Это Разработка пользовательских интерфейсов Дженифер Тидвелл. Автор - дизайнер и программист из компании MathWorks, разработчика MatLab. Книга содержит в себе большое количество шаблонов(паттернов) проектирования пользовательских интерфейсов. Подход к формированию материала книги аналогичен классическому труду Паттерны проектирования. В книге представлено большое количество шаблонов различных вариантов пользовательских интерфейсов. При этом речь идёт как о компоновке интерфейса в целом, так и об отдельных его элементах. Каждый паттерн снабжён описанием ситуации, в которой его стоит применять, и примерами использования.
четверг, 10 июля 2008 г.
вторник, 1 июля 2008 г.
Кодировка в MingW
Я уже писал о проблемах с выводом в консоль кирилического текста с использованием компилятора MingW. Сегодня мне наконец-то удалось найти информацию в чём проблема и как с ней бороться. Оказалось, что проблема заключается в том, что в MingW просто напросто отсутствует необходимая локаль. По приведённой выше ссылке есть решение этой проблемы для C++ потоков.
понедельник, 23 июня 2008 г.
Забавная бага
Вот здесь я нашёл пример кода с забавной ошибкой. 60 секунд мне хватило для того, чтобы догадаться что же не так. =)
int ar[5];
for (unsigned int i = 4; i >= 0; i--) {
printf("%d\n", ar[i]);
}
Автор:
Алексей
на
10:52
0
коммент.
Ярлыки: C++
среда, 11 июня 2008 г.
Офигеть!
Офигеть! Сегодня узнал, что в C++ можно прямо в описании класса задавать значение статических членов.
class Foo
{
static int comeData = 10;
};
Автор:
Алексей
на
20:23
0
коммент.
Ярлыки: C++
вторник, 10 июня 2008 г.
Rails и XML
Любая модель(ActiveRecord) в Rails умеет сохраняться в виде xml. Это позволяет без проблем в зависимости от запроса выдавать результат в html или xml виде. А это значит, что появляется возможность прикрутить клиент отличный от браузера.
Сделать это можно следующим образом.
class TestController < ApplicationController
def get_data
res = FooObject.find(params[:id])
respond_to do |format|
format.html
format.xml { render :xml => @res}
end
end
end
По запросу http://localhost:3000/test/1 будет получена html-страница, созданная в по соответствующему шаблону, а вот по запросу http://localhost:3000/test/1.xml получится xml-представление объекта FooObject. Что именно окажется в xml-файле опредляется строчкой
format.xml { render :xml => @res}
Без проблем сериализуются как отдельные объекты, так их объекты, находящиеся в контейнере.
Программу для запроса xml-файла я написал на C#.
//создаём запрос
WebRequest request = WebRequest.Create(queryUrl);
request.ContentType = "text/xml";
WebResponse myWebResponse = request.GetResponse();
long len = myWebResponse.ContentLength;
byte[] buff = new byte[len];
//считываем результат в буффер
myWebResponse.GetResponseStream().Read(buff, 0, (int)len);
string responseXml =
new String(System.Text.Encoding.ASCII.GetString(buff).ToCharArray());
Таким образом в responseXml окажется интересующий нас xml-файл, с которым можно делать всё, что душе угодно.
Автор:
Алексей
на
19:37
0
коммент.
пятница, 18 апреля 2008 г.
IDE для Ruby
Удобная IDE в состоянии сильно облегчить жизнь программисту. Для C++ и C# я практически всегда использую Visual Studio. Для Ruby я пробовл использовать несколько других редакторов.
- SciTE
Достаточно простой и легковесный редактор кода, не заточенный под какой-либо конкретный язык или набор языков. SciTE подсвечивает код и умеет заканчивать некоторые языковые конструкции. Список поддерживаемых языков очень велиек и при необходимости можно добавить и описание своих языков. Отлаживать код с помощью SciTE нельзя. Зато этит редактор без проблем работает на моём стареньком ноуте со 128 метрами памяти. - Komodo Edit
- NetBeans
Гораздо более продвинутый редактор. Он поддерживает ограниченый набор языков, но делает это в более полной степени, чем SciTE. Для Ruby есть автодополнение, показ списка доступных методов. Кроме Ruby поддерживаются Tcl, Pyton, Php, JavaScript. Есть возможность отладки кода. Komodo годаздо тяжеловеснн SciTE.
Это наиболее развороченная система из этих трёх. NetBeans написана нак Java, вследствие чего жрёт немало памяти. NetBeans - одна из самых используемых Java-разработчиками IDE. Интеграция с RubyOnRails сделана очень мощно - в контексте можно посмотреть не только список функций, но и описание к ним. В сэмплах Rails-проктов лежит Depot =)
среда, 16 апреля 2008 г.
Rails Depot
Ну вот я и осилил первую часть книги Agile Web Development, в которой описывается, как создать простейший интернет-магазин. Далее идёт более детальное описание того, почему всё делается так, как делается. По объёму это примерно половина книги. Параллельно с чтением я решил попробовать написать свой небольшой проектик. Дело пошло, но оказалось, что значительные затруднения у меня вызвала собственно вёрстка страничек. Всё ж таки программирую я постоянно(на разных языках), а вот с html'ем я в последний раз работал года этак 3 назад. А CSS вообще выглядит магией =). Не говоря уже о всяких AJAX'ах.