• Как писать автоматические тесты для десктопных приложений?

    pletinsky
    @pletinsky
    Если для виндовса пишите — то на мой взгляд лучшее решение Microsoft UI Automation Framework. Он все может делать. Autoit за ним не особенно поспевает. У него есть .net интерфейс доступа.
    Для различиных языков программирования для него есть обертки. Очень много зависит от того, на чем пишите.
    Ответ написан
    1 комментарий
  • Выбор долгоживущего ультра(?)бука для программирования в поездках?

    pletinsky
    @pletinsky
    Мне разрабатывать на visual studio даже на 14 дюймах не особенно комфортно — что уж там говорить про меньшие разрешения.
    Пользуюсь Lenovo Thinkpad t420s с 8гб памяти и дополнительной батареей на месте cd/dvd.

    Вроде подходит под ваше описание. Вес 1.7, матовый экран, разрешение 1600/900. С доп батареей держит очень долго. Из минусов экран tn — углы обзора небольшие — но для работы не особенно актуально, выглядит не так круто, как алюминевые ультрабуки. Лучше брать в штатах — мне попался с экраном очень высокого качества, но таких мало.

    Да, t420 и t420s — это разные ноутбуки. Сейчас есть t430s — он поновее — но говорят там пластиковый корпус, а не из магниевого сплава, как у t420s.
    Ответ написан
    2 комментария
  • Перезапись свободного пространства с целью удаления старых файлов навсегда

    pletinsky
    @pletinsky
    Рекомендую затереть все, что сможете, потом забить весь диск файлами под завязку — а потом забить на то, что там могло остаться.
    Со временем (если это SSD), все данные у вас затрутся в процессе использования диска.

    К вопросам безопасности данных подходят не так обычно.
    Есть программы по шифрованию жесткого диска. Вы вводите пароль перед загрузкой операционной системы и в выключенном состоянии данные не восстановить. Во время поступления новых данных на накопитель, они шифруются в фоне. Сколько нибудь значимых изменений в производительности работы компьютера в таком режиме на замечено.
    Ответ написан
  • Объективные критерии выбора веб-программиста

    pletinsky
    @pletinsky
    Ну все же очевидно — первичный элементарный отсев — как делают все эйчары.

    1) Самое простое. Опыт работы по специальности. Для джуниора — 0-3 года. Для миддла 2-7 лет. Для сеньера 5 и больше лет. Что то вроде такого — можно поправить. Если меньше — в топку. Исключения бывают реже чем кажется.

    2) Присутствие ключевых слов в резюме. Зависит от специфики проекта. Ну там html, javascript, asp.net, java. Наберите свой список. Но не более 4-5 элементов! Иначе что нибудь впихнете, что не пишут в резюме или можно и так изучить.

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

    4) Наличие адекватного резюме. Ну это вообще очевидно — не уверен что стоит писать.

    Помните, что отсутствие портфолио для веб разработчика не является критерием вообще. Так как многие из них выполняют работу в рамках команды или на проектах, о которых иногда даже не имеют права рассказывать. Сколько нибудь серьезные продукты не разработать в одиночку.
    Ответ написан
  • Не понимаю, как применить TDD в проекте

    pletinsky
    @pletinsky
    Во первых Вас следует разобраться что вообще такое модульные тесты. Как правило если речь о классическим модульных тестов в рамках TDD — то это тесты на методы класса в полном отрыве от внешнего окружения. Это значит что не только данные из базы там не могут оказаться, а вообще не должно быть каких либо вызовов за пределы класса. Все мокируется. Как правило TDD (если его умеют готовить) ускоряет написание кода (хотя вы можете услышать и иное мнение — но оно неверно). И имеет массу полезных побочных эффектов, но недешево в поддержке (хотя окупается за счет большей стабильности системы).
    Такие тесты требуют архитектурной готовности системы. Например ваши бизнес энтити из базы должны реализовывать какой то интерфейс для мокирования. Чаще всего юнит тесты не окупятся на уже написанном проекте.

    Поймите, чего вы хотите добиться. Если Вам нужна стабильность работы каких то определенных «злых» модулей программы пишите интеграционные тесты.
    Если вы хотите добиться стабильности системы по отношению к требованиям — пишите системные тесты, которые работают с приложением как с черным ящиком. Есть много наработок в этой области в рамках BDD подхода.
    Если у вам не формализованы требования — первым делом этим и займитесь — иначе никакие тесты вам не помогут.
    Ответ написан
  • Как переквалифицироваться с desktop на web

    pletinsky
    @pletinsky
    Разница между разработкой десктопных приложений и приложений под веб на практике очень велика.
    Там нужно совсем другое мышление. Там другие науки (верстка, адаптивность, кроссбраузерность, скриптовые языки, которые труднее тестировать, протоколы веб сервисов и др.). Распространены другие архитектурные принципы (распределенные приложения, API, Rest сервисы и др.).

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

    pletinsky
    @pletinsky
    Нет — это не экономия на спичках. Это гораздо хуже — совмещение ответственности по формату данных с ответственностью по сжатию данных. Это чревато массой не очевидных проблем, связанных с обработкой таких данных.

    Если рассматривать данный подход как некую контентозависимую архивацию — то он имеет право на жизнь. Но его эффективность нужно сравнивать с другими решениями — для бинарных данных (контентонезависимыми) и текстовых. Сравнивать необходимо выигрышь при сжатии и скорость архивации и разархивации. Даже если вы и выиграете — конечно только в специфическом json — врятли в типичном. А чтобы еще и овчинка стоила выделки (то есть разница со стандартными архиваторами имела бизнес значение на проекте) — по моему нужно совсем какие то экзотические условия.

    Но я могу и ошибаться — вы можете провести исследования и проверить.
    Или используйте готовые решения для сжатия текстовых данных.
    Для xml в отличие от json — есть сжатие специфическое для xml над сжатием текста — там с этим намного проще.
    Ответ написан
    Комментировать
  • Ищу книгу Мейера «Объектно-ориентированное конструирование программных систем»

    pletinsky
    @pletinsky
    В природе она есть — на озоне есть лот, но кому она нужна теперь — когда есть в виде курсов на итуите.
    Разве что фанатам — вроде вас.
    Наверняка уже больше не поступит в продажу.

    Ну не знаю — закажите ее на английском и прочитайте — раз так понравилась.
    Ответ написан
  • CodeIgniter и Unit-тесты. Что использовать?

    pletinsky
    @pletinsky
    То есть можно конечно привязаться к разным уровням приложения в тестах — но в данном случая как я понимаю — вы не можете привязаться ни к чему — поэтому предлагаю привязаться к самому верхнему уровню из возможных, рассматривая внутренности приложения как блек бокс.
    Все остальное очень зависит от делатей самого проекта — почему у вас там не получается оргинизовать подобие интеграционных тестов.
    Ответ написан
    9 комментариев
  • CodeIgniter и Unit-тесты. Что использовать?

    pletinsky
    @pletinsky
    Если вы не можете сделать моки — то речь вообще не о юнит тестах и обычные фреймворки для юнит тестов вам могут не помочь. Юнит тесты это тесты на отдельные модули — обычно на методы класса в отрыви от внешнего окружения.
    Не только от базы данных — а вообще от всех других классов.
    И если так подходить к делу — то вам должно быть наплевать на то что юнит тесты чего то там не подтягивают.
    Юнит тесты предполагают архитектурную готовность системы и обычно пишутся до кода в рамках TDD.

    Если хотите сделать приложение стабильным — в вашем случае нужны behaviour тесты. Просто разворачивайте приложение как будто это делаете на продакшене — и тестируйте все его поведение в целом эмулируя действия пользователя на вебе.
    Ответ написан
    1 комментарий
  • Разрешено ли на хабре продавать технику?

    pletinsky
    @pletinsky
    Хабр — не магазин. Рекламировать товары, услуги, события, аккаунты и прочее, размещать в своих топиках ссылку на свой блог/сайт можно только в двух случаях: если топик находится в хабе «Я пиарюсь», либо в корпоративном блоге. Также не разрешается размещать рекламу в хабрацентре.

    Напишите про него сногсшибательный пост и очень тонко намекните, что по вопросом приобритения обращаться в личку :)
    Ну или наобором напишите рекламный пост для продажи.
    Главное следуйте правилам хабра — он предоставляет возможности для рекламы как видите.
    Ответ написан
    4 комментария
  • С помощью чего реализовать сайт?

    pletinsky
    @pletinsky
    Технология под дот нет называется asp.net, а не asp. Asp -технология тоже существует и она другая.

    На мой взгляд если будете использовать современный подходы к разработке под .net (asp.net mvc 3.0-4.0), то стоимость разработки сайта будет существенно ниже, чем при использовании java.
    Это результат и очень развитых инструментальных средств и очень развитого языка программирования.
    Все эти средства вы можете получить бесплатно по системе поддержки стартапов или студентов.

    Вам не понадобится ничего кроме MS Visual Studio на вашем этапе. Когда сайт будет создан — захостите бесплатно (первый год) например на амазоне. Есть и другие варианты.
    Ответ написан
    5 комментариев
  • Как обстоят дела с мобильными интерфейсами?

    pletinsky
    @pletinsky
    По моему во всех программных средах предоставляются возможности для создания решений определенных рамках.
    И если ты хочешь сделать что то хитрожопо необычное — то придется создавать костыли.
    Но как правило такие вещи приходится делать по ошибке. И надо просто уметь говорить заказчику — что такой то функционал не поддерживается данной платформой.

    HTML как таковой используется для верстки веб страниц, для чего и преднозначен. У него есть определенные проблемы, которые решаются дополнительными уровнями астракции (с новыми языками) в рамках серверных и клиентских решений.
    Как некий ассемблер для веба он вполне годится.

    За WP могу сказать что нативные интерфейсы там писать нет смысла. Разработка ведется под виртуальную машину на нем — и предоставляемые механизмы для создания UI: XAML, Data Binding, Templating — возможно лучшие из всех. Но как и везде там лучше вести разработку в рамках общего стиля WP — которого хватит для всех задач. Возможности для кастомизации огромны, но конечно всегда можно придумать какую нибудь хитрость чтобы пришлось делать костыли. Особенно это касается сложных логических элементов в верстке.

    Уверен что в iOS и Android схожие ситуации. Используйте те механизмы платформ, которые предоставляются.
    Ответ написан
    Комментировать
  • Есть ли локальное ПО по созданию скриншотов веб-приложения с переходом по присутствующим в нем ссылкам?

    pletinsky
    @pletinsky
    Да, задача специфическа, скорее всего такого приложения не существует в готовом виде.

    Вообще вот тут все написано :)

    Есть мощные и тяжелые продукты вроде Selenium.
    Есть маленькие и простые, но решающие ваши задачи, вроде такого. Тут даже написано как скриншоты делать.

    Но программировать все равно придется, но не много. Задача простая очень.
    Ответ написан
  • Мини-хотспоты/роутеры с поддержкой SD и работой от батареи?

    pletinsky
    @pletinsky
    Еще можно заказать на ебее HUAWEI B970B.
    Или купить у сотового оператора подобный роутер и разлочить его.
    Ответ написан
    Комментировать
  • Мини-хотспоты/роутеры с поддержкой SD и работой от батареи?

    pletinsky
    @pletinsky
    Он дорогой потому что это 3G модем. Такие же у нас продают операторы сотовой связи за тыщу-полторы. Но не уверен что через их роутеры можно организовывать сетку (не пробовал заходить на другие компьютеры через него, только интернет раздавать).
    Еще любой современный смартфон может быть вай фай точкой, если вам надо интернет раздать.
    Ответ написан
  • Смартфон (android / blackberry / windows phone)?

    pletinsky
    @pletinsky
    Если у вас буджет 7-8 тысяч, то думаю вам стоит изучить вопрос, не подойдет ли вам «китаец». Они сейчас ооочень крутые стали. Аналогичные брендовые модели стоят в два раза дороже.
    ThL W3+ — надежный проверенный вариант — на хабре про него даже есть статьи — почитайте (есть и черного цвета).
    JIAYU G3 — еще не вышел — со дня на день ожидается в продаже — он должен быть еще прикольнее.
    ZOPO ZP300+ — тоже должно быть описание на хабре.
    ZOPO ZP900S — для любителей больших телефонов — только оперативной памяти почему то 512 мб — лучше бы 1Гб.

    Что касается брендовых телефонов за такую цену — это отдельный разговор — но они конечно бюджетные будут очень по всем характеристикам.
    Ответ написан
    9 комментариев
  • Как лучше организовать домашний медиасервер?

    pletinsky
    @pletinsky
    В таком случае врятли понадобится. С другой стороны у соседей может появится вай фай, а вы можете переехать. Роутеры за такую цену покупаются надолго. Asus Rt-N56U единственная бюджетная модель с поддержкой 5Ггц. Но он может быть слабым.
    Я могу ручаться только за Asus Rt-N16 — так как сам им пользуюсь.

    Да, если на входе ADSL а не изернет (я сейчас заподозревал это читая предыдущие комментарии) — то придется выбирать роутер из других вариантов — но смысл тот же. К сожалению характеристики описывающие мощность роутера отстуствуют в стандартном описании. Придется опираться на стоимость
    .
    По поводу того, увидит ли ваш телевизор NAS и будет ли правильно проигрывать файлы — вам тоже лучше погуглить на всякий случай — там могут быть подводные камни — я это процесс сам не проходил — ну в курсе.
    Вот тут есть неплохая статья с кучей полезного, может почерпнете что нибудь для себя.
    Ответ написан
  • Как лучше организовать домашний медиасервер?

    pletinsky
    @pletinsky
    Я думаю что тут важно два пункта

    1) Автору не подойдет просто роутер, который выполняет функции файлового хранилища (с диском подключенным по usb). Ибо скорость не та. Во всех роутерах что я встречал скорость вот так совершенно ужасная. Не факт что хватит даже для просмотра фильмов. Не то что для их закачки. Это особенность и usb и файловых систем и кривых драйверов у линуксах для роутеров.
    То есть нужен роутер + NAS. Роутер раздает сеть устройствам, NAS предоставляет доступ к жесткому диску и качает торренты.

    2) Роутер должен быть достаточно мощным. Просмотр фильмов реально огромная нагрузка на роутер. Бюджетные модели вроде Asus Rt-N10 могут не справится. Если вы не хотите попасть в ситуацию, когда ваш сожитель включает фильм и у вас тут же отрубает интернет. Или например приходится вырубать все торренты, чтобы посмотреть фильм.

    То есть ваш выбор: бюджетный NAS с диском на 1-2 терабайта (4000-5000р) и мощный роутер (3500-5000р). Как раз уложетесь в ваш лимит.

    Из роутров могу порекомедовать ASUS Rt-N16, Linksys E3200, Linksys E4200 и др. Если вы будете смотреть фильмы через wifi, то возможно для вас будет лучше роутере с поддержкой 5 Ггц. Но достаточно мощные роутеры с такой поддержкой начинают переваливать за 5000р. Плюс они хуже обходят препятствия, в квартире с 3 комнатами и мощными стенами это может быть критично.Также тут другие хабражители разные варианты предлагают.

    Из NAS любой бюджетный с поддержкой 1Гбит сети. Например WD My Book Live, SEAGATE FreeAgent GoFlex Home, IOMEGA Home Media Network, есть и другие варианты. Интересно что большую часть стоимости NAS составляет жесткий диск.

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

    Не гонитесь за дешевизной — точно проколитесь. Берите надежные и проверенные варианты.
    Ответ написан
    3 комментария