Задать вопрос
  • Где можно прочитать про всю суть ЯПов под капотом?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    5d66774c767f2234030678.png
    Ответ написан
    Комментировать
  • Где можно прочитать про всю суть ЯПов под капотом?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Литералы это сокращения названия объектов

    Впервые такое слышу. Возможно фраза вырвана из контекста.

    Вот литералы. Текстовый
    "Hello"
    Вещественное число
    3.14

    Что такое ключевые слвоа

    Это зарезервированные слова которые являются частью синтаксиса языка.
    Например.
    class, interface, override, trait, extends, case ....

    Из них нельзя делать имена переменных и их нельзя использовать
    в спорных контекстах когда неизвестно что имеется в виду (ключевое слово
    или то что ты хотел объявить).

    Говорить о них обобщенно нет смысла потому что в каждом языке - свои такие слова.
    Бери конкретный язык и по нему смотри.

    Отличие выражений от инструкциий


    По выражению я тебя адресую вот в эту статью https://ru.wikipedia.org/wiki/%D0%92%D1%8B%D1%80%D...

    Здесь очень хорошо описано. Насчет инструкции - непонятно. Опять-же ты получаеться полез
    в терминологический спор без контекста. Так не бывает. Вот чтоб ты понял. Если собрались
    математики и начинают что-то обсуждать то самое первое что они делают - это договариваются.
    Какие у нас будут символы что обозначать. Комплексные числа? Кольца? Алгебры и т.п.
    Потому что инструкция в ассемблере - это одно а в другом - вообще другое. И если я попробую
    обсуждать инструкии без понимания где я нахожусь - я буду смешно выглять.

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

    ООП - это софистика и схоластика современного айти и не дай бох вам попасть на собеседование
    с такой подготовкой как щас. Поэтому если вы просто хотите проникнуться с духом ООП - изучите его
    реализацию в одном языке. Например в C#. На примерах с кошкой собакой и с волком. И этого будет достаточно.
    Больше для бизнес-программирования от ООП не требуется.
    Ответ написан
  • Что делать, если при запуске программы в командную строку ничего не вывелось?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Поправьте если ошибаюсь, но вы ведь сами указываете, что password - содержит null сразу же делаете бесконечный цикл, условием выполняется пока password равняется 123.

    String password = "null";
    loop1:
    for (; password.equals("123");)
    Ответ написан
    1 комментарий
  • Что делать, если при запуске программы в командную строку ничего не вывелось?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    for (; password.equals("123");) { // always false
    Ответ написан
    Комментировать
  • Какие есть хорошие курсы по С#(платные/бесплатные)?

    @daMpoff
    Если интересно посмотреть видео,то вот хороший канал https://www.youtube.com/@SimpleCodeIT
    Ответ написан
    Комментировать
  • Как определить, где запущен код python - в PyCharm или в Google Colab?

    Maksim_64
    @Maksim_64
    ML Engineer
    from tqdm.auto import tqdm
    И все для терминала будет обычное, а для notebook'a специальное.
    Ответ написан
    2 комментария
  • (Вопрос без однозначного ответа) Почему в window socket 2 используется так много различных дефайнов и псевдонимов?

    @Wexter
    Какой смысл задавать вопросы к причинам существования древнего легаси? Написал когда-то студент за миску риса, с тех пор и кочует для обратной совместимости
    Ответ написан
    Комментировать
  • Какие есть примеры построения большой организационной структуры?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Почти в 100℅ случаев такие данные хранятся в LDAP.
    Ответ написан
    1 комментарий
  • Из каких соображений знак @ и. резолвятся в нечто другое?

    ValdikSS
    @ValdikSS
    Что это и для чего?
    Для анти-спама, чтобы адреса емейл не собирали автоматически в базы.
    Ответ написан
    Комментировать
  • Можно ли припаять флешку к флешке?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Сама идея объединения USB устройств в хабы - заложена в протокол. Благодаря ему и существуют всякие портативные разветвители для ноутбуков. Тоесть 1 слот и там ... до хрена устройств подключить. Это
    как TCP сеть в миниатюре. Вообще после всяких COM/LPT слотов USB шина была прорывом. Размножение
    устройств например на SCSI кабеле было реализовано за счет электрических свойств самого кабеля.
    USB после этого конечно верх удобства.

    По поводу припаять. Скорее всего не получиться. Дело в то что флешка это не кусок памяти. Это
    вполне себе умное и завершенное устройство со своим контроллером и со своими зашитыми
    от производителя возможностями. И это умное устройство паять тоже нужно по умному.

    А так можно попробовать просто вставить 2 флешки в хаб и как-то объединить их в один логический
    volume средствами ОС Linux например. Правда надежность такого волума будет падать.
    Если какое-то устроство отъезжает от случайного шатания слота - то весь диск будет развален.
    Ответ написан
    Комментировать
  • Можно ли припаять флешку к флешке?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    Нет, но можно по цене банки пива купить флешку на 64 ГБ
    Ответ написан
    Комментировать
  • Нужен ли отдельный linux user для сайта?

    neuotq
    @neuotq
    Прокрастинация
    Практик очень много, тут лучше идти в сторону лучших практик от devops, это большая тема, но полезная.

    Но если упрощенно и по старинке и быстро.
    1. Доступ на сервер только по ssh ключам, никаких паролей.
    2. Отдельный момент по sudo
    2.1 Для пользователя админа в целом оставляем запрос пароля на sudo
    2.2 Для сервисных аккаунтов(условные www-data и компашка,которые для служб, сервисов, автоматика того же ларавел) делаем sudo без пароля для избранных команд/программ. Таким образом автоматизация будет работать сама, независимо и стабильно.
    3. Бонус пункт. Подумать о переходе на докер контейнеры на сервере, многие штуки упрощаются. Можно начать с интеграции того же laradock как самый быстрый и лёгкий старт.
    PS почему rsync? Почему хотя бы не скрипты которые фетчат гит репо. rsync для некоторых сценариев бекапа еще понятно, но для деплоя кода ну не знаю. Более прозрачная схема через гит и билд на сервере. В крайнем случае в тот же гит можно и сбилженные релизы добавлять и их разворачивать на сервере.
    Ответ написан
  • Kubernetes, десятки configmap и как это готовить?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тут читается не техническая а организационная проблема.

    Не очень понятно но попробую дать совет.

    Вот ты говоришь что требуется в 10 конфигах сделать изменения.
    Какие? Они - взаимосвязаны? - Это должен быть 1 коммит в git.
    Эти все изменения должны быть просмотрены глазами хотя-бы несколькими людьми.
    Если цена изменения дорого стоит (инфраструктура) то по любому должна
    быть бригада девопсов. Они - страхуют друг друга от случайной ошибки.
    Если ты будешь брать на себя падения датацентров - то очень скоро
    станешь пациентом кардиолога. Бери коллег для подстраховки.

    Константы и зависимости - надо объявлять отдельно. Чтоб если меняется hostname
    или имя свойства - то это должно быть ровно одно изменение. Как поддержать
    константы в конфигах - я щас не помню но была куча всяких штук... толи Puppet
    толи Ansible вобщем поищи сам. Я думаю таких много конфигураторов.

    Когда несколько environments то на проекте создается просто несколько фолдеров типа
    /dev
    /qa
    /uat

    и в каждом фолдере лежит полностью сконфигурированная и оттестированная
    копия всех конфигов. Переключение между env тоже должны происходит
    изменением ровно 1 свойства.

    Если внутри конфигов есть некая базовая конфигурация которая очень похожа
    (прототип) то сделайте аналог COC (Convention Over Configuration). Пускай
    прототип будет всегда. А наследники dev, qa, uat будут просто изменять
    дельту. Пароль поменялся - в конфиге-наследнике - лежит ровно 1 строчка с паролем.
    Других строк - не надо. Потому что они наследуются от прототипа.

    Как технически реализовать COC - я не скажу. Это надо обсуждать. Я это делал
    на Java проектах но это как-бы идея "на подумать". На проектах у меня были
    *.properis файлы и эту конвенцию было реализовать несложно. С ЯМЛ ами я не делал.
    Ну думаю что это возможно. Почему нет?
    Ответ написан
    2 комментария
  • Как работают драйвера на Android?

    @rPman
    Бинарные блобы.

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

    Все существующие кастомные прошивки берут существующие образы android, иногда с соседних совместимых устройств, и тусуют содержимое, в некоторых комбинациях это работает.

    Нормальный linux в подавляющем большинстве случаев установить не получится. В лучшем случае, если заработает, не будет доступа ни к радиомодулю (включая wifi и модем) ни к тачскрину ни даже к видеоускорителю (максимум в режиме framebufer)

    p.s. В некоторых случаях, если у какого-то любопытного хакера, оказывается интересное ему устройство, он может отреверсить работу оборудования и запилить свой драйвер, если повезет, этот код попадает в мейнстрим linux и тогда его поддержкой займется уже не только сообщество (энтузиасты) но и финансово заинтересованные компании.
    Ответ написан
    2 комментария
  • "прикладной код Java" - это что?

    @Dementor
    программист, архитектор, аналитик
    заменить на “прикладной код движка Java” будет корректно?

    Нет. "Движок Java" - это JVM, а "прикладной код" тут это просто код (логика), который решает прикладную задачу.
    Ответ написан
    Комментировать
  • Почему выражение (-1ll) в ассемблерном коде MSVC равно ff ff ff ff?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Уловка в системе процессорных комманд: 48 c7 45 08 - позволяет загрузить в 64-битную ячейку памяти 32 битное число, автоматически расширяя его до 64 бит.

    Смотрите список кодов x64:
    0x48 - означает, что следующая комманда работает с 64-битами.
    0xC7 - mov immediate (данные в команде)
    Дальше идут флаги, указывающие как интерпретировать аргументы, что куда адресовывать и т.д.

    Но важно, что команда C7 работает с r/m16/32/64 данными, а аргумент у нее может быть только imm16/32 (третий столбец). Т.е. она принимает или 2 или 4 байта, в зависимости от обвеса, а записывать может до 64 бит. Сравните это с коммандой 0xB8 в той же таблице, она уже может принимать 64 бита.

    Если аргумент меньше ячейки памяти, то он расширяется (sign extended) до нужного размера (бит знака копируется влево до упора). Это позволяет записать числено равное значение в более битную ячейку. ведь 32-битное число 0xFFFFFFFF - это -1 в дополнительном бинарном коде, а 0xFFFFFFFFFFFFFFFF - это тоже -1 в дополнительном 64-битном коде.

    Компилятор использует вот эту команду, а не 0xB8, потому что сама команда короче, а исполняется так же быстро. Меньше кода, больше всего помещается в кеш и все работает быстрее, да и exe-шник меньше получается.
    Ответ написан
    2 комментария
  • Как заменить мышь, и установить чувствительность как было раньше?

    Griboks
    @Griboks
    Никак. Любой способ потребует от вас подбора.

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

    С другой стороны, вы можете подстроить чувствительность так, чтобы делать ровно один разворот одним движением в каком-нибудь cs.

    Но в любом случае вам потребуется тем или иным способом подбирать параметры, потому что кроме dpi и чувствительности влияют ещё размеры, обхват, трение. А ещё есть отдельная чувствительность при малых движениях (когда вы целитесь по пткселям).
    Ответ написан
    Комментировать
  • Как использовать другой "ситаксис" при написании Телеграмм-бота?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Как минимум - выносите логику бота в отдельные функции/классы, которые будут вызываться в функции-обработчике команды. Примерно как-то так (пример очень условный, чисто для описания концепции):

    from utils import some_func
    
    ... 
    
    @bot.message_handler(func=lambda message: True)
    def echo_all(message):
        some_func()
    Ответ написан
  • Почему утверждается, что int32_t имеет ширину точно 32 бита, если он является всего лишь псевдонимом int, который может быть больше 32 бит??

    @MarkusD Куратор тега C++
    все время мелю чепуху :)
    В рассуждениях есть ошибка.

    Да, стандарт утверждает что тип int может иметь размер не меньше 16 бит.
    Таблица имеет название "Minimum width", т.е. минимальный размер. Минимальный - это значит что int может иметь размер в 16 бит. А может иметь и 64 бита.

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

    Ошибка в рассуждениях заключается в том, что ты проводишь нить только от int32_t к int и дальше к стандарту. В то время как стандарт определяет и требования к типу int32_t тоже.
    Тип int32_t всегда и для любой модели памяти выбирается таким образом чтобы гарантировать размер в 32 бита.

    То что где-то int32_t является псевдонимом int - это не более чем временное совпадение.
    Ответ написан
    1 комментарий
  • Почему утверждается, что int32_t имеет ширину точно 32 бита, если он является всего лишь псевдонимом int, который может быть больше 32 бит??

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Смотрите документацию. Там действительно утверждается, что int32_t должен иметь размер ровно 32 бита ("exactly").

    Где вы взяли, что int32_t - это псевдоним int?
    Подозреваю, что там, где вы это видели, куча #ifdef и проверок архитектуры.
    Возмножно, на вашей системе, где int итак имеет 32 бита так оно и есть. При компиляции на другую архитектуру внезапно может оказаться, что int32_t - нифига не псевдоним к int.
    Ответ написан
    3 комментария