• Какую выбрать систему контроля версий для веб-разработки?

    Git, и только Git!
    Поставьте Git на сервере с использованием gitolite или gitlab. Сервер может быть другим, не обязательно тот на котором работают сайты.

    А дальше тестовый сервер должен забирать (клонировать) репозитории сайтов к себе. Можно делать это периодически (самое простое) или по коммитам (нужно написать скрипт).

    А еще лучше поставить сервер CI (например hudson ) и настроить в нем выкладку сайтов по FTP в ответ на коммиты в репозитории Git.
    Ответ написан
    5 комментариев
  • Прочитал много о программирование, где взять практику?

    Больше практики и больше общения с другими разработчиками.

    Лучше конечно найти разработчика, имеющего практический опыт, и программировать с ним в паре. Задачи могут быть любыми. Можно просто брать небольшие открытые проекты или примеры кода на интересующем вас языке программирования и ручками, без копипаста, перебивать их с экрана в IDE. Запускать, отлаживать и модифицировать.

    Запоминание только через практику!

    У программистов есть такие задания, каты. Ката состоит из небольшого задания и нескольких способов его решения, то есть решение уже известно. Идея в том, что воспроизводя решение в среде разработки вы тренируете фактически мышечную память. Загоняете знания в пальцы.
    Ответ написан
    Комментировать
  • WPF ComboBox длина значений?

    Сделайте конвертер который будет обрезать строки до нужной вам длинны. И используйте его при выводе значений из модели.
    <ComboBox ItemsSource="{Binding}">
      <ComboBox.ItemTemplate>
        <DataTemplate>
          <TextBlock Text="{Binding Converter={StaticResource TrimValueConverter}}"/>
        </DataTemplate>
      </ComboBox.ItemTemplate>
    </ComboBox>


    class TrimValueConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if (value != null)
            {
                string s = value.ToString();
                
                return s.Substring(0, 100);
        }
    
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            throw new NotSupportedException();
        }
    Ответ написан
    1 комментарий
  • В чем разницу между терминами "модели ЖЦ ПО" и "методологии разработки ПО"?

    Модель жизненного цикла ПО описывает какие этапы проходит ПО от рождения до смерти и что с ним на этих этапах делают.
    Методология разработки - это набор методов по управлению разработкой ПО, набор практических правил как нужно разрабатывать ПО.
    Методологии разработки покрывают несколько первых стадий ЖЦ ПО.

    Модель ЖЦ ПО нужно знать для общего развития, а вот Методологии разработки нужно практиковать, чтобы быть успешным разработчиком или командой.
    Ответ написан
    2 комментария
  • Возможно ли развернуть локальную систему контроля версий, т.к. нет подключения к интернету?

    Конечно можно.
    Все современные системы контроля версий можно использовать локально.
    А распределенные системы контроля версий (DVCS) такие как Git или Mercurial вообще строятся из взаимодействующих локальных репозиториев.
    Даже старушка SVN позволяет создать локальный репозиторий.

    Если стоит задача развернуть систему контроля версий в локальной сети организации, то есть несколько способов.
    1. Развернуть локальный сервер Git с помощью gitlab или gitolite.
    2. Организовать pull-модель разработки внутри сети, когда ведущий разработчик сам собирает изменения с репозиториев подчиненных в свой главный репозиторий и выполняет сборку из него. То же самое можно сделать и на Mercurial.
    3. Поставить Mercurial на сервер.
    4. Или по старинке, поставить SVN на сервер. Ссылок даже давать не буду, так как делать этого не нужно.
    Ответ написан
    Комментировать
  • Как из ведущего разработчика стать менеджером проекта, руководителем отдела, ИТ-директором?

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

    Хорошо подумайте, готовы ли взять на себя ответственность за выполнение работы перед начальством, владельцем компании и ее клиентами с одной стороны и перед своими подчиненными с другой.

    Технически стать руководителем не так сложно. Главное взять ответственность. Проявите инициативу. Начните с малого, берите на себя больше будучи ведущим разработчиком. Руководство вас обязательно заметит, инициативных людей проценты, а готовых отвечать за свои слова еще меньше. У руководства постоянный голод на таких людей. Руководство мечтает об открытии новых направлений, но им некому их отдать. Им нужно найти человека которому можно показать направление куда идти. И он сам организует все что нужно чтобы туда прийти: найдет людей, помещения раздаст задания дизайнерам и продажникам, закажет сайт и т.д. и т.п.

    Если вы не готовы брать дополнительные обязанности без соответствующего вознаграждения. Или у вас в голове вертятся фразы типа "Не по зарплате вопрос", даже и не мечтайте о руководящей должности. Жизнь устроена так, что сначала инвестиции, а потом вознаграждение.

    Для @Masterme. Любой тяжелый и продолжительный труд со стороны выглядит как удача.
    Ответ написан
  • Есть ли шпаргалка (постер) по паттернам проектирования?

    Есть такой сайт dzone.com на котором собрана большая коллекция cheat sheet. Шпаргалка по GoF у них самая популярная.
    Прямая ссылка для скачивания www.mcdonaldland.info/files/designpatterns/designp...
    Ответ написан
    Комментировать
  • Какими способами можно связать базу Oracle (пакеты, триггеры, индексы, структура таблиц и т.д.) с системой контроля версий (GIT, SVN)?

    К сказанному @mrstrictly хочу добавить:

    Обладать правами на изменение структуру БД на production должен очень ограниченный круг работников (или вообще один). У них должен быть очень простой алгоритм работы: взять последнюю версию скрипта миграции из ветки "xxx" и выполнить его после того как была отмашка от руководителя проекта.
    Разработчики переносят изменения в ветку "xxx" из ветоки в которой ведется активная разработка после проверки на development БД. То есть они как бы делают релиз скрипта миграции.

    Таким образом, если единственным источником DDL будет система контроля версий, это будет подталкивать разработчиков к внесению изменений в структуру БД через нее. И вы сможете отследить кто, что и когда менял.

    Мне видится, в этой проблеме больше организационной работы.
    Ответ написан
    Комментировать
  • Как настроить Qt Creator + Git на GitHub в Fedora 18?

    Независимо от среды разработки можно действовать следующим образом.

    1. Создаете пустой репозиторий на GitHub или любом другом серверном Git. Это будет удаленная копия вашего репозитория.

    2. Создаете в своей любимой среде разработки новый проект.

    3. С помощью консольного или графического клиента Git создаете в папке нового проекта репозиторий Git.
    cd [Папка проекта]
    git init


    4. Делаете первый коммит, например с файлом .gitignore.

    5. Настраиваете ссылку на удаленный репозиторий в локальном репозитории, созданном в 3
    git remote add origin [URL удаленного репозитория]
    origin - имя ссылки на удаленный репозиторий

    5. Отправляете изменения во внешний репозиторий
    git push origin master
    здесь мы говорим отправить на удаленный репозиторий с именем origin ветку master из локального репозитория.

    6. Далее пользуетесь любым клиентом для работы с локальным репозиторием, включая встроенный в IDE.
    Ответ написан
    2 комментария
  • Можно ли стать эффективным менеджером проектов без знания программирования?

    Я думаю можно. Главное в управлении проектами знание техник управления, методологий. Умение программировать позволит быстрее наладить связь с командой, они будут считать тебя "своим". Без этого умения ты - "чужой". Просто дополнительная сложность с которой можно справиться.

    1. Попроси знакомого программиста с опытом помочь тебе на собеседовании. А сам задавай больше вопросов по мотивации, выясняй амбиции разработчика. От этого будет зависеть его вовлеченность в процесс.

    2. Оценивать производительность нужно по методике. Возьми хотя бы Agile. Там после нескольких итераций становится ясно у кого какая скорость. И с какой скоростью может двигаться команда. Причем, если строго следовать методологии, то становятся даже заметны обманы с оценками со стороны разработчиков.

    3. Оценивать трудоемкость выполнения задач должны разработчики, так как им их делать. Твоя задача следить за тем правильно ли они сделали оценку и корректировать ее. Как правило разработчикам свойственен излишний оптимизм. И ты чаще будешь им говорить: "В прошлой итерации ты оценил задачу #1234 в 12 идеальных часов, а потратил 3 дня (18 часов). Не ошибаешься ли ты в этот раз?"

    И еще несколько советов от себя:
    1. Выбери методологию разработки, изучи ее и строго следуй ей. Это очень помогает.
    2. Почитай про различия менеджерского цикла и цикла разработчика. Уважай способ работы разработчиков и не отвлекай их по пустякам. Методологии и об этом заботятся, в них всегда есть ритм, разработчики к нему привыкают и перестают замечать затраты на следование методологии.
    3. Закрывай собой разработчиков от вышестоящего начальства, не давай ему вмешиваться в рабочий процесс в обход методологии. Это отличный способ заслужить уважение команды.

    Удачи!
    Ответ написан
    2 комментария
  • Что лучше использовать для git: консольный клиент или графический?

    Git, по сравнению с SVN, поощряет делать частые коммиты. Поэтому проверьте как у вас быстрее получается сделать коммит: через командную строку или графическую утилиту.

    Если вы работаете на Windows, то возможно TortoiseGit будет для вас привычней после TortoiseSVN. Тем более что по умолчанию в Windows не работает автодополнение команд Git в командной строке.

    Если вы хотите приблизиться в Windows к удобству использования Git в *nix системах, попробуйте posh-git. Это расширение для PowerShell.

    Мне удобнее и быстрее делать коммиты, ветки и слияния, push&pull и теги из командной строки, а работать с историей и различиями в файлах проще из графических утилит.
    Ответ написан
    Комментировать
  • В чём нарисовать макет расположения блоков на сайте?

    Balsamiq mockups. Можно вставлять любые картинки в качестве элементов.
    Ответ написан
    Комментировать
  • Фриланс на C# - в какую отрасль податься?

    Только веб-разработка! Десктоп приложения редко кто заказывает, сервера еще реже.
    И нужно найти студию, которая делает проекты на ASP.NET. Задружиться с ней, она в случае загрузки подкинет задачек. Будет, практически, удаленная работа. Если останутся силы, можно работать на несколько студий.
    Ответ написан
    Комментировать
  • Какие документы требуются для праильной работы веб-студии?

    Юр. лицо создать придется. И счет в банке открыть. Проще ИП, круче ООО, так как народ не прочь списать НДС (это получится если ООО не упрощенка).

    Далее по шагам:
    0. Находите клиента.
    1. Заключаете договор, 2 экз. Текст уже должен быть готов, так как клиенты на такую ерунду, как разработка сайта или баннера время юристов тратить не хотят и ждут договора от вас. Но могут влезть в него с правками, если вы уж совсем себя лишите всяких обязанностей.
    3. Если есть предоплата, делаете счет на предоплату.
    4. После получения денег, делаете Счет-фактуру на предоплату. Отдаете ее клиенту.
    5. Делаете работу и сдаете ее клиенту.
    6. Отдаете клиенту Акт 2 экз., Счет на окончательную оплату, Счет-фактуру на оплату.
    7. Ждете от клиента экземпляр акта и деньги.

    Далее повторяете несметное число раз и вы миллионер!

    А еще сдаете отчетность в Налоговую, ПФР и ФСС. Но это можно нанять бухгалтера или воспользоваться бухгалтерским аутсорсингом. Бизнес этот очень развит, заморачиваться не нужно.
    Ответ написан
    1 комментарий
  • Поделитесь опытом по работе с GSM-модулем?

    Давно-давно, лет 7 назад, работал с GSM модулем Siemens MC35, аналог легендарного телефона, только в коробочке. Подключался по COM и легко управлялся набором AT команд.

    Однако изучение рынка сервисов по отправке SMS-ок показало, что даже в те времена рассылка через сервисы была дешевле (что-то вроде 0,2 цента за СМС) отправки со своего счета. Такие сервисы, как правило, имеют НТТP интерфейс, что очень удобно для программирования. Предлагаю посмотреть в их сторону.
    Ответ написан
    Комментировать
  • Система контроля версий для ПЛК. Какие есть решения?

    В Git можно отслеживать и бинарные файлы. Просто в этом случае он не сможет показать вам между ними разницу.

    А что в области программирования для PLC нет текстовых исходников?

    По моим наблюдениям, разработчики для микроконтроллеров (а PLC еще ниже уровнем) редко используют системы контроля версий из-за того, что у них нет необходимости объединяться в команды. Часто продукты обозримы и разрабатываются одним человеком.
    Ответ написан
  • Как запаковать в исполняемый файл механизм проверки лицензии (подписка)?

    Проще воспользоваться электронными ключами защиты. Есть ключи с ограничением по времени. Например, http://www.guardant.ru/products/guardant-time/. Защита выполняется очень просто: ваш исполняемый файл помещается в обертку, проверяющую наличие ключа.
    Стоимость складывается из комплекта разработчика и стоимости ключей. Можно уложиться тысячи в 2. Что гораздо дешевле времени, потраченного на создание, отладку и тестирование своего собственного решения.
    Ответ написан
    Комментировать
  • Как прогнать Ant'ом все junit-тесты и одновременно получить правильный код завершения?

    <target name="run-test" depends="init-test, compile-test" unless="option.skiptest">
    		<mkdir dir="${test.xml}" />
    
    		<junit 
    			haltonfailure="off"
    			haltonerror="off"
    			errorproperty="test.failed"
    			failureproperty="test.failed"
    			showoutput="no"
    			printsummary="yes"
    			includeantruntime="yes"
    			dir="${test.build}"
    			fork="true">
    			<classpath>
    				<path refid="test.classpath" />
    			</classpath>
    			<formatter type="xml"/>
    			<batchtest todir="${test.xml}">
    				<fileset refid="test.fileset" />
    			</batchtest>
    		</junit>
    	</target>
    
    	<target name="test" depends="run-test" unless="option.skiptest" description="Run unit tests">
    		<fail if="test.failed"
    			message="At least one test has failed. See logs (in ${test.xml}) for details (use the target test-report to run the test with a report)" />
    	</target>
    
    	<target name="test-report" depends="run-test" unless="option.skiptest" description="Run the test with report">
    		<junitreport todir="${test.xml}">
    			<fileset dir="${test.xml}">
    				<include name="TEST-*.xml"/>
    			</fileset>
    			<report format="noframes" todir="${reports}">
    			</report>
    		</junitreport>
    		<fail if="test.failed"
    			message="At least one test has failed. See logs (in ${test.xml}) or report (in ${reports})" />
    	</target>
    Ответ написан
    Комментировать
  • Что вы делаете, когда не работается?

    Рисуйте каждый день burndown диаграмму задач, запланированных на неделю или две. Внутри дня используйте технику pomodoro. А еще чаще думайте о том, что жизнь конечна и протрачивать ее попусту нельзя.

    Ответ написан
    1 комментарий
  • Git для бэкапа бинарных файлов?

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

    mkdir 2014
    cd 2014
    git init
    …
    git add .
    git commit
    

    При этом ничто не мешает вам работать в репозиториях для прошлых годов и делать там коммиты.

    Если нужно сделать копию на другую машину. То клонируем на ней ваши репозитории. Или просто переносим их простым копированием.

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

    Ответ написан
    4 комментария