Да, согласен с вами. Наверное вопрос возник после прочтения этой цепочки комментариев в целом. Выше хабраюзер casey утверждал, что данные лучше всего хранить как есть. И возникла мысль, что входные данные должны обрабатываться в модели и храниться в том виде в котором мы ожидаем их получить на входе (то есть отфильтрованными), но при этом все что касается экранирования данных при выводе, как вы и сказали ранее это логика представления.
Если известно что выходные данные, например, не должны содержать никакого HTML кода, не логичнее ли фильтровать его еще на стадии добавления данных в БД? Стоит ли хранить мусор? Тогда встает логичный вопрос, только ли представления это логика?
Интересный проект и интересная реализация!
Проблема некачественных переводов реально существует, рад что кто-то взялся ее решать.
Спасибо вам. Удачи и процветания проекту!
www.designobserver.com/ — Это неудачный пример. На мой взгляд, подача информации оставляет желать лучшего, чувства простоты не возникает, читать текст набранный таким мелким шрифтом лично мне сложно.
Давно пора придумать девайс подключаемый напрямую к интернету.
Вставляешь в него договор как в факс, выбираешь e-mail адрес из записной книжки или вводишь новый,
жмешь отправить, бумага заползает в «факс» отсканированный договор отправляется на почту получателю в 2-х форматах: Распознанный документ PDF (на крайний случай DOC) и оригинал — картинки в архиве.
На лицо экономия всего! А именно: расходов на обслуживание, времени, бумаги (если в договор нужно вносить правки его можно не распечатывать а сначала посмотреть на экране). Также, будет история правок и отправки/получения документов что опять же всем удобно.
Данный девайс можно (и нужно) построить на основе МФУ, всяких сетевых офисных принтеров со встроенным сканером.
Я только что предсказал вам будущее друзья. Хотя бы в минимальном его проявлении (идея может быть более совершенной к моменту реализации, например не на основе e-mail, а чего-то более корпоративно специфического или с возможностью настроить протоколы...)
Скринсейверы не в моде :) Программисты один за другим отказываются их делать!)
Буду очень рад потестировать вашу версию программы. Может быть выберу время и напишу скринсейвер сам или скринлет сделаю :)
Удачи вам!
Вот это клевый подход :) Делать что-то полезное параллельно узнавая что-то новое и прокачивая свой скил это прекрасно!
Я полностью согласен что на С сложнее в разы написать тоже самое, но друг тоже в первый раз пишет на Python так что у каждого из вас похожие условия, хотя ему конечно проще.
Кстати, коль уж тут такое дело. Может разделить задачи действительно?
izen обмолвился выше о скринсейвере. Друг сказал что писать его пока не хочет да и не сможет наверное.
Вы можете написать скринсейвер на С а он софтинку, если пожелаете конечно.
Еще у меня появилась идея написать скринлет для Screenlets.
Они кстати на Python вроде пишутся… Думаю многим было бы полезно!
В общем тут простора для творчества много! Как и возможностей узнать что-то новое.
«Я понимаю что вас беспокоит вопрос есть ли необходимость писать одно и то же дважды.
Но я не думаю что это проблема, ведь может у вас получится гораздо лучше!
По моему это замечательно когда есть множество вариантов и каждый может выбрать то что ему по душе. К тому же я пишу на Python у этого варианта есть свои недостатки.»
Вот еще внизу подсказывают что QT можно использовать) Чувствую куча народу прокачает свои знания в кодинге под линукс на этом топике :)
Этот тред заставил меня почувствовать себя передастом ;)
Сервис очень хороший, рад что многие взялись развить идею.
Отличный пример когда что-то простое, лаконичное и полезное быстро завоевывает сердца аудитории!
Друг написал на Python для Gnome. Использует libnotify.
Он попробовал поменять цитату и автора местами, но в хидер можно запихнуть только ограниченное количество символов, потом появляется многоточие, поэтому, пока единственный нормальный вариант как на скриншоте у автора поста.
От автора:
«Сейчас программа дорабатывается, добавляю настройки, чтобы можно было задать интервал обновления цитат и обновлять цитату вручную. Когда запущена появляется иконка в трее. Програмка очень радует и полезна, например раз в 15 минут отвлекает от работы, и что-то новое узнаешь и мозг „перезагружается“, что на работе сказывается положительно. Как только закончу прогу выложу в общий доступ. Лицензия GPL. Спасибо авторам за хороший проект и API. Буду благодарен за инвайт на Хабр.
P.S. Спасибо izen за иконку, с его разрешения и разрешения авторов использую ее в программе.»
Да, я был на этом форуме и даже почитал… правда все 150 страниц не осилил!)
Попробовал разные версии, оригинальную 4.1.0 (давность 10 лет), 4.1.0 WHT и свежую 5.1.2.
По субъективному мнению 5.1.2 адекватнее всего тестирует.
Тестов проводит больше, думаю это положительно сказывается на точности результатов.
Поправка. Для теста моего сервера достаточно было просто запустить коммандой ./Run программа сама определила количество серверов и провела два теста.
Работала очень долго. Я не засекал, но по моему около часа!
Если кому интересно вот результаты тестирования моего сервера (можно сравнить, полноценный сервер VS Atom):
Характеристики сервера:
2x AMD Opteron 242 1.6Ghz, MB Tyan Thunder, 2Gb Ram, 4x250Gb SATA HDD, Software raid 5, XFS, Gentoo
Железо довольно старенькое (по сегодняшним меркам). Тестирование проводилось на продакшн сервере, то есть это не чистая установка. На серваке крутятся сайты и на них хоть и мало но заходят посетители.
Также работает куча других сервисов. Так что точность тестов не очень! И скорее всего цифры оличались бы в большую сторону.
«UnixBench очень древний (1983!!!) комплекс тестов производительности unix-систем созданный в Monash University, который в дальнейшем разрабатывался и расширялся Byte magazine. Этот универсальный комплекс тестов (бенчмарк) был создан для оценки производительности Unix-like систем (в сравнении с другими Unix-like системами); Он запускает набор тестов чтобы оценить различные аспекты производительности системы и сгенерировать набор оценок. (Другие бенчмарки, такие как lmbench, проводят более низкоуровневую оценку производительности систем). С учетом этого, насколько я знаю, UnixBench не изменялся в течении 10 лет, может быть сейчас есть что-то более новое чем все пользуются, но если и так то я не смог найти. (Пожалуйста сообщите если знаете).
С разрешения David Niemi, предыдущего разработчика, я занялся дальнейшей разработкой UnixBench. Итак после 10 летнего перерыва в разработке программы я представляю вам обновленную версию!»
Как я понял обновленная версия может более корректно тестировать новое железо, в том числе многоядерные процессоры и многопроцессорные сервера.
Автор советует для корректного тестирования многопроцессорных серверов провести 2 теста:
1-й тест с параметрами по умолчанию командой ./Run
2-й тест с указанием количества процессоров (ядер тоже?) ./Run -c 2
Это позволит определить производительность системы при работе с одной задачей, несколькими задачами и производительность параллельной обработки данных в реализации для вашей системы.
Также новая версия программы может тестировать производительность графических карт.
Чтобы собрать программу на серверах без X закомментируйте строку «GRAPHIC_TESTS = defined» в Makefile у меня на машине с Gentoo не собралось пока не закомментировал (что не удивительно ;)
Если у вас есть время пожалуйста проведите тестирование вашего Atom сервера новой версией программы!
Спасибо! Удалось определить что БП на 75 ватт (а может даже 60) должно хватить для работы компа на основе этой матери.
Изучив вопрос также стало понятно что стоит использовать материнскую плату ION с 330 процессором, а не Intel ;) В комплекте MB ION идет БП на 90 ватт.
Если кому надо, то потребление жесткого диска 2.5" объемом 320 гб, например от Вестерн Диджитал в режиме чтение/запись = 2.5 ватт. (то есть фактически это максимум что он кушает, ну плюс погрешности...)
Проблема некачественных переводов реально существует, рад что кто-то взялся ее решать.
Спасибо вам. Удачи и процветания проекту!
Вставляешь в него договор как в факс, выбираешь e-mail адрес из записной книжки или вводишь новый,
жмешь отправить, бумага заползает в «факс» отсканированный договор отправляется на почту получателю в 2-х форматах: Распознанный документ PDF (на крайний случай DOC) и оригинал — картинки в архиве.
На лицо экономия всего! А именно: расходов на обслуживание, времени, бумаги (если в договор нужно вносить правки его можно не распечатывать а сначала посмотреть на экране). Также, будет история правок и отправки/получения документов что опять же всем удобно.
Данный девайс можно (и нужно) построить на основе МФУ, всяких сетевых офисных принтеров со встроенным сканером.
Я только что предсказал вам будущее друзья. Хотя бы в минимальном его проявлении (идея может быть более совершенной к моменту реализации, например не на основе e-mail, а чего-то более корпоративно специфического или с возможностью настроить протоколы...)
Буду очень рад потестировать вашу версию программы. Может быть выберу время и напишу скринсейвер сам или скринлет сделаю :)
Удачи вам!
Я полностью согласен что на С сложнее в разы написать тоже самое, но друг тоже в первый раз пишет на Python так что у каждого из вас похожие условия, хотя ему конечно проще.
Кстати, коль уж тут такое дело. Может разделить задачи действительно?
izen обмолвился выше о скринсейвере. Друг сказал что писать его пока не хочет да и не сможет наверное.
Вы можете написать скринсейвер на С а он софтинку, если пожелаете конечно.
Еще у меня появилась идея написать скринлет для Screenlets.
Они кстати на Python вроде пишутся… Думаю многим было бы полезно!
В общем тут простора для творчества много! Как и возможностей узнать что-то новое.
fylfot вроде для Gnome пишет ему и был ответ :)
Передаю:
«Я понимаю что вас беспокоит вопрос есть ли необходимость писать одно и то же дважды.
Но я не думаю что это проблема, ведь может у вас получится гораздо лучше!
По моему это замечательно когда есть множество вариантов и каждый может выбрать то что ему по душе. К тому же я пишу на Python у этого варианта есть свои недостатки.»
Вот еще внизу подсказывают что QT можно использовать) Чувствую куча народу прокачает свои знания в кодинге под линукс на этом топике :)
Сервис очень хороший, рад что многие взялись развить идею.
Отличный пример когда что-то простое, лаконичное и полезное быстро завоевывает сердца аудитории!
«Уважаемый izen можно ли использовать иконку сделанную вами?»
Уважаемый izen ли использовать иконку сделанную вами?
Если да, то есть ли у вас версия с прозрачностью и без надписи внизу?
Он попробовал поменять цитату и автора местами, но в хидер можно запихнуть только ограниченное количество символов, потом появляется многоточие, поэтому, пока единственный нормальный вариант как на скриншоте у автора поста.
От автора:
«Сейчас программа дорабатывается, добавляю настройки, чтобы можно было задать интервал обновления цитат и обновлять цитату вручную. Когда запущена появляется иконка в трее. Програмка очень радует и полезна, например раз в 15 минут отвлекает от работы, и что-то новое узнаешь и мозг „перезагружается“, что на работе сказывается положительно. Как только закончу прогу выложу в общий доступ. Лицензия GPL. Спасибо авторам за хороший проект и API. Буду благодарен за инвайт на Хабр.
P.S. Спасибо izen за иконку, с его разрешения и разрешения авторов использую ее в программе.»
Попробовал разные версии, оригинальную 4.1.0 (давность 10 лет), 4.1.0 WHT и свежую 5.1.2.
По субъективному мнению 5.1.2 адекватнее всего тестирует.
Тестов проводит больше, думаю это положительно сказывается на точности результатов.
Работала очень долго. Я не засекал, но по моему около часа!
Если кому интересно вот результаты тестирования моего сервера (можно сравнить, полноценный сервер VS Atom):
===================================================================== BYTE UNIX Benchmarks (Version 5.1.2) System: GNU/Linux OS: GNU/Linux -- 2.6.16-hardened-r6 -- #2 SMP Fri Jun 12 16:43:11 MSD 2009 Machine: x86_64 (AuthenticAMD) Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8") CPU 0: AMD Opteron(tm) Processor 242 (3195.7 bogomips) x86-64, MMX, AMD MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET CPU 1: AMD Opteron(tm) Processor 242 (3206.5 bogomips) x86-64, MMX, AMD MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET ------------------------------------------------------------------------ Benchmark Run: Sun Oct 04 2009 16:37:06 - 17:05:13 2 CPUs in system; running 1 parallel copy of tests Dhrystone 2 using register variables 5043955.4 lps (10.0 s, 7 samples) Double-Precision Whetstone 1328.2 MWIPS (10.0 s, 7 samples) Execl Throughput 1983.5 lps (29.9 s, 2 samples) File Copy 1024 bufsize 2000 maxblocks 196767.0 KBps (30.0 s, 2 samples) File Copy 256 bufsize 500 maxblocks 73529.5 KBps (30.0 s, 2 samples) File Copy 4096 bufsize 8000 maxblocks 365641.6 KBps (30.0 s, 2 samples) Pipe Throughput 696329.4 lps (10.0 s, 7 samples) Pipe-based Context Switching 131082.5 lps (10.0 s, 7 samples) Process Creation 6014.2 lps (30.0 s, 2 samples) Shell scripts (1 concurrent) 1850.0 lpm (60.0 s, 2 samples) Shell scripts (8 concurrent) 393.9 lpm (60.1 s, 2 samples) System Call Overhead 1189300.4 lps (10.0 s, 7 samples) System Benchmarks Index Values BASELINE RESULT INDEX Dhrystone 2 using register variables 116700.0 5043955.4 432.2 Double-Precision Whetstone 55.0 1328.2 241.5 Execl Throughput 43.0 1983.5 461.3 File Copy 1024 bufsize 2000 maxblocks 3960.0 196767.0 496.9 File Copy 256 bufsize 500 maxblocks 1655.0 73529.5 444.3 File Copy 4096 bufsize 8000 maxblocks 5800.0 365641.6 630.4 Pipe Throughput 12440.0 696329.4 559.8 Pipe-based Context Switching 4000.0 131082.5 327.7 Process Creation 126.0 6014.2 477.3 Shell scripts (1 concurrent) 42.4 1850.0 436.3 Shell scripts (8 concurrent) 6.0 393.9 656.5 System Call Overhead 15000.0 1189300.4 792.9 ======== System Benchmarks Index Score 475.4 ------------------------------------------------------------------------ Benchmark Run: Sun Oct 04 2009 17:05:13 - 17:33:25 2 CPUs in system; running 2 parallel copies of tests Dhrystone 2 using register variables 9872365.5 lps (10.0 s, 7 samples) Double-Precision Whetstone 2653.3 MWIPS (10.0 s, 7 samples) Execl Throughput 3367.5 lps (29.5 s, 2 samples) File Copy 1024 bufsize 2000 maxblocks 153984.2 KBps (30.0 s, 2 samples) File Copy 256 bufsize 500 maxblocks 44280.3 KBps (30.0 s, 2 samples) File Copy 4096 bufsize 8000 maxblocks 381892.1 KBps (30.0 s, 2 samples) Pipe Throughput 1286292.3 lps (10.0 s, 7 samples) Pipe-based Context Switching 329390.6 lps (10.0 s, 7 samples) Process Creation 12279.1 lps (30.0 s, 2 samples) Shell scripts (1 concurrent) 2682.1 lpm (60.0 s, 2 samples) Shell scripts (8 concurrent) 414.3 lpm (60.1 s, 2 samples) System Call Overhead 1548447.9 lps (10.0 s, 7 samples) System Benchmarks Index Values BASELINE RESULT INDEX Dhrystone 2 using register variables 116700.0 9872365.5 846.0 Double-Precision Whetstone 55.0 2653.3 482.4 Execl Throughput 43.0 3367.5 783.1 File Copy 1024 bufsize 2000 maxblocks 3960.0 153984.2 388.8 File Copy 256 bufsize 500 maxblocks 1655.0 44280.3 267.6 File Copy 4096 bufsize 8000 maxblocks 5800.0 381892.1 658.4 Pipe Throughput 12440.0 1286292.3 1034.0 Pipe-based Context Switching 4000.0 329390.6 823.5 Process Creation 126.0 12279.1 974.5 Shell scripts (1 concurrent) 42.4 2682.1 632.6 Shell scripts (8 concurrent) 6.0 414.3 690.5 System Call Overhead 15000.0 1548447.9 1032.3 ======== System Benchmarks Index Score 670.1Характеристики сервера:
2x AMD Opteron 242 1.6Ghz, MB Tyan Thunder, 2Gb Ram, 4x250Gb SATA HDD, Software raid 5, XFS, Gentoo
Железо довольно старенькое (по сегодняшним меркам). Тестирование проводилось на продакшн сервере, то есть это не чистая установка. На серваке крутятся сайты и на них хоть и мало но заходят посетители.
Также работает куча других сервисов. Так что точность тестов не очень! И скорее всего цифры оличались бы в большую сторону.
Сайт разработчика программы: http://www.hermit.org/Linux/Benchmarking/
Скачать последнюю версию: UnixBench 5.1.2 SRC
Как заявляет разработчик:
(перевод)
«UnixBench очень древний (1983!!!) комплекс тестов производительности unix-систем созданный в Monash University, который в дальнейшем разрабатывался и расширялся Byte magazine. Этот универсальный комплекс тестов (бенчмарк) был создан для оценки производительности Unix-like систем (в сравнении с другими Unix-like системами); Он запускает набор тестов чтобы оценить различные аспекты производительности системы и сгенерировать набор оценок. (Другие бенчмарки, такие как lmbench, проводят более низкоуровневую оценку производительности систем). С учетом этого, насколько я знаю, UnixBench не изменялся в течении 10 лет, может быть сейчас есть что-то более новое чем все пользуются, но если и так то я не смог найти. (Пожалуйста сообщите если знаете).
С разрешения David Niemi, предыдущего разработчика, я занялся дальнейшей разработкой UnixBench. Итак после 10 летнего перерыва в разработке программы я представляю вам обновленную версию!»
Как я понял обновленная версия может более корректно тестировать новое железо, в том числе многоядерные процессоры и многопроцессорные сервера.
Автор советует для корректного тестирования многопроцессорных серверов провести 2 теста:
1-й тест с параметрами по умолчанию командой ./Run
2-й тест с указанием количества процессоров (ядер тоже?) ./Run -c 2
Это позволит определить производительность системы при работе с одной задачей, несколькими задачами и производительность параллельной обработки данных в реализации для вашей системы.
Также новая версия программы может тестировать производительность графических карт.
Чтобы собрать программу на серверах без X закомментируйте строку «GRAPHIC_TESTS = defined» в Makefile у меня на машине с Gentoo не собралось пока не закомментировал (что не удивительно ;)
Если у вас есть время пожалуйста проведите тестирование вашего Atom сервера новой версией программы!
Спасибо за внимание :)
С какими параметрами запускался UnixBench? "./Run 2" или как-то иначе?
unixbench-4.1.0-wht.tar.gz
По этой ссылке та же версия что и вы использовали?
Хочется сравнить производительность со своим сервером.
Изучив вопрос также стало понятно что стоит использовать материнскую плату ION с 330 процессором, а не Intel ;) В комплекте MB ION идет БП на 90 ватт.
Если кому надо, то потребление жесткого диска 2.5" объемом 320 гб, например от Вестерн Диджитал в режиме чтение/запись = 2.5 ватт. (то есть фактически это максимум что он кушает, ну плюс погрешности...)