• Как сохранить данные в форме при перезагрузке?

    @Maa-Kut
    Использовать javascript: по мере заполнения полей формы сохранять значения где-нибудь в куках, а при открытии страницы читать значения из кук и подкладывать в пустые поля.
    Ответ написан
  • Где должна находиться Domain Model?

    @Maa-Kut
    Полагаю, в Business Layer, т.к. объекты домена - это объекты, моделирующие сущности предметной области; они включают в себя и нужные данные, и соответствующее поведение. В DAL им особо делать нечего, там нужны только данные, подлежащие сохранению.
    Ответ написан
    Комментировать
  • Переход из backend во frontend?

    @Maa-Kut
    Работа с БД на сегодняшний день хорошо обеспечивается целой плеядой всевозможных ORMов; можно даже SQL не знать: тягай себе сущности простыми Linq-запросами и радуйся. А у очень многих веб-приложений логика работы с БД сводится к простому CRUD, т.е. никаких зубодробительных хранимок и сложносочиненных транзакций писать не приходится. Если взять EF Code First, то даже базу руками создавать не надо. В общем, не вижу проблемы.

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

    Если бизнес-логику рисовать совсем невмоготу, то остается скинуть это на кого-то другого. Кто-то другой сделает все нужные сервисы, работу с БД и другими источниками данных и эти сервисы вам предоставит в виде библиотеки, WCF-сервиса, через REST или еще как-то. Ну а вам останется нарисовать на ASP.NET фронт, в нужных местах сервисы подергивая. В принципе, в больших проектах подобное разделение на программистов фронта и бэка вполне себе применяется и часто бывает оправданно.
    Ответ написан
    Комментировать
  • Что с JavaScript?

    @Maa-Kut
    А в чем проблема?

    var a = {
     n: 1
    }

    Вот мы создали новый объект, и ссылку на него положили в a

    b = a;
    А теперь создали еще одну ссылку на этот же объект и положили ее в b.

    В итоге обе переменные ссылаются на одну и ту же сущность; соответственно, в данном случае a.n и b.n - это одно и то же значение.
    Ответ написан
    Комментировать
  • C# Как считать из файла, первые 1000 байт в массив байт?

    @Maa-Kut
    byte[] bytes = new byte[1000];
    using(var stream = File.OpenRead(fileName))
    {
        int count = stream.Read(bytes, 0, 1000);
    }


    Если надо прям 10%, то чуть посложнее:
    var fileInfo = new FileInfo(fileName);
    int chunkSize = fileInfo.Length / 10;
    byte[] bytes = new byte[chunkSize];
    
    using(var stream = fileInfo.OpenRead())
    {
        int count = stream.Read(bytes, 0, bytes.Length);
    }
    Ответ написан
    4 комментария
  • Проект стал слишком большим для одного разработчика, что делать?

    @Maa-Kut
    Можно подойти к проблеме просто: делать свою работу в посильном темпе. Неизбежно начнут накапливаться нерешенные задачи в очереди, клиент неизбежно заинтересуется, почему так много "висяков" в багтрекере. А вы ему в ответ собранную за последние неделю-месяц-год статистику: раньше обращений было столько-то, я успевал, а теперь их в N раз больше, а у меня все еще только две руки. И уже можно обоснованно и аргументированно поднимать вопрос о расширении команды и тому подобных вещах.

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

    @Maa-Kut
    Речь о Windows Forms, полагаю? Ничего сложного: в качестве "области окна" берем Panel, потом создаем нужные контролы, задаем им размеры, anchor'ы и прочие нужные свойства и добавляем в Controls панели. Когда надоедят - удаляем.
    Ответ написан
    Комментировать
  • Правильно я понимаю как пользоваться Git-ом в команде разработчиков?

    @Maa-Kut
    1. Не затрут, будет конфликт либо при push, либо при pull (делать pull перед push - неплохая идея, как по мне). Дальше либо git сам сольет эти изменения, либо потребует сделать это вручную. В любом случае, просто так что-то затереть не получится (иначе какой был бы смысл в git вообще?).

    2. Именно.

    3. А это уже от работодателя зависит. Могут ограничиться и учеткой в домене, а дальше типа настраивай себе рабочее место сам под свои нужды.
    Ответ написан
    4 комментария
  • Как понять, чей это user-agent?

    @Maa-Kut
    Подозреваю, что это поисковый плагин "Яндекса" для Android: https://play.google.com/store/apps/details?id=ru.y...
    Ответ написан
    Комментировать
  • Как ускорить обработку элементов в массиве JS?

    @Maa-Kut
    Как насчет того, чтобы не создавать/аппендить на каждой итерации новые элементы, а собирать вместо этого их в одну большую строку, которую затем разом положить в $("#st-selected-hotels-list .st-listbox-content")? Т.е. пусть checkableItem возвращает строку, а не элемент, и тогда будет что-то такое:
    var str = '';
    
    $.each(json.hotels, function(i) {
      str += checkableItem(...);
    });
    
    $("#st-all-hotels-list .st-listbox-content").append(str);
    
    // Обработку событий из checkableItem убираем, навешиваем обработчики отдельно
    
    $("#st-all-hotels-list .st-listbox-content").on('mouseenter', '.st-checkable-item', function() {
      $(this).addClass('st-highlight');
    });
    
    $("#st-all-hotels-list .st-listbox-content").on('mouseleave', '.st-checkable-item', function() {
      $(this).removeClass('st-highlight');
    });
    Ответ написан
    Комментировать
  • Как соединить желание заниматься несколькими направлениями в ИТ?

    @Maa-Kut
    системное администрирование, информационная безопасность и создание-поддержка-продвижение сайта

    Запросто: наняться в какую-нибудь небольшую конторку, которая недавно решила, что без собственного сайта ну никак вообще, однако выделить бюджеты на целую команду (сисадмин, безопасник, верстак, разработчик, СЕОшник и т.п.) не хочет или не может. Таким конторам как раз ко двору придется "человек-оркестр", который и сервак подымет, и сайтик на него выложит, и продвигать его потом станет. Англосаксы про таких говорят "Jack of all trades, master of none".

    Далее "оркестр", скорее всего, определит для себя одну-две по-настоящему интересные области и будет развиваться уже в этих направлениях, задвинув остальное. Ну или сопьется от неспособности объять необъятное :)
    Ответ написан
    Комментировать
  • Возможно ли сделать множественный SELECT INTO?

    @Maa-Kut
    DECLARE _balance INT(11);
    DECLARE _balance2 INT(11);
    
    SELECT `balance`, `balance2` INTO _balance, _balance2 
    FROM `users` WHERE `id` = `NEW`.`user_id` LIMIT 1;


    Подробности: dev.mysql.com/doc/refman/5.7/en/select.html
    Ответ написан
    Комментировать
  • Почему такая разница в рейтинге языков программирования?

    @Maa-Kut
    Разница из-за различных методик сбора данных. Рейтинг TIOBE строится на подсчете количества поисковых запросов, содержащих название языка (https://ru.wikipedia.org/wiki/Индекс_TIOBE). Github, полагаю, ориентируется на количество коммитов в проекты, написанные на соответствующих ЯП. Stackoverflow, скорее всего, ориентируется на теги.

    Особо зацикливаться на эти рейтинги, честно говоря, не вижу нужды; максимум, на что они годны - это служить аргументом в разных фаллометрических баталиях на тему "ЯП1 vs ЯП2". В реальной жизни лучше ориентироваться на количество/качество предлагаемых вакансий (если хочется программировать профессионально) или на личные предпочтения (если хочется программировать "для души").
    Ответ написан
    3 комментария
  • Почему не выводятся json данные с помощью AJAX?

    @Maa-Kut
    Ставим брекпойнт внутри функции success и смотрим, выпадет ли отладчик на нем. Если нет - смотрим лог сетевых запросов, возможно там какой-нибудь HTTP 500. Если да, значит либо ответ неправильно парсится (пришел не в том формате, какой ожидался), либо с версткой косяк (элемент #list точно присутствует?).
    Ответ написан
  • Чем грозит сильная связанность между слоями для приложения?

    @Maa-Kut
    Очевидно, в первую очередь она грозит все нарастающими сложностями по мере развития и роста приложения: чем больше внутри связей, тем труднее их отслеживать и учитывать. Как итог, внесение правок в тот или иной слой или компонент системы влечет собой трудопрогнозируемые изменения в поведении не только этого компонента, но и ряда других, с ним как-то связанных. По сути, это касается не только слоев как таковых, но и функциональных блоков внутри них.

    Притча в тему:
    Маркетолог спрашивает программиста: в чём сложность поддержки большого проекта?

    Программист: ну представь, что ты писатель и поддерживаешь проект «Война и мир». У тебя ТЗ — написать главу как Наташа Ростова гуляла под дождём по парку. Ты пишешь «шёл дождь», сохраняешь, вылетает сообщение об ошибке «Наташа Ростова умерла, продолжение невозможно». Почему умерла? Начинаешь разбираться. Выясняется, что у Пьера Безухова скользкие туфли, он упал, его пистолет ударился о землю и выстрелил в столб, а пуля от столба срикошетила в Наташу. Что делать? Зарядить пистолет холостыми? Поменять туфли? Решили убрать столб. Получаем сообщение «Поручик Ржевский умер.» Выясняется, что он в следующей главе облокачивается о столб, которого уже нет…


    Потом, есть еще традиционный вопрос заменяемости компонентов. Скажем, сегодня у нас View - это веб-интерфейс. А завтра заказчик захотел, скажем, десктопный клиент или клиент в виде Android-приложения. А у нас уже Business на веб завязан. Или Data использует какой-нибудь NHibernate, который захотели заменить на EF. Но фиг там - в Business вовсю хвосты NHibernate торчат, и теперь надо полсистемы переписывать.
    Ответ написан
    1 комментарий
  • Делегаты путаница в названии?

    @Maa-Kut
    Судя по всему, речь в обоих случаях идет о multicast delegates; таким образом, да, одно и то же. Хотя, конечно, было бы интересно взглянуть на код, чтобы точнее понять, что именно подразумевал автор каждого из терминов.
    Ответ написан
    2 комментария
  • Что с жестким диском в ноутбуке? И правильно ли я подобрал SSD на замену?

    @Maa-Kut
    Вообще, как мне кажется, самовольное появление кучи разделов на винте - это как-то не очень нормально. И сомневаюсь, что сам по себе винт такое может учудить. Я бы при очередном зависании попытался открыть "Монитор ресурсов" ("Диспетчер задач", вкладка "Быстродействие") и посмотрел бы на состояние дисковой очереди (вкладка "Диск") - кто там активнее всех жесткий диск насилует.

    По поводу SATA: подойти должен, препятствий не вижу, т.к. все стандартно и единообразно. С толщиной только могут быть заморочки в ультрабуках всяких.

    Что до винды, идеально ее поставить с диска, который с ноутом шел. У меня была похожая проблема, только диск я профукал давным давно. Пришлось скачать с интернетов неактивированный (важно) дистрибутив винды (того же релиза, что и раньше была); поставил ее и спокойно активировал по телефону (займет минут 15).
    Ответ написан
  • Как в ListView удалить строку, которая не содержит значение в SubItem?

    @Maa-Kut
    Например, так (проверяются все субэлементы):
    For Each lvi As ListViewItem In ListViewZ.Items
        Dim found As Boolean = False
    
        For Each si As ListViewItem.ListViewSubItem In lvi.SubItems
            If si.Text = Variables.UserCity Then
                found = True
                Exit For
            End If
        Next
    
        If Not found Then
            lvi.Remove()
        End If
    Next
    Ответ написан
    Комментировать
  • Как получить записи из бд, где category = category?

    @Maa-Kut
    Что-то типа:
    cf = Classfields.objects.filter(category__title = 'Нужный заголовок')
    Ответ написан
    Комментировать
  • Почему вылетает ошибка: An operation is already in progress?

    @Maa-Kut
    Как насчет того, чтобы ридеры в using забрать?

    using(NpgsqlDataReader drGetDBTables = commandGetDBTables.ExecuteReader())
    {
            //tr.Commit();
            while (drGetDBTables.Read())
            {
                existsInDBTables.Add(drGetDBTables[0].ToString());
            }
    }
    ...
    using(NpgsqlDataReader dr = command.ExecuteReader())
    {
                while (dr.Read())
                {
                   // UserData ud = new UserData();
                    ud.id = Int32.Parse(dr[0].ToString());
                    ud.guid = (dr[1].ToString());
                    ud.name = (dr[2].ToString());
                    ud.userblob = (byte[])dr[3];
                    uds.Add(ud);
                    //File.WriteAllBytes("outputimg.jpg", ud.userblob);
                    //Console.ReadKey();
    
                }
    }


    Подозреваю, что второй ExecuteReader падает из-за того, что предыдущий ридер не закрыт - команда как бы еще выполняется. Кстати, сами команды тоже можно в using завернуть - они ж тоже IDisposable.
    Ответ написан