• Замена Windows, что посоветуете?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    )как сейчас обстоят дела в сфере лицензирования Windows в компаниях(в т.ч. и госсекторе)?

    Никак не обстоят. Старые контракты с помесячной оплатой действуют, новые приобрести невозможно. Отдел по продаже лицензий M$ в Softline закрыт, все манагеры переквыалифицировались на продажу софта под линух. Могут отрубить в любое время.
    )Могут ли впаять штраф за использование нелицензированной Windows на клиентских арм в текущее время?

    Если Вы из госсектора или КИИ - то вт это -
    Указ #166 от 30.03.2022 - должны были уже вызубить наизусть :) Осталось полтора года. Правоприменительная практика сложится потом.
    Если перевести сотрудников на отечественную ось, что посоветуете

    "Отечественная ось" - понятие условное. В качестве таковой сейчас рассматривается обычно ось, которая входит в реестр минсвязи. Astra, Alt Linux (но не Simply! - он туда не входит!), RED OS, Calculate. Астра и альт - форки дебиана, редос - форк центоса, калька - форк генты. Все, кроме последней - для коммерческого применения - платные.
    В качественной серверной ОС, что посоветуете из отечественного?

    Понятие "серверная ось" - маркетинговое. Его придумала M$, чтобы драть денег. Серверной ось становится тогда, когда начинает быть сервером :)
    Чем можно заменить KerioControl(

    Пробовал ideco. Долго плевался - полное merde. Обычно лабают что-то костыльное - VPN на микротике, прокси на squid
    Ответ написан
    24 комментария
  • Чем обновить Windows 7?

    @apppostol
    1 в 1 ситуация)
    Нагуглил вот такое решение.
    Периодически использую, полет вроде нормальный)
    Ответ написан
    2 комментария
  • Наставник-разработчик отказался от junior-специалиста. Что делать?

    xez
    @xez
    TL Junior Roo
    Как вы считаете, что мне лучше делать в этой ситуации?

    1. Перестать верить в деда мороза и розовых единорогов.
    2. Работать дальше.
    3. Учиться, учиться и еще раз учиться.
    Ответ написан
    Комментировать
  • Qr code на python?

    fenrir1121
    @fenrir1121
    Начни с документации
    Потому что если попросить chatGPT написать код, который "генерит qr и добавляет на него изображение" он сделает все точно по ТЗ, не обращая внимания на то, что изображение перекрыло половину qr.
    Бред на входе -> бред на выходе, все честно.
    Ответ написан
    1 комментарий
  • Как исправить долгое выполнение запросов на большой таблице?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    возможно вся логика неправильная и можно сделать более грамотно.


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

    когда записей в таблице порядка 10 миллионов время выполнения запроса


    ВНЕЗАПНО оказалось, что если использовать микроскоп для забивания гвоздей, то в него становится почему-то плохо видно.

    В простой БД два поля - id и data. У поля data тип JSON. В нем хранятся данные, получаемые из нескольких форм.


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

    Ну вот и продолжайте радоваться дальше.

    Сама по себе дурацкая проблема проверки уникальности длинного текста решается элементарно, добавляется колонка с md5 от содержимого, и поиск делается по ней.
    Но ведь в таблицу эти данные складываются не только чтобы проверять их на уникальность. И собственно какая-то работа с этими данными все равно превратится в боль
    Ответ написан
    3 комментария
  • Где лучше хранить токен для запроса на сторонний ресурс?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    как безопаснее его хранить на фронте

    Слова безопаснее и фронте противоречат друг-другу. В любом случае, если это конфиденциальная инфа, то ее должен обрабатывать сервер, а на фронт отдавать результат своей работы.
    Ответ написан
    7 комментариев
  • Взаимодействие приложений на разных стэках?

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

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

    А потом приходит начальник, и говорит. - эээ, мы вообще планировали распараллеливать эту нейронку, у нас будет от 10 до 10500 инстансов в в облаке. Данные давайте сложим вот в монго-кластер, задачи по обработке сбрасываем в очередь в celery, если очередь вырастает больше чем на N, то кубер автоматически поднимает еще несколько инстансов... и так далее, насколько у него фантазия разгуляется.

    И когда у тебя сервисы крутятся не на одном компе, то всякая производительная экзотика, типа общей памяти - отпадает. Остается сеть, очередь, REST. И ты выбираешь не то что популярно на хабре в этом году, а сравниваешь что вообще умеют те сервисы, которые ты хочешь получить. Возможно делаешь несколько вариантов и сравниваешь по той-же производиительности. Возможно добавляешь какие-то дополнительные прослойки-обертки-посредники конвертирующие запросы, уменьшая при этом производительность, ага. :)

    И как-то так получается, что пока у тебя маленький проект на одном сервере - тебе эти накладные расходы "со всем издержками http протокола" погоды не делают. А когда компов много, то может так выйти, что кроме этого протокола и альтернатив не так уж много.

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

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

    А в майкрософте, основанном 50 лет назад, можно вообще очень странные и неэффективные штуки найти, я уверен.

    В общем, о чем это я - тема сложная, и одного решения на все случаи нет, и быть не может.
    В большинстве случаев оценивать нужно не только накладные расходы, но и масштабируемость, отказоустойчивость, насколько легко это все поддерживать, и цену, конечно-же. И цену за лицензии и зарплаты людей, которые это внедняют и обслуживают.
    Ответ написан
    2 комментария
  • Когда новичку нужно изучать как работает интернет, после изучения базы JS?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Уважаемый пользователь.
    У тебя из 10 вопросов 9 вопросов про то. как стать разработчиком и поменьше учить.
    Прекрати такое поведение.

    Не хочешь учиться - выбери другое направление, кроме ИТ полный мир возможностей.
    Ну или учи свою верстку, работай всю жизнь джуниором, никто тебя за уши в сеньоры не тянет и не заставляет.
    Хочешь - учи, не хочешь - не учи.
    Читай вакансии и требования в вакансиях, зачем тебе советы рандомных людей из интернета, если ты постоянно спрашиваешь почти одно и тоже, хотя тебе уже отвечали.
    Ответ написан
    18 комментариев
  • Как бы упростить непростое сравнение строк?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Фактически у вас тут запросы, "найти строки где много нулей на этих произвольных позициях". Никакого предподсчета я тут не вижу. Можно здорово ускорить, если хранить от строк только битовые последовательности (где '0' заменяется на единичный бит). Далее каждую строку надо про AND-ить побитово с новой и подсчитать количество единичных бит. Это теооетически раз в 64-100 ускорит вычисления, если 64-битный целый тип использовать. Или еще несколько раз сверху, если использовать векторизацию. Но как это в php сделать, я не знаю.

    Даже без 5% ошибок оно не оптимизируется предподсчетами. Тупо найти строки, в которых '0' вот на этих позициях - особо не наоптимизируешь.
    Ответ написан
  • Как бы упростить непростое сравнение строк?

    GavriKos
    @GavriKos
    Ну из непосредственных.
    Можно заранее для каждой пары строк вычислить нужный процент, и как только его превысили - сразу выходить из цикла сравнения посимвольного. Причем даже не процент, а количество совпадений. Это может дать прирост в ряде случаев.

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

    Можно еще подумать насчет оптимизации хранимых строк. Например, заменить ненули на количество пропусков цикла. Т.е. число 0011100 записать как 00300, и уже при итерировании учитывать эту тройку как +=3.

    Это так, что быстро в голову пришло
    Ответ написан
    9 комментариев
  • Как понять что я готов к ООП?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Если спрашиваете, то не готовы.

    В этом вопросе важно понимать, что изучив всего лишь объектный синтаксис, вы столь же готовы писать ООП, сколь готовы профессионально играть в шахматы, изучив как ходят фигуры.
    Главное в ООП - не синтаксис. А взаимодействие объектов. Композиция, наследование, инкапсуляция. Связность, связанность. Это все довольно сложно, и по усилиям, которые требуется затратить на обучение, запредельно отличается от изучения основ процедурного программирования.

    Так что просто запаситесь терпением, набирайтесь опыта в программировании, и постепенно разбирайтесь с ООП - сначала на примере чужих классов и книжек. Мартин, Фаулер - вот это вот всё.
    Ответ написан
    Комментировать
  • Как извлечь элементы многобайтового массива как единое число?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Лучше так делать не надо. Это UB - нарушение всяких strict aliasing, выравниваия и вообще от порядка байт в машине зависит. Лучше руками собрать ULL по частям, вроде
    for (int i = 0; i < 8; ++i) result |= byte_array[i+1] << (8ULL*i);
    или
    for (int i = 0; i < 8; ++i) result |= byte_array[i+1] << (8ULL*(7-i));


    На худой конец, если очень узкое место, надо делать memcpy из массива в &result.
    Ответ написан
    Комментировать
  • Как разделить строку на уровни вложенности в PHP?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    Даже если это можно сделать через регулярки (мне так не кажется), этот код не будет поддерживаемым и читаемым.

    Напишите простой конечный автомат, который будет разбирать строку посимвольно в многоуровневый массив, а потом к элементам этого массива добавляйте свой процент, который будет высчитываться исходя из количества соседей. Для сборки финальной строки понадобится рекурсия, но это преодолимое препятствие.
    Ответ написан
    2 комментария
  • Где брать исходники для приложений и игр?

    vabka
    @vabka
    Токсичный шарпист
    Исходный код ты получишь только если устроишься в компанию, где это приложение разрабатывается и украдёшь код.
    А взламываются игры/приложения при помощи обратного инжиниринга.
    Ответ написан
    Комментировать
  • Программирования учат или применяют?

    Newto
    @Newto
    Добрый день. Я перечитал все ответы выше, а так же комментарии к ним. Решил прокомментировать, с точки зрения своего опыта(я занимаюсь разработкой уже более 15-ти лет). Для удобства чтения я буду писать по пунктам.

    1) Зубрёжка. Каждого из нас, кто ходил в школу, заставляли зубрить таблицу умножения. И, в конце-концов, это помогало в последующем обучении математики, не правда ли? В программировании есть такие же вещи, которые называются "стандарты". Вот эти стандарты и нужно, для начала, зазубрить. А позже и вникнуть, зачем они придуманы.

    2) Методика "объяснение и практика". Вы пишете, что "при таком способе мне приходится одно и тоже глазами несколько раз пробегать чтобы запомнить". Это, с моей точки зрения, в корне не верно. Ибо то, что вам объясняют, не нужно "пробегать глазами" несколько раз, что бы запомнить. Это вообще не нужно запоминать если это не те самые "стандарты"; это нужно осмыслить и понять. После того, как к вам придёт понимание как это работает, зачем и почему это надо -- вы сможете это использовать, осмысленно, в собственном коде.

    3) Платные курсы. Курсы ныне очень разные. Кто-то просто, простите, гребёт бабло на этом всём. А кто-то преподаёт с душой, хорошо и понятно рассказывая. Поэтому платный курс -- это хорошо, но только тогда, простите за тавтологию, когда это хороший курс. Читайте отзывы о курсе, советуйтесь с теми кто его уже прошёл(в идеале) и тогда уже решайте, тот ли этот курс, что даст вам необходимые знания.

    4) ВУЗ. Более 10-ти лет назад, у меня в подчинении, в вебстудии, работал PHP джун. Он доучивался в МГТУ имени Баумана. И он не знал ничего. Совсем. Мне приходилось объяснять ему простейшие вещи, типа что значит иструкция "$a += $b;". Сам же я учился в ВУЗе малоизвестном, на факультете "прикладная информатика в экономике" и наш преподаватель информатики, на первом курсе, на вопрос что значит в коде программы на языке C++ инструкция "с++" ответил, что это "так язык называется". Однако, вскоре ко мне начали ходить сокурсники, с просьбами "а напиши программку". И происходило это потому что я сам загорелся программированием, купил книжки, установил всё что нужно было установить на компьютер и начал "творить волшебство", как это мне тогда виделось, с горящими глазами. Короче говоря не нас учат ВУЗы, а мы учимся в ВУЗах или учимся без них. Тут уж как пойдёт.

    5) Ну и последний, самый важный, с моей точки зрения, пункт. Это Интерес. Если вам интересно программирование, вам нравится разбираться, что-то делать самостоятельно, а не только тогда когда кто-то поставил задачу, то у вас все получится. И как именно это всё учить у вас вопроса, в конце концов, не возникнет. Разбирайтесь, ковыряйте, вникайте и всё будет. Единственное что -- очень желательно, что бы перед вашими глазами были хорошие примеры. Потому что я, в свое время, тоже разбирался, учился и вникал, "гладили по голове", как писали выше в комментариях к одному из ответов, меня уже мои наниматели, потому что я все делал быстро и без ошибок, т.е. работало все так, как было нужно клиентам веб-студии, собеседование в которую я тогда прошел без каких-то проблем. Но вот мой код тогда был, откровенно говоря, тем, что сейчас называется "говнокодом". Потому что некому было мне показать как писать есть хорошо, а как есть плохо.

    Подыдожу -- ключи к быстрейшему развитию в деле разработки это ваш интерес к этому делу, желание им заниматься и примеры хорошего, качественного кода перед глазами. А так же кто-то, кто сможет технически оценить вашу работу и, без агра, с конструктивом, показать и рассказать что вы сделали не так.
    Ответ написан
    25 комментариев
  • Как передать переменную из html в sql запрос python?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Вам надо на время оставить программирование и изучить две гораздо более важные вещи:
    Во-первых, надо научиться структурно мыслить. В частности, разобраться, что ваш вопрос состоит из двух совершенно разных, никак не связанных между собой частей:
    1. как в Flask получить данные формы
    2. как передать переменные в sql запрос

    А во-вторых, научиться пользоваться интернетом. Потому что ответов на оба эти вопроса, в том числе и на данном сайте, просто миллионы.
    На первый (ссылка из ответа на qna.hab.com): https://flask.palletsprojects.com/en/1.1.x/quickst...
    На второй: https://qna.habr.com/q/1002781
    Ответ написан
    Комментировать
  • Как отменить запрос пароля в Ubuntu?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Рекмендую вернуть все взад, юзера этого удалить и никогда больше так не делать.

    До тех пор, пока ты не сможешь без гугла восстановить работу линуха, чтобы там не поломалось - не надо работать юзером с id 0! Рут - только для действий настройки!
    Открой отдельную консоль рута и делай в ней необходимые действия, никогда не работай от рута!

    Если конечно тебя не прикалывает постоянная перестановка системы :)
    Ответ написан
    3 комментария
  • Как сделать перегрузку "=="?

    @dima20155
    you don't choose c++. It chooses you
    Замените строку
    if (planets[i].name == name_d)
    на
    if (planets[i] == name_d)
    Если хотите, чтобы вызывался operator==
    Но у вас там кроме этого ещё очень много странностей.
    Зачем сравниваете строки напрямую? Есть strcmp
    Зачем вообще работаете с сырыми строками, если даже не следите за очисткой памяти?
    Лучше замените все на std::string.
    Ответ написан
    Комментировать
  • Стоит ли использовать phpdoc для описания методов, если я использую тайпхинт и указываю возвращаемые значения?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    IMHO, там где понятно по тайпхинтам, смысла в phpdoc нету. А вот там где непонятно
    /**
     * @return array{uid: string, name: string, isAdmin: bool}
     * @throws AuthenticationException on authentication error
     */
    private static function authenticate(string $login, string $password): array
    {
    }
    Ответ написан
    Комментировать
  • Что стоит заменить в нынешней сборке для обновления железа?

    vabka
    @vabka
    Токсичный шарпист
    Больше SSD, больше оперативки, Новую видеокарту. Проц наоборот в последнюю очередь.
    Ответ написан
    1 комментарий