Велосипеды и эффективность решений
От: gear nuke  
Дата: 22.10.05 19:23
Оценка: 103 (11)
Всем доброго!
Этот злостный философский оффтопик на самом деле мне кажется плохо изученным полем деятельности.



Преамбула:

Когда-то считалось, что все знают, как делать поисковики.
До Сергея Брина.



Созерцание:

Часто приходится читать, что Велосипед — это что-то ужасное, что не стоит никогда изобретать и т.п.
Потратил 5 минут на расширение кругозора:

Многие, кто плохо знаком с велосипедами, считают, что существует всего три типа велосипедов: дорожный, он же городской, спортивный, он же шоссейный, и горный. На самом деле, это три наиболее характерных и часто встречающихся типа велосипедов...


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

Изобретен велосипед

Компания Slingshot (США) усовершенствовала рамочную конструкцию велосипеда. Одна из труб в классическом треугольнике велосипедной рамы заменена на стальной витой трос.

По расчётам инженеров, эта труба работает именно на растяжение, а значит, замена её натянутым тросом не повлияет на прочность системы.

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

Такие усовершенствованные модели стали удобнее для транспортировки: переднее колесо снимается совсем, а остальное упаковывается в сравнительно небольшой объём.

Цены на эти велосипеды колеблются в районе $2 тыс.

30 МАЯ 2005


Велосипед на магнитной подвеске

Компания Specialized разработала линейку велосипедов Venom Line. Все новинки обладают хорошими аэродинамическими характеристиками и имеют оригинальный дизайн.

Наиболее интересна модель Specialized Viper — один из первых в мире велосипедов без задней втулки. Принцип работы Viper основан на использовании магнитной подвески. За счет уменьшения количества подвижных механических частей существенно снижается трение и, соответственно, возрастает скорость.


Mercedes-Benz Accessories компьютеризировала велосипед

Компания Mercedes-Benz Accessories выпустила на рынок элитный велосипед Automatic Bike с автоматической трансмиссией и активной подвеской.

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

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

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

Фара и задний огонь Automatic Bike автоматически включаются при снижении уровня освещённости. Задний огонь также работает как стоп-сигнал и имеет режим стояночного света.

Цена новинки — $3,3 тысячи.

12 МАРТА 2005



Просветление ???

Велосепедостроение живёт и процветает.
Однако, разработать супер велосипед очень сложно.

Велосипеды строить можно и нужно.
Но — если новый велосипед не окажется среди тех 5%, которые составляют топ-модели — время потрачено зря.



Осталось непонятным:

Как попасть в те 5%
Есть ли какие-то методики, позволяющие оценить необходимость и оправданность изобретения нового велосипеда?

Скажем, есть задача А. Для её решения можно сделать Б, В и Г. Или Б, Д и Е. Как определить, что какая-то буква должна быть велосипедом, а другие — нет?
Вариант: Б, В и Г — не велосипеды, потому что все так делают — не подходит, мы не попадём в 5%.
Вариант: сначала делаем, а потом смотрим профайлером — не подходит, без учета необходимости велосипеда возможно были промахи в архитектуре.
Вариант: 2 месяца чесал затылок, потом во сне увидел что нужно делать велосипед, и надо же (!) оказался прав — подходит, но на методику не тянет .


P.S. 5% — цифра очень относительна во времени. Это цифра сейчас. Завтра все лучшие решения копируется в mainstream.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re: Велосипеды и эффективность решений
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 25.10.05 23:04
Оценка: 60 (5) +1
Здравствуйте, gear nuke, Вы писали:

GN>Есть ли какие-то методики, позволяющие оценить необходимость и оправданность изобретения нового велосипеда?


GN>Скажем, есть задача А. Для её решения можно сделать Б, В и Г. Или Б, Д и Е. Как определить, что какая-то буква должна быть велосипедом, а другие — нет?

GN>Вариант: Б, В и Г — не велосипеды, потому что все так делают — не подходит, мы не попадём в 5%.
GN>Вариант: сначала делаем, а потом смотрим профайлером — не подходит, без учета необходимости велосипеда возможно были промахи в архитектуре.
GN>Вариант: 2 месяца чесал затылок, потом во сне увидел что нужно делать велосипед, и надо же (!) оказался прав — подходит, но на методику не тянет .

Мне кажется, что ключевой момент здесь -- это "2 месяца чесал затылок". На самом деле важно, что же дает возможность два месяца тратить время на это занятие. Какие условия позволяют делать столь длительные паузы в работе? Что заставляет человека думать эти два месяца, а не поддаться искушению: "чего тут думать, трясти нужно"? Откуда берется уверенность, что по прошествии времени появится достойный результат?

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

О велосипедах

Вначале была идея. Нестандартная идея. Не важно, решала ли она уже хорошо известную проблемы или совершенно новую. Но решала. Если решала более-менее хорошо и об этом вовремя узнали, то эта идея выросла в мейнстрим. Если не решала, либо про нее никто не знал, получился велосипед. Итого: велосипед -- это не удавшийся (еще?) мейнстрим

Но это уже постфактум. Фокус в том, что сначала есть идея и какое-то ее воплощение. Что из этого получится, вот в чем вопрос.

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

Например, организуется взаимодействие двух процессов через IPC по какому-то протоколу. Если предлагается подключить их по TCP/IP и обмениваться PDU с самописной структурой (первые три байтика вот такие, следующие пять байтиков вот такие, дальше идет еще что-то), то с очень высокой степенью вероятности речь идет о велосипеде (даже если процессы запускаются в ограниченных по ресурсам встраиваемых системах, все равно есть ASN1 BER или даже PER, который уже давно используется в таких условиях).

Или если кто-то реализует собственную обработку регулярных выражений. Или предлагает собственный алгоритм подсчета контрольных сумм вместо CRC32 или Alder32. Или пишет собственную реализацию криптоалгоритма RSA. Или делает еще одну GUI-библиотеку. Или придумывает еще один формат конфигурационных файлов. Или реализует еще один текстовый редактор...

Заключение о степени "плохости" велосипеда делается априори, исходя из собственного опыта. Фокус в том, что наш опыт часто оказывается прав. Например, создание текстового редактора сейчас -- весьма авантюрная задача (имеется в виду именно standalone редактор, а не text-edit компонент для встраивания в другие приложения, хотя и с этим не все очевидно). Тем не менее, текстовые редакторы плодятся и размножаются, даже находят своих поклонников и соразработчиков.

Очень легко придать негативный смысл слову "велосипед". Не сложно и попытаться задавить авторитетом начинающих велосипедостроителей. Еще проще следовать мейнстриму и брать то, что дают. Фокус в том, что мейнстрим -- это двадцать процентов инструментов, которые успешно решают восемьдесят процентов задач. Пока ты находишься в этом восьмидесяти процентном потоке -- все хорошо, на велосипедостроителей и их велосипедики можно не обращать внимания. Посматривать на них свысока. Снисходительное "ню-ню" ронять время от времени. И надеятся, что когда мейнстримовый поток повернет, тебя не вынесет на обочину.

А то ведь можно и не заметить, что мейнстрим повернул именно из-за развития какого-то смешного велосипеда. Каким был, например, первый Apple. Или Windows 1.0. Или терминал удаленного доступа, склепанный на коленке финским студентом Л.Торвальдсом.
А еще кто-то прикрутил к компьютеру клавиатуру от печатной машинки. И кто-то заставил монитор отображать графику. А кто-то решил, что информацию на экране нужно объединять в прямоугольные области, окна. И перетаскивать окна с помощью мыши.
А кто-то заменил одну из труб в велосипедной раме на стальной трос. А еще кто-то решил отказаться от задней втулки в пользу магнитной подвески.

Конечно, это слишком громкие примеры. Но можно взять что-нибудь более приземленное. Например, Jam. Многие ли с ходу скажут, что это такое? А если сказать Boost.Build? Или вот многие знают, что такое Cons? Между тем, SCons гораздо более известен. Да и Ant из той же оперы. Или сейчас NAnt более известен?

Как-то не получается назвать приведенные выше примеры "велосипедами", не так ли? Конечно, они уже переросли эту стадию.

О велосипедостроении

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

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

С одной стороны, изобретательство -- это процесс не детерминированный, с плохой предсказуемостью. Хорошую идею можно вынашивать и рожать долго, очень долго. Причем результат не гарантирован. В отличии от вполне четкого и не двусмысленно обозначенного дедлайном времени "Ч".

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

Например, разработка SCADA системы с нуля может затянуться на несколько лет. Даже при наличии увлеченного и продуктивного коллектива. А сроки реализации АСУТП-проектов под ключ -- всего несколько месяцев. Сервер РСУБД может разрабатываться десятилетия. Компилятор C++ -- столько же, и все равно не будет удовлетворять стандарту.

Хорошо, если повезет попасть в команию, делающую ставку на какой-то иновационный продукт. Да еще на ранней стадии, на стадии велосипеда. Да еще, если этот продукт является для компании центральным, приоритетным. Да еще если тебе дается карт-бланш. Есть где развернуться. За казенный счет.

Часто ли так бывает? Мне представляется, что нет. Поэтому мне и кажется, что велосипедостроение -- это, в основном, полуподпольное занятие. Затерялся где-то программист (от начальства, подчиненных или жены), урвал несколько свободных часов для собственного велосипедика, написал еще несколько строчек. И так изо дня в день. До тех пор, пока что-нибудь работающее не появилось. А дальше уже как карта ляжет. Повезет, перерастет проект стадию велосипеда -- один расклад. Нет -- ну тут уж от велосипедостроителя зависит.

О велосипедостроителях

Собственно, а из-за чего все это происходит? Да кто ж его знает. Я могу говорить только за себя.

Может быть "шило в заднице". Неуемное желание делать что-нибудь. Это необходимо. Ведь чем иначе можно объяснить 10-12-ти часовые рабочие смены в течении долгих недель, а иногда и месяцев?

Может быть я смотрю на окружающие вещи по другому. Кто-то видит make и спрашивает себя: "Как в Makefile описать мой проект?". А я вижу make и думаю: "Что за корявство, как мой проект вообще этом Makefile описать можно?". Но здесь важен еще и следующий шаг (в отличии от двух главных интеллигентских вопросов "Что делать?" и "Кто виноват?") -- я умудряюсь сказать: "Описание моего проекта должно выглядеть вот так". Плохо ли будет выглядеть это описание или нет, поймет ли его кто-то кроме меня, это уже совсем другое дело. Главное, что я могу придумать способ описания, который удобен для меня. И мне нравится процесс придумывания.

Но уж без чего велосипедостроитель не может обойтись, так это без черезмерно увеличенного самомнения и завышенной самооценки.
На самом деле, ведь хватает же у меня наглости наплевать на придумавших make авторитетов и многих людей, развивавших и совершенствовавших make все это время (при том, что большинство из них было и умнее, и грамотнее, и изобретательнее меня). Но и этого мало, придумав свою замену make я заявляю окружающим: "Смотрите, вот как надо!". Наглость -- второе счастье

А еще я думаю, что нужно очень сильно любить результаты своего труда. Настолько, чтобы продолжать вкладываться в свою поделку снова и снова. Изо дня в день. Из месяца в месяц. Из года в год. Определенно могу сказать, что проекты, за которые мне платили, гораздо менее дороги для меня, чем создаваемые мной велосипеды. Даже если в оплаченные разработки было вложенно гораздо больше времени и труда. Казалось бы, какая-то вшивая утилитка, очередная замена make, а греет душу так, что и не передашь.




gear nuke, возможно, я слишком ушел в высокие материи, может ты хотел о чем-то более приземленном поговорить. Извини. Я могу лишь сказать тебе то, что сказали в Матрице: "Нельзя чувствовать себя чуточку влюбленным". Либо ты чувствуешь необходимость в велосипеде и берешь на себя ответственность по его созданию и внедрению, либо нет. Если нет, то тебе никакие советы не помогут, имхо.

Так что еще раз прислушайся к заповеди Сальвадора Дали: "Художник -- рисуй!".
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re: Велосипеды и эффективность решений
От: sch  
Дата: 24.10.05 11:15
Оценка: 86 (3) :))
А вот что писал Michael Abrash в своей серии Ramblings in Realtime:

Years ago, I was working at Video Seven, a now-vanished video adapter manufacturer, helping to develop a VGA clone. The fellow who was designing Video Seven’s VGA chip, Tom Wilson, had worked around the clock for months to make his VGA run as fast as possible, and was confident he had pretty much maxed out its performance. As Tom was putting the finishing touches on his chip design, however, news came fourth-hand that a competitor, Paradise, had juiced up the performance of the clone they were developing, by putting in a FIFO.
That was it; there was no information about what sort of FIFO, or how much it helped, or anything else. Nonetheless, Tom, normally an affable, laid-back sort, took on the wide-awake, haunted look of a man with too much caffeine in him and no answers to show for it, as he tried to figure out, from hopelessly thin information, what Paradise had done. Finally, he concluded that Paradise must have put a write FIFO between the system bus and the VGA, so that when the CPU wrote to video memory, the write immediately went into the FIFO, allowing the CPU to keep on processing instead of stalling each time it wrote to display memory.
Tom couldn’t spare the gates or the time to do a full FIFO, but he could implement a one-deep FIFO, allowing the CPU to get one write ahead of the VGA. He wasn’t sure how well it would work, but it was all he could do, so he put it in and taped out the chip.
The one-deep FIFO turned out to work astonishingly well; for a time, Video Seven’s VGAs were the fastest around, a testament to Tom’s ingenuity and creativity under pressure. However, the truly remarkable part of this story is that Paradise’s FIFO design turned out to bear not the slightest resemblance to Tom’s, and didn’t work as well. Paradise had stuck a read FIFO between display memory and the video output stage of the VGA, allowing the video output to read ahead, so that when the CPU wanted to access display memory, pixels could come from the FIFO while the CPU was serviced immediately. That did indeed help performance--but not as much as Tom’s write FIFO.

Re[2]: Велосипеды и эффективность решений
От: sch  
Дата: 24.10.05 11:21
Оценка: 77 (2) +2
Ну и дальше по тексту:

The problem, of course, is how to go about transcending limits you don’t even know you’ve imposed. There’s no formula for success, but two principles can stand you in good stead: simplify, and keep on trying new things.
Generally, if you find your code getting more complex, you’re fine-tuning a frozen design, and it’s likely you can get more of a speed-up, with less code, by rethinking the design. A really good design should bring with it a moment of immense satisfaction in which everything falls into place, and you’re amazed at how little code is needed and how all the boundary cases just work properly.
As for how to rethink the design, do it by pursuing whatever ideas occur to you, no matter how off-the-wall they seem. Many of the truly brilliant design ideas I’ve heard over the years sounded like nonsense at first, because they didn’t fit my preconceived view of the world. Often, such ideas are in fact off-the-wall, but just as the news about Paradise’s chip sparked Tom’s imagination, aggressively pursuing seemingly-outlandish ideas can open up new design possibilities for you.

Posted via RSDN NNTP Server 1.9
Re: Совет "опытного камикадзе" если хошь
От: c-smile Канада http://terrainformatica.com
Дата: 25.10.05 22:52
Оценка: 15 (2) +1
Здравствуйте, gear nuke, Вы писали:


1) Велосипедами, а также когтями ("рви когти") выстлана дорога в прогрммисткий рай. Положительный пример — Майкрософт. Фабрика лисапетов но практичных — для жизни.

2) 80%-90% проектов идут в отвал. К этому надо быть готовым. И это нормально.

3) Начиная проект надо строить его как пирамиду — из блоков. Отдавая себе отчет что если пирамида не пойдет то из этих блоков мы сможем например построить себе другой дом — на этот раз для жизни опять же.

4) Проект надо всегда доводить до некоего публикуемого состояния. Проекты которые не пошли образуют критическую массу все равно принося пользу.

Банзай!, короче
Re[2]: Советы 5), 6) и 7)
От: c-smile Канада http://terrainformatica.com
Дата: 26.10.05 02:51
Оценка: 14 (1) +1 :)
Здравствуйте, c-smile, Вы писали:

5) Проект должен быть сделан за 9 месяцев максимум. Как минимум — ядро. И не важно — работаешь ли ты над ним
по ночам "в свободное от работы время" или full time.

6) Серьезный проект "выходит на редан" 2 года минимум. Правила игры на рынке, нужно быть к этому готовым.

7) Делая свой проект ты всегда выигрываешь. Наличие проекта (любого большого или маленького — не важно) отличает тебя от кодера.

Короче, как сказал Сальватор Eao: "Живописцы — живописайте!"
Re[3]: Велосипеды и эффективность решений
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 23.10.05 16:57
Оценка: 14 (1) :)
Здравствуйте, gear nuke, Вы писали:

E>>И главное, как говорил Сальвадор Дали: "Художник -- рисуй!". Хочешь сделать что-нибудь -- делай.


GN>Что-то в этом есть. Может быть, действительно, нужно чаще отвлекаться от стереотипов, вкладывать душу... но как объяснить это заказчику или жене? Хорошо, что некоторый код можно писать втихую .


Объяснить? Жене?!
Анекдот вспоминается:

Поймал мужик Золотую Рыбку. Рыбка ему говорит:
-- Загадывай желание!
-- Хочу мира во всем мире.
-- Нет, мужик, это слишком сложно. Давай другое желание.
-- Хочу, чтобы моя жена выграла конкурс "Мисс Мира".
-- А фотография жены есть?
-- Да, вот.
... длительное молчание ...
-- Так что ты, мужик, про мир во всем мире говорил?


Объяснить жене?... Так что ты про заказчика говорил?


Вообще-то не понятно, из-за чего ты эту тему поднял:

За каждым из этих вопросов может стоять свой сценарий.

E>>А если есть нюх на неприятности, то это еще лучше.


GN>Это примерно как во сне увидеть .


Я вообще-то о том, что берясь за какой-то велосипед, хорошо бы иметь предчувствие -- хорошо ли это мероприятие закончится или нет. Если внутренний голос подсказывает: "Бросай к чертям и рви когти!", то лучше к нему прислушаться заранее
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[9]: Велосипеды и эффективность решений
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 26.10.05 04:56
Оценка: 10 (1) :)
Здравствуйте, c-smile, Вы писали:

CS>Вообще смотрю я на свой engine, на Максов AGG, если бы наверное нам кто-то сейчас сказал -

CS>типа давай забодяжим нечто подобное — послали бы. Хотя...

Если бы мне тоже самое сейчас сказали про мою ObjESSty... Хотя...

... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[3]: Велосипеды и эффективность решений
От: Sinclair Россия https://github.com/evilguest/
Дата: 25.10.05 05:05
Оценка: 7 (1) :)
Здравствуйте, gear nuke, Вы писали:
GN>Интересно, как называются такие вещи? Reverse engineering плохо подходит .
Эти вещи называются trying to keep the pace.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Велосипеды и эффективность решений
От: Skipy Rich Россия  
Дата: 25.10.05 21:32
Оценка: +2
Здравствуйте, McSeem2, Вы писали:

MS>

MS>Компания Slingshot (США) усовершенствовала рамочную конструкцию велосипеда. Одна из труб в классическом треугольнике велосипедной рамы заменена на стальной витой трос.

MS>По расчётам инженеров, эта труба работает именно на растяжение, а значит, замена её натянутым тросом не повлияет на прочность системы.


MS>Какая-то чушь. Можно об этом попобробнее? Насколько я понимаю, заменена верхняя труба. Но это же вообще маздай! Кто летал в детстве с велосипеда на асфальт, тот поймет. Я летал и весьма мощно. Так мощно, что рама из треугольника превратилась в четырехугольник. Да, при неторопливой езде, верхняя часть рамы работает на растяжение. Но при наезде на препятствие, она работает именно на сжатие! Физику не обманешь. Можно ссылки на этот так называемый "велосипед"? И как он складывается от малейшей кочки?


В "велосипедном треугольнике" верхняя и задняя трубы как раз работают на сжатие, а вот передняя — на растяжение, так что ее замена может быть оправдана, если при этом снижается вес.

...добивая ногами психиатра: "Это кто нервный?! Это я нервный?!!"
fb2k: silent
Re[2]: Велосипеды :)
От: gear nuke  
Дата: 25.10.05 21:31
Оценка: +1
Здравствуйте, McSeem2, Вы писали:

MS>Насколько я понимаю, заменена верхняя труба. Но это же вообще маздай! Кто летал в детстве с велосипеда на асфальт, тот поймет. Я летал и весьма мощно. Так мощно, что рама из треугольника превратилась в четырехугольник. Да, при неторопливой езде, верхняя часть рамы работает на растяжение. Но при наезде на препятствие, она работает именно на сжатие! Физику не обманешь. Можно ссылки на этот так называемый "велосипед"? И как он складывается от малейшей кочки?


Вы поняли неправильно.
О каком иммено велосипеде шла речь, не знаю, но гугль подсказывает, что каком-то из этих:
Ripper
fold-tech
farmboy
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[8]: Велосипеды и эффективность решений
От: c-smile Канада http://terrainformatica.com
Дата: 26.10.05 02:36
Оценка: :)
Здравствуйте, eao197, Вы писали:

... начать разработку HTMLayout в рамках реализации конкретного проекта для конкретного заказчика....

На самом деле htmlayout это не велосипед. Потому как других движков такого типа (встраиваемый HTML/CSS renderer)
я чего-то на рынке не наблюдаю. Мабуть бильше дурних нэмае на майдане?

Кстати лисапет лисапетом а с нового года уже наверное начну набирать разаработчиков на проект.
Пора делать очередной скажем так броузер , вот это будет лисапед. Хотя...

Вообще смотрю я на свой engine, на Максов AGG, если бы наверное нам кто-то сейчас сказал —
типа давай забодяжим нечто подобное — послали бы. Хотя...
Re[3]: Советы 5), 6) и 7)
От: gear nuke  
Дата: 26.10.05 05:26
Оценка: :)
Здравствуйте, c-smile, Вы писали:

CS>Короче, как сказал Сальватор Eao: "Живописцы — живописайте!"


Он так же неоднократно повторял про "нюх". А Вы отвечаете на вопрос, который я ещё не задавал . Думаю, тут не обошлось без способности к эзотерическому получению информации . Это вселяет уверенность, что моя информация окажется тоже верной .

P.S. ответы 1..7 я в общем-то знал, имеется ввиду другой, более глобальный ответ между строк .
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re: Велосипеды и эффективность решений
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 23.10.05 06:52
Оценка:
Здравствуйте, gear nuke, Вы писали:

GN>Осталось непонятным:


GN>Как попасть в те 5%


Нужна фанатичная вера в то, что твой велосипед самый правильный. Непоколебимая целеустремленность в достижении собственной цели.
И главное, как говорил Сальвадор Дали: "Художник -- рисуй!". Хочешь сделать что-нибудь -- делай.

GN>Есть ли какие-то методики, позволяющие оценить необходимость и оправданность изобретения нового велосипеда?


Вскрытие. После проваленного из-за велосипеда проекта.

Всеобщее признание, если проект получился удачным.

Как следствие -- опыт. А если есть нюх на неприятности, то это еще лучше.

GN>P.S. 5% — цифра очень относительна во времени. Это цифра сейчас. Завтра все лучшие решения копируется в mainstream.


+1
Re: Велоспорт вчера, сегодня, завтра, ...
Автор: eao197
Дата: 26.04.05
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[2]: Велосипеды и эффективность решений
От: gear nuke  
Дата: 23.10.05 11:52
Оценка:
Здравствуйте, eao197, Вы писали:

E>Нужна фанатичная вера в то, что твой велосипед самый правильный.

E>Непоколебимая целеустремленность в достижении собственной цели.

С этим то проблем нет, как говорится, существует только 2 мнения

С другой стороны — фанатизм слеп .

E>И главное, как говорил Сальвадор Дали: "Художник -- рисуй!". Хочешь сделать что-нибудь -- делай.


Что-то в этом есть. Может быть, действительно, нужно чаще отвлекаться от стереотипов, вкладывать душу... но как объяснить это заказчику или жене? Хорошо, что некоторый код можно писать втихую .

GN>>Есть ли какие-то методики, позволяющие оценить необходимость и оправданность изобретения нового велосипеда?


E>Вскрытие. После проваленного из-за велосипеда проекта.


E>Всеобщее признание, если проект получился удачным.


Это уже постфактум. Оно конечно хорошо, когда получится 2й вариант, но как избежать первого? Его вероятность на порядок больше.

E>Как следствие -- опыт.


Хотелось бы учиться на чужих ошибках, но на практике и на своих не всегда получается .

E>А если есть нюх на неприятности, то это еще лучше.


Это примерно как во сне увидеть .
Интересно, какой процент использует эзотерические методы в разработке?

E>Re: Велоспорт вчера, сегодня, завтра, ...
Автор: eao197
Дата: 26.04.05


Предлагаю тост за успешный финиш
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[4]: Велосипеды и эффективность решений
От: gear nuke  
Дата: 23.10.05 22:16
Оценка:
Здравствуйте, eao197, Вы писали:

E>Объяснить жене?... Так что ты про заказчика говорил?


Для того заказчики и нужны, что бы не пришлось жене объяснять "не в деньгах счастье" .

E>Вообще-то не понятно, из-за чего ты эту тему поднял:


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

E>
E>За каждым из этих вопросов может стоять свой сценарий.


Спасибо. Взглянул под другим углом.

GN>>Это примерно как во сне увидеть .


E>Я вообще-то о том, что берясь за какой-то велосипед, хорошо бы иметь предчувствие


Ну так это тоже самое — какая-то не изученная область сознания.

E> хорошо ли это мероприятие закончится или нет. Если внутренний голос подсказывает: "Бросай к чертям и рви когти!", то лучше к нему прислушаться заранее


С этим понятно, но если он говорит "пройди пешком 200км на Север, вырой яму 200 метров глубиной, там зарыт сундук, откроешь его — а в нём сюрприз" .


P.S. Анекдот про не мою жену
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[5]: Велосипеды и эффективность решений
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 24.10.05 07:21
Оценка:
Здравствуйте, gear nuke, Вы писали:

E>>

E>> хорошо ли это мероприятие закончится или нет. Если внутренний голос подсказывает: "Бросай к чертям и рви когти!", то лучше к нему прислушаться заранее


GN>С этим понятно, но если он говорит "пройди пешком 200км на Север, вырой яму 200 метров глубиной, там зарыт сундук, откроешь его — а в нём сюрприз" .


Имхо, ты путаешь предчувствие с ясновидением. Или с шизофренией.
Нюх на неприятности (он же предчувствие) не дает тебе конкретных указаний. Он просто нашептывает: не связывайся с этим, не связывайся с этим. Ты не знаешь почему, не видишь никаких логических предпосылок или объяснений. А подсознание все равно: не связывайся с этим, не связывайся с этим. Вот о таком явлении я и говорил.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re: Велосипеды и эффективность решений
От: minorlogic Украина  
Дата: 24.10.05 07:21
Оценка:
Обычно велосипедами называют свои реализации общеизвесных решений или алгоритмов , например написать свое красно черное дерево и т.д.
У вас же речь шроскакивала о новых технологиях.
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[2]: Велосипеды и эффективность решений
От: gear nuke  
Дата: 24.10.05 10:53
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Обычно велосипедами называют свои реализации общеизвесных решений или алгоритмов , например написать свое красно черное дерево и т.д.

M> У вас же речь проскакивала о новых технологиях.

А если в своей реализации дерева будет применена новая "технология", например, аллоцирования памяти, которая позволит что-то выиграть в конкретном случае? Разве это можно назвать новой технологией, имхо велосипед . Вот когда в конечном счёте применение этого велосипеда даст какой-то заметный выигрыш, то тогда можно будет сказать, что это действительно новое. Если это сделать раньше, то в лучшем случае люди будут улыбаться .
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[2]: Велосипеды и эффективность решений
От: gear nuke  
Дата: 24.10.05 11:28
Оценка:
Здравствуйте, sch, Вы писали:

sch>

...news came fourth-hand that a competitor, Paradise, had juiced up the performance of the clone they were developing, by putting in a FIFO.
That was it; there was no information about what sort of FIFO, or how much it helped, or anything else. Nonetheless, Tom, normally an affable, laid-back sort, took on the wide-awake, haunted look of a man with too much caffeine in him and no answers to show for it, as he tried to figure out, from hopelessly thin information, what Paradise had done. Finally, he concluded that Paradise must have put a write FIFO between the system bus and the VGA...

Интересно, как называются такие вещи? Reverse engineering плохо подходит .
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[6]: Велосипеды и эффективность решений
От: gear nuke  
Дата: 24.10.05 13:32
Оценка:
Здравствуйте, eao197, Вы писали:

E>Мне кажется, что если речь идет о заказчике, то изобретательство здесь не сильно уместно. Свободное изобретательство, имхо, подразумевает индульгенцию на провал проекта. При наличии конкретного заказчика речь о такой индульгенции вряд ли идет.


Так это при решении традиционных задач.
Неполный список
Автор: retalik
Дата: 23.09.05
Вопрос: Каким образом вы защищаете свои программы от несанкционированного использования?
участников форума, которые выдали индульгенции .

E>Имхо, ты путаешь предчувствие с ясновидением.


ИМХО это просто разные степени одного и тогоже. про что некторые говорят "I zenned it".

E>Или с шизофренией.


Это уже крайняя степень, вернее явный перебор
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[7]: Велосипеды и эффективность решений
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 24.10.05 13:55
Оценка:
Здравствуйте, gear nuke, Вы писали:

E>>Мне кажется, что если речь идет о заказчике, то изобретательство здесь не сильно уместно. Свободное изобретательство, имхо, подразумевает индульгенцию на провал проекта. При наличии конкретного заказчика речь о такой индульгенции вряд ли идет.


GN>Так это при решении традиционных задач.

GN>Неполный список
Автор: retalik
Дата: 23.09.05
Вопрос: Каким образом вы защищаете свои программы от несанкционированного использования?
участников форума, которые выдали индульгенции .


Имхо, мы похоже, не правильно понимаем друг друга. Похоже, под велосипедами ты понимаешь тонкую оптимизацию какого-то фрагмента конкретного решения. Например, реализация специфического allocator-а для того, чтобы конкретный std::set более эффективно использовал память.

Я же под велосипедами понимаю инструментарий, который позволяет строить решения по другому. Вот, скажем, примеры того, что я считаю велосипедами: Harmonia GUI Framework
Автор: c-smile
Дата: 15.05.05
(нужно принять волевое решение, чтобы решиться использовать HTMLayout в качестве основы GUI. Еще больше смелости нужно, чтобы начать разработку HTMLayout в рамках реализации конкретного проекта для конкретного заказчика). Или вот еще: [ANN] ObjESSty &mdash; еще один проект сериализации
Автор: eao197
Дата: 24.01.05
(использование объектного хранилища для восстановления системы после сбоев). Причем я ObjESSty не стал бы разрабатывать в качестве части какого-либо конкретного проекта.

А к чему ты привел ссылку на данное голосование я вообще не понял.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[8]: Велосипеды и эффективность решений
От: gear nuke  
Дата: 24.10.05 14:41
Оценка:
Здравствуйте, eao197, Вы писали:

GN>>Неполный список
Автор: retalik
Дата: 23.09.05
Вопрос: Каким образом вы защищаете свои программы от несанкционированного использования?
участников форума, которые выдали индульгенции .


E>к чему ты привел ссылку на данное голосование я вообще не понял.


Эти люди сначала создают грамотно спроектированные программы.
А потом добавляют к ним то, от чего продукт может перестать работать. Armadillo начинает отлаживать запускаемую программу. ExeCryptor превращает код программы в исполняемый мусор. starforce делает чёртичё в ядре. У меня на рабочей системе не работает WM Keepr Classic защащённый ASProtect'ом — думаете этот факт волнует кого-то?
Подобными "изобретательствами" и занимаюсь.

E>Имхо, мы похоже, не правильно понимаем друг друга. Похоже, под велосипедами ты понимаешь тонкую оптимизацию какого-то фрагмента конкретного решения. Например, реализация специфического allocator-а для того, чтобы конкретный std::set более эффективно использовал память.


Похоже, вызвано этим
Автор: gear nuke
Дата: 24.10.05
мои ответом. Стараюсь строить гиперболы из слов автора. Это была моя попытка выразить Re: Велоспорт вчера, сегодня, завтра, ...
Автор: eao197
Дата: 26.04.05
другими словами .

E>Я же под велосипедами понимаю инструментарий, который позволяет строить решения по другому.


[поскипано]

Всё же это больше, чем просто велосипеды. Примитивные велосипеды-allocator-ы уже мне не интересны. Хочется как раз больших .
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Об allocator'ах
От: gear nuke  
Дата: 25.10.05 17:48
Оценка:
Навеяно Ускорить ::operator new?
Автор:
Дата: 20.10.05
(парсинг XML).

Здесь
Автор: _Winnie
Дата: 20.10.05
_Winnie указывает на избыточность лишних аллокаций, говоря, что достаточно 2х на ноду.
Ранее
Автор: _Winnie
Дата: 20.10.05
, он же показывает идею сверхбыстрого "аллокатора" (сразу выделить память под все строчки).

Попробую развить идею, упростив пару деталей.

Пусть нужно выделить токены из некоторого (тот же XML) текста и построить дерево (ссылок).
Как выделяется память под дерево и что оно из себя представляет рассматривать не будем — не важно.

Сосредоточимся на строчках:
1. Можно уйти от 2х аллокаций на ноду, заменив их одной общей.
2. Аллокатор можно ещё упростить, поскольку выравнивание не требуется.
3. Учитывая п.1 и 2, реализуем нехитрый алго, который без дополнительных (лишних) аллокаций фактически просто создаёт мультистринг в заранее выделенном буфере.
Картина нарисовано грубо, но результат её должен быть такой — мы избавились от new и кучи.

А теперь подводные камни: сколько выделять памяти заранее?
В простейшем случае, можно взять размер исходного XML. В каком-то другом, можно подумать о разреженном массиве.
Но в общем случае как быть?
Избавились от new, ценой абстракции строчек. Теперь важно, что они такое, и как хранятся.
Такой вот мини-велосипед. Быстрый, но в ряде случаев до финиша он не доедет .
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re: Велосипеды и эффективность решений
От: McSeem2 США http://www.antigrain.com
Дата: 25.10.05 20:15
Оценка:
Здравствуйте, gear nuke, Вы писали:

Компания Slingshot (США) усовершенствовала рамочную конструкцию велосипеда. Одна из труб в классическом треугольнике велосипедной рамы заменена на стальной витой трос.

По расчётам инженеров, эта труба работает именно на растяжение, а значит, замена её натянутым тросом не повлияет на прочность системы.


Какая-то чушь. Можно об этом попобробнее? Насколько я понимаю, заменена верхняя труба. Но это же вообще маздай! Кто летал в детстве с велосипеда на асфальт, тот поймет. Я летал и весьма мощно. Так мощно, что рама из треугольника превратилась в четырехугольник. Да, при неторопливой езде, верхняя часть рамы работает на растяжение. Но при наезде на препятствие, она работает именно на сжатие! Физику не обманешь. Можно ссылки на этот так называемый "велосипед"? И как он складывается от малейшей кочки?
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[3]: Велосипеды :)
От: McSeem2 США http://www.antigrain.com
Дата: 26.10.05 00:25
Оценка:
Здравствуйте, gear nuke, Вы писали:

GN>Вы поняли неправильно.

GN>О каком иммено велосипеде шла речь, не знаю, но гугль подсказывает, что каком-то из этих:
GN>Ripper
GN>fold-tech
GN>farmboy

Я понял все правильно. Просто надо представить, что произойдет с этим велосипедом при наезде на кирпич на большой скорости. У традинионного — сломается передняя вилка и в общем с минимально возможными повреждениями для человека. В случае этого "тросика" складывается весь велосипед. И вероятность того, что какая-то железяка пропорет кишки — гораздо выше. Уверяю вас, что проехаться мордой по асфальту — это гораздо меньшее повреждение, чем быть с пропорытыми кишками. Ну не верю я в безопасность такого решения.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[4]: Велосипеды :)
От: Skipy Rich Россия  
Дата: 26.10.05 03:19
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Я понял все правильно. Просто надо представить, что произойдет с этим велосипедом при наезде на кирпич на большой скорости. У традинионного — сломается передняя вилка и в общем с минимально возможными повреждениями для человека. В случае этого "тросика" складывается весь велосипед. И вероятность того, что какая-то железяка пропорет кишки — гораздо выше. Уверяю вас, что проехаться мордой по асфальту — это гораздо меньшее повреждение, чем быть с пропорытыми кишками. Ну не верю я в безопасность такого решения.


[offtop]
Попробуйте на листочке расписать векторы сил, действующих на раму велосипеда в различных ситуациях...
[/offtop]
[offtop^2]
За 15 лет практически жизни на велосипеде падал только один раз, и то не на своем агрегате с плохо закрепленным рулем.
[/offtop^2]

...добивая ногами психиатра: "Это кто нервный?! Это я нервный?!!"
fb2k: silent
Re[5]: Велосипеды :)
От: McSeem2 США http://www.antigrain.com
Дата: 26.10.05 18:02
Оценка:
Здравствуйте, Skipy Rich, Вы писали:

SR>[offtop]

SR>Попробуйте на листочке расписать векторы сил, действующих на раму велосипеда в различных ситуациях...
SR>[/offtop]

Я был неправ в своем предположении о замене верхней трубы тросиком. Конечно же, передняя часть рамы — и она действительно работает на растяжение при обычной езде. Но вот только при наезде на препятствие — нет жесткости. В этом случае, как ни крути, "тросик" должен работать на сжатие. Треугольник — фигура жесткая и это много чего дает в плане безопасности.

SR>[offtop^2]

SR>За 15 лет практически жизни на велосипеде падал только один раз, и то не на своем агрегате с плохо закрепленным рулем.
SR>[/offtop^2]

А я в детстве как только не летал. Как жив остался — до сих пор удивляюсь. Полностью убил три велосипеда производства Советского Союза.
Самая хохма была, когда я однажды решил форсировать в деревне большую лужу на грунтовой дороге. Переднее колесо завязло в глине и я упал. А на скамейке сидел мужик и наблюдал за этой картиной. Рассказывал потом — разгоняется, влетает в лужу и красиво летит через руль, плашмя в лужу. Когда фонтан грязной воды угомонился, смотрю — из лужи высовывается голова и ручка от велосипеда. Голова с недоумением лупает глазами, потом начинает реветь благим матом.

При таком экстриме велосипед с тросиком точно сложится. Моему же не было ничего, не считая переборки, промывания и смазывания всех узлов.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[6]: Велосипеды :)
От: gear nuke  
Дата: 27.10.05 00:26
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Конечно же, передняя часть рамы — и она действительно работает на растяжение при обычной езде. Но вот только при наезде на препятствие — нет жесткости. В этом случае, как ни крути, "тросик" должен работать на сжатие. Треугольник — фигура жесткая и это много чего дает в плане безопасности.


Кстати, вспомните советские велосипеда типа Салют/Скиф или Кама. Там как раз была оставлена нижняя труба . У знакомого рама со временем изогнулась заметно.

MS>При таком экстриме велосипед с тросиком точно сложится.


Ну так сломать всё что угодно можно. Но дело не в этом. Треккерные велосипеды расчитаны на сильные ударные нагрузки, наверняка и краш тесты проходят соответствующие. И сделаны они не из мягкой дешёвой стали, как те же советские, а из сплавов, прочность которых должна быть солидной. Диаматр трубы тоже многое даёт. В общем, я думаю, они не складываются. К тому же, верхняя труба там не горизонтально расположена, а хитро под углом — видимо, для того, что бы тросик даже при въезде в стену на растяжение работал.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[6]: Велосипеды :)
От: c-smile Канада http://terrainformatica.com
Дата: 27.10.05 02:13
Оценка:
Здравствуйте, McSeem2, Вы писали:

SR>>[offtop]

SR>>Попробуйте на листочке расписать векторы сил, действующих на раму велосипеда в различных ситуациях...
SR>>[/offtop]

MS>Я был неправ в своем предположении о замене верхней трубы тросиком. Конечно же, передняя часть рамы — и она действительно работает на растяжение при обычной езде. Но вот только при наезде на препятствие — нет жесткости. В этом случае, как ни крути, "тросик" должен работать на сжатие. Треугольник — фигура жесткая и это много чего дает в плане безопасности.


Макс ты опять не прав
Смотри вот лисапед (T — руль)

Г          T
|----------|
|\        /|
  \      /  
   \    /  <- вот это работает только на растяжение
    \  /    
-----\/
  (педали)


А вот лисапет великого Леонардо (что-то около 1470 года)
Вернее одного из его студентов.



Продуктивный был мужик
Re[7]: Велосипеды :)
От: McSeem2 США http://www.antigrain.com
Дата: 27.10.05 03:59
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Макс ты опять не прав

CS>Смотри вот лисапед (T — руль)

CS>Г          T
CS>|----------|
CS>|\        /|
CS>  \      /  
CS>   \    /  <- вот это работает только на растяжение
CS>    \  /    
CS>-----\/
CS>  (педали)


Продолжение линии "T" вниз — это передняя вилка, заканчивающаяся колесом. При наезде на препятствие что произойдет?

CS>А вот лисапет великого Леонардо (что-то около 1470 года)

CS>Вернее одного из его студентов.



CS>Продуктивный был мужик


Продуктивный. Левая картинка — весьма эротична. Доктор, да вы маньяк!
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[8]: Велосипеды :)
От: c-smile Канада http://terrainformatica.com
Дата: 27.10.05 04:03
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Здравствуйте, c-smile, Вы писали:


CS>>Макс ты опять не прав

CS>>Смотри вот лисапед (T — руль)

MS>
CS>>Г          T
CS>>|----------|
CS>>|\        /|
CS>>  \      /  
CS>>   \    /  <- вот это работает только на растяжение
CS>>    \  /    
CS>>-----\/
CS>>  (педали) 
MS>


MS>Продолжение линии "T" вниз — это передняя вилка, заканчивающаяся колесом. При наезде на препятствие что произойдет?


А что происходит сейчас?
Хинт: две трубы на руле сходятся в одну точку (плюс/минус) — ось рычага.


CS>>А вот лисапет великого Леонардо (что-то около 1470 года)

CS>>Вернее одного из его студентов.

CS>>Продуктивный был мужик


MS>Продуктивный. Левая картинка — весьма эротична. Доктор, да вы маньяк!


Это не я, это Леонардо
Re[9]: Велосипеды :)
От: McSeem2 США http://www.antigrain.com
Дата: 27.10.05 05:16
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>А что происходит сейчас?

CS>Хинт: две трубы на руле сходятся в одну точку (плюс/минус) — ось рычага.

Не совсем. Нижняя труба в "нормальном" велосипеде приварена несколько ниже и она как раз защищает всю конструкцию от передних нагрузок. Да, теоретически это уже не треугольник, а трапеция. Но за счет большой жесткости "патрона" передней вилки, мы можем смело считать это "слегка обрезанным треугольником". Там две точки крепления. А в случае с нижним тросиком — точка крепления одна. И это очень слабое звено.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.