Программирование

Издержки больших проектов или взгляд на программирование в команде изнутри

TeamProcess.gifНи для кого не секрет, что разработка больших программных продуктов требует не только эффективного руководства, но и эффективных процессов, которым следуют все разработчики. На примере своей компании я постараюсь описать жизненный цикл проекта и цену его разработки и поддержки. Те, кто работает в небольших командах из нескольких человек, смогут сравнить и представить, что их ждет при увеличении штата или же чего они избежали, если расширяться не планируют. А в комментариях можно покритиковать, указать на ошибки и предложить альтернативы.

Итак, собственно, к делу.

Мы занимаемся системами электронной биржевой торговли, аналитикой рынка и поставкой маркет-данных в реальном времени. К таким системам предъявляются повышенные требования по надежности — каждая ошибка может привести к потере больших денег.

Читать далее...

Аппаратный XML-парсер от Intel

Core_i7.gifНедавно официально выпущен процессор Intel Core i7.
Среди нововведений в нем, в частности, реализован набор инструкций SSE4.2. В этой версии они сделали упор на ускорение специфических задач. В частности, добавлено пять инструкций, предназначенных для ускорения разбора XML-файлов. Также с помощью этих инструкций возможно ускорение обработки строк в целом.
Команды SSE 4.2 позволяют параллельно оперировать 16 байтами в двух строках.

У Intel есть некая библиотека XML Software Suite, которая уже использует новые инструкции.
На эту тему у них есть статья с объяснением используемых алгоритмов. Надо сказать, очень познавательно. Они заявляют о 25-70% ускорении синтаксического разбора XML.

А в целом наблюдается интересная тенденция перехода от процессоров общего назначения на специализированные. Intel уже придумала для этого новое название - ATA (Application Targeted Accelerators).

В следующей версии будет аппаратная поддержка JavaScript? Или дальнейшее развитие:

<instruction name="mov">
<param="ax">

Чудеса автоматизации или как отправляют SMS настоящие гики

Мой коллега по работе - большой любитель автоматизации рутинных задач скриптами. Эта склонность порой принимает удивительные формы. Однажды ему надоело каждый раз вводить проверочный код при отправке SMS через сайт оператора. И вот что он придумал.

Пишется простенькое приложение с диалоговым окном и двумя полями ввода - номер телефона и текст сообщения. При желании добавляется список операторов связи и любимые номера. По нажатию кнопки "Отправить" происходит следующее (все делает VBScript):

1). Запускается браузер со страницей отправки SMS.
2). Со странички считывается картинка с капчей и сохраняется в файл.
3). Запускается Photoshop, и к сохраненной картинке применяются фильтры очистки от мусора (да - все это автоматизируется).
4). Подчищенное изображение сохраняется и затем открывается в... OCR Cuneiform! Там оно и распознается - у приложения также есть API.
5). Ну а далее все просто - ввод распознанного проверочного кода, считывание текста сообщения и номера, нажатие кнопки "Отправить" на страничке сайта.

Да, чтение капчи и распознавание происходит в цикле типа while(!success). Так что иногда отправка проходит за несколько итераций.

Может быть все это давно известно, но я впечатлился, когда он сделал презентацию для сотрудников.

Желаю всем творческого мышления!

P.S. Коллега разрешил выложить код (для билайна).
И кое-какие уточнения:
1). Сейчас отправка в данной версии уже не проходит - они усложнили картинки. Хотя, в комментариях давали ссылки на другие OCR, специально заточенные под распознавание таких картинок.
2). Картинка берется из кэша браузера, но это не принципиально.
3). Насчет формочки для отправки - это уже моя идея. В аттаче сообщение забивается прямо в скрипте.

RSS-материал