Архив за 24 апреля 2013 - 7

imageЯ всегда с интересом читаю статьи про тестирование кода. И я очень хочу использовать тесты в своих проектах.
Но я не могу. Не могу найти для себя стимул.

Да, тесты из примеров пишутся практически моментально. Но нужно ли писать тест для функции

def get_word():
    return 'word'

вопрос довольно сложный. Написать его не составит проблему, но и пользы от него ощутимой не будет.
Писать такой тест для получения радости от +1 выполненный тест? Не вижу смысла.
Для увеличения покрытия тестами? Не вижу смысла.
Просто так?…
Читать полностью »

Доброго времени суток всем читающим. Сначала изложу предысторию данного вопроса. Началось все с того что знакомый попросил меня по работе помочь ему сделать приложение (WinForm на C#), которая бы алгоритмом CART создавала бинарное дерево решений, исходя из статистических данных находящихся в таблице на форме. Суть в том, чтобы делить исходную таблицу на 2 части по вычисляемым критериям. Для того чтобы поделить исходную таблицу, мы должны найти среднее по каждому из столбцов:
Читать полностью »

От переводчика: В 2007 году, в поисках веб-движка я наткнулся на очень интересный и необычный диалект лиспа. И после прочтения нескольких статей я был очарован его принципами. Поскольку моя основная работа далека от веб-программирования, то профессионально я его не использую, но время от времени возвращаюсь к нему и понемногу «штурмую».

За всё время знакомства с этим языком он практически нигде не мелькает, и на русском языке информации о нем почти нет. Попробуем восполнить этот пробел. Несмотря на то, что оригинал статьи датируется 2006-ым годом, тема вполне актуальна.
Большое спасибо за помощь в переводе Надежде Захаровой и замечательному сайту Notabenoid.

Читать полностью »

Привет Хабровчане решил добавить информацию о том, как разблокировать тело после неправильного ввода графического ключа. На Соньке Ион.
Когда я столкнулся с этой траблой, нигде инфы не нашел. Несколько дней над телефоном корячился, Ибо клиенту нужно было спасти 2 гб фоток и данных, Если на номера было всё равно. То вот то что было на встроенной памяти, нужно было ОБЯЗАТЕЛЬНО сохранить. Возможно кому то этот краткий мануал поможет.

imageimage
Читать полностью »

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

С появлением доступных ARM и MIPS решений, на которые можно установить Linux или WinCE, любительский эмбеддинг вышел на качественно новый уровень(вообще он там давно был, но не в таких широких масштабах как сегодня). Появление таких массовых программных продуктов как Android, очень сильно популяризировало процессоры с не х86 архитектурой, открыло широкой общественности новые возможности в виде снижения цены на быстродействующее железо и обеспечило доступ к той информации, которая раньше распространялась исключительно после подписания NDA.
И всем вроде бы хороши .nix железяки: роутеры, Raspberry Pi и разные девайсы а-ля МК802. У многих они рулят производственными и домашними процессами, роботами и кофеварками. Но, низкая скорость реакции на внешнее воздействие, несколько ограничивает применение таких систем в эмбеддинге. Такими функциями, которые напрочь отсутствуют в подобного рода устройствах(имеется в виду ширпотреб, а не специализированные решения раз, два), могут быть ШИМ с аварийным отключением, скоростной PID регулятор, обработка квадратурного энкодера и многие-многие другие. Все эти вещи требуют известной степени реалтайма.

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

Рефакторинг с бубном, или как мы халка усмиряли

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

YouTube исполнилось 8 лет

Да, сервису, который практически каждый из нас использует ежедневно, исполнилось всего 8 лет. А кажется, что он существовал всегда, правда? Именно 23 апреля 2005 года был загружен первый ролик. Разработчики сервиса тогда и не знали, что в будущем YouTube станет таким популярным, и что они смогут продать свою разработку «Корпорации Добра» за весьма приличную сумму.

Читать полностью »

Предисловие

Не так давно, возникла необходимость захвата видео с web камеры и передавать его по сети используя .Net.
Так как с подобной задачей я столкнулся впервые, то первым делом начал искать информацию по этому вопросу.
Как выяснилось, что в чистом .Net нет поддержки работы с web камерами. Перебрав несколько различных библиотек, свой выбор остановил на Aforge.net.

Aforge.net — это фреймворк для решения целого ряда задач, из которого нам понадобится библиотеки AForge.Video.

Захват изображения

Для захвата видео с устройства видео ввода существует класс AForge.Video.DirectShow.VideoCaptureDevice. Ему необходимо задать моникер устройства с которого будет происходить захват. Так же необходимо задать обработчик события NewFrame. Это событие возникает каждый раз, когда с устройства будет получен новый кадр, который и передается в обработчик в виде объекта Bitmap, где его уже можно обработать:

private void VideoSourceNewFrame(object sender, AForge.Video.NewFrameEventArgs eventArgs)
{
    var img = (Image) eventArgs.Frame;
    using (var ms=new MemoryStream())
    {
        img.Save(ms,ImageFormat.Jpeg);
       //Сохраняем изображение в массив байт, для последующего формирования mjpeg
        _bufImage = ms.ToArray();
    }
}

Читать полностью »

Приветствую всех хабравчан. Одним прекрасным вечером, в мою голову пришла идея отсортировать свои гигабайты музыки. А если точнее, то захотелось просто-напросто удалить все треки с низким битрейтом, дабы не раздражали слух и место почем зря не занимали. Можно было бы, конечно, сделать все вручную, но, во-первых, лень, во-вторых, на это ушло бы несколько недель, если не месяцев. Да и вообще, программист я или где? С такими вот незатейливыми рассуждениями я и пришел к мысли, что стоило бы автоматизировать процесс. Вопрос языка на котором будет производиться автоматизация особо не стоял: на работе пишу на C#, дома тоже есть экспресс версия Visual Studio, значит так тому и быть. Осталось только узнать как с помощью этих самых шарпа да студии узнать битрейт файлов, чтобы не удалить чего лишнего. Недолгий, но продуктивный гуглеж привел меня к одной замечательной библиотеке.
Читать полностью »

image

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

И так, суть капчи в том, что пользователю отображается несколько иконок и необходимо выбрать ту, которая логически не вписывается в общий ряд. Думаю в интернете таких вариантов море, но я не нашел (ну если честно не особо то и искал).
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js