Задать вопрос
  • Разные View в WinForms?

    @Voland69
    TabControl со скрытым заголовком и переключением вкладок из кода по нужным событиям.
    Ответ написан
    1 комментарий
  • Как сделать чтобы бот при рассылке первий написал юзеру?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    почему то не может написать

    Потому что телеграм не дает возможности спамить всем подряд в лс, так что никак (спасибо)
    Ответ написан
    3 комментария
  • Можно ли преобразовать отступы в ячейках в табуляцию?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Сами отступы в табуляции превратить не получится.

    Создайте функцию:
    public function get_indent(rng as range) as integer
        get_indent = rng.indentlevel
    end function


    В отдельной колонке используйте её:
    B1 = get_indent(A1)

    Соответственно при экспорте Вы получите дополнительную колонку с уровнем. После импорта - используйте это значение.

    Альтернативно можете ещё в одной колонке на основании значений навтыкать в начало нужное количество табуляций, и экспортировать только эту колонку.
    Ответ написан
    3 комментария
  • Почему Select выдает меньше колонок чем в нем прописано?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Причина простая. Лапша вместо кода. Это и не позволяет понять, что есть что.

    Отформатируем:

    with AAA(A) as (
        select 1 union 
        select 2 union 
        select 3 union 
        select 4 union 
        select 5
    )
    select 'А01' as "id",
           1 as "sensor",
           generate_series('2021-07-01 00:00:00', '2021-07-31 23:59:59', '10 sec'::interval) as "time",
           t.status[floor(random()* 4 + 1)::int] 
    from (select array_agg(distinct AAA.A) as "status" from AAA ) as t ,
         round((random()* 400 - 200)::numeric, 2) as "value"

    Теперь сразу видно, что value не является полем выходного набора. Это алиас синтетической таблицы в секции FROM.

    PS. За логику и даже просто за синтаксическую корректность я так и вовсе молчу...
    Ответ написан
    1 комментарий
  • Почему value="" записывает пустоту, а не NULL?

    @Akina
    Сетевой и системный админ, SQL-программист.
    NULL и пустая строка есть две совершенно разные вещи (исключение - Оракл). NULL - это отсутствие любого, в том числе пустого, значения.
    Ответ написан
    Комментировать
  • Как сделать сканирование COM-портов и добавление в ComboBox?

    a_volkov1987
    @a_volkov1987
    Инженер-схемотехник
    Я не настоящий программист, но делал так и все работает:

    При загрузке формы вычитываем список портов и пихаем их в комбобокс
    private void Main_Load(object sender, EventArgs e)
            {
                var portNames = SerialPort.GetPortNames();
                portSelectorComboBox.Items.AddRange(portNames);
            }


    Выбранный в комбобоксе элемент кидаем в переменную

    private void portSelectorComboBox_TextChanged(object sender, EventArgs e)
            {
                _portName = portSelectorComboBox.SelectedItem.ToString();
            }


    По нажатию кнопки OpenButton пытаемся соединиться

    private void portOpenButton_Click(object sender, EventArgs e)
            {
                try
                {
                    port = new SerialPort(_portName, 115200, Parity.None, 8, StopBits.Two);
                    port.ReceivedBytesThreshold = 1;
                    port.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
                    port.Open();
                    portStatusText.Text = "Ok, port open";
                }
                catch (Exception)
                {
                    portStatusText.Text = "Error";
                    MessageBox.Show("неправильно выбран порт, попробуйте еще раз");
                }
            }


    Ну и реализуем чтение того что пришло

    void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
            {
    
            }
    Ответ написан
    4 комментария
  • Потенциальные клиенты стали чаще просить созвоны. Почему так?

    @Kostik_1993
    Web Developer
    Нет никакой нехватки общения. Все гораздо проще. Заказчику элементарно лень писать описание, ему проще созвониться выплеснуть поток своих беспорядочных (часто безполезных) мыслей, а дальше уже вы запонинайте как хотите, понимайте как хотите, вспоминайте как хотите. Я часто отсекаю все ненужные попытки созвониться и требую делать текстовое описание, так как:
    1) Это максимально продуманно, заказчик во время написания анализрует то что пишет.
    2) В этом легче ориентироваться
    3) С этим проще работать, можно дополнять, редактировать
    Ответ написан
    2 комментария
  • Какой интерфейс можно использовать удаленно для управления субд mysql?

    Recosh
    @Recosh
    Программист студент
    HeidiSQL идёт в комплекте с mariadb под винду. Все функции присутствуют.
    Ответ написан
    Комментировать
  • Как выполнить метод в отдельном процессе?

    petermzg
    @petermzg
    Самый лучший программист
    Процесс создает ОС на запуск приложения. Вот и запустите из своего приложения другое приложение.
    Можете свой же .exe еще раз запустить.
    Ответ написан
    Комментировать
  • Telegram bot с Tesseract на борту не хочет работать, пожалуйста просмотрите мой код?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    f'Добро пожаловать на Enegry Parking! \nВведите пожалуйста номер своей машины латинскими буквами, {message.from_user.first_name}')

    f'Добро пожаловать на Energy Parking! \nВведите, пожалуйста, номер своей машины латинскими буквами, {message.from_user.first_name}')

    'Спасибо, в скором времени начнется зарядка вашего эллектромобиля \nМы оповестим вас о завершении загрузки.')

    'Спасибо, в скором времени начнется зарядка вашего электромобиля \nМы оповестим вас о завершении зарядки.')

    bot.send_message(message.from_user.id, 'Простите, но номер машины должен иметь минимум из 6 символов.')

    bot.send_message(message.from_user.id, 'Простите, но номер машины должен состоять минимум из 6 символов.')

    Увы, но мои скиллы пока позволяют поправить только это :-\
    Ответ написан
    1 комментарий
  • Как правильно распарсить и получить нужные данные с этого сайта?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Ответ написан
    6 комментариев
  • Исполнитель удалил проект с сервера заказчика?

    @Kostik_1993
    Web Developer
    Вообще не понятная ситуация в целом. Но я бы на вашем месте вернул половину файлов заказчику
    Ответ написан
    Комментировать
  • Как понять есть ли нагрузка на БД?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Почему больше всего подписчиков всегда слетается на самые дурацкие вопросы?
    Которым место в мусорке, а не на главной Хабра.
    Ну ведь как в прошлый раз же, весь текст - какие-то бессвязные эротические фантазии, не имеющие ничего общего ни с реальностью, ни друг с другом, ни - главное - с собственно вопросом, который был задан.

    Так вот: я смотрю, что получил 1500 строк из базы за 0.0316 секунд. Это нормально?

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

    База растёт и строк к выводу станет больше.

    С КАКОГО, я стесняюсь спросить, перепугу, с ростом базы строк к выводу станет больше?
    На тостере с каждым днем прибавляется сотня дебильных вопросов.
    Ты уверен что количество запрашиваемых из базы строк тоже растёт? А если подумать? А если прям вот хорошенько подумать?

    Этот ход мысли напоминает старый еврейский анекдот, который рассказывал Джоэл Спольский в далёком 2001 году:
    Маляр Шлёма подрядился красить пунктирные осевые линии на дорогах. В первый день он получил банку краски, поставил её на дорогу, и к концу дня покрасил 300 метров осевой линии. «Отлично! — сказал прораб. — Быстро работаешь!» и заплатил ему.
    На следующий день Шлёма покрасил 150 метров. «Мда, это, конечно, не так здорово, как вчера, но приемлемо», — сказал прораб и снова заплатил ему.
    Ещё через день Шлёма покрасил всего 30 метров. «Всего лишь 30! — заорал прораб. — Это никуда не годится! В первый день было в десять раз больше! В чём дело?»

    «Ничего не могу поделать, — говорит Шлемиэль. — Каждый день я ухожу всё дальше и дальше от банки!»


    Тебе не кажется что эта логика напоминает твоё "но с каждым днём в БД появляется всё больше и больше записей!"?

    На что ориентироваться? На показатели загрузки процессора или время выполнения запроса или расход памяти?

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

    И вопрос в догонку: если одним запросом я получаю 1500 строк и если в запросе я установлю select нужных мне столбиков - это усложняет запрос или нет? Ведь в первом случае я получаю информацию как есть, а во втором случае процессору надо время чтобы перебрать нужные столбики?!

    Судя по количеству восклицательных знаков - это самый важный вопрос во всём этом и так целиком гениальном тексте. Процессор опасносте!!! Срочно надо спасать!

    Запрос выполняется три сотых секунды, дом рисуется 10, но вопрос почему-то "как узнать , не тормозит ли база?"
    Ну ей-богу, снова как в анекдоте - "Где логика??! Где разум??".

    Сейчас я кеширую результаты php на 60 минут,

    Вот это я понимаю. Сразу заходим с козырей.
    странно что на 60 минут, а не на 24 часа. или вообще сделать сайт статикой. тогда вообще всё летать будет. Или вообще перенести всю БД на клиента. Чего не сделаешь ради борьбы за миллисекунды.

    Как понять есть ли нагрузка на БД?/

    Посмотреть, есть ли нагрузка.
    Тормозит ли сайт, есть ли загрузка по процу и памяти, есть ли отказы в обслуживании, ошибки в логах.
    Если ничего этого нет, то сидеть на попе ровно и ничего не трогать!

    А вместо всяких "оптимизаций" типа кэширования на 60 минут запроса, который выполняется пару сотых секунды, или не на покупки бессмысленного диска, а на букварь про работе с БД. И прочитать там про нормализацию, индексы, базовые команды SQL, пагинацию, в конце концов.

    И тогда и твоя микроскопическая БД в 10 тыщ записей, и нормальная база с миллионами строк, будут работать одинаково быстро и эффективно.
    Ответ написан
    8 комментариев
  • Сгорел микроконтроллер, где можно взять прошивку?

    anthtml
    @anthtml
    Системный администратор программист радиолюбитель
    Шансы крайне ничтожны, а скорее тупо равны 0.
    Особенно то что это made in china
    даже если будете писать на завод и вам ответят, то ответят маркетологи, а не инженеры, а маркетологам ремонт не выгоден - им нужно продать новое устройство. поэтому тупо скажут - купляйте новый.
    Если выйдите на СЦ, то скорее скажут - замена платы целиком, т.к. прошивка является интеллектуальной собственностью и диллерам не поставляется не выкладывается.
    Да и опять же вопрос хранится ли она на заводе/ в конструкторском бюро, т.к., особенно если оборудование старое и уже давно не выпускается/снято с поддержки или данная серия была выпущена ограниченной партией или тем более как любят, парой-тройкой подрядных заводов, компаний "позаказу корпорации" - то темболее забудьте.
    Ответ написан
    Комментировать
  • Как выполнить функцию через время?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Есть timer запускаете его и подписываетесь на тики соответственно выполняете что то. Это идёт в отдельном потоке и не блокирует юай
    Ответ написан
    Комментировать
  • Установка драйвера древнего принтера Xerox Phaser 3100MFP на виртуалку и расшаривание с виртуалки этого принтера?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Главный трабл в том, что при расшаривании принтера средствами венды, он пытается установить свой драйвер на ту венду, с которой вы пытаетесь печатать.
    Так что выходом может оказаться создание принт-сервера, но не на венде, а на линуксе - венда видит CUPS (сервер печати Linux) как стандартный принтер PostScript - и без проблем печатает на нем.

    Драйверы для древнего линукса имеются.
    Ответ написан
    4 комментария
  • Как отыскать индекс значения в массиве?

    Уж больно мне не нравится вариант от BasiC2k, по тому решил написать свой:
    1. Чуть более компактный в плане памяти и количества кода, если нужно найти индекс один раз. + С проверкой, на отсутствие слова.
    var array = new[] { "Картоновый человек", "Морковка белая", "секретный специалист " };
    
    Console.WriteLine(FindIndexOfWord(array, "картоновый")); // 0
    Console.WriteLine(FindIndexOfWord(array, "Бомбастер")); // -1
    Console.WriteLine(FindIndexOfWord(array, "Специалист")); // 2
    
    // В 1 проход. Если не нравится linq - можно одной кнопкой переписать на циклы и получится почти zero-allocation код.
    static int FindIndexOfWord(string[] array, string word) => 
        array
          .Select((str, i) => (str.Split(' '), i))
          .Where(x => x.Item1.Any(w => w.Equals(word, StringComparison.OrdinalIgnoreCase)))
          .Select(x => x.Item2)
          .Cast<int?>()
          .FirstOrDefault() ?? -1;

    2. Более быстрый, если нужно искать данные много раз и в больших массивах:
    var array = new[] { "Картоновый человек", "Морковка белая", "секретный специалист " };
    
    var index = new WordIndex(array);
    Console.WriteLine(index.Find("картоновый")); //0
    Console.WriteLine(index.Find("чикибамбони")); //-1;
    
    // Поиск элемента в словаре по ключу выполняется за константное время, так что если нужно делать это часто и на больших массивах, то выгоднее 1 раз всё проиндексировать.
    class WordIndex {
       private readonly Dictionary<string, int> _cache;
       
       public WordIndex(IEnumerable<string> seq) {
         _cache = new Dictionary<string, int>();
         var i = 0;
         foreach(var str in seq) {
           foreach(var word in str.Split(' ')) {
             var key = word.ToUpperInvariant();
             if(!_cache.ContainsKey(key)) {
               _cache.Add(key, i);
             }
           }
           i++;
         }
       }
       
       public int Find(string word) =>
         _cache.TryGetValue(word.ToUpperInvariant(), out var value)
           ? value
           : -1;
    }
    Ответ написан
    2 комментария
  • На чём мне написать десктопное приложение?

    MaKvc
    @MaKvc
    Отчаянный веб-разработчик
    Каждый будет советовать то, что ему ближе по духу. Я бы например использовал Qt. Если у вас есть временные рамки и недостаточно знаний и практики, можно взять Lazarus (Free Pascal). Да-да-да!!! Оно еще живое! Имеет кучу возможностей, огромную поддержку платформ, можно довольно быстро решить поставленную задачу.
    Ответ написан
    19 комментариев
  • Встречались ли вам овер-инженеры среди джунов и миддлов? Как надо с такими поступать?

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

    Скорее всего, он очень ЧСВ-шный человек, хотя открыто может и не подавать виду.

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

    Что так, что эдак - в обоих случаях он хорошо делает свою работу. Вот же м**ак!
    По сути - тебе попался слишком хороший сотрудник, а тебе не хватает квалификации чтобы грамотное его задействовать.
    Ответ: либо учись, либо подойди к нему и скажи - так и так - ты слишком хорош, а из меня хреновый ментор/менеджер, тебя придется уволить. Будет жаль если такой человек будет впустую тратить свое время.
    Ответ написан
    1 комментарий
  • Авторские права на изображения, как правильно их получить?

    получить авторские права

    Нарисовать самостоятельно, тк это единственный способ получить авторские права)

    А самый надёжный способ получить исключительные права - заключить Договор об отчуждении исключительного права
    Ответ написан
    7 комментариев