• Ковариантность возвращаемых типов в Javа, я правильно понял суть?

    libalex
    @libalex
    Ковариантность - сохранение иерархии наследования исходных типов в производных типах.
    Контравариантность - обращение иерархии наследования исходных типов на противоположную в производных типах.
    Инвариантность - отсутствие наследования между производными типами.

    Массивы в Java ковариантны с самой первой версии: в переменную типа Object[] можно положить значение типа String[].

    Тип возвращаемого значения метода ковариантен начиная с Java 5.
    interface A {
        Number someMethod();
    }
    
    class B implements A {
        @Override
        Integer someMethod() { return 42; } // OK
    }


    В той же версии Java были реализованы обобщения (дженерики). Они инвариантны, но позволяют получить ковариантность и контравариантность с помощью шаблонов. Контравариантность нельзя получить (потому что не имеет смысла) для тип-параметра возвращаемого значения метода, как упоминал выше, а также для тип-параметра класса.
    ArrayList<Number> list = new ArrayList<Integer>(); // Ошибка компиляции. Инвариантность.
    ArrayList<? extends Number> list = new ArrayList<Integer>(); // OK. Ковариантность.
    ArrayList<? super Integer> list = new ArrayList<Number>(); // OK. Контравариантность.


    P.S.:

    Насколько мне известно, в Java на уровне языка её нет, но какие-то части ухитряются делать через шаблоны.

    Если посредством шаблонов (generics) не считается — тогда, насколько мне известно, ни в одном популярном языке её нет. :)
    Написано
  • Что означает индекс в выводе var_dump для объекта?

    libalex
    @libalex Автор вопроса
    Нашёл. Как я и заподозрил, это фишки Xdebug: https://github.com/xdebug/xdebug/blob/d0ccf3649f0d...

    Это ни что иное, как Z_OBJ_HANDLE_P

    Z_OBJ_HANDLE_P(var) is the sequencial number that begins with 1 and increased by 1 for each object.
  • Что означает индекс в выводе var_dump для объекта?

    libalex
    @libalex Автор вопроса
    Немного поэкспереминтировав и покопавшись в коде PHP, пришёл к выводу, что так оно и есть - это идентификатор, показывающий, каким по счёту этот объект был инициализирован в ходе исполнения скрипта. Другого практического смысла у него нет.
  • Взлом или развод?

    libalex
    @libalex
    Думаю. всё проще. Большинство софта для выполнения SQL-инъекций, заливки и эксплуатации shell-ов и тому подобного представлено в виде скриптов в основном на Python, Perl или PHP, запускаемых из консоли (командной строки) - это объясняет скриншоты.
    Ни у одного нормального хостера MySQL сервак напрямую извне недоступен. Наружу разве что только PHPMyAdmin выставляют. Бывает ещё можно в панели управления прописать IP-адрес(а), с которого(ых) будет разрешено подключение к MySQL серверу от имени вашего пользователя. У Hostinger, например, так.
  • Как теперь зарегистрировать приложение в Instagram?

    libalex
    @libalex
    argenit: подскажу еще. проснифать инстаграм, по крайней мере андроидовый, так просто не получится по 2 причинам - во-первых, он игнорирует настройки прокси в девайсе, а во-вторых, он содержит проверку сертификатов (так называемый Certificate Pinning)
  • Как теперь зарегистрировать приложение в Instagram?

    libalex
    @libalex
    Официальный клиент использует почти тот же API. Просто публично для сторонних разработчиков естественно доступна и документирована лишь его часть. Все остальные функции (прямая авторизация по логину-паролю или facebook, загрузка медиафайлов, личные сообщения) публично не разглашаются, т.е. представляют собой приватный API.
    Конечно, их всё равно удаётся вычислить, но, как правило, те, кому это удаётся, также держат эту информацию в секрете (ведь на этом можно зарабатывать), хотя некоторую информацию можно нагуглить, например тут https://abendstille.at/blog/?p=107 есть небольшое описание, правда частично устаревшее. На github можно забить в поиск instagram и найти примеры кодов, в основном на php и python.
    Основная проблема в том, что с каждой новой версией клиента они меняют ключ для генерации подписи запросов и если использовать ключ от сильно старой версии (например из старого кода на github), то API возвращает ошибку типа "вы используете старую версию, обновите клиент".
    Не знаю, как дела обстоят с iOS клиентом, но на Android мне пришлось проделать некоторые нетривиальные манипуляции как с девайсом, так и с самим клиентом, чтобы он раскрыл мне все карты)
  • Как закачивать видео с компа в инстаграм?

    libalex
    @libalex
    Зачем Dropbox? Можно же с ПК сразу в девайс (MicroSD flash drive, USB, BlueTooth, etc.)
    А если ПК на Windows, то еще можно установить BlueStacks - и вперёд.
  • Как перехватить ssl на Android?

    libalex
    @libalex
    Ответил ниже. Дело в том, что мало пустить всю систему через прокси. Instagram, как и WhatsApp, и еще некоторые приложения, содержит встроенную проверку сертификатов (Certificate Pinning) и с левым сертификатом (сертификатом сниффера) работать отказывается. Чтобы это обойти, нужно отключить (вырезать) проверку сертификатов.
  • Как перехватить ssl на Android?

    libalex
    @libalex
    Обфусцировано всё потому что.. Помнится декомпильнул старую версию инстаграма - пара пакетов всего обфусцировано и имеют имена типа a b c d e, остальное открыто, на днях декомпильнул новую версию - всего несколько малоинтересных классов читабельны, остальное всё обфусцировано.
    Собственно смотрю сейчас в Burp Suite - вижу трафик от чего угодно: фейсбук, вк, твиттер, вайбер, ещё кое-чего, сбербанк даже.. но только не то, что хочу увидеть. Instagram и WhatsApp серьёзно заморочены - инстаграм упорно не хочет работать через мой прокси, а вотсап вроде как работает, но сниффер никакого трафика по его части не видит.. и х.. его знает, как он это делает))
  • Как перехватить ssl на Android?

    libalex
    @libalex
    Я на своём девайсе пробую
  • Как перехватить ssl на Android?

    libalex
    @libalex
    У меня всё интереснее. С помощью Transparent Proxy (требует root, прописывает прокси прям в iptables) трафик инстаграма пошел через мой Fiddler, НО! Ни Android SSL TrustKiller, ни Android SSLUnpinning не заставили инстаграм принять сертификат фиддлера, хотя он установлен в системе. И не только инстаграм с ним работать не хочет.
  • Авто-постинг в Instagram?

    libalex
    @libalex
    Скорее всего логику обработки запросов чуть поменяли, но 100% не прикрыли, ибо эта "лавочка" вообще-то используется официальными клиентами инстаграма и без неё они бы упали.
  • Как доработать код, не корректно работает?

    libalex
    @libalex
    Да, насчет удалить переменную str_start и использовать вместо неё $text.val() - это я зря, именно в $box.on("click") переопределять надо. Обновил, забирайте. https://learn.javascript.ru/ и api.jquery.com Вам в помощь. :)