LINUX.ORG.RU

Сообщения dizza

 

[ФП] Алгоритмы

Форум — Development

В классическом понимании алгоритм это последовательность неких шагов для достижения результата. Достаточно вспомнить теже схемы алгоритмов.

Собственно вопрос: как спроецировать "стандартные" алгоритмы на функциональное программирование? Ведь декларативнео программирование тем и замечательно что избавляет от явного задание шагов решения задачи. Зависит ли эффективность алгоритма от парадигмы реализации? Как правильнее формализовать такие алгоритмы? В виде математической нотации? Если да, то в какой именно?

dizza
()

Я фшоке...

Форум — Talks
#include <stdio.h>

typedef int (*pf)(int, int);
char c[] = {85,-119,-27,-117,69,12,3,69,8,93,-61,-112};
pf sum = (pf)c;

int main()
{
	printf("%d\n", sum(5, 6));
	return 0;
}

Прочитал утром на хабре. Оно работает!

dizza
()

Why software sucks?

Форум — Talks

Т.к. я обучаюсь по специальности связанной со схемотехникой, но в тоже время работаю программистом, я стал задаваться вопросом - почему аппаратные решения, с которыми мне приходилось сталкиваться столь надежны и быстры, а большинство программ имеют довольно несовершенную структуру кода и как правило содержат приличное количество ошибок. Почему я сравниваю столь, казалось бы, разные категории - железо и софт? Дело в том, что я не могу сказать чем принципиально отличается проектирование цифровых схем от написания кода программы, тем более, что схемы можно описывать и кодом, на языках Verilog и VHDL. Может вся проблема в используемых инструментах? Типичная электронная схема представляет собой наборы из узлов 2-х типов - комбинационные схемы (КС) и конечные автоматы (КА). Последнее время я стал увлекаться функциональным программированием и меня как молнией ошарашило. КС есть узел у которого сигнал на выходе однозначно задан сигналом на входе, т.е. чистая функция с типом [bit] -> [bit]. КА есть схема с памятью, похоже на монаду ST в Haskell. Я часто слышу что ФП не более чем очередная "серебряная пуля", однако цифровые схемы ни есть живое подтверждение правильности подхода? Хотелось бы услышать мнения.

dizza
()

ICQ от Яднекса... Я Онлайн загнулся?

Форум — Talks

Слышал что на днях вышло сие поделие - http://icq.yandex.ru/. Вопрос - нафига? Ведь у них был "Я онлайн", который работает на XMPP, да и видимо на исходниках Psi основан. Выходит не покатил их jabber клиент, решили на все любимую в [этой стране] аську свалить?

dizza
()

Бизнес-логика в MVC

Форум — Web-development

В разработке приложений пытаюсь применять MVC. Так вот вопрос - где собственном место бизнес-логике? В модели? Но в веб-приложениях обычно модель это модель доступа к данным, т.е. к БД. А что если мне нужно не просто делать CRUD над БД, а постоянно анализировать данные, изменять, делать вычисления и прочее. Пока я это все запихиваю в основном в модель, а частично (то, что касается трансформации данных) в контроллеры. Поделитесь опытом плиз.

dizza
()

Потокобезопасностый IO в Spring

Форум — Web-development

Здравствуйте! Пишу веб-приложение на Spring. В том числе храню выгружаемые фалы в файловой системе. Делаю это примерно так:

int newId = fileDescDao.create(fileName, fileType....);
String path = BASE_DIR + newId + "/";
(new File(path)).mkdir;
FileOutputStream fos = new FileOutputStream(path + fileName);
IOUtil.copy(is, fos)
is.close();
fos.close();
//is - собственно выгружаемый файл.

Получается, что в БД уже существует запись, ссылающаяся на файл, а файл может быть еще не записан на диск, поэтому при попытке чтения файла может возникнуть ошибка. Более того это простой пример, есть места где запросов к БД выполняется больше. Будет ли достаточно транзакций (TransactionTemplate)?. Тогда вопрос - какая область действия их, т.е. если я напишу внутри транзакции fileDescDao.create(fileName, fileType....), то то что внутри create будет в транзакции или нет? Подскажите как это грамотно делается.

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

dizza
()

RSS подписка на новые темы