• Как создать нейронную сеть на php или JS?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Думаю перед тем как задавать подобные вопросы вам следовало бы хотя бы ознакомиться с тем что из себя представляет нейронная сеть или хотя бы один нейрон.

    из популярных либ для JS - https://github.com/harthur/brain
    Для PHP не в курсе ибо не было необходимости, проще вооружиться биндингом FANN.

    В любом случае рекомендую вам пока не пользоваться библиотеками и попробовать с нуля реализовать пару нейронок. Может хоть поймете насколько это просто и сложно одновременно.

    Ну и да, для чего-то серьезного стоит обучение хотя бы писать на c++ или D/Go/Rust хотя бы, можно так время обучения сократить с 10 часов до 2-х или с месяца до недели... сами понимаете. А уже использовать результаты можно и в JS.
    Ответ написан
    4 комментария
  • Как поменять порядок нескольких существующих рабочих столов в windows 10 pro?

    @kulaeff
    Front-end developer
    Ответ написан
    Комментировать
  • На чем в 2017м писать десктопное приложение под винду?

    Ni55aN
    @Ni55aN
    Под винду на старте будет проще .NET (например WPF). Естественно, Visual Studio в качестве IDE, и язык C#
    Ответ написан
    14 комментариев
  • Какое оптимальное количество запросов в БД в yii2?

    qonand
    @qonand
    Software Engineer
    Какое оптимальное количество запросов в БД в yii2?

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

    Насколько я понимаю к таблицам в которых хранятся RBAC-данные, в таком случае необходимо включить их кэширование
    Ответ написан
    8 комментариев
  • Какое оптимальное количество запросов в БД в yii2?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Какое оптимальное количество запросов в БД в yii2?
    46
    Вы спросите: "почему 46"? А я отвечу: "а почему бы и нет". Раз уж Вы попросили дать Вам ни чем не обусловленную цифру - пусть это будет 46.

    В общей сложности на один action приходится 40 запросов к БД. Скажите, нормально ли это?

    Нормально, ведь это меньше, чем 46. А вот можно ли сократить? Это уже другой вопрос, на который могут ответить экстрасенсы, я без кода не могу.

    Не много ли для проекта небольшого уровня?

    Теперь сложнее. Надо понять что такое "проекта небольшого уровня". Ну раз мы уж начали говорить о вещах не классифицированных - давайте договоримся. Для проекта небольшого уровня - 42. Для среднего - 46, а для большого - 67. Но это только при условии, что
    ничего такого глобального из БД не тянется
    а если тянется, то вводим "коэффициент глобального тягания" (КГТ 0.3) . Итого 46*0.3 = 13,8 запроса в БД

    PS: ограничение по кол-ву запросов для проекта - это глупость. Ваша задача - оптимизировать проект. В процессе оптимизации следует обратить внимание и на количество запросов в БД. И тут мы должны смотреть "а можем ли мы сделать их оптимальнее, сделать их количество меньшим и т.д.", а не подгон под какую-то цифру. Ведь задача - "быстро работает", а не "создает меньше 46 запросов"
    Соори за стеб, не хочу обидеть, просто хотел так обозначить. Сам когда-то задавался таким же вопросом.
    Ответ написан
    2 комментария
  • Как ускорить работу Apache: отдачу статических файлов и выполнение PHP?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Изучил весь httpd.conf, перекопал кучу гайдов по highload (они старые и с сомнительными советами типа "отключить лишние модули"
    Один из первых модулей, который стоит отключить у Apache'а, для скорости - это поддержку файлов .htaccess, сама эта поддержка производительности не добавляет, а наличие этих файлов - уж и подавно.

    1) Это у всех VPS так называемый "мощный" процессор медленнее, чем на каком-то жалком хостинге, пусть и с VIP-тарифом?
    Нет, возможно это у Вас, персонально, какой-то дрянной VPS-хостер, или того хуже, тариф аки "OpenVZ, мы не перепродаём проданные ресурсы... ну разве что раз 10, но больше не перепродаём"

    2) Поможет ли в такой ситуации FastCGI?
    FastCGI - это режим работы PHP, напрямую, на производительность в значительной степени он не влияет, более того, сама логика работы FCGI (если сравнивать Apache-FCGI и Apache-mod_php) будет медленнее, по тому как для взаимодействия FastCGI будет использоваться сокет ("обычный" или unix-сокет), что подразумевает сетевое взаимодействие, вместо непосредственной работы интерпретатора PHP "внутри" сервера. Думаю, Вам поможет несколько другое (постараюсь описать ниже).

    3) Почему не популярны фишки типа eAccelerator (кеширование AST и т.п.)?
    Понятия не имею, почему они не популярны и откуда у Вас такая статистика... Но, возможно, дело в том, что eAccelerator морально и физически устарел, и если верить например, вот такой банальной статье (нет, я не работаю с такой "шедевральной" CMS как "Битрикс", просто это первое упоминание про eAccelerator, которое пришло мне в голову) - с версиями PHP выше 5.3 не работает.

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

    4) Что еще может помочь?
    Ну так, сходу, по памяти (варианты могут быть не связаны между собой):
    1. Отказ от поддержки .htaccess в Apache или хотя бы сокращение их количества
    2. Установка Nginx в качестве фронтального сервера, для отдачи статики
    3. Полный отказ от Apache вообще и переход на Nginx+FCGI (только не подумайте, я очень люблю Apache за его гибкость в настройке и широкие возможности, другой вопрос, что мало кому эта гибкость фактически нужна и мало кто способен его грамотно, качественно и полноценно настроить... Nginx в этом плане будет куда попроще). Почему FCGI? По тому, что другой приемлемый способ взаимодействия Nginx'а с PHP мне не известен. Настройка FCGI-пула - обязательна.
    4. OpCache - с версии 5.5 встроено "искаропки", к включению и настройке - настоятельно рекомендуется. Я не знаю, как обстоят дела с CMS и используете ли Вы CMS на сайте, но из моей практики, скорость работы PHP-фреймворков возрастает в среднем 8-20 раз.
    5. HHVM, как альтернатива
    6. Проверка:
    а) Того, что дело действительно в PHP. В частности, стоит собрать все логи сервера, например, сколько длились запросы, в БД, их количество и так далее.
    б) Проверка скорости работы дисковой подсистемы... Не буду "тыкать пальцем", но одно время я арендовал довольно большое кол-во VPS'ок у одного популярного хостера, и в какой-то момент, я заметил, что средняя скорость работы дисковой подсистемы - 1.4Кбайт/сек., при этом "отказы" (аки "невозможно записать блок") были примерно в 50% случаев... это продлилось не очень долго, но и через несколько месяцев, у этого же хостера, тарифы с "обычным HDD", почему-то обладали более быстрой дисковой подсистемой, нежели тарифы с "быстрыми SSD"... можно сделать выводы...
    в) Проверить реальную скорость работы процессора, не редко она отличается от завяленной достаточно сильно.

    P.S. Если Вы сформулируете вопрос(ы) более точно - я смогу дать более точные рекомендации, если конечно они Вам нужны :)

    P.P.S. Есть вариант решения проблемы вообще "в лоб", самый наверное сложный и пожалуй самый производительный в ряде случаев. Это Varnish + тонкая настройка оного, позволяет выдавать большую часть страниц из кэша (оперативной памяти) за наносекунды, иногда позволяет обслуживать очень много тысяч запросов в минуту, при этом, это не просто кэширование кода или что-то подобное... это кэширование целиком страниц и/или ответов сервера. Среди прочего - позволяет "не трогать бэкенд вообще", т.е. при запросе страницы, может не быть ни обращений к БД, ни выполнения того же PHP (или любого другого) кода, на стороне сервера. Требует довольно тонкой настройки, не очень подходит для сайтов "на CMS", для сайтов на фреймворках - требует изначально корректного подхода к разработке и продумывания того, что и как будет/должно кэшироваться. При некорректном подходе - наиболее вероятный результат - работать будет, но не так быстро как хотелось бы, а часть сайта вообще может перестать нормально функционировать. Есть так же другие решения, но с учётом довольно общих формулировок вопроса - говорить о них довольно сложно.

    Ах, да, забыл важную деталь... Почему "хостинги" используют Apache и не откажутся от него (совсем)? В большей степени по тому, что Apache позволяет делегировать часть настроек пользователю через .htaccess. При этом, для статики не редко стоит всё тот же Nginx, который, как Вы понимаете, подобным образом делегировать часть настроек пользователю не позволяет, в виду чего для этих задач не подходит и не "буксует" на этом (в отличии от Apache'а). В т.ч. и по этому, мы на 99% отказались от "хостингов" (по причине наличие Apache'а, и невозможности от него избавиться или самостоятельно настроить, и как следствие "тормозов" которые приходят вместе с подобным подходом).
    Ответ написан
    5 комментариев
  • Стало сложно найти проекты на iOS?

    1. Я хватку потерял, в плане позиционирования себя как разработчика.

    не исключено
    2. В связи с сезонностью. Пора отпусков и т.п.

    возможно
    3. Тренд React Native. Стоит отметить, что работа на гибридных приложениях есть, включая React Native (хоть и не совсем гибрид)

    не думаю, не настолько это и тренд (ПМСМ, естессна)
    4. Обилие новоиспеченных iOS разработчиков, которые обвалили рейты.

    ну, может, но скорее

    Просто эти все эпплосовские аппки на хрен никому не нужны. Так было и раньше, но на хайпе это выглядело наоборот (айбыдлопипл хавал всё, что ему скармливали). Внезапно, хайп улёгся за отсутствием смысла.
    Ответ написан
    4 комментария
  • Как отказаться от разработки на локальном сервере?

    Antonchik
    @Antonchik
    Программирую на HTML
    Git использовать. Для бд миграции, для конфигов .gitignore
    Ответ написан
    Комментировать
  • Нормализовать регистр в строках, да на php?

    profesor08
    @profesor08 Куратор тега PHP
    Словарь имен, фамилий, названий для слов, которые должны быть с большой буквы всегда. С аббревиатурами все сложнее, так как их овердофига, но тут можно схитрить, причем очень конкретно. Нужен какой-то набор аббревиатур, если проверяемого слова там нет, то стоит проверить по обычному словарю, если оно есть, то это обыкновенное слово, а если нет, то предположить что это аббревиатура. Т.е все неизвестные комбинации букв считать аббревиатурами.
    Ответ написан
    Комментировать
  • Как ускорить обработку данных JSON в JS?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Как можно ускорить этот процесс?

    Шаг 1: провести профилирование, найти тормозящий этап. Это может быть получение данных из БД, бэкенд, фронтенд, сеть - что угодно.
    Шаг 2: понять, почему конкретно этот этап тормозит.
    Шаг 3: внести изменения.
    Шаг 4: наслаждаться результатом.

    Оптимизация кода методом пристального взгляда (а это единственный доступный посетителям Тостера способ) - дело неэффективное.
    Ответ написан
    2 комментария
  • Скрипт, выполняемый на JavaScript за секунду, на PHP за 30 секунд проходит только 20%. В чём причина?

    Adamos
    @Adamos
    А вам никто еще руки не оторвал за такой код? Привыкли, что за вас компиляторы думают?
    Например, проверять $a != $b внутри десяти вложенных циклов - это [к сожалению, цензурных слов не нашлось].
    Кстати, РНР проверяет условия по порядку, и ставить первым самое тяжелое - это [ну, скажем, саботаж...].
    Ответ написан
    4 комментария
  • Как обеспечивается согласованность данных между процессами в кластере Node.js?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    В кластерном Node.js вместо разделяемой памяти используется подход разделяемого хранилища данных.
    Обычно эту роль выполняет Redis-кластер поскольку в нем есть механизмы уведомлений (подписок) и возможность асинхронного оповещения узлов кластера.
    Такие вещи, как сессии и данные специфичные для клиента (кэши пользователя) хранятся вне Node.Js процесса, например в том же Redis. Это увеличивает инфраструктурные издержки, но позволяет производить бесшовные рестарты и пережить внезапные остановки машин в кластере.

    Стандартной практикой является применение балансировщика, например того же nginx, включенного как reverse-proxy. Если вам не очень хочется разбираться с сессиями, используйте ip_hash, это снимет головную боль.

    По поводу конкретных вопросов.

    традиционные подходы при разработке ПО для кластера Node.js

    Традиционный кластер представляет собой множество машин, на который запущено множество процессов через https://nodejs.org/api/cluster.html
    Разумеется вместо разделямой памяти вы получаете разделямый сервис. Например с кэшем работаете как с базой и т.д. Почитайте о том, как работает горизонтальное масштабирование.

    Что я должен учитывать разрабатывая бекэнд-приложение для кластера Node.js?

    Учитывайте факт того, что это новая для вас область знаний. Вдобавок очень популярная и очень перегретая мнениями. Рассматривайте Node.js как некий клей между сервисами и другими решениями. Например ресайз картинок лучше делать на C++, поэтому расходы на создание процесса ресайзинга меньше расходов на ресайз реализованный на Node.js.

    Как новый секретный код должен попасть ко всем остальным процессам?

    Обычно такие проблемы решаются через провайдер конфигурации, например сервер конфигураций. Любая попытка изменить конфигурацию вызывает изменения во всем кластере. В модуле Cluster это реализуется через механизм уведомлений. В большом кластере такие вещи реализуются через подписки в Redis.

    100 позиций этот процесс отдал пользователю в качестве первой страницы ответа, остальные позиции он закешировал

    Смотрите про балансировщик и ip_hash. Но в целом подход довольно плохой. Запрашивайте только нужные 100 товаров. Если вытаскивание данных из базы является проблемой, меняйте базу или ее структуру. Масштабируйте хранилище. В крайнем случае используйте разделяемый кэш (Redis, memcached).

    Кроме того, являются ли мои примеры корректными, практикуется ли описанное кеширование данных в бекэнд-приложениях на Node.js?

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

    Stalker_RED
    @Stalker_RED
    Либо вы используете какую-то заглушку вместо бекенда либо работаете в связке с человеком умеющим бек, либо становитесь немножко fullstack (что бы это ни значило), либо говорите "мне это не по силам".
    Ответ написан
    6 комментариев
  • Расскажите подробно про php://input, как пользоваться?

    php://input возвращает все необработанные данные после HTTP-заголовков запроса, независимо от типа контента.

    Данные, могут быть:
    • application/x-www-form-urlencoded ( application/x-www-form-urlencoded тип application/x-www-form-urlencoded для простых форм- application/x-www-form-urlencoded ) или
    • multipart/form-data-encoded (в основном multipart/form-data-encoded для загрузки файлов)

    Это связано с тем, что это единственные типы контента, которые должны поддерживаться браузерами. Поэтому сервер и PHP традиционно не ожидают получения какого-либо другого типа контента (что не означает, что они не могли бы).

    Если вы просто отправляете POST-ом обычную HTML-форму, запрос выглядит примерно так:
    POST /page.php HTTP/1.1
    key1=value1&key2=value2&key3=value3

    Но если вы много работаете с Ajax, может понадобиться обмен более сложными данными с типами (строка, int, bool) и структурами (массивы, объекты), поэтому в большинстве случаев JSON является лучшим выбором. Но запрос с JSON-полезной нагрузкой выглядел бы примерно так:
    POST /page.php HTTP/1.1
    {"key1":"value1","key2":"value2","key3":"value3"}

    Теперь содержимое будет application/json (или, по крайней мере, ни один из вышеперечисленных), так что $_POST -wrapper из PHP не знает, как с этим справиться (пока).

    Данные всё еще там, вы просто не можете получить к нему доступ через $_POST. Поэтому вам нужно получить его с "сыром" виде помощью file_get_contents('php://input') (если он не закодирован в формате multipart/form-data).

    Это также способ доступа к XML-данным или любому другому нестандартному типу контента.
    Ответ написан
    Комментировать
  • Как привести Битрикс до нормального состояния?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Эм... давайте я отвечу (если не от всех, то хотя бы от лица себя и своих коллег) "битриксойдов" - никак.

    Поясню свой ответ: дело не в битриксе, а в подходе. Именно этого и не понимают многие разработчики, которые после Yii, Zend, Symfony и т.д. видят Bitrix.

    Во-первых, у продукта (я имею ввиду Битрикс24, и именно продукт, а не CMF/CMS) есть определенная парадигма: User First & Business insight.

    User First - это означает, что для реализации базовых вещей, например бизнес-процессы, пользователь с правами администратора должен иметь возможность сделать 80% работы без привлечения разработчика (читать - без привлечения, а я не без опыта/знаний/навыков/образования). Реальность такова, что Вы не сможете за столь короткий срок, сделать ВСЕ ТО ЖЕ САМОЕ, НО ЛУЧШЕ (я не сомневаюсь в Ваших способностях, но одному человеку за измеримые 1-5 лет это практически нереально).

    Business Insight - это означает, что в продукте уже заложена логика, а "кривизна результата" зачастую складывается из того, что Бизнес диктует свои условия (Продукт не для всех, но каждый пытается его использовать как хочет и как умеет). Как пример: купив зубную щетку Вы можете чистить ей зубы И/ИЛИ мыть машину, но согласитесь машину мыть неудобнее, но "бизнес решает не тратиться и на имеющуюся щетку нацепить тряпку побольше и ручку подлиннее".

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

    В-третьих, а давно ли Вы видели битрикс? Сейчас он движется в нужную сторону и, я Вас уверяю, если вы подключите к нему Yii/Silex и т.п., ничего кроме бОльшего "говнокода" Вы не получите. Я не говорю о том, что Вы плохой программист, но что будет после Вас? Вот уволитесь Вы, а это все достанется очередному бедолаге и ему с этим жить.
    Ответ написан
    4 комментария
  • Какой опыт Git нужен веб-разработчику для работы в команде в компании?

    Желательно понимать, что делают и зачем нужны следующие команды:
    git status
    git checkout
    git reset
    git fetch
    git pull
    git push
    git diff
    git add
    git commit
    git stash
    Ответ написан
    7 комментариев
  • Что изучать верстальщику и в каком порядке?

    webirus
    @webirus
    Тыжверстальщик! Наверстай мне упущенное...
    Пишу по порядку, как реально нужно.

    Поиск по Тостеру, так как схожие вопросы задаются минимум 2-3 раза в неделю.

    адаптива не знаю, он у нас и не требуется

    Печально уже за такую компанию, которая сейчас пренебрегает адаптивной версткой.
    Хотя, быть может (моя последняя надежда) у вас есть мобильная версия сайта.

    про бэм и препроцессоры что-то где-то читал, но тоже не знаю

    Да не используйте, и не учите. Просто теряете время и ресурсы на написание код (или говнокода, не знаю).
    Просто без препроцессоров всё делается долго и нудно, и тяжело структурировать, копаясь в одном файле.
    А так, можете не учить, если хочется заморачиваться %)

    js так же, на уровне скопировал-вставил

    Выскажу свое личное мнение.
    Верстальщик без JS, это не верстальщик, это контент-менеджер со знанием HTML.
    Любой сайт от лендинга до портала требует JS, правда часто делают хрень, напичканную плагинами, даже если требуется 2-3 строки кода. Не нужно подключать плагины там, где оно не нужно и обратная сторона вопроса, не нужно писать свой код там, где можно использовать готовый плагин (не изобретать велосипед).
    Но если есть время, желание и умение, можно писать и свои плагины, для тренировки.

    Верстаем display:table/table-cell

    Тут буду краток. $^*(&%#(*$%($(%&*(*$#&*%($#%)($)^_*()#&@%$ - вырезано цензурой.

    не в одну компанию с такими навыками меня явно не возьмут

    Что мешает заниматься самообразованием?
    Благо живем в 21 веке, в интернете есть любые учебники, тесты, курсы, да чего только нет.
    На крайний случай, можно напросить в подмастерья к какому-нибудь верстальщику (знаю, часто требуются).
    Да, работать придется в основном "за еду", но будет опытный наставник, который скажет - так норм, а так не надо.

    надо изучать с бустрапа сразу

    Не зная принципов адаптивной верстки, использовать Бутстрап не получится.
    Так что в ьлюбом случае, понимание адаптивной верстки должно быть, при том "чистое", чтобы можно было разобраться не только в Бутстрапе. Фреймворков для адаптивной верстки еще очень и очень много.

    советы от товарищей по цеху, как развивались они и откуда брали инфу

    90% опыта приходит вместе с практикой.
    Можно прочитать 100 учебников и не понять, что это за свойство, а можно один раз применить и сразу понять.
    Нужно просто много и усердно практиковаться. Качать любые шаблоны PSD, верстать, верстать, верстать.
    Сначала простые, трехколоночные сайты. Потом посложнее и закончить каким-нибудь паралаксом.
    Но повторюсь, для обучения минимум плагинов.

    есть ли смысл работать в маленьком городе

    Не знаю, что за город у вас. Скажу про свой. Население около 900тыс.
    В городе порядка 5 топовых студий по созданию сайтов, не считая 2-3 десятков мелких контор.
    Также есть топовые IT компании, но про них говорить не буду, с таким багажом тебя туда пока не возьмут.
    Так что в любом городе есть смысл работать.
    Да и фриланс, удаленную работу никто не отменял.

    вопрос только Москва или оставаться в городе

    Что в Москве, медом намазано? Или думаешь, так вакансий больше?
    Нифига не больше, потому как и желающих поработать там не меньше чем вакансий.

    В общем, резюмируя всё вышесказанное - учись, развивайся.

    Удачи.

    ЗЫ: Недавно на Хабре опубликовали ссылку.
    webmasters.teamdev.com
    Чесслово, проникся. Отличный мануал.
    Ответ написан
    17 комментариев
  • Как обезопасить сайт работающий с API?

    Ограничить на сервере количество запросов в час/минуту, особо рьяным отправлять капчу. Все. Вы никогда не узнаете, исполняется на клиенте запрос от живого человека или от бота. csrf, jwt - это не та песня, они созданы, чтобы защитить клиента от постороннего вмешательства, но если клиент сам решит написать бота, вы никак не сможете этому препятствовать.
    Ответ написан
    Комментировать