- Я люблю комфорт. А летать самолетом — это когда на трехчасовой собственно перелет уходит двенадцать часов жизни и ни один, повторяю, ни один из этих часов нельзя назвать проведенным в комфорте. То ли дело поезд. Добрался до вокзала, загрузился в купе и отдыхай. А с авиаперевозками что-то не так. Почему 3-х часовой перелет превращается в 12-ти часовое путешествие?
-
- Побурчал и будя.
- Как можно догадаться, я вернулся из отпуска. Был проверен отель Barut Hotels Hemera resort, город Сиде, Анталья, Турция (гуглокарта, якарта). Спать, жрать, купаться, чуть-чуть загорать, гулять, кататься на водном мотоцикле и заниматься виндсерфингом. Такая получилась программа отдыха. Зверушки остались довольны — отель прекрасный, люди приветливые, место хорошее, море видали и менее мутное, но по утрам почти идеально.
-
- Что особого?
- Когда ехали, боялись, что будет очень жарко, ибо конец июля. Но ничего, обошлось. По вечерам вполне можно гулять и чувствовать себя не рыбой на сковороде а вполне бодрячком.
-
- С отелем вышло очень удачно. Он еще не испорчен людьми сорта руссо-туристо-облико-морале. Даже узнав, что мы из России, персонал не менял своего радушно-доброжелательного отношения к нам.
-
- Отдельная тема — виндсерфинг! Это так классно, оказывается! Хочу еще.
-
- В общем, при случае еще раз посетим. Нам все очень понравилось.
-
- А подпись, к примеру, такая: а ведь мне еще обратно чебурахаться, ёклмн! Тяжко быть нубом.
Tools
Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.
2011-07-31
Почему я не люблю перелеты
Posted by Valentin at 22:58 0 comments
2011-07-29
ArcGIS 10, Python
- Обучающие материалы по использованию Python в ArcGIS 10
- resources.arcgis.com/gallery/file/geoprocessing/details?entryID=E659B67B-1422-2418-A0FE-4F1642052299
- 18 мегабайт, большая часть — примеры обрабатываемых данных.
-
- Topics covered include scripting geoprocessing workflows, batch processing, reading and creating data, raster analysis with the ArcPy Spatial Analyst module, map automation with the ArcPy Mapping module, and creating script tools.
-
- blogs.esri.com/Dev/blogs/geoprocessing/archive/2011/05/24/Extending-ArcGIS-with-Python
-
Posted by Valentin at 00:44 0 comments
2011-07-28
26 Терабит/сек
- Содержимое двухтерабайтного жесткого диска за одну секунду — круто! Вот они, новые рубежи в передаче данных
-
- как обойтись всего одной лазерной установкой: для этого испускались очень короткие импульсы, несущие в себе отдельные участки светового спектра. Их смешение и разделение в процессе передачи позволило создать 325 различных цветов, каждый из которых мог нести свой пакет данных.
-
- Поскольку в этом случае принимающий лазерный генератор не способен расшифровать сигнал, использовался алгоритм, известный как быстрое преобразование Фурье. Учёные применили его не математически, а оптически — разделив входящий луч на разные «дорожки», прибывающие в разное время.
-
- В прошлом году скорость передачи данных таким способом превысила 10 Тбит/с, а теперь информация была успешно отправлена на 50-километровое расстояние со скоростью 26 Тбит/с.
- citforum.ru/news/26297
- nature.com/nphoton/journal/v5/n6/full/nphoton.2011.74
- bbc.co.uk/news/science-environment
-
Posted by Valentin at 00:37 0 comments
2011-07-27
ФИС
- С мест сообщают, что
-
- Президент Дмитрий Медведев подписал указ о создании Федеральной службы по интеллектуальной собственности, которая должна принять на себя функции Роспатента и других агентств, выполняющих функции контроля и надзора в сфере правовой охраны и использования интеллектуальной собственности.
- citforum.ru/news/26299
-
- В то время как настоящий тест гласит
-
- Возложить на Федеральную службу по интеллектуальной собственности следующие функции:
- а) контроль и надзор в сфере правовой охраны и использования результатов интеллектуальной деятельности гражданского, военного, специального и двойного назначения, созданных за счёт бюджетных ассигнований федерального бюджета, а также контроль и надзор в установленной сфере деятельности в отношении государственных заказчиков и организаций – исполнителей государственных контрактов, предусматривающих проведение научно-исследовательских, опытно-конструкторских и технологических работ;
-
- kremlin.ru/news/11318
-
- Жирненьким видно? «...результатов... созданных за счет ... федерального бюджета...».
- Пираты могут не беспокоиться?
-
Posted by Valentin at 00:11 0 comments
2011-07-26
Зубы
- Способ проверить качество чистки зубов
-
- достаточно несколько капель йода на сантиметр воды в чашке, размешать и пополоскать секунд 15-20, после этого один раз прополоскать водой. Йод смоется с чистой эмали и впитается в налёт, сразу наглядно качество чистки
-
- Соки и газировки содержат кислоту, вредную для зубов. Долго жевать резинку вредно, как и скрипеть во сне зубами.
-
- А вот досаждает, и порой до бешенства, упорное желание оставаться в рамках своего невежества. «А я думала…» или «решил дождаться назначенного приёма…» после наставления с повторением «если будет болеть или вообще что-то не так – сразу звоните в любое время!» выбешивает донельзя. Какого лешего ДУМАТЬ, если НЕ ЗНАЕШЬ?! На основании чего судить и рассуждать?!
-
- popdoc.ru/articles/158
- alradist.livejournal.com
-
- Очередь к доктору больше чем на месяц. Теперь будет еще больше.
-
Posted by Valentin at 22:38 0 comments
2011-07-25
Головоломка
- Тем, кто думает, что знает C, C++
- Остальным смело пропустить мимо.
- Что делает это макро?
-
template <typename T, size_t N> char (&ArraySizeHelper(T (&array)[N]))[N]; #define arraysize(array) (sizeof(ArraySizeHelper(array)))
Posted by Valentin at 21:26 0 comments
Labels: citation, programming
2011-07-24
WIFI in Linux
- Как в Linux подключится к wifi точке доступа?
-
- Давайте рассмотрим два случая настройки соединения с беспроводной точкой доступа:
- - графическое приложение Wicd (для примера);
- - консольные утилиты.
-
- Предполагается, что у вас имеется беспроводное сетевое устройство (адаптер), который работает под Linux....
- Также предполагается, что у вас имеются в наличии два параметра для подключения к беспроводной точке: SSID и идентификационный ключ. Без них (особенно - без второго, так как первый еще можно легко узнать) вы не сможете установить соединение.
- rus-linux.net/ /lvs/wifi/nastroika-wifi-na-Linux-desktope
- vasnake.blogspot.com/2009/03/debian-wireless-wpa-tkip-psk
-
Posted by Valentin at 21:08 0 comments
2011-07-23
ASP.NET ViewState
- Срывая покровы. Весьма полезная (дотнетовцам) статья про ASP .NET ViewState.
-
- А вот документация на MSDN, которая описывает то, как элементы управления хранят свое состояние между postback'ами. Нельзя сказать, что эта документация неверна, но в ней содержится утверждение, которое не до конца правильно:
-
- «Если элемент управления использует ViewState для свойства вместо скрытого поля, это свойство будет автоматически сохраняться между отправками ответов клиенту.»
-
- Похоже, что здесь подразумевается что все, что пихается во ViewState, будет отправляться клиенту. НЕПРАВДА! Понятно, откуда берется такая суматоха вокруг ViewState'а. Нигде в Интернете я не смог найти 100%-но полного и точно описания его работы! Лучшая статья, которую я видел, это статья Скотта Митчелла. Она обязательна к прочтению. Однако она не объясняет взаимодействие родительских и дочерних элементов управления во время инициализации и трекинга ViewState'а, и уже это вызывает множество непониманий ViewState'а, по крайней мере исходя из моего опыта.
-
- Так что первая цель этой статьи — дать исчерпывающее объяснение того, как функционирует ViewState, от начала до конца, по возможности закрывая белые пятна, оставленные другими статьями. После подробного описания процесса ViewState'а я покажу несколько ошибок, которые допускают разработчики при использовании ViewState'а, как правило даже не догадываясь об этом, и как эти ошибки исправлять. Следует отметить, что я писал эту статью на основе ASP.NET 1.x. Однако изменений в механизме ViewState'а в ASP.NET 2.0 очень мало. В частности, появился новый тип ViewState'а — ControlState, однако он используется точно также, как и ViewState, поэтому мы можем его просто проигнорировать.
-
- Сперва позвольте мне объяснить, почему я считаю, что понимание сути ViewState'а очень важно:
-
- Непонимание ViewState'а ведет к...
-
- Потере важной информации
- Атакам на ViewState
- Плохой производительности — вплоть до ОТСУТСТВИЯ ПРОИЗВОДИТЕЛЬНОСТИ
- Плохой расширяемости — как много пользователей вы сможете обслужить, если каждый из них будет отправлять 50k с каждым запросом?
- Плохому дизайну вообще
- Головной боли, тошноте, головокружениям и необратимому искривлению формы надбровных дуг.
- ...
-
- habrahabr.ru/blogs/net/119537
-
- Сцылки на оригинал статьи я не нашел.
-
- Из каментов:
-
- Подскажите, если используешь ASP.NET MVC, то имеет ли смысл читать статью?
-
- Вьюстейт с MVC использовать нельзя, концепция этих подходов к разработке разная.
- MVC принимает http протокол как неизбежность, и не пытается оградить разработчиков от него, городя абстракции, жизненный цикл страницы, вьюстейты и апдейтпанели. Плюс используется MVC паттерн, что делает проекты дружелюбными к юнит тестам, например.
- Web Forms же пытается косить под WinForms, но жизнь есть жизнь, и у такой дружелюбности к тем, кто переходит с вин формс, есть своя цена вроде таких штук.
- Вот так как-то.
-
Posted by Valentin at 20:57 0 comments
Labels: Microsoft, web-develop
2011-07-22
APEX
- Апекс крут, апекс силен, но что делать, если в таблице больше 10000 записей и опубликованный отчет кажет «This query returns more than 10 000 rows, please filter your data to ensure complete results»?
-
- Есть ответ.
-
- В режиме разработчика открываете нужную страницу, в левой колонке (Page Rendering) находите свою таблицу и щелкаете правой кнопкой. Выбираете «Edit Report Attributes». Вкладка «Pagination», параметр «Maximum Row Count». Это все, жмете «Apply» и наслаждаетесь пельмешком.
-
- vasnake.blogspot.com/2011/03/blog-post_9909
-
Posted by Valentin at 02:36 0 comments
Labels: cheatsheet, Oracle
2011-07-21
Fusion tables
- А Google не спит, Google движется к мировому господству :)
- Нынче у него серьезные подвижки в гео-инструментах. Лично меня поразили фьюжн-таблицы. Просто, изячно, мощно. Хотите построить свою маленькую ГИС с блекджеком и шлюхами? Вам понадобятся браузер, учетка в Google и, кровь постиндустриальной цивилизации — данные.
-
- allowing GIS experts to worry about geospatial information science rather than geospatial information systems
- mapspersecond.com/blog/2011/05/a-few-google-geo-presentations
-
- google.com/fusiontables/DataSource?dsrcid=207308
- google.com/fusiontables/public/tour
- google.com/support/fusiontables/bin/answer.py?answer=1032332
- sites.google.com/site/fusiontablestalks/stories
-
Posted by Valentin at 03:40 1 comments
2011-07-20
django_sorting
- Симпатичная получилась сортировка, зацените.
-
- After all, what use is a data catalog if you can’t rely on the search results? While designing the page, we decided we wanted to include several ways to sort and filter results along with the standard text search. I’d used directeur’s django_sorting module before, and was highly impressed at how well it integrated with other info already in search parameters, so I decided to use it again. The only thing keeping me from seamlessly dropping in this module was our desire to use images instead of words for the “click on this to sort” link. Django_sorting was built with table headers in mind; so much so that the examples are all about table header tags with a link inside them. We had a slightly different implementation in mind.
-
- azavea.com/blogs/labs/2011/05/using-jdango_sorting-without-text-anchors
-
- Немного jQuery, немного спрайтов и выглядит как новенький.
-
Posted by Valentin at 03:11 0 comments
2011-07-19
Exadata Database Machine
- Как это работало раньше. Как это работает сейчас и будет работать еще долго. Надо ли упоминать, что в России можно по пальцам одной руки (ну, может и двух) пересчитать конторы, в которых не просто «произведена инсталляция» а реально работает «как раньше»? Но почитать про перспективы и тенденции всегда интересно.
-
- Как это работало раньше, все хорошо знают. Транзакционные системы работали со своим массивом данных, над ним строились хранилища данных, которые обрабатывали и агрегировали по определенным правилам транзакционные данные, чтобы предоставлять к ним быстрый доступ. На основе данных из хранилища строилась динамическая аналитическая отчетность (то, что называется OLAP), на них строились специальные приложения для доступа, «витрины данных» и так далее. Каждый из уровней в этой архитектуре обладал своими серьезными ограничениями на работу с полным массивом бизнес-данных компании. Но сейчас ситуация начала стремительно и принципиально меняться
- ...
- Создание Exadata Database Machine – практически бесконечно горизонтально масштабируемой – это революция с точки зрения доступа и обработки данных. И это колоссальный вызов таким столпам серверного рынка hi-end, как IBM и HP. Сегодня эти производители пока еще занимают доминирующее положение на рынке серверов под ERP-системы и другие бизнес-приложения, но угроза со стороны Oracle, как мне кажется, недооценена
-
- ibusiness.ru/15768
- oracle.com/us/products/database/exadata-database-machine
-
Posted by Valentin at 02:52 0 comments
2011-07-18
ASP.NET MVC
- Дейв из DTSAgile показывает изготовление кастомного обработчика ошибок (404 в частности) на базе MVC ASP.NET
-
- Unlike a Web Forms app, where a url translates to a file on disk, MVC uses a set of routes to invoke methods on controller. So, when a request comes in with a bogus Url, say http://dtsams.com/bogus, the app actually throws an exception because it’s trying to instantiate BogusController, which of course is not part of the application. To catch this exception, we implement Application_Error in Global.asax
- ...
-
- blog.davebouwman.com/2011/04/21/custom-404-pages-for-asp-net-mvc-3
-
- Типа, howto.
-
Posted by Valentin at 02:36 0 comments
Labels: Microsoft, web-develop
2011-07-17
resumable HTTP upload
- Прототипчик велосипеда я написал. Но ёлы-палы, ушло на это полгода! На 700 строк кода. Не, я точно не многозадачный, надо с этим уже смириться.
-
- VCU - Vasnake web Chunked Upload (да, веб - с маленькой, зато я с большой буквы :) Работающий прототип решения задачи "resumable chunked upload over HTTP". Серверный скрипт сделан как внешний метод Zope, клиент сделан тоже на Python. До законченного решения еще пилить и пилить, но основная функция работает.
- sites.google.com/site/vasnake
-
- Страшно подумать, сколько времени уйдет на доработку прототипа до сколько-нибудь юзабельного продукта. Переделать реализацию протокола — раз, контроль доступа (свои, чужие, общие файлы) — два, каталог загруженного — три, хотя бы два браузерных клиента (Сильверлайт, Флеш) — четыре. Не, думаю, можно не ждать. В этом году не успею.
-
Posted by Valentin at 02:50 0 comments
Labels: todo, web-develop, Zope(Plone)
2011-07-16
SOP
- С подачи terrakot проснулось любопытство к парадигмам программостроения. Читал, недолго думал :)
-
- Feature-oriented programming, Aspect-oriented programming, Subject-oriented programming. Object-oriented programming... Это парадигмы, помогающие людям не разбрасываться, дающие ориентиры в их деятельности. Деятельности типа — разложить сложную проблему (задачу) на маленькие и не такие сложные кусочки. После чего из этих кусочков собрать действующую модель, на которой можно попробовать решить проблему (задачу).
-
- Еще проще? Ну вот удобно людям мыслить именно такими категориями а не какими либо другими.
-
- Но как не крути, в конечном итоге все сводится опять таки к формуле программы = структуры + алгоритмы. Можно моделировать агентов (Смитов :) с подобием свободы воли, которые кооперативно ловят баги; можно моделировать жестко детерминированных роботов — так или иначе, но надо придумать и реализовать способ и алгоритм решения конкретной задачи. Гланды тоже можно вырезать по разному. Кому как удобнее.
-
- Кстати, что любопытно, AOP отличается от SOP практически одной деталью. В AOP пересечения определяются как внешние по отношению к программному обьекту, а в SOP как внутренние. Тут надо пару хороших примеров подобрать, для осознания, наподобие тех, что вот тут приведены: slacy.com/blog/2010/03/suject-oriented-programming-sop-vs-object-oriented-programming-oop
-
- en.wikipedia.org/wiki/Subject-oriented_programming
- mat.net.ua/mat/Virt-Algoritmi-programmi
- lib.ru/CPPHB/cpptut
- offline.computerra.ru/2006/633/262140
- vasnake.blogspot.com/2011/06/aop
-
Posted by Valentin at 02:34 1 comments
Labels: programming
2011-07-15
Froyo
- Все люди как люди, у всех уже Android 2.2 а то и 2.3. Один я как дурак, на 2.1. Потому как любезная Моторола забила болт на обновление проданных в России аппаратов. Долго я ждал, не изменится ли чего к лучшему, само, без моего вмешательства. Нет, не изменилось. И пришел день, и настал другой...
-
- Короче, прошил я свой булыжник (или Булыжник?), теперь он как приличный, на Android 2.2.1. И даже не очень страшно было.
-
- Контакты для меня сохранил Google, накопленное на карте памяти добро там и осталось. А все остальное — потеряно навеки, ибо возиться с бекапами я не захотел. Даже названия часто используемых программ не записал. По принципу — если очень важно, вспомню и поставлю из Маркета. Так и произошло, что важно — вспомнил и установил.
-
- А вот как выглядит инструкция по прошивке, адаптированная для меня лично.
-
- Запустить виртмашину с виндой, пробросить в нее USB-коннект с телом.
- Установить универсальные драйвера для булыжника под винду http://4pda.ru/forum/dl/post/677449/Motorola_Mobile_Drivers_4.7.1_MotoConnect_1.1.31.exe
- Установить прошивальшик — RSD Lite http://4pda.ru/forum/dl/post/870524/RSD_Lite_4.9.rar
- Скачать прошивку из коллекции http://and-developers.com/sbf:milestone221 я выбрал 2.2.1 UK, хотя тут http://and-developers.com/sbf:milestone можно было и для России найти (что странно — если есть прошивка для России, почему ее нельзя поставить «правильным» способом?).
-
- Прошить тел: сделать хард-ресет (необязательно, но некоторым помогает избежать странных глюков); подключить тел к компу «только для зарядки»; запустить RSDLite и пощелкать «Show Device», тело должно опознаться; кнопкой «...» выбрать файл прошивки и щелкануть «Start». Ждать. После ребута тела успеть подключить юсб-коннект обратно к виртмашине.
- Потом еще раз сделать хард-ресет. На всякий случай.
-
- Перед тем как делать прошивку на 2.2.1 я, по недоразумению, прошил это:
- http://4pda.ru/forum/dl/post/796151/vulnerable_recovery_only_RAMDLD90_78.zip
- Хуже не стало.
-
- Как сделать хардресет (© не мой)
- 1. Выключить телефон
- 2. Нажать кнопку Х на хардверной клавиатуре и держать не отпуская
- 3. Нажать кнопку питания и держать до появления моторольского логотипа (буква М в белом круге)
- 4. Отпустить питание и продолжаю держать кнопку Х на хардверной клавиатуре до появления треугольника с восклицательным знаком внутри.С момента появления моторольского логотипа до появления треугольника проходит секунд 15
- 5. Отпустить кнопку Х на хардверной клавиатуре
- 6. Нажать громкость вверх и держать
- 7. Коротко нажать кнопку камеры (именно камеры, а не Х) - появляется меню синими буквами. Все - вы в меню рекавери. Кнопки можно отпустить.
- 8. Выбираем Wipe data/factory reset
Posted by Valentin at 03:42 0 comments
2011-07-14
DNSSEC
- Домены debian.org и debian.net теперь обеспечены защитой DNSSEC. При правильном применении, эта технология сильно снижает угрозы от спуфинга и фишинга.
-
- “To our knowledge, Debian is the first large Linux distribution who has
- secured its zones using DNSSEC with a valid trust chain from the IANA
- root zone” says Peter.
-
- Usage of Domain Name Security Extenstions
- —————————————–
-
- Probably the easiest way to use DNSSEC is the usage of the unbound [1]
- package as resolver. Please see wiki page [2] for details on how to
- use unbound and DNSSEC.
-
- 1: http://packages.debian.org/unbound
- 2: http://wiki.debian.org/DNSSEC
-
- debian-news.net/2011/05/14
- dnssec.ru
- en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions
- ru.wikipedia.org/wiki/DNSSEC
-
- Полезное дело (уходит писать записку сисадмину).
-
Posted by Valentin at 02:26 0 comments
2011-07-13
Внезапно
- Отвалился тырнет. Внезапно. Через час не поднялся, пришлось звонить в суппорт. Там, обычное дело, надо продраться через голосовое меню и подождать (это в час ночи-то) некоторое время ответа оператора. Оператор быстренько выясняет, что происходит замена оборудования и до завтра тырнету не будет. И вот мне любопытно, если у прова есть возможность рассылать SMS-ки с предложением подключить доп.услуги (и они этой возможностью пользуются), почему бы ему не рассылать SMS-ки с предупреждением о отключениях? Неужто не окупится уважительное к клиентам отношение?
- Можно и по электропочте рассылать, еще проще.
- UPD — Вот чудики, не поленились, прислали SMS-ку с извинениями за перебои в сервисе. Ну в натуре, дорогой провайдер, нах эти извинения. Присылай уведомления о предстоящих/случившихся отключениях.
-
- А вот еще мне интересно, есть ли планы добавить в соцсети (Фейсбук и подобные) возможности полноценной блогоплощадки? С открытым доступом к записям? Если бы тому же Фейсбуку добавили такое, не было бы причин мне не переехать на мордокнигу. Было бы даже удобно.
Posted by Valentin at 00:33 0 comments
Labels: бытовуха, internet provider
2011-07-09
YAT
- Или «Исчо Адын Шаблонизатор (yet another template parser)». В закладках нашлось, жалко предавать забвению:
-
- Вниманию читателей предлагается простой в использовании обработчик шаблонов на языке PHP с поддержкой условных конструкций, циклов, подключения вложенных шаблонов и запуска сторонних модулей (функций). Время обработки шаблона составляет в среднем 20-70 мс. Для работы требуется подключение одного php-файла размером 12 Кб (около 300 строк кода). Код стабилен и применяется на нескольких работающих проектах.
- webew.ru/articles/3609.webew
-
- Хорошая штука, особенно для начинающих PHP-истов. Есть на чем поучиться. А вот что плохо — код шаблона не является валидным HTML и его нельзя ваять в визуальных редакторах. Это жаль.
-
Posted by Valentin at 23:33 0 comments
Labels: citation, web-develop
Пострелять и отдохнуть
- Или отдохнуть и пострелять...
-
- Свое свободное время Вы можете целесообразно провести в помещении тира и уютном ресторане, которые находятся в бывшем историческом водоеме с 1882 г. Тир является знаменательным культурно - техническим памятником города. Если у Вас возникнет желание пострелять, не смущайтесь что у Вас нет оружейного удостоверения, достаточно предоставить гражданское удостоверение или паспорт. Можете здесь стрелять на стрелковом тренажере, также из настоящего разнокалиберного оружия, сделать экзамен на оружейное удостоверение. Посетить тир можете каждый день с 14 до 22 часов, в субботу и воскресенье с 12 до 22 часов. ул. Свагова 28, 36001 Карловы Вары, тел.: 017/322 0420.
- karlovyvary.ru/articles
-
Про этот самый тир писал анонимный циник:-
- я теперь могу поделиться собственными впечатлениями от поездки "пострелять".
- Карловы Вары, оно же - Карлсбад, рекламный постер заведения Вы можете увидать ниже. Это небольшой ресторан (скорее,бар) в склоне горы, в котором есть стрелковый тир на 25 метров. Заведению - мои наилучшие рекомендации: безукоризненно вежливый персонал, умный и грамотный инструктор, отличная минеральная вода. :)
- Из чего я стрелял, каковы результаты и ощущения? Оговорюсь сразу: я описываю свои ощущения, и мои выводы базируются на них и только на них, не претендуя на общую оценку для указанного оружия. Точки попаданий на мишенях помечены красным. Условия стрельбы: дистанция 25 м, стандартная пистолетная мишень. Выбрано было 4 следующих ствола...
-
- amironov.com/blogs/node/318
-
- Хорошая штука тир. Надо бы себе такой завести.
-
Posted by Valentin at 01:53 0 comments
Labels: weapon
2011-07-08
Битрикс
- Цитата
- Неописуемы безобразия, которые можно увидеть в коде человека, знающего мало, а делающего много.
- intervolga.ru/weblog/70
-
- Толковый человек написал статью в трех частях. Многабукаф, но статья хорошая, почитать стоит. Получилось нечто вроде психоанализа: «почему я продолжаю использовать Битрикс».
- Видимо, Битрикс реально хорош как универсальное коробочное решение.
-
- Битрикс строится с ориентацией на конечного потребителя. Он работает чтобы бизнес с ним рос и развивался.
Немного компаний, которые принципиально пользуются только бесплатным софтом, и почему веб должен быть исключением?
Бизнес выше денег ценит предсказуемость, гарантии, независимость, небольшие риски.
Мне мнение в том, что Битрикс в сайтостроении четко вписался именно в эту систему ценностей.
Разработчики ценят другое: красоту своего кода, творчество, новые технологии, возможность хвалиться.
В эту систему ценностей Битрикс попадает плохо. -
- intervolga.ru/weblog/70
-
- Но вот что я вам скажу от себя. Пока я лазил по битриксному сайту, я видел непрогружающиеся картинки (запрос на сервер ушел а ответа нет); я видел баннер со словами вроде «... новый функционал». И это на первых же страницах, фактически — на лице.
- Что-то мне расхотелось иметь с ним дело.
-
Posted by Valentin at 03:00 2 comments
Labels: web-develop
2011-07-07
На что обращать внимание
- Вспоминается анекдот «... первый же залетевший дятел...» (Google подсказывает, что это не анекдот а Второй Закон Вейнберга)
-
- Институт SANS (SysAdmin, Audit, Network, Security), совместно с организацией MITRE и ведущими экспертами по компьютерной безопасности, подготовил новую редакцию рейтинга 25 самых опасных ошибок, приводящих к возникновению серьезных уязвимостей. Рейтинг построен на основе анализа уязвимостей, обнаруженных в течение 2010 года.
- ...
- Общий рейтинг:
-
- 1. SQL Injection: Неспособность сохранения целостной структуры SQL запроса, что может привести к подстановке злоумышленником SQL запроса;
- 2. OS Command Injection: Неспособность корректного формирования структуры запускаемого приложения, может привести к подстановке кода злоумышленника при выполнении внешней команды, через определение некорректных значений, используемых в качестве параметров запускаемой программы;
- 3. Buffer Overflow: Копирование содержимого буфера без предварительной проверки размера входных данных. Неспособность удержать действия в определенных жестких рамках или в пределах заданного буфера памяти, приводит к классическим уязвимостям вида выхода за допустимые границы и переполнению буфера;
- ...
-
- citforum.ru/news/26522
-
- И мне узелочек на память о построении трехголовой гидры (APEX, Autodesk Map Server (former Topobase), Plone):
- кусок конфига Apache на фронтэнде
... LoadModule auth_digest_module modules/mod_auth_digest.so LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule rewrite_module modules/mod_rewrite.so RewriteLog "logs/rewrite.log" RewriteLogLevel 2 BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On RewriteMap esc int:escape RewriteEngine On # патамучта мэпсервер и апекс используют жестко прошитые урлы и # не все получается завернуть на корень /minsk RewriteCond %{REQUEST_URI} ^/mapserver2012 RewriteRule ^/(.*)$ http://localhost:8090/$1 [P,L] RewriteCond %{REQUEST_URI} ^/pls RewriteRule ^/(.*)$ http://localhost:7778/$1 [P,L] RewriteCond %{REQUEST_URI} ^/i/ RewriteRule ^/(.*)$ http://localhost:7778/$1 [P,L] <Location /> # только знающим логин есть заход на сайт Order allow,deny Allow from all AuthType Digest AuthName "MVK" AuthDigestDomain /minsk /mapserver2012 /i AuthDigestProvider file AuthUserFile "c:\opt\Apache2.2\bin\secrets.dat" AuthGroupFile "c:\opt\Apache2.2\bin\groups.dat" Require valid-user </Location> <Location /minsk> # завернуть на Plone (он хороший, все урлы внутре сам переписывает) # site/minsk -> localhost:8080/mvk RewriteEngine On RewriteCond %{REQUEST_URI} ^/minsk RewriteRule ^(.*)/minsk(.*)$ http://localhost:8080/VirtualHostBase/http/www.site.net:80/mvk/VirtualHostRoot/_vh_minsk$2 [P,L] ProxyPassReverse http://localhost:8080/mvk </Location> <Location /minsk/tab/bigtab> # завернуть на APEX # http://www.site.net/minsk/tab/bigtab/ -> http://oraserv/pls/apex/f?p=103:2:2646278573266379::NO::: RewriteEngine On RewriteCond %{REQUEST_URI} ^/minsk/tab/bigtab RewriteRule ^(.*)/minsk/tab/bigtab(.*)$ http://localhost:7778/pls/apex$2 [P,L] ProxyPassReverse /pls/apex </Location> <Location /minsk/mapserver2012> # завернуть на мэпсервер # http://www.allgis.org/minsk/mapserver2012/appext/ -> http://mapserver/mapserver2012/appext/ RewriteEngine On RewriteCond %{REQUEST_URI} ^/minsk/mapserver2012 RewriteRule ^(.*)/minsk/mapserver2012(.*)$ http://localhost:8090/mapserver2012$2 [P,L] RewriteCond %{REQUEST_URI} mapserver2012 RewriteRule ^(.*)mapserver2012(.*)$ http://localhost:8090/mapserver2012$2 [P,L] ProxyPassReverse /mapserver2012 </Location> |
- Далеко не все ProxyPassReverse нужны. Но, главное, работает.
-
Posted by Valentin at 02:59 0 comments
Labels: programming, sysadm
2011-07-05
win2008, update HAL
- В ранних версиях WinNT было очень непросто включить поддержку многопроцессорности. Помню, приобрели мы сервер, с двумя сокетами, но по бедности — только с одним процессором. Винду поставили, понятно, с однопроцессорным HAL-ом. И потом, когда появился второй процессор, было целое приключение с реконфигурацией этой винды. Но за один вечер вроде справились.
-
- Нынче у нас MS Windows 2008. И по недосмотру, виртуалку сделали с одним ядром. И винду туда накатили. Пока сообразили, что есть нужда в двухголовом сервере, вода утекла — понаставили софта фсякого, поздно
пить боржомипереустанавливать выньдос. И возникла задача — заставить вин2008 увидеть второй процессор. - Виртмашину сконфигурили, не проблема. А что с выньдосом делать — неясно. Допрос Гугеля с пристрастием, результатов не дал. Где пишут, что в ней уж и нету однопроцессорных HAL-ов, где — что надо драйвер HAL-а с буковкой «m» как-то поставить.
-
- Оказалось всё проще. Запускаем msconfig, переходим на вкладку «Загрузка», щелкаем кнопу «Дополнительные параметры...», в открывшемся окне включаем галку «Обнаружение HAL». ОК сколько надо и перезапуск. После старта будет видно наличные процы. Усё.
|
- И совсем несложно.
-
Posted by Valentin at 03:11 1 comments
2011-07-04
Fourth of July
- 1776 год, декларация независимости от Королевства ВеликоБритании. Чуть больше 200 лет Соединенным Штатам Америки. Да и Бог с ними.
-
- Знакомьтесь, SciDB. Специальная БД для поддержки обработки огромных массивов данных. Почитал я про нее и подумал — а насколько хорошо такая БД подходит под сбор и анализ сетевого трафика? Например, от качков торрентов? Ниже цитаты, длинные, но резать рука не поднимается.
-
- Объявлено о выходе SciDB 11.06, первого стабильного релиза проекта по созданию свободной СУБД для использования в области обработки научных данных, полученных в результате экспериментов и наблюдений. В качестве примеров областей, в которых может использоваться СУБД, называется хранение и анализ наблюдений в оптической и радио астрономии, сейсмологии, генетике, океанографии, геологии, климатических и экологических наблюдениях. Кроме научного применения SciDB может использоваться для обработки статистики работы различных сенсоров в нефтедобывающей отрасли и медицинских учреждениях, выполнения финансовой аналитики. СУБД спроектирована для анализа огромных массивов данных (тысячи петабайт) и изначально поддерживает кластеризацию, масштабируясь от одного сервера до десятков тысяч узлов. Код SciDB распространяется в рамках лицензии GPLv3.
- ...
- SciDB непохожа на классические СУБД и в ущерб поддержке некоторых привычных возможностей оптимизирована для обработки и анализа "сырых" данных, которые интенсивно читаются, но почти не изменяются. СУБД не рассчитана на обработку транзакций в реальном времени (OLTP), не поддерживает ACID (атомарность, непротиворечивость, изоляция, долговечность) и журналирование, обеспечивая транзакции лишь на минимальном уровне.
- ...
- Возможности SciDB сосредоточены вокруг сложной аналитики, для которой стандартная реляционная модель оказывается неэффективной - хранилище оптимизировано для единовременной записи мало структурированных данных и их последующего интенсивного чтения. Вместо добавления отдельных строк, применяется подход загрузки сразу больших порций данных. Хранение данных организовано в виде многомерных вложенных массивов, для обработки которых вместо SQL задействованы языки AQL (Array Query Language) и AFL (Array Functional Language).
-
- citforum.ru/news/26481
-
- Наличие декларативного языка запросов к массивам обеспечивает прозрачный доступ к терабайтам многомерных данных. В SciDB реализован язык AQL (Array Query Language), во многом похожий на язык SQL. В AQL присутствует такая же конструкция SELECT FROM WHERE, только язык оперирует с массивами, а не с множествами. Язык запросов AQL позволяет формулировать запросы, анализирующие окрестности точек. Разбиение данных по чанкам с перехлестами позволяет выполнять такие запросы параллельно без коммуникации вычислительных узлов. Один из основных операторов AQL – это REGRID, который во многом похож на популярный MapReduce. REGRID создает новый массив данных на основе исходного, пользуясь двумя функциями – доменной и агрегатной. Доменная функция выбирает подмножество массива для подсчета, а агрегатная функция подсчитывает значение элемента выходного массива. Используя REGRID, гораздо проще выбирать точки с их окрестностями, а модель хранения чанков с перехлестом позволяет вычислять выходной массив параллельно на всех узлах без коммуникаций. Рассмотрим пример использования оператора REGRID для сглаживания исходных данных гауссовским фильтром.
-
- SELECT l FROM CCD AS C
- REGRID (
- SELECT l FROM CCD AS C1 WHERE C1.i BETWEEN C.i–20 AND C.i+20
- AND C1.j BETWEEN C.j-20 and C.j+20,
- SUM( C1.l * a*e^( (-i-b1)^2/(2*c1^2) + (-j-b2)^2/(2*c2^2)))
-
- В этом примере первый параметр в операторе REGRID выбирает окрестность точек 40х40 вокруг входной точки массива, а второй оператор считает гауссовскую функцию на основе выбранных точек.
-
- В реляционных базах такие запросы невозможны, даже простая выборка данных, когда пользователю надо выбрать куб данных – то, что делает доменная функция, – уже сложная задача для реляционных баз. Для этого реляционным базам требуется многомерный индекс или придется пробежаться по всем данным таблицы, в то время как в SciDB это встроенная возможность.
- ...
- Полноценная поддержка полного цикла работы с научными данными
-
- Как упоминалось раньше, из-за недостатков существующих СУБД большинство научных проектов, в которых встает задача анализа больших объемов данных, осуществляют обработку и анализ исходных данных вне системы управления базами данных. SciDB решает эту проблему, обеспечивая эффективное и удобное хранилище исходных данных и широкий набор инструментов для обработки и анализа данных. Версионное хранилище и учет всех преобразований данных позволяет пользователям SciDB получить точную информацию о версиях данных и о всех вычислениях, произведенных над исходными данными. Это позволяет эффективно устранять ошибки в алгоритмах переработки данных, отслеживать процесс переработки исходных данных при получении подозрительных результатов, и в точности повторять вычисления над исходными данными. При этом SciDB работает без каких-либо ограничений, как на суперкомпьютерном кластере, так и на персональном компьютере, что позволит ученым работать в одной и той же среде со своими данными. Система SciDB также отслеживает происхождение данных. При обработке сырых данных и полученных из них объектов SciDB запоминает запросы, с помощью которых были получены те или иные результаты. По требованию пользователя СУБД может проиграть процесс получения результатов из сырых данных или выдать выборку базы данных, которая требуется для получения результата.
-
- supercomputers.ru/index id=167:scidb
-
Posted by Valentin at 00:53 0 comments
Labels: DBMS, opensource
2011-07-03
Echoprint
- Опознание музыки. По «пальчикам».
-
- Платформа создана и открыта публике. Осталось немногое — запустить открытый веб-сервис и пропиариться.
-
- Многие меломаны наверняка знают о существовании таких сервисов распознавания музыки, как Shazam и Soundhound. Это настоящая находка для желающих «здесь и сейчас» узнать, что же за музыкальная композиция играет ...
- Echoprint позиционируется как «полностью свободный и открытый сервис для сохранения и дальнейшей идентификации музыкальных композиций, поддерживаемый The Echo Nest»....
- Echoprint построен по аналогии с существующими сервисами распознавания музыки и состоит из трех компонентов:
-
- «генератор кода» — программное обеспечение для обработки аудиосигнала и формирования специальных кодов, используемых для поиска аналогов;
- сервер — аппаратное и программное обеспечение для непосредственного поиска кодов в огромной базе данных;
- справочные данные — база данных с информацией о музыкальных композициях.
-
- Все эти компоненты в Echoprint открыты — распространяются под Open Source-лицензиями.
- nixp.ru/news
-
- Программа Codegen http://echoprint.me/codegen вычисляет «отпечатки пальцев» скормленного ей музыкального фрагмента.
- Echoprint Server http://echoprint.me/server сидит на БД и ищет в ней ответ (параметры музыкальной композиции) по заданным «пальчикам».
- Дамп БД http://echoprint.me/data_download (нынче около 3.5 гигабайт) с накопленными данными музЫки.
-
- Все это открыто и доступно. Качайте, компиляйте, пользуйтесь. Если вы сняли «пальчики» с интересующей музЫки, можете воспользоваться веб-сервисом от EchoNest. Они хостят сервер и БД.
-
- Собственно, никто не мешает самостоятельно нарисовать аппликуху для коммуникатора/смартфона, которая снимала бы «пальчики» (с микрофона или файла) и отсылала бы их на сервис. А в ответ — показывала бы, что там в БД есть по этим «пальчикам». Просто коммунизм какой-то.
-
Posted by Valentin at 01:36 0 comments
Labels: music, opensource
2011-07-01
cx_Oracle & LOB
- Странные дела, при гуглении вопроса «как засунуть Python-ом данные в Oracle-евый CLOB?» вылезает целая куча встречных вопросов. Типа «я не могу... как мне...». При том, что в установочном пакете cx_Oracle есть примеры и тесты записи и чтения LOB-ов. Я по ним за 15 минут сделал рабочий пример, без шуму и пыли.
-
USERNAME = 'MKV' PASSWORD = '1234' TNSENTRY = 'tb12' ARRAY_SIZE = 50 class VoraDriver: def __init__(self): self.connection = '' self.cursor = '' def setUp(self): self.connection = cx_Oracle.connect(USERNAME, PASSWORD, TNSENTRY) self.cursor = self.connection.cursor() self.cursor.arraysize = ARRAY_SIZE def __del__(self): del self.cursor del self.connection #class VoraDriver: class VcsvReader: def __init__(self, fname='t.csv'): self.fname = fname self.fileObj = open(fname, 'rb') self.csvReader = csv.reader(self.fileObj, \ delimiter=';', quotechar="'", quoting=csv.QUOTE_ALL, lineterminator='\n') def __del__(self): del self.csvReader self.fileObj.close() def readrow(self): try: return self.csvReader.next() except: return None #class VcsvReader: def insertRecord(row, ora): ora.cursor.setinputsizes(coords = cx_Oracle.CLOB) ora.cursor.execute(""" INSERT INTO MKV.BIGTAB ( DWG, TYPENAME, TYPENUM, LYR, EID, HAND, XDATA, COORDS, ROTANG, TXT, CLOSTY, RAD) values (:dwg, :typename, :typenum, :layer, :id, :handle, :xdata, :coords, :angle, :text, :closed, :radius )""", dwg = row[0], typename = row[1], typenum = row[2], layer = row[3].decode('utf-8'), \ id = row[4], handle = row[5],\ xdata = row[6].decode('utf-8'), coords = row[7], angle = row[8], text = row[9].decode('utf-8'),\ closed = row[10].decode('utf-8'), radius = row[11]) #~ ora.connection.commit() #def insertRecord(row, ora): def doWork(inp): ora = VoraDriver() ora.setUp() rdr = VcsvReader(inp) csvRowNum = 0 while True: row = rdr.readrow() csvRowNum += 1 if row == None: break if csvRowNum < 3: t = map(lambda a: (sys.stdout.write('[%s], ' % a)), row) print continue insertRecord(row, ora) ... |
- Я не понял, народ, какие проблемы? За полчаса 100000 записей инсертнулось не жужжа. Самый большой CLOB был почти 33 килобайта.
-
- А по сути, несмотря на всю крутоту Oracle, текстовую строку длиннее 4000 байт в текстовое поле не запихать. Приходится использовать LOB-ы. Что не так удобно, как хочется.
-
-
- У меня тут было про блобы + MS SQL
Posted by Valentin at 03:32 0 comments
Архив блога
-
▼
2011
(293)
-
▼
июля
(26)
- Почему я не люблю перелеты
- ArcGIS 10, Python
- 26 Терабит/сек
- ФИС
- Зубы
- Головоломка
- WIFI in Linux
- ASP.NET ViewState
- APEX
- Fusion tables
- django_sorting
- Exadata Database Machine
- ASP.NET MVC
- resumable HTTP upload
- SOP
- Froyo
- DNSSEC
- Внезапно
- YAT
- Пострелять и отдохнуть
- Битрикс
- На что обращать внимание
- win2008, update HAL
- Fourth of July
- Echoprint
- cx_Oracle & LOB
-
▼
июля
(26)