• С чего начать в 30 лет?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Фундаментальная проблема - в игрострой стоит очередь фанатов с горящими глазами. Людей, которые пишут игры, играют в игры, моддят игры, хакают игры..., начиная с возраста, когда они смогли дотянуться до клавиатуры (как ваш покорный слуга). При этом, у них столько мотивации, что они могут сами поставить себе задачу, сами нагуглить все, что нужно (Спасибо дяде Немнюгину за его учебник. Это все что нужно знать о DOS, чтобы закодить dOOm) и сами все напишут и нарисуют (работая над этим сутками. Не потому что над душей стоит босс с воплями о лишении премии, а потому что им это интересно).

    И вот теперь, Андрей, который уже устал хочет встать в очередь высоко мотивированных конкурентов и попросить себе оффер. Каковы его шансы на успех?

    В играх есть много специализаций программирования - хотите графику, придется учить одно (причем на 2d и 3d это одно будет разное), хотите игровую логику и скриптинг - это номер два, хотите системную часть и бэкенд - это будет третье.

    Для универсального развития, нужно начинать с простых фиговин вроде тетриса, арканоида, бильярда и прочего (в которых однако есть все столпы игростроя - графика + логика + системный движок, можно и добавить сеть, если подумать) и потом наращивать сложность - делать платформер или RTS.
    Ответ написан
    4 комментария
  • Как сделать, чтоб в моем компьютере и телефоне не лазили посторонние?

    vabka
    @vabka
    Токсичный шарпист
    А вы уверены что это не паранойя?


    Например, открываю видео файл, а потом виже упоминание об этом файле на форуме анонимном. На дваче в общем. То есть этот человек знает мою историю действий за компом.

    Какая-то непонятная логическая цепочка.
    Почему из того что на дваче упоминают какое-то видео - из этого следует, что за вами следят?


    Например, еще заходил на спортивный сайт, а там пишут в комментариях то, что мне говорил вообще другой человек в вайбере на телефоне

    То же самое. Может этот ваш знакомый просто черпает информацию из того же источника, что и комментатор на сайте? А может это вообще один человек?


    Также на нем в комментариях человек пишет такую информацию, которая хранится только у меня на компьютере. Фото и тому подобное.

    Уверен что не загружал эти фото в интернет?


    Понял, что дело в роутере. Они через роутер лазят ко мне в комп и в телефона.

    По каким признакам это определил?

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

    @rPman
    режим pm какой в настройках? если не static то количество текущих процессов веб сервера будут зависеть от нагрузки, полагаю которую он считает по завершению каждого запроса, в динамическом режиме сначала выбран 1 процесс, поэтому у тебя отрабатывает только один запрос остальным некем обрабатываться, после чего php-fpm понимает чтонагрузка высокая и поднимает количество потоков до max_children и остальные запросы обрабатываются паралельно
    Ответ написан
    2 комментария
  • Какая Linux без проблем встанет вместе с Windows 10(на один диск)?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Любая, какую осилите.
    Ответ написан
    2 комментария
  • Как удалить программу через Ubuntu Software?

    @rPman
    Универсальный способ удаления программ в linux, установленных с помощью пакетного менеджера
    1. определить как называется пакет (его настоящее название а не то что подменяет отвратительный Центр Приложений)
    можно посмотреть в самом центре приложений снизу в описании будет написано что то типа
    GHex is a hex editor for the GNOME desktop.

    можно забить в поиск synaptic или консольной apt свое название gnome hex editor и в полученном списке ищем что то похожее
    p.s.
    это одна из причин за что Центр приложений ненавидят
    помимо страшных тормозов на топовых машинах
    у них какой то свой список приложений и рядовому пользователю не совсем понятно что есть что, даже описания не совпадают иногда с тем что в пакете, вто что покажет apt show ghex
    Description: GNOME Hex editor for files
    The GHex program can view and edit files in two ways, hex or ascii. Good
    for editing saved game files.
    а вот что центр приложений
    GHex is a hex editor for the GNOME desktop.

    GHex can load raw data from binary files and display them for editing in the traditional hex editor view. The display is split in two columns, with hexadecimal values in one column and the ASCII representation in the other. A useful tool for working with raw data.
    кстати они еще умудрились мультиязыковую поддержку убить, в пакетах есть русскоязычное название а в центре приложений только английское


    либо смотрим свойства ярлыка запуска, там будет команда, что то типа
    ghex %F
    это имя приложения не обязательно будет совпадать с именем пакета, поэтому для гарантии можно поискать среди установленных
    определяем путь к запускаемому приложению если в ярлыке не указан
    # whereis ghex
    ghex: /usr/bin/ghex /usr/share/man/man1/ghex.1.gz
    затем определяем имя пакета по имени файла (не обязательно запускаемого)
    # dpkg -S /usr/bin/ghex
    ghex: /usr/bin/ghex

    тут слева имя пакета, справа имя файла (может быть что один и тот же файл есть в разных пакетах
    p.s. если поиск пакета по файлу не сработал, значит данный пакет не установлен, если не говорить в разрезе задачи удаления а просто определить в каком пакете нужный файл, нужно установить утилиту apt-file, она загрузит базу всех пакетов и позволит искать по ним (так же на сколько я знаю при установке bashcompletion при запуске неизвестного приложения будет выдаваться список пакетов где есть похожие по имени)

    2. узнав имя пакета его можно удалить либо synaptic либо в консоли
    apt remove ghex
    или
    apt purge ghex

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

    если что то идет не так, то нужно смотреть сообщения об ошибках
    p.p.s. есть мощный консольный GUI для пакетного менеджера - aptitude, умеет много проблем разруливать
    Ответ написан
    Комментировать
  • Как удалить программу через Ubuntu Software?

    @Nikita1244
    Anonymous
    Установите пакетный менеджер Synaptic и забудьте навсегда о существовании убогой, глючной программе Ubuntu Software. Была такая же проблема, решил Synaptic'ом.
    Ответ написан
    Комментировать
  • Lorem Ipsum можно использовать в портфолио дизайнера сайтов?

    AlbertName
    @AlbertName
    Senior Javascript Developer
    Lorem это латинский текст. Если сайт для русскоязычной категории можно взять Яндекс Рефераты. Там тоже текст бессмысленный, но на русском языке и выглядит как настоящий. Можно выбрать тему.

    Заголовки можно придумать тематические.
    Ответ написан
    Комментировать
  • Законно ли писать программу из процедур без in/out параметров, которые оперируют глобальными переменными?

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

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

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

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

    Армянское Радио
    Такие программы пишут или в лютой спешке, или при полном отсутствии опыта - а это больше говорит о работодателе, чем о разработчике программы.

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Просто сделайте функцию перевода римского числа в обычное (int32). Ошибка (т.е. исключение) в ходе работы этой функции и будет означать невозможность преобразования. Алгоритм тот же.

    Другими словами, используйте алгоритм перевода римских в арабские. Какие-то новые идеи не нужны, так как алгоритм известен (а если нет, то гугл в помощь). Проблемы нет. Нужно лишь перевести алгоритм на язык программирования. Задача для джуна. К слову, наверняка реализации уже есть для разных ЯП, и нужно лишь правильно загуглить.
    Ответ написан
    1 комментарий
  • Какой VPN выбрать в условиях санкций?

    @Drno
    Арендуешь VPS у любого хостера в РФ, который предоставляет их заграницей.
    Настраиваешь там opvn ну или l2tp
    Все, пользуешься. никто не заблокирует
    Ответ написан
  • В чём ошибка в задаче?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Без ошибок тут только заголовок функции.
    Причём, ошибки как семантические - неверные формулировки условий, так и логические - условия неверны в принципе.
    Ответ написан
    Комментировать
  • Программа для сетевого доступа к файлам (аналог Netlook), как реализовать?

    @rPman
    это netlook? читаем описание:
    Поддержка трех протоколов: SMB, FTP и HTTP.

    SMB - это майкрософтовский протокол доступа к файлам по сети в локальных сетях с машинами с windows, в linux поддержка этого протокола обеспечена с помощью samba и соответствующих библиотек. В терминах этой сети share (шара) - это опубликованный каталог на машине (расшарить) или сервере

    на windows для работы с файлами по сети не требуется дополнительных библиотек, и все функции работы с файлами принимают \\имя_сервера\имя_шары\путь\файл
    на linux придется пользоваться библиотеками либо монтировать шару на какой-либо каталог (smbmount или файловая система cifs)

    Есть универсальная библиотека и утилита curl, поддерживает десятки протоколов, включая указанные выше само собой, можно пользоваться ей.

    Есть одна проблема, ключевая, получение списка машин в сети и списка шар на каждой. В зависимости от языка программирования и ОС будут свои нюансы.
    на c++ с использованием win32 api - используй это, ну и пример с поиском всех шар в сети
    Ответ написан
    Комментировать
  • Typescript и cp1251?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    добавьте iconv в конвеер все будет автоматом

    вот и пакет для вас
    https://www.npmjs.com/package/iconv-lite
    Ответ написан
    6 комментариев
  • Как правильно связать php сайт с mysql?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    На частные вопросы ответили в комментариях, поэтому ответим на вопрос из заголовка.

    Чтобы соединить сайт с mysql, в РНР вообще-то есть два API - mysqli и PDO. Несколько лет назад с mysqli вообще невозможно было нормально работать, но на данный момент они выровнялись, хотя PDO все равно удобнее, по трем причинам
    1. Единый интерфейс при работе с различными СУБД (неактуально, если mysql для нас является синонимом слова база данных)
    2. Набор функций-хелперов для получения данных из БД в различных форматах (при желании легко воспроизводится вручную)
    3. Именованные плейсхолдеры (для некоторых это главная причина использовать PDO)

    Но в целом, как я говорил выше, сейчас можно использовать любое API. Главное - не использовать тот древний говнокод, который приведён в вопросе.

    1. Создаём файл`config.sample.php` куда кладем все настройки приложения, в том числе базы данных
    return [
    	'db' => [
    		'host' => '127.0.0.1',
    		'username' => '',
    		'password' => '',
    		'dbname' => '',
    		'port' => 3306,
    		'charset' => 'utf8mb4',
    	],
    ];

    2. В файле, который включается во все скрипты сайта, добавляем код
    if (!file_exists('config.php'))
    {
    	throw new \Exception('Create config.php based on config.sample.php');
    }
    $config = require 'config.php';

    3. И дальше в этом же файле пишем собственно нормальный код подключения к БД
    либо к mysqli
    // включаем режим информирования об ошибках
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    // подключаемся к серверу
    $dbc = $config['db'];
    $db = new \mysqli($dbc['host'], $dbc['username'], $dbc['password'], $dbc['dbname'], $dbc['port']);
    // не забываем установить кодировку, чтобы не было ошибок с кракозябрами
    $db->set_charset($dbc['charset']);

    либо к PDO
    $options = [
        \PDO::ATTR_ERRMODE            => \PDO::ERRMODE_EXCEPTION,
        \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC,
        \PDO::ATTR_EMULATE_PREPARES   => false,
    ];
    $dbc = $config['db'];
    $dsn = "mysql:host=$dbc[host];dbname=$dbc[dbname];charset=$dbc[charset];port=$dbc[port]";
    $pdo = new \PDO($dsn, $dbc['username'], $dbc['password'], $options);

    После того как будет освоена работа с системой контроля версий (а по-хорошему это надо было сделать уже давно) добавляем config.php в файл .gitignore
    Таким образом на каждом хосте, где исполняется этот код, будет собственный файл с настройками, создаваемый по образцу из config.sample.php

    Да, и Очень Важное Дополнение:
    почему нельзя сделать 1 соединение для сайта и не тратить каждый раз время на коннект к БД?

    Никогда не следует переживать по поводу воображаемых проблем. Вот только когда создание коннекта каждый раз станет реальной проблемой, только тогда и начинать переживать по этому поводу и искать пути решения (спойлер: никогда).
    Ответ написан
    14 комментариев
  • Сколько времени уделять теории/практике?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Вопрос звучит дико, как "Сколько времени уделять чтению рецептов, а сколько готовке?" Не надо отделять одно от другого и планировать почасовой график, учатся не так. Читаете главу учебника столько времени, сколько нужно для понимания материала. Потом экспериментируете с примереами столько времени, сколько нужно чтобы разобраться. Возвращаетесь к перечитыванию главы столько раз, сколько нужно для выяснения непонятного и решения проблем. Когда всё дочитаете и прорешаете, пишите пет-проект столько, сколько это займёт времени, возвращаясь к учебнику или обращаясь к доментации не по расписанию, а по мере надобности.
    Ответ написан
    Комментировать
  • Как сделать автоматический дамп mysql базы на MariaDB с виртуальной машины из под Linux на хостовую Windows?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Делать дамп базы виндовым mysqldump.exe или любым другим бекапером, подключаясь к порту mysql сервера.
    Ответ написан
    1 комментарий
  • Изменить объем раздела /home linux?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Могу ли я на время удалить swap, либо создать его из свободного места, чтобы добавить свободное место в /home?

    легко. ты это можешь сделать даже из запущенного линукса, отключи его (swapoff /dev/nvme1n1p8), а дальше -- делай с разделом что хочешь.
    Ответ написан
    1 комментарий
  • Как изолировать клиентов друг от друга в wireguard?

    karabanov
    @karabanov
    Системный администратор
    Создай ещё один интерфейс с отдельной подсетью и закрой доступ из нее к рабочим ресурсам.
    Ответ написан
    5 комментариев
  • Список технологий необходимых для backend php developer?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Технологию надо знать ровно одну: называется google search или "базовые навыки пользования интернетом".
    К примеру, перед тем как задать вопрос на форуме (и мычать невнятное "ну я искал, марьванна, нинашол"), надо сначала воспользоваться такой секретной технологией, как поиск по конкретно этому формум, site:qna.habr.com php middle
    И обнаружить примерно 100500 готовых ответов на свой вопрос.
    Ответ написан
    4 комментария