Re[3]: Велосипедостроение
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 03.03.12 10:40
Оценка:
Здравствуйте, мыщъх, Вы писали:

М>...короче, так и не убедил. данные хранятся в ms sql. деятель делает запрос в стиле "select *" и дальше рулит алгос нечеткого соответствия, последовательно перебирающий все данные. ну вот на фига тут ms sql? только потому что так принято? или это фобия велосипедостроения?


Ты наверное умолчал детали что адресная книга является маленькой частью большой задачи, и другие части прекрасно используют БД для работы, а расстояния левенштейна по случайности отсуствует в MS SQL. Хотя если присмотреться то никто не мешает его туда записать и использовать прямо в тексте запроса.

Более того это позволяет в дальнейшем использовать более сложные запросы, например дополнять поиск фамилий поиском по категориями\отделам\еще каким-то параметрам. И тут начитает ms sql в какшки рвать любое наколеночное решение на любом прикладном языке.

Ты сейчас напоминаешь Шеридана из КСВ, который предлагал для каждого сетевого взаимодейстсвия писать свой протокол.



ЗЫ Фобия велосипедостроения — прекрасная вещь. Ибо велосипеды == говнокод почти всегда.
Re: Велосипедостроение
От: 0x7be СССР  
Дата: 03.03.12 10:52
Оценка:
Здравствуйте, b-3, Вы писали:


b-3>Я немного недолюбливаю дотнет. Дотнет рождает евангелистов. Ну как "сон разума"...

Ты что-то путаешь, дотнет не рождает евангелистов
Re[2]: Велосипедостроение
От: b-3 Россия  
Дата: 03.03.12 11:04
Оценка:
Здравствуйте, 0x7be, Вы писали:

0>Ты что-то путаешь, дотнет не рождает евангелистов

Хочешь сказать, он как отчизна, — требует героев?
Забанен с формулировкой "клинический дисидент".
Re[3]: Велосипедостроение
От: 0x7be СССР  
Дата: 03.03.12 11:19
Оценка:
Здравствуйте, b-3, Вы писали:

0>>Ты что-то путаешь, дотнет не рождает евангелистов

b-3>Хочешь сказать, он как отчизна, — требует героев?
Дотнет — это всего лишь технология, она не может кого-то там рожать или требовать.
Re[5]: Велосипедостроение
От: WolfHound  
Дата: 03.03.12 11:35
Оценка: +7
Здравствуйте, Цыба, Вы писали:

М>>>один из самых популярных языков программирования XXI века был спроектирован и реализован за 10 дней. и это не единственный пример.

K>>какой?
Ц>JavaScript
Его популярность основана только на одном факторе. Какой-то очень не хороший человек засунул его в браузеры.
Если бы не это о нем давно бы забыли.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[6]: Велосипедостроение
От: Klatu  
Дата: 03.03.12 13:00
Оценка: +6 :))) :)))
Здравствуйте, WolfHound, Вы писали:

WH>Его популярность основана только на одном факторе. Какой-то очень не хороший человек засунул его в браузеры.


Мне кажется, это была диверсия со стороны инопланетян. Чтобы мы не развивались слишком быстро. Объяснить это умопомешательство другими причинами я не могу.
Re[6]: Велосипедостроение
От: Цыба Украина  
Дата: 03.03.12 13:47
Оценка:
Здравствуйте, WolfHound, Вы писали:

Ц>>JavaScript

WH>Его популярность основана только на одном факторе. Какой-то очень не хороший человек засунул его в браузеры.
А ещё у него изначальное название забавное.
WH>Если бы не это о нем давно бы забыли.
И правильно бы сделали.
Re: Велосипедостроение
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 03.03.12 17:53
Оценка:
Здравствуйте, b-3, Вы писали:

b-3>Не знаю, сюда или в КСВ. Из форума "О работе":

___>>>"Кодеры-задроты", это как раз те, кто кидаются модными словечками, CRM...


[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[2]: Велосипедостроение
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 03.03.12 17:54
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>А что из перечисленного выше может быть заменено опенсорсной библиотекой или свои велосипедом? (WTF и MVP — нерелевантно).


Я так и думал, что CRM и WWF вопросов не вызовет

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[4]: Велосипедостроение
От: мыщъх США http://nezumi-lab.org
Дата: 03.03.12 19:01
Оценка:
Здравствуйте, Klatu, Вы писали:

K>Здравствуйте, мыщъх, Вы писали:


М>>один из самых популярных языков программирования XXI века был спроектирован и реализован за 10 дней. и это не единственный пример.

K>какой?
livescript, позднее переименованный в javascript.

М>>когда в ms sql загружают телефонную книгу -- мне становится страшно. как-то зашел спор с одним таким деятелем. я ему говорю -- ну напиши скрипт на питоне с ассоциативными массивами.

K>Тоже оверкилл. Отсортированный по алфавиту текстовый файл — более чем достаточно. Проще, быстрее и можно положить файл под контроль версий.
смысл сортировки по алфавиту? как будет искать? например, вы ищите hazanov, а в телефонной книге он khazanov. или вы ищите cylemanjaru, а в телефонной книге он kilimanjaro.

по любому, имена нужно перебирать _все_ какие есть.

кстати, отсортированный список с бинарным поиском и добавлением/удалением новых элементов -- на питоне писать вручную. и это будет жуто тормозить, т.к. на питоне нет нормальных списков, а только гибрид списка с массивом.

на самом деле, тут проблемы в другом. нужно обеспечить сериализацию и доступ из нескольких потоков (т.к. это работает на серверной стороне), юзер может добавлять свое имя, а другой юзер в это время его искать. на питоне для этого нужно приложить немного усилий, чтобы не получить непредсказуемое поведение. чувак возложил эту задачу на ms sql.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re: Велосипедостроение
От: VladD2 Российская Империя www.nemerle.org
Дата: 03.03.12 19:02
Оценка:
Здравствуйте, b-3, Вы писали:

b-3>Я немного недолюбливаю дотнет. Дотнет рождает евангелистов. Ну как "сон разума"...


Ты причину и следствие не путаешь?

Майкрософт родил дотнет и рожает их евангилистов для раскручивания интереса к дотнету.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Велосипедостроение
От: мыщъх США http://nezumi-lab.org
Дата: 03.03.12 19:14
Оценка:
Здравствуйте, m e, Вы писали:

М>>...короче, так и не убедил. данные хранятся в ms sql. деятель делает запрос в стиле "select *" и дальше рулит алгос нечеткого соответствия, последовательно перебирающий все данные. ну вот на фига тут ms sql? только потому что так принято? или это фобия велосипедостроения?


ME>в целом, так сказать стратегически, я с тобой согласен


ME>но вот тактически, в ближайшие 5 лет, деятель будет прав, и вот почему


ME>запрос надо писать так:


ME>select *

ME>from phonebook
ME>where last_name like "ivonov"
согласен с вами, что есть к базе прикрутить нечеткий поиск, то все будет замечательно (хотя и расточительно), но тут встает вопрос как это к базе прикрутить. к тому же ошибка может быть больше, чем в одной букве. особенно в английском. допустим, вы помните, что человека зовут френсис айдисо. или ахисо. или родико. даже тупой ms аутлук (не в курсе какой версии) мгновенно находит все варианты -- достаточно начать набирать фио как вы его помните. и рядом с ним высвечиваются его данные -- кто он, в каком городе живет... это _очень_ упрощает работу с телефонной книгой.

ME>да, работы базе добавится в несколько раз, но

ME>1. нагенерить этот бойлерплейт легче, чем правильно написать свой алгоритм перебора
есть куча библиотек для нечеткого поиска, которые в том числе учитывают и контректные лингвистические заморочки (в частности, в русском можно писать "х" и как 'h' и как 'kh').
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[5]: Велосипедостроение
От: WolfHound  
Дата: 03.03.12 19:59
Оценка: +1
Здравствуйте, мыщъх, Вы писали:

М>на самом деле, тут проблемы в другом. нужно обеспечить сериализацию и доступ из нескольких потоков (т.к. это работает на серверной стороне), юзер может добавлять свое имя, а другой юзер в это время его искать. на питоне для этого нужно приложить немного усилий, чтобы не получить непредсказуемое поведение. чувак возложил эту задачу на ms sql.

И правильно сделал.
А если чувак при помощи вот этой фичи засунет нечеткое сравнение строк в MSSQL то все будет совсем круто.
А если чуваку понадобится делать выборку не только по имени, но и по полям, по которым можно построить индекс то питон будет порван на мелкие кровавые ошметки.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[6]: Велосипедостроение
От: мыщъх США http://nezumi-lab.org
Дата: 03.03.12 20:24
Оценка: +1
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, мыщъх, Вы писали:


М>>на самом деле, тут проблемы в другом. нужно обеспечить сериализацию и доступ из нескольких потоков (т.к. это работает на серверной стороне), юзер может добавлять свое имя, а другой юзер в это время его искать. на питоне для этого нужно приложить немного усилий, чтобы не получить непредсказуемое поведение. чувак возложил эту задачу на ms sql.

WH>И правильно сделал.
то есть вы считаете, что 'SELECT *' это правильно?

WH>А если чувак при помощи вот этой фичи засунет нечеткое сравнение строк в MSSQL то все будет совсем круто.


а в чем крутость-то? строить собачью будку при помощи подъемного крана из бетонных плит? это не только дорого, но и монументально. в смысле непортабельно.

WH>А если чуваку понадобится делать выборку не только по имени, но и по полям, по которым можно построить индекс то питон будет порван на мелкие кровавые ошметки.

данные, которыми мы оперируем, в нашем случае целиком умещаются в оперативную память (причем с огромным запасом прочности на вырост). в случае с базой данных, чувак делает SELECT * и обрабатывает результат скриптом.

скажите, в чем разница между 'SELECT *' и массивом/словарем? ms sql в данном случае был нужен лишь для предотвращения одновременного доступа на запись. ms sql разруливает такую ситуацию самостоятельно. впрочем, в питоне есть поддержка очередь, куда можно ставить запросы на запись.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[7]: Велосипедостроение
От: WolfHound  
Дата: 03.03.12 20:40
Оценка: +1 -1
Здравствуйте, мыщъх, Вы писали:

WH>>А если чувак при помощи вот этой фичи засунет нечеткое сравнение строк в MSSQL то все будет совсем круто.

М>а в чем крутость-то?
Это способ засунуть любую функциональность в SQL сервер.
Те можно будет написать
select * where MyStringCmp(Name, 'khazanov')

М>строить собачью будку при помощи подъемного крана из бетонных плит? это не только дорого, но и монументально. в смысле непортабельно.

Портабильность не нужна чуть менее чем всегда.

М>данные, которыми мы оперируем, в нашем случае целиком умещаются в оперативную память (причем с огромным запасом прочности на вырост).

В этом случае SQL сервер будет летать.

М>в случае с базой данных, чувак делает SELECT * и обрабатывает результат скриптом.

Вот и покажи чуваку ту ссылку, которую я тебе дал.
Код будет исполняться в контексте SQL сервера. Причем не питонячая интерпретация, а оптимизированный машинный код.

М>скажите, в чем разница между 'SELECT *' и массивом/словарем? ms sql в данном случае был нужен лишь для предотвращения одновременного доступа на запись. ms sql разруливает такую ситуацию самостоятельно. впрочем, в питоне есть поддержка очередь, куда можно ставить запросы на запись.

MSSQL делает еще кое-что. Он сохраняет то, что в него записали на диск.
Причем с поддержкой ACID в полный рост.
Попробуй сделать ACID на питоне ручками.
Удачи.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[3]: Велосипедостроение
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 06.03.12 15:50
Оценка:
Здравствуйте, b-3, Вы писали:

b-3>Или же это была б опенсорц-либа а-ля sqlite, которую можно отучить требовать прав админа для чтения из базы данных)


Но у которой своих проблем — выше крыши.
... << RSDN@Home 1.2.0 alpha 5 rev. 23 on Windows 7 6.1.7601.65536>>
AVK Blog
Re[5]: Велосипедостроение
От: Джеффри  
Дата: 08.03.12 10:27
Оценка: +1
Здравствуйте, мыщъх, Вы писали:

М>согласен с вами, что есть к базе прикрутить нечеткий поиск, то все будет замечательно (хотя и расточительно), но тут встает вопрос как это к базе прикрутить. к тому же ошибка может быть больше, чем в одной букве. особенно в английском. допустим, вы помните, что человека зовут френсис айдисо. или ахисо. или родико. даже тупой ms аутлук (не в курсе какой версии) мгновенно находит все варианты -- достаточно начать набирать фио как вы его помните. и рядом с ним высвечиваются его данные -- кто он, в каком городе живет... это _очень_ упрощает работу с телефонной книгой.


Не буду говорить за все СУБД, но применительно к SQL Server:

1. В MSSQL есть встроенный full-text search engine.

2. В T-SQL есть встроенная функция SOUNDEX, которая как раз и предназначена для сравнения степени схожести строк (конечно, алгоритм не очень мощный, но справляется со случаями типа Smith vs Smythe).

3. Прикрутить новый алгоритм нечеткого поиска к базе совсем несложно.

Варианты на выбор:

— через DLL (extended stored procedure)
— через COM (OLE automathion — sp_OACreate, sp_OAMethod)
— через .NET сборку

Естественно, никто не запрещает реализовать этот алгоритм на SQL.
Re: Велосипедостроение
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 09.03.12 10:15
Оценка:
Здравствуйте, b-3, Вы писали:

b-3>А если без шуток, то какой инженер будет любить code monkey, выучившего "на сертификат" наизусть 800 функций API? Ну то есть, любить-то можно, если это супруга или щедрый заказчик, но признавать коллегой человека, который фактически занимается не разработкой, а деятельностью вроде конфигурирования один-цэ, только на сишарпе? Можно ли назвать коллегой человека, который пройдёт мимо свободной библиотеки со словами "это не нужно, мы купим SQL Server/виндафс сервер/заплатим дофига денег другим вендорам", только чтоб не думать о том, за что не платят?.. Как относиться к тем, кто, часто небесплатно, осуждает "низкотехнологический" подход?


Конь в вакууме. Берешь свободную библиотеку — фактически берешь на себя ей майнтетанс и багфикс. Опаньки !

b-3>В случае с фреймворками, неквалифированному потребителю лучше просто не давать возможности выбора между "1000 строк без фреймворка" vs "100 строк с использованием библиотеки WTF". И это не потому, что самым популярным языком в мире является Java. А потому что цена кода в основном объясняется его технической сложностью, а не числом велосипедов на километр.


Цена кода без указания сроков жизни проекта смысла не имеет. Для разового проекта до года-двух можно наворотить всё что угодно и родить сколько угодно велосипедов, это обычно взлетает.
Зато проблемы с велосепидами и порогом сложности начинают выплывать примерно после этого срока — требования имеют свойство меняться. А если проект никакой не проект а долгосрочный продукт то требования часто меняются совершенно непредсказуемо для девелопера и не просто мешают, на них уходит основное время.

>Цена проявляется, когда "100 строк на WTF" начинают требовать ста юнит-тестов, десятка часов в профайлере, покупки спец.тулзы для отладки под конкретно эту технологию — а тысяча строк, написанная Петровичем 62-го года рождения за два вечера, на второй день уходит в стабильную ветку. Через десять лет код Петровича в неизменном виде предстанет глазу новорождённого фанбоя, который с криками "опять легаси-код!!!" попытается переделать это на новом WTF-е. Переделка займёт в три раза больше времени, чем заняло бы написание с нуля. А ещё через пол-года, как назло, возникнет задача перенести разработку на платформу, где нет новейшей технологии WTF, и переделанный код придётся окончательно выкинуть, ведь сделать столь сложную функциональность без WTF невозможно...


Это пример вроде коня в вакууме. Велосипеды имеют крайне высокую сложность майнтенанса. Хаос начинается тогда, когда изменение требований затрагивает велосипед такого петровича.

b-3>Безусловно, умение писать велосипеды не приносит пользы современному программисту.


Приносит. Когда нужно быстро и дешево — велосипед самое эффективный вариант. На долгосрочных продуктах (sic!) это уже не пройдет и велосипеды дохнут пачками.

b-3>Строите ли Вы велосипеды? Тратите время на анализ опенсорсных библиотек? Или же всегда используете новейшую технологию WTF, раз уж имеется таковая?


Строим. Тратим. Используем. Тут дело не только в дотнете. Язык и плафтформа должны давать вохможность хорошей декомпозиции модулей даже если требования могут менять когда попало, сколько угодно и абсолютно непредсказуемо. Если язык(и платформа) дает возможность легко и просто бить код на компоненты, то велосипеды легко выпиливаются и заменяются на нормальные компоненты.
Для того что бы это достичь, необходимо что бы
1 язык парсился очень легко
2 язык компилировался очень быстро
3 язык был заточен под фреймворки (фичи + если фича есть, то она работает всегда)
4 платформа умела качественную декомпиляцию
5 кривая обучения как можно более плавная

Очевидно, под это подходят только немногие языки.
Re: Велосипедостроение
От: oldjackal Россия  
Дата: 02.04.12 13:26
Оценка: 1 (1)
Здравствуйте, b-3, Вы писали:

b-3> который фактически занимается не разработкой, а деятельностью вроде конфигурирования один-цэ, только на сишарпе?


А что такое, по вашему, разработка?

b-3> Можно ли назвать коллегой человека, который пройдёт мимо свободной библиотеки со словами "это не нужно, мы купим SQL Server/виндафс сервер/заплатим дофига денег другим вендорам", только чтоб не думать о том, за что не платят?..


Думать — занятие высокорисковое и дорогостоящее. Если коммерческая библиотека, с поддержкой и прибамбасами, стоит дешевле чем думать самому, то почему бы ее и не выбрать?

b-3>Строите ли Вы велосипеды? Тратите время на анализ опенсорсных библиотек? Или же всегда используете новейшую технологию WTF, раз уж имеется таковая?


У вас крайне странные представления о промышленной разработке. Никто никогда новейшие WTF-ы не использует. За новейшими супер-пупер-фреймворками пожалуйте в провальные стартапы, а в мире технологий Microsoft здоровый консерватизм ценится более всех прочих достоинств.
Re: Велосипедостроение
От: avpavlov  
Дата: 08.04.12 07:38
Оценка: +2
b-3>а тысяча строк, написанная Петровичем 62-го года рождения за два вечера, на второй день уходит в стабильную ветку.

... уходит в стабильную ветку в твоих розовых снах. В реальности же, 1000 строк, написанных за 2 вечера, не уходят дальше отдела тестирования, который первый раз вернёт, потому "не стартует", потом будет много раз в возвращать, потому что любая попытка проверить этот код на граничных условиях будет его заваливать с невразумительной ошибкой. Петрочич будет будет суетиться вокруг, приговаривая "у меня всё работает" или "вы, наверное, не так запускаете" или "а зачем вы в имя ввели апостроф, у нас здесь что, Ирландия?"

Вообщем, мнение, что "раньше были титаны а сейчас обезьяны" преувеличено чуть более чем полностью.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.