Задать вопрос
  • Как вообще нужно входить в IT сферу?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Стоит ли верить тем самым "Топ языков" или нет?

    Нет.
    Если молоток стоит на 1 месте среди инструментов, то это не значит, что он подходит для починки двигателя автомобиля.
    Стоит ли уходить после 9 класса или нет?
    Какие вообще предметы нужно мне сдавать на ОГЭ, чтобы стать разработчиком игр и войти в IT сферу?

    Если ты собрался стать разработчиком игр, то 11 классов - обязательно. Потом в ВУЗ на высшую математику.
    Разработка игр (я имею ввиду всякие серьезные AAA проекты) это по большей части высшая математика: физ. движок, столкновения, рей-трейсинг, теория вероятностей + надо самому быть немного математиком, чтобы быть программистом
    Колледж это лофа, лучше самообучение?

    ВУЗ + самообучение
    ВУЗ - сложные темы по матану, опыт от преподавателей (практикующих), единомышленники/друзья, практика в компаниях
    Самообучение - никто не становится гением без мотивации и постоянных тренировок
    И что же по поводу книг?

    Читай.
    Единственное что могу сказать - практикуйся больше, чем читай. Без практики книги ты не поймешь.
    Так если я изучу C# и C++, смогу ли я делать десктопные, веб и мобильные проги?


    Короткий ответ - да
    Длинный - разработка приложений это навык и опыт. С опытом сможешь делать одно и то же на любом яп

    Вывод по всему лонгриду: доучивайся до 11 класса, иди в ВУЗ и параллельно со всем этим учи программирование. К моменту поступления уже будешь знать чего ожидать и куда копать. Эта нора глубока
    Ответ написан
    4 комментария
  • Почему консоль выводит это значение?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Вы пытаетесь в качестве имени свойства использовать объект, а JS разрешает там только строки.
    Объект приводится к строке и ваш код превращается в итоге вот в это:
    dwayne['[object Object]'] = 123;
    dwayne['[object Object]'] = 456;
    
    console.log(dwayne['[object Object]']);

    Думаю, тут уже понятно, почему результат именно такой.

    При этом, если бы вы использовали другой синтаксис, то и результат был бы другим:
    dwayne.daniel = 123; // аналог dwayne['daniel']
    dwayne.jason = 456; // аналог dwayne['jason']
    
    console.log(dwayne.daniel);

    Но эти daniel и jason никак не связаны с одноимёнными объектами выше.
    Ответ написан
    1 комментарий
  • Насколько разумно при композиции позволять компоненту управлять родителем?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    С точки зрения ЯП/Рантайма, это приведет к кольцевой зависимости, а это порождает различные баги (например, освобождение памяти), поэтому так лучше не делать.
    С точки зрения проектирования, Car не должен знать о Driver - это Driver должен знать о Car, т.к. он ей управляет. Здесь, по факту, водитель - это контроллер какого-то объекта.
    Ответ написан
    2 комментария
  • Почему на хостинге у многих есть папка public_html и почему она так называется?

    martin74ua
    @martin74ua Куратор тега Linux
    Linux administrator
    Раньше, когда трава была зеленее, интернет меньше и добрее, существовало вот такое в настройках веб сервера:

    # UserDir: The name of the directory that is appended onto a user's home
    # directory if a ~user request is received.
    #
    # The path to the end user account 'public_html' directory must be
    # accessible to the webserver userid. This usually means that ~userid
    # must have permissions of 711, ~userid/public_html must have permissions
    # of 755, and documents contained therein must be world-readable.
    # Otherwise, the client will only receive a "403 Forbidden" message.
    #
    # See also: httpd.apache.org/docs/misc/FAQ.html#forbidden
    #


    Т.е. можно было просто получить логин на сервер, где был запущен веб сервер и получить домашнюю страничку вида:
    example.com/~username

    И вот с тех древних времен так и потянулось... Каталог, в котором размещаются файлы сайта - public_html....
    Ответ написан
    4 комментария
  • VS Code творит лютую дичь при компиляции и отладке?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    Это называется "оптимизируюший компилятор". Он может выкинуть какие-то строчки, часть кода переписать и перетасовать. Соптимизировать по своему усмотрению. Поэтому для отладки используют специальные debug сборки. Установите компилятору флаг -O0, чтобы отлкючить оптимизацию.

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

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Метод querySelectorAll возвращает коллекцию элементов и у неё нет свойства onclick, метода addEventListener и т.п.
    По коллекции нужно итерировать и назначать обработчик события для каждого элемента в отдельности.
    Как это сделать, написано в каждом первом учебнике JavaScript.
    Ответ написан
    Комментировать
  • Как в ubuntu полностью удалить python?

    @asmelnik
    В Linux на python очень много завязано-написано.
    Вам зачем? чем он вам так не угодил?
    Может оказаться, что после полного удаления всех питонов (а их там может оказаться больше одного) система станет не юзабельна.
    Ответ написан
    8 комментариев
  • Совместимость сокета для процессоров Intel Core i?

    Ну давай посмотрим.
    Intel Core i5-1135G7: Socket BGA1449
    Intel Core i7-920: Socket LGA1366

    Начнём с того что твой i5 вообще ноутбучный и он впаивается в материнскую плату.
    Заканчиваем тем, что цифры разные - значит количество контактов разное и даже если вдруг опечатка и у тебя какой-то другой i5 11XX, то всё равно ничего не выйдет.

    Про поддержку на уровне чипсета и биоса промолчу.
    Ответ написан
    Комментировать
  • На сколько популярно и корректно хранить данные в столбце в виде JSON строки?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В конце 20-го века, когда Эдгар Кодд развивал свою реляционную теорию было очень
    модно все данные нормализовывать для хранения их в БД. Это соотвествовало экономии
    ресурсов (диски мерялись килобайтами и мегабайтами) и нормализация хорошо ложилась на
    техно-стек. Все данные должны быть атомарны. И ты - плохой DBA и программист если
    кладешь в ячейку что-то более комплексное чем просто атом.

    В 2000х развитие веб и XML(XHTML/SGML, XSLT, XPath) дало толчок новым видам
    хранения информации в виде markup languages. Появляются технологии семанического веба.
    Мечтатели-теоретики создают RDF, OWL. Базы данных пытаются успеть втянуть в себя новые типы.
    Oracle начинает поддерживать XML+Schema как тип данных в таблице. Браузер начинает
    поддерживаеть трансформацию XML и обогащение его стилями. XML - моден. Его внедряют
    везде где можно и где не нужно. Даже в конфигах Apache Http и в сборщике Maven.

    Параллельно Дуглас Крокфорд работает над Java Scrip Obj Notation и создает лайтовый язык
    для описания объектов и документов. Они - конкурируют с XML но JSON практически побеждает
    в вебе, полностью захватывая веб протоколы (Ajax, WebSockets, e.t.c). И интеракцию с сервером.
    JSON становится более популярный для REST. Многие БД тоже начинают поддерживать JSON.
    Postgres даже делает бинарный JSON и добавляет спец-индексы для быстрого поиска атрибутов.
    Узко-специализированные системы такие как Mongo изначально заточены на храннение JSON
    информации.

    BigData плавно проростает в 2007 (кажется) и где-то в 2014 (или позже) году фреймворк Spark начинает поддерживать DataFrames + Structured Types которые по сути являются зеркалом JSON. Фреймворк
    позволяет грузить в бигдату JSON-lines датасеты, автоматически выводя схему.

    Это - финал. Я считаю что после такой конвергенции в бигдату JSON получил путевку везде где только можно.
    Сегодня вы можете без стыда использовать JSON везде в любых уровнях стека (даже в Redis) если
    у вас хватает памяти и вы уже порешали вопросы бизнес-согласованности данных и умеете эти
    данные инвалидировать и обновлять.

    Если поискать анти-паттерны применения JSON в базах данных - то я-бы предложил такую метрику.
    Если вы очень часто обновляете маленькое поле внутри большого JSON документа и это создает
    сильные I/O нагрузки то скорее всего вам надо перепроектировать вашу БД как-то по другому
    и вынести это поле во вне по отношению к документу
    Ответ написан
    5 комментариев
  • Как голосовые ассистенты "понимают" какую команду им необходимо сделать?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Это задача NLP - Natural Language Processing
    Если вкратце, то работа ведется в несколько этапов:
    1. Преобразование звука в текст
    2. С помощью NLP этот текст обогащается:
    - Форматируется
    - Убирается мусор
    - Выделяются ключевые слова
    3. Готовый текст подается на вход другой нейронке, которая используя свою базу данных (история, контекст) понимает немерение

    Собственно, сама работа ведется в последней части. Как эти нейронки работают - другой вопрос. Просто обучают на своих наборах данных
    Ответ написан
    2 комментария
  • Проверяет ли Роскомнадзор на территории какой страны расположен сайт?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Где расположен сервер - не важно. Важно только где расположена БД, которая эти ПД хранит.
    Это регламентирует статья 18 ФЗ-152
    Ответ написан
    9 комментариев
  • Что такое культура программирования?

    xez
    @xez
    TL Junior Roo
    Почти то же самое, что культура коммуникации.
    - Следование код-стайлу. Адекватный нейминг.
    - Умение писать выразительный, понятный код. Без лапши, без убер-методов на миллион строк, без олимпиадных трюков (если нет такой необходимости); код, в котором можно будет легко разобраться.
    - Любовь к тестам. Понимание почему и зачем тесты писать и почему и зачем не писать.
    - Следование общепринятым инженерным практикам. В Гите не пушить без реквеста в мастер, не ребейсить без необходимости, подписывать комиты, описывать реквесты. В бд предпочитать миграции и не лазить в прод трясущимися, грязными ручонками. Релизы согласовывать, к стейджам относится уважительно. В очереди не срать. Рута избегать.
    - Скилл в декомпозиции и оценке. Умение прогнозировать разработку, умение давать обещания и умение их выполнять.
    - Отсутствие магического мышления. Понимание причино-следственных связей. Знание что такое логи и что такое метрики.
    - и т.д..
    Ответ написан
    Комментировать
  • Какой Rust GUI лучше для прода в 2024?

    vabka
    @vabka Куратор тега Rust
    нынче развелось довольно много

    Не так уж и много.

    Наиболее близкое к проду, кмк - tauri из-за коммьюнити, хорошей документации, и гибкости, тк html+css.

    Если тебе допустимо immediate mode и внешний вид не сильно важен (к примеру какая-то небольшая утилита или ui для отладки в игре), то egui тоже норм.
    Ответ написан
    4 комментария
  • Почему при объединении двух объектов в один они автоматически сортируются?

    IvanU7n
    @IvanU7n
    nothing interesting here
    для обычных объектов никак, Map итерируется в порядке добавления
    Ответ написан
    3 комментария
  • Актуален ли ассемблер на сегодняшний день?

    @rPman
    Ассемблер это больше философия чем язык программирования. Понимать что это такое и как минимум быть готовым хотя бы читать и понимать листинги, сгенерированные компилятором и отладчиком, нужно для решения низкоуровневых проблем, в т.ч. производительности, когда другие способы уже не помогают.

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

    Области - реверсинженеринг, низкоуровневая оптимизация и низкоуровневая отладка unmanaged кода (т.е. к примеру c,c++). Все это можно встретить и в разработке для микроконтроллеров, и в оптимизации кода для gpu и поиске причины, почему простой цикл кратно работает медленнее из-за вот этой 'безобидной строчки'.

    Но повторюсь, без ассемблера живется неплохо.
    Ответ написан
    9 комментариев
  • Актуален ли ассемблер на сегодняшний день?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ассемблер полезен при анализе прошивок на безопасность.
    При изучении того как работает софт без исходного кода (обратный инжинеринг)
    и при решении задач интеграции разных слоёв софта.

    Ассемблер также очень близко стоит к разработке компилляторов. И если у вас нет
    соотвествующих знаний то строить свой компиллятор вы не сможете. Или вам нужно
    будет изучать готовые back-ends, virtual-machines.

    Ассемблер помогает при анализе узких мест в коде. В частности например
    векторизация вычислений ставит в первую очередь вопросы на которые ассемблер
    отвечает а ЯВУ - нет.

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

    Newto
    @Newto
    Ваш вопрос похож на вопрос не от технического специалиста, а от клиента, который хочет понять что будет делать технический специалист по его заказу. Если я прав, то бросьте это дело — а именно, не пытайтесь понять что должен сделать верстальщик, а что программист. Вам тут это тысячу раз объяснят, вы поймёте, а потом поймёте, что всё равно не поняли. Если вы сами этим не занимаетесь, то понимание придёт лишь с опытом общения с исполнителями.
    Ответ написан
    Комментировать
  • Какие есть способы хранения вебсокет соединений?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Сокеты невозможно сериализовать. Придумай другую термиологию или другую идею.

    Возможно ты хотел что-то другое?
    Ответ написан
    2 комментария
  • Какие есть способы хранения вебсокет соединений?

    @Everything_is_bad
    Ты не можешь сериализовать "пул вебсокет соединений". Если он сделан в рамках приложения, то он там будет жить весь лайфтайм этого приложения. А "чтобы соединения были в редисе" это значит что ты пул изначально сделал через pub/sub в redis.
    Другое дело, что ты можешь поднять несколько инстансов (как отдельные процессы, так и отдельные сервера), и сделать либо маршрутизацию по ним, либо возможным обмен между ними, вот и всё масштабирование.
    ЗЫ про "pub/sub в redis." чуток не то написал, это не пул в нем сделан, а про коммуникацию для инстансов.
    Ответ написан
    2 комментария
  • Что я сделал не так?

    Vindicar
    @Vindicar
    RTFM!
    В-нулевых, пиши симптомы ошибки.
    Во-первых, simpleDividers(n)[len(simpleDividers(n))+1]
    Тебе что, палец отрезают за каждую использованную локальную переменную?
    Зачем два раза вычислять simpleDividers(n)? Почему не закинуть результат в переменную?
    Во-вторых, ты пытаешься обратиться к элементу списка с номером, превышающим его длину (потому что +1).
    Т.е. если у числа три делителя, ты бы обратился к номеру 4. Как по-твоему, это получится сделать?
    В-третьих, ты не возвращаешь answer через return при возврате из simpleDividers(), а код ниже написна так, словно ты его возвращаешь.
    Ответ написан
    Комментировать