Search
Write a publication
Pull to refresh
0
0
Send message

Полуавтоматическое инкрементирование версии проекта при работе с GIT в Visual Studio

Reading time5 min
Views21K
В Интернетах написано немало статей об инкрементировании версий своих приложений и каждый использует свой метод. У кого-то ревизии используются в качестве «билдов», у кого-то это количество секунд текущих суток (например, Microsoft), у кого-то что-то другое.

В моем проекте используются 4 определяющие версии.

Например, 1.2.34.56, где:
1 — Major version: Критические изменения проекта (введен новый функционал, в корне переработан существующий и пр.). Устанавливается вручную;
2 — Minor version: Изменение функциональных частей приложения, значительное улучшение кода и пр. Устанавливается вручную;
24 — Build: номер релиза, попадающего в общество. Назначается автоматически;
56 — Revision: номер ревизии, полученный с GIT. Назначается автоматически.

Я не буду рассматривать кто какими методами пользуется, поэтому напишу как достиг данного результата.

Читать дальше →

Пишем тестопригодный javascript

Reading time7 min
Views13K
[Прим. перев.]: предлагаю вашему вниманию перевод статьи Бена Черри, в прошлом разработчика Twitter. В этой статье он приводит несколько советов по написанию javascript кода, пригодного для тестирования.

Культура разработки в Twitter требует написания тестов. У меня не было опыта тестирования Javascript до работы в Twitter, поэтому мне пришлось многому научиться. В частности, некоторые шаблоны программирования, которые я привык применять, о которых я писал и призывал к их использованию, оказались непригодными для тестирования. Поэтому я подумал, что стоит поделиться некоторыми наиболее важными принципами, которые я разработал для написания тестопригодного Javascript кода. Примеры, которые я привожу, основаны на QUnit, но могут быть применены к любому фреймворку для тестирования Javascript'а.

Избегайте синглтонов


Один из моих наиболее популярных постов был о том, как использовать javascript шаблон «Модуль» для создания синглтонов в вашем приложении. Этот подход может быть простым и полезным, но он создает проблемы для тестирования по одной простой причине: синглтон загрязняет состояние объекта между тестами. Вместо синглтона в виде модуля, следует создавать его как конструируемый объект и присваивать его экземпляру глобального уровня во время инициализации вашего приложения.
Читать дальше →

Необычное переполнение жесткого диска или как удалить миллионы файлов из одной папки

Reading time4 min
Views159K

Предисловие


Скорей всего, матерым системным администраторам статья будет не очень интересна. В первую очередь она ориентирована на новичков, а также на людей, которые столкнулись с подобной проблемой — необходимостью удалить огромное количество файлов из одной папки в ОС Linux (Debian в моем случае), а также с закончившимся местом на диске, когда df -h выдает что почти 30% свободно.
Читать дальше →

WinJS + универсальные приложения. Изучаем FlipView

Reading time9 min
Views8.9K


Давайте посмотрим, как создать галерею изображений, используя элемент управления FlipView из библиотеки WinJS. Мы будем делать галерею фотографий и коллекцию карточек товаров в интернет магазине в рамках универсального приложения для Windows и Windows Phone, а также рассмотрим использование библиотеки WinJS в вебе.
Читать дальше →

Изучаем C++ через программирование игр

Reading time3 min
Views83K
Привет, Хабрахабр.

В этом посте мы хотим вам рассказать о хорошей книге Майкла Доусона «Beginning C++ Through Game Programming». Многие знакомы с творчеством Майкла по книге «Программируем на Python», которая многим пришлась по вкусу. Когда-то мы рассказывали о ней в нашем блоге. Мы еще не приняли окончательное решение по поводу издания книги, поэтому решили в очередной раз посоветоваться с вами. В качестве рецензии мы перевели мнение сайта www.gamedev.net. По содержанию книга по С++ напоминает Python, так как в ней выдержан такой же стиль — обучение через программирование игр.


Читать дальше →

Делаем видео-чат в веб-браузере с минимумом трудозатрат

Reading time5 min
Views45K
Для реализации функционала видео-чата в браузере существует две наиболее подходящие из технологии — WebRTC и Flash. Каждая из технологий обладает рядом своих особенностей, например, во Flash можно использовать видео кодеки H.264 или Sorenson, а в WebRTC на текущий момент доступен VP8, что делает два этих подхода плохо совместимыми друг с другом (перекодирование видео на лету — это очень затратная операция), к тому же видео-чат лучше делать peer-to-peer по возможности, стоит ли говорить, что соединить Flash и WebRTC напрямую не выйдет. В нашем примере мы рассмотрим вариант видео-звонка звонка из WebRTC в WebRTC, с помощью платформы VoxImplant. В целом, можно сделать выбор конкретного варианта, вплоть до динамического выбора технологии в зависимости от того кому звоним. Подробности, как обычно, под катом.
Читать дальше →

Команда разработчиков графического языка Processing представила официальную JavaScript-библиотеку p5.js

Reading time3 min
Views24K
Язык Processing, основанный на Java, был написан в 2001 году для создания графики и анимаций. Для использования этого языка в интернете в 2008 году Джон Резиг написал библиотеку Processing.js. Библиотека быстро завоевала популярность и активно развивалась в течение нескольких лет после релиза. Часы на кривых Безье, о которых на Хабре писали несколько дней назад, были созданы именно с помощью Processing.js.

В прошлом году команда разработчиков Processing объявила о планах создать собственную JavaScript-библиотеку. В августе бета-версия p5.js была представлена широкой публике. Библиотека p5.js сильно отличается от Processing.js по архитектуре. Главные отличия — отсутствие необходимости изучать язык Processing и более тесная интеграция с HTML. Processing.js — это транслятор Processing в JavaScript. Основное назначение этой библиотеки — рендеринг файлов PDE с исходным кодом Processing. При использовании этой библиотеки программист может вообще не знать JavaScript. Возможно, в 2008 году это была весьма удачная идея, но сейчас, после нескольких лет бурного развития JavaScript и появления множества графических библиотек сформировалось поколение программистов и дизайнеров, для которых JavaScript намного «роднее» и понятнее Java-подобного Processing.


Пример анимации, созданной с помощью языка Processing
Читать дальше →

Домашний почти сервер или сказ про All-in-one, который смог

Reading time10 min
Views46K

Пролог


Забегая немного вперёд, скажу, что эта одна из тех историй о поиске решений, балансирующих между затратами и функционалом и дележе опытом с остальными, дабы сохранить время и нервы. Возможно, кто-то увидит в статье новое применение серверу, который есть у него на данный момент. Я ни в коем случае не претендую на экспертное мнение в любой из затронутых ниже тем и буду рад конструктивной критике. Слово «почти» в заголовке фигурирует по той причине, что в моём понимании устройство выбралось за серверные рамки, коими я их себе представляю. Для тех, кому не интересен путь, но интересен результат — сухой остаток с выводами в конце статьи.
Итак, поехали

Как компания D-Link предоставляет исходные коды прошивок

Reading time3 min
Views42K
Приветствую хабрчане!

У меня на работе есть несколько стареньких маршрутизаторов D-Link DI-524UP H/W Ver.: A1, выпускавшихся в 2005-2006 годах и доставшихся мне по наследству от прошлого админа. Понятно, что эти устройства отслужили свое, устарели как морально, так и физически и давно лежат на полке, но меня подкупило то, что у этой модели есть USB порт, и в основу прошивки положена операционная система Linux.
Читать дальше →

Очередная программная закладка в роутерах D-Link

Reading time2 min
Views132K
image

На информационном портале devttys0.com некто Craig Heffner – опытный специалист в области реверс-инжиниринга – выложил статью-исследование очередной (уже находили) программной закладки в роутерах D-Link. На этот раз закладка была выявлена в официальной прошивке для DIR-100 revA, но, по его мнению, присутствует в роутерах других серий:

  • DIR-100
  • DI-524
  • DI-524UP
  • DI-604S
  • DI-604UP
  • DI-604+
  • TM-G5240
  • Planex BRL-04UR
  • Planex BRL-04CW

Коротко говоря, если у вашего браузера установлен User-Agent как «xmlset_roodkcableoj28840ybtide», то вы автоматически получаете админский доступ к веб-панели управления роутером без всякой авторизации.
Подробнее

Связанные списки в ExtJs

Reading time2 min
Views8.6K
Ничего необычного, просто моя реализация одной из самых распространенных задач при создании динамических интерфейсов «связанные списки». Дабы не возникло недопонимания, я имею ввиду два и более элемента Ext.form.ComboBox, выбор значения в одном из которых влияет на подгружаемые значения во втором.

Читать дальше →

Очередной CI светофор. На этот раз attiny2313 и Node.js

Reading time8 min
Views36K
Воодушевленный такой прекрасной идеей, как светофор, отображающий состояние билда, я решил, что нашей команде нужен такой же. Я не хотел руководствоваться прочитанными мною статьями, поскольку они используют слишком дорогие для меня решения. Поэтому, вооружившись идеей, я набросал очень приблизительный план работы для команды, а у себя в голове держал простые принципы, которым хочу следовать.



Под катом светофор из цветомузыки и пластиковых бутылок, USB модуль управления светофором на attiny2313 за доллар, а так же софт для опроса Jenkins и управления USB модулем на Node.js.
Читать дальше →

BiMap, jQuery breakpoint

Reading time1 min
Views3.6K

BiMap


BiMap (GitHub: alethes/bimap, Лицензия: MIT, npm: bimap) от James Daab представляет собой двунаправленную реализацию такой структуры данных как отображение(map). Данная реализация позволяет вам получать доступ к значением через ключи и наоборот к ключам через значения:
bimap.push({
  a: {
    b: 1,
    c: {
      d: 2
    }
  }
});
bimap.key('a.b'); // => 1
bimap.val(2); // => "a.c.d"
Далее

Как мы внедряли инновации в крупной компании на примере Киосков на Windows 8

Reading time6 min
Views7.7K
Здравствуй Хабр. Я работаю в компании Caterpillar в одном из ее австралийских офисов. По долгу службы накопилось несколько, я бы сказал, интересных проектов. Вообще, Австралия, как вы знаете, находится очень далеко от всего, и хотя интернет стер границы между континентами, новые штуки доходят до нас с опозданием в полгода. Это не касается софта, который появляется раньше для загрузки (сами понимаете, мы в часовом поясе сразу после Новой Зеландии), но вот фильмы выходят позже, чем в России, при том что в России их еще и перевести надо. Так и с технологиями, не готовы люди здесь к новому. Даже так — оно им не надо.
Читать дальше →

Подбор книг по C#

Reading time4 min
Views281K
image

Мы решили собрать в одну подборку самые, по нашему мнению, интересные книги нашего издательства, посвященные языку программирования C#. В посте собраны хорошие книги от пособий для начинающих (например, примелькавшаяся книга серии Head First) до изданий Джеффри Рихтера и Чарли Петцольда для практикующих программистов, в общем – на любой вкус по самым лучшим ценам в интернете.
Читать дальше →

HTML-формы. Взгляд бэкенд-разработчика

Reading time12 min
Views49K
При подготовке материала по Symfony Form я решил уделить некоторое внимание теоретической части по работе с формами со стороны клиента – что они из себя представляют, как ведут себя браузеры при отправке, в каком формате путешествуют, в каком виде поступают на сервер.

Вводная часть несколько растянулась и в итоге вылилась в отдельную небольшую статью, которая, по моему мнению, может быть интересна и другим бэкенд-разработчикам (не только PHP или Symfony).
Читать дальше →

Притча о программистах и кодерах

Reading time9 min
Views24K
Давным давно, в далёкой предалёкой галактике, на одной провинциальной планетке жили разумные млекопитающие, у которых недавно начался век информационных технологий. В тот век многим приходилось писать программы на разных языках для различных программных платформ. И любой потомок обезьяны с этой планеты, написавший хотя бы пару строчек кода, который заставил тупую вычислительную машину сделать несколько разумных (с точки зрения автора) действий, уже считал себя просветлённым мудрецом, постигшим ДАО информационных технологий и назывался не иначе как джедаем программистом.

image

Сегодня, дорогие любители истории вселенной, мы с вами постараемся разобраться, в чём же заключается фундаментальное заблуждение этих потомков обезьян людей, и в чём же различие между программистами и не программистами, для простоты будем называть их кодерами.
Читать дальше →

Разработка сайтов (веб-приложений) на C++ (и не только) в виде подключаемых библиотек (*.so, *.dll)

Reading time4 min
Views53K

Введение (лирика)


Около двух лет я занимался веб-разработкой, создавая сайты и веб-приложения на языке PHP. Вот только в веб-разработку я попал по стечению весьма странных жизненных обстоятельств. Не сказать, что мне было это не интересно — мне, как раз, было очень интересно узнать, как создаются сайты и как вообще работает интернет.

Но, в то же время, меня всегда привлекало низкоуровневое программирование. Ещё во время учёбы мне очень понравился язык программирования C++. Только негде было его применять, кроме как для своего развлечения. Дальше я опустился пониже — изучил Assembler. Понял, как работает процессор (хотя слишком поверхностно) и как выполняются программы на самом деле.

Со всем этим набором знаний и опыта я попал в веб-разработку. Всё поначалу казалось весьма и весьма хорошо, оказалось гораздо проще, чем я думал. А со временем приелось, стало слишком просто, неинтересно, нет простора для оптимизаций и интересных решений. Генерируешь веб-странички, пишешь и подключаешь js-скрипты, оформляешь страницы с помощью css. Чувствовал, что больше не развиваюсь как программист.
Читать дальше →

Пост о маленьких видеоиграх

Reading time6 min
Views38K
Привет, друзья. В этом посте мне бы хотелось рассказать, как я писал маленькие HTML5-игры для конкурса js13k, какие подводные камни повстречались на этом тернистом пути, и что получилось в результате.

Подводные камни на тернистом пути
(Подводные камни на тернистом пути — это русло пересыхающей реки, например. Летом в нем растет всякая трава и другие вегетарианские штуки, а осенью начинаются дожди, и всё уходит под воду. Получается терновник вместе с подводными камнями, очень метафорично и травмоопасно.)

Рассказ изобилует ссылками на разные штуки, которые помогли мне в работе, а значит, с некоторой вероятностью пригодятся и вам в схожей ситуации. Вообще цель этого поста — рассказать, как всё на самом деле просто делается. Уверен, это сразу же мотивирует тысячи людей писать всякие видеоигры и другие программы, или не мотивирует.

Но сначала 77 слов про js13k

Читать дальше, там самое интересное же

Вывод видео с нескольких web-камер на одной странице

Reading time7 min
Views26K
Как-то раз я приуныл, делать ничего не хотелось, и тут я вспомнил, что в детстве мне сильно хотелось иметь пульт видео наблюдения, как у какого-то злодея из кино, который сидит в темной комнате и хохочет, наблюдая за беспомощными людишками, которые пытаются найти выход. Ну и освежив свои детские воспоминания, я решил воплотить их в жизнь, ну ту часть с пультом наблюдения, без людишек. И тут моим другом стал шагающий семимильными шагами HTML5, а если точнее Stream API.
Так как я раньше уже использовал getUserMedia для захвата звука с микрофона, я подумал, что с видео тоже не будет никаких проблем, но они все же вылезли на свет. Т.е. проблем с самим захватом видео-потока не было, а вот с одновременным выводом данных с нескольких источников на одной странице оказалось не все так просто, как хотелось.

Итак, начнем с самого начала, а именно с захвата и вывода видео с одного источника. Для этого мы будем использовать ф-ю getUserMedia, которая поддерживается во всех нормальных браузерах старших версий (Stream API), ну разумеется кроме IE.
Читать дальше →

Information

Rating
Does not participate
Date of birth
Registered
Activity