О тестировании
11 февраля, 2012 | Нет комментариевЗвучит сильно:
Program testing can be used to show the presence of bugs, but never to show their absence! Edsger W. Dijkstra
Звучит сильно:
Program testing can be used to show the presence of bugs, but never to show their absence! Edsger W. Dijkstra
Engineering Long-Lasting Software: An Agile Approach Using SaaS and Cloud Computing, Alpha Edition [Kindle Edition]
Начинается обучение в стенфорд+беркли, судя по предварительным материалам будет жарко.
Уже выложили кучу материалов, слайдов, виртуалку с убунтой с настроенным окружением для лаб. Куча материала.
Так что даже сомневаюсь, что осилю курс. (всё на английском + ruby, в котором я ни зуб ногой).
Первый уровень — фасад, которому передаются команды(понятные пользователю. например: удали запись №10) на выполнение
Второй уровень — уровень модели предметной области(он содержит фасады и сервисы отражающие сущности предметной области. например: публикация, комментарий, страница, пользователь).
Третий уровень — месиво из разных паттернов, для предоставления информации и выполнения операций. Обычно в этом уровне ацкий ад, который приходится часто рефакторить.
Купил в начале сентября 2011 года. Прямая продажа из Китая. Покупался, чтобы познакомиться с Android устройствами и читать книжки в электричке. Книжки читать достаточно удобно из-за большого экрана.
Продам лично. Академ городок, возможно Новосибирск. Как со мной связаться — написано справа.
Характеристики:
Большой экран 10,2 дюйма, разрешением 1024*600
Оперативной памяти 512 мегабайт, заполнить полностью приложениями не удавалось.
Процессор 1 ГГц (Arm 11 infotmic X220).
Встроенная память 4 Гигабайта
Wi-Fi, GPS(только со внешней антеной. Антенна в комплекте), 3G(только поддержка внешних модемов), G-sensor(сенсор наклона), камера (1,3 мегапикселя), батарея на 5800 мА/ч, динамики и микрофон.
Порты: 2 — USB 2.0 порта, Mini HDMI, audio (на наушники), 1 порт для microSD карты памяти.
Комплект: Зарядное устройство, внешняя GPS антенна.
Дополнительно: клавиатура, подключаемая по USB, совмещённая с чехлом. Коробка.
Моё мнение о устройстве:
— удобная читалка для книг(большой экран как у субноутбуков)
— удобно смотреть фильмы, не за столом (весит 700 грамм), видео в FullHD по Wi-Fi сети не тормозит.
— игры (Angry birds) не тормозят
— по USB читает флешки, даже внешний HDD. поддерживает FAT и NTFS
— доступен Android маркет с приложениями
Минусы:
— GPS работает только с внешней антенной, но антенна мощная, видимо автомобильная. Определяет координаты достаточно хорошо. На 2gis удобно смотреть что находится рядом.
— 3G встроенного нет. Есть поддержка внешних USB модемов. Если у вас внешний модем или Wi-Fi точка доступа, этого достаточно. 3G у нас всё-равно работает не ахти.
— На экран нужно жать стилусом, или, если пальцами — достаточно сильно.
Состояние: одна царапина на экране, почти не заметно(на первой фото видно). Потёртостей практически нет. Корпус целый. Используется 5 месяцев.
Без плагина: 35.80 запросов в секунду
С плагином: 7677.37 запросов в секунду
без плагина
ab -n 10000 -c 50 http://omck.org/ This is ApacheBench, Version 2.3 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking omck.org (be patient) Completed 1000 requests Completed 2000 requests Completed 3000 requests Completed 4000 requests Completed 5000 requests Completed 6000 requests Completed 7000 requests Completed 8000 requests Completed 9000 requests Completed 10000 requests Finished 10000 requests Server Software: nginx/0.7.67 Server Hostname: omck.org Server Port: 80 Document Path: / Document Length: 6270 bytes Concurrency Level: 50 Time taken for tests: 279.349 seconds Complete requests: 10000 Failed requests: 8776 (Connect: 0, Receive: 0, Length: 8776, Exceptions: 0) Write errors: 0 Total transferred: 64908863 bytes HTML transferred: 62688863 bytes Requests per second: 35.80 [#/sec] (mean) Time per request: 1396.743 [ms] (mean) Time per request: 27.935 [ms] (mean, across all concurrent requests) Transfer rate: 226.91 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.1 0 2 Processing: 224 1395 82.0 1396 1974 Waiting: 224 1393 82.1 1393 1974 Total: 227 1395 82.0 1396 1974 Percentage of the requests served within a certain time (ms) 50% 1396 66% 1419 75% 1434 80% 1443 90% 1468 95% 1491 98% 1520 99% 1557 100% 1974 (longest request) |
с плагином
ab -n 10000 -c 50 http://omck.org/ This is ApacheBench, Version 2.3 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking omck.org (be patient) Completed 1000 requests Completed 2000 requests Completed 3000 requests Completed 4000 requests Completed 5000 requests Completed 6000 requests Completed 7000 requests Completed 8000 requests Completed 9000 requests Completed 10000 requests Finished 10000 requests Server Software: nginx/0.7.67 Server Hostname: omck.org Server Port: 80 Document Path: / Document Length: 6268 bytes Concurrency Level: 50 Time taken for tests: 1.303 seconds Complete requests: 10000 Failed requests: 0 Write errors: 0 Total transferred: 64350000 bytes HTML transferred: 62680000 bytes Requests per second: 7677.37 [#/sec] (mean) Time per request: 6.513 [ms] (mean) Time per request: 0.130 [ms] (mean, across all concurrent requests) Transfer rate: 48245.95 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.2 0 3 Processing: 1 6 0.9 6 19 Waiting: 1 6 0.9 6 18 Total: 3 6 0.9 6 19 Percentage of the requests served within a certain time (ms) 50% 6 66% 7 75% 7 80% 7 90% 7 95% 8 98% 8 99% 9 100% 19 (longest request) |
Нашо технопарго.
Ядо ходит туда на обеды, иногда. Когда домой не получается.
Для справки — сайт зимней школы технопарка сделан на WordPress, без понтов. Чотко и надёжно.
upd. Не совсем чотко, как-то он ацко тормозит. Предложу им свой плагин кеширования.
Задача: найти уникальные значения определённого поля документов коллекции.
Пример:
Создадим документы
db.comments.save({"user": {"points": 25}}) db.comments.save({"user": {"points": 31}}) db.comments.save({"user": {"points": 25}}) |
Решение:
db.comments.distinct("user.points"); [ 25, 31 ] |
Решение на PHP:
$points=$this->mongo_base->command(array("distinct" => "comments", "key" => "user.points")); |
Думаю, что это map-reduce, следовательно индексы не юзаются. Если коллекция большая — лучше эти элементы дублировать в другую коллекцию, или, подправить модель предметной области, сократив подобные запросы к минимуму.
В случае, если пользователь с мобильного устройства, плагин кеширования отключается, передавая управление на WordPress. Это делает возможным выдать пользователю другую версию страницы для мобильных устройств.
Рекомендуется использовать IKLK плагин кеширования, совместно с плагином для мобильных устройств wp-touch!
Страница плагина: http://lenta.iadlab.ru/iklk-wp-plagin/
за весь год, блог
Итого мобильного трафика 10%. Пора всерьёз задумываться над версией сайта под мобильные ОС.
Имеется труъ клавиатура 90-х годов с AT разъёмом.
Задача: подключить к ноутбуку =)
Решение:
Используем переходник AT — ps/2:
и переходник ps/2 — USB
have fun =)