• Телевизор в спальне, как?

    @digger
    А в чем профит такого решения? Мне видятся только две причины — сильная близорукость или спальня площадью метров в 50. Во всех остальных случаях достаточно просто повесить ТВ на стену напротив кровати.
    Ответ написан
    5 комментариев
  • Как придти к автоматическому тестированию?

    @egorinsk
    К сожалению, про тестирование и TDD много пишут всякие теоретики и любители написать 3 абстрактных класса ради вычисления факториала. Особенно плохо совместим TDD с активным рефакторингом.

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

    Пример правильного модульного тестирования:

    Например, есть функция решения квадратного. ур: x1, x2 = solveQuadEq(a, b, c );
    Пишем к ней тест:

    a, b, с = 1, 2, 3;
    x1, x2 = solveQuadEq(a, b, c);
    test::assertFloatEqual(a * x1 * x1 + b * x1 + c);
    test::assertFloatEqual(a * x2 * x2 + b * x2 + c);

    (Заметьте, результат проверяется подстановкой корней в уравнение назад, а не решением уравнения). И так несколько раз с разными a, b,c.

    Имеет смысл применять модульное тестирование, например, для проверки модуля извлечения номеров телефонов из текста или модуля OCR.

    Тестировать «тонкие» и «глупые» контроллеры и вьюхи — ровно столько же смысла, сколько тестировать работу функции printf(). То есть никакого.

    Для вашей же задачи больше подойдет функциональное тестирование, то есть тестирование отдельных процессов и сценариев работы, например: создать документ, добавить файл, отредактировать документ, удалить документ, при этом проверять отсутствие зависаний (таймаутов), ошибок и предупреждений на клиенте и на сервере. Опционально (но не обязательно) можно проверять например, что документов стало на 1 больше, что в хранилище появился и исчез файл, что в отчете о документообороте добавились строчки, что пользователю отправлено письмо, в котором содержится такой-то номер документа или такое-то ключевое слово.

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

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

    Также, если это вам кажется сложным, можно тестировать продукт на пользователях: ввести максимальное логгирование всех ошибок и предупреждений, наставить всюду в коде assert() (это стоит делать в любом случае) и собирать жалобы пользователей на баги, но это не всегда возможно, одно дело бесплатный сервис вроде фейсбука, который сломался и ничего страшного, другое дело, если из-за ошибки нарушатся какие-нибудь многомиллионные бизнес-процессы в крупной корпорации или счета в банке.
    Ответ написан
    3 комментария
  • Телефон на андроиде с максимально живучей батареей?

    foxmuldercp
    @foxmuldercp
    Системный администратор, программист, фотограф
    Если Вам не критичен андроид — моя Nokia Lumia 800. со включенной постоянно навигацией, wifi и передачей данных edge с выключением всего хозяйства кроме телефонии на ночь у меня меньше 48 часов не живет. С с 7 до 18 вечера со включенной передачей данных, wifi и навигацией разряжается около половины аккумулятора. Если использовать навигацию и интернеты только по дороге домой/на работу + плеер — последний раз прожила ровно 60 часов.
    Ответ написан
    Комментировать
  • Телефон на андроиде с максимально живучей батареей?

    Vagineer
    @Vagineer
    Nokia Lumia 900. Не андройдофон, конечно, но мало ли)

    Использование:
    1) 1-2 часа звонков в день
    2) Постоянная фоновая синхронизация с почтой (по 2G всегда)
    3) 15-20 минут интернета в день (3G включаю)

    Все это должна уметь. К томуж там батарейка 1800 — 2 дня полюбому должна держать, т.к. мой LG Quantum годовалый с батареей 1500 с куда более высоким потреблением при таком режиме больше суток может протянуть.
    Ответ написан
    Комментировать
  • Лицензия на исходный код

    Envek
    @Envek
    Лицензия MIT. Очень похожа на BSD и удовлетворяет всем вашим требованиям (прочтите по ссылке пункт «сравнение с другими лицензиями»).

    P.S> Извините, сильно тупит интернет — не могу вам сказать, представлена она на Google Code или нет.
    Ответ написан
    1 комментарий
  • Лицензия на исходный код

    barker
    @barker
    Ещё можно Apache License посмотреть, в некоторых случаях мне она более подходящей чем BSD кажется, чаще всего для Java-библиотек/проектов используется.
    Ответ написан
    Комментировать
  • Работа с sockets в windows

    Напишите краткое описание статьи в самом вопросе. Если она окажется интересной, то я с удовольствием поставлю вам +1, и думаю я буду не одинок.
    Ответ написан
    1 комментарий
  • Как прочитать все файлы на NTFS диске?

    AnViar
    @AnViar
    Использовать не_windows и ntfs-3g
    Ответ написан
    Комментировать
  • Интерфейс Zune software?

    dordzhiev
    @dordzhiev
    >>Сам Zune ни к Сильверлайту, ни к .Net отношения не имеет — он написан на C++.
    Скорее это гибридное приложение.
    Zune рисует интерфейс с помощью UIX (как родные приложения в WP7). Но аналогично выглядящие приложения можно разрабатывать с использованием WPF или Silverlight, благо существует множество тем для них.
    Парочка для WPF: github.com/MahApps/MahApps.Metro chronoswpf.codeplex.com/
    Ответ написан
    1 комментарий
  • Стоит ли разрабатывать новый язык програмирования?

    ooprizrakoo
    @ooprizrakoo
    Можно писать программы на языке, заточенном под одну-единственную железку, и она будет работать быстрее, чем программы на «универсальных» компьютерах. Но что бы использовать возможности железа на 100%, надо под каждую железку писать свою программу на своем языке программирования.

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

    Резюмируя, и отвечая на ваш вопрос: если вы хотите потренироваться в разработке оригинальных технологий, научиться наступать на грабли, и замечать их издали в будущем — создавайте свой собственный ЯП.
    Ответ написан
    1 комментарий