Здравствуйте, gandjustas, Вы писали:
G>А мне ничего не мешает пойти на сайт по FTP и поправить разметку Это вообще не задача.
Ага, и там же по FTP закоммитить... Стоп! А ведь по FTP не закоммитишь. Ну и не надо, нехай будет бардак: в репах одно, в том числе в продакшн-репах, а на реальном продакшне другое. Сколько крови мне попортили такие вот любители по месту хачить. Большинству, кстати, очень нравится php именно потому что в нём можно творить такой беспредел — лазить куда надо и не надо, и компилять ничего не нужно. А как по мне, разметка — это точно такой же код, как и всё остальное. Неудачной правкой в нём можно разломать проект точно ничем не хуже, чем server-side глюком. Так что нехай компилируется, заодно парность открывающих и закрывающих тегов хотя бы проверится; и вообще, scala xml literals рулят.
Здравствуйте, genre, Вы писали:
G>А тебе не приходила в голову мысль взять какой-нибудь более подходящий инструмент и к этому моменту запилить раза в два-три больше?
Эх, бизнесмены-шароварщики... Человек просто совмещает приятное с полезным, ну нравится ему. Чего прицепились? А деньги ему и так платят, подозреваю даже, что независимо от того, будет он это всё писать или не будет.
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Здравствуйте, artelk, Вы писали:
A>>Гораздо более удобных, чем Linq, реализованный на C++
НС>Таким же извратством как boost lambda? У тебя, как обычно, очень странное представление об удобстве.
Есть замечательная либы sqlpp11, кандидат на включение в boost.
Пример из мануала:
For the examples, lets assume you have a table class representing something like
CREATE TABLE foo (
id bigint,
name varchar(50),
hasFun bool
);
And we assume to have a database connection object:
TabFoo foo;
Db db(/* some arguments*/);
// selecting zero or more results, iterating over the resultsfor (const auto& row : db(select(foo.name, foo.hasFun).from(foo).where(foo.id > 17 and foo.name.like("%bar%"))))
{
if (row.name.is_null())
std::cerr << "name is null, will convert to empty string" << std::endl;
std::string name = row.name; // string-like fields are implicitly convertible to stringbool hasFun = row.hasFun; // bool fields are implicitly convertible to bool
}
// selecting ALL columns of a tablefor (const auto& row : db(select(all_of(foo)).from(foo).where(foo.hasFun or foo.name == "joker")))
{
int64_t id = row.id; // numeric fields are implicitly convertible to numeric c++ types
}
// selecting zero or one row, showing off with an alias:
SQLPP_ALIAS_PROVIDER(cheese);
if (const auto& row = db(select(foo.name.as(cheese)).from(foo).where(foo.id == 17)))
{
std::cerr << "found: " << row.cheese << std::endl;
}
// selecting a single row with a single result:return db(select(count(foo.id)).from(foo).where(true)).front().count;
Of course there are joins and subqueries, more functions, order_by, group_by etc.
These will be documented soon.
// A sample insert
db(insert_into(foo).set(foo.id = 17, foo.name = "bar", foo.hasFun = true));
// A sample update
db(update(foo).set(foo.hasFun = not foo.hasFun).where(foo.name != "nobody"));
// A sample delete
db(remove_from(foo).where(not foo.hasFun));
Да, возможно, не так крут, как LINQ, но прогресс есть. До 11-ых плюсов о таком можно было только мечтать
Здравствуйте, dimgel, Вы писали:
D>Эх, бизнесмены-шароварщики... Человек просто совмещает приятное с полезным, ну нравится ему. Чего прицепились? А деньги ему и так платят, подозреваю даже, что независимо от того, будет он это всё писать или не будет.
Мне всегда казалось, что научится новому и применить эти знания с пользой это одна из самых приятных вещей в программировании. А коли программисту приятно так и клиенту полезнее.
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Прямого аналога eval'а из динамических языков в нем нет. А то, как он там может быть сымитирован, сводит количество тех, кто стал бы этим пользоваться в продуктивных приложениях к единицам.
Но аппарат имеется? Как и соответствующие способы выстрелить себе в ногу в C++.
KV>>>Так это с моей стороны был сарказм в адрес твоего утверждения о вменяемых разработчиках. ХГД>>Я бы сказал чуть по другому — голословный выпад
KV>Не вижу смысла спорить на тему "я лучше чем ты знаю, что ты этим хотел сказать"
Я не знаю, что ты хотел сказать, но прекрасно вижу, что сказал в результате
ХГД>>Ну то есть тебе неизвестно ни об одном случае взлома нативных приложений через неверный UTF-8
KV>О "неверном UTF-8" говорил ты. Я говорил о недостаточной обработке кодировок. Случаи известны, сплоиты см. ниже.
Напомню — речь шла о следовании некоторым простым и необременительными правилам, которое позволяет избавиться от множества потенциальных уязвимостей. В числе которых — принимать от пользователя только utf-8 строки (если нет острой необходимости поступать иначе). Меня, собственно, удивило, почему ты их назвал "лишними телодвижениями", и я попросил пояснений. Вместо пояснений ты сначала начал цепляться к словам (откуда и выползла utf-8), а потом зачем-то начал приводить примеры эксплойтов.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Здравствуйте, genre, Вы писали:
G>Да я знаю. Но разве попытка сделать мир лучше не засчитывается в карму?
А ты уверен, что это была попытка именно сделать лучше? Вот сидит человек, ковыряется в своей песочнице, счастливый как ребёнок, зла никому не делает. А ты пытаешься повернуть его взгляд в сторону циничных взрослых игр, где единственная цель и смысл — деньги. Ведь так? Ведь этой самой цели и подчинены все нынешние представления о качестве и правильности?
Здравствуйте, genre, Вы писали:
G>А коли программисту приятно так и клиенту полезнее.
Я б поспорил. Это вещи почти полностью ортогональные. Клиенту нужен результат, а программисту приятен процесс. Или напротив, неприятен, если клиент упёрся рогом в какой-нибудь php, например. Ради дешёвого хостинга. Так и у Шеридана: ему сказали "надо, но не срочно, а между делом", а как и на чём он это будет делать — счастливый человек, имеет полную свободу выбора. А все прозвучавшие здесь очень правильные аргументы о том, как правильно, в данном случае побоку совершенно. Я про такое счастье со времён складских-программ-велосипедов в 90-х уж не вспоминаю, а тут прямо в чистом виде ситуация и человек-ремесленник-сам-себе-творец из прошлого, ещё не испорченного всей этой мануфактурой.
Здравствуйте, ZiloT, Вы писали:
ZT>Да, возможно, не так крут, как LINQ, но прогресс есть. До 11-ых плюсов о таком можно было только мечтать
В этом примере из C++11 там только range-based-for и auto, которые погоды не делают.
То что реализация внутри использует C++11, ортогональному тому, можно было получить подобный интерфейс в C++98 или нет (судя по приведённому примеру — можно).
Здравствуйте, dimgel, Вы писали:
G>>Да я знаю. Но разве попытка сделать мир лучше не засчитывается в карму?
D>А ты уверен, что это была попытка именно сделать лучше? Вот сидит человек, ковыряется в своей песочнице, счастливый как ребёнок, зла никому не делает. А ты пытаешься повернуть его взгляд в сторону циничных взрослых игр, где единственная цель и смысл — деньги. Ведь так? Ведь этой самой цели и подчинены все нынешние представления о качестве и правильности?
Ну с точки зрения "сидит ребенок ковыряется в песочнице" действительно не стоит ничего говорить. Но жизнь, циничная и взрослая, убеждает меня, что хороший результат (именно в программировании) приносит гораздо больше удовлетворения чем забавный процесс. Ну говоря уж о том, что инфантильное "зато мне интересно" как-то похуже взрослого "я сделал хороший продукт и куча людей пользуются им с удовольствием".
При чем тут деньги я не понял, может потому, что хорошесть продукта выраженная в деньгах равна хорошести продукта выраженного в удовольствии пользователей?
Здравствуйте, genre, Вы писали:
G>Ну говоря уж о том, что инфантильное "зато мне интересно" как-то похуже взрослого "я сделал хороший продукт и куча людей пользуются им с удовольствием".
Блин, сложно спорить с убийственной логикой, но я попробую.
Хм. Пожалуй даже, убийственная она только на первый взгляд. Возьмём, например, какой-нибудь хороший продукт, которым куча людей пользуется с удовольствием. Например, вконтактик. Зло в чистом виде: уводит человека из реальности в какое-то пространство замешанных на самолюбовании убогих сублиматов, в нечто такое, где и жизнь — не жизнь, и общение — не общение. (Много-много лет назад на кывте кто-то сказал своему оппоненту нечто вроде следующего: "да, мы с вами с некоторой точки зрения не общаемся" — и словил кучу смайлов. Что я думаю о поставивших эти смайлы, я оставлю при себе во избежание.) Я к тому, что "хороший" применительно к продукту или чему-либо другому — очень условная категория. А уж приводить в качестве аргумента удовольствие пользователей... Пойло, курево, наркотики, бессмысленное втыкание в телевизор... Вот топ среднестатистических человеческих удовольствий.
И это ещё не говоря о том, что сама жизнь суть процесс, а не некий конечный результат, к которому нужно прийти ради вящего удовольствия окружающих (которых успел задрать при жизни).
Приподнял то что есть, смотреть там http://www-test.sergos.ru/
Местами криво, местами ссылки из контента в нитуда. Можешь потрогать. Но в любой момент могу рубануть...
Здравствуйте, dimgel, Вы писали:
D>Блин, сложно спорить с убийственной логикой, но я попробую.
D>Хм. Пожалуй даже, убийственная она только на первый взгляд. Возьмём, например, какой-нибудь хороший продукт, которым куча людей пользуется с удовольствием. Например, вконтактик. Зло в чистом виде: уводит человека из реальности в какое-то пространство замешанных на самолюбовании убогих сублиматов, в нечто такое, где и жизнь — не жизнь, и общение — не общение. (Много-много лет назад на кывте кто-то сказал своему оппоненту нечто вроде следующего: "да, мы с вами с некоторой точки зрения не общаемся" — и словил кучу смайлов. Что я думаю о поставивших эти смайлы, я оставлю при себе во избежание.) Я к тому, что "хороший" применительно к продукту или чему-либо другому — очень условная категория. А уж приводить в качестве аргумента удовольствие пользователей... Пойло, курево, наркотики, бессмысленное втыкание в телевизор... Вот топ среднестатистических человеческих удовольствий.
Перевести спор о программировании в такую философскую плоскость... Ну ладно, давай посмотрим, что там.
Ты делаешь некоторое обобщение, которое неверно как в общем так и в частном.
В общем — хорошесть продукта. Например контактик не зло, точнее это такое же зло как и молоток, которым забили гвоздь не в стену, а в чью-то голову. Продукт (а в нашем случае программный продукт) это лишь инструмент. И зло в нем бывает исключительно от того кто и как его использует. Вот конкретно контактик никакое даже не зло. Самолюбование сублиматов никакого отношения к контактику не имеет, не будет контактика, будут сублимировать как-нибудь иначе, всего-то делов.
Ну а в частном тот факт, что удовольствие пользователей бывает от чего-то плохого никак не запрещает нам радоваться удовольствию пользователей от чего-то хорошего.
Более того, оно вполне себе пересекается, например, совершенно на мой взгляд чудовищный сайт одноклассники, позволил мне когда-то восстановить пару потерянных контактов. Мелочь, а приятно.
Здравствуйте, Sheridan, Вы писали:
S>Приподнял то что есть, смотреть там http://www-test.sergos.ru/ S>Местами криво, местами ссылки из контента в нитуда. Можешь потрогать. Но в любой момент могу рубануть...
Здравствуйте, Sheridan, Вы писали:
S>Здравствуйте, Ночной Смотрящий, Вы писали:
S>Приподнял то что есть, смотреть там http://www-test.sergos.ru/ S>Местами криво, местами ссылки из контента в нитуда. Можешь потрогать. Но в любой момент могу рубануть...
Я действительно не понимаю, почему не Joomla или WP...
Нет, для себя конечно можно, для интереса, но если делается для организации, то тот кому выпадет поддерживать этот сайт после вас будет поминать вас исключительно непечатными словами.
Здравствуйте, Sheridan, Вы писали:
G>>Это то, что написано на С++? S>Это то, что еще недописано на с++
Ну вот лично у меня листалка статей дико тормозит, переключение занимает от 3 секунд. Как ты понимаешь при этом скорость рендера этой тормозящей страницы меня мало волнует.