Встретил такой заголовок в интернете и сильно удивился. Что-то я не видел людей, которые зарабатывали бы поиском в инете на заказ (а было бы забавно). Если же специалисты - это разработчики поисковых сервисов, то они должны делать их понятными и доступными для всех.
Ну не важно. Статья про поиск в ЖЖ кубка Яндекса по поиску очень интересная и заслуживает внимательного прочтения. Оказывается, существует огромное количество финтов, которые поомгают сделать поиск более эффективным.
вторник, 25 августа 2009 г.
среда, 19 августа 2009 г.
DocBook
DocBook - это такой XML-формат, который "стал стандартом де-факто для разработки технической документации". Т.е. к обычным XML-тегам добавили еще целый набор тегов. После оформления текста (документации, например) по определенным правилам, запускаем XSLT-процессор (xsltproc, например) - и получаем доку.
Вот здесь про это хорошо написано. Еще есть сайты www.docbook.org и www.docbook.ru
[a bit later]
Хм, ссылка 'здесь' оказалась мегаинтересной - на примере создания файлового менеджера для Linux автор показывает, как писать коммерческий софт с использованием Eclipse. DocBook он (и другие технологии) использует по ходу дела. Ссылка на оглавление книжки:
http://www.berdaflex.com/ru/eclipse/books/rcp_filemanager/index.html
Вот здесь про это хорошо написано. Еще есть сайты www.docbook.org и www.docbook.ru
[a bit later]
Хм, ссылка 'здесь' оказалась мегаинтересной - на примере создания файлового менеджера для Linux автор показывает, как писать коммерческий софт с использованием Eclipse. DocBook он (и другие технологии) использует по ходу дела. Ссылка на оглавление книжки:
http://www.berdaflex.com/ru/eclipse/books/rcp_filemanager/index.html
пятница, 14 августа 2009 г.
Юзаешь dll - сделай import library
Usage of DLL libraries require the generation of import libraries in order for them to be called from C/C++ programs in Visual Studio. This is actually quite simple:
[нашел в интернете]
- Use the dumpbin tool provided with Visual Studio to extract the functions exported from the DLL (dumpbin /EXPORTS xxx.dll > xxx.def).
- Strip this list, so that it only contains the names for the exported functions; one on each line. Let the first line contain the word EXPORTS.
- Function names can be renamed to account to different naming convensions by writing importname=dllname (e.g. sgemv=sgemv_).
- Use the lib tool to generate import libraries (lib /def:xxx.def /MACHINE:IX86 /out:xxx.lib).
[нашел в интернете]
Чуть-чуть о BLAS и Lapack
Не ищите процедуру умножения матриц (или матрицы на вектор) в Lapack. Это для Лапака слишком простая операция. Вот вычислить разложение Шура или сбалансировать матрицу (с целью уменьшения ее числа обусловленности) - пожалуйста.
Умножение матриц есть в BLAS и называется dgemm. Выполняет эта рутина следующую операцию: alpha * op(A) * op(B) + beta * C. Здесь альфа, бета - это числа; A, B, C - матрицы. Ну а op(X) = X или X', в зависимости от флага.
Умножение матриц есть в BLAS и называется dgemm. Выполняет эта рутина следующую операцию: alpha * op(A) * op(B) + beta * C. Здесь альфа, бета - это числа; A, B, C - матрицы. Ну а op(X) = X или X', в зависимости от флага.
четверг, 13 августа 2009 г.
MD5 и помидоры
Один знающий человек объяснил, что такое MD5. Это, оказывается, такая технология хэширования - любой последовательности байт однозначно сопоставляет другую последовательность, причем обратное преобразование невозможно.
Использовать MD5 можно, например, так. Мы заводим аккаунт на сервере. При этом на серваке хранится не сам пароль, а его MD5 хэш. При аутентификации мы у себя на компе вводим пароль, хэшируем и посылаем на сервер - там производится сравнение хэшей. Поскольку преобразование MD5 однозначно, сервер пустит только человека с правильным паролем. Кража хэша с сервера ничем не грозит - расшифровать его нельзя.
Видел в сети мнение, что MD5 - это аналог контрольной CRC суммы файла, только в Линуксе. Не совсем так - результат CRC не однозначен (т.е. у разных файлов может оказаться одинаковая CRC).
Да, я еще про помидоры обещал... Так вот - очень вкусное блюдо. Варим макароны, параллельно жарим на подсолнечном масле помидоры. Сливаем воду из макарон, закидываем в них помидоры с подливой и еще немного варим. Выкладываем на тарелку, добавляем ложечку-другую соевого соуса. Едим.
Использовать MD5 можно, например, так. Мы заводим аккаунт на сервере. При этом на серваке хранится не сам пароль, а его MD5 хэш. При аутентификации мы у себя на компе вводим пароль, хэшируем и посылаем на сервер - там производится сравнение хэшей. Поскольку преобразование MD5 однозначно, сервер пустит только человека с правильным паролем. Кража хэша с сервера ничем не грозит - расшифровать его нельзя.
Видел в сети мнение, что MD5 - это аналог контрольной CRC суммы файла, только в Линуксе. Не совсем так - результат CRC не однозначен (т.е. у разных файлов может оказаться одинаковая CRC).
Да, я еще про помидоры обещал... Так вот - очень вкусное блюдо. Варим макароны, параллельно жарим на подсолнечном масле помидоры. Сливаем воду из макарон, закидываем в них помидоры с подливой и еще немного варим. Выкладываем на тарелку, добавляем ложечку-другую соевого соуса. Едим.
среда, 12 августа 2009 г.
Linux: команда nm
Полезная это штука - nm. Если у нас есть объектник (.o) или библиотека (.a) - говорим
nm file_name
и получаем названия всех функций, которые там определены или объявлены. Утилита помечает названия буквами (почти весь латинский алфавит использует). Буква 'T', в частности, означает, что функция определена в тексте. Если стоит 'U' - это значит, что функция не определена (undefined), видимо она декларируется как внешняя (extern) и ее следует искать в другом модуле/библиотеке.
nm file_name
и получаем названия всех функций, которые там определены или объявлены. Утилита помечает названия буквами (почти весь латинский алфавит использует). Буква 'T', в частности, означает, что функция определена в тексте. Если стоит 'U' - это значит, что функция не определена (undefined), видимо она декларируется как внешняя (extern) и ее следует искать в другом модуле/библиотеке.
вторник, 4 августа 2009 г.
Fortran -это страшно
Фортран - это какая-то древняя компьютерная мова, на которой питекантропы кодили свои программы оптимизации поиска мамонтов и графические редакторы для наскальных рисунков...
Если Вам вдруг надо постичь этот язык предков, имейте ввиду, что
* По умолчанию gcc компилирует прогу как код на Fortran 77. Если хочется писать на Fortran90 - используйте опцию -ff90
* Строку с операторами надо начинать с 7й колонки. В начале строки может стоять только ее номер (нужно для циклов) и знак комментария ('*' или 'C')
*Fortran не терпит пустых строк. Все пропуски надо комментировать. Т.е. вставляйте пустые комменты для разрядки текста.
*Функции библиотек, написанных на Фортране можно вызывать из С-кода. Ссылки по теме:
http://www.physics.oregonstate.edu/~rubin/nacphy/lapack/cprog.html
http://icl.cs.utk.edu/lapack-forum/archives/lapack/msg00115.html
Еще вот хорошая ссылка - Средства разработки программ на Линукс-кластере:
http://rsusu1.rnd.runnet.ru/koi8/devlp/cluster.html
Если Вам вдруг надо постичь этот язык предков, имейте ввиду, что
* По умолчанию gcc компилирует прогу как код на Fortran 77. Если хочется писать на Fortran90 - используйте опцию -ff90
* Строку с операторами надо начинать с 7й колонки. В начале строки может стоять только ее номер (нужно для циклов) и знак комментария ('*' или 'C')
*Fortran не терпит пустых строк. Все пропуски надо комментировать. Т.е. вставляйте пустые комменты для разрядки текста.
*Функции библиотек, написанных на Фортране можно вызывать из С-кода. Ссылки по теме:
http://www.physics.oregonstate.edu/~rubin/nacphy/lapack/cprog.html
http://icl.cs.utk.edu/lapack-forum/archives/lapack/msg00115.html
Еще вот хорошая ссылка - Средства разработки программ на Линукс-кластере:
http://rsusu1.rnd.runnet.ru/koi8/devlp/cluster.html
Подписаться на:
Сообщения (Atom)