Задать вопрос
  • MySQL грузит все ядра проца. Глюк?

    @asd111
    Поскольку у вас 24 ядра и 11.000 запросов в секунду query_cache лучше отключить.
    [mysqld]
    query_cache_size = 0
    query_cache_type = 0   # важно ! отключает mutex, которым оперирует query_cache

    Потому что в таких условиях он больше мешает чем помогает. Особенно если у вас мало таблиц и есть изменение таблиц, из которых чаще всего происходит чтение. Всё дело в том что ядра борятся за доступ к кэшу и если есть insert, update, delete в таблицу, для которой есть записи в кэше, то кэш всей этой таблицы обнуляется и снова ядра борятся кто будет обнулять, кто будет читать, писать и вся вот эта многопоточная борьба за мьютекс query_cache грузит CPU. И ещё кучу времени занимает очистка кэша если размер кэша большой(гигабайты).
    Если интересно что происходит с кэшем гляньте SHOW STATUS LIKE "qcache%";
    Там стоит обратить внимание на Qcache_lowmem_prunes. Чем эта переменная меньше тем лучше (в идеале 0 )- эта переменная показывает сколько раз обнулялся кэш для таблиц.
    Ответ написан
    1 комментарий
  • Почему WebGL такой медленный (с пустым шейдером)?

    @asd111
    Windows ограничивает fps до 60 для webgl, да и в целом для opengl и direct3d.
    Я не занимался webgl, но скорее всего можно по старинке узнать сколько миллисекунд уходит на отрисовку одного кадра и так узнать примерный fps по формуле
    1000/количество_миллисекунд_на_отрисовку_одного_кадра

    Посмотрите https://www.shadertoy.com/view/Ms2SD1 если показывает меньше 40 fps в окне, значит проблема в связке ОС—браузер—драйвера видеокарты.
    Если пример показывает 60 fps значит вам нужно найти другие уроки по webgl.
    Ответ написан
    7 комментариев
  • Как работает ИИ в играх?

    @asd111
    Для простого ИИ достаточно switch case или кучу if then else
    https://habrahabr.ru/company/intel/blog/265679/
    Ответ написан
    Комментировать
  • Куда двигаться дальше senior разработчику? Новый язык, технологии, opensource, стартап?

    @asd111
    На мой взгляд вашему карьерному росту мешает то что вы работаете удаленно.
    Удаленно невозможно получить повышение по карьере до руководителя отдела разработки. Для многих senior программистов следующий шаг в карьере - руководитель отдела разработки.
    Если вы действительно хороший специалист и чувствуете в себе силы на что то большее, то я бы советовал искать работу не программистом, а руководителем отдела разработки в офис. Или искать работу в офис программистом с возможностью карьерного роста.
    Если кто то начнет смеяться что это невозможно, значит это невозможно лично для них.,т.к. из тех с кем я учился двое стали руководителями отдела разработки именно в сфере web разработки к 25-27 годам.

    А сколько лет было брату Павла Дурова на момент создания vk.com ? Вроде 23-25.
    Так что если разных нытиков слушать, то только самооценка пострадает, а толку не будет :)
    Павел Дуров не ждал до 30 чтобы cделать шаг в карьере и ты не жди :)
    Ответ написан
  • С чего начать изучение движка Drupal?

    @asd111
    Лучше изучи Symfony https://symfony.com/, поскольку drupal 7 и drupal 8 это две большие разницы и drupal 8 написан на symfony, но если знать symfony то drupal становится не нужен.
    В drupal и любой другой CMS много магии по сравнению с symfony и учить эту магию бессмысленно.
    Cо знанием symfony твоя зарплата может быть значительно выше и работу найти можно будет значительно проще и проекты с плохой архитектурой БД будут встречаться реже.
    Symfony учится быстрее чем drupal.
    Ответ написан
    Комментировать
  • Как постепенно перекочевать из Web в Machine Learning максимально безболезненно?

    @asd111
    Из языков строго python. Он похож чем то на Golang и на javascript так что сложностей в использовании не возникнет. С++ и R сразу нет. Потому что на С++ пишут в основном только сами библиотеки для ML либо что то очень быстрое наподобие анализа видеопотока в автопилотах и даже тогда прототип пишут на python, а R практически не развивается по сравнению с python и имеет более узкую сферу применения чем python.
    В плане обучения можно сделать так:
    1. Прочесть хорошую книгу по теме, потому что нужно знать термины и основные алгоритмы. Ну или хотя бы посмотреть курсы Andrew Ng Machine Learning. Для применения чужих библиотек на простых задачах этого в принципе достаточно.
    2. Глянуть scipy, numpy и jupyter notebook. У scikit есть scikit learn, в котором реализованы некоторые популярные алгоритмы. Например SVM, decision trees и т.д. и есть доки под это дело для начинающих scikit-learn.org/stable
    3. Зарегистрироваться на kaggle.com и найти задачу про титаник. Вот она https://www.kaggle.com/c/titanic Делаете решение как умеете. Можно взять простой gradient boost. Yandex как раз недавно выложил либу под это дело называется cat boost https://tech.yandex.ru/catboost/ Банальное использование этой библиотеки может дать около 80% точности. Вот туториал https://github.com/catboost/catboost/blob/master/c...
    4. Прочитать про keras. Взять готовую модель для смешивания стилей изображений и сделать сайт наподобие ostagram.ru для смешивания изображений. https://github.com/fchollet/keras/blob/master/exam...

    5. Дальше всё зависит от вас, поскольку заработать в области ML непросто :) Когда прочтете хотя бы одну книгу по ML, регистрируйтесь здесь ods.ai - это сообщество русскоговорящих специалистов в данной области.
    Ответ написан
    Комментировать
  • Как ускорить парсинг на Python?

    @asd111
    если используете только многопоточность, то можно запускать по 20-40 потоков или больше если процессор позволяет.
    увеличивайте число потоков пока не нагрузите 100Мбит или процессор
    Ответ написан
    Комментировать
  • Как создавали сайты до Django и вообщем без фреймворков?

    @asd111
    Чтобы идти с нуля нужно брать uwsgi или что нить в этом духе.
    До uwsgi было 2 варианта:
    1. запустить python на 80 порту и обрабатывать все самому;
    2. накалякать на С мини сервер и на запросы с 80 порта запускать python скрипт.
    Сейчас мы пришли к развитому второму варианту в виде uwsgi и тп.
    Минисервер на С нужен для быстрой обработки входящих запросов и чтобы в python отдавать обработанные данные. Т. е. вместо сплошной строки http запроса отдавать распарсенные строки.
    Ответ написан
    Комментировать
  • Какие есть книги или статьи для развития критического мышления?

    @asd111
    Методика воспитательной работы, криминология, генетика.
    В общем и целом наиболее успешны не люди с критическим мышлением, а люди с хорошими генами, выросшие в хороших условиях. Например мускулистый парень с нормальным давлением и не отталкивающей внешностью, родившийся в семье где у обоих родителей высшее образование, скорее всего достигнет большего в жизни чем худой парень с низким давлением и отталкивающей внешностью, родившийся в семье где у обоих родителей среднее образование.
    В целом успех в жизни больше всего зависит от генов и от окружения, в котором вырос человек.
    Ответ написан
    4 комментария
  • С чего начать изучать программирование?

    @asd111
    Если есть высшее образование и опыт работы по специальности экономист-аналитик, то лучше пройти курсы программирование 1С, администрирование 1С и т.п. по расширенной конфигурации 1С и идти в сферу 1С(не битрикс). С вашим опытом в сфере 1с программирования у вас будет самый быстрый карьерный рост.
    Курсы 1С данного вида есть почти во всех регионах России. Данные курсы обычно проводят партнеры 1С и по окончанию курсов выдаётся сертификат.
    Ответ написан
    4 комментария
  • Уникальные функции или большее количество?

    @asd111
    Это не важно. Оба варианта рабочие. Гораздо важнее правильно спроектировать базу данных, поэтому лучше гляньте литературу на тему проектирования БД, когда нужна нормализация, когда нет и как проектировать с учетом возможного разделения одной БД на несколько частей(шардинг). И про репликацию стоит почитать. И еще про индексированный полнотекстовый поиск(elastic search, sphinx) и про кэширование(redis, memcache и т.п.).
    Ответ написан
  • Как прочесть отдельные части текстового файла в C++?

    @asd111
    Самый простой вариант.
    while (std::getline (file,line)){
        //Для VC++ sscanf_s
        sscanf(line.c_str(),"%*s %x %x %*x %*x %*x %*x %*x %*x %x", &stolbec_2,&stolbec_3,&stolbec_10);    
    }
    Ответ написан
    Комментировать
  • Нужно ли использовать PDO или $mysqli->prepare если запросы обрабатываются функцией?

    @asd111
    Trim и strip_tags не удаляют возможность sql injection. Они защищают от XSS, однако не полностью.
    SQL injection — это такая уязвимость, при которой есть возможность делать запросы к базе данных там где это не предпалагалось разработчиком.
    У SQL injection есть много неприятных тонкостей, поэтому лучше использовать prepared statements.
    Можете попробовать ломануть свою функцию с помощью sql map или тому подобной утилиты для автоматического sql injection. Боюсь что результат может быть положительным.
    Гляньте любую статью как защитить php код от sql injection и XSS.
    Ответ написан
    1 комментарий
  • Как отправлять сетевые пакеты в python?

    @asd111
    попробуй сначала отправлять через telnet или netcat без питона, чтобы точно знать какой текст отправлять
    Ответ написан
    Комментировать
  • Как имитировать выполнение PHP по аналогии с codeacademy?

    @asd111
    docker. Берешь образ в котором есть php, настраиваешь и запускаешь.
    Ответ написан
    Комментировать
  • Как отделить логику от взаимодействия с базой данных?

    @asd111
    Существует стандартная архитектура для отделения логики работы программы от работы с данными и внешним видом. Такая архитектура называется MVC( model, view, controller). Model отвечает за работу с бд(получение данных, добавление данных в бд и т.п.), view отвечает за внешний вид(верстка в сайтах, например), controller отвечает за логику работу программы(например получить через model данные из бд и отрисовать во view).
    Для лучшего понимания данной архитектуры можете попробовать любой php framework, например laravel, yii2, symfony2.
    Если вам нужен только удобный слой работы с БД, то достаточно взять Doctrine. Тогда вам не нужно будет изобретать iterator, dbitems и т.п.
    Ответ написан
    3 комментария
  • Решение задач программирование?

    @asd111
    Вам нужно изучить теорию, а именно алгоритмы и структуры данных. Хотя бы по этой книжке www.ozon.ru/context/detail/id/24903185
    Ответ написан
    Комментировать
  • Как оптимизировать программу на с++?

    @asd111
    Попробуй cin и cout вместо scanf и printf. Только не забудь добавить std::ios::sync_with_stdio(false);
    Т.е. так
    #include <iostream>
    
    
    int main()
    {
    std::ios::sync_with_stdio(false);
    int N;
    std::cin >> N;
    N++;
    N *= N;
    std::cout << N;
    
    
    return 0;
    }
    Ответ написан
  • Чат на webSockets, количество пользователей?

    @asd111
    Зависит от сервера и используемых технологий(Java, erlang или что то ещё).
    Так например на java MigratoryData добивались 12 млн одновременных websocket соединений на сервере Dell PowerEdge R610(спеки сервера по ссылке).
    На 12 млн соединений уходило примерно 50 Гбайт в пиках. Т.е. грубо говоря на одно соединение у них ушло примерно 4.4 Кбайт.
    На erlang whatsapp достигал 2 млн tcp соединений на примерно похожем сервере. https://blog.whatsapp.com/196/1-million-is-so-2011?
    Т.е. при правильном коде на erlang на 1000 соединений должно уйти не больше 49 Мбайт(не считая виртуальную машину), а на 5000 соединений должно уйти не больше 245 Мбайт.
    Ответ написан
    Комментировать