Задать вопрос
  • Как настроить бесшовный wifi?

    LESHIY_ODESSA
    @LESHIY_ODESSA
    Ну если влоб, то настраивается легко. Задается одинаковое название SSID.
    Вопрос только в том, что ничего хорошего не получится. Нужен контролер. Мобильники, ноуты и так далее слишком тупы, чтобы понять, что нужно переключится на другую точку.

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

    Вместо ASUS возьмите Mikrotik. В сними вы хоть сможете что то придумать и что настроить. В ASUS вы ничего путного не настроите. Потому что там всего две настройки.

    И вообще я вам призываю немного погуглить тему. Думаю ваши планы разобьются об реальность.

    Самый бюджетный вариант это https://www.ubnt.com и routerboard.com/RBcAP2n, но как я написал выше без контролера (специального роутера) это всё детский сад.
    Ответ написан
  • Что быстрее 10 запросов к файлам или 10 к базе?

    27cm
    @27cm
    TODO: Написать статус
    Что быстрее: спросить на тостере или проверить самому?
    Ответ написан
    1 комментарий
  • Какое оборудование выбрать для серверной в доме: D-Link, TP-Link Cisco, HP или др?

    @YuriyIvanov
    цена/качество лучше микротика не найти.
    Ответ написан
    Комментировать
  • Попросили проверить код, на что смотреть нужно?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Смотря зачем)). Я когда делаю Code Review критерии следующие:

    * Безопасность:
    - Каждый аргумент метода простого типа должен проверяться на тип в случае его проксирования и на граничные значения в случае обработки. Чуть что не так - бросается исключение. Если метод с кучкой аргументов на 80% состоит из поверки из аргументов - это вполне норм))
    - Никаких trigger_error, только исключения.
    - Исключения ДОЛЖНЫ быть человеко-понятны, всякие "Something went wrong" можно отдавать пользователю, но в лог должно попасть исключение со стектрейсом и человеко-понятным описанием, что же там пошло не так.
    - Каждый аргумент (объект) метода должен быть с тайпхинтингом на этот его класс, или интерфейс.
    - За eval как правило шлю на **й.
    - @ допускается только в безвыходных ситуациях, например проверка json_last_error.
    - Перед работой с БД - обязательная проверка данных.
    - Никаких == и !=. Со swtich - единственное исключение, по ситуации.
    - Если метод возвращает не только bool, а еще что-то - жесткая проверка с ===, или !== обязательна.
    - Никаких условий с присваиваниями внутри. while($row = ...) - тоже идет лесом.
    - Магические геттеры/сеттеры разрешаются только в безвыходных ситуациях, в остальном - запрещены.
    - Конкатенации в sql - только в безвыходных ситуациях.
    - Параметры в sql - ТОЛЬКО через плейсхолдеры.
    - Никаких глобальных переменных.
    - Даты в виде строки разрешаются только в шаблонах и в БД, в пхп коде сразу преобразуется в \DateTimeImmutable (в безвыходных ситуациях разрешено \DateTime)
    - Конечно зависит от проекта, но как приавло должно быть всего две точки входа: index.php для web и console(или как-то по другому назваться) - для консоли.

    * Кодстайл PSR-2 + PSR-5 как минимум, + еще куча более жестких требований (для начала все то что в PSR помечено как SHOULD - становится MUST)
    - В PhpStorm ни одна строчка не должна подсвечиваться (исключением является typo ошибки, например словарик не знает какой-то из аббревиатур, принятых в вашем проекте). При этом разрешается использовать /** @noinspection *** */ для безвыходных ситуаций.
    - Если кто-то говорит, что пишет в другом редакторе и у него не подсвечивается, на эти отговорки кладется ВОТ ТАКЕЕЕНЫЙ мужской половой **й и отправляется на доработку)).

    * Организация кода:
    - Никаких глобальных функций.
    - Классы без неймспейса разрешаются только в исключительно безвыходных ситуациях.

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

    * Принципы MVC:
    - Никаких обработок пользовательского ввода в моделях, от слова совсем.
    - Никаких ***ть запросов в БД из шаблонов.
    - Никаких верстки/js/css/sql-ин в контроллерах.
    - В моделях НИКАКОЙ МАГИИ, только приватные свойства + геттеры с сеттерами.
    - В моделях разрешено использовать метод save(при наличии такого разумеется) только в исключительных ситуациях. Во всех остальных - либо insert, либо update.

    * Принципы SOLD:
    - Никаких божественных объектов умеющих во все.
    - Если метод для внутреннего пользования - private, никаких public.
    - Статические методы разрешаются только в случае безвыходности.

    * Принцип DRY разрешено нарушать в случаях:
    - Явного разделения обязанностей
    - В тестах (каждый тест должен быть независимым, на сколько это возможно)

    * Работа с БД:
    - Запрос в цикле должен быть РЕАЛЬНО обоснован.
    - За ORDER BY RAND() - шлю на***й.
    - Поиск не по ключам (конечно если таблица НЕ на 5 строк) запрещен.
    - Поиск без LIMIT (опять же если таблица НЕ на 5 строк) запрещен.
    - SELECT * - запрещен.
    - Денормализация БД должна быть обоснована.
    - MyISAM не используется (так уж)) )
    - Множественные операции обязательно в транзакции, с откатом если чо пошло не так.
    - БД не должна содержать бизнес логики, только данные в целостном виде.
    - Не должно быть нецелесообразного дерганья БД там, где без этого можно обойтись.

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

    * О людях:
    - "Я привык писать так и буду дальше" - не вопрос, ревью пройдешь только когда поменяешь свое мнение.
    - "Я пишу в vim-е и мне так удобно" - здорово, код консолью я тоже в нем пишу)) но есть требования к коду, если в них не сможешь - не пройдешь ревью.
    - "Я скопировал этот страшный метод и поменял 2 строчки" - это конечно замечательно, но по блейму автор всего этого метода ты, так что давай без говняшек, хорошо?
    - "Оно же работает!" - вот эта фраза переводится примерно так: "да, я понимаю, что пишу полную хрень, но не могу писать нормально потому, что руки из жо", я правильно тебя понял?))
    - "У меня все работает!" - рад за тебя, а как на счет продакшна?
    - "Там все просто" - не используй слово "просто", от слова "совсем". Вот тебе кусок кода (первого попавшегося с сложной бизнес логикой), где там ошибка (не важно есть она, или нет)? Ты смотришь его уже 2 минуты, в чем проблема, там же все "просто"))

    * Всякое:
    ActiveRecord (это я вам как в прошлом фанат Yii говорю) - полное говно, примите за исходную. По факту у вас бесконтрольно по проекту гуляют модельки с подключением к БД. Не раз натыкался на то, что в тех же шаблонах вызывают save, или update (за такое надо сжигать).
    То, что используется Laravel - это печально((. Что бы выполнить требования приведенные выше, приходится "воевать" с фреймворком.

    Это далеко не полный список требований, очень много зависит от проекта в целом и от принципов, заложенных в нем. Для больших мредж реквестов 200 комментариев к коду - это ок. Дерзайте.

    UPD

    Формализировал данные критерии по ссылочке: https://github.com/index0h/php-conventions
    Ответ написан
    55 комментариев
  • Как написать условие в ModX?

    65536
    @65536
    Ответ написан
    Комментировать
  • Верстка всего сайта по центру?

    inomdzhon92
    @inomdzhon92
    html, css, js, nodejs
    Так если есть пример, то можно перейти в "инструменты разработчика" (нажать F12) и изучить как все устроено.
    Такой подход всегда продуктивен.
    Ответ написан
    7 комментариев
  • Как сделать появление ссылки при наведении на картинку?

    romy4
    @romy4
    Exception handler
    загвоздка здесь: .ava-img:hover .change-ava
    найдите в документации, как обращаться к соседним элементам
    Ответ написан
    1 комментарий
  • Обвернуть в span последние 3 цифры цены?

    Hatsune-Miku
    @Hatsune-Miku
    Няшк :3
    <span class="PricebasePriceWithTax">57 <span style="font-size: 0,9;">000</span> p</span>
    Ответ написан
    Комментировать
  • Как правильно написать модуль для node.js?

    mannaro
    @mannaro
    Умею профессионально гуглить
    Уверен, что нужно учить nodeJS, а не яваскрипт в целом?

    // config.js
    exports.redisHost = (process.env.REDIS_HOST || '127.0.0.1');
    
    // a.js
    var conf = require('./lib/config');
    console.log(conf.redisHost); // 127.0.0.1
    Ответ написан
    Комментировать
  • Как эффективно организовать таблицу для 250 000 записей?

    Melkij
    @Melkij
    PostgreSQL DBA
    Если вам действительно, в реальности, зачем-то нужно делать where value = "4 миллиона знаков", то сделайте hash-индекс.
    Mysql их не умеет, так что велосипедим рядом ещё одним полем, в которое пишете результат хэш-функции от этого самого текста. И индексируем обычным btree. Например, md5 или даже просто crc32
    В запросе, соответственно, where hash = посчитанный хэш and value = "4 миллиона знаков"
    Ответ написан
    2 комментария
  • Как обновить прошивку Mikrotik hap lite?

    @pr0l
    сброс в дефолт и обновление или зайти в files и оттуда удалить все
    Ответ написан
    Комментировать
  • Решил заниматься созданием сайтов на заказ. Какие документы должны быть? Налоги и т.п?

    NeiTrinO2
    @NeiTrinO2
    Предприниматель
    У меня несколько ООО. Но свое ИП я открыл только недавно.
    Я был шокирован тем, насколько это быстро и просто)))

    Более того, сейчас уже не надо даже обращаться к сторонним компаниям, чтобы они помогли зарегистрировать юр. лицо. Это просто НЕ НУЖНО.

    Итак, вот какой инструментарий я бы порекомендовал:

    1. Регистрация ИП:
    - https://service.nalog.ru/gosreg/
    - www.e-kontur.ru/ip

    Порядок действий
    • Составляем форму самостоятельно (быстро, удобно, бесплатно)
    • Формируем квитанцию для оплаты гос. пошлины (по-моему 500 руб.)
    • Оплачиваем квитанцию
    • Приходим в налоговую и просто подаем документы на регистрацию
    • Через 5 рабочих дней забираем там же все документы
    • Подаем заявление на переход на УСН (если нужно)

    2. Открытие счёта в банке.
    Я рекомендую банк Точка (человеческий сервис, удобный интернет-банк, все круто и недорого).
    Здесь все очень просто. Оставляем заявку, присылаем сканы документов. Встречаемся с менеджером или по скайпу и все работает

    3. Бухгалтерия
    Сервис Эльба от Контура. 1 год для новых юр лиц - БЕСПЛАТНО. Удобно, внятно, бесплатно.

    Тонкости
    - Нужно подготовить документы? - Фреш Док
    - Не забывать про то, что ИП должны платить взносы в ПФР и ФСС за себя

    Будущее
    Как только бизнес вырастет - лучше зарегистрировать ООО

    Успехов!
    Ответ написан
    4 комментария
  • Nginx (прокси) и Node.js на разных машинах?

    @MrCheater
    Full-Stack JS. В прошлом программист-олимпиадник
    да - можно
    location /test/ {
    proxy_pass http://123.4.5.6:3000;
    }
    Ответ написан
    1 комментарий
  • Почему ноутбук ложит беспроводную сеть в которую попадает?

    Neuroware
    @Neuroware
    Программист в свободное от работы время
    Загрузить Live какой ни будь убунты с него и подключиться к сети, если все умрет значит с железом беда, если нет с софтом, сначала определиться потом дальше искат
    Ответ написан
    1 комментарий
  • Какую просить сумму зарплаты стажеру/джуниору Android в СПб?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    вопрос глупый. Зарплата часто зависит не от знаний, а от возможностей конторы.
    И очень подозрительно, что разрабатывать направление поручают стажеру/джуниору а не хотя бы миду.
    Ответ написан
    4 комментария
  • Для чего создается знак вопроса в адресной строке хрома сочетанием клавиш ctrl+e?

    v_decadence
    @v_decadence
    Очевидно, что это комбинация для быстрого перехода к строке поиска.
    А вопросительный знак нужен, чтобы при поиске чего-то, что похоже на домен (например, VB.NET) искалось это слово, а не происходил переход на домен. Своего рода экранирование поискового запроса.

    Подробнее
    Ответ написан
    1 комментарий
  • Des 3200-26 теряет "порты" спустя 15мин. Почему?

    @DimiDr0lik
    Потому что длинк отстой. С 4 длинками уже сталкивался такими, помогает поменять прошивку на опенврт или ддврт, правда тоже не на долго. Думаю что у них флешь накрывается так.
    Ответ написан
    3 комментария
  • Arduino. Как сделать фото монохромного дисплея с цифрами для последующего распознавания?

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

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Лучше сразу наймите исполнителя, который сделает вам этот проект.
    Не поддавайтесь на эффект Даннинга-Крюгера.
    Иначе - учите apache, php, mysql, js, css. Будьте готовы только на учебу потратить как минимум 1 год
    Ответ написан
    Комментировать