Задать вопрос
  • Как в Git слить ветку, образованную от другой ветки, с мастером?

    artzub
    @artzub
    Программист
    Rebase как раз и сделает так что головой ветки experiment как раз и станет последний коммит m11 в master.

    $ git init
    $ echo 111 > 1.txt
    $ git add .
    $ git commit -m "m10"
    $ git checkout -b server
    $ echo ser >> 1.txt
    $ git commit -am "s11"
    $ echo ser1 >> 1.txt
    $ git commit -am "s12"
    $ echo ser2 >> 1.txt
    $ git commit -am "s13"
    $ echo ser3 >> 1.txt
    $ git commit -am "s14"
    $ echo ser4 >> 1.txt
    $ git commit -am "s15"
    $ git checkout -b experiment
    $ echo exp1 >> 1.txt
    $ git commit -am "e1"
    $ git checkout server
    $ echo ser5 >> 1.txt
    $ git commit -am "s16"
    $ git checkout master
    $ git merge server
    $ git checkout experiment
    $ git rebase master
    # будут конфликты, решаем их
    $ git mergetool
    $ git rebase --continue
    $ gitk --all


    QytqLXY.png
    Ответ написан
    Комментировать
  • SQL запрос COUNT?

    artzub
    @artzub
    Программист
    select a.id, a.name, count(b.id) from users a
    left join articles b on b.user_id = a.id
    group by a.id, a.name

    вот как отрабатывает
    Ответ написан
    2 комментария
  • Как организовать выбор базы данных при использовании Entity Framework?

    artzub
    @artzub
    Программист
    Ответ на вопрос в предыдущем комментарии.
    private static void InitConnectSetting() {
    	Configuration config = ConfigurationManager.
    		OpenExeConfiguration(ConfigurationUserLevel.None);
    
    	var path = DebugMode ? DebugModeDbPath() : Application.StartupPath;
    	
    	Dictionary<string, string> db = new Dictionary<string, string>() {
    		{"ec", string.Format("{0}\\db\\{1}", path, /*DebugMode ? "data.db" : */"data.db")},
    	};
    
    	var conSets = config.ConnectionStrings;
    
    	foreach (var key in db.Keys) {
    		var sName = key + "Entities";
    		var conSet = conSets.ConnectionStrings[sName];
    		if (conSet != null)
    			conSets.ConnectionStrings.Remove(conSet);
    		conSet = new ConnectionStringSettings();
    		conSet.ProviderName = "System.Data.EntityClient";
    		conSet.Name = sName;				
    		conSet.ConnectionString = 
    			string.Format("metadata=res://*/{0}Model.csdl|res://*/{0}Model.ssdl|res://*/{0}Model.msl;" + 
    				"provider=System.Data.SQLite;" +
    				"provider connection string=\"data source={1}\"", key, db[key]);
    		conSets.ConnectionStrings.Add(conSet);
    		var file = new FileInfo(db[key]);
    		if (false && !file.Exists) {
    			using (BinaryWriter binWriter =
    						new BinaryWriter(File.Open(db[key], FileMode.Create))) {
    				switch (key) {
    					case "ec":
    						binWriter.Write(Properties.Resources.kladr, 0, Properties.Resources.kladr.Length);
    						break;							
    				}
    			}
    		}
    	}
    	conSets.SectionInformation.ForceSave = true;
    	conSets.SectionInformation.RequirePermission = false;
    	config.Save(ConfigurationSaveMode.Modified);
    
    	ConfigurationManager.RefreshSection(conSets.SectionInformation.Name);
    }


    UPD: При запуске предлагать выбрать бд а затем изменять строки подключения.
    Ответ написан
    Комментировать
  • c# маппинг oracle-таблиц master-detail

    artzub
    @artzub
    Программист
    Поставьте ODAC он включает в себя EF для oracle.
    Ответ написан
    1 комментарий
  • Как привязать таблицу данных к ComboBox в C#?

    artzub
    @artzub
    Программист
    Можно использовать свойство DataSource и DisplayMember.
    Ну а дальше как и написал авторы выше используй SelectedIndexChanged.
    В DataSource передай свою таблицу в DisplayMember укажи название поля таблицы.

    namespace WindowsFormsApplication1 {
        public partial class Form1 : Form {
            public Form1() {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e) {
                dataGridView1.DataSource = bindingSource1;
                var dt = new DataTable();
                bindingSource1.DataSource = dt;
                dt.Columns.AddRange(new DataColumn[] {
                    new DataColumn("ID", typeof(long)),
                    new DataColumn("NAME", typeof(string)),
                    new DataColumn("DESC", typeof(string))
                });
                for (var i = 0; i < 3; i++) {
                    var row = dt.NewRow();                
                    row["ID"] = i;
                    row["NAME"] = string.Format("group{0}", i);
                    row["DESC"] = "Lots of symbols";
                    dt.Rows.Add(row);
                }
                dt.AcceptChanges();
                comboBox1.DataSource = bindingSource1;
                comboBox1.DisplayMember = "NAME";
            }
        }
    }


    Screenshot%202013-12-12%2002.44.00.png?w

    P.S. Если нужна более детальная помощь можешь написать мне в skype: artzubalex
    Ответ написан
    Комментировать
  • Как создать gif анимацию, имея html/css анимацию?

    artzub
    @artzub
    Программист
    1. Можно попробовать решить проблему css хуками.
    2. Для снятия gif можно воспользоваться допустим программой GifCam
    3. Ну а также можно сделать gif в Gimp 2. Вот урок
    Ответ написан
    1 комментарий
  • Настройка языка в WebStorm при работе с git?

    artzub
    @artzub
    Программист
    это в настройках git прописывается… вроде. (если у тебя win то вот habrahabr.ru/post/74839/)
    Ответ написан
    Комментировать
  • Как отключить замену двух пробелов на запятую и пробел в Punto Switcher?

    artzub
    @artzub
    Программист
    я конечно извиняюсь что ворошу данный вопрос, но я нашел решение!!! =)))
    Shift+Ctrl+Alt+Space — вкл/выкл режима замены двух пробелов запятой.
    Ответ написан
    1 комментарий
  • В чем проблема конфига для subdomain в nginx

    artzub
    @artzub Автор вопроса
    Программист
    всем еще раз огромное спасибо за участие!!!
    Ответ написан
    Комментировать
  • В чем проблема конфига для subdomain в nginx

    artzub
    @artzub Автор вопроса
    Программист
    А по подробней можно про strace
    Ответ написан
  • Images -> Video -> Youtube | вопрос качества

    artzub
    @artzub
    Программист
    я использую для перегонки картинок в видео вот эту утилиту:
    mencoder mf://*.png -mf fps=12:type=png -ovc x264 -x264encopts pass=1:bitrate=5000 -oac copy -o "%results%\result.avi"
    Цвета немного страдают, но в цвелом это высоко качественное изображение получается.
    Ответ написан
    Комментировать
  • git + bug tracking + code review

    artzub
    @artzub
    Программист
    я использую TrackStudio.
    вот здесь есть о том как его с git интегрировать как раз для ваших целей чтоб при коммите закрывалась задача при наличии определенной команды, при ее отсутствии коммиты добавляются как простое сообщение по задачи. также к сообщениям цепляются и патч файлы.
    Также я последнее время использую встроенный механизм интеграции с git, он ищет в указанном репозитории в коммитах номера задач #99 и прикрепляют эти коммиты к задаче с возможностью просмотра в репозитории.
    по 3 пункту ничего сказать не могу не использую.
    Ответ написан
    Комментировать
  • Как организовать рабочее место, чтобы не портилась осанка?

    artzub
    @artzub
    Программист
    У нас в офисе стоят столы с круглым вырезом. Столешницы такие, чтоб локти ложились и не свисали с углов. Высота стола регулируется, таким образом, что когда сидишь на стуле ноги не касаются столешницы.
    Кресло с высокой выгнутой спинкой офисное, с жесткой пружиной, чтоб и не сильно напирала и прогибаться не давала. Регулируется так чтоб ноги стояли к полу практически перпендикулярно, немного подогнуты под стул, тогда нормальное кровообращение в ногах сохраняется.
    Монитор стоит на подставке регулируемой так чтоб центр экрана был на против глаз.

    Ну и самое главное это освещение над каждым место есть лампа дневного света и в офисе всем доступно смещенное освещение.
    Ответ написан
    Комментировать
  • Как организовать рабочее место, чтобы не портилась осанка?

    artzub
    @artzub
    Программист
    У нас в офисе стоят столы с круглым вырезом. Столешницы такие, чтоб локти ложились и не свисали с углов. Высота стола регулируется, таким образом, что когда сидишь на стуле ноги не касаются столешницы.
    Кресло с высокой выгнутой спинкой офисное, с жесткой пружиной, чтоб и не сильно напирала и прогибаться не давала. Регулируется так чтоб ноги стояли к полу практически перпендикулярно, немного подогнуты под стул, тогда нормальное кровообращение в ногах сохраняется.
    Монитор стоит на подставке регулируемой так чтоб центр экрана был на против глаз.

    Ну и самое главное это освещение над каждым место есть лампа дневного света и в офисе всем доступно смещенное освещение.
    Ответ написан
    Комментировать
  • Как сравнивать адреса?

    artzub
    @artzub
    Программист
    Скажу так без человеческого вмешательства не обойтись.
    Подогнать конечно можно под какой-то шаблон, но вероятность ошибки очень велика.

    У меня два проекта, в которых я решал эти задачи. Адреса в одном и том же наборе могут быть, как и структурированные по принципу 9 запятых (это самый простое, можно вычленять автоматически и предлагать подходящие человеку для принятия решения), так же и такие, которые, как говориться: «как бог на душу положит» — это вообще самый не решаемый вариант =)

    Что я делаю:
    1. Внедрил КЛАДР в свою систему. Конвертировал их данные в древовидную структуру в одной таблице и еще одна таблица с сокращениями.
    2. Формируем свои таблицы справочники Регионы, Районы, Города, Улицы. Потому что, КЛАДР это только источник данных к нему нельзя привязывать реальные адреса. Так как при обновлении, не которые записи КЛАДРа могу перейти в состояние не действительных и их ид будут не валидны. Ну то есть храним адреса в своем формате.
    Поиск:
    1. Если адрес, подается разбору по 9 запятым или меньше, то пробуем найти его в КЛАДР (в КЛАДРе есть не все) по этому анализируется так-же и наши справочники. пункт 3. иначе пункт 2.
    2. Если адрес, не поддается разбору. Выводим диалог выбора из классификатора. Пользователь пытается найти адрес, если находи пункт 5, иначе пытается собрать приблизительно соответствующий, допустим в классификаторе нет нужной улицы в нужном городе или населенного пункта в район, такое встречается, выбираем другую улицу и формируем адрес и переходим к пункту 3.
    3. Если удается собрать адрес или его часть, то показываем диалог редактирования адреса. Пользователь корректирует и сохраняет, пункт 4.
    4. Программа ищет во входящем наборе подобные адреса, которые отличаются каким либо признаком допустим домом, корпусом. И предлагает их привязать к только что созданному. ну или пункт 2.

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

    P.S. А вы пробовали анализировать фармацевтический ассортимент =) только человек или гигантская база знании и умный ии решат такую задачу, ваша задача из этого же разряда =)
    Ответ написан
    Комментировать
  • Что за деталька в ноуте?

    artzub
    @artzub
    Программист
    на дверной шарнир походит если честно =)
    а вообще скорей всего для защиты человека от лишнего облучения может быть.
    Ответ написан
    Комментировать
  • Debian автозагрузка команды?

    artzub
    @artzub
    Программист
    чтоб скрипт выполнялся из init.d во время запуска системы он должен быть сформирован по шаблону который есть в файле /etc/init.d/sceleton
    Ответ написан
  • Как бороться с ошибкой: couldn't commit memory for cygwin heap?

    artzub
    @artzub Автор вопроса
    Программист
    вообщем решил все дело в close
    awk '
     BEGIN {
      split("\b\b\b\b\b. . . . . \b- \b\b- \b\b- \b\b- \b\b- \b= = = = =", st, " ")
      i=0
     }
     /^[0-9]/ {
      sub(/:.*/, "");
      d=$0;
      next;
     }  
     /^&/ {
      sub(/&/, "");
      f=$0
      substr($0, 2, length($0) - 1);
      next;
     }
     /^+/ { a="A"; }
     /^-/ { a="D"; }  
     /^[\+-]/ {   
      fflush("")
      sub(/[\+-]/, "")         
      cmd="echo \"" $0 "\" | md5sum | cut -f1 -d \" \" | sed -e \"s@[32|16]@/sd@g\""
      cmd | getline str;
      close(cmd)

      print ""
      system("echo -ne \"" st[i++] "\" >&2")
      if (i > 16) i=0
     }  
    '
    $gitdiff | \
    sed -e 's/\(filename="[^"]"\)/\1/'


    * This source code was highlighted with Source Code Highlighter.
    Ответ написан
    Комментировать
  • Указываете ли вы в своем резюме ссылки на свои профили на тематических сайтах (хабр, stackoverflow.com и т.д.)?

    artzub
    @artzub
    Программист
    я думаю, если попросят, то почему не показать!
    Это ведь тоже тебя характеризует с профессионально стороны, если статья в разрезе новой работы.
    Ответ написан
    Комментировать
  • Замена многочисленных ярлыков одним лаунчером?

    artzub
    @artzub
    Программист
    есть же отличная программа launchy

    В нем можно настраивать спец команды вот пример:

    — открываем launchy горячими клавишами, очень удобно Win+Space, ну если вы любитель линкса, то Alt+F2, вообщем как настроите.
    — кликаем правой, в область где выводится информация о программе.



    — заходите в кладку Plugin, и в плагине Runner добавляем команду, я добавил команду для ping ip.



    — наживаем Ok, вызываем launchy горячими клавишами и вводим сначала (в моем случае) ping, потом нажимаем Tab и вводим или ip или dns имя.



    Если сразу не заработает в настройках надо выбрать закладку Catalog и нажать кнопку Rescan Catalog


    В плагинах есть еще один полезный называется Weby. Он позволяет искать в закладках FF и IE, но также как в google chrome можно делать свои команды поиска и не только.
    Ответ написан
    2 комментария