суббота, 25 января 2014 г.

[prog] Еще интересное с RSDN, про опыт использование СУБД от Oracle

Поделился ув.тов.netch80 (один из самых толковых спецов, тусующихся на RSDN, так что история вдвойне заслуживает внимания):

В portaone ради "серьёзных людей" пришлось делать вариант поддержки базы Oracle. Теперь
1) нужен фактически отдельный DBA, оплата книг, курсов, etc, и он постоянно занят диагностиками и оптимизациями.
2) резко усложнилось администрирование — банальный запрос мелкой переделки структуры базы требует согласований, подгонки под умение базы в плане организации индексов, местами какие-то безумные требования типа "для этой колонки включите nls_sort_ci, и нам пофиг, что у вас там адрес узла, которому всякие особенности локализации в принципе запрещены", в результате мы рисуя чего хотим видеть — выглядим идиотами перед DBA'щиками.
3) DBA ходит и ноет "вы тут слишком много транзакций плодите. собирайте действия в пачки, даже если совершенно не связаны друг с другом. у меня коммит дорогой".
4) у клиентских библиотек в принципе не лечатся детские болезни. обрыв сети после отправки полного запроса, но до получения ответа — и клиент не знает про таймаут. перевод на connection pool под реальной нагрузкой даёт segfault'ы из-за обгонов. в ихней багбазе уже с десяток тикетов и фиксов на эти проблемы, но они всё равно не вылечены. в результате на клиентское соединение порождаем промежуточный процесс, который не жалко убить.
5) получили жёсткую привязку к RHEL, который отстаёт по куче софта.

И это я ещё не вспоминаю проблемы собственно DBA, и дублирование текстов запросов серьёзнее, чем "select foo from bar". Я давно уже жалею, что перед этим отказались от постгреса.

[prog.flame] Интересное мнение про перспективы .NET

Нашел на RSDN интересное мнение о перспективах .NET в корпоративном секторе. Позволю себе процитировать полностью:

Могу сказать про банки в штатах. .NET с серверов приложений полностью выдавлен джавой. Web-технологии 50/50. Десктоп пока за .NET. Но тенденции печальные.

Если ещё лет пять назад можно было говорить о конкуренции .NET с джавой на серверах приложений, то сегодня такого разговора нет вообще в принципе. Всё! .NET с серверов надёжно и надолго вытеснен. Что от этого выиграла MS мне лично не понятно Везде крутится линукс. Если бы наоборот — выжали джаву с серверов, то не исключено, что на определённом, и, думаю, не маленьком, проценте серверов сейчас крутилась бы винда. Но не судьба.

В Web интересен прежде всего сильверлайт, которому в мире джавы альтернативы нет. Но MS эту технологию забросила и вовсю пиарит HTML5/JavaScript, что как раз и является пиленимем сука. Если они переведут всех веб девелоперов на это дело, то далее лёгким движением IIS меняется на Апач и .NET разработчики становятся джавистами. После чего возникает вполне законный вопрос — а зачем нам винда для веб-серверов? Нафиг винду, линукс форева.

На десктопе ситуация похожая. WPF мёртв и замену ему можно ждать только из мира джавы. Как только на горизонте появится что-нибудь достойное, то дотнетчиков попрут и с десктопа поганой метлой. А потом точно также встанет вопрос о нужности винды на десктопе.

Некоторым это всё, конечно, покажется страшилками, но против фактов не попрёшь. Не бывает так, чтобы платформа потихоньку сдавала свои позиции, сдавала, сдавала, а потом раз и всех заборола! Хрен вам! Пока мы устойчиво катимся вниз и наклон только увеличивается.

Вспомнилось, что несколько месяцев назад где-то на microsoft.com читал какой-то документик, который описывал основные стратегические направления, на которые должны ориентироваться разработчики для платформ MS. Направления там было три, но я запомнил только два из них. Первое -- это HTML5+JS для создания кросс-платформенных приложений, которые смогут работать как на Web, так и на Desktop (Metro-style), так и на мобильных устройствах. Второе -- это нативная разработка на C/C++ для создания высокоэффективных приложений для десктопа и мобильных устройств (для экономного расхода ресурсов). Было там еще и третье направление, вроде бы связанное с .NET-ом, но мне оно показалось настолько невнятно сформулированным и как-то странно позиционированным, что я про него быстро забыл. Так вот, имхо, озвученное на RSDN мнение тов.IT, вполне согласуется с такими акцентами в стратегии MS.

Кроме того, нужно вспомнить, что очень динамично развивающаяся сейчас ниша -- это мобильные устройства. Доминируют в котором iOS (а это, в основном нейтив на Objective-C) и Android (а это Java + немножко нейтива). Доля MS здесь минимальна, перспективы, даже после поглощения соответствующего подразделения Nokia, непонятны. Да и разработчикам под мобильные платформы, имхо, удобно применять HTML5+JS для кроссплатформенности или же родные для платформы технологии для производительности. Так что даже если доля Windows-устройств будет увеличиваться, востребованность для них .NET не будет расти такими же темпами из-за привлекательности связки HTML5+JS.

Интересно было бы узнать мнение читателей на счет перспектив .NET-а в тех или иных прикладных сегментах. Может, напротив, для .NET-а все не так печально?

вторник, 21 января 2014 г.

[prog.c++.wow] const int КОД_ОПЕРАЦИИ = 1;

Когда в 1990-не-помню-уже-в-каком-году я начинал осваивать C, а затем C++, в идентификаторах нельзя было использовать русские буквы. Прошло много лет и я где-то мельком услышал, что в C++ теперь допускается применение русских букв в именах. Прошло еще много лет и наконец-таки я увидел реальный живой C++код с использованием набранных на русском языке идентификаторов. В кодировке CP1251, естественно...

Теперь очень хочу это развидеть!!! :(

Upd. Желающие могут поиграться с разными версиями разных компиляторов здесь.

суббота, 18 января 2014 г.

[life.humour] Игрушечное оружие для стрельбы резинками

В G+ ленте в последние дни часто встречается упоминание какого-то чудо-пулемета, стреляющего резинками.

Однако, выяснилась интересная вещь. Есть забавный сайтик oggcraft.jp, на котором собрана целая коллекция описаний/фотографий/видеороликов подобных вещей. Вот некоторые фотографии оттуда:

Видеозаписи моделей в действии можно найти на YouTube.

Там же на YouTube обнаружился еще один вариант пулемета Гатлинга для стрельбы резинками.

А если заняться поисками аналогичных вещей более чуть посерьезнее, то сразу же находится соответствующая статья в Wikipedia, а так же несколько сайтов, которые продают подобные игрушки. Например, rubberbandguns.com

В общем, народ развлекается :)

пятница, 17 января 2014 г.

[prog.c++] Мысли по подпискам и отсылке сообщений в SObjectizer-5

В последние пару недель, когда позволяло время, выдумывал разные способы устранения узких мест в SObjectizer-5. Несколько вариантов изменения механизмов хранения подписок и доставки сообщений до получателей рассмотрел с разных сторон. Один из них, тот, который показался самым жизнеспособным, решил зафиксировать в виде документа, дабы глупость говорящего видна был ;) По-хорошему, следовало бы это сделать в Wiki на SourceForge, но я не настолько владею английским, чтобы написать связный текст в несколько страниц.

Вот это описание. Выкладываю в общий доступ по двум соображениям.

Во-первых, кому-то это может быть интересно узнать, как actor model может воплощаться в жизнь на низком уровне. И, если мне повезет, кто-то найдет в моей идее недостатки или обратит мое внимание на более интересные варианты.

Во-вторых, в своей недавней заметке по поводу The Reactive Manifesto я дал совет брать готовые инструменты. Отчасти это пояснение данного совета. Стоит только взяться за разработку своего велосипеда, как оглянуться не успеешь и окажешься в такой же ситуации: есть работающий, оттестированный код. Но который нужно переписать. А вокруг других забот полно. Да и сам код со временем стал не таким уж тривиальным, и требуется некоторая осторожность, чтобы новое решение не поломало старый код. Вот и приходится семь раз отмерять, чтобы один раз отрезать именно там, где нужно :)

Примечание. В документе сделано верхнеуровневое описание, которое выглядит как вполне реализуемое. Но детальной проработке хотя бы на уровне псевдокода, не говоря уже о каких-то кусках реального кода не проводилось. Так что в реализации можно будет столкнуться с какими-то нюансами, которые были упущены из вида при проектировании.

PS. Когда появляется возможность заняться проектированием таких вещей, не могу отделаться от мысли, что я сам в себе убил хорошего инженера-программиста :)