Профиль пользователя заблокирован сроком с 14 февраля 2016 г. и навсегда по причине: Снова вопросы не по теме
  • Какие есть бесплатные Java UML-программы с автоматической генерацией кода?

    @Urukhayy Автор вопроса
    Подходящий вариант - www.visual-paradigm.com/download/community.jsp

    Community версия активируется бесплатно, достаточно получить ключ на почту и активировать в самой программе.
    Интегрируется с Eclipse, NetBeans, IntelliJ IDEA, и Visual Studio (для VS требуется другая лицензия).

    Демонстрационное видео интеграции:
    https://www.youtube.com/watch?v=wMbVoBACKH4
    Ответ написан
    Комментировать
  • Xpath как получить 1 первый элемент?

    @RayRom
    Заключить в скобки локатор и взять первый:
    $x("(//*[@class='name_class'])[1]")
    Ответ написан
    Комментировать
  • В чем дороговизна доменов .IO?

    Antonoff
    @Antonoff
    Разработчик
    Домены в зоне .io считаются "техническими" и многие стартапы, фреймворки и девелоперы покупают именно их, ибо многие .com домены заняты. У самого порядка 10 доменов в этой зоне, взял на перепродажу, уже 5 продал.

    Не слушай, таких "умных" людей, которые пишут, что домены популярные из-за какой-то agar.io" это вообще, как до такого додуматься можно было.
    Ответ написан
    1 комментарий
  • В чем дороговизна доменов .IO?

    @mletov
    Есть мнение, что этому поспособствовала популярность сайта agar.io, но без авторизации на нем фиг поймешь, что в нем такого особенного.
    Ответ написан
    5 комментариев
  • Debian или Windows Server 2012 для игровых серверов?

    opium
    @opium
    Просто люблю качественно работать
    Виндовые сервера ставить надо на Винду
    Ответ написан
    1 комментарий
  • Как подключиться к серверу с клиента?

    Toisen
    @Toisen
    Backend Developer
    Нужен вшений ip для сервера. Тот, что Вы вводите - выдан вашему компьютеру роутером и "извне" его не видно.
    Ответ написан
    4 комментария
  • Как закрыть пробелы в математике?

    @Pokatum
    Если завалили с 7-го класса, то рекомендую и начать с 7-го класса - подтянуть базу, так сказать. Чтобы потом не было стрема, что что-то в базе упущено, поэтому затык идти дальше. Тем более что, если знания по базе все-таки есть, то дело пойдет очень очень быстро, заодно все освежится и систематизируется, мозги разомнутся, преддверии более сложной математики ВУЗа. Я рекомендую начать с геометрии, так как она более комплексно включает мозг, и считается (мне так, когда я учился, говорили) что больше, чем алгебра, развивает интеллект). Проще всего скачать с сайта издательства "Просвещение" электронное приложение к учебнику геометрии 7-9-го классов - это интерактивный обучающий курс, имхо, хорошего качества, и начать с него.
    Ответ написан
    Комментировать
  • Есть ли у toster.ru api?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    rss
    Ответ написан
    Комментировать
  • Попросили проверить код, на что смотреть нужно?

    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 комментариев
  • Как получить текст письма через Curl (IMAP/POP)?

    @waterlilies Автор вопроса
    Сам задал - сам ответил xD
    curl --url "imaps://user:password@imap.gmail.com/INBOX;UID=1"
    Ответ написан
    2 комментария
  • Из каких сервисов и как можно извлечь тематический дамп фотографий с геотегами?

    littleguga
    @littleguga
    Не стыдно не знать, а стыдно не интересоваться.
    Instagram - у него есть апи с поискам по тегам.
    Есть Twitter со своим апи - ищите твиты с фото и геопозицией.
    Для ВК - берите популярные паблики или просто поиск новостей с определенными характеристиками(есть геопозиция + фото или поиск по хэштегу + фото)
    Ответ написан
    2 комментария
  • Как отключить светодиод веб камеры программно?

    s0ci0pat
    @s0ci0pat
    I'm Awesome
    Программно можно, если производитель заложил такой функционал.
    Ответ написан
    Комментировать
  • Какие рсурсы по иб и хакингу вы знаете?

    @vertas52
    securitytube.net
    Ответ написан
    Комментировать
  • Как лучше сделать шаблоный вывод в тег select?

    @entermix
    <?php
    
    $results = array(
        array(
            'value' => 'None',
            'name' => 'keine',
            'selected' => false),
        array(
            'value' => 'ASIN',
            'name' => 'ASIN (Amazon)',
            'selected' => false),
        array(
            'value' => 'EAN',
            'name' => 'EAN',
            'selected' => true),
        array(
            'value' => 'GTIN',
            'name' => 'GTIN',
            'selected' => false),
        array(
            'value' => 'ISBN',
            'name' => 'ISBN',
            'selected' => false),
        array(
            'value' => 'UPC',
            'name' => 'UPC',
            'selected' => false),
        );
    ?>
    
    <select name="StandardProductIDType" id="StandardProductIDType" class="TxtField">
    <? foreach ($results as $result): ?>
    <option value="<?= $result['value']; ?>" <?= ($result['selected'] ?
    'selected="selected"' : null); ?>><?= $result['name']; ?></option>
    <? endforeach; ?>
    </select>
    Ответ написан
    3 комментария
  • Какие книги почитать про создание клиент-сервер api?

    @gimntut
    Ответ написан
    Комментировать
  • Как писать большие проекты?

    @islk
    20+ лет программирования
    Вообще говоря, проектирование больших систем - это целый большой раздел науки/технологии программирования, который довольно отчетливо выделяется из программирования вообще, мало зависит от других разделов и интенсивно развивается. Существуют разные подходы и разные более-менее устоявшиеся технологии, даже стандартные технологические процессы. Используются специальные интеллектуальные инструменты (см. напр. UML) и соответствующие программные инструменты. Существует, активно используется и развивается множество типовых проектных решений для разных случаев жизни - шаблоны (aka паттерны) проектирования, знание и использование которых которых ускоряет процесс и снижает вероятность неудачных решений - см. напр. Гамма, Хелм и др. - "Приемы объектно-ориентированного проектирования - паттерны проектирования". Существуют различные подходы в организации самого процесса проектирования. Эта наука (проектирование программ) близко лежит к организации бизнеса, используется много общих подходов (в частности, в проектировании бизнес-процессов используется BPML - родной брат UML)
    Так что в два слова ответить на ваш вопрос трудно. Думайте, рисуйте схемы, погуглите, почитайте что-то по этим темам (хоть с википедии начните - https://ru.wikipedia.org/wiki/UML), пытайтесь что-то хотя бы частично в своей работе использовать.
    С этими темами познакомиться хотя бы поверхностно следует любому программисту, ну а если вы планируете профессиональную карьеру - так более-менее хорошо их знать - просто обязательно.
    Ответ написан
    Комментировать
  • Как писать большие проекты?

    @webdeveloper48
    Разбивать на мелкие задачи.Я вот недооценивал данный метод,но это самое эффективное что может быть при работе с задачей в которой много зависимостей.Еще можно нарисовать схему зависимостей на доске\графическом редакторе.
    Ответ написан
    Комментировать
  • Какии реальные ограничения vk.api на даный момент?

    @patch1
    Со стороны клиента можно обращаться к методам API не чаще 3 раз в секунду.

    Максимальное число запросов со стороны сервера зависит от числа пользователей, установивших приложение.
    Если приложение установило меньше 10 000 человек, то можно совершать 5 запросов в секунду, до 100 000 – 8 запросов, до 1 000 000 – 20 запросов, больше 1 млн. – 35 запросов в секунду.

    При превышении этих значений сервер вернет ошибку с кодом 6: "Too many requests per second.".

    Если логика Вашего приложения подразумевает вызов нескольких методов подряд, имеет смысл обратить внимание на метод execute.

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

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

    Почему не соответствует десйтсвительности? запустите цикл и обращайтесь к апи) а лучше сразу запустите 10 потоков подряд и посмотрите что они вернут.
    Ответ написан
    3 комментария
  • Как получить сигнал о публикации записи на чужой странице vk.com?

    @patch1
    api? получаем последнюю запись на стенке (берем ее ID) , переодически отправляем запрос на проверку последней записи на стенке, если id изменился то оповещаем и заменяем наш текущий id на новый полученный.
    Ответ написан
    7 комментариев