• Как сделать алгоритм фокусировки?

    sergiks
    @sergiks Куратор тега Алгоритмы
    ♬♬
    В фотокамерах автофокус обращает внимание на несколько контрольных точек кадра: центр, по третям и т.д. Алгоритмы видимо пробуют разные варианты фокусировки и останавливаются на том, что даёт максимум контрольных точек в фокусе.

    Само определение в фокусе / размыто: наличие высокочастотных деталей в исследуемой области. В размытом изображении мелких контрастных переходов нет, все детали крупнее какого-то порога.

    Алгоритм – применить High-pass фильтр к картинке, и смотреть, есть ли что, отличное от серого, и как его много.
    пример

    Выбрал две области на картинке (маленькие зеленые квадраты) – к которым применен high-pass фильтр с радиусом 2px в Photoshop. Результаты рядом и увеличены, в желтых квадратах:
    65b132a196b6c677954361.jpeg
    Ответ написан
    Комментировать
  • Какой стек выбрать если я хочу разработать интернет-сервис по аналогии с Авито?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Бизнес успех таких сетей как VK, Facebook слабо связан со стеком. Они все стартовали с PHP но просто
    очень умно кешировали контент и децентрализовывали. Поэтому в первую очередь важен скилл
    специалистов которые будут видеть узкие места в системе и сумеют быстро их пофиксить.

    Популярность.

    Я-бы не брал в расчет вообще. Сервисы yahoo в свое время создавались на Lisp, а это был вообще
    нигде не популярный язык.
    Ответ написан
    3 комментария
  • Как думаете, очки Blue Locker могут помочь восстановить нормальный режим сна?

    GavriKos
    @GavriKos
    1. Сдать анализы (ОАК, гормоналка)
    2. Сходить к врачу (терапевт) чтобы почитал их и подкорректировал
    3. Можно сходить к психотерапевту - они корректируют сон
    4. Соблюдать информационную гигиену - за 2 часа до желаемого сна - никаких новостей, игр, ютубов и прочего будоражащего мозг. Только балет и керамика. Тогда и очки не нужны.
    Ответ написан
    6 комментариев
  • Что делать если разработали и выложили в Сеть программу с таким же названием, как у меня?

    BasiC2k
    @BasiC2k
    .NET developer (open to job offers)
    Нужно различать авторское право и право на товарный знак (название).
    Авторское право - верно, появляется у Вас по факту создания авторского произведения (программы).
    А вот с правом на товарный знак всё сложнее. Если кратко - кто запатентовал использование товарного знака на определённой территории, тот и прав. Даже если Вы начали использовать название раньше, это не поможет Вам запретить его использование другими лицами (но возможно спасёт от финансовых претензий). Любой суд Вам скажет, что ничего Вам не мешало выполнить регистрацию товарного знака раньше.
    Вам нужно опасаться возможных претензий со стороны этих "нехороших людей". Для этого нужно найти реестр товарных знаков на территории РФ (он в открытом доступе) и проверить - успел ли кто-либо оформить права на это название. Если никто не оформил - у Вас есть все шансы сделать это первым.
    Если право уже оформлено третьей стороной - проверьте, в каких категориях сервисов или товаров правообладатель может использовать это название. Возможно там нет "программ для ЭВМ".
    Если все варианты решения исчерпаны - можно сменить название программы или сменить юрисдикцию её авторов. Например автор программы может жить в другой стране, следовательно там будет свой реестр .
    Ответ написан
    1 комментарий
  • По какой причине Windows не позволяет приложениям использовать весь объём оперативной памяти?

    anthtml
    @anthtml
    Системный администратор программист радиолюбитель
    Полную конфигурацию железа мы должны угадать?
    Бывали случаи когда чипсет/процессор поддерживал только 8гб, и при привышении начинались подобные фокусы, а также варианты когда производитель материнки не гарантировал совместимость с конкретной планкой оперативы.
    Ответ написан
    3 комментария
  • Как из полученного массива получить данные?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Ответ написан
    Комментировать
  • Как из полученного массива получить данные?

    @alexalexes
    Если вам понадобилось лезть внутрь JSON средствами SQL, значит в этом месте у вас архитектурный промах.
    Нужно провести нормализацию данных этого поля, раскидав значения этих свойств еще как минимум в 2 таблички при помощи среды, которая может обращаться к Oracle и парсить JSON (если у вас не 12c Oracle).
    Ответ написан
    Комментировать
  • Как создать свой сервис Аналитики\статистики?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    https://grafana.com/
    Есть и другие, но это по описанию подходит лучше всего.
    А данные надо хранить в БД, а не в экселе
    Ответ написан
    Комментировать
  • Как узнать температуру процессора сервера?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    В 2012 R2 нет ThermalZone в WMI, оно появилось в 2016 вместе с поддержкой ACPI 5.0.
    По идее Libre/OpenHardwareMonitor только вас может спасти.
    Ответ написан
    Комментировать
  • Как генерировать случайное число типа double с двумя символами после запятой?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Можно генерить случайное целое число с запасом в 2 разряда. А потом кастить в double и делить на 100.

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

    @alexalexes
    Частоты памяти упираются с одной стороны - в возможности процессора, с другой стороны в возможности памяти.
    На DDR3 было два поколения процессоров - Sandy Bridge (2-e поколение Intel), которая поддерживает 2 частоты памяти 800 и 1066. И Ivy Bridge (3-e поколение Intel), которая поддерживает 4 частоты памяти 800, 1066, 1333 и 1600.
    Чтобы увеличить скорость оперативки, нужно поставить память с макс. частотой, которая доступна для данного поколения процессора.
    При этом, вы не отличите на глаз без бенчмарков работу 800 или 1066 на Sandy Bridge, и 1333 или 1600 на Ivy Bridge. Но зато заметна разница, на тех же объемах памяти у разных поколений процессоров скажем, на 1066 и 1333. При этом, на Ivy Bridge вы вряд ли встретите в стоковом состоянии установленную оперативку ниже 1333.
    В общем, на старых ноутах установка оперативки с повышенной частотой не дает существенного прироста производительности, а смена процессора на другое поколение не всегда доступа (или недоступна вовсе) - где можно было бы это наблюдать.
    Дополнено:
    Да-да, у вас Arrandale, поставьте его перед Sandy Bridge, и вывод вышесказанного не поменяется. Играет роль больше поколение процессора, а не частота памяти.
    Ответ написан
    Комментировать
  • Какую видеокарту выбрать для проброса vGPU на десяток виртуальных машин (ESXi)?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Хе-хе. Адекватных по стоимости не будет. Только неадекватные. Одно время были карты NVidia K1 и K2, сейчас их наверное все еще можно купить, где-то так за 30 тыс.

    JFYI: Удалил теги RDP и Виртуализация - совершенно не к месту.
    Ответ написан
    Комментировать
  • Страницы сайта не попадают в индекс Google несколько месяцев. В чём причина?

    vpetrov
    @vpetrov
    частный SEO-специалист, textarget.ru
    Несколько исходных данных:
    • Поисковые системы - это по факту рекламные, коммерческие системы. Им неинтересно уже тратить ресурсы на сбор информации без какой-то выгоды для себя, а затраты там суровые.
    • Для оценки контента они используют вспомогательные сигналы - пользовательские, ссылочные и т.п.

    В общем, чтобы страница попала не просто в топ, а в выдачу вообще - надо эти самые сигналы обеспечить. Любыми средствами: покупка рекламы, привлечение трафика из соцсетей, поведенческие боты (да, это вроде как не одобряется), ссылки с серьёзных доноров.
    Технически - можно попробовать инструментарий типа Google Indexing API. С одной учетки можно загонять в индекс 200 страниц в сутки, процесс пары минут. У Яндекса есть аналог, но там обычно проблем технического плана нету пока.
    Основная проблема: если Гугл так и не увидит ценности страниц для индекса - выбросит, поэтому принудительная индексация не отменяет работы над созданием этих самых сигналов ценности страницы. Ну, и разумеется, надо дорабатывать контент, если есть проблемы. Чисто по заветам Елены Першиной ("делайте свой сайт лучше").
    Ответ написан
    1 комментарий
  • Какой процессор лучше: i7-640m или i5-580m?

    pindschik
    @pindschik
    ФЫВА ОЛДЖ
    Оба хуже.

    Этим изделиям более 12 лет.
    spoiler
    6565ab4a71554293018587.jpeg

    Фактически на сколько быстро работают мобильные процессоры - больше зависит от решения производителя ноутбука (теплового пакета и системы охлаждения). Разница может достигать и 2-х раз. При чем не в пользу более "топового".
    Это просто рулетка...
    А что на счет шины - боюсь там просто неверные данные. Процессоры сделаны из одного кристалла и выпиленные из одной вафли. Они полностью технологически одинаковы, оба мобильные. Только небольшая маркетинговая разница.

    А возраст данных процессоров - это уже за гранью добра и зла и он обоснованно может требоваться только в случае, когда требуется именно древнее железо для обеспечения нормального функционирования другого древнего решения (например - для узкоспециализированного ПО).
    Если же вы покупаете "новый" ноутбук на ОЗОН и там такие варианты - откажитесь от затеи. Новые изделия не бывают на старых и БУ компонентах.
    Ответ написан
    Комментировать
  • Какой дистрибутив Linux поставить на слабый ноутбук для начинающего пользователя?

    axifive
    @axifive
    Software Engineer
    32-битные вам не нужны. Этот процессор 64-битный, можно любой x86-64 дистрибутив ставить.
    Из легковесных: lubuntu, xubuntu
    Ответ написан
    Комментировать
  • Есть ли возможность получить читаемый текст?

    yakovlev_13
    @yakovlev_13
    Шаманство, экзорцизм и некромантия.
    pdf24 toolbox - вот эта прога сносно перекодировала. Что-то придётся поправить конечно, но результат есть

    spoiler
    655c6d52f0208059533717.jpeg
    Ответ написан
    Комментировать
  • Хочу реализовать проект калькулятора подписок в валюте, с конвертацией валют из одной в другую; есть подводный камень. Как его решить?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    1) https://www.cbr.ru/currency_base/
    2) учись , можешь ORM в помощь (это в Питоне), но можно и на сырую (RAW Data)
    поля там должны быть Decimal или Finance - не Float ни в коему случае, а лучше вообще INT и потом менять разряд
    3) опа! да ты и сам волокешь , я за Decimal
    4) ты не представляешь глубину и сложность вопроса, поверь ... бухгалтера засовывают язык в жопу при попытке конкретики. Ну что тебе скажу - один из бух метдов по GAAP / МФСО - тупо курс на 31.12. года и учет остатков в нем...
    как сделаешь так сделаешь - считай на конец периода, или на максимуме. Короче , повторю, проблема непроста:
    можешь считать каждый день, но по итогу сумма у тебя не будет равная сумме в другой с каким-то коэффициентом. )))
    Если же это не касается бухучета - то есть строгости - можно счиатть как угодно )))
    5) запросы к базе фигня в сравнении с методолгией, повторюсь - единой нет, спроси целевого буха и делай как он скажет

    короче - начни считать каждый день - как ЦБРФ ставит курс на СЕГОДНЯ основываясь на ВЧЕРА, а там как пойдет...
    Ответ написан
    Комментировать
  • Совместимость NVME и Z77?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Совместимости и поддержки нет и не будет. Завести можно только если в биос добавить ручками драйвер. Вот тут тема с модифицированным биосом и инструкцией по прошивке (классический способ добавки поддержки NVME там, где её нет - где-то работает, где-то нет, где-то проще, где-то сложнее): https://forums.overclockers.ru/viewtopic.php?f=1&t...
    Будьте готовы, что если что-то пойдет не так, то придется покупать новую материнскую плату или нести окирпичившуюся плату спецам для ремонта. Имеет смысл заниматься этим только ради искусства и веселья. В производительности разница не настолько большая будет - проще и быстрее будет просто два любых саташных диска в рейд поставить.
    Вот еще тема на СО: https://ru.stackoverflow.com/questions/1144143
    Плата не
    Ответ написан
    Комментировать
  • Как хранится c++ struct в памяти и как определить размер вручную?

    @Mercury13
    Программист на «си с крестами» и не только
    Выяснилось, что на компьютерах с разрядностью 16 и более бит минимальной единицей памяти стоит делать всё равно 8-битный байт: это сильно упрощает работу с узкими типами данных, как в памяти, так и на вводе-выводе. Например, канал RGB8 или кодовая единица UTF-8 — байт. Считаем для простоты, что разрядность 16, порядок Intel.

    Чтобы загрузить 2-байтовое число в 2-байтовый регистр, есть ДВА варианта.
    1. ОЗУ, кэш и другие устройства хранения передают нижний байт данных на нижний байт шины, верхний, соответственно, на верхний.
    2. Байты, чьи номера кратны двум, соединяются только с нижним байтом шины, не кратные — только с верхним. А уж процессор как-то разбирает, что делать, если двухбайтовое число сидит по нечётному адресу и считывается за два обращения к шине.

    Более простым оказался второй подход: он упрощает схемотехнику всех сидящих на шине, кроме процессора. В частности, дешифраторы становятся на 1 бит меньше, и упрощается топология. А процессор — в нём и так микропрограммное управление, и в нём и так до хрена соединений, и если обратился к байту (!) по адресу условно 4, вероятно, скоро потребуется адрес 5 и его один хрен стоит закэшировать.

    Но это значит, что доступ к 2-байтовым числам по нечётному адресу (1-2, 3-4, 5-6) будет медленнее, чем по чётному (0-1, 2-3, 4-5). И потому по умолчанию двухбайтовые числа располагаются именно по ЧЁТНЫМ адресам, и структура { char a; short b; char c; } будет иметь длину 6 байт (0 — a, 1 — выравнивание, 2,3 — b, 4 — c, 5 — выравнивание), а структура { short b; char a; char c; } — всего 4 байта (всё упаковано плотно).

    Но это приводит к двум вещам.
    1. Если нужно сочетать скорость и компактность, надо чётко выравнивать структуры данных. Обычно подобная ручная оптимизация делается для мелких частых структур.
    2. Если кусок памяти подготавливается в памяти, а потом отправляется на устройство, надо принудительно отключить выравнивание. Если в предыдущем примере формат файла так устроен, что байт 0 — a, байты 1 и 2 — b, байт 3 — c, то можно написать
    #include <iostream>
    
    struct Q1 { char a; short b; char c; };
    struct __attribute__ ((packed)) Q2 { char a; short b; char c; };
    
    int main()
    {
        std::cout << sizeof(Q1) << ' ' << sizeof(Q2) << '\n';   // 6 4
    }

    Q1 (или более оптимизированную short-char-char) использовать для хранения в памяти, а Q2 — для записи в файл, раз уж у него такой формат.

    Да, почему компилятор сам этого не делает? Это нарушает совместимость компиляторов. В Си++ до 20 включительно он имел право кое-что переставить, если в struct/class были поля с разными правами доступа (но никто по факту не делал), в 23+ больше не имеет права.

    Ну а алгоритм прост.
    1. Длина := 0, выравнивание := 1
    2. Для каждого поля: позиция := длина, округлённая по выравниванию[i]; длина := позиция+длина[i]; выравнивание := max{выравнивание; выравнивание[i]}
    3. Общая длина := длина, округлённая по общему выравниванию

    Существует очень простой способ уменьшить выравнивание: отсортировать поля по убыванию выравнивания.

    Для того же Q1:
    0. Длина = 0, выравнивание = 1
    1. char a: длина округляется до 0, затем 1, выравнивание = 1
    2. short b: длина округляется до 2, затем 4, выравнивание = 2
    3. char c: длина округляется до 4, затем 5, выравнивание = 2
    4. Общая длина округляется до 6. Ну а выравнивание = 2
    Ответ написан
    Комментировать
  • Какие есть самые распространённые причины появления багов?

    vabka
    @vabka
    Токсичный шарпист
    "самой распространённой причины" не существует. Она будет сильно зависеть от конкретного продукта и процессов разработки.

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

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

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

    4. Регресс. Разработчик нормально реализовал спецификацию, но тестировщик проверил только новую фичу и не стал проверять регресс - в итоге новая фича работает, а какая-то старая - сломалась, из-за того что её задели при разработке.

    5. Несоответствие среды выполнения на этапе разработки, тестирования и в продакшене.
    Например разрабатывали и тестировали на мощном железе, а при работе на слабом - всё плохо. Или сетевые задержки приводят к ошибкам, или на целевой машине стоит старая версия ОС, браузера, каких-то ещё зависимостей и поведение совсем меняется.

    6. Во время разработки у заказчика поменялись планы. Старая спецификация больше не отвечает новым требованиям. Нужны доработки.

    Чтобы минимизировать вышеперечисленное, нужно:
    1. Плотное общение между разработчиком, аналитиком, и QA.
    2. QA должен начинать тестирование ещё на этапе спецификации
    3. Разработчик должен сообщать аналитику о всех случаях, когда он не может что-то реализовать или о каких-то пробелах.
    4. Разработчик должен сообщать QA о возможном регрессе в других фичах.
    5. Должны быть автотесты, чтобы уменьшить нагрузку на QA и чтобы минимизировать шанс на регресс
    6. Тестирование должно обязательно производиться на том оборудовании и в том окружении, на котором система будет потом работать.
    7. Чем чаще релизы - тем лучше.
    Ответ написан
    1 комментарий