Pull to refresh
88
0
Headfire @headfire

Программист

Send message
Рад, что данный пост оказался Вам полезен. Библиотека x3dom строится на декларативном описании сцены с помощью тегов. В некоторых случаях это удобно, в некоторых — ограничивает. Но в целом было приятно работать с ней.
Как Вы поняли, что Ragel выдает нестабильный код? Я в том смысле, в каких обстоятельствах у Вас закрались первые сомнения о том что он работет нестабильно?
Сейчас даже в среднем проекте используется огромное количество уже написанного кода (т.е библиотек). Конечно можно попробовать изучить их все и оттестировать, но думаю, это малореально (если еще учитывать и платформы на которых они исполняются). Лучше эти усилия потратить на покрытие тестами непосредственно продукта который разрабатывается непосредственно Вами. При тестировании всего продукта вскроется и некорректное или странное поведение библиотек, если таковое имеется. Может вполне случится, что даже недостаточно надежная библиотека работает в проекте хорошо, потому что Вы не затронули неправильно реализованных функций.
Да, наверное для первого числа в числителе должен быть 0 (количество целых дней прошедшее с начального момента месяца). Можно также продолжить этот ход мыслей. Раз уж функция Real нужно идти до конца (учитывать также и время). Тогда в числителе будет количество секунд (или более мелких единиц) прошедшее с начала месяца (01.XX.XXXX 00.00), а в знаменателе — длина соответствующего месяца в секундах (или более мелких единицах).
Согласен. В некоторых случаях такая реализация тоже может пригодится.
Ок. Спасибо. Возможно это пригодится мне в будущем.
Думаю, что задача не соответствует названию книжки: «Пятьдесят занимательных вероятностных задач с решениями». И сама задача и приведенное решение лежит в области психологии. Любимые, счастливые и несчастливые числа, предпочтительные цвета — это все оттуда.
Спасибо за комментарий. Закон как всегда расставляет все на свои места.
Про високосную секунду я знал. А про зимнее и летнее время просто не подумал.
Наверное, закон и здесь может подсказать какое-нибудь верное решение.
В частности, меня интересует вопрос, как должен выглядеть отчет о каком либо параметре, меняющемся каждый час
за сутки, когда переводится время? Сколько в нем должно быть записей (11, 12 или 13)
и чего в них должно быть написано в графе время?
Я пользуюсь «Презумпцией невиновности». Считаю, что библиотеки работают правильно. Когда начинают валится мои тесты моего кода, разбираюсь в чем дело, и если виновата библиотечная функция, то добавляю тест (как Вы правильно заметили для отслеживания этого бага в будущих версиях). Иногда, и довольно часто, в случае разборок оказывается, что библиотечная функция работает правильно, это у меня мозги не в ту сторону развернуты. В этом случае правлю мозги, но тест все равно добавляю (теперь уже для моих мозгов).
Еще слышал одно правило для написания кода (к сожалению забыл кто автор, по-моему кто-то из классиков):
Пишите код так, как будто его будет сопровождать маньяк-психопат, который знает, где Вы живете.
Да, в разделе «Несколько слов в оправдание фирмы Borland» я говорю, что существуют случаи, когда поведение функции однозначно определить сложно, но дальше я объясняю, почему считаю подход фирмы Borland неверным. Моя реализация тоже страдает неоднозначностью, но я про это тоже сказал:
Я написал верную, с точки зрения моих требований, функцию

Что касается «На Delphi еще пишут?", могу лишь ответить, что проект был написан на Delphi, когда она была популярна. В рамках проекта было нужно доработать систему.
По большому же счету считаю Delphi удачной системой. Хорошая была задумка. Жаль, что ее популярность снизилась. С уважением отношусь к людям, которые делают OpenSource аналоги Delphi, в том числе и под Linux.

P.S. Когда писал и отлаживал код, компиляция и прохождение тестов на моем стареньком ноутбуке занимало всего несколько секунд. Было немного непривычно.
Кент Бек — это классика. На меня она тоже сильно повляла. Правда не сразу. Действовала, как вирус.
Согласен. Приведу еще один пример (как раз про еду).

У нас в городе есть два кафе. Одно работает по-старинке, другое «автоматизировали».

Как выглядит посещение автоматизированного кафе? Подходишь на кассу и говоришь «Мне салат и чашку кофе». Тебя спрашивают: «Назовите НОМЕР столика». Ээээ… С удивлением оглядываешся, и видишь что все столы перенумерованы. Выбираешь свободный стол и идешь снова на кассу, во-первых, стараясь не забыть номер столика, а во-вторых, следя, чтобы за этот столик никто ни сел (тут у тебя два варианта — либо следить, чтобы за столик никто не сел, либо оставить там пальто и следить, чтобы его никто не спер). Когда подходишь снова к кассе, оказывается что там уже очередь. Пока стоишь очередь, забываешь номер столика… Ну и так далее.

Как работает не автоматизированное кафе. Подходишь на кассу, рассказываешь кассирше (она же барменша), что тебе надо. Она пробивает заказ, сует в окошко поварам от руки написанную записку. И говорит, «Присаживайтесь пожалуйста, куда хотите». После этого тебе приносят заказ. Причем именно твой и именно туда, куда ты сел. Как это этой барменше удается — загадка. Кстати она там работает, сколько помню. А в автоматизированном кафе работники меняются очень часто.

Как вы думайте — какое кафе я посещаю чаще?

Конечно же я понимаю, что подобные изменения вызваны сокращением издержек. От того у меня и такое чувство, что на мне очень удачно сэкономили. Вы пробовали дозвониться в поддержку Билайн?
Ну вернул он true, как и требовалось, но на реальных данных валится.


Ну почему же сразу true. В фейковых объектах можно делать много интересных проверок.
Поддерживаю. Часто автоматизация идет во вред. Было время, когда у всех наших провайдеров Интернета в городе на телефоне сидели живые люди. Было очень удобно. Причем на телефоне сидел «суровый сисадмин» и любой вопрос решался моментально. Потом один за другим провайдеры стали внедрять call-центры и переносить службы поддержки в Москву. Дозвонится до живого человека, а особенно до человека с квалификацией админа, стало очень трудно. Пришлось сменить провайдера, на того, у которого служба поддержки оставалась еще «живой» (он из таких был последний). И, вот, совсем недавно звоню в поддержку, и вместо хриплого уверенного голоса «в чем дело?», слышу красивую механическую фразу: «Вы позвонили в компанию XXX, сейчас все линии заняты, дождитесь ответа оператора». А после 5 минутного ожидания ответила девушка. Хотя у нее и было желание мне помочь, но квалификации явно не хватало. Моя проблема так и осталась не решенной. Грустно.
Почему бы перед тем, как писать класс, не подумать, как он будет использоваться? То есть, разработать типичные сценарии вызовов. А от этого и до тестов недалеко.

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

Чем докажете?
Подобные расчеты производительности интерфейса читал у Джефа Раскина в «Интерфесе». Интересная вычислительная задача. Расчет среднего времени прохождения по взвешенному графу с временем на ребрах и вероятностями в узлах. Причем, если в графе будут циклы, что вполне вероятно при моделировании работы с интерфейсом, то задача становится не столь тривиальной. Не могу навскидку сказать, какой инструмент может это сделать. Наверное, что-нибудь, из моделирующих программ. Было-бы здорово, если бы такие диаграммы обсчитывались автоматически.

Information

Rating
Does not participate
Location
Рыбинск, Ярославская обл., Россия
Date of birth
Registered
Activity